區塊鏈導論配套課件_第1頁
區塊鏈導論配套課件_第2頁
區塊鏈導論配套課件_第3頁
區塊鏈導論配套課件_第4頁
區塊鏈導論配套課件_第5頁
已閱讀5頁,還剩316頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

區塊鏈導論新一代信息技術系列教材《緒論》第一章區塊鏈的發端與源起區塊鏈的技術特點區塊鏈的發端與源起11.1.1記賬技術的更迭區塊鏈技術也稱為分布式記賬技術。眾所周知,“記賬”就是按時間的先后順序,將個體、公司、組織等在一定時間內所發生的收和支出全部記錄下來,供査閱者翻閱査看的行為。簡單刻記/直觀繪圖結繩記事法單式記賬復式記賬法互聯網時代記賬工具分布式記賬技術人類記賬史上的革命——復式記賬法的生和發展奠定了當代會計學基礎基于復式記賬法思想,但又有很大的改進和提升,客觀上大大推動了現代商業行為的發展。記賬技術的更迭:分布式記賬技術——新一代的記賬技術區塊鏈系統可以被視為帶密鑰的分布式和自動式記賬賬本,其核心是系統中每個節點都有一份一模一樣的賬本,這些賬本記錄了系統所有發生的交易,并且能自動將新的交易數據添加到每個節點的賬本中。和復式記賬方式相比,區塊鏈賬本是多點同時記賬,依靠共識機制確認,單個節點難以篡改賬本記錄。分布式記賬優勢:(1)通過多方記賬的方式,增強數據安全性,防止單點故障(2)減少不同數據庫之間的對賬工作,提高效率和透明度1.1.1記賬技術的更迭1.1.2密碼學的發展密碼學最初是研究如何在敵方存在的情況下進行安全通信的一門科學。目的是分析和構建協議,使得通信雙方在按照協議進行通信的過程中,能夠防止第三方竊取通信內容。現代密碼學是數學、計算機科學、電子工程、通信科學、物理學等多學科匯集的交叉科學,密碼學技術被廣泛應用于電子商務、電子支付卡、數字貨幣、計算機密碼、軍事通信等眾多領域。密碼學最早起源于古希臘時代,經過長達幾千年的研究,為如今的區塊鏈密碼學技術奠定了基礎。1.1.2密碼學的發展1.1.3“密碼朋克”的建立20世紀90年代發展出“密碼朋克”(“Cypherpunk'”)的概念。1992年,Intel的資深科學家蒂姆?梅(TimMay)成立密碼朋克組織。1993年,蒂姆?梅、美國加州大學伯克利分校(UCB)的數學家埃里克?休斯(EricHughes)、開源軟件的早期核心人物之一約輸?吉爾摩爾(JohnGilmore)共同創建“密碼朋克郵件列表”。1993年,埃里克?休斯(EricHughes)發表《密碼朋克宣言》密碼學研究賽博朋克構想密碼朋克(Cypherpunk)(20世紀90年代)個體精神隱私保護1.1.3“密碼朋克”的建立大衛?喬姆(DavidChaum)在20世紀80年代發明了喬姆育簽名技術,并在20世紀90年代基于這種盲簽名技術首次提出在網絡上匿名傳遞價值的方式,將之命名為Ecash。Ecash通過銀行的加密簽名,以數字形式存儲貨幣,必須依賴中心服務器系統。Ecash的誕生在某種程度上可以說是加密貨幣的始祖。大衛·喬姆1.1.3“密碼朋克”的建立尼爾?科布利茨(NealKoblitz)和維克多?米勒(VictorMiller)在1985年提出基于橢圓曲線的算法ECC。這是一種新型的密鑰算法,能夠提供比RSA更高級別的安全。這個算法成為后來比特幣的核心算法。尼爾?科布利茨1.1.3“密碼朋克”的建立斯圖爾特?哈勃(StuartHaber)和斯科特?斯托內塔(ScottStornetta)在1991年發表論文《如何為電子文件添加時間戳》。在這篇論文中,他們提出用時間戳確保電子文檔的安全這種技術保證了信息的可追溯和不可篡改,成為后來“區塊鏈”數據結構的雛形。斯圖爾特?哈勃1.1.3“密碼朋克”的建立菲利普?齊默爾曼(PhilipZimmerman)在1991年發布郵件加密軟件“優良保密協議”(PrettyGoodPrivacy,PGP),并成立相關公司。PGP是一個基于RSA公鑰加密體系的郵件加密系統,能夠保證郵件內容不被篡改,同時讓郵件接受者信任郵件來自發送者。PGP的使用范圍很廣,例如比特幣白皮書的作者中本聰也是PGP的使用者,他的郵件都是通過PGP發出的。菲利普?齊默爾曼1.1.3“密碼朋克”的建立亞當?巴克(AdamBack)在1997年發明了哈希現金(Hashcash)算法。這個算法用于電子郵件系統,要求在發送電子郵件之前,解一個數學題,以此來適度增加發送電子郵件的成本屏蔽大量的垃圾郵件。這個思想后來被PGP的成員哈爾?芬尼(HalFinney)借鑒發明了可重用的工作量證明機制。亞當?巴克1.1.3“密碼朋克”的建立美國華裔工程師戴偉(WeiDai)在198年提出了匿名的、分布式的加密貨幣系統B-money,B-money在很多關的技術上與后來的比特幣非常相似,然而由于其某些技術細節(例如抵抗“雙花”)難以實現,導致B-money最終沒有成為現實。盡管如此,中本聰與戴偉(WeiDai)之間的交流卻相當多,并大量借鑒了B-money的很多思想。在比特幣白皮書的參考文獻中,B-money的論文也赫然在列。戴偉1.1.3“密碼朋克”的建立1998年,密碼學家、智能合約概念的創造者尼克?薩博(NickSzabo),提出了比特金(BitGold)的設想。這種設想已經非常接近于比特幣的體系構造,但由于BitGold的設想缺乏具體的代碼實現,因此只停留在概念階段,而沒能成為“創世貨幣。尼克?薩博哈爾?芬尼是比特幣的早期核心貢獻者,也是PGP公司的成員,并為PGP做出了重要的貢獻。哈爾?芬尼在2004年借鑒亞當巴克的哈希現金算法提出了可重用的工作量證明機制(ReusableProofsofWork,RPOW),它直接影響了后來比特幣的共識機制。除了這些先驅以外,約?佩里?巴洛(JohnPerryBarlow,賽博自由主義政治活動家)菜斯利?蘭伯特(LeslieLamport,拜占庭將軍問題的提出者)、肖恩?范寧(ShawnFanning)和肖恩、·派克(ShaunParker,點對點網絡工具Napster的發明者)、布拉姆?科亨(BramCohen,BitTorrent的發明者)等都為比特幣各項關鍵技術的發展做出了巨大貢獻。在這些先驅以及更多科學家和工程師們的共同努力下,這些基于加密技術的創新和應用逐漸發展和成熟起來,為日后比特幣和區塊鏈的誕生奠定了堅實的基礎。1.1.3“密碼朋克”的建立1.1.3“密碼朋克”的建立1.1.4互聯網技術的蓬勃進步互聯網發展史:蘇聯發射“伴侶號”——美國組建ARPA開始研究“包交換”技術ARPANET啟動第一次使用“internet”一詞TCP/IP協議NSF擴展MCIMailCompuserve1957年20世紀60年代1969年1974年20世紀80年代1989年超文本傳輸協議(HTP)超文本標記語言(HTML)網絡瀏覽器商用互聯網exchange斯坦福聯邦信用社互聯網大面積普及1990年1991年1994年2000年以后1.1.4互聯網技術的蓬勃進步根本原因:現有的轉賬系統必須依賴中介機構進行處理和協調1.1.5首個區塊鏈應用的誕生2008年11月1日,一位網名為中本聰(SatoshiNakamoto)的用戶在密碼朋克社區上發表了比特幣白皮書《比特幣:一種點對點的電子現金系統》(Bitcoin:Peer-to-PeerElectronicCashSysten),聞述了一個以點對點網絡、分布式記賬、工作量證明(PoW)共識機制、加密技術等為基礎構建的電子現金支付系統。2009年1月3日,中本聰通過運行這個版本產生了比特幣的第一個區塊,也就是創世區塊創世區塊的誕生標志著比特幣主網正式上線,比特幣從理論變為現實。比特幣系統的發明是為了解決傳統的銀行轉賬過程中碰到的一些問題:賬戶和賬戶之間的轉賬交易成本高昂;存在利用信用卡撤銷交易進行欺詐的行為;銀行系統為了處理可能發生的糾紛會過度索取交易雙方的個人隱私信息等。1.1.5首個區塊鏈應用的誕生現有的金融系統中轉賬交易轉賬請求AB銀行后臺服務系統e.g.

A與B都在某銀行有賬戶,A向B轉賬100元檢查A的賬戶余額是否大于100元是A賬戶+100元B賬戶-100元拒絕A的轉賬請求否賬本記錄交易檢查交易執行收取手續費1.1.5首個區塊鏈應用的誕生比特幣系統中轉賬交易AB賬本記錄了A、B的賬戶信息和余額信息賬本記錄了A、B的賬戶信息和余額信息雙方驗證交易有效完成轉賬e.g.若系統用戶只有A、B兩人,A向B轉賬100元e.g.當系統用戶規模擴大,A向B轉賬1.1.5首個區塊鏈應用的誕生AB賬本記賬節點完成記賬,并將交易廣播到整個網絡其他節點接受信息并驗證,如果沒問題則加入自己賬本該筆交易生效執行1.1.5首個區塊鏈應用的誕生比特幣的誕生中本聰在郵件中提出“一種不需要第三方支持的新的點對點電子現金系統”,并貼出該電子現金系統的研究論文的地址。2009年1月,中本聰在一個小型服務器上挖出了比特幣的第一個區塊---創世區塊,并獲取了50個比特幣的獎勵,宣告了比特幣的正式誕生。有趣的是,在創世區塊中被寫入了一串數字信息,還原為文本為:“TheTimes03/Jan/2009ChancelloronBrinkofsecondbaioutforbanks”。當時正值英國的財政大臣被迫考慮第二次出手解救陷入危機的銀行,這句話是泰晤士報當天的頭版標題。中本聰將這一事件在第一個區塊鏈中永久的保留了下來。這既是對區塊鏈產生時間的證明,也是對金融危機下銀行系統脆弱的嘲諷。區塊鏈的技術特點21.2.1公開透明在以比特幣為首的公有區塊鏈系統中,它們自創世區塊開始,所有區塊包含的交易信息都是公開、透明的。在系統中每一筆交易從何地址轉出、何時轉出、轉出金額、轉人何地址等信息都被一一記錄下來并且公開可査。依據這些信息,一個地址的總交易筆數、與何地址有過交易、轉出總金額、余額等信息也可以被推斷出來。區塊鏈瀏覽器:區塊鏈瀏覽器是一種區塊鏈搜索工具。區塊鏈瀏覽器的運營方本身已經下載好了完整的賬本數據。用戶在區塊鏈瀏覽器中輸入相關字段,可以查到區塊或交易的詳細信息。典型的區塊鏈公鏈系統,比如比特幣和以太坊等都有許多區塊鏈瀏覽器,這些瀏覽器通常是由開源軟件團隊自發開發的。1.2.1公開透明1.2.2難以篡改父區塊哈希值hash()數據父區塊哈希值hash()數據創世區塊父區塊哈希值hash()數據區塊鏈系統中的鏈式數據結構,是由包含交易信息的區塊按照時間順序從先到后鏈接起來的,這個數據結構被稱為“區塊鏈”。在區塊鏈中,每個區塊的區塊頭都包含一個名為“父區塊哈希值”的字段,這個區塊通過存儲在這個字段中的值“鏈接”到前一個區塊(父區塊),并一直延續到創世區塊。如果黑客想篡改區塊鏈中的數據,那么前一區塊的哈希值將不會與該區塊的哈希指針匹配;當然,黑客也可以通過篡改前一個區塊的哈希指針來進行掩蓋,但他會發現修改到區塊鏈的頭部---創世塊時會遇到麻煩,因為創世塊一般存儲在黑客無法改動的地方。1.2.3可以追溯區塊鏈信息的可追溯性來源于區塊鏈數據結構的特殊性。在區塊鏈系統中,它的鏈式結構是從創世區塊開始的,其后系統產生的所有區塊都通過父區塊的哈希值前后相連,并最終都能追溯到創世區塊。由于每個區塊都包含一段時間內系統進行的所有交易數據,因此系統完整的區塊鏈數據就包含了自創世區塊以來,系統所有進行的交易及交易前后的關聯信息。當追溯一筆交易時,能夠順著該交易所在的區塊向前追溯所有這些歷史區塊信息。父區塊哈希值hash()數據父區塊哈希值hash()數據創世區塊父區塊哈希值hash()數據1.2.3集體維護區塊鏈的集體維護主要指區塊鏈系統在共識機制的作用下,激勵新節點不斷加入系統,并集體參與系統的維護和運作的特點。每一個區塊鏈都會有一套“共識機制”,用來使眾多互不相識的節點達成一致。具體來說,共識機制激勵系統中的節點在參與系統運作時,令遵循這套機制的節點獲得利益最大化,不遵循甚至作惡的節點則會付出較大代價而得不償失。因此,區塊鏈系統在沒有單一機構的運作和管理下,依靠共識機制就能讓系統自我運作起來,具備集體維護的特征。比特幣就是第一個這樣的集體維護性組織。1.2.4去中心化/弱中心化“中介化”:在一個組織或系統中,有一個中介機構負責整個系統的調配和服務。系統中所有的個體無論做什么、進行什么活動都要通過這個中介機構的調度。·現有的互聯網技術就是采用的這種方式工作,也就是俗稱的“客戶端/服務器”(ClientServer)模式,簡稱為C/S模式。在這種用模式中,能為客戶端應用提供服務(如文件服務、打印服務、通信管理服務等)的計算機或處理器被稱為服務器。與服務器相對應,提出服務請求的計算機或處理器就是客戶端。這種系統中,服務器就是“中介”,客戶端就是系統的“個體”。“去中介化”:區塊鏈系統中沒有個擁有特殊權限的中介服務器或單一機構。系統中每個全節點既是服務器也是客戶端,在系統中的權利和義務都是對等的。它們既能作為服務器為需要服務的客戶端服務,也可以作為客戶端向其他節點提出請求。任意一個節點宕機或者失效都不會影響整個系統的運作。因此,區塊鏈系統在架構上是去中介化/弱中介化的。《區塊鏈的基礎概念》第二章分布式系統區塊鏈的分類區塊鏈的應用分布式系統12.1.1分布式系統的概念集中式系統由一臺或者多臺計算機組成中心節點,負責管理應用訪問的數據存儲、計算等資源;集中式系統一般采用中心化的數據庫和服務器,優點是部署簡單、開發運維容易,缺點是可擴展性不足;集中式系統還存在單點故障問題,如果中心節點出現故障就意味著所有應用都將出現問題。2.1.1分布式系統的概念分布式系統是由若干獨立的計算機節點組成的系統,這些計算機節點可以看成獨立的系統組件,通過網絡進行連接并在一定范圍內有效共享資源,節點之間通過傳遞消息進行協調工作,共同完成系統內的工作任務。2.1.1分布式系統的概念定義包含兩方面:①系統內的計算機節點都是獨立的,通過網絡通信進行協調②用戶對于分布式系統的訪問從功能邏輯上就像訪問單個計算機系統一樣(1)分布性:分布式系統內計算機節點可以分布在不同的位置。(2)可擴展性:分布式系統內節點數量可以根據應用需求進行動態増減,服務器也可以動態部署。(3)對等性:分布式系統沒有中心化的控制主機,組成分布式系統的所有計算機節點都是對等的;當某一個節點上存儲的數據丟失時,可以從副本上讀取該數據。(4)

并發性:分布式系統中的多個計算機節點通過網絡進行連接并在一定范圍內有效共享資源,某一時刻這些計算機節點可能會并發地操作一些共享的資源。分布式系統特征:2.1.2FLP和CAP定理FLP原理是一個關于分布式系統達成共識的重要理論,由費舍爾(Fischer)、林奇(Lynch)、帕特森(Patterson)三位學者在1985年提出,并以三人姓氏的首字母作為縮寫命名。FLP原理告訴人們,不要浪費時間去為異步通信的分布式系統設計在任意場景下都能實現共識的算法,這樣的算法不存在,理由是:在實際異步通信的分布式系統環境下,可能存在通信故障、延遲或者節點本身出現失效的情況,異步系統無法確保在有限時間內完成一致性。FLP原理為分布式系統領域帯來一個較為悲觀的結論,既然不存在這樣的算法可以實現分布式系統的一致性,那么一致性問題就無法解決了么?后來埃里克?布魯爾(EricBrewer)在2000年美國計算機學會(AssociationforComputingMachinery,ACM)組織的一個研討會上提出了CAP原理猜想,之后林奇等人對CAP原理進行了證明。FLP原理2.1.2FLP和CAP定理CAP原理CAP原理定義了分布式計算系統的三大特性:(1)一致性(Consistency):共享數據副本之間呈現出統一且實時的數據內容;(2)

可用性(Availability):所有的數據操作總會在一定時間內得到響應;(3)分區容錯性(Partition):通常由于網絡間連接中斷而導致網絡中的節點相互隔離無法訪問時,被隔離的節點仍可正常運行。這三大特性無法同時實現,設計中需要弱化其中某個特性,而保證另外兩個特性。對于結果一致性要求不是特別高的應用,可弱化一致性要求,比如延長達成一致性的時間。對于一致性要求高的應用可弱化可用性要求,比如系統發生故障時拒絕服務。大部分時候網絡都是可靠的,網絡分區出現概率小但很難完全避免,所以實際情況一般弱化分區容錯性2.1.3分布式系統的一致性分布式系統的一致性:對系統內的所有計算機節點給定一組操作,按照約定的規則協議,節點之間對于操作后的最終處理結果達成某種共同認可的狀態。分布式系統的一致性是設計分布式系統時應考慮的最核心問題。影響分布式系統最終全局狀態結果一致性的因素:不同計算機節點處于不同的地理位置計算性能也存在差異對于相同數據任務完成計算耗費的時間無法保證一致:比如有可能出現少數節點處理較慢,而其他節點必須等待它們處理結;或者發生節點臨時中斷處理等異常情況,如出現節點宕機的情況。節點之間進行網絡通信也有可能因為通信鏈路故障而導致消息接收延遲分布式系統一致性的目標:系統在出現上面描述各種故障發生的情況下,依然能正常滿足工作的要求,最終系統通過檢測和處理,節點依然能達成全局一致性狀態。2.1.3分布式系統的一致性分布式系統的容錯率:分布式系統的一致性表明,系統本身具有容忍一定數量節點發生錯誤行為的能力。這些發生錯誤行為的節點稱為故障節點,占整個分布式系統全部節點數量的比例稱為分布式系統的容錯率。分布式系統達成一致性狀態的基本要求:(1)收斂性:一致的結果在有限時間內能完成;(2)一致性:不同節點最終完成決策的結果是相同的;(3)有效性:決策的結果必須是某個節點提出的提案;分布式系統計算機服務可以正常使用的前提主要指分布式系統最終一致性是由分布式系統內的節點執行的結果2.1.3分布式系統的一致性在實際工程實踐中,一般會放寬對一致性的要求,采用弱一致性替代強一致性。強一致性要求節點無論何時進行數據的讀取操作,均會返回最新一次寫操作后的結果數據,即系統對節點達成一致性結果的同步性要求很高。弱一致性一般指在滿足一定約條件下達到最終一致性,即系統可以在未來某個時刻而不是馬上達成一致性狀態。弱一致性要求中比較典型的是最終一致性(EventualConsistency),不保證任意時間點上節點的數據均相同,但需要在經過有限的時間后達到數據上的一致。這實際上可以通過放寬系統的目標要求,從而降低系統實現的難度。2.1.4分布式系統的安全可信分布式系統內部存在地理位置分布不同的計算機節點,內部節點之間還存在復雜的通信行為,分布式系統節點或者節點通信出現故障都有可能影響到系統的安全性和系統最終完成計算任務的結果可信度。分布式系統的安全性主要體現在攻擊者無法通過影響系統內的部分節點或者其他手段,造成分布式系統整體功能故障而無法繼續正常工作。分布式系統的可信性系統最終完成計算任務得出的全局一致性狀態結果對于所有節點及系統用戶均是可信的。分布式系統一般通過系統內數據和服務副本的冗余性,即所有節點都存儲一份狀態數據的副本以及保證這個唯一的系統全局狀態數據的不可篡改性來實現可信。區塊鏈的分類22.2.1公有鏈公有鏈通常不設置準入門檻,對所有人開放,任何人都可以自由訪問公有鏈的數據,參與公有鏈的共識,并在公有鏈上創建應用,這也是“公有”的由來。目前公有鏈可以運用在數字資產等場景,如比特幣、以太坊等。同時,公有鏈也可以應用在一些直接點對點交互需求的場景,如資產注冊登記、發行、投票、資產管理等。公有鏈的公開透明使得其不太適合那些對數據隱私、商業機密要求較高的場景,更適合對信任、安全和持久性要求較高的場景,如用戶對自主數據的控制、可信的商品溯源記錄。公有鏈的應用也不局限于金融場景,還包括防偽溯源、數字身份、內容版權、物聯網等。2.2.2聯盟鏈聯盟鏈服務于符合某種條件的成員組成的特定聯盟,是由聯盟成員進行管理的區塊鏈。其具有半開放的網絡,只有經過認證許可的可信節點才能加入、退出網絡;具有受控制的讀寫權限,只有特定權限的鏈上節點能發布和訪問交易,只有一部分擁有權限的可信節點才能參與該聯盟鏈的共識和記賬。聯盟鏈沒有通過激勵機制實現系統自治的強烈需求,各聯盟鏈根據自身需求自主選擇増加激勵系統。聯盟鏈的分布式程度和信息公開程度不及公有鏈,但也因此可更好地保護用戶、交易隱私。同時由于交易只需要部分被授權的受信高算力節點進行驗證共識,因此相較公有鏈,其性能較更高,成本更低。2.2.3私有鏈私有鏈服務于特定企業、組織或個人,是由該企業、組織或個人進行管理的區塊鏈。其具有相對封閉的網絡,只對指定實體或個人開放,只有相關節點在許可認證后才能加入、退出網絡。私有鏈同時具有受控制的讀寫權限,只有特定權限的鏈上節點才能在鏈上發布和訪問交易信息,只有一部分擁有權限的可信節點オ能參與共識和記賬。與聯盟鏈不同的是,私有鏈節點均屬于同一企業或組織,節點之間信任程度更高,并且私有鏈共識范圍更加狹窄,甚至可以僅由單高性能節點進行記賬。私有鏈在三類區塊鏈中分布式程度和信息公開程度最低,因此其性能最高,隱私性最強且交易成本最低。由于私有鏈較為集中的權限控制與管理并非真正的分布式系統,其一般只應用于企業內部,主要應用于數據管理、審計等金融場景。區塊鏈的應用32.3.1公有鏈的應用公有鏈對所有人開放,任何人都可以參與訪問公有鏈,并在公有鏈上創建應用。目前公有鏈主要應用在數字貨幣等場景,如比特幣、以太坊等。同時,公有鏈也可以應用在一些具有點對點直接交互需求的場景,如資產注冊、發行、投票、資產管理等。關于數字貨幣、加密貨幣和虛擬貨幣概念界定:數字貨幣(DigitalCurrency)指向的范圍較廣,它泛指數字化的貨幣。電子貨幣ElectronicMoney)與數字貨幣的概念相類似,它同樣指以電子化途徑實現的貨幣,例如央行數字貨幣(CentralBankDigitalCurrencies,CBDC)。加密貨幣(CryptoCurrency)其實是加密數字貨幣的簡稱,是數字貨幣發展的一種分支它更強調貨幣使用了密碼學技術。例如,基于公用鏈技術發行的比特幣就是一種很經典的加密貨幣。虛擬貨幣(VirtualCurrency)和數字貨幣范疇有一定的重合,但它強調這類貨幣不是真實的貨幣,通常不具有法償性和強制性等貨幣屬性。游戲中的點券、互聯網公司發行供生態內使用的貨幣,都可以認為是虛擬貨幣,而比特幣等有時也被認為是虛擬貨幣。關于Token:它原指令牌、通行證。在區塊鏈中,它是指基于區塊鏈創建的一種數字對象代表區塊鏈的某種價值或某種權利,中文也被譯作“通證”。一般Token是以加密貨幣形式存在的,但也有一些是傳統的電子化憑證。Token指代的某種價值或某種權利的范圍很廣泛,例如貨幣、積分、票據、投票權、分紅權、地產、證券、債券、某種資格、某類證明等各種權益證明。大部分加密貨幣和Token為了能夠進一步提升其可信程度,會選擇公有鏈作為載體去發行。但是也有一些Token,會因為場景需要發行在聯盟鏈或私有鏈上。此外,出于便于監管和可控的考慮,一些央行層面的數字貨幣會選擇在聯盟鏈或私有鏈架構上進行發行。2.3.1公有鏈的應用2.3.2聯盟鏈的應用聯盟鏈只對特定的參與組織開放權限,可以保護參與者的交易數據隱私,適合機構之間的交易、清結算和B2B場景。聯盟鏈的應用場景非常豐富,主要包括金融和非金融領域:1)金融領域:支付、保險、清結算、股權登記、征信、供應鏈金融等金融場景對于信任要求較高,同時也需要保護數據隱私,適合作為聯盟鏈場景。2)非金融領域:非金融領域主要通過區塊鏈不可篡改的特性來追蹤、記錄和共享數據,如區塊鏈應用在商品溯源、電子政務、智慧城市、公益慈善、醫療健康等場景。2.3.3區塊鏈應用的發展趨勢區塊鏈的應用方式從其延生開始已經經過了三個發展階段:第一個階段是比特幣為代表的點對點支付時代,主要實現高效率、點對點的支付過程,其主要應用場景包括支付、流通等;第二個階段是以以太坊為代表的智能合約時代。區塊鏈與智能合約相結合,實現在區塊鏈上部署應用程序,包括可編程金融、分布式應用(DecentralizationApplications,簡稱DAPPS‘”)等落地;第三個階段是“區塊鏈+行業”應用的時代,即把區塊鏈應用拓展到各個行業場景,以實現具體行業應用落地為目標,解決行業痛點,服務經濟發展和社會進步。2.3.3區塊鏈應用的發展趨勢目前區塊鏈正在加速向第三階段的行業應用推進,成為一種通用基礎設施,加速與行業融合創新。區塊鏈技術的優勢:多方協作場景中以低成本建立信任區塊鏈技術發展瓶頸:存儲、計算等方面存在一定的資源和性能瓶頸區塊鏈不只是單一技術,而是多種技術的綜合集成,包括P2P網絡通信、非對稱加密技術以及分布式數據庫技術等。同時,區塊鏈應用還涉及多節點參與的協調問題,實施區塊鏈解決方案可能面臨計算復雜度和存儲冗余度都比較高的情況,區塊鏈和其他技術結合可以有效降低復雜度,加速區塊鏈應用落地進程。《區塊鏈的分層模型》第三章3.2數據層3.1區塊鏈的系統分層3.3網絡層3.4共識層3.5合約層3.6應用層區塊鏈的系統分層13.1.1互聯網分層模型發送者A接收者B?借助何種應用完成轉賬檢查發送者余額與真實性節點確認通知接收者“收款憑證”的存儲分層:拆分復雜問題,通過層級遞進關系串聯3.1.1互聯網分層模型通用網絡標準和方法:開放系統互聯模型應用層表示層會話層傳輸層網絡層數據鏈路層物理層圖3-1OSI七層網絡模型網絡通信模型:TCP/IP協議應用層傳輸層網絡層鏈路層圖3-2TCP/IP四層網絡模型層級之間存在傳遞關系新一代信息技術系列教材《區塊鏈導論》3.1.2區塊鏈的五層模型獨立性

每層具有獨立的邏輯和功能通用性各層規范和架構確定,有利于國際標準化工作展開,促進系統各部分的通用性和兼容性。層級間具有遞進關系需要滿足分層的以下特點:應用層分布式的鏈上應用面向最終用戶合約層實現智能合約、腳本功能共識層負責實現各賬本的數據一致性分布式系統特有層級各節點達成一致,共識機制:PoW,PoS,BFT…網絡層節點之間的網絡連接和傳輸點對點網絡數據層區塊鏈模型基礎負責區塊鏈數據存儲“賬本”數據形成區塊,以時間戳順序存儲在物理介質中新區塊驗證并上鏈圖3-3區塊鏈五層分層模型新一代信息技術系列教材《區塊鏈導論》發送者A接收者B應用層例子:發送Token交易信息+簽名信息選擇APP,輸入交易信息合約層交易信息+簽名信息+合約內容調用Token合約共識層選出節點并進行信息驗證,打包成區塊節點信息+交易信息+簽名信息+合約內容網絡層節點廣播區塊給其他節點,并進行驗證區塊數據層區塊上鏈3.1.2區塊鏈的五層模型新一代信息技術系列教材《區塊鏈導論》數據層23.2.1數據結構區塊鏈的本質:分布式賬本數據結構數據模型數據存儲合約層共識層網絡層數據層應用層3.2.1數據結構區塊鏈:區塊按照時間戳,由遠及近地鏈接,形成一條鏈式結構的數據存儲。1.區塊結構區塊鏈的數據組織單元是區塊,不同的區塊鏈的區塊數據都會包含“區塊頭”和“交易”兩個部分。區塊頭交易存放區塊自身的元數據存放加密后的交易信息比特幣——幻數、區塊大小、區塊頭、交易計數和交易以太坊——區塊頭、交易、區塊頭哈希3.2.1數據結構區塊鏈:區塊按照時間戳,由遠及近地鏈接,形成一條鏈式結構的數據存儲。1.區塊結構區塊鏈的數據組織單元是區塊,不同的區塊鏈的區塊數據都會包含“區塊頭”和“交易”兩個部分。區塊頭交易存放區塊自身的元數據存放加密后的交易信息比特幣——幻數、區塊大小、區塊頭、交易計數和交易以太坊——區塊頭、交易、區塊頭哈希區塊頭前塊哈希默克爾(Merkle)根時間戳向前一個區塊的指針,將孤立的區塊串聯在一起,形成區塊鏈存放著基于交易信息形成的哈希值記錄當前區塊產生的近似時間3.2.1數據結構區塊頭交易信息對交易信息的哈希對下層節點的進一步哈希交易與Merkle樹Merkle樹又稱為哈希樹,樹中的每個節點存儲的均為哈希值。Merkle樹的結構特點:(1)易校驗(2)擴展性強(3)證明成本低3.2.1數據結構3.2.4區塊鏈區塊鏈的形成:“前塊哈希”的數據域,將父區塊的區塊頭做哈希運算得到,將區塊有序連接成區塊鏈。特點:1.增加了篡改難度2.無法避免產生分叉!3.2.1數據結構1.交易輸出(UnspentTransactionOutput,UTXO)模型UTXO以“交易”為單位進行追蹤和記錄。比特幣為代表,每筆交易有一個或者多個交易輸出或輸入。輸出:交易的每一個輸出即為一個新的UTXO,一個用戶所擁有的比特余額為該用戶的所有UTXO之和,這些UTXO零散地記錄在不同的交易區塊中。輸入:交易的每一個輸入即為前序交易的某個UTXO,所有交易的最初輸入可以追溯了鑄幣獎勵。每筆交易的輸入與輸出可以并行處理,并且一一對應。3.2.2數據模型2.

賬戶模型賬戶不記錄交易過程,只記錄余額狀態。特點:1.區塊體積小,網絡傳輸量小,空間利用率高;2.相比與UTXO模型,賬戶模型讓網絡中的輕節點更容易驗證;3.并發處理能力比UTXO差。以太坊為代表,賬戶模型中包含了:(1)外部賬戶

給用戶操作,通過私鑰信息操作賬戶實現轉賬、智能合約的創建,調用等功能(2)合約賬戶

不能自主發起交易,只能被外部賬戶調用3.2.2數據模型3.2.3數據存儲存儲構架的演變:中心化服務器分布式數據中心或者云平臺(多中心化)區塊鏈:分布式存儲,每個節點都能夠存儲全量賬本。不同區塊鏈,節點上的物理存儲方式不同比特幣:區塊數據以文本形式存儲;其他信息存儲在鍵值(Key-Value,KV)數據庫LevelDB中。以太坊:狀態和索引數據都被存儲在LevelDB中。聯盟鏈Corda項目的數據存儲在傳統關系型數據庫,TrustSQL項目數據采用MySQL及MariaDB作為存儲數據庫。區塊鏈項目面臨著嚴峻的存儲問題,需要新的技術手段,例如云平臺、側鏈、閃電網絡等。網絡層33.3網絡層合約層共識層網絡層數據層應用層網絡層:泛指區塊鏈系統的整個網絡通信層,區塊鏈數據通過網絡層傳播進行校驗、存儲等。主要實現組網、傳播與校驗功能。中心化模式:架構:客戶端/服務端(Client/Server,C/S)或瀏覽器/服務端(Browser/Server,B/S)特點:1.系統需要一個或多個中心化的服務器承擔統一接收和處理請求的職能2.優點:利于服務的統一管理與升級;保持服務一致性;3.缺點:中心化的設備故障會導致服務癱瘓;節點多導致負載壓力大。3.3.1點對點網絡點對點網絡(Peer-to-Peer,P2P)分布式網絡架構,網絡中的每一個節點都是對等的,可以充當服務提供方及服務獲取方。單一或少量節點機器配套通信設備的故障不會影響整個網絡的服務提供。優點:節點越多,服務質量越高,擴展性越強。缺點:數據一致性難以保障、資源無法統一管理、垃圾信息多等。3.3.1點對點網絡P2P網絡的核心技術:分布式哈希表用途:維護網絡中節點清單和和節點能提供的服務清單分布式哈希表(DistributedHashTable,DHT)誕生于2001年,核心思想是網絡中的每個節點都維護一部分索引信息,然后通過特定的規則將這些節點信息連接起來,使得在查詢或注冊時,按規則觸達相關節點或資源,不同的規則對應著分布式哈希表不同的協議。

優勢:避免中心化索引和網絡風暴分布式哈希表基礎結構:哈希表,是一種以“鍵-值”形式進行存儲和查詢的數據結構。在存儲時,存儲信息經過哈希函數的處理生成一個映射地址,并將信息存儲到這個地址中,讀取時直接定位到該映射地址提取數據。3.3.1點對點網絡圖3-12為哈希表存儲結構,是一組數據{1、3、4、7、8、20、55}經過哈希函數H(k)=k%7進行散列得到。對于數值20,20%7=6,因此數值20存儲在地址為6的地方。也有可能存在地址沖突的情況,例如1和8散列后地址相同,這種情況可以通過開放定址、單獨鏈表、再散列等方法解決。圖中的采用的是單獨鏈表法。通過哈希表存儲的數據,可以實現在常數時間復雜度內完成數據讀取,十分高效。在分布式網絡中,每個節點都存儲了一張哈希表,通過一定的規則關聯形成了分布式哈希表。地址存儲數據3.3.1點對點網絡分布式哈希表實現:Kademlia協議Kademlia協議在2002年設計,具有結構簡單、性能好、安全性強的優點由于在分布式哈希表的網絡中,每個節點只保存一部分資源的索引信息,當網絡中有資源變更時不需要全網廣播,只需要更新相關節點。問題1:如何在每個節點都知道部分信息的情況下實現對全網資源的觸達與維護???Kademlia協議提出基于距離的解決方案:每一個節點都維護一張哈希表,表中將網絡的節點基于距離進行分組,每個分組下存放若干個節點代表。問題2:網絡中的節點和資源如何建立關系???Kademlia協議將網絡中的節點和資源均映射成160位的二進制碼,編碼等于或接近某個資源的節點,需要知道該資源的下載地址。Kademlia協議解決了點對點網絡中的組網問題,將找資源變成找節點,將找具體節點變成找大類的代表。3.3.2數據傳播和校驗

數據傳播

區塊數據打包后需要廣播給其他節點進行校驗和記賬。根據點對點分布式網絡的特點,每個節點只會向其直接連接的節點發送區塊信息。收到消息的節點會對區塊進行校驗,通過后加入該節點本地的區塊鏈,并廣播給其他節點,如此循環,知道觸達全網的節點。

以太坊中的數據傳播方式:

1.向相鄰節點直接發送包含完整的區塊內容的消息;

2.向相鄰節點發送只包含區塊哈希的消息,收到區塊哈希的節點再從發送節點請求對應的完整區塊信息。3.3.2數據傳播和校驗

數據校驗

點對點網絡中,全節點會占用較大的存儲量,輕量級節點會存儲部分數據,所以輕量級節點需要向相鄰節點請求數據來完成數據校驗。

數據校驗的內容:依據該區塊鏈項目預定義的清單。

比特幣的數據校驗內容:

(1)工作量證明檢查

(2)區塊頭中Merkle根的值是否與依據區塊體中交易信息計算得到一致

(3)區塊大小再限制范圍內

(4)第一筆交易以外的其他交易不能是鑄幣交易

(5)交易的合法性共識層43.4.1共識和一致性區塊鏈系統作為一個分布式系統,其正常工作的核心問題是如何保證所有節點中的數據完全相同,并且能夠對某個提案達成一致。解決方法:共識層包含了各種共識算法,負責實現區塊鏈各個賬本的一致性,即不同節點數據的一致性。一致性指不同節點中的數據內容是否完整并且相同,是系統對外呈現的狀態是否一致。共識是一種實現一致性的方法、途徑或手段;共識機制(共識算法)是為了達成共識需要使用的某種機制,快速準確地在各個節點實現區塊數據一致性的機制和算法,通常是利用獎懲機制。主流的共識機制:確定性算法:如拜占庭容錯(BFT)概率性算法:如工作量證明(PoW)、權益證明(PoS)、委托權益證明(DPoS)區別:確定性算法下的新區塊無法被滾回,而概率性算法的新區塊,只有當被回滾的概率接近0時,才被視為確定性的。3.4.2拜占庭容錯BFT拜占庭容錯(ByzantineFaultTolerance,BFT)算法可以解決分布式系統里拜占庭將軍問題的容錯算法。拜占庭將軍問題:將軍選擇進攻還是不進攻?決策是否能達成一致,是決定勝負的關鍵。

誠實將軍們決策的結果會被叛徒將軍干擾:1.不進行表態;2.發表錯誤觀點;3.主動干擾其他將軍對局勢進行誤判。例如:有11位將軍A1,A2,A3,A4,B1,B2,B3,Z1,Z2,Z3,Z4叛徒:Z1~Z4;想進攻:A1~A4;不想進攻:B1~B34位叛徒成功瓦解了7位誠實將軍3.4.2拜占庭容錯BFT區塊鏈中:每個節點——拜占庭軍隊中的將軍各個節點的信息傳輸過程——信使傳信部分節點被干擾——信使被殺惡意節點——叛徒將軍出現故障或錯誤的節點被稱為拜占庭節點;接收正確信息同時傳送正確信息的節點稱為非拜占庭節點。BFT共識機制中應用最廣的位實用拜占庭容錯機制(PracticalByzantineFaultTolerance,PBFT),1999年由MiguelCastro和BarbaraLiskov提出。適用場景:極少有惡意節點或者故障節點核心思路:性能優先3.4.2拜占庭容錯BFTPBFT算法:由執行交易命令的主節點使用,在三個階段中達成共識。主節點廣播請求每個驗證者簽名并準備針對該請求的準備消息,驗證器廣播提交消息當接收到足夠的提交消息后,請求被接受

3.4.3PoW證明類共識(ProofofX):節點以某種代價或消耗資源的證明,基于這個證明,節點可以獲得一定概率或一定比例的記賬權。工作量證明(ProofofWork,PoW):指節點通過消耗計算資源,計算一項較難完成但很容易驗證的工作,并以此證明獲取區塊鏈記賬權的共識機制。最常用的工作為計算哈希函數(計算過程簡單,破解很難);要求節點利用計算能力去尋找一個隨機數,使得該隨機數和特定數字的哈希計算滿足一定的條件。優點:安全性和不可篡改性。缺點:交易確認時間過長,不適用高頻的商業應用;消耗了大量的電力資源;挖礦系統越來越中心化。3.4.3PoW比特幣使用隨機數搜索目標哈希的PoW過程:(1)將一個新的鑄幣交易添加進系統中,計算出Merkle根哈希;(2)利用隨機數Nonce、上一個區塊哈希值、當前Merkle根哈希及其他的字段組成區塊頭;(3)將每一個區塊頭進行雙重SHA-256運算,并且使得隨機數Nonce加1,得到一個結果值,把網絡目標值和得到的數值進行比較。當得到的值小于等于目標哈希值,則隨機數符合條件,第一個算出此隨機數的礦工擁有記賬權。3.4.4PoS/DPoS幣齡(CoinDays):個人所擁有貨幣數量與擁有天數的乘積。權益證明(ProofofStake,PoS)共識機制:根據用戶持有貨幣的幣齡為消耗資源,獲得記賬權,打包新區塊的證明。擁有更高幣齡的節點會有更高的概率挖出新區塊,大部分PoS共識機制采用單純以Token數量爭奪記賬權的方式;挖出新區塊后,幣齡會被消耗;獲得記賬權的節點會得到一定的區塊獎勵;優點:挖礦效率更高效且不存在算力冗余;不需要消耗大量電力;缺點:無法擺脫挖礦的約束;幣齡或持幣量越大的節點,權益高度集中,產生馬太效應。委托權益證明(DelegatedProofofStake,DPoS):嚴格限制了參與共識的節點數量,Token持有者可以參與投票,將權益委托給候選節點。能夠降低參與共識的節點數量,降低能耗及成本,提高區塊鏈的數據處理能力。3.4.4PoS/DPoSPoS:

節點都是對等節點,每個節點都能參與共識,概率和持幣量或幣齡掛鉤。DPoS:有代表節點,系統中的Token持有者能夠把權益投票給某個候選代表節點,委托其參與共識。票數高的候選節點可以稱為代表節點,參與共識過程。3.4.5其他共識機制區塊鏈系統中,還有其他多個共識機制,采用何種共識算法需要考慮到實際應用場景:(1)權威證明(ProofofAuthority):基于聲譽的共識算法,被選為區塊驗證者需要憑借個人聲譽,而不需要抵押Token。適用于私有鏈場景。(2)身份證明(ProofofIdentity,PoI):是一塊表示加密事實的數據,它允許任何持有私鑰的用戶和一個認證的身份相對應,然后和指定的交易進行連接。(3)權重證明(ProofofWeight,PoWeight):基本理念是在權益證明系統中,用戶所擁有的網絡中Token的百分比,表示了該用戶“發現”下一個區塊的概率。合約層53.5.1合約層引入打個比方,區塊鏈是一塊蛋糕,數據層、網絡層和共識層就是蛋糕胚,起到整體支撐作用;而合約層和應用層則是蛋糕上的奶油和櫻桃,是整個區塊鏈最亮眼的部分。合約層在整個區塊鏈分層模型中位于第四層,它封裝腳本、智能合約,是區塊鏈靈活編程的基礎。一般來說,區塊鏈應用的用戶不需要直接與智能合約進行交互,而是通過應用向智能合約下達指令,應用再通過接口與合約層進行交互。因此,合約層非常重要,它為頂層應用提供所依賴的智能合約邏輯和算法。3.5.2智能合約通常認為,區塊鏈2.0階段的一個重要標志是智能合約的實現,那么智能合約是什么呢?從定義看,智能合約是一種由機器實現的協議或程序,但是由于它運行在一個需要達成共識的分布式系統環境中,與一般的計算機程序存在很大的區別。AB情景案例A在互聯網出售一個電子產品,而遠在千里之外的B希望將這個電子產品收入囊中,他們該如何完成交易呢?最簡單的方法莫過于借助一個線上商店,但是這需要重度依賴商店的信譽。換一種思路,如果雙方簽訂一個(基于區塊鏈)的智能合約,并在合約中約定中約定,如果A發送電子商品給合約,B轉賬給合約,那么合約就將錢轉給A,將電子商品發送給B,雙方皆大歡喜完成交易。或者如果時間到了,雙方有一方未履行約定,就將電子商品和錢原路退回,不給雙方帶來任何風險和損失。3.5.2智能合約智能合約是一種旨在以數字化手段傳播、驗證或執行合同的計算機協議,它無需第三方即可執行可靠且不可逆的交易。3.5.3多重簽名(4/6)可以解鎖(3/6)無法解鎖最常見的腳本語言實現的功能之一就是多重簽名,通常來說,每個地址都對應一把獨一無二的私鑰。但是通過腳本語言,可以實現讓多把互不相同的私鑰管理同一個地址。每次用戶轉移地址中的資產時,用戶們必須同時使用a+n把私鑰中的a把才能完成轉賬,在上圖展示的多重簽名示意中,要求同時出示6把私鑰中的4把簽名才能轉賬。這樣的多人管理的多簽手段,方便大型組織、公司使用,既有增加了安全性,又防止單一私鑰丟失,而這個功能,正是合約層腳本語言提供的。地址A多簽要求:6把私鑰中至少有4把地址A多簽要求:6把私鑰中至少有4把3.5.4確定性什么是確定性呢?從定義來看,如果給定一個輸入,計算機經過同樣的狀態變化順序后總會產生相同的結果,那么這個算法即可被稱為是確定性的。區塊鏈是一個分布式系統,分布式系統中的各類節點必須保證結果的確定性,如果每個結點運行相同的智能合約,卻產生不同的結果,那么區塊鏈網絡就無法達成共識。智能合約確定性算法層面數據層面在合約層,不應當使用會產生不確定結果的算法,如隨機數,如比特幣,它只提供有限數量的腳本,而這些腳本不會產生不確定的結果。不同的數據輸入一般會帶來不同的結果輸出,如果智能合約采用鏈上的數據的話,鏈上數據是確定的、不可篡改的。但很多智能合約的運行邏輯都依賴外部的數據輸入,可以利用預言機來處理外部數據,增加外部數據的可信性3.5.5腳本語言在區塊鏈早期,以比特幣為代表的區塊鏈網絡,并沒有使用智能合約,而是使用一種簡單的,基于堆棧的腳本語言。它不支持循環,不是圖靈完備的。但是,它可以實現一些基本的指令。以比特幣的指令為例,這些指令被稱為操作碼,它支持上百個這樣的簡單腳本指令。指令描述OP_IF指令如果頂部棧堆為非假,則語句被執行OP_SHA256指令對輸入使用SHA-256進行哈希處理比特幣的腳本語言是智能合約的雛形,它為自身系統帶來了一些新的功能,也為后來智能合約的發展提供了思路。3.5.6可終止性區塊鏈通過賬本冗余換來了不可篡改的特性,它其實消耗了相當多的物理資源。因此,區塊鏈的鏈上資源,無論是存儲還是帶寬,都是非常寶貴的。如果一條智能合約使用了一些無法終止的函數,例如死循環,它將消耗大量的鏈上資源。而區塊鏈是一個分布式系統,智能合約一經部署無法撤回,無法終止的合約甚至會造成區塊鏈系統的停擺,所以,智能合約必須是可終止的。有限命令限制指比特幣的形式,它已經預設規定好開發者能夠使用的腳本語言種類,而這些腳本語言不包括不可終止的功能燃料機制限制以以太坊Gas機制為代表,在這類區塊鏈系統中,運行智能合約需要Gas費用,用戶可執行包含循環邏輯的函數,但每循環一次就消耗一定的Gas費用。一旦預交的Gas費用耗盡,則智能合約的運行自動停止資源控制限制細化智能合約需要使用的CPU、帶寬、內存等資源,智能合約每運行一步都消耗一步的資源,確保合約可終止準入資格限制主要應用在聯盟鏈領域,聯盟鏈的可控性更好,可以通過對結點的限制來保證這些結點不會部署不可終止的合約智能合約限制策略應用層63.6.1應用層區塊鏈系統的應用層封裝了各種應用場景和案例,其概念類似于PC端的應用程序,以分布式應用為主要表現形式。這些應用部署在區塊鏈的平臺上,并在現實中落地。根據對應用層的深入程度,總結了區塊鏈四類應用:分布式賬本、價值傳輸網絡、通證激勵以及資產數字化。3.6.2分布式賬本在分布式賬本大類中,主要應用方向是實現分布式存證效果的分布式賬本應用,不涉及對于通證的區塊鏈應用。這類應用更多的是利用分布式賬本技術,實現業務信息的公開透明、防篡改、防偽造,主要包括數據存證、可信查詢等。盡管從技術上來看,很多時候仍然會利用傳統的、較為成熟的分布式數據庫技術,但已經開始與傳統互聯網產生區別。最明顯的區別在于分布式賬本技術。其解決了在沒有可信中介網絡環境下的信任問題,實現可追溯、可查證、防篡改的信息共享。3.6.2分布式賬本情景案例莫斯科曾推出了"積極市民"(ActiveCitizen)項目,讓市民通過投票參與到大大小小的城市管理決策中,比如新地鐵列車的取名、新的體育場館座位涂色等。傳統的投票方式在大規模實施時不僅耗時耗力,而目對計票結果也可能存在質疑。但莫斯科市民投票系統基干以太坊私有鏈平臺,每個市民可作為分布式網絡的一個節點,記錄和存儲投票數據并實時查看計票情況。由于區塊鏈的數據不可篡改,使得投票透明度大大提高,市民和政府之間的信任程度也會隨之提高。截至2021年3月,該平臺已累計超過500萬用戶,共完成了數千次民意調查。3.6.2分布式賬本應用挑戰挑戰簡述解決方案保障平臺獨立性目前很多區塊鏈平臺仍然會由—個或少數幾個單位來發起籌建。平臺上的運營業務合作伙伴—般也是發起單位的原有合作者或某些聯盟的成員等。發起者以及早期參與者會在包括資產所屬權、標準制定、數據積累等方面具有極強的先發優勢利用跨鏈交互等技術形成多中心化局面確保數據真實、有效采用了分布式賬本技術后一般可認為記錄并流轉在區塊鏈平臺上的數據是真實可信的,但如何保證上鏈前的信息是真實可靠的則是個需要解決的問題。權威第三方驗證、使用物聯網、人工智能等技術提升交易速度由于區塊鏈是先天的分布式協作系統,用較復雜的算法和煩瑣的多參與方協作來獲得去中介化信任、數據不可篡改,以及交易可追溯等功能優勢,根據分布式系統CAP原理,在投入資源相同的情況下,區塊鏈的性能往往低于中心化的系統,表現為交易并發處理性能不高,交易時延較明顯。通過多層思路擴容避免資源浪費分布式賬本由于其與生俱來的多節點、多中心的特點,會存在一定程度的冗余。這些冗余一方面可實現多點備份的安全特性,避免單點故障;另一方面,如果控制不當,則會將冗余演變為浪費,其中包括計算冗余和存儲冗余兩個方面擴展技術(分片、狀態通道)鏈下存儲、輕節點方式和分布式存儲3.6.3價值傳輸網絡價值傳輸網絡的特點可清算可追溯普惠金融

通過鏈上的通證,使價值流轉過程清晰透明由于區塊鏈賬本對交易記錄的透明特性,每筆交易的付款方和收款方都在鏈上進行交易區塊鏈對個人的價值傳輸網絡體現在KYC的提升,利用密碼學構建的區塊鏈體系使用戶身份不可偽造、行為不可抵賴,利用點對點的支付功能可進行個人資產的可信交換價值傳輸網絡應用挑戰保持傳輸價值穩定保證交易合法提高交易安全要求價格穩定,不隨數字貨幣媒介的波動而波動價值可用,當傳輸非法幣時,接收方同意并可正常使用解決通過對沖工具穩定價值使用法定數字貨幣區塊鏈天然帶有一定的匿名性,隱藏交易具體信息的同時,加密貨幣也可能用來實施金融犯罪可通過加入KYC/AML的流程和進行匿名性和可監管性的平衡價值傳輸網絡由于自身的價值屬性,會吸引更多的惡意攻擊解決技術開發過程的白盒測試、黑盒測試漏洞獎勵機制價值傳輸網絡是基于分布式賬本,借助已有通證實現價值互聯互通,以此形成價值互聯網的基礎。該層最早最典型的應用主要是能體現價值流通的支付清算。3.6.4通證激勵體系通證(Token)是以數字形式存在的權益憑證,它通常以區塊鏈技術為載體。通證實際上代表著一種權利,可以在特定的場景或者時間內生效、使用。通證激勵體系是基于價值傳輸網絡,根據實際的應用場景定制化生成的原生通證而產生的。這一層級應用的顯著特點是在區塊鏈上引入了通證經濟學的激勵機制。根據真實業務場景應用,以區塊鏈通證為價值載體而建立的通證激勵體系可視作一種升級版的會員積分計劃。通證激勵體系可實現的特性主要有兩個方面。1)充分調動各個關聯方的貢獻。2)優化資源分配。將區塊鏈技術引入顧客忠誠度計劃和會員積分系統,是通證激勵應用體系的典型思路。在傳統的銷售模式下,顧客獲取會員積分最重要的途徑就是進行購物消費,商家一般會根據消費金額的大小進行相應積分的發放,而積分的使用場景,往往也是通過重復購物享受優惠來實現。隨著互聯網營銷模式進一步演變和創新,會員積分已經不僅僅是終端消費者的忠誠計劃,也可以成為渠道商和分銷合作伙伴的激勵管理手段。例如以阿里媽媽、京東和拼多多為代表的電商淘客平臺,通過傭金分發獎勵推廣行為,既提高了電商平臺的精準營銷效率,又滿足了合作伙伴對圈層生態建設和推廣等服務的需求,而且還使得消費者能以更優惠的價格購買到電商平臺上同等質量的商品,一舉多得。結合區塊鏈積分建立的通證激勵應用體系,從"購物挖礦"到"行為挖礦",目前已形成一些較為典型的案例。3.6.4通證激勵體系的挑戰在通證經濟設計體系中,通證本身所代表的價值需要進行合理設計,一方面應,保證足夠多的價值,對用戶形成足夠的吸引力;另一方面價值應合理適度。除利用市場化手段進行通證價格調節外,通證具有的內在價值可隨著使用場景及未來表現的變化而變化。用戶在使用通證時可能會同時出于多種需求,比如使用上的流動性與持有上的保值性等。平衡好這一關系的一個解決辦法是,讓通證發行的速度與通證使用的速度相匹配,使得整個系統的通證供給與需求達到平衡狀態;另一個解決辦法是,設計好通證使用權益與持有權益的均衡比例。這一挑戰本質是關于通證應如何產生的問題,包括如何合理定義激勵點以及如何平衡冷啟動與可持續性。合理定義通證激勵,可以從對業務發展的分析入手,判斷阻礙業務進一步發展的瓶頸所在,有針對性地對其進行激勵。如何賦予通證價值通證流動性與保值性平衡如何合理定義激勵點3.6.5資產數字化資產數字化是通證激勵體系的高級應用形態,但可應用的概念范圍也最為廣義化,因為任何資產都可以上鏈,并且具有以下的特點:1)鏈上的通證背后有實際資產作為支撐,是資產的數字化形式,并不是憑空生成的。2)大額不可拆分的資產在數字化之后,將形成可拆分的所有權(FractionalOwnership)。3)資產數字化之后可自由流通。4)數字化資產可以全球性流通,沒有國界限制,資產間交互性更強。5)數字化資產可編程性強,可實時清算交割,且清算交割的成本較低。6)可較為便捷、低成本地實現KYC/AML,資產交易可以實現自監管。主要挑戰1.政策監管體系還不成熟2.通證經濟體系所帶來的流動性增長,會在短時間內積累出大量風險應對措施1)適度建立流通門檻2)加強審核機制3)設立投資者準入門檻4)針對早期項目給予輔導《比特幣—區塊鏈的首個應用》第4章比特幣實現原理無中介支付體系基礎問題比特幣概述比特幣概述4.14.1比特幣概述比特幣:數字資產(BTC),點對點的電子現金系統。供應量:由軟件及底層協議確定,所有比特幣都是通過新區塊的挖礦獎勵形式發行,共2100萬枚,最小單位是1聰(1億分之1枚)。減半:比特幣挖礦區塊獎勵每21萬個區塊后減半,按照平均10分鐘1個區塊,減半大約每4年發生一次。難度調整:為了保持平均每10分鐘1個區塊的恒定出塊速度,比特幣網絡將在每挖出2016個區塊后進行一次挖礦難度調整。中本聰:“比特幣之父”,2008年發表比特幣白皮書;2009年1月3日自己編程實現并發布比特幣首個區塊;2010年12月13日,最后一次登錄比特幣論壇。無中介支付體系基礎問題4.24.2無中介支付體系基礎問題如何記賬由誰來記賬才能保證系統的公平公正,怎么樣能吸引足夠的人來參與記賬活動,如何來保證系統記賬活動的持續穩定性與安全性。如何確保賬目不可篡改不僅要保證記賬的公平公正,還必須要確保所有的交易記錄不會被篡改。如何注冊和產生賬戶無中介支付體系必然涉及賬戶之間的價值轉移。如何在沒有中介的情況下安全地進行賬戶的注冊,確保賬戶擁有者對賬戶的絕對控制權。如何轉賬核心問題,在轉賬過程中需要保證用戶對自己財產控制的安全性。4.2無中介支付體系基礎問題如何防止資產被雙花雙花問題是數字貨幣所要面臨的一個獨特問題。數字貨幣是以數字形式存在的,容易被復制,使得一筆數字資產存在被多次重復使用的可能性,這也就是數字貨幣的雙花問題。要設計一個可行的記賬系統,就必須解決雙花問題,杜絕數字資產被重復消費。如何更改協議無論是出于主動提升系統性能的目的,還是為了解決運行過程中暴露出來的安全漏洞,都需要對協議體系進行更改。由于組成節點眾多,一個網絡協議體系的更改遠比單一節點上的軟件升級要復雜得多。比特幣實現原理4.34.3比特幣的實現原理2009年1月3日,比特幣區塊鏈網絡首次上線。它包括了公有鏈的三個組成部分一個分布式網絡;一個分布式賬本;基于它們的價值表示物。(在這個網絡里,價值表示物是加密貨幣比特幣,在其他區塊鏈網絡中有的也用通證作為價值表示物。)公有鏈分布式網絡分布式賬本價值表示物4.3比特幣的實現原理電子現金系統比特幣區塊鏈能夠在沒有集中式機構的情況下發行電子現金,能夠支持個人與個人之間的轉賬交易。這樣的技術系統可以用于任何價值表示物的無中介發行與點對點交易。區塊鏈賬本賬本用來記錄“誰擁有什么”。所有的區塊鏈賬本記錄的都是從最初狀態開始的每一個轉賬交易,之后在此基礎上形成“誰擁有什么”的記錄。比特幣區塊鏈賬本是記錄從最初時刻即創世時刻開始后的所有交易明細的底賬(Ledger)。4.3比特幣的實現原理3.分布式比特幣區塊鏈系統要實現的目標是創建一個點對點的電子現金系統,轉賬交易時無須任何“可信第三方”(Trustedthirdparty),實現方式是通過點對點的對等網絡與公開的分布式賬本取代中間人。沒有中心的網絡中,賬本維護和更改(對區塊鏈賬本來說僅是添加)并達成一致的方法是,由一組記賬節點通過工作量證明(Proof-of-Work,POW)共識機制來維護。記賬會獲得比特幣網絡提供的鑄幣(Coinbase)獎勵,這個行為很類似于現實生活中的挖取礦藏的行為,因此這些節點也常常被比作為“礦工”。工作量證明機制是開放的,任何人都可以自由加入和退出,這是無須許可的。4.發行機制與安全機制工作量證明即通過算力競爭來獲得初始發行的比特幣,成了比特幣網絡這個電子現金支付系統所需要的去中介化發行機制。算力競爭與經濟激勵的組合,亦成了比特幣網絡的安全機制。4.3.1比特幣的數據結構1.比特幣的鏈式數據結構區塊通過哈希指針按照時間順序單向鏈接形成一條區塊鏈。每一個比特幣區塊都包含區塊頭和交易記錄兩個部分。所有的交易記錄通過Merkle樹形式生成Merkle根,這個Merkle根作為一個字段,被存放在區塊頭當中。如果在交易記錄中有任何改動,都會導致Merkle根的不一致。除了創世區塊以外,所有的比特幣的區塊中都包含父區塊(區塊頭)的哈希值,以保證區塊數據的真實有效,不可篡改。原文SHA-256哈希值區塊鏈導論0ed7c0af1b7cc693c2d012b198d2a4ea200c781e9a22a9a4d0c413cee1fa6079區塊鏈導論6647ce72b8d554c58cab1bbf88f988b00becbd4c0febd0866d7e3567c0feb412區塊鏈導論79e90af4904935120240b0aef927acba24ed3e56740e028fc9fe9b60b58e184b4.3.1比特幣的數據結構比特幣和以太坊采用相似的哈希函數和樹形數據結構,但兩者有著微小又重要的不同。4.3.1比特幣的數據結構2.比特幣的區塊頭數據結構比特幣區塊鏈的一個區塊主要由兩大部分組成——區塊頭和交易數據。一個區塊頭包括80個字節,交易數據則不固定,最高可以達到1MB左右。4.3.1比特幣的數據結構當在比特幣區塊瀏覽器中查看區塊的信息時,可以用哈希值或區塊鏈高度進行查詢,還可以看到其中每一個轉賬的詳情。一個礦工在挖礦時,它的任務是按照規則打包形成Merkle樹形式的數據與區塊頭,然后進行反復的哈希計算,獲得符合目標值要求的頭部隨機數與幣基交易隨機數。比特幣區塊鏈的數據是由一個個區塊組成的,而區塊所存儲的就是10分鐘內的交易。要說明的是,如果當前10分鐘內的轉賬交易較多,一些轉賬交易也可能不被包括,而被延遲到之后的區塊中。4.3.1比特幣的數據結構區塊鏈網絡基本結構區塊鏈網絡由眾多的記賬節點來維護,一般用戶依靠節點訪問服務使用這個網絡。4.3.1比特幣的數據結構節點對于一般用戶來說,僅僅使用用戶客戶端的錢包,可能并不包括區塊鏈數據庫和挖礦功能,例如常見的簡單支付驗證節點(SimplePaymentVerification,SPV)就只有基礎的錢包服務,不存儲完整的區塊鏈數據庫或者提供挖礦功能。在區塊鏈網絡中也存在一些有全量區塊鏈數據存儲和路由功能的節點,但它們并不參與挖礦,這些節點也可認為是一般用戶。節點功能區塊鏈數據庫網絡節點路由挖礦功能錢包服務新一代信息技術系列教材《區塊鏈導論》4.3.1比特幣的數據結構3.比特幣普通交易的數據結構比特幣中的交易主要可以分為兩種:一種是普通交易,一種是鑄幣交易(CoinbaseTransaction)。新一代信息技術系列教材《區塊鏈導論》4.3.1比特幣的數據結構4.3.1比特幣的數據結構4.比特幣鑄幣交易的結構所有比特幣的發行都是通過鑄幣交易,也稱幣基交易。鑄幣交易是一個特殊交易,是每一個比特幣區塊中的第一筆交易。鑄幣交易沒有輸入,它的輸出是出塊獎勵,指向礦工的地址。輸出的金額包含兩部分:一部分是出塊獎勵,一部分是交易手續費。4.3.1比特幣的數據結構coinbase數據長度在2~100字節之間。coinbase數據除了前面幾個字節用于表示區塊高度,其他數據可以任意填寫。例如用于比特幣工作量共識機制的外部隨機數(extranonce)也就放在coinbase數據部分;又中本聰在創世區塊中的coinbase數據中填入了當天泰晤士報頭版文章的標題。如果某筆交易引用一個鑄幣交易輸出,那么至少要等這個鑄幣交易被后續100個區塊確認才可用。這樣的規定是為了避免因網絡分叉而導致某筆交易引用無效區塊中的鑄幣交易輸出。新一代信息技術系列教材《區塊鏈導論》4.3.2比特幣的記賬方式作為電子支付系統,支付寶的核心是維護一系列復雜的賬本,記錄用戶擁有的賬戶余額。當用戶支付給商家時,它相應地修改賬本,在用戶的賬戶中減去款項、在商家賬戶增加款項,實現支付的功能。支付寶不涉及從無到有的發行,從銀行轉賬到支付寶,支付寶

溫馨提示

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

評論

0/150

提交評論