《區(qū)塊鏈原理和發(fā)展詳解》由會員分享,可在線閱讀,更多相關(guān)《區(qū)塊鏈原理和發(fā)展詳解(32頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,目錄,區(qū)塊鏈簡介,1,特征及分類,2,區(qū)塊鏈網(wǎng)絡(luò),3,數(shù)據(jù)結(jié)構(gòu),4,核心問題,5,前景展望,6,1,1,.,區(qū),塊,鏈簡介,區(qū),塊鏈技術(shù)是構(gòu)建比特,幣,區(qū)塊鏈網(wǎng)絡(luò),與,交易信息加密傳輸?shù)幕A(chǔ)技,術(shù),。它基,于密碼學原理而不基于信用,使得任何達成一致的,雙,方直接支,付,,從而不需要第三方中介的參與,。,互聯(lián)網(wǎng)上的貿(mào)易,幾乎都需要借,助,可資信賴的,第三方信用機構(gòu),來,處理電子支付信息,。這,類系統(tǒng)仍然內(nèi),生性,地受制于“基于信用的模式,”。,背景,2,1,.,區(qū),塊,鏈簡介,區(qū)塊鏈是一個,分布式賬本,,一種通過
2、,去中心化,、,去信任,的方式集體維護一個可靠數(shù)據(jù)庫的技術(shù)方案,。,定義,從,數(shù)據(jù)的角度來,看,區(qū),塊鏈是一種幾乎不可能被更改的分布式數(shù)據(jù),庫。這,里的“分布式”不僅體現(xiàn)為數(shù)據(jù)的,分布式存儲,,也體現(xiàn)為數(shù)據(jù)的,分布式,記錄,(即由系統(tǒng)參與,者共同維,護,)。,從,技術(shù),的,角度來,看,區(qū)塊鏈并不是一種單一的技術(shù),而是,多種技術(shù)整合,的結(jié)果,。,這些技術(shù)以新的結(jié)構(gòu)組合,在一起,形成了一種新的數(shù)據(jù)記錄、存儲和表達的方式。,3,1,.,區(qū),塊,鏈簡介,國際權(quán)威雜志經(jīng)濟學人、哈佛商業(yè)周刊、福布斯雜志等相繼報道,區(qū)塊鏈技術(shù)將影響世,界,。,創(chuàng),業(yè)公司,R3,聯(lián),合,全球,42,家頂級,銀,行成立區(qū)塊鏈聯(lián)
3、盟,,,包括,摩,根大通、美國銀行、匯豐銀行、花旗銀行、富國銀行、三菱,UFJ,金融集團、巴克萊銀行、高盛、德意志銀行,等。,動態(tài),4,目錄,區(qū)塊鏈簡介,1,特征及分類,2,區(qū)塊鏈網(wǎng)絡(luò),3,數(shù)據(jù)結(jié)構(gòu),4,核心問題,5,前景展望,6,5,2,.,特征及分類,特征,去中心,去信任,區(qū)塊鏈由眾多節(jié)點共同組成一個端到端的網(wǎng)絡(luò),不存在中心化的設(shè)備和管理機構(gòu)。節(jié)點之間數(shù)據(jù)交換通過數(shù)字簽名技術(shù)進行驗證,無需互相信任,只要按照系統(tǒng)既定的規(guī)則進行,節(jié)點之間不能也無法欺騙其它節(jié)點。,開放,共識,任何人都可以參與到區(qū)塊鏈網(wǎng)絡(luò),每一臺設(shè)備都能作為一個節(jié)點,每個節(jié)點都允許獲得一份完整的數(shù)據(jù)庫拷貝。節(jié)點間基于一套共識機制
4、,通過競爭計算共同維護整個區(qū)塊鏈。任一節(jié)點失效,其余節(jié)點仍能正常工作。,6,2,.,特征及分類,特征,不可篡改,可追溯,單個甚至多個節(jié)點對數(shù)據(jù)庫的修改無法影響其他節(jié)點的數(shù)據(jù)庫,除非能控制整個網(wǎng)絡(luò)中超過,51%,的節(jié)點同時修改,這幾乎不可能發(fā)生。區(qū)塊鏈中的每一筆交易都通過密碼學方法與相鄰兩個區(qū)塊串聯(lián),因此可以追溯到任何一筆交易的前世今生。,交易透明,雙方匿名,區(qū)塊鏈的運行規(guī)則是公開透明的,所有的數(shù)據(jù)信息也是公開的,因此每一筆交易都對所有節(jié)點可見。由于節(jié)點與節(jié)點之間是去信任的,因此節(jié)點之間無需公開身份,每個參與的節(jié)點都是匿名的。,7,2,.,特征及分類,分類,聯(lián)盟鏈,由若干機構(gòu)聯(lián)合發(fā)起,介于公有鏈
5、和私有鏈之間,兼具部分去中心化的特性。,私有鏈,建立在某個企業(yè)內(nèi)部,系統(tǒng)的運作規(guī)則根據(jù)企業(yè)要求進行設(shè)定,修改甚至是讀取權(quán)限僅限于少數(shù)節(jié)點,同時仍保留著區(qū)塊鏈的真實性和部分去中心化的特性。,公有鏈,無官方組織及管理機構(gòu),無中心服務器,參與的節(jié)點按照系統(tǒng)規(guī)則自由接入網(wǎng)絡(luò)、不受控制,節(jié)點間基于共識機制開展工作。,8,目錄,區(qū)塊鏈簡介,1,特征及分類,2,區(qū)塊鏈網(wǎng)絡(luò),3,數(shù)據(jù)結(jié)構(gòu),4,核心問題,5,前景展望,6,9,3.,區(qū)塊鏈網(wǎng)絡(luò),科,普,數(shù)字簽,名,數(shù)字簽名涉及到一個哈希函數(shù)、發(fā)送者的公鑰、發(fā)送者的私鑰。數(shù)字簽名有,兩個作用,一,是能確定消息確實是由發(fā)送方簽名并發(fā)出來,的。,二是數(shù)字簽名能確定消息
6、的完整性,。,工作原理,發(fā),送報文時,發(fā)送方用一個哈希函數(shù)從報文文本中生成報文摘,要,,,然,后用自己的,私鑰對摘,要進行加密,,加,密后的摘要將作為報文的數(shù)字簽名和報文一起發(fā)送給接收方,接收方首先用與發(fā)送方一樣的哈希函數(shù)從接收到的原始報文中計算出報文摘要,接著再用發(fā)送方的,公鑰,來對報文附加的數(shù)字簽名進行解密,如果這兩個摘要相同、那么接收方就能確認該數(shù)字簽名是發(fā)送方,的。,10,3.,區(qū),塊鏈網(wǎng)絡(luò),科,普,SHA256,一,種求,Hash,值,的加密算法。,工作原,理,將任何一串數(shù)據(jù)輸入到,SHA256,將得到一個,256,位的,Hash,值(散列值)。其特點:相同的數(shù)據(jù)輸入將得到相同的結(jié)果
7、。輸入數(shù)據(jù)只要稍有變化(比如一個,1,變成了,0,)則將得到一個千差萬別的結(jié)果,且結(jié)果無法事先預知。,正向計算(由數(shù)據(jù)計算其對應的,Hash,值)十分容易,。逆,向計算(俗稱“破解”,即由,Hash,值計算出其對應的數(shù)據(jù))極其困難,,在,當前科技條件下被視作不可能,。,11,3.,區(qū)塊鏈網(wǎng)絡(luò),Merkle,Tree,一,種哈希二叉樹,使用它可以快速校驗大規(guī)模數(shù)據(jù)的完整性。在比特幣網(wǎng)絡(luò)中,,Merkle,樹被用來歸納一個區(qū)塊中的所有交易信息,最終生成這個區(qū)塊所有交易信息的一個統(tǒng)一的哈希值,區(qū)塊中任何一筆交易信息的改變都會使得使得,Merkle,樹改變。,科,普,工,作原理,非葉子節(jié)點,value
8、,的計算方法是將該節(jié)點的所有子節(jié)點進行組合,然后對組合結(jié)果進行,hash,計算所得出的,hash value,。,12,3.,區(qū)塊鏈網(wǎng)絡(luò),時,間戳服務器,大多用來進行比對以及驗證處理,,時間戳服務器是一款基于,PKI,(公鑰密碼基礎(chǔ)設(shè)施)技術(shù)的時間戳權(quán)威系統(tǒng),對外提供精確可信的時間戳服務。它采用精,確的,時間源、高強度高標準的安全機制,以確認系統(tǒng)處理數(shù)據(jù)在某一時間的存在性和相關(guān)操作的相對時間順序,為信息系統(tǒng)中的時,間防,抵賴提供基礎(chǔ)服務。,科,普,13,3.,區(qū)塊鏈網(wǎng)絡(luò),節(jié)點網(wǎng)絡(luò),本章節(jié)后續(xù)內(nèi)容,均以比特幣網(wǎng)絡(luò)特性展開闡述,14,3.,區(qū)塊鏈網(wǎng)絡(luò),節(jié)點網(wǎng),絡(luò),任何機器都可以運行一個完整的比特幣
9、節(jié)點,一個完整的比特幣節(jié)點包括如下功,能,:,錢,包,允許用戶,在,區(qū),塊鏈網(wǎng),絡(luò)上進行交,易,完,整區(qū)塊鏈,記錄,了所,有交,易歷史,,通過特殊的結(jié)構(gòu)保證歷史交易的安全性,并且用來驗證新交易的合法,性,礦,工,通過記錄交易及解密數(shù)學題來生成新區(qū)塊,如果成功可以賺取獎,勵,路,由功能,把其它節(jié)點傳送過來的交易數(shù)據(jù)等信息再傳送給更多的節(jié),點,除了路由功能以外,其它的功能都不是必須的。,15,3.,區(qū)塊鏈網(wǎng)絡(luò),交,易過程,16,3.,區(qū)塊鏈網(wǎng)絡(luò),交,易過程,第,2,步:,A,將交易單廣播至全網(wǎng),,,比特,幣,就發(fā)送給,了,B,,,每個節(jié)點都將收到的交易信息納入一個區(qū)塊,中,第,1,步,:所,有者,
10、A,利用他的私鑰對前一次交,易,(比特貨來源),和,下一位所有者,B,簽,署一,個,數(shù),字簽名,,并將這個簽名附加在這,枚,貨,幣,的末尾,制作成交易,單,要點:,B,以,公,鑰,作為接收方地址,要點:,對,B,而言,該,枚比特幣會即時顯示在比,特幣錢包,中,但直,到區(qū),塊,確認,成功后才可用。目前一筆比特幣從支付到最終確認成功,得,到,6,個,區(qū)塊,確,認之后才能真正確認到,帳。,17,3.,區(qū)塊鏈網(wǎng)絡(luò),交,易過程,第,3,步:每個節(jié)點通過解,一道,數(shù)學難題,,從而去獲得,創(chuàng),建新,區(qū)塊,權(quán)利,,并爭取得到比特幣的獎勵(新比特幣會在此過程中產(chǎn)生),要點:,節(jié),點反復嘗試尋找,一,個數(shù)值,使,
11、得,將該數(shù)值、區(qū),塊鏈中最后一,個,區(qū)塊,的,H,ash,值,以,及交,易,單三部分送入,SHA256,算,法后能計,算出散列值,X,(,256,位,)滿,足一定條件(比如前,20,位均為,0,),即找到數(shù)學難題的解。由此可見,答案并不唯一,第,4,步:當一個節(jié)點找,到解,時,它就向全網(wǎng)廣播該區(qū)塊記錄的,所有蓋時間戳交易,,并由全網(wǎng)其他節(jié)點核,對,要點:,時,間,戳用來證,實特,定區(qū)塊必,然于某特定時間是的確存在,的。比特幣網(wǎng)絡(luò)采取從,5,個以上節(jié)點獲取時間,然后取中間值的方式作為時間戳。,18,3.,區(qū)塊鏈網(wǎng)絡(luò),交易過程,第,5,步:全網(wǎng)其他節(jié)點,核對該區(qū)塊記賬的正確,性,,,沒有錯誤后他們
12、將在該合法區(qū)塊之后競爭下一個區(qū)塊,這樣就形成了一個合法記賬的區(qū)塊,鏈,。,要點:,每個區(qū)塊的創(chuàng)建時間大約在,10,分鐘。隨著全網(wǎng)算力的不斷變化,每個區(qū)塊的產(chǎn)生時間會隨算力增強而縮短、隨算力減弱而延長。其原理,是根據(jù)最,近產(chǎn)生的,2016,年區(qū)塊的時間差(約兩周時間),自動調(diào)整每個區(qū)塊的生成難度(比如減少或增加目標值中,0,的個數(shù)),使得每個區(qū)塊的生成時間是,10,分鐘。,19,目錄,區(qū)塊鏈簡介,1,特征及分類,2,區(qū)塊鏈網(wǎng)絡(luò),3,數(shù)據(jù)結(jié)構(gòu),4,核心問題,5,前景展望,6,20,4,.,數(shù)據(jù)結(jié)構(gòu),區(qū)塊,鏈,區(qū)塊鏈以區(qū)塊為單位組織數(shù)據(jù),。全網(wǎng)所,有的交易記錄都以交易單的形式存儲在全網(wǎng)唯一的區(qū)塊鏈,
13、中。,21,4,.,數(shù)據(jù)結(jié)構(gòu),區(qū),塊是一種記錄交易,的數(shù)據(jù)結(jié)構(gòu)。,每個區(qū)塊,由區(qū),塊,頭,和,區(qū),塊主體組成,區(qū)塊主,體只負,責記,錄前一段時間內(nèi)的所有交,易信息,,區(qū),塊鏈的大部分功能,都由,區(qū)塊頭實,現(xiàn)。,區(qū)塊,22,4.,數(shù)據(jù)結(jié)構(gòu),區(qū)塊頭,版,本,號,,標示軟件及協(xié)議的相關(guān)版本信,息,父區(qū)塊哈希,值,,引用的區(qū)塊鏈中父區(qū)塊頭的哈希值,通過這個值每個區(qū)塊才首尾相連組成了區(qū)塊鏈,并且這個值對區(qū)塊鏈的安全性起到了至關(guān)重要的作,用,Merkle,根,,這個值是由區(qū)塊主體中所有交易的哈希值再逐級兩兩哈希計算出來的一個數(shù)值,主要用于檢驗一筆交易是否在這個區(qū)塊中存,在,時間,戳,,記錄該區(qū)塊產(chǎn)生的時間
14、,精確到,秒,難度,值,,該區(qū)塊相關(guān)數(shù)學題的難度目,標,隨機數(shù),(Nonce),,,記錄解密該區(qū)塊相關(guān)數(shù)學題的答案的,值,23,4.,數(shù)據(jù)結(jié)構(gòu),在當前區(qū),塊加入?yún)^(qū)塊鏈后,,所有礦工就立即開始下一個區(qū)塊的生成工,作。,把,在本地內(nèi)存中的交易信息記錄到區(qū)塊主體,中,在,區(qū)塊主體中生成此區(qū)塊中所有交易信息的,Merkle,樹,把,Merkle,樹根的值保存在區(qū)塊頭,中,把,上一個剛剛生成的區(qū)塊的區(qū)塊頭的數(shù)據(jù)通過,SHA256,算法生成一個,哈,希值填入到當前區(qū)塊的父哈希值,中,把,當,前時,間保存在時間戳字段,中,難,度值字,段會,根據(jù)之前一段時間區(qū)塊的平均生成時間進行調(diào)整以應對整,個網(wǎng),絡(luò)不斷變化
15、的整體計算總量,如果計算總量增長了,則系統(tǒng)會調(diào)高數(shù)學題的難度值,使得預期完成下一個區(qū)塊的時間依然,在一定時間內(nèi),區(qū)塊形成過程,24,目錄,區(qū)塊鏈簡介,1,特征及分類,2,區(qū)塊鏈網(wǎng)絡(luò),3,數(shù)據(jù)結(jié)構(gòu),4,核心問題,5,前景展望,6,25,5,.,核心問題,區(qū)塊頭包含一個隨機數(shù),使得區(qū)塊的隨機散列值出現(xiàn)了所需的,0,個數(shù)。節(jié)點通過反復嘗試來找到這個隨機數(shù),這樣就構(gòu)建了一個工作量證明機制。,工,作量證明,工作量證明機制的本,質(zhì)是,一,CPU,一,票,“,大多數(shù)”的決定表達為最長的鏈,因為最長的鏈包含了最大的工作 量。如果大多數(shù)的,CPU,為誠實的節(jié)點控制,那么誠實的鏈條將以最快的速度延長,并超越其他的
16、競爭鏈條。如果想,要修,改,已,出現(xiàn)的區(qū),塊,,攻擊者必須重新完成該區(qū)塊的工作量外加該區(qū)塊之后所有區(qū)塊的工作量,并最終趕上和超越誠實節(jié)點的工作量。,26,5,.,核心問題,同一時間段內(nèi)全,網(wǎng)不止一個節(jié)點能計算,出,隨,機數(shù),即會,有多個節(jié)點在網(wǎng)絡(luò)中廣播它們各自打包好的臨,時,區(qū)塊,(,都是合法的,)。,分叉,某一節(jié)點若收到多個針對同一前,續(xù)區(qū)塊的,后續(xù)臨,時區(qū)塊,,則該節(jié)點會在本,地區(qū)塊鏈,上建立分支,多個臨,時區(qū)塊對,應多個分支。,該僵局的打破要等到下一個工作量證明被發(fā)現(xiàn),而其中的一條鏈條被證實為是較長的一條,那么在另一條分支鏈條上工作的節(jié)點將轉(zhuǎn)換陣營,開始在較長的鏈條上工作,。,其他分支將會被網(wǎng)絡(luò)徹底拋棄,。,27,5,.,核心問題,雙花,即二,重支,付,指,攻擊者幾乎同時將同一筆錢用作不同交易,。,雙花,每,當節(jié)點在把新收到的交易單加入?yún)^(qū)塊之前,會順著交易的發(fā)起,方的,公鑰向前遍歷檢查,檢查當前交易所用的幣是否確實屬于當前交易發(fā)起方,此檢查可遍歷到該幣的最初誕生點(即產(chǎn)生它的那塊區(qū)塊源)。雖然多份交易單可以任意序的廣播,但是它們最終被加入?yún)^(qū)塊時必定呈現(xiàn)一定的順序。區(qū)塊之間以,Ha