主頁 > 區塊鏈 > 區塊鏈與位元幣學習筆記一

區塊鏈與位元幣學習筆記一

2021-03-04 11:28:36 區塊鏈

“區塊鏈技術來源于位元幣,也因為位元幣的瘋狂而備受矚目,區塊鏈技術發展到現在,無論是在技術上的深度與廣度,還是在應用場景上的寬度,均取得了較大突破,雖然位元幣類加密數字貨幣在區塊鏈領域依然備受關注,但是百花齊放的區塊鏈應用,尤其是大量企業級區塊鏈應用的出現正在催熟區塊鏈技術,區塊鏈技術正處于快速發展演化期,未來會擁有一個更大的可以施展拳腳的舞臺,”——《區塊鏈技術及應用 華為區塊鏈技術開發團隊編著》

區塊鏈與位元幣學習筆記一

    • 位元幣系統與區塊鏈技術
    • 位元幣交易
    • 區塊鏈問題澄清
      • 區塊鏈的核心技術是分布式而不是去中心
      • 區塊鏈是分布式賬本,但分布式賬本不一定是區塊鏈,
      • 區塊鏈在工程技術層面還不夠成熟,離金融行業大面積應用還需要數年時間,
      • “代碼即法律”只是烏托邦理想,智能合約也只是幫助執行雙方約定的計算機程式而已,
      • 比數字貨幣范圍更大、價值更大的數字資產,

位元幣系統與區塊鏈技術

本書通過一個通俗的故事介紹什么是位元幣系統,從而引出區塊鏈:

從前,有個古老的村落,里面住著一群古老的村民,這個村莊沒有銀行為大家存錢、記賬,沒有一個讓所有村民都信賴的村長來維護和記錄村民之間的財務往來,也就是沒有任何中間機構或者個人來記賬,于是,村民想出了一個不需要中間機構或個人,而是大家一起記賬的方法,
比如,張三要給李四1000塊錢,張三在村里大吼一聲:大家注意了,我張三,給李四轉了1000塊錢,這時候附近的村民聽到之后呢,需要做兩件事:
1)通過聲音確定這是張三喊的,而不是別人冒名張三喊的,從而防止別人去花張三的錢;
2)檢查張三是否有足夠的錢,每個村民都有個小賬本記錄各個村民有多少錢,當確認張三真的有1000塊錢后,每個村民都會在這個賬本上記錄:“xxxx年xx月xx日,張三轉給李四1000塊錢,”
除此之外,這些村民口口相傳,把張三轉賬的事情告訴了十里八村,當所有人都知道轉賬的事情后,大家就能夠共同證明“張三轉給李四1000塊錢”,這樣,一個不需要村長(中心節點)卻能讓所有村民都能達成一致的記賬系統誕生了,這個記賬系統就可以類比為我們今天常說的位元幣系統,
在這里插入圖片描述

這個故事也引出了三個值得思考的問題:
1.記的賬在后面會不會被篡改?
2.村民有什么動力幫別人記賬?
3.這么多人記賬,萬一記的不一致豈不是壞了,以誰記的為準?
而位元幣則巧妙地解決了這三個問題,

第一,位元幣采用兩種策略保證賬本不可篡改:①人人記賬,人人手上都維護一本賬本,這樣即使某個人改了自己的賬本,他也無權修改其他村民手上的賬本,修改自己的賬本相當于“掩耳盜鈴”,他人并不會認可,②采用“區塊+鏈”的特殊賬本結構,在這種賬本結構中,每一個區塊保存著某段時間內所發生的的交易,這些區塊通過鏈式結構連接在一起,形成了一個記錄全部交易的完整賬本,如果對區塊內容進行了修改就會破壞整個區塊鏈的鏈式結構,導致鏈條斷了,從而很容易被檢測到,這兩個策略保證了從全域來看整個賬本是不可修改的,

第二,前面一條提到了人人參與記賬,這就產生疑問“憑什么我要幫別人記賬呢?”,這涉及到位元幣系統中的激勵機制,參與記賬的村民,被稱作“礦工”,這些礦工中,首個記賬被認可的人:①將獲得一筆獎勵,這筆獎勵就是若干個位元幣,這也是位元幣發行的唯一來源,這種獎勵措施使眾多礦工積極參加記賬;②誰在某一塊賬本被認可,其他人都會分別拷貝這一塊賬本,從而保證所有人維護的賬本是完全一致的,這兩點保證了區塊鏈的自動安全運行,

第三,既然有了激勵,大家就會爭搶著記賬并努力讓自己的記賬被認可,怎么確定以誰記的為準呢?為了能夠確定以誰記的賬為準,村民們想到了一個公平的辦法;對每一塊賬本(類比為現實賬本中的一頁),他們從題庫中找到一道難題,讓所有參與記賬的“礦工”都去破解這道難題,誰若最先破解了,該頁/塊就以他記的賬為準,這個破解難題的程序就被稱為“挖礦”,也即作業量證明的程序,(這個難題的解題程序需要不斷嘗試,較為困難,但是找到答案發給別人后,別人是很容易驗證的)

位元幣通過“區塊+鏈”的分布式賬本保障了交易不可篡改,通過發放位元幣的激勵措施激勵了“礦工”的參與,通過計算難題(礦工挖礦)解決了記賬一致性問題,這樣完美形成了一個不依賴任何中間人即可完成記賬的自動運行系統,這其中具有“區塊+鏈”不可篡改賬本、多方參與、結果共識的技術,就是位元幣背后的區塊鏈技術,在這里插入圖片描述

位元幣交易

想要參與位元幣系統中的交易程序,需要一個類似現實世界中銀行“賬戶”的物體,而實際上位元幣的交易參與方物體為一組公私鑰組合,私鑰是由程式生成的一串亂數,而其公鑰則是根據私鑰經過一系列的計算生成的,公與私鑰之間存在一一對應的關系,其中,公鑰作為參與交易的“賬戶名”,在交易中被參考,用于指明一筆交易中資金的來源于去向,而私鑰則作為交易程序中的“驗證密碼”,用于確認某一交易的合法性,
在位元幣的設計中,私鑰的長度被設定為256位元,取值范圍在[0,2^256-1],在這么大的取值下,難以出現兩個完全相同的私鑰,這也是密碼學的基礎,
位元幣的一對公私鑰以及其對應的錢包地址是按如下流程產生的:
首先通過某種亂數生成演算法產生出一個256位元串作為私鑰,然后再使用橢圓曲線加密演算法(ECC)對這個私鑰計算生成公鑰,此后公鑰再通過一系列的哈希計算和Base58編碼得到錢包地址,
而對于交易內容存盤的介紹,在《區塊鏈 智能合約與DApp應用實戰》中有更詳細的介紹:
在Bitcoin世界所謂的交易是指傳輸加密貨幣,然而完整的交易內容(例如A傳100個位元幣給B)并不會直接直接存盤于區塊中,所存放的僅為處理過后的交易哈希值,完整的交易內容存盤于區塊鏈節點得到資料庫中,交易哈希值僅用于協助快速查找交易內容的資料索引值,
Bitcoin采用Merkle Tree演算法來實作哈希值的處理,
在這里插入圖片描述
Merkle樹為二叉樹結構,Bitcoin利用其特性將交易內容的哈希值存盤在默克爾樹的葉子節點,每層所得到的的哈希值再兩兩進行哈希運算,最終可得默克爾樹的根節點,被存盤于區塊的資料即默克爾樹的根哈希值,
Bitcoin使用Merkle樹的目的之一是為了驗證歷史資料是否被篡改過,舉例而言:假如有人嘗試篡改某一筆交易,那么修改過后所計算出的哈希值絕對會與篡改前的不同,因此最終得到的Merkle樹的根哈希值也會不同,通過這種對比,即可知道區塊內的交易是否被動過手腳,但是位元幣交易是否一定不會被人做手腳呢,其實也不是,這里推薦一篇知乎文章:
推薦文章
這篇文章里討論了對位元幣做手腳你可能需要付出的成本,
從某個Merkle樹中快速查找一筆交易所需經過的路徑長度即為Merkle路徑,若Merkle樹中有512筆交易,Merkle路徑搜索的長度僅為9,若具有32768(2^15)筆交易時,Merkle的路徑長度也只不過15,因此通過Merkle樹可以快速找到交易的哈希值,進而判斷區塊是否包含特定交易的演算法,

區塊鏈問題澄清

在《區塊鏈革命》的序章:從《失控》說起 中對大眾對區塊鏈的認知誤區做出糾正:

區塊鏈的核心技術是分布式而不是去中心

根據凱文·凱利的定義,分布式系統“沒有強制性的中心控制”,這里的明顯意思即分布式系統榷訓了中心控制,而不是消滅了中心控制,區塊鏈是若中心化的、分中心化的,在他眼中,去中心是一個程序而不是一個結果,而一個新的更具高效率和低成本的事物必將取代陳舊,區塊鏈也許能使得公平與效率達到一個接近最優平衡,但至少目前的技術仍然消弭公平與效率之間間隙的可能性,區塊鏈的希望中心分布式賬本依靠去中心的共識演算法來保持資料的高度一致性,這就無法照顧到效率,而公平與效率之間的宿命也就沒有被區塊鏈所打破,

區塊鏈是分布式賬本,但分布式賬本不一定是區塊鏈,

區塊鏈的誕生,代表著技術極客們在網路空間、虛擬社會里建立一個去中心化的自治社區的愿景,位元幣區塊鏈作為一個小范圍實驗,在過去近十年的時間里證明了分布式網路確實有不少值得借鑒的技術優勢,金融機構視圖對位元幣區塊鏈去偽存真,他們對像位元幣區塊鏈那樣的公共區塊鏈進行了一番改造,去掉了原生數字貨幣,允許多中心機構的多節點的弱控制、改進了共識演算法并加入了更強的隱私保護加密演算法,為了強調與去中心化的公共區塊鏈的區別,這個改造過的區塊鏈,被刻意命名為分布式賬本,而不再稱為區塊鏈了,

區塊鏈在工程技術層面還不夠成熟,離金融行業大面積應用還需要數年時間,

區塊鏈上一直有兩批人,在不同的方向上做著不同的事,一批人專注于挖礦、炒幣甚至發行自己的數字貨幣籌資,業界稱為“幣圈”;另一批人專注于區塊鏈技術的研發、應用,甚至從區塊鏈底層協議編程開始做起,業界俗稱“鏈圈”,區塊鏈技術目前的成熟程度已經足夠滿足“幣圈”的需求,但對于“鏈圈”而言,區塊鏈技術目前還存在不少瓶頸,妨礙了各行各業的區塊鏈+,比如現有共識演算法如果不優化,按照位元幣區塊鏈每秒七筆交易的速度,金融交易層面就無法使用區塊鏈技術;比如公共區塊鏈賬戶余額是向全網公開的,而銀行必然不能接受客戶賬戶余額向全網公開的做法,這就需要新的隱私保護演算法,而這方面的加密演算法還沒有達到生產級別的應用水平;再比如區塊鏈的可編程性是各國央行發行數字貨幣得到最大吸引力,也是金融行業對區塊鏈技術的最大期許,但TheDAO事件(北京時間2016年6月17日,黑客利用TheDAO撰寫的智能合約中的重大缺陷展開網路攻擊,造成300多萬以太幣資產被分離出TheDAO資產池的財產損失事件)提醒我們,應該有一個能對智能合約進行事先檢驗的科學方法,但這方面的最先進的技術如形式化驗證,目前還處于理論研究階段,

“代碼即法律”只是烏托邦理想,智能合約也只是幫助執行雙方約定的計算機程式而已,

一旦把雙方的約定寫入智能合約,計算機程式在技術上可以保證做到不可反悔、不可篡改以及按照約定自動執行,但代碼即法律就像網路社會完全自治一樣,基本不可能見容于現實社會,締結、編制智能合約的依據可能大部分還是要來源于現實世界的法律體制,比如產權的登記和確認;而網路世界里發生的糾紛,最終也會需要一個第三方機構來提供最后的司法仲裁和救濟,

比數字貨幣范圍更大、價值更大的數字資產,

數字資產是指在區塊鏈上登記、發行、交易的資產;它往往以數字代幣(token)的方式記錄在分布式賬本上,coin是它的貨幣單位,相較于數字貨幣,只有投身于區塊鏈的應用研究中,才能有大視野與大事業,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/265987.html

標籤:區塊鏈

上一篇:【重磅】內蒙古計劃4月底前關停所有虛擬貨幣挖礦專案,確保完成能耗目標

下一篇:最簡單的以太坊(ETH)挖礦教程

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • JAVA使用 web3j 進行token轉賬

    最近新學習了下區塊鏈這方面的知識,所學不多,給大家分享下。 # 1. 關于web3j web3j是一個高度模塊化,反應性,型別安全的Java和Android庫,用于與智能合約配合并與以太坊網路上的客戶端(節點)集成。 # 2. 準備作業 jdk版本1.8 引入maven <dependency> < ......

    uj5u.com 2020-09-10 03:03:06 more
  • 以太坊智能合約開發框架Truffle

    前言 部署智能合約有多種方式,命令列的瀏覽器的渠道都有,但往往跟我們程式員的風格不太相符,因為我們習慣了在IDE里寫了代碼然后打包運行看效果。 雖然現在IDE中已經存在了Solidity插件,可以撰寫智能合約,但是部署智能合約卻要另走他路,沒辦法進行一個快捷的部署與測驗。 如果團隊管理的區塊節點多、 ......

    uj5u.com 2020-09-10 03:03:12 more
  • 谷歌二次驗證碼成為區塊鏈專用安全碼,你怎么看?

    前言 谷歌身份驗證器,前些年大家都比較陌生,但隨著國內互聯網安全的加強,它越來越多地出現在大家的視野中。 比較廣泛接觸的人群是國際3A游戲愛好者,游戲盜號現象嚴重+國外賬號安全應用廣泛,這類游戲一般都會要求用戶系結名為“兩步驗證”、“雙重驗證”等,平臺一般都推薦用谷歌身份驗證器。 后來區塊鏈業務風靡 ......

    uj5u.com 2020-09-10 03:03:17 more
  • 密碼學DAY1

    目錄 ##1.1 密碼學基本概念 密碼在我們的生活中有著重要的作用,那么密碼究竟來自何方,為何會產生呢? 密碼學是網路安全、資訊安全、區塊鏈等產品的基礎,常見的非對稱加密、對稱加密、散列函式等,都屬于密碼學范疇。 密碼學有數千年的歷史,從最開始的替換法到如今的非對稱加密演算法,經歷了古典密碼學,近代密 ......

    uj5u.com 2020-09-10 03:03:50 more
  • 密碼學DAY1_02

    目錄 ##1.1 ASCII編碼 ASCII(American Standard Code for Information Interchange,美國資訊交換標準代碼)是基于拉丁字母的一套電腦編碼系統,主要用于顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,并等同于國際標準ISO/IE ......

    uj5u.com 2020-09-10 03:04:50 more
  • 密碼學DAY2

    ##1.1 加密模式 加密模式:https://docs.oracle.com/javase/8/docs/api/javax/crypto/Cipher.html ECB ECB : Electronic codebook, 電子密碼本. 需要加密的訊息按照塊密碼的塊大小被分為數個塊,并對每個塊進 ......

    uj5u.com 2020-09-10 03:05:42 more
  • NTP時鐘服務器的特點(京準電子)

    NTP時鐘服務器的特點(京準電子) NTP時鐘服務器的特點(京準電子) 京準電子官V——ahjzsz 首先對時間同步進行了背景介紹,然后討論了不同的時間同步網路技術,最后指出了建立全球或區域時間同步網存在的問題。 一、概 述 在通信領域,“同步”概念是指頻率的同步,即網路各個節點的時鐘頻率和相位同步 ......

    uj5u.com 2020-09-10 03:05:47 more
  • 標準化考場時鐘同步系統推進智能化校園建設

    標準化考場時鐘同步系統推進智能化校園建設 標準化考場時鐘同步系統推進智能化校園建設 安徽京準電子科技官微——ahjzsz 一、背景概述隨著教育事業的快速發展,學校建設如雨后春筍,隨之而來的學校教育、管理、安全方面的問題成了學校管理人員面臨的最大的挑戰,這些問題同時也是學生家長所擔心的。為了讓學生有更 ......

    uj5u.com 2020-09-10 03:05:51 more
  • 位元幣入門

    引言 位元幣基本結構 位元幣基礎知識 1)哈希演算法 2)非對稱加密技術 3)數字簽名 4)MerkleTree 5)哪有位元幣,有的是UTXO 6)位元幣挖礦與共識 7)區塊驗證(共識) 總結 引言 上一篇我們已經知道了什么是區塊鏈,此篇說一下區塊鏈的第一個應用——位元幣。其實先有位元幣,后有的區塊 ......

    uj5u.com 2020-09-10 03:06:15 more
  • 北斗對時服務器(北斗對時設備)電力系統應用

    北斗對時服務器(北斗對時設備)電力系統應用 北斗對時服務器(北斗對時設備)電力系統應用 京準電子科技官微(ahjzsz) 中國北斗衛星導航系統(英文名稱:BeiDou Navigation Satellite System,簡稱BDS),因為是目前世界范圍內唯一可以大面積提供免費定位服務的系統,所以 ......

    uj5u.com 2020-09-10 03:06:20 more
最新发布
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:46:47 more
  • Hyperledger Fabric 使用 CouchDB 和復雜智能合約開發

    在上個實驗中,我們已經實作了簡單智能合約實作及客戶端開發,但該實驗中智能合約只有基礎的增刪改查功能,且其中的資料管理功能與傳統 MySQL 比相差甚遠。本文將在前面實驗的基礎上,將 Hyperledger Fabric 的默認資料庫支持 LevelDB 改為 CouchDB 模式,以實作更復雜的資料... ......

    uj5u.com 2023-04-16 07:28:31 more
  • .NET Core 波場鏈離線簽名、廣播交易(發送 TRX和USDT)筆記

    Get Started NuGet You can run the following command to install the Tron.Wallet.Net in your project. PM> Install-Package Tron.Wallet.Net 配置 public reco ......

    uj5u.com 2023-04-14 08:08:00 more
  • DKP 黑客分析——不正確的代幣對比率計算

    概述: 2023 年 2 月 8 日,針對 DKP 協議的閃電貸攻擊導致該協議的用戶損失了 8 萬美元,因為 execute() 函式取決于 USDT-DKP 對中兩種代幣的余額比率。 智能合約黑客概述: 攻擊者的交易:0x0c850f,0x2d31 攻擊者地址:0xF38 利用合同:0xf34ad ......

    uj5u.com 2023-04-07 07:46:09 more
  • Defi開發簡介

    Defi開發簡介 介紹 Defi是去中心化金融的縮寫, 是一項旨在利用區塊鏈技術和智能合約創建更加開放,可訪問和透明的金融體系的運動. 這與傳統金融形成鮮明對比,傳統金融通常由少數大型銀行和金融機構控制 在Defi的世界里,用戶可以直接從他們的電腦或移動設備上訪問廣泛的金融服務,而不需要像銀行或者信 ......

    uj5u.com 2023-04-05 08:01:34 more
  • solidity簡單的ERC20代幣實作

    // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; import "hardhat/console.sol"; //ERC20 同質化代幣,每個代幣的本質或性質都是相同 //ETH 是原生代幣,它不是ERC20代幣, ......

    uj5u.com 2023-03-21 07:56:29 more
  • solidity 參考型別修飾符memory、calldata與storage 常量修飾符C

    在solidity語言中 參考型別修飾符(參考型別為存盤空間不固定的數值型別) memory、calldata與storage,它們只能修飾參考型別變數,比如字串、陣列、位元組等... memory 適用于方法傳參、返參或在方法體內使用,使用完就會清除掉,釋放記憶體 calldata 僅適用于方法傳參 ......

    uj5u.com 2023-03-08 07:57:54 more
  • solidity注解標簽

    在solidity語言中 注釋符為// 注解符為/* 內容*/ 或者 是 ///內容 注解中含有這幾個標簽給予我們使用 @title 一個應該描述合約/介面的標題 contract, library, interface @author 作者的名字 contract, library, interf ......

    uj5u.com 2023-03-08 07:57:49 more
  • 評價指標:相似度、GAS消耗

    【代碼注釋自動生成方法綜述】 這些評測指標主要來自機器翻譯和文本總結等研究領域,可以評估候選文本(即基于代碼注釋自動方法而生成)和參考文本(即基于手工方式而生成)的相似度. BLEU指標^[^?88^^?^]^:其全稱是bilingual evaluation understudy.該指標是最早用于 ......

    uj5u.com 2023-02-23 07:27:39 more
  • 基于NOSTR協議的“公有制”版本的Twitter,去中心化社交軟體Damus

    最近,一個幽靈,Web3的幽靈,在網路游蕩,它叫Damus,這玩意詮釋了什么叫做病毒式營銷,滑稽的是,一個Web3產品卻在Web2的產品鏈上瘋狂傳銷,各方大佬紛紛為其背書,到底發生了什么?Damus的葫蘆里,賣的是什么藥? 注冊和簡單實用 很少有什么產品在用戶注冊環節會有什么噱頭,但Damus確實出 ......

    uj5u.com 2023-02-05 06:48:39 more