《區(qū)塊鏈技術(shù)導(dǎo)論》全套教學(xué)課件_第1頁
《區(qū)塊鏈技術(shù)導(dǎo)論》全套教學(xué)課件_第2頁
《區(qū)塊鏈技術(shù)導(dǎo)論》全套教學(xué)課件_第3頁
《區(qū)塊鏈技術(shù)導(dǎo)論》全套教學(xué)課件_第4頁
《區(qū)塊鏈技術(shù)導(dǎo)論》全套教學(xué)課件_第5頁
已閱讀5頁,還剩268頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Blockchain區(qū)塊鏈·技術(shù)導(dǎo)論CONCEPYPRINCIPLEANDAPPLICATION概念、原理與應(yīng)用全套可編輯PPT課件課程設(shè)置及考核方式學(xué)時(shí):32(理論課20,上機(jī)12)學(xué)分:2課程類別:專業(yè)限選課教材:《區(qū)塊鏈技術(shù)導(dǎo)論》

大連理工大學(xué)出版社

曲毅主編期末分?jǐn)?shù):平時(shí)考勤30%

+課程作業(yè)完成情況70%163區(qū)塊鏈——開啟下一個(gè)十年的鑰匙1)元宇宙(Metaverse)元宇宙一詞誕生于1992年的科幻小說《雪崩》,小說描繪了一個(gè)龐大的虛擬現(xiàn)實(shí)世界,在這里,人們用數(shù)字化身來控制,并相互競(jìng)爭(zhēng)以提高自己的地位,到如今看來,描述的還是超前的未來世界。元宇宙本質(zhì)上是對(duì)現(xiàn)實(shí)世界的虛擬化、數(shù)字化過程,需要對(duì)內(nèi)容生產(chǎn)、經(jīng)濟(jì)系統(tǒng)、用戶體驗(yàn)以及實(shí)體世界內(nèi)容等進(jìn)行大量改造。但元宇宙的發(fā)展是循序漸進(jìn)的,是在共享的基礎(chǔ)設(shè)施、標(biāo)準(zhǔn)及協(xié)議的支撐下,由眾多工具、平臺(tái)不斷融合、進(jìn)化而最終成形。它基于擴(kuò)展現(xiàn)實(shí)技術(shù)提供沉浸式體驗(yàn),基于數(shù)字孿生技術(shù)生成現(xiàn)實(shí)世界的鏡像,基于區(qū)塊鏈技術(shù)搭建經(jīng)濟(jì)體系,將虛擬世界與現(xiàn)實(shí)世界在經(jīng)濟(jì)系統(tǒng)、社交系統(tǒng)、身份系統(tǒng)上密切融合,并且允許每個(gè)用戶進(jìn)行內(nèi)容生產(chǎn)和世界編輯。

區(qū)塊鏈——開啟下一個(gè)十年的鑰匙2)NFT(Non-FungibleToken)指非同質(zhì)化代幣,是用于表示數(shù)字資產(chǎn)(包括jpg和視頻剪輯形式)的唯一加密貨幣令牌,可以買賣。它是寄生于現(xiàn)有區(qū)塊鏈項(xiàng)目中,基于區(qū)塊鏈智能合約發(fā)行并用以代表某種外部資產(chǎn)的資產(chǎn)支持通證。1)NFT基于區(qū)塊鏈特性進(jìn)行確權(quán),獲取身份標(biāo)識(shí),幫助每一個(gè)獨(dú)一無二的東西進(jìn)行版權(quán)確認(rèn)。2)NFT基于區(qū)塊鏈得以規(guī)范每一次鏈上交易。3)NFT將區(qū)塊鏈上的數(shù)字資產(chǎn)落地于現(xiàn)實(shí)場(chǎng)景。4)NFT是區(qū)塊鏈技術(shù)的一種應(yīng)用,NFT是發(fā)行在區(qū)塊鏈上的差異性數(shù)字資產(chǎn)區(qū)塊鏈——開啟下一個(gè)十年的鑰匙NFT產(chǎn)業(yè)鏈分為基礎(chǔ)設(shè)施、協(xié)議層、應(yīng)用層3層,當(dāng)前協(xié)議層蓬勃發(fā)展,熱門項(xiàng)目陸續(xù)面世。

基礎(chǔ)設(shè)施:為NFT提供技術(shù)支持。主要涵蓋底層公鏈(Ethereum、Flow:構(gòu)建應(yīng)用程序的公鏈)、測(cè)鏈/Layer2、開發(fā)工具(Pixura:用于創(chuàng)建、跟蹤和交換加密數(shù)字藏品)、代幣標(biāo)準(zhǔn)、存儲(chǔ)以及錢包(Metamask)

協(xié)議層:通過構(gòu)筑協(xié)議來創(chuàng)造NFT資產(chǎn),如:藝術(shù)品、游戲等。藝術(shù)/收藏品:Crytokitties(交易、繁殖電子貓)、NBATopshot(收集、交易NBA明星球員卡牌)、SuperRare(藝術(shù)/收藏品平臺(tái));游戲:

AxieInfinity(P2P游戲)、Decentraland(虛擬空間游戲等)。

應(yīng)用層:基于NFT資產(chǎn)運(yùn)用,如交易NFT的泛二級(jí)市場(chǎng)Opensea、NFT中國(guó);金融和垂直領(lǐng)域如社區(qū)、數(shù)據(jù)服務(wù)等。

區(qū)塊鏈——開啟下一個(gè)十年的鑰匙3)Web3.0

Web1.0:只讀(1990-2004)

——

公司擁有的靜態(tài)網(wǎng)站,用戶之間的互動(dòng)幾乎為零。

Web2.0:能讀能寫(2004年-至今)

——社交媒體平臺(tái)的出現(xiàn),互聯(lián)網(wǎng)公司除了向用戶提供內(nèi)容外,還開始提供平臺(tái)來共享用戶生產(chǎn)的內(nèi)容,并參與用戶間的交互。隨著越來越多的人上網(wǎng),少數(shù)互聯(lián)網(wǎng)巨頭開始掌控網(wǎng)絡(luò)上海量的流量和價(jià)值。Web2.0還催生了廣告驅(qū)動(dòng)的盈利模式。雖然用戶可以創(chuàng)作內(nèi)容,但他們并不擁有內(nèi)容或通過將內(nèi)容變現(xiàn)來獲益。

Web3.0:能讀-能寫-能擁有(2014-至今)區(qū)塊鏈——開啟下一個(gè)十年的鑰匙3)Web3.0Web3.0被用來描述互聯(lián)網(wǎng)潛在的下一階段,一個(gè)運(yùn)行在“區(qū)塊鏈”技術(shù)之上的“去中心化”的互聯(lián)網(wǎng)。Web3.0是網(wǎng)站內(nèi)的信息可以直接和其他網(wǎng)站相關(guān)信息進(jìn)行交互,能通過第三方信息平臺(tái)同時(shí)對(duì)多家網(wǎng)站的信息進(jìn)行整合使用;用戶在互聯(lián)網(wǎng)上擁有自己的數(shù)據(jù),并能在不同網(wǎng)站上使用;完全基于web,用瀏覽器即可實(shí)現(xiàn)復(fù)雜系統(tǒng)程序才能實(shí)現(xiàn)的系統(tǒng)功能;用戶數(shù)據(jù)審計(jì)后,同步于網(wǎng)絡(luò)數(shù)據(jù)。在線游戲通過積分的方式,角色扮演者通過攻城掠寨、不斷地修煉、花費(fèi)大量的時(shí)間,他們?cè)谀抢锟梢垣@得聲譽(yù)和財(cái)富,而這個(gè)財(cái)富通過一定的方式可以在現(xiàn)實(shí)中兌換,正所謂人生如同一場(chǎng)游戲,互聯(lián)網(wǎng)會(huì)讓人們的生活變得更像游戲一樣。第一章區(qū)塊鏈的起源與本質(zhì)第一章的學(xué)習(xí)要點(diǎn)了解與區(qū)塊鏈技術(shù)密切相關(guān)的記賬技術(shù)發(fā)展史;了解作為區(qū)塊鏈技術(shù)根基的密碼學(xué)發(fā)展史和“密碼朋克”運(yùn)動(dòng);了解區(qū)塊鏈?zhǔn)讉€(gè)應(yīng)用——比特幣的誕生及發(fā)展過程;掌握區(qū)塊鏈技術(shù)的基本特點(diǎn)。時(shí)下,“區(qū)塊鏈”成為一大熱詞?!鞍褏^(qū)塊鏈作為核心技術(shù)自主創(chuàng)新重要突破口”“加快推動(dòng)區(qū)塊鏈技術(shù)和產(chǎn)業(yè)創(chuàng)新發(fā)展”。最高層的前瞻判斷,讓“區(qū)塊鏈”走進(jìn)大眾視野,成為金融資本、實(shí)體經(jīng)濟(jì)和社會(huì)輿論共同關(guān)注的焦點(diǎn)。在中央政治局集體學(xué)習(xí)中,技術(shù)前沿是重要內(nèi)容。從網(wǎng)絡(luò)強(qiáng)國(guó)到大數(shù)據(jù),從媒體融合到區(qū)塊鏈,中央政治局集體學(xué)習(xí)瞄準(zhǔn)技術(shù)變革前沿,展現(xiàn)出中國(guó)最高決策層的方向把握力、前瞻判斷力和未來預(yù)見力,引領(lǐng)著中國(guó)產(chǎn)業(yè)變革和經(jīng)濟(jì)轉(zhuǎn)型的步伐。中央政治局這次集體學(xué)習(xí),專門強(qiáng)調(diào)“區(qū)塊鏈”,則為區(qū)塊鏈的發(fā)展和應(yīng)用打開了豐富的想象空間。那么,什么是區(qū)塊鏈?從技術(shù)層面來看,區(qū)塊鏈涉及到數(shù)學(xué)、密碼學(xué)、互聯(lián)網(wǎng)和計(jì)算機(jī)編程等很多技術(shù)問題。但從應(yīng)用視角來看,可以越過具體的技術(shù)問題,運(yùn)用“第一性原理”的思維方法,用基本的原理來思考復(fù)雜的現(xiàn)象。根據(jù)工信部中國(guó)電子標(biāo)準(zhǔn)化研究員軟件工程評(píng)估中心的定義顯示,“區(qū)塊鏈?zhǔn)窃邳c(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)下,通過透明和可信規(guī)則構(gòu)建不可偽造、不可篡改和可追溯的塊鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu),實(shí)現(xiàn)和管理事務(wù)處理的模式;區(qū)塊鏈去中心化、不可篡改、全程留痕、可以追溯、集體維護(hù)、公開透明等特點(diǎn),保證了區(qū)塊鏈的“誠(chéng)實(shí)”與“透明”,為區(qū)塊鏈創(chuàng)造信任奠定基礎(chǔ)。而區(qū)塊鏈巨大的應(yīng)用場(chǎng)景,基本上都基于區(qū)塊鏈能夠解決信息不對(duì)稱問題,實(shí)現(xiàn)多個(gè)主體之間的協(xié)作信任與一致行動(dòng)。什么是區(qū)塊鏈?EVOLUTIONOFBLOCKCHAIN區(qū)塊鏈的進(jìn)化區(qū)塊鏈1.0區(qū)塊鏈2.0區(qū)塊鏈3.0區(qū)塊鏈?zhǔn)且粋€(gè)分布式網(wǎng)絡(luò);可以幫助多個(gè)節(jié)點(diǎn)達(dá)成共識(shí)去記錄和Token相關(guān)的事情;幫助所有人無門檻地構(gòu)建屬于自己的小經(jīng)濟(jì)系統(tǒng)。區(qū)塊鏈1.0是以比特幣為代表的數(shù)字加密貨幣,多用于金融相關(guān)行業(yè)區(qū)塊鏈2.0是以太坊為代表的智能合約公鏈開發(fā)平臺(tái),用于開發(fā)DAPP區(qū)塊鏈3.0是區(qū)塊鏈+時(shí)代,它的應(yīng)用范圍將超越金融領(lǐng)域,擴(kuò)展到身份認(rèn)證、公證、審計(jì)、域名、物流、醫(yī)療、能源、簽證等領(lǐng)域。區(qū)塊鏈將成為未來社會(huì)之中最底層次的協(xié)議比特幣為代表以太坊為代表區(qū)塊鏈+時(shí)代BLOCKCHAINHASAWIDERANGEOFAPPLICATIONSCENARIOS區(qū)塊鏈應(yīng)用場(chǎng)景廣泛金融政務(wù)服務(wù)物流溯源社會(huì)公益司法醫(yī)療教育共享經(jīng)濟(jì)能源證券交易發(fā)行交易清結(jié)算監(jiān)管管理投票供應(yīng)鏈金融預(yù)付款金融倉(cāng)儲(chǔ)融資應(yīng)收賬款融資保理業(yè)務(wù)支付實(shí)時(shí)轉(zhuǎn)賬跨境匯款金融衍生品股權(quán)互換期權(quán)期貨擔(dān)保征信財(cái)務(wù)數(shù)據(jù)管理地產(chǎn)租賃擔(dān)保公共檔案管理數(shù)字發(fā)票證據(jù)存證司法仲裁商品溯源保真質(zhì)量監(jiān)管處方管理藥品安全尋人信息平臺(tái)捐贈(zèng)流程追溯學(xué)歷認(rèn)證資源共享智能電網(wǎng)碳證交易共享租車智慧租房1.1區(qū)塊鏈的誕生捷徑科技集團(tuán)區(qū)塊鏈的發(fā)端與緣起區(qū)塊鏈技術(shù)是在密碼學(xué)和“密碼朋克”運(yùn)動(dòng)發(fā)展的碩果,2009年首個(gè)應(yīng)用——比特幣構(gòu)建了第一個(gè)區(qū)塊,標(biāo)志著區(qū)塊鏈技術(shù)的正式問世。1)記賬技術(shù)的更迭區(qū)塊鏈技術(shù)也稱為分布式記賬技術(shù)?!坝涃~”就是按時(shí)間的先后順序,將個(gè)體、公司、組織等在一定時(shí)間內(nèi)所發(fā)生的收入和支出全部記錄下來,供查閱者翻閱查看的行為。舊石器時(shí)代結(jié)繩記事法單式記賬與復(fù)試記賬法互聯(lián)網(wǎng)記賬工具區(qū)塊鏈的發(fā)端與緣起2)密碼學(xué)的發(fā)展區(qū)塊鏈技術(shù)的誕生是伴隨著比特幣出現(xiàn)的,但實(shí)際上,比特幣及區(qū)塊鏈技術(shù)的出現(xiàn)并非偶然,而是由20世紀(jì)密碼學(xué)的蓬勃發(fā)展演變而來的。量子計(jì)算舒爾算法(Shor)可解密——抗量子計(jì)算的密碼算法將是未來密碼學(xué)研究的新方向現(xiàn)代密碼學(xué)的發(fā)展恩尼格碼機(jī)量子計(jì)算與密碼學(xué)區(qū)塊鏈的發(fā)端與緣起3)“密碼朋克”的建立密碼學(xué)的飛速發(fā)展形成了一股新的思潮——希望結(jié)合賽博朋克構(gòu)建,在計(jì)算化空間下使用密碼學(xué)保護(hù)個(gè)人隱私。這一思潮的不斷成長(zhǎng)和發(fā)酵,在20世紀(jì)90年代發(fā)展出“密碼朋克”(“Cypherpunk”)的概念。密碼朋克運(yùn)動(dòng)的主要思想:無隱私、無自由隱私不是秘密,密碼朋克不是黑客匿名通訊和支付系統(tǒng)是保護(hù)隱私必不可少的基礎(chǔ)設(shè)施政府靠不住、公司靠不住,任何人類組織都靠不住信密碼學(xué)、得永生阻礙密碼學(xué)傳播和民用的人沒安好心擼起袖子自己干,用密碼學(xué)和代碼創(chuàng)建安全、自由的網(wǎng)絡(luò)世界區(qū)塊鏈的發(fā)端與緣起4)互聯(lián)網(wǎng)技術(shù)的蓬勃進(jìn)步區(qū)塊鏈技術(shù)的發(fā)展是以互聯(lián)網(wǎng)為基礎(chǔ)的,互聯(lián)網(wǎng)是區(qū)塊鏈的載體,在互聯(lián)網(wǎng)大面積應(yīng)用和普及的情況下“萬事俱備、只欠東風(fēng)”的區(qū)塊鏈技術(shù)破繭而出。區(qū)塊鏈的發(fā)端與緣起5)首個(gè)區(qū)塊鏈應(yīng)用的誕生2008年11月1日,中本聰(SatoshiNakamoto)在密碼朋克社區(qū)發(fā)表了比特幣白皮書《比特幣:一種點(diǎn)對(duì)點(diǎn)的電子先進(jìn)系統(tǒng)》,闡述了一個(gè)以點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)、分布式記賬、工作量證明(PoW)共識(shí)機(jī)制、機(jī)密技術(shù)等為基礎(chǔ)構(gòu)建的電子現(xiàn)金支付系統(tǒng)。2009年1月3日,中本聰通過運(yùn)行比特幣系統(tǒng)產(chǎn)生了比特幣的第一個(gè)區(qū)塊,也就是創(chuàng)世區(qū)塊。比特幣系統(tǒng)的發(fā)明是為了解決:轉(zhuǎn)賬系統(tǒng)必須依賴中介機(jī)構(gòu)進(jìn)行處理和協(xié)調(diào)的問題。1.2區(qū)塊鏈的結(jié)構(gòu)什么叫區(qū)塊

區(qū)塊(block),就是區(qū)塊鏈中存儲(chǔ)數(shù)據(jù)的基本單元,是一組信息或者數(shù)據(jù)的集合,由區(qū)塊頭head和區(qū)塊體body構(gòu)成。區(qū)塊體只負(fù)責(zé)記錄前一段時(shí)間內(nèi)的所有交易信息,區(qū)塊鏈的大部分功能都由區(qū)塊頭實(shí)現(xiàn)。區(qū)塊頭head區(qū)塊高度:區(qū)塊的編號(hào),代表當(dāng)前是第多少個(gè)區(qū)塊當(dāng)前hash標(biāo)識(shí):當(dāng)前區(qū)塊唯一的標(biāo)識(shí)號(hào)碼,相當(dāng)于當(dāng)前區(qū)塊的身份證號(hào)前一個(gè)區(qū)塊hash標(biāo)識(shí):當(dāng)前區(qū)塊前一個(gè)區(qū)塊的身份證號(hào)時(shí)間戳:當(dāng)前區(qū)塊被創(chuàng)建的時(shí)間區(qū)塊體body數(shù)據(jù)內(nèi)容:當(dāng)前區(qū)塊實(shí)際需要存儲(chǔ)的數(shù)據(jù)集合由于區(qū)塊中的頭部,存在前一個(gè)區(qū)塊的標(biāo)識(shí),則意味著通過一個(gè)區(qū)塊,可以找到其前一個(gè)區(qū)塊,這樣多個(gè)區(qū)塊,在一起,就形成了一個(gè)鏈條就是我們所說的區(qū)塊鏈。什么叫區(qū)塊鏈簡(jiǎn)單來說,一個(gè)區(qū)塊就是一頁賬單,上面記錄了若干條交易數(shù)據(jù)而區(qū)塊鏈就是把這些賬單按照順序“裝訂”起來的賬本什么是哈希(hash)算法

哈希(hash)算法屬于摘要算法(MessageDigtest)的一種。它可以將任意數(shù)據(jù)生成固定長(zhǎng)度的16進(jìn)制字符串。

摘要算法的原理是:

世界上沒有完全一樣的葉子,每一個(gè)葉子都有自己的特征,提取某葉子獨(dú)一無二的特征就是摘要。

常見哈希算法:md5,sha1,sha256,sha512等,都是摘要算法.1,只要數(shù)據(jù)一樣,那么不管計(jì)算多少次都會(huì)獲得同一個(gè)字符串2,明文只要稍微改變,加密后的結(jié)果都會(huì)“面目全非”3,過程不可逆,無法從密文推導(dǎo)出明文哈希算法的特點(diǎn)1.3區(qū)塊鏈的特性BLOCKCHAINFEATURES區(qū)塊鏈特征BDAC獨(dú)立性基于協(xié)商一致的規(guī)范和協(xié)議(類似比特幣采用的哈希算法等各種數(shù)學(xué)算法),整個(gè)區(qū)塊鏈系統(tǒng)不依賴其他第三方,所有節(jié)點(diǎn)能夠在系統(tǒng)內(nèi)自動(dòng)安全地驗(yàn)證、交換數(shù)據(jù),不需要任何人為的干預(yù)。開放性區(qū)塊鏈技術(shù)基礎(chǔ)是開源的,除了交易各方的私有信息被加密外,區(qū)塊鏈的數(shù)據(jù)對(duì)所有人開放,任何人都可以通過公開的接口查詢區(qū)塊鏈數(shù)據(jù)和開發(fā)相關(guān)應(yīng)用,因此整個(gè)系統(tǒng)信息高度透明。去中心化區(qū)塊鏈技術(shù)不依賴額外的第三方管理機(jī)構(gòu)或硬件設(shè)施,沒有中心管制,除了自成一體的區(qū)塊鏈本身,通過分布式核算和存儲(chǔ),各個(gè)節(jié)點(diǎn)實(shí)現(xiàn)了信息自我驗(yàn)證、傳遞和管理。安全性只要不能掌控全部數(shù)據(jù)節(jié)點(diǎn)的51%,就無法肆意操控修改網(wǎng)絡(luò)數(shù)據(jù),這使區(qū)塊鏈本身變得相對(duì)安全,避免了主觀人為的數(shù)據(jù)變更。E匿名性除非有法律規(guī)范要求,單從技術(shù)上來講,各區(qū)塊節(jié)點(diǎn)的身份信息不需要公開或驗(yàn)證,信息傳遞可以匿名進(jìn)行。A.去中心化B.開放性C.獨(dú)立性D.安全性E.匿名性區(qū)塊鏈的特性—公開透明

從技術(shù)角度看,區(qū)塊鏈?zhǔn)且环N存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)被存儲(chǔ)在不同的“區(qū)塊”中,這些區(qū)塊按照時(shí)間順序串連成“鏈條”,形成“區(qū)塊鏈”。以比特幣為首的公有區(qū)塊鏈系統(tǒng)中,自創(chuàng)世區(qū)塊開始,所有區(qū)塊包含的交易信息都是公開、透明的。系統(tǒng)中的每一筆交易從何地址轉(zhuǎn)出、何時(shí)轉(zhuǎn)出、轉(zhuǎn)出金額、轉(zhuǎn)如何地址等信息都被全部記錄下來,并且公開可查。任何用戶通過運(yùn)行比特幣或以太坊的全節(jié)點(diǎn)客戶端,都能下載完整的賬本數(shù)據(jù)并查看上述交易及賬戶信息。ID:0x39f12a8f3e30f79a8e34bef042d6747771f425c3bc393a4240d749d739b794b5區(qū)塊鏈的特性—難以篡改

在區(qū)塊鏈中,除了創(chuàng)世區(qū)塊之外,每個(gè)區(qū)塊都指向前一個(gè)區(qū)塊。每個(gè)區(qū)塊的區(qū)塊頭部都包含一個(gè)“父區(qū)塊哈希值”,本區(qū)塊的哈希值受到前一個(gè)區(qū)塊(父區(qū)塊)哈希值的影響,如果前一個(gè)區(qū)塊的任何字段值發(fā)生變化,則本區(qū)塊的“父區(qū)塊哈希值”就會(huì)變化,同時(shí)本區(qū)塊的哈希值也會(huì)跟著變化。以此類推,區(qū)塊鏈中后續(xù)的區(qū)塊信息全部都要全部變化。區(qū)塊鏈規(guī)模越大,篡改工作量越大,同時(shí),區(qū)塊鏈中每一個(gè)全節(jié)點(diǎn)都存儲(chǔ)著一份相同的區(qū)塊鏈數(shù)據(jù)結(jié)構(gòu),要進(jìn)行篡改,僅篡改一個(gè)全節(jié)點(diǎn)是不夠的,需要同時(shí)篡改至少51%的全節(jié)點(diǎn)存儲(chǔ)數(shù)據(jù)。

區(qū)塊鏈的特性—可以追溯

區(qū)塊鏈信息的可追溯性來源于區(qū)塊鏈數(shù)據(jù)結(jié)構(gòu)的特殊性。

在區(qū)塊鏈系統(tǒng)中,它的鏈?zhǔn)浇Y(jié)構(gòu)是從創(chuàng)世區(qū)塊鏈開始的,其后系統(tǒng)產(chǎn)生的所有區(qū)塊都通過父區(qū)塊的哈希值前后相連,并最終追溯到創(chuàng)世區(qū)塊。由于每個(gè)區(qū)塊都包含一段時(shí)間內(nèi)系統(tǒng)進(jìn)行的所有交易數(shù)據(jù),系統(tǒng)完整的區(qū)塊鏈數(shù)據(jù)就包含了自創(chuàng)世區(qū)塊以來,所有進(jìn)行的交易及交易前后的關(guān)聯(lián)信息。當(dāng)追溯一筆交易時(shí),能夠順著該交易所在的區(qū)塊向前追溯所有歷史區(qū)塊信息。區(qū)塊鏈的特性—集體維護(hù)

區(qū)塊鏈的集體維護(hù)主要指區(qū)塊鏈系統(tǒng)在共識(shí)機(jī)制的作用下,激勵(lì)新節(jié)點(diǎn)不斷加入系統(tǒng),并集體參與系統(tǒng)的維護(hù)和運(yùn)作的特點(diǎn)。每一個(gè)區(qū)塊鏈都會(huì)有一套“共識(shí)機(jī)制”,用來使眾多互不相識(shí)的節(jié)點(diǎn)達(dá)成一致。共識(shí)機(jī)制激勵(lì)系統(tǒng)中的節(jié)點(diǎn)在參與系統(tǒng)運(yùn)作時(shí),令遵循這套機(jī)制的節(jié)點(diǎn)獲得利益最大化,不遵循甚至作惡的節(jié)點(diǎn)則會(huì)付出較大的代價(jià)而得不償失。因此,區(qū)塊鏈系統(tǒng)在沒有單一機(jī)構(gòu)的運(yùn)作和管理下,依靠共識(shí)機(jī)制就能讓系統(tǒng)自我運(yùn)作起來,具備集體維護(hù)的特征。區(qū)塊鏈的特性—去中心化/弱中心化

與傳統(tǒng)C/S(Client/Server)模式不同,區(qū)塊鏈系統(tǒng)中,沒有一個(gè)擁有特殊權(quán)限的中心服務(wù)器或單一機(jī)構(gòu)。系統(tǒng)中每個(gè)節(jié)點(diǎn)既是服務(wù)器也是客戶端,在系統(tǒng)中的權(quán)利和義務(wù)都是對(duì)等的(peertopeer,p2p)。任意一個(gè)節(jié)點(diǎn)宕機(jī)或者失效都不會(huì)影響整個(gè)系統(tǒng)的運(yùn)作,因此,區(qū)塊鏈系統(tǒng)在架構(gòu)上是去中心化/弱中心化的。區(qū)塊鏈演示/watch?v=_160oMzblY8謝·謝·觀·看Blockchain區(qū)塊鏈·技術(shù)導(dǎo)論CONCEPYPRINCIPLEANDAPPLICATION概念、原理與應(yīng)用第二章區(qū)塊鏈的基礎(chǔ)概念第二章的學(xué)習(xí)要點(diǎn)掌握分布式系統(tǒng)的概念,分布式系統(tǒng)和集中式系統(tǒng)的區(qū)別;充分理解分布式系統(tǒng)的一致性問題、FLP和CAP原理;掌握區(qū)塊鏈的三種分類以及每類區(qū)塊鏈的基本特征;了解公有鏈和聯(lián)盟鏈的主要應(yīng)用場(chǎng)景。2.1分布式系統(tǒng)捷徑科技集團(tuán)分布式系統(tǒng)的概念1)集中式系統(tǒng)架構(gòu),一般采用中心化的數(shù)據(jù)庫(kù)和服務(wù)器,優(yōu)點(diǎn)是部署簡(jiǎn)單、開發(fā)運(yùn)維容易;缺點(diǎn)是可擴(kuò)展性不足。2)分布式系統(tǒng)架構(gòu),一般由若干個(gè)獨(dú)立的計(jì)算機(jī)節(jié)點(diǎn)組成,這些節(jié)點(diǎn)可以看成是獨(dú)立的系統(tǒng)組件,通過網(wǎng)絡(luò)進(jìn)行連接并在一定范圍內(nèi)有效共享資源,節(jié)點(diǎn)之間通過傳遞信息進(jìn)行協(xié)調(diào)工作,共同完成系統(tǒng)內(nèi)的工作任務(wù)。分布式系統(tǒng)的基本特征1)分布性,分布式系統(tǒng)內(nèi)計(jì)算機(jī)節(jié)點(diǎn)可以分布在不同的位置。2)可擴(kuò)展性,分布式系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)量可以根據(jù)應(yīng)用需求進(jìn)行動(dòng)態(tài)增減,服務(wù)器也可以動(dòng)態(tài)部署。3)對(duì)等性,組成分布式系統(tǒng)的所有計(jì)算機(jī)節(jié)點(diǎn)都是對(duì)等的。副本(Replica)是分布式系統(tǒng)最常見的概念之一,指的是分布式系統(tǒng)對(duì)于數(shù)據(jù)和服務(wù)的一種冗余處理方式。數(shù)據(jù)副本,指不同節(jié)點(diǎn)上持久化存儲(chǔ)同一份數(shù)據(jù),當(dāng)某一個(gè)節(jié)點(diǎn)上存儲(chǔ)的數(shù)據(jù)丟失時(shí),可以從副本上讀取該數(shù)據(jù)。服務(wù)副本,指多個(gè)節(jié)點(diǎn)提供同樣的服務(wù),每個(gè)節(jié)點(diǎn)都有能力接收來自外部的請(qǐng)求并進(jìn)行相應(yīng)的處理。4)并發(fā)性,分布式系統(tǒng)中的多個(gè)計(jì)算機(jī)節(jié)點(diǎn)通過網(wǎng)絡(luò)進(jìn)行連接,并在一定范圍內(nèi)有效共享資源,某一時(shí)刻這些計(jì)算機(jī)節(jié)點(diǎn)可能會(huì)并發(fā)地操作一些共享的資源。分布式系統(tǒng)—FLP原理FLP原理(1985,F(xiàn)ischer、Lynch、Patterson):不要浪費(fèi)時(shí)間去為異步通信的分布式系統(tǒng)設(shè)計(jì),在任意場(chǎng)景下都能實(shí)現(xiàn)共識(shí)的算法,這樣的算法不存在(不可能原理)。在實(shí)際異步通信的分布式系統(tǒng)環(huán)境下,可能存在通信故障、延遲或者本身出現(xiàn)失效的情況,異步系統(tǒng)無法確保在有限時(shí)間內(nèi)完成一致性。原理可參考:/article/17009.html分布式系統(tǒng)—CAP原理CAP原理(2000,EricBrewer):1)一致性(Consistency)共享數(shù)據(jù)副本之間呈現(xiàn)出統(tǒng)一且實(shí)時(shí)的數(shù)據(jù)內(nèi)容。2)可用性(Availability)所有的數(shù)據(jù)操作總會(huì)在一定時(shí)間內(nèi)得到響應(yīng)。3)分區(qū)容錯(cuò)性(Partition)網(wǎng)絡(luò)連接中斷而導(dǎo)致網(wǎng)絡(luò)中的節(jié)點(diǎn)相互隔離無法訪問時(shí),被隔離的節(jié)點(diǎn)仍可以正常運(yùn)行。這三大特性無法同時(shí)實(shí)現(xiàn),設(shè)計(jì)中需要弱化其中某個(gè)特性,保證另外兩個(gè)特性。分布式系統(tǒng)的一致性分布式系統(tǒng)的一致性是設(shè)計(jì)分布式系統(tǒng)時(shí)應(yīng)考慮的最核心問題,它是指,對(duì)系統(tǒng)內(nèi)的所有計(jì)算機(jī)節(jié)點(diǎn)給定一組操作,按照約定的規(guī)則協(xié)議,節(jié)點(diǎn)之間對(duì)于操作后的最終處理結(jié)果達(dá)成某種共同認(rèn)可的狀態(tài)。分布式系統(tǒng)的一致性表明,系統(tǒng)本身具有容忍一定數(shù)量節(jié)點(diǎn)發(fā)生錯(cuò)誤行為的能力,這些發(fā)生錯(cuò)位行為的節(jié)點(diǎn)稱為故障節(jié)點(diǎn),占整個(gè)分布式系統(tǒng)全部節(jié)點(diǎn)數(shù)量的比例稱為分布式系統(tǒng)的容錯(cuò)率。一致性目標(biāo):系統(tǒng)在出現(xiàn)節(jié)點(diǎn)處理慢、宕機(jī)等各種故障時(shí),依然能正常滿足工作的要求,最終系統(tǒng)通過檢測(cè)和處理,節(jié)點(diǎn)依然能達(dá)成全局一致性狀態(tài)。達(dá)成一致性需滿足一下幾個(gè)基本要求:1)收斂性:一致的結(jié)果在有限時(shí)間內(nèi)完成。——正常使用的前提2)一致性:不同節(jié)點(diǎn)最終完成決策的結(jié)果是相同的?!沧R(shí)3)有效性:決策的結(jié)果必須是某個(gè)節(jié)點(diǎn)提出的方案——最終一致性的執(zhí)行結(jié)果。分布式系統(tǒng)的安全可信計(jì)算機(jī)節(jié)點(diǎn)——地理位置分布不同——存在復(fù)雜的通信行為——節(jié)點(diǎn)或節(jié)點(diǎn)通信存在故障將影響到系統(tǒng)的安全性和結(jié)果的可信度。系統(tǒng)的安全性——在攻擊者無法通過影響系統(tǒng)內(nèi)的部分節(jié)點(diǎn)或者其他手段,造成分布式系統(tǒng)整體功能故障而無法正常工作。系統(tǒng)的可信性——系統(tǒng)最終完成計(jì)算任務(wù)得出的全局一致性狀態(tài)結(jié)果對(duì)于所有節(jié)點(diǎn)及系統(tǒng)用戶均是可信的?!ㄟ^系統(tǒng)內(nèi)數(shù)據(jù)和服務(wù)副本的冗余性來保證全局狀態(tài)數(shù)據(jù)的不可篡改來實(shí)現(xiàn)可信。1.2區(qū)塊鏈的分類區(qū)塊鏈的相關(guān)概念賬本(Ledger):按照時(shí)序方法組織的事務(wù)數(shù)據(jù)集合。分布式賬本(DistributedLedger):在分布式節(jié)點(diǎn)間共享并使用共識(shí)機(jī)制實(shí)現(xiàn)具備最終一致性的賬本。集中式記賬:引入一個(gè)超級(jí)記賬機(jī)構(gòu)。區(qū)塊鏈的相關(guān)概念區(qū)塊(Block):按時(shí)間次序構(gòu)建的數(shù)據(jù)結(jié)構(gòu),第一個(gè)區(qū)塊稱為“創(chuàng)世區(qū)塊(GennesisBlock)”,后續(xù)生成的區(qū)塊用“高度”標(biāo)識(shí),一個(gè)區(qū)塊的基本數(shù)據(jù)是區(qū)塊頭和區(qū)塊體。區(qū)塊的大小不是固定的,主要根據(jù)交易列表的大小來確定,考慮到帶寬等因素,一般在1MB到幾MB之間。區(qū)塊鏈的相關(guān)概念節(jié)點(diǎn)(Node):計(jì)算機(jī)安裝了區(qū)塊鏈系統(tǒng)所需的軟、硬件,并加入了區(qū)塊鏈網(wǎng)絡(luò),可以稱為一個(gè)節(jié)點(diǎn)。節(jié)點(diǎn)參與區(qū)塊鏈系統(tǒng)的網(wǎng)絡(luò)通信、邏輯運(yùn)算、數(shù)據(jù)驗(yàn)證,并對(duì)客戶端提供交易處理和數(shù)據(jù)查詢的接口。節(jié)點(diǎn)采用公私鑰機(jī)制、生成一串唯一的節(jié)點(diǎn)ID,保證它在網(wǎng)絡(luò)上的唯一性。區(qū)塊鏈的相關(guān)概念交易(Trade):認(rèn)為是一段發(fā)往區(qū)塊鏈系統(tǒng)的請(qǐng)求數(shù)據(jù),用于部署合約,調(diào)用合約接口,維護(hù)合約的生命周期,以及管理資產(chǎn)和進(jìn)行價(jià)值交換等,交易的基本數(shù)據(jù)結(jié)構(gòu)包括發(fā)送者、接收者、交易數(shù)據(jù)等。用戶可以構(gòu)建一個(gè)交易,用自己的私鑰給交易簽名,發(fā)送到鏈上,由多個(gè)節(jié)點(diǎn)的共識(shí)機(jī)制處理,執(zhí)行相關(guān)的智能合約代碼,生成交易指定的狀態(tài)數(shù)據(jù),然后交易打包到區(qū)塊里,和狀態(tài)數(shù)據(jù)一起落盤存儲(chǔ),該交易即被確認(rèn),被確認(rèn)的交易具備事務(wù)性和一致性。區(qū)塊鏈的相關(guān)概念賬戶(Account):在采用賬戶模型設(shè)計(jì)的區(qū)塊鏈系統(tǒng)中,賬戶代表用戶、智能合約的唯一性存在。用戶創(chuàng)建一個(gè)公私鑰對(duì),經(jīng)過hash等算法換算即得到一個(gè)唯一性的地址串,代表這個(gè)用戶的賬戶,用戶用該私鑰管理這個(gè)賬戶里的資產(chǎn)。區(qū)塊鏈的分類準(zhǔn)則根據(jù)系統(tǒng)是否具有節(jié)點(diǎn)準(zhǔn)入機(jī)制,區(qū)塊鏈可分為:許可鏈和非許可鏈許可鏈:授權(quán)網(wǎng)絡(luò),節(jié)點(diǎn)加入時(shí)需要注冊(cè)并驗(yàn)證身份,權(quán)限受系統(tǒng)管理機(jī)構(gòu)控制,節(jié)點(diǎn)退出時(shí)也需要系統(tǒng)管理機(jī)構(gòu)的許可?!鶕?jù)中心化程度分為聯(lián)盟鏈和私有鏈。非許可鏈:完全開放的非授權(quán)網(wǎng)絡(luò),節(jié)點(diǎn)可以隨時(shí)自由加入和退出網(wǎng)絡(luò)——公有鏈公有鏈定義

公有鏈通常不設(shè)準(zhǔn)入門檻,節(jié)點(diǎn)自由訪問,參與共識(shí),并在公有鏈上創(chuàng)建應(yīng)用。公有鏈的公開透明令其不太適合那些對(duì)數(shù)據(jù)隱私、商業(yè)機(jī)密要求高的場(chǎng)景,更適合對(duì)信任、安全和持久性要求較高的場(chǎng)景。公有鏈應(yīng)用

公有鏈可運(yùn)用在數(shù)字資產(chǎn)等場(chǎng)景,比如比特幣和以太坊等。也可以應(yīng)用在一些點(diǎn)對(duì)點(diǎn)交互需求的場(chǎng)景,如資產(chǎn)注冊(cè)登記、發(fā)行、投票、資產(chǎn)管理等。

在區(qū)塊鏈中,Token(通證)是基于區(qū)塊鏈創(chuàng)建的一種數(shù)字對(duì)象,代表區(qū)塊鏈的某種價(jià)值或權(quán)利,一般以加密貨幣的形式存在,例如貨幣、積分、票據(jù)、投票權(quán)、分紅權(quán)、地產(chǎn)、證券等各種權(quán)益證明。Token為提升可信程度,會(huì)選擇公有鏈作為載體去發(fā)行。私有鏈定義與應(yīng)用

私有鏈服務(wù)于特點(diǎn)企業(yè)、組織或個(gè)人,是由該企業(yè)、組織或個(gè)人進(jìn)行管理的區(qū)塊鏈。其具有相對(duì)封閉的網(wǎng)絡(luò),只對(duì)制定的實(shí)體或個(gè)人開放,只有相關(guān)節(jié)點(diǎn)在許可認(rèn)證后才能加入、退出網(wǎng)絡(luò)。私有鏈同時(shí)具有受控制的讀寫權(quán)限,只能特點(diǎn)權(quán)限的鏈上節(jié)點(diǎn)才能在鏈上發(fā)布和訪問交易信息,只有一部分擁有權(quán)限的節(jié)點(diǎn)才能參與共識(shí)和記賬。與聯(lián)盟鏈不同,私有鏈節(jié)點(diǎn)均屬于統(tǒng)一企業(yè)或組織,節(jié)點(diǎn)之間信任程度更高,并且私有鏈共識(shí)范圍更加狹窄,甚至可以僅由單高性能節(jié)點(diǎn)進(jìn)行記賬。私有鏈在三類區(qū)塊鏈中分布式程度和信息公開程度最低,因此性能最高,隱私性最強(qiáng)且交易成本最低,一般用于企業(yè)內(nèi)部的數(shù)據(jù)管理、審計(jì)等金融場(chǎng)景。區(qū)塊鏈應(yīng)用的發(fā)展趨勢(shì)區(qū)塊鏈的應(yīng)用方式從其誕生開始經(jīng)歷了三個(gè)發(fā)展階段。第一階段:比特幣為代表的點(diǎn)對(duì)點(diǎn)支付時(shí)代。主要實(shí)現(xiàn)高效率、點(diǎn)對(duì)點(diǎn)的支付過程,主要應(yīng)用場(chǎng)景包括支付、流通等。第二階段:以太坊代表的智能合約時(shí)代。區(qū)塊鏈與智能合約相結(jié)合,實(shí)現(xiàn)在區(qū)塊鏈上部署應(yīng)用程序,包括可編程金融,分布式應(yīng)用(DecentralizationApplications,DApps)等落地。第三階段:“區(qū)塊鏈+行業(yè)”應(yīng)用時(shí)代,以實(shí)現(xiàn)具體行業(yè)應(yīng)用落地為目標(biāo),解決行業(yè)痛點(diǎn),服務(wù)經(jīng)濟(jì)發(fā)展和社會(huì)進(jìn)步?!壳罢诖穗A段,正成為一種通用基礎(chǔ)設(shè)施,加速與行業(yè)進(jìn)行融合創(chuàng)新。區(qū)塊鏈不是一個(gè)單一技術(shù),而是多種技術(shù)的綜合集成,包括P2P網(wǎng)絡(luò)通信,非對(duì)稱加密技術(shù)以及分布式數(shù)據(jù)庫(kù)技術(shù)等。同時(shí),區(qū)塊鏈應(yīng)用還涉及多節(jié)點(diǎn)參與的協(xié)調(diào)問題,實(shí)施區(qū)塊鏈解決方案可能面臨計(jì)算復(fù)雜度和存儲(chǔ)冗余度都比較高的情況,區(qū)塊鏈和其他技術(shù)結(jié)合可以有效降低復(fù)雜度,加速區(qū)塊鏈應(yīng)用落地進(jìn)程。聯(lián)盟鏈定義

聯(lián)盟鏈屬于許可鏈的范疇,服務(wù)于符合某種條件的成員組成的聯(lián)盟,是由聯(lián)盟成員進(jìn)行管理的區(qū)塊鏈。其具有半開放的網(wǎng)絡(luò),只有經(jīng)過認(rèn)證許可的可信節(jié)點(diǎn)才能加入、退出網(wǎng)絡(luò)。其具有受控制的讀寫權(quán)限,只有特定權(quán)限的鏈上節(jié)點(diǎn)才能在鏈上發(fā)布和訪問交易,只有一部分擁有權(quán)限的可信節(jié)點(diǎn)才能參與該聯(lián)盟鏈的共識(shí)和記賬。聯(lián)盟鏈沒有通過激勵(lì)機(jī)制實(shí)現(xiàn)系統(tǒng)自治的強(qiáng)烈需求,各聯(lián)盟根據(jù)自身需求自主選擇增加激勵(lì)機(jī)制。聯(lián)盟鏈的分布式程度和信息公開程度不及公有鏈,但也因此可以更好地保護(hù)用戶、交易隱私。同時(shí)由于交易只需要部分被授權(quán)的授信高算力節(jié)點(diǎn)進(jìn)行驗(yàn)證共識(shí),因此性能較公有鏈更高,成本較公有鏈更低。聯(lián)盟鏈應(yīng)用聯(lián)盟鏈只對(duì)特定的參與組織開放權(quán)限,可以保護(hù)參與者的交易數(shù)據(jù)隱私,適合機(jī)構(gòu)之間的交易、清結(jié)算和B2B等場(chǎng)景。聯(lián)盟鏈的應(yīng)用場(chǎng)景非常豐富,主要包括金融和非金融領(lǐng)域:1)金融領(lǐng)域:支付、保險(xiǎn)、清結(jié)算、股權(quán)登記、征信、供應(yīng)鏈金融等金融場(chǎng)景對(duì)于信任要求高,同時(shí)也需要保護(hù)數(shù)據(jù)隱私,適合作為聯(lián)盟鏈場(chǎng)景。2)非金融領(lǐng)域:非金融領(lǐng)域主要通過區(qū)塊鏈不可篡改的特性來追蹤、記錄和共享數(shù)據(jù),如區(qū)塊鏈應(yīng)用在商品溯源、電子政務(wù)、智慧城市、公益慈善、醫(yī)療健康等場(chǎng)景。聯(lián)盟鏈-HyperledgerFabric平臺(tái)2015年,Linux基金會(huì)啟動(dòng)了Hyperledger項(xiàng)目,目標(biāo)是發(fā)展跨行業(yè)的區(qū)塊鏈技術(shù)。HyperledgerFabric是Hyperledger中的一個(gè)區(qū)塊鏈項(xiàng)目,是分布式賬本解決方案的平臺(tái),以模塊化架構(gòu)為基礎(chǔ),支持不同組件的可插拔。包含一個(gè)賬本,使用智能合約并且是一個(gè)通過所有參與者管理交易的系統(tǒng)。智能合約:為了持續(xù)的進(jìn)行信息的更新,以及對(duì)賬本進(jìn)行管理(寫入交易,進(jìn)行查詢等),區(qū)塊鏈網(wǎng)絡(luò)引入了智能合約來實(shí)現(xiàn)對(duì)賬本的訪問和控制。智能合約不僅僅可用于在區(qū)塊鏈網(wǎng)絡(luò)中打包信息,它們也可以被用于自動(dòng)的執(zhí)行由參與者定義的特定交易操作。聯(lián)盟鏈-HyperledgerFabric平臺(tái)共

識(shí):保持網(wǎng)絡(luò)中所有賬本交易的同步流程,就是共識(shí)。確保賬本僅在交易被適當(dāng)?shù)膮⑴c者批準(zhǔn)時(shí)更新,并且當(dāng)賬本更新時(shí),它們以相同的順序更新相同的交易。成員管理MSP(MembershipServiceProvider)

MSP用來登記所有的成員。賬本數(shù)據(jù)可被存儲(chǔ)為多種格式,共識(shí)機(jī)制可被接入或者斷開,同時(shí)支持多種不同的MSP.通道(Channel)

參與者可以建立通道channel,同一個(gè)channel中的參與者,才會(huì)擁有該channel中的賬本,而其他不在此channel中的參與者則看不到這個(gè)賬本。共享賬本(SharedLedger)共享賬本包含世界狀態(tài)(worldstate)和交易記錄(transactionlog)。在HyperledgerFabric網(wǎng)絡(luò)中的每一個(gè)參與者都擁有一個(gè)賬本的副本。1.世界狀態(tài)組件描述了賬本在特定時(shí)間點(diǎn)的狀態(tài),它是賬本的數(shù)據(jù)庫(kù)。2.交易記錄組件記錄了產(chǎn)生世界狀態(tài)當(dāng)前值的所有交易,它是世界狀態(tài)的更新歷史。3.賬本則是世界狀態(tài)數(shù)據(jù)庫(kù)和交易歷史記錄的集合。聯(lián)盟鏈應(yīng)用—食品供應(yīng)鏈

在傳統(tǒng)的供應(yīng)鏈模式中,有關(guān)實(shí)體的信息對(duì)供應(yīng)鏈中的其他人來說并不完全透明,這就導(dǎo)致了不準(zhǔn)確的報(bào)告和缺乏互操作性問題。電子郵件和印刷文檔提供了一些信息,但它們不可能包含完整詳細(xì)的可見性數(shù)據(jù),因?yàn)楹茈y在整個(gè)供應(yīng)鏈中去追蹤產(chǎn)品。這也使消費(fèi)者幾乎不可能知道產(chǎn)品的真正價(jià)值和來源。食品行業(yè)的供應(yīng)鏈環(huán)境復(fù)雜,多個(gè)參與者需要協(xié)作將貨物運(yùn)送到最終目的地——客戶手中。下圖顯示了食品供應(yīng)鏈(多級(jí))網(wǎng)絡(luò)中的主要參與者。

該供應(yīng)鏈的每個(gè)階段都會(huì)引入潛在的安全問題、整合問題和其他低效問題。目前食品供應(yīng)鏈中的主要威脅仍然是假冒食品和食品欺詐。

基于Hyperledger區(qū)塊鏈的食品跟蹤系統(tǒng)可實(shí)現(xiàn)對(duì)食品信息全面的可視性和和可追溯性。更重要的是,它以一種不變但可行的方式來記錄產(chǎn)品細(xì)節(jié),確保食品信息的真實(shí)性。最終用戶通過在不可變框架上共享產(chǎn)品的詳細(xì)信息,可以自我驗(yàn)證產(chǎn)品的真實(shí)性。聯(lián)盟鏈-HyperledgerFabric平臺(tái)身

份(Identity):區(qū)塊鏈網(wǎng)絡(luò)中的不同參與者包括對(duì)等點(diǎn)(peers)、訂購(gòu)者(orderers)、客戶端應(yīng)用程序(clientapplications,)、管理員(administrators)等。作用:確定了對(duì)資源的確切權(quán)限以及參與者在區(qū)塊鏈網(wǎng)絡(luò)中擁有的信息的訪問權(quán)限。主體(Principal)

身份和相關(guān)屬性的聯(lián)合提供了一個(gè)特殊的名稱。像userID或groupID,但更靈活一些,因?yàn)樗鼈兛梢园瑓⑴c者身份的廣泛屬性,例如參與者的組織、組織單位、角色甚至參與者的特定身份。會(huì)員服務(wù)提供者(MSP)

要使身份可驗(yàn)證,它必須來自受信任的權(quán)威機(jī)構(gòu)。Fabric中使用會(huì)員服務(wù)提供者(MSP)組件實(shí)現(xiàn),采用傳統(tǒng)的公鑰基礎(chǔ)設(shè)施(PKI)分層模型,它定義了管理該組織的有效身份的規(guī)則。

PKI和MSP以相同的方式協(xié)同工作——PKI提供身份列表,而MSP說明其中哪些是參與網(wǎng)絡(luò)的給定組織的成員。PKI類似卡片提供商——它分發(fā)許多不同類型的可驗(yàn)證身份。(如發(fā)行A卡、B卡、C卡)MSP就像商店接受的卡提供商列表,確定哪些身份是商店支付網(wǎng)絡(luò)的受信任成員(參與者)。MSP將可驗(yàn)證的身份轉(zhuǎn)變?yōu)閰^(qū)塊鏈網(wǎng)絡(luò)的成員。(如商店僅支持A卡、B卡)聯(lián)盟鏈-HyperledgerFabric平臺(tái)公鑰基礎(chǔ)設(shè)施(PublicKeyInfrastructure,PKI):是一組互聯(lián)網(wǎng)技術(shù),可在網(wǎng)絡(luò)中提供安全通信。區(qū)塊鏈網(wǎng)絡(luò)不僅僅是一個(gè)通信網(wǎng)絡(luò),它依賴于PKI標(biāo)準(zhǔn)來確保各種網(wǎng)絡(luò)參與者之間的安全通信,并確保發(fā)布在區(qū)塊鏈上的消息得到正確的身份驗(yàn)證。PKI由向各方(例如,服務(wù)的用戶、服務(wù)提供商)頒發(fā)數(shù)字證書的證書頒發(fā)機(jī)構(gòu)組成,然后使用它們?cè)谂c環(huán)境交換的消息中進(jìn)行身份驗(yàn)證。PKI四個(gè)關(guān)鍵要素?cái)?shù)字證書(DigitalCertificates)公鑰和私鑰(PublicandPrivateKeys)證書頒發(fā)機(jī)構(gòu)(CertificateAuthorities)證書吊銷列表(CertificateRevocationLists)聯(lián)盟鏈-HyperledgerFabric平臺(tái)數(shù)字證書(DigitalCertificates):數(shù)字證書是一種文檔,其中包含與證書持有者相關(guān)的一組屬性。最常見的證書類型是符合X.509標(biāo)準(zhǔn)的證書,它允許在其結(jié)構(gòu)中對(duì)一方的識(shí)別細(xì)節(jié)進(jìn)行編碼。Mary身份信息Subject包含了若干屬性,另X.509證書中還有其他屬性。Mary是SUBJECT證書的主人,突出顯示的SUBJECT文本顯示了關(guān)于Mary的關(guān)鍵事實(shí)。Mary的公鑰在證書上顯示,私鑰沒顯示,私鑰必須保密。所有屬性都可以使用稱為密碼學(xué)的數(shù)學(xué)技術(shù)記錄下來,這樣篡改就會(huì)使證書失效Mary的X.509證書可看成一張無法更改的數(shù)字身份證。聯(lián)盟鏈-HyperledgerFabric平臺(tái)證書頒發(fā)機(jī)構(gòu)(CertificateAuthorities,CA):CA將證書分發(fā)給不同的參與者。這些證書由CA進(jìn)行數(shù)字簽名,并將參與者與參與者的公鑰綁定在一起(以及可選的完整屬性列表)。證書可以廣泛傳播,因?yàn)樗鼈兗炔话▍⑴c者的私鑰,也不包括CA的私鑰。因此,它們可以用作信任錨,以驗(yàn)證來自不同參與者的消息。CA有兩種形式:根CA和中間CA。中間CA的證書由根CA或其他中間機(jī)構(gòu)頒發(fā),允許為鏈中任何CA頒發(fā)的任何證書建立“信任鏈”。它限制了根CA的暴露,減少了危及整個(gè)信任鏈的風(fēng)險(xiǎn)。聯(lián)盟鏈-HyperledgerFabric平臺(tái)證書吊銷列表(CertificateRevocationLists,CRL):它只是對(duì)CA知道由于某種原因而被吊銷的證書的引用列表.當(dāng)?shù)谌较胍?yàn)證另一方的身份時(shí),它首先檢查頒發(fā)CA的CRL以確保證書沒有被吊銷。使用CRL檢查證書是否仍然有效。如果冒名頂替者試圖將受損的數(shù)字證書傳遞給驗(yàn)證方,則可以首先根據(jù)頒發(fā)CA的CRL檢查它,以確保它沒有失效。聯(lián)盟鏈-FISCOBCOS平臺(tái)FISCOBCOS區(qū)塊鏈社區(qū)是由微眾銀行發(fā)起的聯(lián)盟鏈社區(qū)。自2017年成立以來,項(xiàng)目已成功支持政務(wù)、金融、農(nóng)業(yè)、公益、文娛、供應(yīng)鏈、物聯(lián)網(wǎng)等多個(gè)行業(yè)的數(shù)百個(gè)區(qū)塊鏈應(yīng)用場(chǎng)景落地,收集到的標(biāo)桿應(yīng)用超過200個(gè)基于FISCOBCOS平臺(tái)的典型案例有:人民網(wǎng)基于FISCOBCOS區(qū)塊鏈技術(shù)推出的“人民版權(quán)”平臺(tái);BSN(區(qū)塊鏈服務(wù)網(wǎng)絡(luò))啟動(dòng)全球商用,F(xiàn)ISCOBCOS成為首個(gè)完成適配的國(guó)產(chǎn)區(qū)塊鏈底層。同時(shí),F(xiàn)ISCOBCOS針對(duì)中國(guó)本土國(guó)情打造了完整國(guó)密算法體系,支持國(guó)密SM1、SM2、SM3、SM4等全部標(biāo)準(zhǔn);構(gòu)建了全套監(jiān)管解決方案,實(shí)現(xiàn)穿透式監(jiān)管,所有數(shù)據(jù)可監(jiān)管、可審計(jì)、可追溯;支持場(chǎng)景式隱私保護(hù),其一站式隱私保護(hù)解決方案,提供全周期敏感數(shù)據(jù)隱私保障,且支持零知識(shí)證明和同態(tài)加密算法。聯(lián)盟鏈-FISCOBCOS平臺(tái)FISCOBCOS發(fā)起方和主要參與者均是國(guó)內(nèi)本土企業(yè),更加符合國(guó)內(nèi)開發(fā)者的開發(fā)習(xí)慣。FISCOBCOS的特點(diǎn)是自主可控,已實(shí)現(xiàn)從國(guó)密算法、操作系統(tǒng)、芯片架構(gòu)到服務(wù)器平臺(tái)的完整國(guó)產(chǎn)化支持,包括無縫適配國(guó)產(chǎn)麒麟操作系統(tǒng)、全部模塊支持ARM架構(gòu),并在計(jì)算、網(wǎng)絡(luò)、存儲(chǔ)等各環(huán)節(jié)采用國(guó)密算法,實(shí)現(xiàn)區(qū)塊鏈訪問全流程國(guó)密防護(hù)。對(duì)比維度HyperledgerFabricFISCOBCOS適用框架適合不同領(lǐng)域的通用框架通用框架、符合金融級(jí)的應(yīng)用標(biāo)準(zhǔn)配套技術(shù)有外部第三方開發(fā)的技術(shù)組件有區(qū)塊鏈中間件平臺(tái)WeBASE、分布式身份解決方案WeIdentity、分布式事件驅(qū)動(dòng)架構(gòu)WeEvent、跨鏈協(xié)作方案WeCross、場(chǎng)景式隱私保護(hù)解決方案WeDPR、ChainIDE、FISCOBCOS區(qū)塊鏈工具箱、AnsibleforFISCOBCOS自動(dòng)化生成企業(yè)級(jí)部署文件等配套技術(shù)模塊共識(shí)機(jī)制通過不同的角色實(shí)現(xiàn)共識(shí),排序采用raft共識(shí)pbft/raft/rpbft權(quán)限管控基于策略的權(quán)限控制基于角色的權(quán)限控制,權(quán)限控制最終體現(xiàn)在賬戶對(duì)表的操作上性能支持少數(shù)節(jié)點(diǎn);TPS=3400(依賴于測(cè)試環(huán)境,結(jié)果僅供參考)所采用的rPBFT共識(shí)算法,可以在安全性和效率之間動(dòng)態(tài)調(diào)整參數(shù),減少節(jié)點(diǎn)規(guī)模對(duì)共識(shí)算法的影響,因此理論上節(jié)點(diǎn)不受限制;TPS=20000(依賴于測(cè)試環(huán)境,結(jié)果僅供參考)跨鏈支持主流BaaS廠商支持跨鏈;存在同構(gòu)跨鏈方案WeCross跨鏈方案(開源);支持同構(gòu)、異構(gòu)跨鏈,例如支持FISCOBCOS和HyperledgerFabric之間的異構(gòu)跨鏈加密算法存在第三方支持方案;計(jì)劃支持國(guó)密支持國(guó)密開源協(xié)議Apache2.0GPL3.01.3區(qū)塊鏈的應(yīng)用區(qū)塊鏈的優(yōu)勢(shì)1.信息不可篡改

一旦信息經(jīng)過驗(yàn)證并添加至區(qū)塊鏈,就會(huì)永久的存儲(chǔ)起來,除非能夠同時(shí)控制住系統(tǒng)中超過一定比例(取決于共識(shí)機(jī)制,例如比特幣是51%)的節(jié)點(diǎn),否則單個(gè)節(jié)點(diǎn)上對(duì)數(shù)據(jù)庫(kù)的修改無效,因此區(qū)塊鏈的數(shù)據(jù)穩(wěn)定性和可靠性極高。

區(qū)塊鏈最容易被理解的特性是不可篡改的特性。不可篡改是基于“區(qū)塊+鏈”(block+chain)的獨(dú)特賬本而形成的:存有交易的區(qū)塊按照時(shí)間順序持續(xù)加到鏈的尾部。要修改一個(gè)區(qū)塊中的數(shù)據(jù),就需要重新生成它之后的所有區(qū)塊。2.天然非中心化:對(duì)等網(wǎng)絡(luò),熱備和容災(zāi)3.用戶身份匿名:固定算法,無需信任4.整體的開放性:公開透明5.社區(qū)自治理:協(xié)商一致的規(guī)范和協(xié)議區(qū)塊鏈的劣勢(shì)區(qū)塊鏈的特點(diǎn)讓區(qū)塊鏈不具備對(duì)接現(xiàn)有金融體系的成本優(yōu)勢(shì),使其無法滿足經(jīng)濟(jì)金融中大量的交易活動(dòng)的需求,如產(chǎn)權(quán)交易活動(dòng)、房產(chǎn)交易活動(dòng)、證券登記托管等。1.不可撤銷區(qū)塊鏈中,如果誤操作,或者丟失密碼,損失將無法挽回。2.私密性由于區(qū)塊鏈?zhǔn)欠植际?,交易賬本必須公開透明,沒有隱私可言。3.存儲(chǔ)空間由于需要掌握所有歷史記錄,交易數(shù)量大的時(shí)候,性能受影響。4.延遲性分布式的特點(diǎn),需要大家認(rèn)證,因此,存在交易的延遲。5.當(dāng)數(shù)據(jù)量越大伴隨的性能問題每次交易為了驗(yàn)證你確實(shí)擁有足夠的錢而需要追溯歷史每一筆交易來計(jì)算余額。6.能耗問題區(qū)塊的生成需要礦工進(jìn)行無數(shù)無意義的計(jì)算,這是非常耗費(fèi)能源的。區(qū)塊鏈的應(yīng)用方向區(qū)塊鏈通過密碼學(xué)、共識(shí)機(jī)制、價(jià)值交換解決了人與人之間價(jià)值交互的信任及公平性問題,是對(duì)現(xiàn)有互聯(lián)網(wǎng)技術(shù)的升級(jí)補(bǔ)充?;趨^(qū)塊鏈的優(yōu)缺點(diǎn)分析,區(qū)塊鏈應(yīng)用有五個(gè)重要的目標(biāo):促進(jìn)數(shù)據(jù)共享、優(yōu)化業(yè)務(wù)流程、降低運(yùn)營(yíng)成本、提升協(xié)同效率、建設(shè)可信體系。

應(yīng)用方向參考標(biāo)準(zhǔn):

一個(gè)好的區(qū)塊鏈技術(shù)應(yīng)用場(chǎng)景一定會(huì)涉及到多個(gè)信任主體,需要有去信任中介的方式來合作。

一定是主體之間有比較強(qiáng)的合作關(guān)系,這是商業(yè)的需要。

與中心化系統(tǒng)相比,區(qū)塊鏈技術(shù)效率低下,一般來講只能用于中低頻交易場(chǎng)景,是否可以滿足交易需求。

激勵(lì)體制與商業(yè)模式一定要完備、可持續(xù)發(fā)展?!?區(qū)塊鏈”:老問題將本增效;

“區(qū)塊鏈+”:解決新問題。區(qū)塊鏈的應(yīng)用方向1.存證。區(qū)塊鏈“不可篡改”的特點(diǎn),為經(jīng)濟(jì)社會(huì)發(fā)展中的“存證”難題提供了解決方案。只要能夠確保上鏈信息和數(shù)據(jù)的真實(shí)性,那么區(qū)塊鏈就可以解決信息的“存”和“證”難題。2.共享。區(qū)塊鏈“分布式”的特點(diǎn),可以打通部門間的“數(shù)據(jù)壁壘”,實(shí)現(xiàn)信息和數(shù)據(jù)共享。3.信任。區(qū)塊鏈形成“共識(shí)機(jī)制”,能夠解決信息不對(duì)稱問題,真正實(shí)現(xiàn)從“信息互聯(lián)網(wǎng)”到“信任互聯(lián)網(wǎng)”的轉(zhuǎn)變。4.協(xié)作。區(qū)塊鏈通過“智能合約”,能夠?qū)崿F(xiàn)多個(gè)主體之間的協(xié)作信任,從而大大拓展人類相互合作的范圍和深度。區(qū)塊鏈通過創(chuàng)造信任來創(chuàng)造價(jià)值。區(qū)塊鏈創(chuàng)造了信任,因?yàn)閮?chǔ)存于其中的信息和數(shù)據(jù)不可篡改并全網(wǎng)見證,從而使得信任不需要第三方機(jī)構(gòu)背書,能夠通過點(diǎn)對(duì)點(diǎn)自動(dòng)完成;區(qū)塊鏈推動(dòng)了合作,因?yàn)榉植际綌?shù)據(jù)可以實(shí)現(xiàn)所有節(jié)點(diǎn)信息共享,而智能合約能夠協(xié)同交易雙方的行為。區(qū)塊鏈拓展了人類的信任基礎(chǔ),除了第三方擔(dān)保和強(qiáng)制執(zhí)行,區(qū)塊鏈第一次使得人類的信任可以基于人類自己發(fā)明的邏輯和數(shù)學(xué),提高了人類合作的能力。謝·謝·觀·看Blockchain區(qū)塊鏈·技術(shù)導(dǎo)論CONCEPYPRINCIPLEANDAPPLICATION概念、原理與應(yīng)用第三章區(qū)塊鏈的基礎(chǔ)技術(shù)第三章的學(xué)習(xí)要點(diǎn)理解區(qū)塊鏈的組成技術(shù);理解區(qū)塊鏈的總體架構(gòu);熟悉區(qū)塊鏈的數(shù)據(jù)結(jié)構(gòu);了解區(qū)塊鏈技術(shù)的發(fā)展。3.1區(qū)塊鏈的總體架構(gòu)捷徑科技集團(tuán)區(qū)塊鏈系統(tǒng)的復(fù)雜性假設(shè)A和B之間要進(jìn)行一筆轉(zhuǎn)賬,這是區(qū)塊鏈上最簡(jiǎn)單的一個(gè)操作,但實(shí)際上其中的大量步驟需要區(qū)塊鏈來完成。1)A需要借助什么樣的應(yīng)用來完成轉(zhuǎn)賬?2)由誰來檢查A地址中的余額,又由誰來核驗(yàn)真實(shí)性?3)在區(qū)塊鏈這個(gè)分布式系統(tǒng)中,眾多節(jié)點(diǎn)如何就A轉(zhuǎn)賬給B這件事達(dá)成一致?4)由誰來通知B收到了這筆轉(zhuǎn)賬?5)B又該把“收款憑證”存在哪里?——如何將一個(gè)系統(tǒng)的復(fù)雜問題簡(jiǎn)單化?分層是一個(gè)好方法,通過分層,可以將區(qū)塊鏈系統(tǒng)拆分成若干個(gè)局部問題,并用層級(jí)間的遞進(jìn)關(guān)系串聯(lián)起來互聯(lián)網(wǎng)分層模型1977年,為了推動(dòng)國(guó)際網(wǎng)絡(luò)的通用化,國(guó)際標(biāo)準(zhǔn)化組織(ISO)實(shí)施了一項(xiàng)開發(fā)通用網(wǎng)絡(luò)標(biāo)準(zhǔn)和方法的計(jì)劃,稱為開放系統(tǒng)互連模型(OSI,OpenSystemsInterconnectionModel)ISO創(chuàng)建OSI模型,希望不同供應(yīng)商的網(wǎng)絡(luò)能夠相互協(xié)同工作,但迄今為止,這仍然是一個(gè)偉大的目標(biāo)!分層模型的特點(diǎn)1.獨(dú)立性每一層都是相對(duì)獨(dú)立的,它具有獨(dú)立功能。理論上每一層只需關(guān)注層級(jí)間的接口,而無須關(guān)注其他層的實(shí)現(xiàn)細(xì)節(jié)。當(dāng)其他層出現(xiàn)變化時(shí),如果接口不變,則不會(huì)影響到相鄰層級(jí)。2.通用性模型中的各層規(guī)范和架構(gòu)的確定,有利于國(guó)際標(biāo)準(zhǔn)化工作的展開。當(dāng)來自不同開發(fā)者的各模塊都遵循統(tǒng)一的標(biāo)準(zhǔn)時(shí),整個(gè)系統(tǒng)各部分的通用性、兼容性會(huì)變得更好,對(duì)于一個(gè)較新的系統(tǒng),這樣通用性尤為重要。區(qū)塊鏈六層模型區(qū)塊鏈基礎(chǔ)架構(gòu)分為六層:數(shù)據(jù)層(DataLayer)、網(wǎng)絡(luò)層(NetworkLayer)、共識(shí)層(ConsensusLayer)、激勵(lì)層(Incentivelayer)、合約層(ContractLayer)和應(yīng)用層(ApplicationLayer)。區(qū)塊鏈系統(tǒng)的轉(zhuǎn)賬流程

假如A向B發(fā)送一個(gè)Token,A首先選擇一個(gè)應(yīng)用層的應(yīng)用,例如某個(gè)區(qū)塊鏈錢包App,利用這個(gè)App輸入交易信息(B的區(qū)塊鏈地址和轉(zhuǎn)賬數(shù)量),應(yīng)用將這些交易信息加上A的簽名信息傳遞到合約層,并調(diào)用這個(gè)Token合約,交易信息、簽名信息和合約內(nèi)容會(huì)向下傳遞。下一步,共識(shí)層會(huì)通過共識(shí)機(jī)制選出一位節(jié)點(diǎn),該節(jié)點(diǎn)驗(yàn)證A的簽名有效性以及A地址中是否有足夠的余額,如果沒問題則執(zhí)行這筆轉(zhuǎn)賬;然后,該節(jié)點(diǎn)會(huì)將當(dāng)前時(shí)刻內(nèi)的多筆交易(包括A的那一筆)結(jié)果打包,并加上自身的節(jié)點(diǎn)信息,形成一個(gè)“區(qū)塊”;接著,節(jié)點(diǎn)利用點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)(網(wǎng)絡(luò)層)廣播這個(gè)區(qū)塊給網(wǎng)絡(luò)中的其他節(jié)點(diǎn);最后,當(dāng)其他節(jié)點(diǎn)驗(yàn)證區(qū)塊無誤后,會(huì)將新的區(qū)塊放到區(qū)塊鏈的尾端(數(shù)據(jù)層)。這樣,A的這筆轉(zhuǎn)賬就被記入到區(qū)塊鏈中。對(duì)于B來說,只要A的轉(zhuǎn)賬被記入到了區(qū)塊鏈上,就已經(jīng)代表著其收到了這枚Token。B可以通過查詢區(qū)塊鏈瀏覽器或者借助應(yīng)用的提示來獲悉這一點(diǎn)。同時(shí),存儲(chǔ)在區(qū)塊鏈上的交易記錄就是B的“收款憑證”,當(dāng)他需要再將這枚Token發(fā)送給其他人時(shí),將重復(fù)上述操作?!獏^(qū)塊鏈分層模型在各層間有明顯的傳遞關(guān)系。區(qū)塊鏈各層以及各層內(nèi)協(xié)議的集合,就是區(qū)塊鏈的整體架構(gòu),分層模型不包括具體技術(shù)實(shí)現(xiàn)。3.2區(qū)塊鏈的數(shù)據(jù)層數(shù)據(jù)結(jié)構(gòu)—區(qū)塊結(jié)構(gòu)

對(duì)于不同的區(qū)塊鏈,區(qū)塊數(shù)據(jù)內(nèi)容會(huì)略有不同,但均會(huì)包含“區(qū)塊頭”和“交易”兩個(gè)部分。區(qū)塊頭用于存放區(qū)塊自身的元數(shù)據(jù),是區(qū)塊功能性信息的存儲(chǔ)地;交易部分存放加密后的交易信息,是區(qū)塊內(nèi)容性信息的存儲(chǔ)地?cái)?shù)據(jù)域描述長(zhǎng)度幻數(shù)(Magic)區(qū)塊分隔符,其值為常量0xD9B4BEF94字節(jié)區(qū)塊大?。˙lockSize)當(dāng)前區(qū)塊占用字節(jié)數(shù)4字節(jié)區(qū)塊頭(BlockHeader)當(dāng)前區(qū)塊的頭部信息80字節(jié)交易計(jì)數(shù)(TransactionCounter)當(dāng)前區(qū)塊包含的交易數(shù)量1~9字節(jié)交易(Transaction)當(dāng)前區(qū)塊記錄的交易細(xì)節(jié)可變表3.1比特幣區(qū)塊數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)—區(qū)塊頭

區(qū)塊頭對(duì)數(shù)據(jù)域同樣沒有統(tǒng)一的標(biāo)準(zhǔn)要求,但其起著存放區(qū)塊關(guān)鍵信息的作用,一般會(huì)包含前塊哈希、默克爾根(Merkle)、時(shí)間戳等信息.哈希計(jì)算

哈希又稱作“散列”,是一種數(shù)學(xué)計(jì)算機(jī)程序,它接收任何一組任意長(zhǎng)度的輸入信息,通過哈希算法變換成固定長(zhǎng)度的數(shù)據(jù)指紋輸出形式,如字母和數(shù)字的組合,該輸出就是“哈希值”。

目前常見的Hash算法包括國(guó)際上的MessageDigest(MD)系列和SecureHashAlgorithm(SHA)系列算法,以及國(guó)內(nèi)的SM3算法。

例如計(jì)算

“helloblockchainworld,thisisyeasy@github”的SHA-256Hash值,

得到的結(jié)果將是

“db8305d71a9f2f90a3e118a9b49a4c381d2b80cf7bcef81930f30ab1832a3c90”

對(duì)于某個(gè)文件,無需查看原始內(nèi)容,只要其SHA-256Hash計(jì)算后結(jié)果相同,則說明該文件內(nèi)容極大概率就是一樣的。/qq_45882032/article/details/125337385數(shù)據(jù)結(jié)構(gòu)—交易與Merkle樹

區(qū)塊頭之外,區(qū)塊中的另一核心信息即為交易信息。在區(qū)塊鏈技術(shù)中,通常會(huì)以Merkle樹或者基于Merkle樹的數(shù)據(jù)結(jié)構(gòu)記錄交易數(shù)據(jù)。在區(qū)塊鏈網(wǎng)絡(luò)中,Merkle樹被用來歸納一個(gè)區(qū)塊中的所有交易信息,最終生成這個(gè)區(qū)塊所有交易信息的一個(gè)統(tǒng)一的哈希值,區(qū)塊中任何一筆交易信息的改變都會(huì)使得Merkle樹改變。默克爾(Merkle)樹Merkle樹是數(shù)據(jù)結(jié)構(gòu)中的一種樹,可以是二叉樹,也可以是多叉樹,它具有樹結(jié)構(gòu)的所有特點(diǎn)。它將區(qū)塊鏈中的數(shù)據(jù)分組進(jìn)行哈希運(yùn)算,向上不斷遞歸運(yùn)算產(chǎn)生新的哈希節(jié)點(diǎn),最終只剩下一個(gè)Merkle根存入?yún)^(qū)塊頭中,每個(gè)哈希節(jié)點(diǎn)總是包含兩個(gè)相鄰的數(shù)據(jù)塊或其哈希值。優(yōu)點(diǎn):首先是極大地提高了區(qū)塊鏈的運(yùn)行效率和可擴(kuò)展性,使得區(qū)塊頭只需包含根哈希值而不必封裝所有底層數(shù)據(jù),這使得哈希運(yùn)算可以高效地運(yùn)行在智能手機(jī)甚至物聯(lián)網(wǎng)設(shè)備上;其次是Merkle樹可支持“簡(jiǎn)化支付驗(yàn)證協(xié)議”(SPV),即在不運(yùn)行完整區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的情況下,也能夠?qū)灰讛?shù)據(jù)進(jìn)行檢驗(yàn)。假設(shè)區(qū)塊中有A、B、C、D4筆交易信息,將這4筆交易信息分別求哈希值:lA節(jié)點(diǎn)的哈希與B結(jié)點(diǎn)的哈希,又組成了它們父節(jié)點(diǎn)的哈希值H(AB);lC節(jié)點(diǎn)的哈希與D結(jié)點(diǎn)的哈希,又組成了它們父節(jié)點(diǎn)的哈希值H(CD);l最后HAB節(jié)點(diǎn)與HCD節(jié)點(diǎn)又組成了根結(jié)點(diǎn)的哈希H(ABCD);lH(ABCD)就是MerkleRoot,它歸納總結(jié)了所有的交易信息。它會(huì)保存在區(qū)塊頭里面。簡(jiǎn)單支付驗(yàn)證簡(jiǎn)單支付驗(yàn)證(SimplePaymentVerification,SPV):一個(gè)在輕客戶端環(huán)境下,驗(yàn)證交易有效性的過程。全節(jié)點(diǎn)(FullNode):全節(jié)點(diǎn)是一個(gè)程序,需把整條區(qū)塊鏈數(shù)據(jù)下載到本地。輕客戶端(ThinClient):點(diǎn)本地只保存與其自身相關(guān)的交易數(shù)據(jù)(如區(qū)塊頭)。適合在收集、平板電腦、嵌入式系統(tǒng)等空間和功率受限的設(shè)備。SPV的目標(biāo)是驗(yàn)證某個(gè)支付是否真實(shí)存在,并得到了多少個(gè)確認(rèn)。比如:小華收到來自小剛的一個(gè)通知,小剛聲稱已經(jīng)從其賬戶中匯款一定數(shù)額的錢給了小華。如何快速驗(yàn)證該支付的真實(shí)性,是SPV的工作目標(biāo)。輕節(jié)點(diǎn)與SPV不能混淆為一個(gè)概念:輕節(jié)點(diǎn)仍需下載每個(gè)新區(qū)塊的全部數(shù)據(jù)并進(jìn)行解析,獲取并在本地存儲(chǔ)與自身相關(guān)的交易數(shù)據(jù),只是無須在本地保存全部數(shù)據(jù)而已(不僅是支付驗(yàn)證,而且用于管理節(jié)點(diǎn)自身的資產(chǎn)收入、支付等相關(guān)信息)。而SPV節(jié)點(diǎn)不需要下載新區(qū)塊的全部數(shù)據(jù),只需要保存區(qū)塊頭部信息即可。簡(jiǎn)單支付驗(yàn)證——驗(yàn)證過程安裝輕客戶端,通常就是把它當(dāng)成一個(gè)錢包軟件(賬戶的轉(zhuǎn)入與轉(zhuǎn)出)用,SPV要解決的就是在輕客戶端條件下的支付確認(rèn)問題。

賬戶的轉(zhuǎn)出:輕客戶端構(gòu)建交易,并且簽名交易,再?gòu)V播到全網(wǎng)。

賬戶的轉(zhuǎn)入:網(wǎng)上交易很多,但是輕客戶端只會(huì)去下載跟自己的賬戶相關(guān)的交易。不管是轉(zhuǎn)入還是轉(zhuǎn)出交易,下載到輕客戶端本地都是相對(duì)孤立的交易,因?yàn)楸镜貨]有保存區(qū)塊體。那么如何去驗(yàn)證交易生效了呢?SPV過程:

(1)輕客戶端要發(fā)起一個(gè)專門的確認(rèn)請(qǐng)求,把這個(gè)交易廣播給網(wǎng)絡(luò)上鄰近的全節(jié)點(diǎn)。

(2)全節(jié)點(diǎn)收到交易后,會(huì)去搜索這個(gè)交易屬于哪個(gè)區(qū)塊,然后會(huì)運(yùn)算這個(gè)區(qū)塊的Merkle樹。這時(shí),Merkle樹最大的優(yōu)勢(shì)現(xiàn)在就發(fā)揮出來了,因?yàn)橐_認(rèn)一個(gè)交易是不是從屬于一個(gè)Merkle根,是不需要把整個(gè)Merkle樹都發(fā)送給輕節(jié)點(diǎn)的,而只需要發(fā)送跟當(dāng)前交易相關(guān)的部分Merkle樹即可。

(3)輕節(jié)點(diǎn)接收到這個(gè)部分Merkle樹之后,在自己本地在運(yùn)算一下這個(gè)交易的哈希,然后根據(jù)部分Merkle樹上的各個(gè)哈希值,一路運(yùn)算獲得Merkle根,如果這個(gè)值跟自己的區(qū)塊頭中的正好吻合,交易驗(yàn)證就成功了。

所以整個(gè)SPV過程是靠全節(jié)點(diǎn)幫忙去驗(yàn)證交易的,輕節(jié)點(diǎn)自身不能驗(yàn)證交易,但是通過確認(rèn)其他全節(jié)點(diǎn)都接受了這次交易,就間接完成了交易確認(rèn)。

弊端:于SPV沒有保存全部區(qū)塊的節(jié)點(diǎn)信息,需要和其他節(jié)點(diǎn)配合才能進(jìn)行驗(yàn)證,所以SPV節(jié)點(diǎn)存在被誘導(dǎo)連入了一個(gè)虛假的網(wǎng)絡(luò)中的情況,存在被惡意攻擊的可能。數(shù)據(jù)模型—交易模型主流區(qū)塊鏈數(shù)據(jù)模型主要有兩類:一是,比特幣為代表的交易模型——未被使用的交易輸出(UnspentTransactionOutput,UTXO)模型;二是,以太坊為代表的賬戶模型。鑄幣獎(jiǎng)勵(lì)Coinbase鑄幣獎(jiǎng)勵(lì)CoinbaseUTXOUTXOUTXOUTXO主流交易模型區(qū)塊鏈有Corda,BigchainDB等,交易模型天然契合區(qū)塊鏈的鏈?zhǔn)浇Y(jié)構(gòu),但制約了功能的擴(kuò)展性。數(shù)據(jù)模型—賬戶模型相比于交易模型,賬戶模型更貼近于傳統(tǒng)金融對(duì)資金的處理模式,更容易理解。賬戶中的記錄不再是交易記錄而是賬戶的余額狀態(tài)。對(duì)智能合約的支持為區(qū)塊鏈技術(shù)帶來了更強(qiáng)的靈活性,越老越多的項(xiàng)目采用賬戶模型,如Fabric,Ripple,TrustSQL地址余額數(shù)據(jù)存儲(chǔ)基于區(qū)塊鏈的完全分布式存儲(chǔ)方案(每一個(gè)加入的節(jié)點(diǎn)均可以存儲(chǔ)全量賬本數(shù)據(jù)),不同區(qū)塊鏈,節(jié)點(diǎn)內(nèi)物理數(shù)據(jù)存儲(chǔ)方式也不同。3.3區(qū)塊鏈的網(wǎng)絡(luò)層點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)

點(diǎn)對(duì)點(diǎn)(Peer-to-Peer,P2P)網(wǎng)絡(luò)是一個(gè)完全分布式的網(wǎng)絡(luò)架構(gòu),網(wǎng)絡(luò)中每一個(gè)節(jié)點(diǎn)的地位都是相等的,都可以充當(dāng)服務(wù)提供方及服務(wù)獲取方,沒有“主從”或者“中心化服務(wù)器”的概念。P2P網(wǎng)絡(luò)的特點(diǎn),能為區(qū)塊鏈體系提供各類較為成熟的網(wǎng)絡(luò)層技術(shù),成為支持區(qū)塊鏈網(wǎng)絡(luò)架構(gòu)的必然選擇點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)—分布式哈希表問題:當(dāng)有節(jié)點(diǎn)要提供或者獲取服務(wù)時(shí),網(wǎng)絡(luò)中的其他節(jié)點(diǎn)如何獲指其需求或能力?也就是說,誰來維護(hù)網(wǎng)絡(luò)中的節(jié)點(diǎn)清單和節(jié)點(diǎn)能提供的服務(wù)清單呢?

2001年,分布式哈希表(DistributedHashTable,DHT)技術(shù)的誕生提供了高效率的解決方案。核心思想:網(wǎng)路中的每一個(gè)節(jié)點(diǎn)都維護(hù)一部分索引信息,然后通過特定的規(guī)則將這些節(jié)點(diǎn)連接起來,在查詢或注冊(cè)時(shí),按規(guī)則觸達(dá)相關(guān)節(jié)點(diǎn)或資源,這種方案避免中心化索引和網(wǎng)絡(luò)風(fēng)暴,而不同的規(guī)則對(duì)應(yīng)著分布式哈希表不同的協(xié)議,如CAN,Chord、Kademlia等點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)—分布式哈希表基礎(chǔ)結(jié)構(gòu)分布式哈希表的基礎(chǔ)結(jié)構(gòu)是哈希表。哈希表是一種以“鍵-值”形式進(jìn)行存儲(chǔ)和查詢的數(shù)據(jù)結(jié)構(gòu)。在存儲(chǔ)時(shí),將要存儲(chǔ)的信息經(jīng)過哈希函數(shù)的處理生成一個(gè)映射地址,并將信息存儲(chǔ)到這個(gè)地址中,讀取時(shí)直接定位到該映射地址提取數(shù)據(jù)。點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)—Kademlia協(xié)議

應(yīng)用分布式哈希表的網(wǎng)絡(luò),每個(gè)節(jié)點(diǎn)只存儲(chǔ)一部分資源的索引信息,好處在于有資源變更時(shí),不需要全網(wǎng)廣播,只需要更新相關(guān)節(jié)點(diǎn)。問題:如何在每個(gè)節(jié)點(diǎn)只知道部分信息的情況下,實(shí)現(xiàn)對(duì)全網(wǎng)資源的觸達(dá)與維護(hù)?Kademlia(Kad)協(xié)議提供了一個(gè)巧妙的基于距離的路由解決方案:將找資源變?yōu)檎夜?jié)點(diǎn)(節(jié)點(diǎn)ID),將找具體的節(jié)點(diǎn)變?yōu)檎掖箢惖拇恚↖D公共前綴),解決了點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)中的組網(wǎng)問題。數(shù)據(jù)傳播和校驗(yàn)

1.數(shù)據(jù)傳播當(dāng)?shù)V工節(jié)點(diǎn)打包生成區(qū)塊鏈后——傳播給網(wǎng)絡(luò)中其他節(jié)點(diǎn)進(jìn)行校驗(yàn)和記賬——并不是廣播網(wǎng)絡(luò)中所有節(jié)點(diǎn)——節(jié)點(diǎn)只知道網(wǎng)絡(luò)中部分節(jié)點(diǎn)信息——向直接連接的節(jié)點(diǎn)發(fā)送區(qū)塊信息——收到信息后校驗(yàn)——校驗(yàn)通過的區(qū)塊鏈接入本地區(qū)塊鏈,并重復(fù)上述廣播過程,直至觸達(dá)全網(wǎng)。2.數(shù)據(jù)校驗(yàn)理論上每個(gè)節(jié)點(diǎn)都可以承擔(dān)路由、傳播、驗(yàn)證、存儲(chǔ)等功能,但在實(shí)際中,分全節(jié)點(diǎn)和輕節(jié)點(diǎn)。全節(jié)點(diǎn)可以不依賴網(wǎng)絡(luò)中其他節(jié)點(diǎn),對(duì)收到區(qū)塊做數(shù)據(jù)校驗(yàn);輕節(jié)點(diǎn)需要向鄰節(jié)點(diǎn)請(qǐng)求數(shù)據(jù)完成校驗(yàn)。數(shù)據(jù)校驗(yàn)的內(nèi)容是依據(jù)該區(qū)塊鏈項(xiàng)目預(yù)定義的清單對(duì)區(qū)塊做校驗(yàn),以比特幣為例,包含:1)工作量證明檢查2)區(qū)塊頭中merkle根的值是否與依據(jù)區(qū)塊體中交易信息計(jì)算得到的一致。3)區(qū)塊大小在限制范圍內(nèi)。4)第一筆交易以外的其他交易不能是鑄幣交易(加入?yún)^(qū)塊的第一筆交易是一個(gè)特殊交易,叫作鑄幣交易)。5)交易的法性3.4區(qū)塊鏈的共識(shí)層共識(shí)和一致性

共識(shí)層包含了各種共識(shí)算法,負(fù)責(zé)實(shí)現(xiàn)區(qū)塊鏈各個(gè)賬本的數(shù)據(jù)一致性。在分布式系統(tǒng)中,沒有單一節(jié)點(diǎn)來協(xié)調(diào)區(qū)塊數(shù)據(jù)在所有節(jié)點(diǎn)上的一致性,為了解決這個(gè)問題,必須要有一個(gè)眾多節(jié)點(diǎn)都接受的規(guī)則,這個(gè)規(guī)則就是“共識(shí)機(jī)制”,簡(jiǎn)單來說,共識(shí)層的主要作用是決定誰來進(jìn)行記賬。FLPCAP異步通信一致性可用性分區(qū)容錯(cuò)性共識(shí)和一致性

區(qū)塊鏈數(shù)據(jù)一致性問題往往指不同節(jié)點(diǎn)中的數(shù)據(jù)內(nèi)容是否完整并且相同。區(qū)塊鏈作為一個(gè)分布式系統(tǒng),如何保證所有節(jié)點(diǎn)中的數(shù)據(jù)完全相同,并且能夠?qū)δ硞€(gè)提案達(dá)成一致是系統(tǒng)正常工作的核心問題。

當(dāng)分散的節(jié)點(diǎn)通過網(wǎng)絡(luò)達(dá)成一項(xiàng)以有益于整個(gè)群體為目標(biāo)的協(xié)議時(shí),稱為“達(dá)成共識(shí)”??偟膩碚f,一致性代表的是區(qū)塊鏈系統(tǒng)要達(dá)成的目標(biāo)和結(jié)果狀態(tài);而共識(shí)是一種實(shí)現(xiàn)一致性的方法、途徑或手段。共識(shí)和一致性

共識(shí)機(jī)制或者共識(shí)算法的含義是,快速準(zhǔn)確的在各個(gè)節(jié)點(diǎn)實(shí)現(xiàn)區(qū)塊鏈數(shù)據(jù)一致性的機(jī)制和算法。一般通過獎(jiǎng)懲機(jī)制來鼓勵(lì)區(qū)塊鏈系統(tǒng)的節(jié)點(diǎn)不參與作惡,并持續(xù)服務(wù)網(wǎng)絡(luò)。目前主流的共識(shí)機(jī)制分為兩類:確定性算法:拜占庭容錯(cuò)(BFT)概率性算法:工作量證明POW,權(quán)益證明POS,委托權(quán)益證明DPOS

兩者區(qū)別在于,確定性算法是區(qū)塊鏈增加了新區(qū)塊后,新區(qū)塊就已經(jīng)被確定,無法被回滾;概率性算法增加新區(qū)塊后,當(dāng)新區(qū)塊被回滾的概率接近0時(shí),才被認(rèn)為是確定的。BFT拜占庭容錯(cuò)算法

拜占庭容錯(cuò)(ByzantineFaultTolerance,BFT),是分布式領(lǐng)域常用的容錯(cuò)技術(shù),當(dāng)出現(xiàn)各種故障或受到攻擊時(shí),計(jì)算機(jī)或者網(wǎng)絡(luò)都可能會(huì)出現(xiàn)難以預(yù)料的異常,BFT是處理這種異常的解決方案。拜占庭將軍問題,一個(gè)為了描述分布式系統(tǒng)一致性問題而抽象出來的例子。成功:大家都選擇進(jìn)攻或都選擇撤離,只要步調(diào)一致,達(dá)成共識(shí)即可。失敗:一部分將軍進(jìn)攻,另一部分將軍沒有進(jìn)攻,沒有達(dá)成一致。BFT拜占庭容錯(cuò)問題問題:由于將軍們分布在不同的地方,如果將軍中存在叛徒,誠(chéng)實(shí)將軍們決策的結(jié)果會(huì)被干擾。叛徒會(huì)以欺騙手段使得部分將軍做出和最終決策不一致的指令。1)不進(jìn)行表態(tài)——給誠(chéng)實(shí)將軍決定造成影響2)發(fā)表錯(cuò)誤的觀點(diǎn)——叛徒可以故意發(fā)表錯(cuò)誤觀點(diǎn)3)

主動(dòng)干擾其他將軍對(duì)局勢(shì)的判斷。假如有11為將軍

A1、A2、A3、A4、B1、B2、B3、Z1、Z2、Z3、Z4。視角A1~A4B1~B3Z1~Z4投票比結(jié)果A1~A4進(jìn)攻不進(jìn)攻進(jìn)攻8:3進(jìn)攻B1~B3進(jìn)攻不進(jìn)攻不進(jìn)攻4:7不進(jìn)攻誠(chéng)實(shí)將軍:進(jìn)攻誠(chéng)實(shí)將軍:不進(jìn)攻叛徒實(shí)用拜占庭容錯(cuò)機(jī)制

一般情況下,出現(xiàn)故障和錯(cuò)誤的節(jié)點(diǎn)被稱為拜占庭節(jié)點(diǎn),接收正確信息同時(shí)正確傳送信息的節(jié)點(diǎn)稱為非拜占庭節(jié)點(diǎn)。實(shí)際工作中,實(shí)用拜占庭容錯(cuò)機(jī)制(PracticalByzantineFaultTolerance,PBFT)常用來解決分布式系統(tǒng)中的共識(shí)

問題。

PBFT是一種狀態(tài)機(jī)副本復(fù)制算法,每個(gè)狀態(tài)機(jī)的副本都保存了服務(wù)的狀態(tài),同時(shí)也實(shí)現(xiàn)了客戶端所有合法請(qǐng)求的操作,能夠保證在滿足分布式系統(tǒng)活性和安全性的前提下,允許(n?1)/3個(gè)節(jié)點(diǎn)出錯(cuò)(數(shù)據(jù)丟失、不工作等),其中n為分布式系統(tǒng)中所有參與共識(shí)過程的節(jié)點(diǎn)數(shù)量.即該算法能夠保證系統(tǒng)在(n?1)/3個(gè)節(jié)點(diǎn)出現(xiàn)故障或惡意操作的情況下,依然能正確達(dá)成分布式共識(shí)。

什么PBFT算法只能容忍(n-1)/3個(gè)作惡節(jié)點(diǎn)?

節(jié)點(diǎn)總數(shù)是

n,其中作惡節(jié)點(diǎn)有

f,那么剩下的正確節(jié)點(diǎn)為n-f,意味著只要收到n-f個(gè)消息就能做出決定,但是這

n-f

個(gè)消息有可能由

f

個(gè)是由作惡節(jié)點(diǎn)冒充的,那么正確的消息就是

n-f-f

個(gè),為了多數(shù)一致,正確消息必須占多數(shù),也就是

n-f-f>f,但是節(jié)點(diǎn)必須是整數(shù)個(gè),所以

n

最少是

3f+1個(gè)。實(shí)用拜占庭容錯(cuò)機(jī)制PBFT算法的過程如下:(1)客戶端向主節(jié)點(diǎn)發(fā)送請(qǐng)求操作消息,主節(jié)點(diǎn)接收到請(qǐng)求操作消息并校驗(yàn)正確后,保存該消息,并依據(jù)該請(qǐng)求操作消息生成預(yù)準(zhǔn)備消息,廣播給各備份節(jié)點(diǎn).(2)各備份節(jié)點(diǎn)接收到預(yù)準(zhǔn)備消息并校驗(yàn)正確后,保存該消息,并以該預(yù)準(zhǔn)備消息為依據(jù),生成準(zhǔn)備消息廣播給主節(jié)點(diǎn)和其他備份節(jié)點(diǎn).(3)各存儲(chǔ)副本的節(jié)點(diǎn)接收到準(zhǔn)備消息并校驗(yàn)正確后,保存該消息,并以該準(zhǔn)備消息為依據(jù),生成提交消息給客戶端、主節(jié)點(diǎn)和其他備份節(jié)點(diǎn).(4)各存儲(chǔ)副本的節(jié)點(diǎn)接收到(2n+1)/3個(gè)提交消息并校驗(yàn)正確后,則執(zhí)行來自客戶端的請(qǐng)求操作消息里的操作.(5)客戶端接收到(n+2)/3個(gè)提交消息,驗(yàn)證正確并接受后,便認(rèn)為該消息已被副本節(jié)點(diǎn)集群所承認(rèn)與執(zhí)行.這里的客戶端接受(n+2)/3個(gè)提交消息而不是(2n+1)/3個(gè)的原因在于失效的節(jié)點(diǎn)數(shù)量不超過(n?1)/3,因此(n?1)/3+1個(gè)一致響應(yīng)必定能夠保證結(jié)果是正確的.POWPoW(ProofofWork)是工作量證明,是指節(jié)點(diǎn)通過消耗計(jì)算資源,計(jì)算一項(xiàng)較難完成但容易驗(yàn)證的工作,并以此證明獲取區(qū)塊鏈記賬權(quán)的共識(shí)機(jī)制。區(qū)塊鏈導(dǎo)論SHA-256哈希0ed7c0af1b7cc693c2d012b198d2a4ea200c781e9a22a9a4d0c413cee1fa6079容易

難PoW要求節(jié)點(diǎn)利用計(jì)算能力區(qū)尋找一個(gè)隨機(jī)數(shù),使得該隨機(jī)數(shù)和特定數(shù)字的哈希計(jì)算滿足一定條件(如前5位是0)。如規(guī)定:當(dāng)前區(qū)塊哈希等于“交易內(nèi)容+前一區(qū)塊哈希+當(dāng)前區(qū)塊高度+時(shí)間戳+隨機(jī)數(shù)Nonce”POW工作原理1)將一個(gè)新的鑄幣交易添加進(jìn)系統(tǒng),并計(jì)算出Merkle根哈希2)利用隨機(jī)數(shù)Nonce,上一個(gè)區(qū)塊哈希值,當(dāng)前Merkle根哈希及其他的字段組成區(qū)塊頭。3)將每一個(gè)區(qū)塊頭進(jìn)行雙重SHA-256運(yùn)算,并且使得隨機(jī)數(shù)Nonce加1,會(huì)得到一個(gè)結(jié)果值,把網(wǎng)絡(luò)目標(biāo)值(例如要求前5位是0)和得到的數(shù)值進(jìn)行比較。如果兩者比較之后,得到的值小于等于目標(biāo)哈希值,標(biāo)志這這個(gè)隨機(jī)數(shù)是符合條件的,第一個(gè)算出此隨機(jī)數(shù)的礦工可以獲得該區(qū)塊的記賬圈;當(dāng)?shù)玫降闹荡笥谀繕?biāo)哈希值時(shí),重復(fù)上述步驟PoS/DPoS為了適應(yīng)特殊場(chǎng)景,如高頻應(yīng)用或節(jié)約電力,Proof證明可以被替換為消耗其他資源,解決效率不足和資源浪費(fèi)問題。區(qū)塊鏈社區(qū)——幣齡(coindays):個(gè)人擁有貨幣coin數(shù)量*擁有貨幣的天數(shù)(days)權(quán)益證明(ProofofStake,PoS):以持有幣齡為消耗資源,作為獲得記賬權(quán),打包新區(qū)塊的證明。在PoS系統(tǒng)中,擁有更高幣嶺的節(jié)點(diǎn)會(huì)有更高的概率挖出新區(qū)塊。當(dāng)挖出新的區(qū)塊后,其幣齡會(huì)被消耗掉。同時(shí),獲得記賬權(quán)的節(jié)點(diǎn)可能會(huì)按照預(yù)設(shè)規(guī)則得到一定的區(qū)塊獎(jiǎng)勵(lì)。優(yōu)勢(shì):1)PoS不會(huì)造成過多的電力浪費(fèi),因?yàn)镻oS不需要靠比拼算力挖礦。2)PoS更難進(jìn)行51%攻擊。擁有51%幣才能發(fā)起攻擊,網(wǎng)絡(luò)受到攻擊卻會(huì)造成自己利益受損,顯然很不劃算。缺點(diǎn):1)PoS算法無法100%擺脫挖礦的約束,仍需少量電費(fèi)2)幣齡越大的節(jié)點(diǎn),越容易獲得記賬獎(jiǎng)勵(lì),這會(huì)使得權(quán)益高度集中,產(chǎn)生馬太效應(yīng)。PoS/DPoS委托權(quán)益證明(DelegatedProofofStake,DPoS)是一種保證區(qū)塊鏈網(wǎng)絡(luò)安全的共識(shí)機(jī)制,嘗試去解決工作量證明(PoW)和權(quán)益證明(PoS)體系的缺陷。DPoS嚴(yán)格限制參與共識(shí)節(jié)點(diǎn)的數(shù)量,達(dá)到一定門檻的節(jié)點(diǎn)才能參與。未參與共識(shí)過程的Token持有者則可以使用token進(jìn)行投票,將權(quán)益委托給候選節(jié)點(diǎn),獲得票數(shù)高的候選節(jié)點(diǎn),可以實(shí)際參與區(qū)塊鏈的出塊、打包。DPoS有點(diǎn)像議會(huì)制度或人民代表大會(huì)制度。如果代表不能履行他們的職責(zé),比如輪到他們記賬時(shí),他們沒能完成則會(huì)被除名,網(wǎng)絡(luò)會(huì)選出新的節(jié)點(diǎn)來取代他們。DPoS的每個(gè)客戶端都有能力決定哪些節(jié)點(diǎn)可以被信任。相較PoW(工作量證明機(jī)制),DPoS大幅提高區(qū)塊鏈處理數(shù)據(jù)的能力,甚至可以實(shí)現(xiàn)秒到賬,同時(shí)也大幅降低維護(hù)區(qū)塊鏈網(wǎng)絡(luò)安全的費(fèi)用,從而使數(shù)字資產(chǎn)的交易速度接近Visa等中心化結(jié)算系統(tǒng)。更多共識(shí)機(jī)制1)權(quán)威證明(ProofofAuthority,PoA)是一種聲譽(yù)共識(shí)算法,被選為區(qū)塊鏈驗(yàn)證者需要憑借個(gè)人聲譽(yù)(權(quán)威)而不需要抵押token。它為區(qū)塊鏈網(wǎng)絡(luò)引入了實(shí)用、高效的解決方案,尤其適用于私有鏈。2)身份證明(proofofIdentity,PoI)是一塊表示加密事實(shí)的數(shù)據(jù),它允許任何持有私鑰的用戶和一個(gè)認(rèn)證的身份相對(duì)應(yīng),然后和指定的交易進(jìn)行連接。同個(gè)群體的每個(gè)個(gè)體都可以創(chuàng)建PoF(只有一個(gè)區(qū)塊的數(shù)據(jù)),然后將它展示給任何節(jié)點(diǎn)。3)權(quán)重證明(proofofweight)是一類很寬泛的共識(shí)算法。其基本理念是在權(quán)益證明系統(tǒng)中,用戶所擁有的網(wǎng)絡(luò)中token百分比,表示了該用戶“發(fā)現(xiàn)”下一個(gè)區(qū)塊的概率。3.5區(qū)塊鏈的合約層智能合約

智能合約是一種由機(jī)器實(shí)現(xiàn)的協(xié)議或程序,旨在以數(shù)字化手段傳播、驗(yàn)證或執(zhí)行合同的計(jì)算機(jī)協(xié)議,它無須第三方即可執(zhí)行可靠且不可逆的交易。用戶A用戶B第三方商店(信譽(yù)保證)智能合約(區(qū)塊鏈支持)

智能合約由代碼形成,并部署在極難篡改的區(qū)塊鏈上自動(dòng)執(zhí)行,雙方?jīng)]有任何辦法欺詐或者耍賴,始終能夠保證“一手交錢、一手交貨”。傳統(tǒng)合同無法強(qiáng)制執(zhí)行,而智能合約可以。腳本語言區(qū)塊鏈早期,比特幣區(qū)塊鏈網(wǎng)絡(luò),沒有智能合約——采用簡(jiǎn)單的、基于堆棧的腳本語言

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論