版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
區(qū)塊鏈導(dǎo)論新一代信息技術(shù)系列教材《緒論》第一章區(qū)塊鏈的發(fā)端與源起區(qū)塊鏈的技術(shù)特點區(qū)塊鏈的發(fā)端與源起11.1.1記賬技術(shù)的更迭區(qū)塊鏈技術(shù)也稱為分布式記賬技術(shù)。眾所周知,“記賬”就是按時間的先后順序,將個體、公司、組織等在一定時間內(nèi)所發(fā)生的收和支出全部記錄下來,供査閱者翻閱査看的行為。簡單刻記/直觀繪圖結(jié)繩記事法單式記賬復(fù)式記賬法互聯(lián)網(wǎng)時代記賬工具分布式記賬技術(shù)人類記賬史上的革命——復(fù)式記賬法的生和發(fā)展奠定了當(dāng)代會計學(xué)基礎(chǔ)基于復(fù)式記賬法思想,但又有很大的改進和提升,客觀上大大推動了現(xiàn)代商業(yè)行為的發(fā)展。記賬技術(shù)的更迭:分布式記賬技術(shù)——新一代的記賬技術(shù)區(qū)塊鏈系統(tǒng)可以被視為帶密鑰的分布式和自動式記賬賬本,其核心是系統(tǒng)中每個節(jié)點都有一份一模一樣的賬本,這些賬本記錄了系統(tǒng)所有發(fā)生的交易,并且能自動將新的交易數(shù)據(jù)添加到每個節(jié)點的賬本中。和復(fù)式記賬方式相比,區(qū)塊鏈賬本是多點同時記賬,依靠共識機制確認,單個節(jié)點難以篡改賬本記錄。分布式記賬優(yōu)勢:(1)通過多方記賬的方式,增強數(shù)據(jù)安全性,防止單點故障(2)減少不同數(shù)據(jù)庫之間的對賬工作,提高效率和透明度1.1.1記賬技術(shù)的更迭1.1.2密碼學(xué)的發(fā)展密碼學(xué)最初是研究如何在敵方存在的情況下進行安全通信的一門科學(xué)。目的是分析和構(gòu)建協(xié)議,使得通信雙方在按照協(xié)議進行通信的過程中,能夠防止第三方竊取通信內(nèi)容?,F(xiàn)代密碼學(xué)是數(shù)學(xué)、計算機科學(xué)、電子工程、通信科學(xué)、物理學(xué)等多學(xué)科匯集的交叉科學(xué),密碼學(xué)技術(shù)被廣泛應(yīng)用于電子商務(wù)、電子支付卡、數(shù)字貨幣、計算機密碼、軍事通信等眾多領(lǐng)域。密碼學(xué)最早起源于古希臘時代,經(jīng)過長達幾千年的研究,為如今的區(qū)塊鏈密碼學(xué)技術(shù)奠定了基礎(chǔ)。1.1.2密碼學(xué)的發(fā)展1.1.3“密碼朋克”的建立20世紀(jì)90年代發(fā)展出“密碼朋克”(“Cypherpunk'”)的概念。1992年,Intel的資深科學(xué)家蒂姆?梅(TimMay)成立密碼朋克組織。1993年,蒂姆?梅、美國加州大學(xué)伯克利分校(UCB)的數(shù)學(xué)家埃里克?休斯(EricHughes)、開源軟件的早期核心人物之一約輸?吉爾摩爾(JohnGilmore)共同創(chuàng)建“密碼朋克郵件列表”。1993年,埃里克?休斯(EricHughes)發(fā)表《密碼朋克宣言》密碼學(xué)研究賽博朋克構(gòu)想密碼朋克(Cypherpunk)(20世紀(jì)90年代)個體精神隱私保護1.1.3“密碼朋克”的建立大衛(wèi)?喬姆(DavidChaum)在20世紀(jì)80年代發(fā)明了喬姆育簽名技術(shù),并在20世紀(jì)90年代基于這種盲簽名技術(shù)首次提出在網(wǎng)絡(luò)上匿名傳遞價值的方式,將之命名為Ecash。Ecash通過銀行的加密簽名,以數(shù)字形式存儲貨幣,必須依賴中心服務(wù)器系統(tǒng)。Ecash的誕生在某種程度上可以說是加密貨幣的始祖。大衛(wèi)·喬姆1.1.3“密碼朋克”的建立尼爾?科布利茨(NealKoblitz)和維克多?米勒(VictorMiller)在1985年提出基于橢圓曲線的算法ECC。這是一種新型的密鑰算法,能夠提供比RSA更高級別的安全。這個算法成為后來比特幣的核心算法。尼爾?科布利茨1.1.3“密碼朋克”的建立斯圖爾特?哈勃(StuartHaber)和斯科特?斯托內(nèi)塔(ScottStornetta)在1991年發(fā)表論文《如何為電子文件添加時間戳》。在這篇論文中,他們提出用時間戳確保電子文檔的安全這種技術(shù)保證了信息的可追溯和不可篡改,成為后來“區(qū)塊鏈”數(shù)據(jù)結(jié)構(gòu)的雛形。斯圖爾特?哈勃1.1.3“密碼朋克”的建立菲利普?齊默爾曼(PhilipZimmerman)在1991年發(fā)布郵件加密軟件“優(yōu)良保密協(xié)議”(PrettyGoodPrivacy,PGP),并成立相關(guān)公司。PGP是一個基于RSA公鑰加密體系的郵件加密系統(tǒng),能夠保證郵件內(nèi)容不被篡改,同時讓郵件接受者信任郵件來自發(fā)送者。PGP的使用范圍很廣,例如比特幣白皮書的作者中本聰也是PGP的使用者,他的郵件都是通過PGP發(fā)出的。菲利普?齊默爾曼1.1.3“密碼朋克”的建立亞當(dāng)?巴克(AdamBack)在1997年發(fā)明了哈?,F(xiàn)金(Hashcash)算法。這個算法用于電子郵件系統(tǒng),要求在發(fā)送電子郵件之前,解一個數(shù)學(xué)題,以此來適度增加發(fā)送電子郵件的成本屏蔽大量的垃圾郵件。這個思想后來被PGP的成員哈爾?芬尼(HalFinney)借鑒發(fā)明了可重用的工作量證明機制。亞當(dāng)?巴克1.1.3“密碼朋克”的建立美國華裔工程師戴偉(WeiDai)在198年提出了匿名的、分布式的加密貨幣系統(tǒng)B-money,B-money在很多關(guān)的技術(shù)上與后來的比特幣非常相似,然而由于其某些技術(shù)細節(jié)(例如抵抗“雙花”)難以實現(xiàn),導(dǎo)致B-money最終沒有成為現(xiàn)實。盡管如此,中本聰與戴偉(WeiDai)之間的交流卻相當(dāng)多,并大量借鑒了B-money的很多思想。在比特幣白皮書的參考文獻中,B-money的論文也赫然在列。戴偉1.1.3“密碼朋克”的建立1998年,密碼學(xué)家、智能合約概念的創(chuàng)造者尼克?薩博(NickSzabo),提出了比特金(BitGold)的設(shè)想。這種設(shè)想已經(jīng)非常接近于比特幣的體系構(gòu)造,但由于BitGold的設(shè)想缺乏具體的代碼實現(xiàn),因此只停留在概念階段,而沒能成為“創(chuàng)世貨幣。尼克?薩博哈爾?芬尼是比特幣的早期核心貢獻者,也是PGP公司的成員,并為PGP做出了重要的貢獻。哈爾?芬尼在2004年借鑒亞當(dāng)巴克的哈?,F(xiàn)金算法提出了可重用的工作量證明機制(ReusableProofsofWork,RPOW),它直接影響了后來比特幣的共識機制。除了這些先驅(qū)以外,約?佩里?巴洛(JohnPerryBarlow,賽博自由主義政治活動家)菜斯利?蘭伯特(LeslieLamport,拜占庭將軍問題的提出者)、肖恩?范寧(ShawnFanning)和肖恩、·派克(ShaunParker,點對點網(wǎng)絡(luò)工具Napster的發(fā)明者)、布拉姆?科亨(BramCohen,BitTorrent的發(fā)明者)等都為比特幣各項關(guān)鍵技術(shù)的發(fā)展做出了巨大貢獻。在這些先驅(qū)以及更多科學(xué)家和工程師們的共同努力下,這些基于加密技術(shù)的創(chuàng)新和應(yīng)用逐漸發(fā)展和成熟起來,為日后比特幣和區(qū)塊鏈的誕生奠定了堅實的基礎(chǔ)。1.1.3“密碼朋克”的建立1.1.3“密碼朋克”的建立1.1.4互聯(lián)網(wǎng)技術(shù)的蓬勃進步互聯(lián)網(wǎng)發(fā)展史:蘇聯(lián)發(fā)射“伴侶號”——美國組建ARPA開始研究“包交換”技術(shù)ARPANET啟動第一次使用“internet”一詞TCP/IP協(xié)議NSF擴展MCIMailCompuserve1957年20世紀(jì)60年代1969年1974年20世紀(jì)80年代1989年超文本傳輸協(xié)議(HTP)超文本標(biāo)記語言(HTML)網(wǎng)絡(luò)瀏覽器商用互聯(lián)網(wǎng)exchange斯坦福聯(lián)邦信用社互聯(lián)網(wǎng)大面積普及1990年1991年1994年2000年以后1.1.4互聯(lián)網(wǎng)技術(shù)的蓬勃進步根本原因:現(xiàn)有的轉(zhuǎn)賬系統(tǒng)必須依賴中介機構(gòu)進行處理和協(xié)調(diào)1.1.5首個區(qū)塊鏈應(yīng)用的誕生2008年11月1日,一位網(wǎng)名為中本聰(SatoshiNakamoto)的用戶在密碼朋克社區(qū)上發(fā)表了比特幣白皮書《比特幣:一種點對點的電子現(xiàn)金系統(tǒng)》(Bitcoin:Peer-to-PeerElectronicCashSysten),聞述了一個以點對點網(wǎng)絡(luò)、分布式記賬、工作量證明(PoW)共識機制、加密技術(shù)等為基礎(chǔ)構(gòu)建的電子現(xiàn)金支付系統(tǒng)。2009年1月3日,中本聰通過運行這個版本產(chǎn)生了比特幣的第一個區(qū)塊,也就是創(chuàng)世區(qū)塊創(chuàng)世區(qū)塊的誕生標(biāo)志著比特幣主網(wǎng)正式上線,比特幣從理論變?yōu)楝F(xiàn)實。比特幣系統(tǒng)的發(fā)明是為了解決傳統(tǒng)的銀行轉(zhuǎn)賬過程中碰到的一些問題:賬戶和賬戶之間的轉(zhuǎn)賬交易成本高昂;存在利用信用卡撤銷交易進行欺詐的行為;銀行系統(tǒng)為了處理可能發(fā)生的糾紛會過度索取交易雙方的個人隱私信息等。1.1.5首個區(qū)塊鏈應(yīng)用的誕生現(xiàn)有的金融系統(tǒng)中轉(zhuǎn)賬交易轉(zhuǎn)賬請求AB銀行后臺服務(wù)系統(tǒng)e.g.
A與B都在某銀行有賬戶,A向B轉(zhuǎn)賬100元檢查A的賬戶余額是否大于100元是A賬戶+100元B賬戶-100元拒絕A的轉(zhuǎn)賬請求否賬本記錄交易檢查交易執(zhí)行收取手續(xù)費1.1.5首個區(qū)塊鏈應(yīng)用的誕生比特幣系統(tǒng)中轉(zhuǎn)賬交易AB賬本記錄了A、B的賬戶信息和余額信息賬本記錄了A、B的賬戶信息和余額信息雙方驗證交易有效完成轉(zhuǎn)賬e.g.若系統(tǒng)用戶只有A、B兩人,A向B轉(zhuǎn)賬100元e.g.當(dāng)系統(tǒng)用戶規(guī)模擴大,A向B轉(zhuǎn)賬1.1.5首個區(qū)塊鏈應(yīng)用的誕生AB賬本記賬節(jié)點完成記賬,并將交易廣播到整個網(wǎng)絡(luò)其他節(jié)點接受信息并驗證,如果沒問題則加入自己賬本該筆交易生效執(zhí)行1.1.5首個區(qū)塊鏈應(yīng)用的誕生比特幣的誕生中本聰在郵件中提出“一種不需要第三方支持的新的點對點電子現(xiàn)金系統(tǒng)”,并貼出該電子現(xiàn)金系統(tǒng)的研究論文的地址。2009年1月,中本聰在一個小型服務(wù)器上挖出了比特幣的第一個區(qū)塊---創(chuàng)世區(qū)塊,并獲取了50個比特幣的獎勵,宣告了比特幣的正式誕生。有趣的是,在創(chuàng)世區(qū)塊中被寫入了一串?dāng)?shù)字信息,還原為文本為:“TheTimes03/Jan/2009ChancelloronBrinkofsecondbaioutforbanks”。當(dāng)時正值英國的財政大臣被迫考慮第二次出手解救陷入危機的銀行,這句話是泰晤士報當(dāng)天的頭版標(biāo)題。中本聰將這一事件在第一個區(qū)塊鏈中永久的保留了下來。這既是對區(qū)塊鏈產(chǎn)生時間的證明,也是對金融危機下銀行系統(tǒng)脆弱的嘲諷。區(qū)塊鏈的技術(shù)特點21.2.1公開透明在以比特幣為首的公有區(qū)塊鏈系統(tǒng)中,它們自創(chuàng)世區(qū)塊開始,所有區(qū)塊包含的交易信息都是公開、透明的。在系統(tǒng)中每一筆交易從何地址轉(zhuǎn)出、何時轉(zhuǎn)出、轉(zhuǎn)出金額、轉(zhuǎn)人何地址等信息都被一一記錄下來并且公開可査。依據(jù)這些信息,一個地址的總交易筆數(shù)、與何地址有過交易、轉(zhuǎn)出總金額、余額等信息也可以被推斷出來。區(qū)塊鏈瀏覽器:區(qū)塊鏈瀏覽器是一種區(qū)塊鏈搜索工具。區(qū)塊鏈瀏覽器的運營方本身已經(jīng)下載好了完整的賬本數(shù)據(jù)。用戶在區(qū)塊鏈瀏覽器中輸入相關(guān)字段,可以查到區(qū)塊或交易的詳細信息。典型的區(qū)塊鏈公鏈系統(tǒng),比如比特幣和以太坊等都有許多區(qū)塊鏈瀏覽器,這些瀏覽器通常是由開源軟件團隊自發(fā)開發(fā)的。1.2.1公開透明1.2.2難以篡改父區(qū)塊哈希值hash()數(shù)據(jù)父區(qū)塊哈希值hash()數(shù)據(jù)創(chuàng)世區(qū)塊父區(qū)塊哈希值hash()數(shù)據(jù)區(qū)塊鏈系統(tǒng)中的鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu),是由包含交易信息的區(qū)塊按照時間順序從先到后鏈接起來的,這個數(shù)據(jù)結(jié)構(gòu)被稱為“區(qū)塊鏈”。在區(qū)塊鏈中,每個區(qū)塊的區(qū)塊頭都包含一個名為“父區(qū)塊哈希值”的字段,這個區(qū)塊通過存儲在這個字段中的值“鏈接”到前一個區(qū)塊(父區(qū)塊),并一直延續(xù)到創(chuàng)世區(qū)塊。如果黑客想篡改區(qū)塊鏈中的數(shù)據(jù),那么前一區(qū)塊的哈希值將不會與該區(qū)塊的哈希指針匹配;當(dāng)然,黑客也可以通過篡改前一個區(qū)塊的哈希指針來進行掩蓋,但他會發(fā)現(xiàn)修改到區(qū)塊鏈的頭部---創(chuàng)世塊時會遇到麻煩,因為創(chuàng)世塊一般存儲在黑客無法改動的地方。1.2.3可以追溯區(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ū)塊。由于每個區(qū)塊都包含一段時間內(nèi)系統(tǒng)進行的所有交易數(shù)據(jù),因此系統(tǒng)完整的區(qū)塊鏈數(shù)據(jù)就包含了自創(chuàng)世區(qū)塊以來,系統(tǒng)所有進行的交易及交易前后的關(guān)聯(lián)信息。當(dāng)追溯一筆交易時,能夠順著該交易所在的區(qū)塊向前追溯所有這些歷史區(qū)塊信息。父區(qū)塊哈希值hash()數(shù)據(jù)父區(qū)塊哈希值hash()數(shù)據(jù)創(chuàng)世區(qū)塊父區(qū)塊哈希值hash()數(shù)據(jù)1.2.3集體維護區(qū)塊鏈的集體維護主要指區(qū)塊鏈系統(tǒng)在共識機制的作用下,激勵新節(jié)點不斷加入系統(tǒng),并集體參與系統(tǒng)的維護和運作的特點。每一個區(qū)塊鏈都會有一套“共識機制”,用來使眾多互不相識的節(jié)點達成一致。具體來說,共識機制激勵系統(tǒng)中的節(jié)點在參與系統(tǒng)運作時,令遵循這套機制的節(jié)點獲得利益最大化,不遵循甚至作惡的節(jié)點則會付出較大代價而得不償失。因此,區(qū)塊鏈系統(tǒng)在沒有單一機構(gòu)的運作和管理下,依靠共識機制就能讓系統(tǒng)自我運作起來,具備集體維護的特征。比特幣就是第一個這樣的集體維護性組織。1.2.4去中心化/弱中心化“中介化”:在一個組織或系統(tǒng)中,有一個中介機構(gòu)負責(zé)整個系統(tǒng)的調(diào)配和服務(wù)。系統(tǒng)中所有的個體無論做什么、進行什么活動都要通過這個中介機構(gòu)的調(diào)度?!がF(xiàn)有的互聯(lián)網(wǎng)技術(shù)就是采用的這種方式工作,也就是俗稱的“客戶端/服務(wù)器”(ClientServer)模式,簡稱為C/S模式。在這種用模式中,能為客戶端應(yīng)用提供服務(wù)(如文件服務(wù)、打印服務(wù)、通信管理服務(wù)等)的計算機或處理器被稱為服務(wù)器。與服務(wù)器相對應(yīng),提出服務(wù)請求的計算機或處理器就是客戶端。這種系統(tǒng)中,服務(wù)器就是“中介”,客戶端就是系統(tǒng)的“個體”。“去中介化”:區(qū)塊鏈系統(tǒng)中沒有個擁有特殊權(quán)限的中介服務(wù)器或單一機構(gòu)。系統(tǒng)中每個全節(jié)點既是服務(wù)器也是客戶端,在系統(tǒng)中的權(quán)利和義務(wù)都是對等的。它們既能作為服務(wù)器為需要服務(wù)的客戶端服務(wù),也可以作為客戶端向其他節(jié)點提出請求。任意一個節(jié)點宕機或者失效都不會影響整個系統(tǒng)的運作。因此,區(qū)塊鏈系統(tǒng)在架構(gòu)上是去中介化/弱中介化的。《區(qū)塊鏈的基礎(chǔ)概念》第二章分布式系統(tǒng)區(qū)塊鏈的分類區(qū)塊鏈的應(yīng)用分布式系統(tǒng)12.1.1分布式系統(tǒng)的概念集中式系統(tǒng)由一臺或者多臺計算機組成中心節(jié)點,負責(zé)管理應(yīng)用訪問的數(shù)據(jù)存儲、計算等資源;集中式系統(tǒng)一般采用中心化的數(shù)據(jù)庫和服務(wù)器,優(yōu)點是部署簡單、開發(fā)運維容易,缺點是可擴展性不足;集中式系統(tǒng)還存在單點故障問題,如果中心節(jié)點出現(xiàn)故障就意味著所有應(yīng)用都將出現(xiàn)問題。2.1.1分布式系統(tǒng)的概念分布式系統(tǒng)是由若干獨立的計算機節(jié)點組成的系統(tǒng),這些計算機節(jié)點可以看成獨立的系統(tǒng)組件,通過網(wǎng)絡(luò)進行連接并在一定范圍內(nèi)有效共享資源,節(jié)點之間通過傳遞消息進行協(xié)調(diào)工作,共同完成系統(tǒng)內(nèi)的工作任務(wù)。2.1.1分布式系統(tǒng)的概念定義包含兩方面:①系統(tǒng)內(nèi)的計算機節(jié)點都是獨立的,通過網(wǎng)絡(luò)通信進行協(xié)調(diào)②用戶對于分布式系統(tǒng)的訪問從功能邏輯上就像訪問單個計算機系統(tǒng)一樣(1)分布性:分布式系統(tǒng)內(nèi)計算機節(jié)點可以分布在不同的位置。(2)可擴展性:分布式系統(tǒng)內(nèi)節(jié)點數(shù)量可以根據(jù)應(yīng)用需求進行動態(tài)増減,服務(wù)器也可以動態(tài)部署。(3)對等性:分布式系統(tǒng)沒有中心化的控制主機,組成分布式系統(tǒng)的所有計算機節(jié)點都是對等的;當(dāng)某一個節(jié)點上存儲的數(shù)據(jù)丟失時,可以從副本上讀取該數(shù)據(jù)。(4)
并發(fā)性:分布式系統(tǒng)中的多個計算機節(jié)點通過網(wǎng)絡(luò)進行連接并在一定范圍內(nèi)有效共享資源,某一時刻這些計算機節(jié)點可能會并發(fā)地操作一些共享的資源。分布式系統(tǒng)特征:2.1.2FLP和CAP定理FLP原理是一個關(guān)于分布式系統(tǒng)達成共識的重要理論,由費舍爾(Fischer)、林奇(Lynch)、帕特森(Patterson)三位學(xué)者在1985年提出,并以三人姓氏的首字母作為縮寫命名。FLP原理告訴人們,不要浪費時間去為異步通信的分布式系統(tǒng)設(shè)計在任意場景下都能實現(xiàn)共識的算法,這樣的算法不存在,理由是:在實際異步通信的分布式系統(tǒng)環(huán)境下,可能存在通信故障、延遲或者節(jié)點本身出現(xiàn)失效的情況,異步系統(tǒng)無法確保在有限時間內(nèi)完成一致性。FLP原理為分布式系統(tǒng)領(lǐng)域帯來一個較為悲觀的結(jié)論,既然不存在這樣的算法可以實現(xiàn)分布式系統(tǒng)的一致性,那么一致性問題就無法解決了么?后來埃里克?布魯爾(EricBrewer)在2000年美國計算機學(xué)會(AssociationforComputingMachinery,ACM)組織的一個研討會上提出了CAP原理猜想,之后林奇等人對CAP原理進行了證明。FLP原理2.1.2FLP和CAP定理CAP原理CAP原理定義了分布式計算系統(tǒng)的三大特性:(1)一致性(Consistency):共享數(shù)據(jù)副本之間呈現(xiàn)出統(tǒng)一且實時的數(shù)據(jù)內(nèi)容;(2)
可用性(Availability):所有的數(shù)據(jù)操作總會在一定時間內(nèi)得到響應(yīng);(3)分區(qū)容錯性(Partition):通常由于網(wǎng)絡(luò)間連接中斷而導(dǎo)致網(wǎng)絡(luò)中的節(jié)點相互隔離無法訪問時,被隔離的節(jié)點仍可正常運行。這三大特性無法同時實現(xiàn),設(shè)計中需要弱化其中某個特性,而保證另外兩個特性。對于結(jié)果一致性要求不是特別高的應(yīng)用,可弱化一致性要求,比如延長達成一致性的時間。對于一致性要求高的應(yīng)用可弱化可用性要求,比如系統(tǒng)發(fā)生故障時拒絕服務(wù)。大部分時候網(wǎng)絡(luò)都是可靠的,網(wǎng)絡(luò)分區(qū)出現(xiàn)概率小但很難完全避免,所以實際情況一般弱化分區(qū)容錯性2.1.3分布式系統(tǒng)的一致性分布式系統(tǒng)的一致性:對系統(tǒng)內(nèi)的所有計算機節(jié)點給定一組操作,按照約定的規(guī)則協(xié)議,節(jié)點之間對于操作后的最終處理結(jié)果達成某種共同認可的狀態(tài)。分布式系統(tǒng)的一致性是設(shè)計分布式系統(tǒng)時應(yīng)考慮的最核心問題。影響分布式系統(tǒng)最終全局狀態(tài)結(jié)果一致性的因素:不同計算機節(jié)點處于不同的地理位置計算性能也存在差異對于相同數(shù)據(jù)任務(wù)完成計算耗費的時間無法保證一致:比如有可能出現(xiàn)少數(shù)節(jié)點處理較慢,而其他節(jié)點必須等待它們處理結(jié);或者發(fā)生節(jié)點臨時中斷處理等異常情況,如出現(xiàn)節(jié)點宕機的情況。節(jié)點之間進行網(wǎng)絡(luò)通信也有可能因為通信鏈路故障而導(dǎo)致消息接收延遲分布式系統(tǒng)一致性的目標(biāo):系統(tǒng)在出現(xiàn)上面描述各種故障發(fā)生的情況下,依然能正常滿足工作的要求,最終系統(tǒng)通過檢測和處理,節(jié)點依然能達成全局一致性狀態(tài)。2.1.3分布式系統(tǒng)的一致性分布式系統(tǒng)的容錯率:分布式系統(tǒng)的一致性表明,系統(tǒng)本身具有容忍一定數(shù)量節(jié)點發(fā)生錯誤行為的能力。這些發(fā)生錯誤行為的節(jié)點稱為故障節(jié)點,占整個分布式系統(tǒng)全部節(jié)點數(shù)量的比例稱為分布式系統(tǒng)的容錯率。分布式系統(tǒng)達成一致性狀態(tài)的基本要求:(1)收斂性:一致的結(jié)果在有限時間內(nèi)能完成;(2)一致性:不同節(jié)點最終完成決策的結(jié)果是相同的;(3)有效性:決策的結(jié)果必須是某個節(jié)點提出的提案;分布式系統(tǒng)計算機服務(wù)可以正常使用的前提主要指分布式系統(tǒng)最終一致性是由分布式系統(tǒng)內(nèi)的節(jié)點執(zhí)行的結(jié)果2.1.3分布式系統(tǒng)的一致性在實際工程實踐中,一般會放寬對一致性的要求,采用弱一致性替代強一致性。強一致性要求節(jié)點無論何時進行數(shù)據(jù)的讀取操作,均會返回最新一次寫操作后的結(jié)果數(shù)據(jù),即系統(tǒng)對節(jié)點達成一致性結(jié)果的同步性要求很高。弱一致性一般指在滿足一定約條件下達到最終一致性,即系統(tǒng)可以在未來某個時刻而不是馬上達成一致性狀態(tài)。弱一致性要求中比較典型的是最終一致性(EventualConsistency),不保證任意時間點上節(jié)點的數(shù)據(jù)均相同,但需要在經(jīng)過有限的時間后達到數(shù)據(jù)上的一致。這實際上可以通過放寬系統(tǒng)的目標(biāo)要求,從而降低系統(tǒng)實現(xiàn)的難度。2.1.4分布式系統(tǒng)的安全可信分布式系統(tǒng)內(nèi)部存在地理位置分布不同的計算機節(jié)點,內(nèi)部節(jié)點之間還存在復(fù)雜的通信行為,分布式系統(tǒng)節(jié)點或者節(jié)點通信出現(xiàn)故障都有可能影響到系統(tǒng)的安全性和系統(tǒng)最終完成計算任務(wù)的結(jié)果可信度。分布式系統(tǒng)的安全性主要體現(xiàn)在攻擊者無法通過影響系統(tǒng)內(nèi)的部分節(jié)點或者其他手段,造成分布式系統(tǒng)整體功能故障而無法繼續(xù)正常工作。分布式系統(tǒng)的可信性系統(tǒng)最終完成計算任務(wù)得出的全局一致性狀態(tài)結(jié)果對于所有節(jié)點及系統(tǒng)用戶均是可信的。分布式系統(tǒng)一般通過系統(tǒng)內(nèi)數(shù)據(jù)和服務(wù)副本的冗余性,即所有節(jié)點都存儲一份狀態(tài)數(shù)據(jù)的副本以及保證這個唯一的系統(tǒng)全局狀態(tài)數(shù)據(jù)的不可篡改性來實現(xiàn)可信。區(qū)塊鏈的分類22.2.1公有鏈公有鏈通常不設(shè)置準(zhǔn)入門檻,對所有人開放,任何人都可以自由訪問公有鏈的數(shù)據(jù),參與公有鏈的共識,并在公有鏈上創(chuàng)建應(yīng)用,這也是“公有”的由來。目前公有鏈可以運用在數(shù)字資產(chǎn)等場景,如比特幣、以太坊等。同時,公有鏈也可以應(yīng)用在一些直接點對點交互需求的場景,如資產(chǎn)注冊登記、發(fā)行、投票、資產(chǎn)管理等。公有鏈的公開透明使得其不太適合那些對數(shù)據(jù)隱私、商業(yè)機密要求較高的場景,更適合對信任、安全和持久性要求較高的場景,如用戶對自主數(shù)據(jù)的控制、可信的商品溯源記錄。公有鏈的應(yīng)用也不局限于金融場景,還包括防偽溯源、數(shù)字身份、內(nèi)容版權(quán)、物聯(lián)網(wǎng)等。2.2.2聯(lián)盟鏈聯(lián)盟鏈服務(wù)于符合某種條件的成員組成的特定聯(lián)盟,是由聯(lián)盟成員進行管理的區(qū)塊鏈。其具有半開放的網(wǎng)絡(luò),只有經(jīng)過認證許可的可信節(jié)點才能加入、退出網(wǎng)絡(luò);具有受控制的讀寫權(quán)限,只有特定權(quán)限的鏈上節(jié)點能發(fā)布和訪問交易,只有一部分擁有權(quán)限的可信節(jié)點才能參與該聯(lián)盟鏈的共識和記賬。聯(lián)盟鏈沒有通過激勵機制實現(xiàn)系統(tǒng)自治的強烈需求,各聯(lián)盟鏈根據(jù)自身需求自主選擇増加激勵系統(tǒng)。聯(lián)盟鏈的分布式程度和信息公開程度不及公有鏈,但也因此可更好地保護用戶、交易隱私。同時由于交易只需要部分被授權(quán)的受信高算力節(jié)點進行驗證共識,因此相較公有鏈,其性能較更高,成本更低。2.2.3私有鏈私有鏈服務(wù)于特定企業(yè)、組織或個人,是由該企業(yè)、組織或個人進行管理的區(qū)塊鏈。其具有相對封閉的網(wǎng)絡(luò),只對指定實體或個人開放,只有相關(guān)節(jié)點在許可認證后才能加入、退出網(wǎng)絡(luò)。私有鏈同時具有受控制的讀寫權(quán)限,只有特定權(quán)限的鏈上節(jié)點才能在鏈上發(fā)布和訪問交易信息,只有一部分擁有權(quán)限的可信節(jié)點オ能參與共識和記賬。與聯(lián)盟鏈不同的是,私有鏈節(jié)點均屬于同一企業(yè)或組織,節(jié)點之間信任程度更高,并且私有鏈共識范圍更加狹窄,甚至可以僅由單高性能節(jié)點進行記賬。私有鏈在三類區(qū)塊鏈中分布式程度和信息公開程度最低,因此其性能最高,隱私性最強且交易成本最低。由于私有鏈較為集中的權(quán)限控制與管理并非真正的分布式系統(tǒng),其一般只應(yīng)用于企業(yè)內(nèi)部,主要應(yīng)用于數(shù)據(jù)管理、審計等金融場景。區(qū)塊鏈的應(yīng)用32.3.1公有鏈的應(yīng)用公有鏈對所有人開放,任何人都可以參與訪問公有鏈,并在公有鏈上創(chuàng)建應(yīng)用。目前公有鏈主要應(yīng)用在數(shù)字貨幣等場景,如比特幣、以太坊等。同時,公有鏈也可以應(yīng)用在一些具有點對點直接交互需求的場景,如資產(chǎn)注冊、發(fā)行、投票、資產(chǎn)管理等。關(guān)于數(shù)字貨幣、加密貨幣和虛擬貨幣概念界定:數(shù)字貨幣(DigitalCurrency)指向的范圍較廣,它泛指數(shù)字化的貨幣。電子貨幣ElectronicMoney)與數(shù)字貨幣的概念相類似,它同樣指以電子化途徑實現(xiàn)的貨幣,例如央行數(shù)字貨幣(CentralBankDigitalCurrencies,CBDC)。加密貨幣(CryptoCurrency)其實是加密數(shù)字貨幣的簡稱,是數(shù)字貨幣發(fā)展的一種分支它更強調(diào)貨幣使用了密碼學(xué)技術(shù)。例如,基于公用鏈技術(shù)發(fā)行的比特幣就是一種很經(jīng)典的加密貨幣。虛擬貨幣(VirtualCurrency)和數(shù)字貨幣范疇有一定的重合,但它強調(diào)這類貨幣不是真實的貨幣,通常不具有法償性和強制性等貨幣屬性。游戲中的點券、互聯(lián)網(wǎng)公司發(fā)行供生態(tài)內(nèi)使用的貨幣,都可以認為是虛擬貨幣,而比特幣等有時也被認為是虛擬貨幣。關(guān)于Token:它原指令牌、通行證。在區(qū)塊鏈中,它是指基于區(qū)塊鏈創(chuàng)建的一種數(shù)字對象代表區(qū)塊鏈的某種價值或某種權(quán)利,中文也被譯作“通證”。一般Token是以加密貨幣形式存在的,但也有一些是傳統(tǒng)的電子化憑證。Token指代的某種價值或某種權(quán)利的范圍很廣泛,例如貨幣、積分、票據(jù)、投票權(quán)、分紅權(quán)、地產(chǎn)、證券、債券、某種資格、某類證明等各種權(quán)益證明。大部分加密貨幣和Token為了能夠進一步提升其可信程度,會選擇公有鏈作為載體去發(fā)行。但是也有一些Token,會因為場景需要發(fā)行在聯(lián)盟鏈或私有鏈上。此外,出于便于監(jiān)管和可控的考慮,一些央行層面的數(shù)字貨幣會選擇在聯(lián)盟鏈或私有鏈架構(gòu)上進行發(fā)行。2.3.1公有鏈的應(yīng)用2.3.2聯(lián)盟鏈的應(yīng)用聯(lián)盟鏈只對特定的參與組織開放權(quán)限,可以保護參與者的交易數(shù)據(jù)隱私,適合機構(gòu)之間的交易、清結(jié)算和B2B場景。聯(lián)盟鏈的應(yīng)用場景非常豐富,主要包括金融和非金融領(lǐng)域:1)金融領(lǐng)域:支付、保險、清結(jié)算、股權(quán)登記、征信、供應(yīng)鏈金融等金融場景對于信任要求較高,同時也需要保護數(shù)據(jù)隱私,適合作為聯(lián)盟鏈場景。2)非金融領(lǐng)域:非金融領(lǐng)域主要通過區(qū)塊鏈不可篡改的特性來追蹤、記錄和共享數(shù)據(jù),如區(qū)塊鏈應(yīng)用在商品溯源、電子政務(wù)、智慧城市、公益慈善、醫(yī)療健康等場景。2.3.3區(qū)塊鏈應(yīng)用的發(fā)展趨勢區(qū)塊鏈的應(yīng)用方式從其延生開始已經(jīng)經(jīng)過了三個發(fā)展階段:第一個階段是比特幣為代表的點對點支付時代,主要實現(xiàn)高效率、點對點的支付過程,其主要應(yīng)用場景包括支付、流通等;第二個階段是以以太坊為代表的智能合約時代。區(qū)塊鏈與智能合約相結(jié)合,實現(xiàn)在區(qū)塊鏈上部署應(yīng)用程序,包括可編程金融、分布式應(yīng)用(DecentralizationApplications,簡稱DAPPS‘”)等落地;第三個階段是“區(qū)塊鏈+行業(yè)”應(yīng)用的時代,即把區(qū)塊鏈應(yīng)用拓展到各個行業(yè)場景,以實現(xiàn)具體行業(yè)應(yīng)用落地為目標(biāo),解決行業(yè)痛點,服務(wù)經(jīng)濟發(fā)展和社會進步。2.3.3區(qū)塊鏈應(yīng)用的發(fā)展趨勢目前區(qū)塊鏈正在加速向第三階段的行業(yè)應(yīng)用推進,成為一種通用基礎(chǔ)設(shè)施,加速與行業(yè)融合創(chuàng)新。區(qū)塊鏈技術(shù)的優(yōu)勢:多方協(xié)作場景中以低成本建立信任區(qū)塊鏈技術(shù)發(fā)展瓶頸:存儲、計算等方面存在一定的資源和性能瓶頸區(qū)塊鏈不只是單一技術(shù),而是多種技術(shù)的綜合集成,包括P2P網(wǎng)絡(luò)通信、非對稱加密技術(shù)以及分布式數(shù)據(jù)庫技術(shù)等。同時,區(qū)塊鏈應(yīng)用還涉及多節(jié)點參與的協(xié)調(diào)問題,實施區(qū)塊鏈解決方案可能面臨計算復(fù)雜度和存儲冗余度都比較高的情況,區(qū)塊鏈和其他技術(shù)結(jié)合可以有效降低復(fù)雜度,加速區(qū)塊鏈應(yīng)用落地進程?!秴^(qū)塊鏈的分層模型》第三章3.2數(shù)據(jù)層3.1區(qū)塊鏈的系統(tǒng)分層3.3網(wǎng)絡(luò)層3.4共識層3.5合約層3.6應(yīng)用層區(qū)塊鏈的系統(tǒng)分層13.1.1互聯(lián)網(wǎng)分層模型發(fā)送者A接收者B?借助何種應(yīng)用完成轉(zhuǎn)賬檢查發(fā)送者余額與真實性節(jié)點確認通知接收者“收款憑證”的存儲分層:拆分復(fù)雜問題,通過層級遞進關(guān)系串聯(lián)3.1.1互聯(lián)網(wǎng)分層模型通用網(wǎng)絡(luò)標(biāo)準(zhǔn)和方法:開放系統(tǒng)互聯(lián)模型應(yīng)用層表示層會話層傳輸層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層物理層圖3-1OSI七層網(wǎng)絡(luò)模型網(wǎng)絡(luò)通信模型:TCP/IP協(xié)議應(yīng)用層傳輸層網(wǎng)絡(luò)層鏈路層圖3-2TCP/IP四層網(wǎng)絡(luò)模型層級之間存在傳遞關(guān)系新一代信息技術(shù)系列教材《區(qū)塊鏈導(dǎo)論》3.1.2區(qū)塊鏈的五層模型獨立性
每層具有獨立的邏輯和功能通用性各層規(guī)范和架構(gòu)確定,有利于國際標(biāo)準(zhǔn)化工作展開,促進系統(tǒng)各部分的通用性和兼容性。層級間具有遞進關(guān)系需要滿足分層的以下特點:應(yīng)用層分布式的鏈上應(yīng)用面向最終用戶合約層實現(xiàn)智能合約、腳本功能共識層負責(zé)實現(xiàn)各賬本的數(shù)據(jù)一致性分布式系統(tǒng)特有層級各節(jié)點達成一致,共識機制:PoW,PoS,BFT…網(wǎng)絡(luò)層節(jié)點之間的網(wǎng)絡(luò)連接和傳輸點對點網(wǎng)絡(luò)數(shù)據(jù)層區(qū)塊鏈模型基礎(chǔ)負責(zé)區(qū)塊鏈數(shù)據(jù)存儲“賬本”數(shù)據(jù)形成區(qū)塊,以時間戳順序存儲在物理介質(zhì)中新區(qū)塊驗證并上鏈圖3-3區(qū)塊鏈五層分層模型新一代信息技術(shù)系列教材《區(qū)塊鏈導(dǎo)論》發(fā)送者A接收者B應(yīng)用層例子:發(fā)送Token交易信息+簽名信息選擇APP,輸入交易信息合約層交易信息+簽名信息+合約內(nèi)容調(diào)用Token合約共識層選出節(jié)點并進行信息驗證,打包成區(qū)塊節(jié)點信息+交易信息+簽名信息+合約內(nèi)容網(wǎng)絡(luò)層節(jié)點廣播區(qū)塊給其他節(jié)點,并進行驗證區(qū)塊數(shù)據(jù)層區(qū)塊上鏈3.1.2區(qū)塊鏈的五層模型新一代信息技術(shù)系列教材《區(qū)塊鏈導(dǎo)論》數(shù)據(jù)層23.2.1數(shù)據(jù)結(jié)構(gòu)區(qū)塊鏈的本質(zhì):分布式賬本數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)模型數(shù)據(jù)存儲合約層共識層網(wǎng)絡(luò)層數(shù)據(jù)層應(yīng)用層3.2.1數(shù)據(jù)結(jié)構(gòu)區(qū)塊鏈:區(qū)塊按照時間戳,由遠及近地鏈接,形成一條鏈?zhǔn)浇Y(jié)構(gòu)的數(shù)據(jù)存儲。1.區(qū)塊結(jié)構(gòu)區(qū)塊鏈的數(shù)據(jù)組織單元是區(qū)塊,不同的區(qū)塊鏈的區(qū)塊數(shù)據(jù)都會包含“區(qū)塊頭”和“交易”兩個部分。區(qū)塊頭交易存放區(qū)塊自身的元數(shù)據(jù)存放加密后的交易信息比特幣——幻數(shù)、區(qū)塊大小、區(qū)塊頭、交易計數(shù)和交易以太坊——區(qū)塊頭、交易、區(qū)塊頭哈希3.2.1數(shù)據(jù)結(jié)構(gòu)區(qū)塊鏈:區(qū)塊按照時間戳,由遠及近地鏈接,形成一條鏈?zhǔn)浇Y(jié)構(gòu)的數(shù)據(jù)存儲。1.區(qū)塊結(jié)構(gòu)區(qū)塊鏈的數(shù)據(jù)組織單元是區(qū)塊,不同的區(qū)塊鏈的區(qū)塊數(shù)據(jù)都會包含“區(qū)塊頭”和“交易”兩個部分。區(qū)塊頭交易存放區(qū)塊自身的元數(shù)據(jù)存放加密后的交易信息比特幣——幻數(shù)、區(qū)塊大小、區(qū)塊頭、交易計數(shù)和交易以太坊——區(qū)塊頭、交易、區(qū)塊頭哈希區(qū)塊頭前塊哈希默克爾(Merkle)根時間戳向前一個區(qū)塊的指針,將孤立的區(qū)塊串聯(lián)在一起,形成區(qū)塊鏈存放著基于交易信息形成的哈希值記錄當(dāng)前區(qū)塊產(chǎn)生的近似時間3.2.1數(shù)據(jù)結(jié)構(gòu)區(qū)塊頭交易信息對交易信息的哈希對下層節(jié)點的進一步哈希交易與Merkle樹Merkle樹又稱為哈希樹,樹中的每個節(jié)點存儲的均為哈希值。Merkle樹的結(jié)構(gòu)特點:(1)易校驗(2)擴展性強(3)證明成本低3.2.1數(shù)據(jù)結(jié)構(gòu)3.2.4區(qū)塊鏈區(qū)塊鏈的形成:“前塊哈希”的數(shù)據(jù)域,將父區(qū)塊的區(qū)塊頭做哈希運算得到,將區(qū)塊有序連接成區(qū)塊鏈。特點:1.增加了篡改難度2.無法避免產(chǎn)生分叉!3.2.1數(shù)據(jù)結(jié)構(gòu)1.交易輸出(UnspentTransactionOutput,UTXO)模型UTXO以“交易”為單位進行追蹤和記錄。比特幣為代表,每筆交易有一個或者多個交易輸出或輸入。輸出:交易的每一個輸出即為一個新的UTXO,一個用戶所擁有的比特余額為該用戶的所有UTXO之和,這些UTXO零散地記錄在不同的交易區(qū)塊中。輸入:交易的每一個輸入即為前序交易的某個UTXO,所有交易的最初輸入可以追溯了鑄幣獎勵。每筆交易的輸入與輸出可以并行處理,并且一一對應(yīng)。3.2.2數(shù)據(jù)模型2.
賬戶模型賬戶不記錄交易過程,只記錄余額狀態(tài)。特點:1.區(qū)塊體積小,網(wǎng)絡(luò)傳輸量小,空間利用率高;2.相比與UTXO模型,賬戶模型讓網(wǎng)絡(luò)中的輕節(jié)點更容易驗證;3.并發(fā)處理能力比UTXO差。以太坊為代表,賬戶模型中包含了:(1)外部賬戶
給用戶操作,通過私鑰信息操作賬戶實現(xiàn)轉(zhuǎn)賬、智能合約的創(chuàng)建,調(diào)用等功能(2)合約賬戶
不能自主發(fā)起交易,只能被外部賬戶調(diào)用3.2.2數(shù)據(jù)模型3.2.3數(shù)據(jù)存儲存儲構(gòu)架的演變:中心化服務(wù)器分布式數(shù)據(jù)中心或者云平臺(多中心化)區(qū)塊鏈:分布式存儲,每個節(jié)點都能夠存儲全量賬本。不同區(qū)塊鏈,節(jié)點上的物理存儲方式不同比特幣:區(qū)塊數(shù)據(jù)以文本形式存儲;其他信息存儲在鍵值(Key-Value,KV)數(shù)據(jù)庫LevelDB中。以太坊:狀態(tài)和索引數(shù)據(jù)都被存儲在LevelDB中。聯(lián)盟鏈Corda項目的數(shù)據(jù)存儲在傳統(tǒng)關(guān)系型數(shù)據(jù)庫,TrustSQL項目數(shù)據(jù)采用MySQL及MariaDB作為存儲數(shù)據(jù)庫。區(qū)塊鏈項目面臨著嚴(yán)峻的存儲問題,需要新的技術(shù)手段,例如云平臺、側(cè)鏈、閃電網(wǎng)絡(luò)等。網(wǎng)絡(luò)層33.3網(wǎng)絡(luò)層合約層共識層網(wǎng)絡(luò)層數(shù)據(jù)層應(yīng)用層網(wǎng)絡(luò)層:泛指區(qū)塊鏈系統(tǒng)的整個網(wǎng)絡(luò)通信層,區(qū)塊鏈數(shù)據(jù)通過網(wǎng)絡(luò)層傳播進行校驗、存儲等。主要實現(xiàn)組網(wǎng)、傳播與校驗功能。中心化模式:架構(gòu):客戶端/服務(wù)端(Client/Server,C/S)或瀏覽器/服務(wù)端(Browser/Server,B/S)特點:1.系統(tǒng)需要一個或多個中心化的服務(wù)器承擔(dān)統(tǒng)一接收和處理請求的職能2.優(yōu)點:利于服務(wù)的統(tǒng)一管理與升級;保持服務(wù)一致性;3.缺點:中心化的設(shè)備故障會導(dǎo)致服務(wù)癱瘓;節(jié)點多導(dǎo)致負載壓力大。3.3.1點對點網(wǎng)絡(luò)點對點網(wǎng)絡(luò)(Peer-to-Peer,P2P)分布式網(wǎng)絡(luò)架構(gòu),網(wǎng)絡(luò)中的每一個節(jié)點都是對等的,可以充當(dāng)服務(wù)提供方及服務(wù)獲取方。單一或少量節(jié)點機器配套通信設(shè)備的故障不會影響整個網(wǎng)絡(luò)的服務(wù)提供。優(yōu)點:節(jié)點越多,服務(wù)質(zhì)量越高,擴展性越強。缺點:數(shù)據(jù)一致性難以保障、資源無法統(tǒng)一管理、垃圾信息多等。3.3.1點對點網(wǎng)絡(luò)P2P網(wǎng)絡(luò)的核心技術(shù):分布式哈希表用途:維護網(wǎng)絡(luò)中節(jié)點清單和和節(jié)點能提供的服務(wù)清單分布式哈希表(DistributedHashTable,DHT)誕生于2001年,核心思想是網(wǎng)絡(luò)中的每個節(jié)點都維護一部分索引信息,然后通過特定的規(guī)則將這些節(jié)點信息連接起來,使得在查詢或注冊時,按規(guī)則觸達相關(guān)節(jié)點或資源,不同的規(guī)則對應(yīng)著分布式哈希表不同的協(xié)議。
優(yōu)勢:避免中心化索引和網(wǎng)絡(luò)風(fēng)暴分布式哈希表基礎(chǔ)結(jié)構(gòu):哈希表,是一種以“鍵-值”形式進行存儲和查詢的數(shù)據(jù)結(jié)構(gòu)。在存儲時,存儲信息經(jīng)過哈希函數(shù)的處理生成一個映射地址,并將信息存儲到這個地址中,讀取時直接定位到該映射地址提取數(shù)據(jù)。3.3.1點對點網(wǎng)絡(luò)圖3-12為哈希表存儲結(jié)構(gòu),是一組數(shù)據(jù){1、3、4、7、8、20、55}經(jīng)過哈希函數(shù)H(k)=k%7進行散列得到。對于數(shù)值20,20%7=6,因此數(shù)值20存儲在地址為6的地方。也有可能存在地址沖突的情況,例如1和8散列后地址相同,這種情況可以通過開放定址、單獨鏈表、再散列等方法解決。圖中的采用的是單獨鏈表法。通過哈希表存儲的數(shù)據(jù),可以實現(xiàn)在常數(shù)時間復(fù)雜度內(nèi)完成數(shù)據(jù)讀取,十分高效。在分布式網(wǎng)絡(luò)中,每個節(jié)點都存儲了一張哈希表,通過一定的規(guī)則關(guān)聯(lián)形成了分布式哈希表。地址存儲數(shù)據(jù)3.3.1點對點網(wǎng)絡(luò)分布式哈希表實現(xiàn):Kademlia協(xié)議Kademlia協(xié)議在2002年設(shè)計,具有結(jié)構(gòu)簡單、性能好、安全性強的優(yōu)點由于在分布式哈希表的網(wǎng)絡(luò)中,每個節(jié)點只保存一部分資源的索引信息,當(dāng)網(wǎng)絡(luò)中有資源變更時不需要全網(wǎng)廣播,只需要更新相關(guān)節(jié)點。問題1:如何在每個節(jié)點都知道部分信息的情況下實現(xiàn)對全網(wǎng)資源的觸達與維護???Kademlia協(xié)議提出基于距離的解決方案:每一個節(jié)點都維護一張哈希表,表中將網(wǎng)絡(luò)的節(jié)點基于距離進行分組,每個分組下存放若干個節(jié)點代表。問題2:網(wǎng)絡(luò)中的節(jié)點和資源如何建立關(guān)系???Kademlia協(xié)議將網(wǎng)絡(luò)中的節(jié)點和資源均映射成160位的二進制碼,編碼等于或接近某個資源的節(jié)點,需要知道該資源的下載地址。Kademlia協(xié)議解決了點對點網(wǎng)絡(luò)中的組網(wǎng)問題,將找資源變成找節(jié)點,將找具體節(jié)點變成找大類的代表。3.3.2數(shù)據(jù)傳播和校驗
數(shù)據(jù)傳播
區(qū)塊數(shù)據(jù)打包后需要廣播給其他節(jié)點進行校驗和記賬。根據(jù)點對點分布式網(wǎng)絡(luò)的特點,每個節(jié)點只會向其直接連接的節(jié)點發(fā)送區(qū)塊信息。收到消息的節(jié)點會對區(qū)塊進行校驗,通過后加入該節(jié)點本地的區(qū)塊鏈,并廣播給其他節(jié)點,如此循環(huán),知道觸達全網(wǎng)的節(jié)點。
以太坊中的數(shù)據(jù)傳播方式:
1.向相鄰節(jié)點直接發(fā)送包含完整的區(qū)塊內(nèi)容的消息;
2.向相鄰節(jié)點發(fā)送只包含區(qū)塊哈希的消息,收到區(qū)塊哈希的節(jié)點再從發(fā)送節(jié)點請求對應(yīng)的完整區(qū)塊信息。3.3.2數(shù)據(jù)傳播和校驗
數(shù)據(jù)校驗
點對點網(wǎng)絡(luò)中,全節(jié)點會占用較大的存儲量,輕量級節(jié)點會存儲部分?jǐn)?shù)據(jù),所以輕量級節(jié)點需要向相鄰節(jié)點請求數(shù)據(jù)來完成數(shù)據(jù)校驗。
數(shù)據(jù)校驗的內(nèi)容:依據(jù)該區(qū)塊鏈項目預(yù)定義的清單。
比特幣的數(shù)據(jù)校驗內(nèi)容:
(1)工作量證明檢查
(2)區(qū)塊頭中Merkle根的值是否與依據(jù)區(qū)塊體中交易信息計算得到一致
(3)區(qū)塊大小再限制范圍內(nèi)
(4)第一筆交易以外的其他交易不能是鑄幣交易
(5)交易的合法性共識層43.4.1共識和一致性區(qū)塊鏈系統(tǒng)作為一個分布式系統(tǒng),其正常工作的核心問題是如何保證所有節(jié)點中的數(shù)據(jù)完全相同,并且能夠?qū)δ硞€提案達成一致。解決方法:共識層包含了各種共識算法,負責(zé)實現(xiàn)區(qū)塊鏈各個賬本的一致性,即不同節(jié)點數(shù)據(jù)的一致性。一致性指不同節(jié)點中的數(shù)據(jù)內(nèi)容是否完整并且相同,是系統(tǒng)對外呈現(xiàn)的狀態(tài)是否一致。共識是一種實現(xiàn)一致性的方法、途徑或手段;共識機制(共識算法)是為了達成共識需要使用的某種機制,快速準(zhǔn)確地在各個節(jié)點實現(xiàn)區(qū)塊數(shù)據(jù)一致性的機制和算法,通常是利用獎懲機制。主流的共識機制:確定性算法:如拜占庭容錯(BFT)概率性算法:如工作量證明(PoW)、權(quán)益證明(PoS)、委托權(quán)益證明(DPoS)區(qū)別:確定性算法下的新區(qū)塊無法被滾回,而概率性算法的新區(qū)塊,只有當(dāng)被回滾的概率接近0時,才被視為確定性的。3.4.2拜占庭容錯BFT拜占庭容錯(ByzantineFaultTolerance,BFT)算法可以解決分布式系統(tǒng)里拜占庭將軍問題的容錯算法。拜占庭將軍問題:將軍選擇進攻還是不進攻?決策是否能達成一致,是決定勝負的關(guān)鍵。
誠實將軍們決策的結(jié)果會被叛徒將軍干擾:1.不進行表態(tài);2.發(fā)表錯誤觀點;3.主動干擾其他將軍對局勢進行誤判。例如:有11位將軍A1,A2,A3,A4,B1,B2,B3,Z1,Z2,Z3,Z4叛徒:Z1~Z4;想進攻:A1~A4;不想進攻:B1~B34位叛徒成功瓦解了7位誠實將軍3.4.2拜占庭容錯BFT區(qū)塊鏈中:每個節(jié)點——拜占庭軍隊中的將軍各個節(jié)點的信息傳輸過程——信使傳信部分節(jié)點被干擾——信使被殺惡意節(jié)點——叛徒將軍出現(xiàn)故障或錯誤的節(jié)點被稱為拜占庭節(jié)點;接收正確信息同時傳送正確信息的節(jié)點稱為非拜占庭節(jié)點。BFT共識機制中應(yīng)用最廣的位實用拜占庭容錯機制(PracticalByzantineFaultTolerance,PBFT),1999年由MiguelCastro和BarbaraLiskov提出。適用場景:極少有惡意節(jié)點或者故障節(jié)點核心思路:性能優(yōu)先3.4.2拜占庭容錯BFTPBFT算法:由執(zhí)行交易命令的主節(jié)點使用,在三個階段中達成共識。主節(jié)點廣播請求每個驗證者簽名并準(zhǔn)備針對該請求的準(zhǔn)備消息,驗證器廣播提交消息當(dāng)接收到足夠的提交消息后,請求被接受
3.4.3PoW證明類共識(ProofofX):節(jié)點以某種代價或消耗資源的證明,基于這個證明,節(jié)點可以獲得一定概率或一定比例的記賬權(quán)。工作量證明(ProofofWork,PoW):指節(jié)點通過消耗計算資源,計算一項較難完成但很容易驗證的工作,并以此證明獲取區(qū)塊鏈記賬權(quán)的共識機制。最常用的工作為計算哈希函數(shù)(計算過程簡單,破解很難);要求節(jié)點利用計算能力去尋找一個隨機數(shù),使得該隨機數(shù)和特定數(shù)字的哈希計算滿足一定的條件。優(yōu)點:安全性和不可篡改性。缺點:交易確認時間過長,不適用高頻的商業(yè)應(yīng)用;消耗了大量的電力資源;挖礦系統(tǒng)越來越中心化。3.4.3PoW比特幣使用隨機數(shù)搜索目標(biāo)哈希的PoW過程:(1)將一個新的鑄幣交易添加進系統(tǒng)中,計算出Merkle根哈希;(2)利用隨機數(shù)Nonce、上一個區(qū)塊哈希值、當(dāng)前Merkle根哈希及其他的字段組成區(qū)塊頭;(3)將每一個區(qū)塊頭進行雙重SHA-256運算,并且使得隨機數(shù)Nonce加1,得到一個結(jié)果值,把網(wǎng)絡(luò)目標(biāo)值和得到的數(shù)值進行比較。當(dāng)?shù)玫降闹敌∮诘扔谀繕?biāo)哈希值,則隨機數(shù)符合條件,第一個算出此隨機數(shù)的礦工擁有記賬權(quán)。3.4.4PoS/DPoS幣齡(CoinDays):個人所擁有貨幣數(shù)量與擁有天數(shù)的乘積。權(quán)益證明(ProofofStake,PoS)共識機制:根據(jù)用戶持有貨幣的幣齡為消耗資源,獲得記賬權(quán),打包新區(qū)塊的證明。擁有更高幣齡的節(jié)點會有更高的概率挖出新區(qū)塊,大部分PoS共識機制采用單純以Token數(shù)量爭奪記賬權(quán)的方式;挖出新區(qū)塊后,幣齡會被消耗;獲得記賬權(quán)的節(jié)點會得到一定的區(qū)塊獎勵;優(yōu)點:挖礦效率更高效且不存在算力冗余;不需要消耗大量電力;缺點:無法擺脫挖礦的約束;幣齡或持幣量越大的節(jié)點,權(quán)益高度集中,產(chǎn)生馬太效應(yīng)。委托權(quán)益證明(DelegatedProofofStake,DPoS):嚴(yán)格限制了參與共識的節(jié)點數(shù)量,Token持有者可以參與投票,將權(quán)益委托給候選節(jié)點。能夠降低參與共識的節(jié)點數(shù)量,降低能耗及成本,提高區(qū)塊鏈的數(shù)據(jù)處理能力。3.4.4PoS/DPoSPoS:
節(jié)點都是對等節(jié)點,每個節(jié)點都能參與共識,概率和持幣量或幣齡掛鉤。DPoS:有代表節(jié)點,系統(tǒng)中的Token持有者能夠把權(quán)益投票給某個候選代表節(jié)點,委托其參與共識。票數(shù)高的候選節(jié)點可以稱為代表節(jié)點,參與共識過程。3.4.5其他共識機制區(qū)塊鏈系統(tǒng)中,還有其他多個共識機制,采用何種共識算法需要考慮到實際應(yīng)用場景:(1)權(quán)威證明(ProofofAuthority):基于聲譽的共識算法,被選為區(qū)塊驗證者需要憑借個人聲譽,而不需要抵押Token。適用于私有鏈場景。(2)身份證明(ProofofIdentity,PoI):是一塊表示加密事實的數(shù)據(jù),它允許任何持有私鑰的用戶和一個認證的身份相對應(yīng),然后和指定的交易進行連接。(3)權(quán)重證明(ProofofWeight,PoWeight):基本理念是在權(quán)益證明系統(tǒng)中,用戶所擁有的網(wǎng)絡(luò)中Token的百分比,表示了該用戶“發(fā)現(xiàn)”下一個區(qū)塊的概率。合約層53.5.1合約層引入打個比方,區(qū)塊鏈?zhǔn)且粔K蛋糕,數(shù)據(jù)層、網(wǎng)絡(luò)層和共識層就是蛋糕胚,起到整體支撐作用;而合約層和應(yīng)用層則是蛋糕上的奶油和櫻桃,是整個區(qū)塊鏈最亮眼的部分。合約層在整個區(qū)塊鏈分層模型中位于第四層,它封裝腳本、智能合約,是區(qū)塊鏈靈活編程的基礎(chǔ)。一般來說,區(qū)塊鏈應(yīng)用的用戶不需要直接與智能合約進行交互,而是通過應(yīng)用向智能合約下達指令,應(yīng)用再通過接口與合約層進行交互。因此,合約層非常重要,它為頂層應(yīng)用提供所依賴的智能合約邏輯和算法。3.5.2智能合約通常認為,區(qū)塊鏈2.0階段的一個重要標(biāo)志是智能合約的實現(xiàn),那么智能合約是什么呢?從定義看,智能合約是一種由機器實現(xiàn)的協(xié)議或程序,但是由于它運行在一個需要達成共識的分布式系統(tǒng)環(huán)境中,與一般的計算機程序存在很大的區(qū)別。AB情景案例A在互聯(lián)網(wǎng)出售一個電子產(chǎn)品,而遠在千里之外的B希望將這個電子產(chǎn)品收入囊中,他們該如何完成交易呢?最簡單的方法莫過于借助一個線上商店,但是這需要重度依賴商店的信譽。換一種思路,如果雙方簽訂一個(基于區(qū)塊鏈)的智能合約,并在合約中約定中約定,如果A發(fā)送電子商品給合約,B轉(zhuǎn)賬給合約,那么合約就將錢轉(zhuǎn)給A,將電子商品發(fā)送給B,雙方皆大歡喜完成交易。或者如果時間到了,雙方有一方未履行約定,就將電子商品和錢原路退回,不給雙方帶來任何風(fēng)險和損失。3.5.2智能合約智能合約是一種旨在以數(shù)字化手段傳播、驗證或執(zhí)行合同的計算機協(xié)議,它無需第三方即可執(zhí)行可靠且不可逆的交易。3.5.3多重簽名(4/6)可以解鎖(3/6)無法解鎖最常見的腳本語言實現(xiàn)的功能之一就是多重簽名,通常來說,每個地址都對應(yīng)一把獨一無二的私鑰。但是通過腳本語言,可以實現(xiàn)讓多把互不相同的私鑰管理同一個地址。每次用戶轉(zhuǎn)移地址中的資產(chǎn)時,用戶們必須同時使用a+n把私鑰中的a把才能完成轉(zhuǎn)賬,在上圖展示的多重簽名示意中,要求同時出示6把私鑰中的4把簽名才能轉(zhuǎn)賬。這樣的多人管理的多簽手段,方便大型組織、公司使用,既有增加了安全性,又防止單一私鑰丟失,而這個功能,正是合約層腳本語言提供的。地址A多簽要求:6把私鑰中至少有4把地址A多簽要求:6把私鑰中至少有4把3.5.4確定性什么是確定性呢?從定義來看,如果給定一個輸入,計算機經(jīng)過同樣的狀態(tài)變化順序后總會產(chǎn)生相同的結(jié)果,那么這個算法即可被稱為是確定性的。區(qū)塊鏈?zhǔn)且粋€分布式系統(tǒng),分布式系統(tǒng)中的各類節(jié)點必須保證結(jié)果的確定性,如果每個結(jié)點運行相同的智能合約,卻產(chǎn)生不同的結(jié)果,那么區(qū)塊鏈網(wǎng)絡(luò)就無法達成共識。智能合約確定性算法層面數(shù)據(jù)層面在合約層,不應(yīng)當(dāng)使用會產(chǎn)生不確定結(jié)果的算法,如隨機數(shù),如比特幣,它只提供有限數(shù)量的腳本,而這些腳本不會產(chǎn)生不確定的結(jié)果。不同的數(shù)據(jù)輸入一般會帶來不同的結(jié)果輸出,如果智能合約采用鏈上的數(shù)據(jù)的話,鏈上數(shù)據(jù)是確定的、不可篡改的。但很多智能合約的運行邏輯都依賴外部的數(shù)據(jù)輸入,可以利用預(yù)言機來處理外部數(shù)據(jù),增加外部數(shù)據(jù)的可信性3.5.5腳本語言在區(qū)塊鏈早期,以比特幣為代表的區(qū)塊鏈網(wǎng)絡(luò),并沒有使用智能合約,而是使用一種簡單的,基于堆棧的腳本語言。它不支持循環(huán),不是圖靈完備的。但是,它可以實現(xiàn)一些基本的指令。以比特幣的指令為例,這些指令被稱為操作碼,它支持上百個這樣的簡單腳本指令。指令描述OP_IF指令如果頂部棧堆為非假,則語句被執(zhí)行OP_SHA256指令對輸入使用SHA-256進行哈希處理比特幣的腳本語言是智能合約的雛形,它為自身系統(tǒng)帶來了一些新的功能,也為后來智能合約的發(fā)展提供了思路。3.5.6可終止性區(qū)塊鏈通過賬本冗余換來了不可篡改的特性,它其實消耗了相當(dāng)多的物理資源。因此,區(qū)塊鏈的鏈上資源,無論是存儲還是帶寬,都是非常寶貴的。如果一條智能合約使用了一些無法終止的函數(shù),例如死循環(huán),它將消耗大量的鏈上資源。而區(qū)塊鏈?zhǔn)且粋€分布式系統(tǒng),智能合約一經(jīng)部署無法撤回,無法終止的合約甚至?xí)斐蓞^(qū)塊鏈系統(tǒng)的停擺,所以,智能合約必須是可終止的。有限命令限制指比特幣的形式,它已經(jīng)預(yù)設(shè)規(guī)定好開發(fā)者能夠使用的腳本語言種類,而這些腳本語言不包括不可終止的功能燃料機制限制以以太坊Gas機制為代表,在這類區(qū)塊鏈系統(tǒng)中,運行智能合約需要Gas費用,用戶可執(zhí)行包含循環(huán)邏輯的函數(shù),但每循環(huán)一次就消耗一定的Gas費用。一旦預(yù)交的Gas費用耗盡,則智能合約的運行自動停止資源控制限制細化智能合約需要使用的CPU、帶寬、內(nèi)存等資源,智能合約每運行一步都消耗一步的資源,確保合約可終止準(zhǔn)入資格限制主要應(yīng)用在聯(lián)盟鏈領(lǐng)域,聯(lián)盟鏈的可控性更好,可以通過對結(jié)點的限制來保證這些結(jié)點不會部署不可終止的合約智能合約限制策略應(yīng)用層63.6.1應(yīng)用層區(qū)塊鏈系統(tǒng)的應(yīng)用層封裝了各種應(yīng)用場景和案例,其概念類似于PC端的應(yīng)用程序,以分布式應(yīng)用為主要表現(xiàn)形式。這些應(yīng)用部署在區(qū)塊鏈的平臺上,并在現(xiàn)實中落地。根據(jù)對應(yīng)用層的深入程度,總結(jié)了區(qū)塊鏈四類應(yīng)用:分布式賬本、價值傳輸網(wǎng)絡(luò)、通證激勵以及資產(chǎn)數(shù)字化。3.6.2分布式賬本在分布式賬本大類中,主要應(yīng)用方向是實現(xiàn)分布式存證效果的分布式賬本應(yīng)用,不涉及對于通證的區(qū)塊鏈應(yīng)用。這類應(yīng)用更多的是利用分布式賬本技術(shù),實現(xiàn)業(yè)務(wù)信息的公開透明、防篡改、防偽造,主要包括數(shù)據(jù)存證、可信查詢等。盡管從技術(shù)上來看,很多時候仍然會利用傳統(tǒng)的、較為成熟的分布式數(shù)據(jù)庫技術(shù),但已經(jīng)開始與傳統(tǒng)互聯(lián)網(wǎng)產(chǎn)生區(qū)別。最明顯的區(qū)別在于分布式賬本技術(shù)。其解決了在沒有可信中介網(wǎng)絡(luò)環(huán)境下的信任問題,實現(xiàn)可追溯、可查證、防篡改的信息共享。3.6.2分布式賬本情景案例莫斯科曾推出了"積極市民"(ActiveCitizen)項目,讓市民通過投票參與到大大小小的城市管理決策中,比如新地鐵列車的取名、新的體育場館座位涂色等。傳統(tǒng)的投票方式在大規(guī)模實施時不僅耗時耗力,而目對計票結(jié)果也可能存在質(zhì)疑。但莫斯科市民投票系統(tǒng)基干以太坊私有鏈平臺,每個市民可作為分布式網(wǎng)絡(luò)的一個節(jié)點,記錄和存儲投票數(shù)據(jù)并實時查看計票情況。由于區(qū)塊鏈的數(shù)據(jù)不可篡改,使得投票透明度大大提高,市民和政府之間的信任程度也會隨之提高。截至2021年3月,該平臺已累計超過500萬用戶,共完成了數(shù)千次民意調(diào)查。3.6.2分布式賬本應(yīng)用挑戰(zhàn)挑戰(zhàn)簡述解決方案保障平臺獨立性目前很多區(qū)塊鏈平臺仍然會由—個或少數(shù)幾個單位來發(fā)起籌建。平臺上的運營業(yè)務(wù)合作伙伴—般也是發(fā)起單位的原有合作者或某些聯(lián)盟的成員等。發(fā)起者以及早期參與者會在包括資產(chǎn)所屬權(quán)、標(biāo)準(zhǔn)制定、數(shù)據(jù)積累等方面具有極強的先發(fā)優(yōu)勢利用跨鏈交互等技術(shù)形成多中心化局面確保數(shù)據(jù)真實、有效采用了分布式賬本技術(shù)后一般可認為記錄并流轉(zhuǎn)在區(qū)塊鏈平臺上的數(shù)據(jù)是真實可信的,但如何保證上鏈前的信息是真實可靠的則是個需要解決的問題。權(quán)威第三方驗證、使用物聯(lián)網(wǎng)、人工智能等技術(shù)提升交易速度由于區(qū)塊鏈?zhǔn)窍忍斓姆植际絽f(xié)作系統(tǒng),用較復(fù)雜的算法和煩瑣的多參與方協(xié)作來獲得去中介化信任、數(shù)據(jù)不可篡改,以及交易可追溯等功能優(yōu)勢,根據(jù)分布式系統(tǒng)CAP原理,在投入資源相同的情況下,區(qū)塊鏈的性能往往低于中心化的系統(tǒng),表現(xiàn)為交易并發(fā)處理性能不高,交易時延較明顯。通過多層思路擴容避免資源浪費分布式賬本由于其與生俱來的多節(jié)點、多中心的特點,會存在一定程度的冗余。這些冗余一方面可實現(xiàn)多點備份的安全特性,避免單點故障;另一方面,如果控制不當(dāng),則會將冗余演變?yōu)槔速M,其中包括計算冗余和存儲冗余兩個方面擴展技術(shù)(分片、狀態(tài)通道)鏈下存儲、輕節(jié)點方式和分布式存儲3.6.3價值傳輸網(wǎng)絡(luò)價值傳輸網(wǎng)絡(luò)的特點可清算可追溯普惠金融
通過鏈上的通證,使價值流轉(zhuǎn)過程清晰透明由于區(qū)塊鏈賬本對交易記錄的透明特性,每筆交易的付款方和收款方都在鏈上進行交易區(qū)塊鏈對個人的價值傳輸網(wǎng)絡(luò)體現(xiàn)在KYC的提升,利用密碼學(xué)構(gòu)建的區(qū)塊鏈體系使用戶身份不可偽造、行為不可抵賴,利用點對點的支付功能可進行個人資產(chǎn)的可信交換價值傳輸網(wǎng)絡(luò)應(yīng)用挑戰(zhàn)保持傳輸價值穩(wěn)定保證交易合法提高交易安全要求價格穩(wěn)定,不隨數(shù)字貨幣媒介的波動而波動價值可用,當(dāng)傳輸非法幣時,接收方同意并可正常使用解決通過對沖工具穩(wěn)定價值使用法定數(shù)字貨幣區(qū)塊鏈天然帶有一定的匿名性,隱藏交易具體信息的同時,加密貨幣也可能用來實施金融犯罪可通過加入KYC/AML的流程和進行匿名性和可監(jiān)管性的平衡價值傳輸網(wǎng)絡(luò)由于自身的價值屬性,會吸引更多的惡意攻擊解決技術(shù)開發(fā)過程的白盒測試、黑盒測試漏洞獎勵機制價值傳輸網(wǎng)絡(luò)是基于分布式賬本,借助已有通證實現(xiàn)價值互聯(lián)互通,以此形成價值互聯(lián)網(wǎng)的基礎(chǔ)。該層最早最典型的應(yīng)用主要是能體現(xiàn)價值流通的支付清算。3.6.4通證激勵體系通證(Token)是以數(shù)字形式存在的權(quán)益憑證,它通常以區(qū)塊鏈技術(shù)為載體。通證實際上代表著一種權(quán)利,可以在特定的場景或者時間內(nèi)生效、使用。通證激勵體系是基于價值傳輸網(wǎng)絡(luò),根據(jù)實際的應(yīng)用場景定制化生成的原生通證而產(chǎn)生的。這一層級應(yīng)用的顯著特點是在區(qū)塊鏈上引入了通證經(jīng)濟學(xué)的激勵機制。根據(jù)真實業(yè)務(wù)場景應(yīng)用,以區(qū)塊鏈通證為價值載體而建立的通證激勵體系可視作一種升級版的會員積分計劃。通證激勵體系可實現(xiàn)的特性主要有兩個方面。1)充分調(diào)動各個關(guān)聯(lián)方的貢獻。2)優(yōu)化資源分配。將區(qū)塊鏈技術(shù)引入顧客忠誠度計劃和會員積分系統(tǒng),是通證激勵應(yīng)用體系的典型思路。在傳統(tǒng)的銷售模式下,顧客獲取會員積分最重要的途徑就是進行購物消費,商家一般會根據(jù)消費金額的大小進行相應(yīng)積分的發(fā)放,而積分的使用場景,往往也是通過重復(fù)購物享受優(yōu)惠來實現(xiàn)。隨著互聯(lián)網(wǎng)營銷模式進一步演變和創(chuàng)新,會員積分已經(jīng)不僅僅是終端消費者的忠誠計劃,也可以成為渠道商和分銷合作伙伴的激勵管理手段。例如以阿里媽媽、京東和拼多多為代表的電商淘客平臺,通過傭金分發(fā)獎勵推廣行為,既提高了電商平臺的精準(zhǔn)營銷效率,又滿足了合作伙伴對圈層生態(tài)建設(shè)和推廣等服務(wù)的需求,而且還使得消費者能以更優(yōu)惠的價格購買到電商平臺上同等質(zhì)量的商品,一舉多得。結(jié)合區(qū)塊鏈積分建立的通證激勵應(yīng)用體系,從"購物挖礦"到"行為挖礦",目前已形成一些較為典型的案例。3.6.4通證激勵體系的挑戰(zhàn)在通證經(jīng)濟設(shè)計體系中,通證本身所代表的價值需要進行合理設(shè)計,一方面應(yīng),保證足夠多的價值,對用戶形成足夠的吸引力;另一方面價值應(yīng)合理適度。除利用市場化手段進行通證價格調(diào)節(jié)外,通證具有的內(nèi)在價值可隨著使用場景及未來表現(xiàn)的變化而變化。用戶在使用通證時可能會同時出于多種需求,比如使用上的流動性與持有上的保值性等。平衡好這一關(guān)系的一個解決辦法是,讓通證發(fā)行的速度與通證使用的速度相匹配,使得整個系統(tǒng)的通證供給與需求達到平衡狀態(tài);另一個解決辦法是,設(shè)計好通證使用權(quán)益與持有權(quán)益的均衡比例。這一挑戰(zhàn)本質(zhì)是關(guān)于通證應(yīng)如何產(chǎn)生的問題,包括如何合理定義激勵點以及如何平衡冷啟動與可持續(xù)性。合理定義通證激勵,可以從對業(yè)務(wù)發(fā)展的分析入手,判斷阻礙業(yè)務(wù)進一步發(fā)展的瓶頸所在,有針對性地對其進行激勵。如何賦予通證價值通證流動性與保值性平衡如何合理定義激勵點3.6.5資產(chǎn)數(shù)字化資產(chǎn)數(shù)字化是通證激勵體系的高級應(yīng)用形態(tài),但可應(yīng)用的概念范圍也最為廣義化,因為任何資產(chǎn)都可以上鏈,并且具有以下的特點:1)鏈上的通證背后有實際資產(chǎn)作為支撐,是資產(chǎn)的數(shù)字化形式,并不是憑空生成的。2)大額不可拆分的資產(chǎn)在數(shù)字化之后,將形成可拆分的所有權(quán)(FractionalOwnership)。3)資產(chǎn)數(shù)字化之后可自由流通。4)數(shù)字化資產(chǎn)可以全球性流通,沒有國界限制,資產(chǎn)間交互性更強。5)數(shù)字化資產(chǎn)可編程性強,可實時清算交割,且清算交割的成本較低。6)可較為便捷、低成本地實現(xiàn)KYC/AML,資產(chǎn)交易可以實現(xiàn)自監(jiān)管。主要挑戰(zhàn)1.政策監(jiān)管體系還不成熟2.通證經(jīng)濟體系所帶來的流動性增長,會在短時間內(nèi)積累出大量風(fēng)險應(yīng)對措施1)適度建立流通門檻2)加強審核機制3)設(shè)立投資者準(zhǔn)入門檻4)針對早期項目給予輔導(dǎo)《比特幣—區(qū)塊鏈的首個應(yīng)用》第4章比特幣實現(xiàn)原理無中介支付體系基礎(chǔ)問題比特幣概述比特幣概述4.14.1比特幣概述比特幣:數(shù)字資產(chǎn)(BTC),點對點的電子現(xiàn)金系統(tǒng)。供應(yīng)量:由軟件及底層協(xié)議確定,所有比特幣都是通過新區(qū)塊的挖礦獎勵形式發(fā)行,共2100萬枚,最小單位是1聰(1億分之1枚)。減半:比特幣挖礦區(qū)塊獎勵每21萬個區(qū)塊后減半,按照平均10分鐘1個區(qū)塊,減半大約每4年發(fā)生一次。難度調(diào)整:為了保持平均每10分鐘1個區(qū)塊的恒定出塊速度,比特幣網(wǎng)絡(luò)將在每挖出2016個區(qū)塊后進行一次挖礦難度調(diào)整。中本聰:“比特幣之父”,2008年發(fā)表比特幣白皮書;2009年1月3日自己編程實現(xiàn)并發(fā)布比特幣首個區(qū)塊;2010年12月13日,最后一次登錄比特幣論壇。無中介支付體系基礎(chǔ)問題4.24.2無中介支付體系基礎(chǔ)問題如何記賬由誰來記賬才能保證系統(tǒng)的公平公正,怎么樣能吸引足夠的人來參與記賬活動,如何來保證系統(tǒng)記賬活動的持續(xù)穩(wěn)定性與安全性。如何確保賬目不可篡改不僅要保證記賬的公平公正,還必須要確保所有的交易記錄不會被篡改。如何注冊和產(chǎn)生賬戶無中介支付體系必然涉及賬戶之間的價值轉(zhuǎn)移。如何在沒有中介的情況下安全地進行賬戶的注冊,確保賬戶擁有者對賬戶的絕對控制權(quán)。如何轉(zhuǎn)賬核心問題,在轉(zhuǎn)賬過程中需要保證用戶對自己財產(chǎn)控制的安全性。4.2無中介支付體系基礎(chǔ)問題如何防止資產(chǎn)被雙花雙花問題是數(shù)字貨幣所要面臨的一個獨特問題。數(shù)字貨幣是以數(shù)字形式存在的,容易被復(fù)制,使得一筆數(shù)字資產(chǎn)存在被多次重復(fù)使用的可能性,這也就是數(shù)字貨幣的雙花問題。要設(shè)計一個可行的記賬系統(tǒng),就必須解決雙花問題,杜絕數(shù)字資產(chǎn)被重復(fù)消費。如何更改協(xié)議無論是出于主動提升系統(tǒng)性能的目的,還是為了解決運行過程中暴露出來的安全漏洞,都需要對協(xié)議體系進行更改。由于組成節(jié)點眾多,一個網(wǎng)絡(luò)協(xié)議體系的更改遠比單一節(jié)點上的軟件升級要復(fù)雜得多。比特幣實現(xiàn)原理4.34.3比特幣的實現(xiàn)原理2009年1月3日,比特幣區(qū)塊鏈網(wǎng)絡(luò)首次上線。它包括了公有鏈的三個組成部分一個分布式網(wǎng)絡(luò);一個分布式賬本;基于它們的價值表示物。(在這個網(wǎng)絡(luò)里,價值表示物是加密貨幣比特幣,在其他區(qū)塊鏈網(wǎng)絡(luò)中有的也用通證作為價值表示物。)公有鏈分布式網(wǎng)絡(luò)分布式賬本價值表示物4.3比特幣的實現(xiàn)原理電子現(xiàn)金系統(tǒng)比特幣區(qū)塊鏈能夠在沒有集中式機構(gòu)的情況下發(fā)行電子現(xiàn)金,能夠支持個人與個人之間的轉(zhuǎn)賬交易。這樣的技術(shù)系統(tǒng)可以用于任何價值表示物的無中介發(fā)行與點對點交易。區(qū)塊鏈賬本賬本用來記錄“誰擁有什么”。所有的區(qū)塊鏈賬本記錄的都是從最初狀態(tài)開始的每一個轉(zhuǎn)賬交易,之后在此基礎(chǔ)上形成“誰擁有什么”的記錄。比特幣區(qū)塊鏈賬本是記錄從最初時刻即創(chuàng)世時刻開始后的所有交易明細的底賬(Ledger)。4.3比特幣的實現(xiàn)原理3.分布式比特幣區(qū)塊鏈系統(tǒng)要實現(xiàn)的目標(biāo)是創(chuàng)建一個點對點的電子現(xiàn)金系統(tǒng),轉(zhuǎn)賬交易時無須任何“可信第三方”(Trustedthirdparty),實現(xiàn)方式是通過點對點的對等網(wǎng)絡(luò)與公開的分布式賬本取代中間人。沒有中心的網(wǎng)絡(luò)中,賬本維護和更改(對區(qū)塊鏈賬本來說僅是添加)并達成一致的方法是,由一組記賬節(jié)點通過工作量證明(Proof-of-Work,POW)共識機制來維護。記賬會獲得比特幣網(wǎng)絡(luò)提供的鑄幣(Coinbase)獎勵,這個行為很類似于現(xiàn)實生活中的挖取礦藏的行為,因此這些節(jié)點也常常被比作為“礦工”。工作量證明機制是開放的,任何人都可以自由加入和退出,這是無須許可的。4.發(fā)行機制與安全機制工作量證明即通過算力競爭來獲得初始發(fā)行的比特幣,成了比特幣網(wǎng)絡(luò)這個電子現(xiàn)金支付系統(tǒng)所需要的去中介化發(fā)行機制。算力競爭與經(jīng)濟激勵的組合,亦成了比特幣網(wǎng)絡(luò)的安全機制。4.3.1比特幣的數(shù)據(jù)結(jié)構(gòu)1.比特幣的鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)區(qū)塊通過哈希指針按照時間順序單向鏈接形成一條區(qū)塊鏈。每一個比特幣區(qū)塊都包含區(qū)塊頭和交易記錄兩個部分。所有的交易記錄通過Merkle樹形式生成Merkle根,這個Merkle根作為一個字段,被存放在區(qū)塊頭當(dāng)中。如果在交易記錄中有任何改動,都會導(dǎo)致Merkle根的不一致。除了創(chuàng)世區(qū)塊以外,所有的比特幣的區(qū)塊中都包含父區(qū)塊(區(qū)塊頭)的哈希值,以保證區(qū)塊數(shù)據(jù)的真實有效,不可篡改。原文SHA-256哈希值區(qū)塊鏈導(dǎo)論0ed7c0af1b7cc693c2d012b198d2a4ea200c781e9a22a9a4d0c413cee1fa6079區(qū)塊鏈導(dǎo)論6647ce72b8d554c58cab1bbf88f988b00becbd4c0febd0866d7e3567c0feb412區(qū)塊鏈導(dǎo)論79e90af4904935120240b0aef927acba24ed3e56740e028fc9fe9b60b58e184b4.3.1比特幣的數(shù)據(jù)結(jié)構(gòu)比特幣和以太坊采用相似的哈希函數(shù)和樹形數(shù)據(jù)結(jié)構(gòu),但兩者有著微小又重要的不同。4.3.1比特幣的數(shù)據(jù)結(jié)構(gòu)2.比特幣的區(qū)塊頭數(shù)據(jù)結(jié)構(gòu)比特幣區(qū)塊鏈的一個區(qū)塊主要由兩大部分組成——區(qū)塊頭和交易數(shù)據(jù)。一個區(qū)塊頭包括80個字節(jié),交易數(shù)據(jù)則不固定,最高可以達到1MB左右。4.3.1比特幣的數(shù)據(jù)結(jié)構(gòu)當(dāng)在比特幣區(qū)塊瀏覽器中查看區(qū)塊的信息時,可以用哈希值或區(qū)塊鏈高度進行查詢,還可以看到其中每一個轉(zhuǎn)賬的詳情。一個礦工在挖礦時,它的任務(wù)是按照規(guī)則打包形成Merkle樹形式的數(shù)據(jù)與區(qū)塊頭,然后進行反復(fù)的哈希計算,獲得符合目標(biāo)值要求的頭部隨機數(shù)與幣基交易隨機數(shù)。比特幣區(qū)塊鏈的數(shù)據(jù)是由一個個區(qū)塊組成的,而區(qū)塊所存儲的就是10分鐘內(nèi)的交易。要說明的是,如果當(dāng)前10分鐘內(nèi)的轉(zhuǎn)賬交易較多,一些轉(zhuǎn)賬交易也可能不被包括,而被延遲到之后的區(qū)塊中。4.3.1比特幣的數(shù)據(jù)結(jié)構(gòu)區(qū)塊鏈網(wǎng)絡(luò)基本結(jié)構(gòu)區(qū)塊鏈網(wǎng)絡(luò)由眾多的記賬節(jié)點來維護,一般用戶依靠節(jié)點訪問服務(wù)使用這個網(wǎng)絡(luò)。4.3.1比特幣的數(shù)據(jù)結(jié)構(gòu)節(jié)點對于一般用戶來說,僅僅使用用戶客戶端的錢包,可能并不包括區(qū)塊鏈數(shù)據(jù)庫和挖礦功能,例如常見的簡單支付驗證節(jié)點(SimplePaymentVerification,SPV)就只有基礎(chǔ)的錢包服務(wù),不存儲完整的區(qū)塊鏈數(shù)據(jù)庫或者提供挖礦功能。在區(qū)塊鏈網(wǎng)絡(luò)中也存在一些有全量區(qū)塊鏈數(shù)據(jù)存儲和路由功能的節(jié)點,但它們并不參與挖礦,這些節(jié)點也可認為是一般用戶。節(jié)點功能區(qū)塊鏈數(shù)據(jù)庫網(wǎng)絡(luò)節(jié)點路由挖礦功能錢包服務(wù)新一代信息技術(shù)系列教材《區(qū)塊鏈導(dǎo)論》4.3.1比特幣的數(shù)據(jù)結(jié)構(gòu)3.比特幣普通交易的數(shù)據(jù)結(jié)構(gòu)比特幣中的交易主要可以分為兩種:一種是普通交易,一種是鑄幣交易(CoinbaseTransaction)。新一代信息技術(shù)系列教材《區(qū)塊鏈導(dǎo)論》4.3.1比特幣的數(shù)據(jù)結(jié)構(gòu)4.3.1比特幣的數(shù)據(jù)結(jié)構(gòu)4.比特幣鑄幣交易的結(jié)構(gòu)所有比特幣的發(fā)行都是通過鑄幣交易,也稱幣基交易。鑄幣交易是一個特殊交易,是每一個比特幣區(qū)塊中的第一筆交易。鑄幣交易沒有輸入,它的輸出是出塊獎勵,指向礦工的地址。輸出的金額包含兩部分:一部分是出塊獎勵,一部分是交易手續(xù)費。4.3.1比特幣的數(shù)據(jù)結(jié)構(gòu)coinbase數(shù)據(jù)長度在2~100字節(jié)之間。coinbase數(shù)據(jù)除了前面幾個字節(jié)用于表示區(qū)塊高度,其他數(shù)據(jù)可以任意填寫。例如用于比特幣工作量共識機制的外部隨機數(shù)(extranonce)也就放在coinbase數(shù)據(jù)部分;又中本聰在創(chuàng)世區(qū)塊中的coinbase數(shù)據(jù)中填入了當(dāng)天泰晤士報頭版文章的標(biāo)題。如果某筆交易引用一個鑄幣交易輸出,那么至少要等這個鑄幣交易被后續(xù)100個區(qū)塊確認才可用。這樣的規(guī)定是為了避免因網(wǎng)絡(luò)分叉而導(dǎo)致某筆交易引用無效區(qū)塊中的鑄幣交易輸出。新一代信息技術(shù)系列教材《區(qū)塊鏈導(dǎo)論》4.3.2比特幣的記賬方式作為電子支付系統(tǒng),支付寶的核心是維護一系列復(fù)雜的賬本,記錄用戶擁有的賬戶余額。當(dāng)用戶支付給商家時,它相應(yīng)地修改賬本,在用戶的賬戶中減去款項、在商家賬戶增加款項,實現(xiàn)支付的功能。支付寶不涉及從無到有的發(fā)行,從銀行轉(zhuǎn)賬到支付寶,支付寶
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 沈陽理工大學(xué)《工廠供電》2021-2022學(xué)年期末試卷
- 固定總價合同規(guī)范要求
- 國藥器械銷售合同
- 合同保證金遺失聲明
- 合同法第三章42條
- 2024年興安客運從業(yè)資格證考試模板
- 2024融資合同股權(quán)股份轉(zhuǎn)讓協(xié)議
- 2024工傷勞動合同范文
- 2024小區(qū)綠化工程合同
- 英語閱讀記錄卡-20210813175455
- 2024上海市標(biāo)準(zhǔn)房屋租賃合同官方版
- 中國花菇行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報告2024-2029版
- 工廠環(huán)保知識培訓(xùn)課件
- 開展安全生產(chǎn)三年治本攻三年行動方案深度解讀(?;?/a>
- 2024年濟寧農(nóng)村干部學(xué)院(校)招生歷年高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- GB/T 43697-2024數(shù)據(jù)安全技術(shù)數(shù)據(jù)分類分級規(guī)則
- 電氣自動化專業(yè)個人職業(yè)生涯規(guī)劃書
- 國信集團招聘試題
- 2020中國鐵路成都局集團有限公司招聘試題及答案解析
- 個人招生計劃方案
- 2024年科技創(chuàng)新崛起
評論
0/150
提交評論