區(qū)塊鏈與數(shù)據(jù)共享 課件 第3、4章 區(qū)塊鏈與數(shù)據(jù)共享技術、隱私保護與數(shù)據(jù)共享技術_第1頁
區(qū)塊鏈與數(shù)據(jù)共享 課件 第3、4章 區(qū)塊鏈與數(shù)據(jù)共享技術、隱私保護與數(shù)據(jù)共享技術_第2頁
區(qū)塊鏈與數(shù)據(jù)共享 課件 第3、4章 區(qū)塊鏈與數(shù)據(jù)共享技術、隱私保護與數(shù)據(jù)共享技術_第3頁
區(qū)塊鏈與數(shù)據(jù)共享 課件 第3、4章 區(qū)塊鏈與數(shù)據(jù)共享技術、隱私保護與數(shù)據(jù)共享技術_第4頁
區(qū)塊鏈與數(shù)據(jù)共享 課件 第3、4章 區(qū)塊鏈與數(shù)據(jù)共享技術、隱私保護與數(shù)據(jù)共享技術_第5頁
已閱讀5頁,還剩135頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

區(qū)塊鏈與數(shù)據(jù)共享技術第三章區(qū)塊鏈與數(shù)據(jù)共享

01區(qū)塊鏈背景區(qū)塊鏈概念區(qū)塊鏈的概念被廣為知曉是由于比特幣的迅猛發(fā)展,因為比特幣的底層架構就是區(qū)塊鏈技術。不限于加密代幣的應用,區(qū)塊鏈在經過技術工程師不斷耕耘后,在各行各業(yè)都涌現(xiàn)出創(chuàng)新性的應用,如電子財產市場、政務系統(tǒng)數(shù)據(jù)加密存儲、數(shù)據(jù)記錄驗證審計、供應鏈或者生產鏈溯源等。區(qū)塊鏈技術正不斷滲透到人類的生活生產之中?!吨袊鴧^(qū)塊鏈技術和應用發(fā)展白皮書(2016)》對區(qū)塊鏈的定義是:狹義來講,區(qū)塊鏈是一種按照時間順序將數(shù)據(jù)區(qū)塊以順序相連的方式組合成鏈式數(shù)據(jù)結構,并以密碼學方式保證數(shù)據(jù)不可篡改和不可偽造的分布式賬本。廣義上,區(qū)塊鏈是利用塊鏈式數(shù)據(jù)結構來驗證和存儲數(shù)據(jù)、利用分布式節(jié)點共識算法來生成和更新數(shù)據(jù)、利用密碼學的方式來保證數(shù)據(jù)傳輸和訪問的安全性、利用由自動化腳本代碼組成的智能合約來編程和操作數(shù)據(jù)的一種全新的分布式基礎架構與計算范式。1.1區(qū)塊鏈的概念區(qū)塊鏈概念經典區(qū)塊鏈技術結構可以分為6層,如圖3-1所示,從下至上分別為數(shù)據(jù)層、網(wǎng)絡層、共識層、激勵層、合約層和應用層(具體見3.2節(jié))。下三層繼承了比特幣通用的基礎區(qū)塊鏈架構,也有一些模型會從數(shù)據(jù)層中獨立出加密層,緊隨在數(shù)據(jù)層后,上三層是可定制化的,豐富了區(qū)塊鏈的內涵和外延能力。例如,合約層來自區(qū)塊鏈后續(xù)發(fā)展過程中智能合約的引入,比特幣沒有圖靈完備的智能合約語言,只有逆波蘭表達式的腳本。1.1區(qū)塊鏈的概念區(qū)塊鏈概念數(shù)據(jù)層的數(shù)據(jù)結構是區(qū)塊鏈的基本特征,其中,哈希算法(HashAlgorithm)2構成了數(shù)據(jù)區(qū)塊間的鏈式結構,區(qū)塊封裝了對舊賬本的認識和新的交易序列,給出了新賬本的提案。為什么要封裝對舊賬本的認識呢?假如區(qū)塊只存儲了對應時間段的交易,每個區(qū)塊間是相互獨立存在的,其組成的序列依然是完整的賬本,但這樣的賬本可以隨意替換其中的區(qū)塊而不需改變其他區(qū)塊,資金流轉過程形成的鏈條可能被一次區(qū)塊篡改而打斷或重塑,且無法還原。通過封裝對舊賬本的認識,當前區(qū)塊自身便攜帶著過往交易的信息,可以用于發(fā)現(xiàn)并還原對過往區(qū)塊的篡改,以保障新賬本所含交易的可追溯性和有效性。1.1區(qū)塊鏈的概念

網(wǎng)絡層的對等網(wǎng)絡(P2PNetworking)是區(qū)塊鏈的容錯基礎,也是信任之源。對等網(wǎng)絡結構沒有中心化的服務器節(jié)點,所有節(jié)點平等,稱為“去中心化”。節(jié)點對等地參與系統(tǒng)的維護,限制了單節(jié)點對區(qū)塊鏈的權責,減少了單個惡意節(jié)點對整個系統(tǒng)的沖擊力,任意節(jié)點的崩潰不會影響系統(tǒng)運作。

與其他分布式架構不同,區(qū)塊鏈的分布式注重的是安全,而非性能,所有節(jié)點冗余備份賬本并參與系統(tǒng)維護,但沒有提高系統(tǒng)對外提供服務的能力,反而成為性能負擔。為此,部分區(qū)塊鏈項目賦予少數(shù)節(jié)點更高的權力,犧牲部分安全,以提高效率,稱為“多中心化”。對等節(jié)點組成對等網(wǎng)絡的拓撲結構是區(qū)塊鏈安全的重要組成部分,需要對拒絕服務(Denial-of-Service,DoS)攻擊和日蝕攻擊(EclipseAttack)有一定的韌性。1.1區(qū)塊鏈的概念

共識層的共識算法維護了各誠實節(jié)點賬本副本的一致性,是區(qū)塊鏈不可篡改的核心手段。各誠實節(jié)點遵循巧妙設計的共識協(xié)議,實現(xiàn)了狀態(tài)復制(StateReplication),保證了所有誠實節(jié)點賬本副本的一致,因此本地的賬本副本就是公共賬本,節(jié)點A的賬本副本就是節(jié)點B的賬本副本,在此基礎上達成共識并形成信任,對抗雙花攻擊(DoubleSpendAttack)?和重放攻擊(ReplayAttack)?]。

由于區(qū)塊鏈數(shù)據(jù)結構的精巧,保持賬本一致可簡化為保持末端區(qū)塊的哈希索引一致,考慮到還需要對交易等區(qū)塊內容進行檢驗,節(jié)點間的共識過程實際是末端區(qū)塊的同步。1.1區(qū)塊鏈的概念01共識算法公有鏈,節(jié)點任意進出,主要挑戰(zhàn)為對抗女巫攻擊(SybilAttack)?,采用PoW

、PoS

、PoC、PoST

等證明類共識算法,依托不可偽造的難題證明鼓勵節(jié)點間競爭,以淘汰處于劣勢的惡意節(jié)點。03共識算法私有鏈,機構內部使用,不考慮拜占庭攻擊(ByzantineAttack)[1,僅需要支持崩潰容錯(CrashFaultTolerance,CFT),一般直接使用經典分布式一致性算法,如Paxos、Raft等,效率較高。02共識算法聯(lián)盟鏈,對特定群體或個人開放,依賴數(shù)字簽名算法(DigitalSignatureAlgorithm,DSA)的安全性,遵循公鑰基礎設施(Public-KeyInfrastructure,PKI),設立認證機構(CertificationAuthority,CA)來頒發(fā)數(shù)字證書(DigitalCertificate),采用PBFT等投票類共識算法,通過票數(shù)閾值確保提案統(tǒng)一,通常有嚴格的一致性證明1.1區(qū)塊鏈的概念區(qū)塊鏈概念激勵層的激勵機制使參與者自發(fā)地維護區(qū)塊鏈系統(tǒng)的運作和穩(wěn)定,并減少惡意攻擊的意愿。在開放的沒有負責主體的公有鏈中常見各種代幣,如比特幣、以太幣等,以鼓勵參與者向區(qū)塊鏈系統(tǒng)輸入設備、電力等資源,同時利用押金機制震懾違反協(xié)議的行為。反過來,存在隱患的設計可能導致理性參與者趨向特定攻擊類型,如PoS的無利害關系(NothingAtStake)問題。公有鏈維護者眾多而每周期達成共識的區(qū)塊唯一,記賬競爭內卷,每周期獲益概率極低,屬于高風險高收益的投資。為了降低風險,“礦工”們聯(lián)合為中心化的礦池(Miningpool)[1],成為區(qū)塊鏈研究的衍生課題。1.1區(qū)塊鏈的概念區(qū)塊鏈概念合約層的智能合約(SmartContract)[2]極大地豐富了區(qū)塊鏈的功能和應用,將區(qū)塊鏈從公共賬本系統(tǒng)拓展為公共計算機系統(tǒng)。1995年,NickSzabo提出了智能合約的概念:“一個智能合約是一套以數(shù)字形式定義的承諾,包括合約參與方可以在上面執(zhí)行這些承諾的協(xié)議。”區(qū)塊鏈為智能合約提供了實現(xiàn)平臺,智能合約將合同和承諾轉化為確定性的執(zhí)行邏輯和程序代碼,存入公共賬本,由交易自動觸發(fā),輸入和輸出都在區(qū)塊鏈賬本上有據(jù)可查。因此,智能合約的執(zhí)行由區(qū)塊鏈系統(tǒng)所有節(jié)點共同見證和監(jiān)督,且所有節(jié)點對執(zhí)行結果達成共識。為保證智能合約在不同節(jié)點的異構設備上的執(zhí)行過程一致,區(qū)塊鏈的智能合約機制常常配套相應的虛擬機,甚至為了消除不確定過程設計了智能合約專用語言,如部署在以太坊虛擬機(EthereumVirtualMachine,EVM)上的智能合約專用編程語言Solidity。1.1區(qū)塊鏈的概念區(qū)塊鏈概念應用層組建具體的區(qū)塊鏈應用,與用戶交互。除了以上所述的用戶不需感知的各層區(qū)塊鏈底層機制,完整的區(qū)塊鏈項目還附帶各類輔助模塊,方便用戶使用區(qū)塊鏈。身份認證服務是許可鏈的基礎,綁定現(xiàn)實身份和虛擬身份,避免節(jié)點多票破壞共識安全,同時支持節(jié)點分級和分工。區(qū)塊鏈瀏覽器方便用戶瀏覽和查詢區(qū)塊鏈所有信息,包括鏈本身信息、區(qū)塊信息、交易信息、智能合約信息等。區(qū)塊鏈API和SDK方便開發(fā)者接入?yún)^(qū)塊鏈系統(tǒng)和服務,降低區(qū)塊鏈使用門檻。預言機(Oracle)服務向區(qū)塊鏈輸入系統(tǒng)外的可信的信息,如隨機數(shù)、匯率、天氣預報等,以實現(xiàn)部分智能合約。智能合約IDE輔助和簡化智能合約的編寫和部署,甚至提供智能合約安全檢測服務。1.1區(qū)塊鏈的概念區(qū)塊鏈的發(fā)展歷程。2009年1月3日,中本聰發(fā)布了比特幣系統(tǒng)并挖掘出第一個區(qū)塊,被稱為“創(chuàng)世區(qū)塊”(GenesisBlock),獲得了50比特幣。區(qū)塊鏈的發(fā)展歷程至今,比特幣系統(tǒng)已經運行了十多年。區(qū)塊鏈的發(fā)展歷程2008年11月,中本聰(SatoshiNakamoto)在密碼學論壇[3]發(fā)表的一篇名為《比特幣:一種點對點的電子現(xiàn)金系統(tǒng)》4的文章中首先提出了比特幣的設想。區(qū)塊鏈的發(fā)展歷程2009年1月3日的《泰晤士報》頭版新聞標題——財政大臣正處于第二次救助銀行之際。1.2區(qū)塊鏈的發(fā)展歷程區(qū)塊鏈的發(fā)展歷程1979年,MerkleRalf提出了默克爾樹(MerkleTree)[6]數(shù)據(jù)結構和相應的算法,現(xiàn)在被廣泛用于校驗分布式網(wǎng)絡中數(shù)據(jù)同步的正確性,對密碼學和分布式計算的發(fā)展起著重要作用。區(qū)塊鏈的發(fā)展歷程

DavidChaum

公布了密碼學支付系統(tǒng)ECash,加密數(shù)字貨幣先賢已經開始嘗試將現(xiàn)代密碼學技術運用到貨幣、支付等相關領域。區(qū)塊鏈的發(fā)展歷程1976年,WhitfieldDiffie和MartinHellman發(fā)表了開創(chuàng)性論文《密碼學的新方向》覆蓋了現(xiàn)代密碼學的主要研究方向,包括非對稱加密算法、橢圓曲線加密算法、哈希算法等內容。區(qū)塊鏈的發(fā)展歷程1982年,LeslieLamport提出了拜占庭將軍問題,并證明了在將軍總數(shù)大于三倍的背叛者個數(shù)時,忠誠的將軍們可以達成一致。1.2區(qū)塊鏈的發(fā)展歷程區(qū)塊鏈的發(fā)展歷程1997年,AdamBack提出了Hashcash算法,用于解決垃圾郵件(E-mailSpam)和DoS(Denial-of-Service)攻擊問題。區(qū)塊鏈的發(fā)展歷程2008年底,中本聰發(fā)表《比特幣:一種點對點的電子現(xiàn)金系統(tǒng)》,隨后在2009年初創(chuàng)建比特幣(Bitcoin)的創(chuàng)世區(qū)塊,標志著比特幣的誕生。區(qū)塊鏈的發(fā)展歷程1985年,Koblitz

和Miller各自獨立發(fā)明了橢圓曲線加密(EllipticCurveCryptography,ECC)算法。區(qū)塊鏈的發(fā)展歷程1998年,WeiDai和NickSzabo各自獨立提出加密數(shù)字貨幣的概念。1.2區(qū)塊鏈的發(fā)展歷程01區(qū)塊鏈的發(fā)展歷程2012年,SunnyKing提出了PoS

共識,用于解決比特幣PoW

共識耗能問題,并發(fā)布了點點幣(PPCoin)。03區(qū)塊鏈的發(fā)展歷程2015年,Linux基金會宣布了超級賬本項目(Hyperledger)?],包含一組區(qū)塊鏈工具和多個區(qū)塊鏈子項目,其中Fabric作為超級賬本項目的基石,提供了一個基于許可的區(qū)塊鏈框架,適用于企業(yè)聯(lián)盟應用場景。02區(qū)塊鏈的發(fā)展歷程2013年,Vitalik

Buterin

發(fā)布了以太坊白皮書,隨后在2015年正式推出以太坊。以太坊通過引入可編程的、圖靈完備的智能合約,解決了比特幣機制的擴展性問題。1.2區(qū)塊鏈的發(fā)展歷程區(qū)塊鏈的抽象模型區(qū)塊鏈,顧名思義,即區(qū)塊的鏈,更具體為區(qū)塊的時序鏈,其基本數(shù)據(jù)單元為區(qū)塊,而區(qū)塊封裝了一段時間內的交易,區(qū)塊連成鏈則記錄了完整的交易歷史。各節(jié)點對區(qū)塊鏈賬本達成共識,在引入?yún)^(qū)塊的概念后,分解為每隔一段時間對區(qū)塊達成共識。區(qū)塊鏈的抽象模型以比特幣為例,區(qū)塊主要包含區(qū)塊大小、區(qū)塊頭、交易個數(shù)計數(shù)器、不定長度的交易序列等信息,而區(qū)塊頭主要由版本號、父區(qū)塊哈希值、默克爾樹根、時間截、難度指標、隨機數(shù)(Nonce)等信息構成。1.3區(qū)塊鏈的抽象模型交易數(shù)據(jù)用于記錄和驗證交易,如默克爾樹根和交易序列等。引用數(shù)據(jù)用于表明區(qū)塊順序和繼承邏輯,如父區(qū)塊哈希值等。元數(shù)據(jù)用于方便數(shù)據(jù)存儲和處理,如區(qū)塊大小、版本號、交易個數(shù)計數(shù)器等。共識數(shù)據(jù)用于參與和維護共識機制,如時間戳、難度指標、隨機數(shù)等。1.3區(qū)塊鏈的抽象模型

當明確執(zhí)行環(huán)境和難題難度時,我們可以把比特幣協(xié)議中的本地狀態(tài)s抽象化為區(qū)塊序列b,其內任意區(qū)塊b由四元組<h,,n,m,h>組成,其中h,為父區(qū)塊哈希值,n為隨機數(shù),m為囊括了區(qū)塊內所有交易信息的記錄,h為該區(qū)塊的哈希值。區(qū)塊序列b起源于創(chuàng)世區(qū)塊b,創(chuàng)世區(qū)塊沒有父區(qū)塊,其父區(qū)塊哈希值需要特別設置。在公有鏈中,創(chuàng)世區(qū)塊常常分配了最初的代幣資產,而在聯(lián)盟鏈中,創(chuàng)世區(qū)塊常常創(chuàng)建了最初的規(guī)則。區(qū)塊b=<h,n,m,h>對于父區(qū)塊b?=<h,n1,m',h'>是有效的,需要滿足如下3個條件:①h?=h';②h=H(h,,n,m);③h≤D1.3區(qū)塊鏈的抽象模型

條件①描述了父區(qū)塊存在,條件②描述了區(qū)塊通過哈希指紋索引對區(qū)塊數(shù)據(jù)進行自我驗證,條件③描述了PoW

的工作量證明(在共識算法中展開)?;诖耍镜貭顟B(tài)s=(b,…,b)是有效的,需要滿足如下3個條件:①b是約定的創(chuàng)世區(qū)塊;②對于任意i∈[J],b,對于b是有效的;③V(C(s))=1。1.3區(qū)塊鏈的抽象模型

1.3區(qū)塊鏈的抽象模型對于任意對手A和環(huán)境Z,EXECN;O(A,Z,k)過程中的任意視圖view,用|view|表示執(zhí)、行總輪次數(shù),用view“表示前r輪次view的前綴視圖,用s,(view)表示在view中參與者i的本地狀態(tài),并約定C;(view)=C(s;(view)),C(view)=C,(view‘)。同時,定義函數(shù)的(強)可忽略:函數(shù)e()是可忽略的,若對于任意多項式p(),存在k。使得任意k≥%,則有c(k)≤1/p(k);函數(shù)e()是強可忽略的,那么存在常數(shù)Co≥0與G使得對于任意k,則有e(k)≤e-+G。基于區(qū)塊鏈協(xié)議及其執(zhí)行的定義,接下來可以探究一個“好”的區(qū)塊鏈方案所需的特性:鏈增長、鏈質量和一致性。

1.3區(qū)塊鏈的抽象模型鏈增長鏈增長的數(shù)學數(shù)學描述:其中,i在view'中和j在view?*中是誠實參與者。使斷言growth'(view,△,T)=1,當且僅當以下兩個條件成立:①(長度一致)對于任意輪次r≤|\vicw|-△,r+△≤r'≤|view|,對于任意兩個參與者i和j,且i在view'中和j在view中是誠實參與者,有|C“(view)|≥|C(view)|;②(鏈增長)對于任意輪次r≤|view|-t,min-chain-increase'"(view)≥T。換言之,斷言growth'描述了如下內容:①誠實參與者的賬本長度大致相同;②在執(zhí)行過程中經過任意t輪,所有誠實參與者的賬本長度都至少增加了T。

1.3區(qū)塊鏈的抽象模型鏈質量基于誠實參與者的定義可以給出誠實記錄的定義:記錄m對于view和前綴記錄m是誠實的,那么對于輪次,使得參與者j在view中是誠實參與者,并從環(huán)境Z接收m作為本地輸入,且m是C/(view)的前綴記錄,即存在誠實玩家在本地賬本包含m時收到m作為輸入。使斷言quality"(view,μ)=1,當且僅當對于每輪次r和每個參與者i使得參與者i在view'中是誠實的。假設一個參與者(節(jié)點)是誠實的,在第i個參與者的第r輪次的賬本C(view)中,任意連續(xù)T個記錄組成的賬本子集M=C'(view),對于第r輪次的視圖view'和M在C(view)中的前綴記錄m,誠實記錄的占比應滿足大于等于可變參數(shù)μ∈[0,I]。1.3區(qū)塊鏈的抽象模型用概率公式定義鏈質量的數(shù)學公式如下:定義3.1.3區(qū)塊鏈協(xié)議(N“,C)在T環(huán)境下有鏈質量μ(,,):對于任意T許可的<n(),p,△(),A,Z>,存在常數(shù)c和可忽略函數(shù)s和c,使得對于VkeN,T=clogk。

Pr[view←EXEC(N;O(A,Z,k):quality(view,μ(k,n(k),p,△(k)))=1]≥1-c(k)-c?(T)(3.3)如果q=0,那么(N“,C)在T環(huán)境下有無偏鏈質量μ。1.3區(qū)塊鏈的抽象模型一致性定義斷言consistent'(view)=1,當且僅當對于任意輪次r≤r',任意參與者i,j∈Z+(i≥ji≤j),使得參與者i在view'中和j在view'中是誠實參與者,賬本C(view)和C(view)的前e=|C“(view)|-T個記錄組成的前綴是相同的。斷言consistent'(view)同時從兩方面約束了賬本的一致性:①不同參與者在同一輪次的賬本具有相同的前綴;②同一參與者在不同輪次具有相同的前綴,兩者缺一不可。1.3區(qū)塊鏈的抽象模型用概率公式定義鏈質量的數(shù)學公式如下:定義3.1.4區(qū)塊鏈協(xié)議(N",C)在T環(huán)境下有一致性:對于任意I許可的<n(),p,△(),A,Z>,存在常數(shù)c和可忽略函數(shù)c和c?,使得對于VkeN,T=clogk,。

以下條件成立:Pr[view<-EXECN:O(A,Z,k):consistent“(view)=1]≥1-c(k)-c?(T),如果q=0,那么(N”,C)在T環(huán)境下有無偏一致性。顯然,一致性可以直接導出,排除在T上的可忽略概率,兩個誠實參與者的賬本長度差距最多為T。1.3區(qū)塊鏈的抽象模型由上述對區(qū)塊鏈特性的討論可以發(fā)現(xiàn),最后T個記錄不受特性約束,其安全無法保證,這反映為較長的交易確認時間。以比特幣為例,當交易進入誠實節(jié)點的賬本時,還不能保證該交易的安全,該交易所在區(qū)塊可能在隨后的過程中因為其所在分支不再是最長鏈而被誠實節(jié)點拋棄,一般認為,還需要等待6個區(qū)塊的共識時間,即約1小時后才能進行交易確認,此時再被舍棄的概率可忽略。交易確認時間的長短是區(qū)塊鏈系統(tǒng)的重要指標,影響實用性和適應性。為了更好地理解這T個記錄的行為,代入比特幣具象化,對應的現(xiàn)象為“分叉”。在PoW共識中,第一個達標者為優(yōu)勝,由于優(yōu)勝者獲勝消息傳播的延遲,不同網(wǎng)絡片區(qū)的節(jié)點可能對優(yōu)勝者有不同看法,在同一共識周期內可能產生多個優(yōu)勝者區(qū)塊,而這些節(jié)點也會在不同的優(yōu)勝者區(qū)塊之上繼續(xù)延伸賬本,使得產生不同的賬本分支,稱為“分叉”。1.3區(qū)塊鏈的抽象模型與區(qū)塊鏈類似,公共賬本可以定義為:公共賬本是一對算法(N,L),其中算法N維護本地狀態(tài)s,算法L(k,s)輸出一個有序的消息的序列m。相應地,EXEC(W)(A,Z,k)表示隨機變量,L,(view)表示在視圖view下參與者i的賬本,L(view)表示在視圖view下參與者i在第r輪次的賬本。一個公共賬本需要實現(xiàn)兩個特性:活性和恒定性。1.3區(qū)塊鏈的抽象模型(1)活性使斷言live(view,t)=1,當且僅當對于在view中任意連續(xù)t輪次r,…,r+t,存在輪次r'e[r,r+t]和參與者i,使得在view中有:①i在輪次中是誠實參與者;②i在輪次r'中收到消息m作為輸入;③對于任意在r+t輪次是誠實的參與者j,有m∈L"(view)。定義3.1.5公共賬本(N,L)在T環(huán)境下有以?(,,;)為等待時間的活性對于任意T許可的<n(),p,△(),A,Z>,存在安全參數(shù)k∈N的可忽略函數(shù)e,以下條件成立:Pr[view←EXEC△(A,Z,k):live(view,o(k,n(k),p,△(k))=1]≥1-e(k)。1.3區(qū)塊鏈的抽象模型(2)恒定性使斷言persist.(view)=1,當且僅當對于每輪次r≤|view|-△,在視圖view"中每個參與者i是誠實的,且任意位置pos≤x(view),若L(view)在位置pos包含消息m,則對于任意輪次r'≥r+△和每個誠實參與者j(參與者j也可以是參與者i),L,(view)在同一位置pos有同一消息m。定義3.1.6公共賬本(N,L)在T環(huán)境下有恒定性:對于任意I許可的<n(),p,△(),A,Z>,存在可忽略函數(shù)e,使得對于任意安全參數(shù)k∈N,以下條件成立:Pr[view←EXEC?(A,Z,k):persist.(view)=1]≥1-e(k)可以證明,區(qū)塊鏈的賬本輸出舍棄最后T(k)個記錄且N=NRUE,則可作為公共賬本使用.1.4區(qū)塊鏈的分類公有鏈公有鏈的典型特例就是去中心化的電子貨幣系統(tǒng)比特幣,任何人都可以隨時獲取比特幣系統(tǒng)內的所有數(shù)據(jù),也可以隨時作為新的節(jié)點加入比特幣系統(tǒng)的維護工作。公有鏈點數(shù)量不定,節(jié)點和用戶也常常是匿名的,一方面體現(xiàn)為一定的隱私保護能力,另一方面使得環(huán)境相對復雜,風險同時作用于區(qū)塊鏈系統(tǒng)內外。1.4區(qū)塊鏈的分類吞吐量低公眾節(jié)點魚龍混雜,帶來兩個挑戰(zhàn):其一,多個匿名節(jié)點有可能被同一蓄意攻擊者控制,系統(tǒng)需要容納大量的冗余節(jié)點,以削弱單節(jié)點的破壞力,提高安全性;其二,參與門檻不能過高,部分節(jié)點性能和穩(wěn)定性較弱,處理和傳播消息時間較慢。吞吐量低為了確保交易在賬本中穩(wěn)定存在,需要再等待多個區(qū)塊生成后才能對交易進行確認,區(qū)塊生成時間長導致交易確認時間成倍增加。以比特幣為例,為了保證區(qū)塊可以在網(wǎng)絡中充分傳播,并減少挖礦的先發(fā)優(yōu)勢,一個區(qū)塊的生成時間控制在10分鐘左右,交易確認時間達到1小時,無法支持快捷支付。1.4區(qū)塊鏈的分類資源消耗高公有鏈為了解決女巫攻擊的虛擬節(jié)點問題,使用證明類共識算法,讓節(jié)點進行資源竟賽,消耗大量資源。資源消耗高比特幣系統(tǒng)的耗電量與近乎不變的吞吐量形成鮮明對比,近年來節(jié)節(jié)攀升,甚至超過了阿根廷、荷蘭、阿聯(lián)酋等國家的用電量。這種資源消耗的趨勢由比特幣價值調節(jié),只要參與挖礦成本少于挖礦收益,就會鼓勵參與者加大資源投入,直到競爭飽和01隱私泄露公有鏈的安全來自公眾共同地、對等地維護系統(tǒng),建立在信息公開的基礎上,系統(tǒng)內的所有數(shù)據(jù)對系統(tǒng)內的所有參與者開放透明,任何人都可以獲取任意數(shù)據(jù),以便對其處理進行監(jiān)管和恢復。03回滾風險前面通過區(qū)塊鏈和公共賬本抽象模型內容對區(qū)塊鏈特性進行了討論,特別分析了最后若干區(qū)塊的行為,可以發(fā)現(xiàn),這些描述都有前提“除了可忽略情況”,通過改變參數(shù)來壓縮誤差空間,換句話說,區(qū)塊鏈系統(tǒng)不需保證特定的某筆交易一定被包含進區(qū)塊中。02抵觸監(jiān)管公有鏈建立的目的是擺脫中心化管理機構,節(jié)點對等意味著沒有任何節(jié)點擁有高于其他節(jié)點的權力,只要節(jié)點遵循公有鏈規(guī)則,不管做了什么事情,除非大多數(shù)節(jié)點協(xié)力糾正,否則其他節(jié)點均不能干預其行為。1.4區(qū)塊鏈的分類1.4區(qū)塊鏈的分類激勵設計難為鼓勵公眾參與并投入資源,自發(fā)維護系統(tǒng),公有鏈必須配套激勵機制,繞不開代幣發(fā)行。激勵設計難為了構建獨立生態(tài),代幣發(fā)行又常常與共識算法深度綁定,比特幣激勵機制設計巧妙,經過了十多年考驗,而其他公有鏈的激勵機制不乏會促使參與者發(fā)動特定攻擊的情況,如PoS的無利害關系(NothingAtStake)問題。01聯(lián)盟鏈性能提升:針對參與者類型不同的場景差異,聯(lián)盟鏈的預期節(jié)點數(shù)將遠小于公有鏈(公有鏈需要支持過萬的節(jié)點數(shù),而聯(lián)盟鏈的節(jié)點數(shù)通常不過百),而且嚴格的身份認證可以保證節(jié)點具有較好的安全性。03聯(lián)盟鏈不需激勵機制:聯(lián)盟鏈中的各方是為了業(yè)務合作而共建的,各方自覺維護已方節(jié)點,以保障在業(yè)務合作過程中的已方權益,而業(yè)務收益填補了聯(lián)盟鏈的維護成本,因此聯(lián)盟鏈不需設計激勵機制。02聯(lián)盟鏈分級管理和隱私保護:基于嚴格的身份認證,聯(lián)盟鏈可根據(jù)現(xiàn)實世界的組織層級,通過成員服務管理機制,為不同節(jié)點分配不同角色和權限,獲取不同層級的信息,并執(zhí)行不同層級的功能。1.4區(qū)塊鏈的分類1.4區(qū)塊鏈的分類私有鏈除了聯(lián)盟鏈,進一步限制節(jié)點加入的區(qū)塊鏈可稱為私有鏈,通常與聯(lián)盟鏈統(tǒng)稱為許可鏈。私有鏈不對外開放,僅在組織內部使用,也就不需考慮惡意攻擊,即不需實現(xiàn)拜占庭容錯,只需考慮部分節(jié)點突然不可用的情況,可采用更經典的崩潰容錯(CrashFaultTolerance)的分布式一致性算法。實際上,這類算法已經在服務器集群上廣泛使用,支撐起了當前大量的互聯(lián)網(wǎng)應用。鑒于區(qū)塊鏈機制復雜且每個節(jié)點都進行了賬本冗余備份,私有鏈很好地杜絕了內外部攻擊。傳統(tǒng)的分布式技術在抵御內外部攻擊和惡意行為方面比私

有鏈弱,然而在不考慮各種網(wǎng)絡攻擊和惡意行為的前提條件下,由于不需要數(shù)據(jù)冗余備份,

在具體的應用場景中表現(xiàn)出比私有鏈更好的性能。02區(qū)塊鏈的技術構架哈希算法逆向困難(單向性):無法在短時間內根據(jù)哈希值計算出原始輸入信息,是哈希算法安全性的基礎,也因此是現(xiàn)代密碼學的重要組成。哈希算法抗碰撞:弱抗碰撞性指無法短時間內找到另一個對應特定哈希值的輸入;強抗碰撞性即無法短時間內找到兩個產生同樣哈希值的輸入。哈希算法正向快速:正向即輸入計算輸出的過程,對給定數(shù)據(jù),可以在短時間內正向計算獲得哈希值,如當前常用的SHA-256算法在普通計算機上1秒鐘能做2000萬次哈希運算。哈希算法輸入敏感:輸入消息發(fā)生任何微小變化,哪怕僅僅是1比特的更改,重新生成的哈希值與原哈希值不具有相關性。2.1數(shù)據(jù)層01哈希算法的作用區(qū)塊的哈希指紋索引將區(qū)塊信息都綁定在一起,并“唯一”標識,一旦篡改任意信息,都會導致哈希指紋索引改變,與原區(qū)塊相區(qū)分。03哈希算法的作用在PoW

等共識算法中驗證證明憑證。如果想篡改區(qū)塊鏈狀態(tài)中的任何信息,意味著該信息所在區(qū)塊及其之后的所有區(qū)塊的哈希值都需重新計算,相當于建立了一個全新的區(qū)塊鏈狀態(tài)02哈希算法的作用子區(qū)塊通過引用父區(qū)塊哈希值形成了單向鏈表,且父區(qū)塊哈希值也會被概括進子區(qū)塊哈希值,使得父、子區(qū)塊哈希值間產生依賴,鎖定了“唯一”合法的引用,進而嵌套鎖定完整的區(qū)塊鏈狀態(tài)。2.1數(shù)據(jù)層2.1數(shù)據(jù)層默克爾樹由于哈希算法輸入的長度是不定的,在計算區(qū)塊哈希值時可以直接以區(qū)塊所含的所有交易作為輸入,以此保證交易難以篡改。不過,這意味著當驗證區(qū)塊鏈狀態(tài)的有效性時需要下載所有交易,并逐一處理,以重新計算區(qū)塊哈希值并完成匹對。實際上,比特幣參與者大多只關心部分特定交易,如在校驗新達成的交易時,只需追溯相關比特幣資產流通過程中的交易。那么,有沒有方法可以簡化交易驗證過程呢?比特幣引入了默克爾樹,后來的區(qū)塊鏈項目也大多繼承了該解決方案。2.1數(shù)據(jù)層數(shù)字簽名數(shù)字簽名,也稱為電子簽名,是一串字符串,通過一定算法實現(xiàn)類似傳統(tǒng)物理簽名身份認證的效果,是非對稱密鑰加密技術與數(shù)字摘要技術的應用。目前,包括歐盟、美國和中國等在內的20多個國家(或地區(qū))認可數(shù)字簽名的法律效力。2000年,新的《中華人民共和國合同法》首次確認了電子合同、數(shù)字簽名的法律效力。2005年4月1日,《中華人民共和國電子簽名法》正式實施。數(shù)字簽名在ISO7498-2標準中被定義為:“附加在數(shù)據(jù)單元上的一些數(shù)據(jù),或對數(shù)據(jù)單元所做的密碼變換,這種數(shù)據(jù)和變換允許數(shù)據(jù)單元的接收者用以確認數(shù)據(jù)單元來源和數(shù)據(jù)單元的完整性,并保護數(shù)據(jù),防止被人(如接收者)進行偽造?!?.1數(shù)據(jù)層數(shù)字簽名在數(shù)字簽名場景中,用戶預先生成一對密鑰,分為公鑰和私鑰,私鑰由用戶私下持有,公鑰公開。數(shù)字簽名算法包括簽名和驗簽兩種運算,用戶發(fā)送消息時,利用自己的私鑰對消息內容進行簽名,并將簽名附加在消息中。其他用戶收到消息后,對交易中附加的數(shù)字簽名進行驗簽,同時驗證消息的完整性和消息發(fā)送者的身份,且消息發(fā)送者無法抵賴。與傳統(tǒng)物理簽名需要專業(yè)手段鑒別不同,數(shù)字簽名算法是公開的,消息接收者只需獲取與消息發(fā)送者的私鑰相匹配的公鑰,就可以自行執(zhí)行驗簽運算進行驗證。由于在只知曉公鑰的情況下難以破解對應的私鑰,公鑰可以預先分發(fā)給任何潛在的消息接收者,因此數(shù)字簽名使用起來既便捷又經濟。01RSARSA(由RonRivest、AdiShamir、LeonardAdleman聯(lián)合提出)是目前計算機密碼學中最經典的算法,也是目前為止使用最廣泛的數(shù)字簽名算法。03ECDSAECDSA是橢圓曲線加密(ECC)算法與DSA的結合,基于橢圓曲線數(shù)學理論,具有以下優(yōu)點:①在相同密鑰長度下,安全性能更高,反之,在相同安全性能下,密鑰所需的存儲空間和傳輸流量小,如160位ECC已經與1024位的RSA、DSA具有相同的安全強度;②計算量小,處理速度快,在私鑰的處理速度上,ECC遠比RSA、DSA快。02DSADSA(DigitalSignatureAlgorithm)只是一種簽名算法,與RSA不同,不能用于加密和解密,也不能進行密鑰交換,但在控制安全參數(shù)使得兩者安全性差不多的情況下,計算遠比RSA快。2.1數(shù)據(jù)層2.2網(wǎng)絡層傳統(tǒng)的網(wǎng)絡服務架構主要是基于客戶一服務器(Client/Server,C/S)架構,即通過中心化的服務器節(jié)點或集群,對許多發(fā)送請求的客戶端進行應答和服務。C/S架構也稱為主從式架構,客戶端之間傳遞消息需要通過服務器來轉達。比如,當前流行的即時通信(InstantMessage,IM)應用大多采用C/S架構:手機端App僅被作為一個客戶端使用,客戶端之間收發(fā)信息需要依賴中心服務器,會先將消息發(fā)給服務器,再由服務器轉發(fā)給接收方手機客戶端。C/S架構的優(yōu)勢在于對服務進行管理、維護和升級十分方便,主要改進工作集中于服務器,但是其缺陷也是致命的,整個網(wǎng)絡的服務完全基于服務器的能力和信譽,服務器的性能成為整個網(wǎng)絡的瓶頸,而當服務器發(fā)生故障時,所有服務都會陷入癱瘓。2.2網(wǎng)絡層P2P網(wǎng)絡的每個節(jié)點都是平等的,與區(qū)塊鏈的分布式概念十分契合。區(qū)塊鏈要求每個節(jié)點都需要存儲包含完整賬本的區(qū)塊鏈狀態(tài),實時更新數(shù)據(jù),并據(jù)此參與維護工作。節(jié)點間不存在先驗的信任,只有節(jié)點間通過廣播的方式相互通信交換觀點,才能達成區(qū)塊鏈系統(tǒng)的共識,進而保障區(qū)塊鏈主賬本的穩(wěn)定和安全。然而,區(qū)塊鏈網(wǎng)絡是以廣播方式進行通信的,每個節(jié)點不能同時與其他節(jié)點建立穩(wěn)定的連接,只能與其他節(jié)點建立動態(tài)連接,因此存在通信盲區(qū)。日蝕攻擊(EclipseAttack)可以利用這種短暫的時間盲區(qū),先控制節(jié)點的鄰居節(jié)點,然后進行廣播與目標節(jié)點進行通信并控制目標節(jié)點,這樣可以屏蔽一部分網(wǎng)絡節(jié)點的通信,形成腐蝕的網(wǎng)絡分區(qū)。2.2網(wǎng)絡層區(qū)塊鏈網(wǎng)絡要求每個節(jié)點存儲完整的賬本,以便達成共識,但實際上部分節(jié)點只關注賬本的部分信息,并不想?yún)⑴c區(qū)塊鏈系統(tǒng)完整的維護工作,輕量級節(jié)點和節(jié)點分工的概念應運而生。在以太坊alpha版本中,節(jié)點分為三類:輕節(jié)點(LightPeers),維護輕錢包,以控制地址和賬戶;標準節(jié)點(StandardPeers),維護部分區(qū)塊鏈,以支持輕節(jié)點;對等交換機(PeerExchanges),維護完整區(qū)塊鏈以提供區(qū)塊鏈分析服務。在HyperledgerFabric中,節(jié)點分為排序節(jié)點和背書節(jié)點:排序節(jié)點負責交易排序,背書節(jié)點負責記賬和驗證。2.3共識層基礎區(qū)塊鏈協(xié)議分為兩個過程:交易廣播和區(qū)塊共識。在交易廣播過程中,用戶自行選擇節(jié)點提交交易,節(jié)點按協(xié)議將驗證通過的交易廣播到其他所有節(jié)點,每個節(jié)點在自己的交易池(MemoryPool/TransactionPool)中緩存未入鏈賬本的所有交易?,F(xiàn)階段區(qū)塊鏈系統(tǒng)使用的共識算法多種多樣,除了私有鏈忽略惡意節(jié)點的攻擊,其他共識算法都需要實現(xiàn)拜占庭容錯(BFT),在去中心化的環(huán)境下抵御惡意節(jié)點的攻擊并達成共識。拜占庭節(jié)點是指一個可能呈現(xiàn)任意行為的節(jié)點,任意行為可以是不發(fā)送消息,向不同鄰居發(fā)送不同且錯誤的消息,謊報自己的輸入值,偶爾遵循協(xié)議。若一個算法能夠在存在f個拜占庭節(jié)點的情況下正確工作,則被稱為f適應(f-resilient)。區(qū)塊鏈系統(tǒng)使用的拜占庭容錯共識算法主要可以歸類為三類:證明類(PoX)共識算法、投票類算法、結合可信執(zhí)行環(huán)境的共識算法。01證明類共識算法證明類共識算法主要包括比特幣采用的PoW

共識及其變種PoS

等,即大家熟知的“挖礦"類算法。03結合可信執(zhí)行環(huán)境的共識算法上述兩類共識算法的信任都來源于巧妙設計的協(xié)議,即使惡意攻擊者偏離協(xié)議,只要誠實節(jié)點遵循協(xié)議就可以與其他誠實節(jié)點保持一致。除此之外,有些共識算法直接通過硬件規(guī)范節(jié)點行為,限制拜占庭攻擊,常使用可信執(zhí)行環(huán)境(TrustedExecutionEnvironment,TEE)。02投票類共識算法證明類共識算法都是基于身份認證服務的,雖然限制了節(jié)點在系統(tǒng)中的自由進出,但是使得女巫攻擊不再成為問題,可以直接使用不可偽造的身份作為信用來源。2.3共識層2.4激勵層區(qū)塊鏈系統(tǒng)需要大量節(jié)點參與維護,而設備、場地、電力等資源都需要購買和維護成本,特別對于公有鏈而言,只有構建一套完善的激勵機制才能鼓勵越來越多的節(jié)點加入?yún)^(qū)塊鏈系統(tǒng),加強區(qū)塊鏈系統(tǒng)的安全性。同時,良好的激勵機制可以懲罰和抑制某些攻擊行為,而糟糕的激勵機制會驅使理性節(jié)點偏離協(xié)議作惡。隨著比特幣的價值上升,挖礦能獲得更多收益,更多的人加入礦工群體,總算力增加,短期內區(qū)塊出塊時間更短。為了保持出塊時間的穩(wěn)定,根據(jù)約定的難度調節(jié)算法,解題難度會相應調節(jié)得更高,導致挖礦代價也變得更加昂貴。在理想情況下,當區(qū)塊的創(chuàng)建成本等于所得的報酬時,系統(tǒng)將達到平衡。更多的礦工和更多的算力使得51%攻擊的門檻更高,更高的比特幣價值意味著更好的安全性,更好的安全性反過來支撐起更高的比特幣價值。2.4激勵層礦池(MiningPool)將礦工的計算資源整合在一起,挖礦報酬在成員之間分配。礦池比每個礦工單打獨斗的算力大得多,挖到的區(qū)塊的概率也大得多,能夠更頻繁地向參與礦工支付小額的報酬。礦池服務器將正在處理的下一個區(qū)塊頭發(fā)送給礦池成員,成員一起求解相應的密碼學難題,報酬分配給礦池中有貢獻的成員。礦池引入?yún)^(qū)塊鏈生態(tài)后,礦池與其成員的博弈、礦池之間的博弈都需要加以考慮,只有良好設計的貢獻衡量方法和報酬分配方法才可以有效解決跳池攻擊(PoolHoppingAttack)、區(qū)塊滯留攻擊(Block-withholdingAttack)等問題,礦池才得以可持續(xù)發(fā)展。在區(qū)塊鏈網(wǎng)絡中,礦池整體作為一個節(jié)點,導致區(qū)塊鏈系統(tǒng)的節(jié)點減少,與去中心化的愿景相違背,會降低區(qū)塊鏈系統(tǒng)的安全性。2.5合約層1995年,NickSzabo提出了智能合約的概念,對智能合約的定義為:“一個智能合約是一套以數(shù)字形式定義的承諾,包括合約參與方可以在上面執(zhí)行這些承諾的協(xié)議?!敝悄芎霞s是一種在滿足一定條件時就自動執(zhí)行的計算機程序,且合約參與者對預期執(zhí)行結果達成共識,保障的是確定性和一致性。傳統(tǒng)合約在生活中處處可見:租賃合同、借條等,依靠法律進行背書,當產生違約及糾紛時,往往需要借助法院和公安等司法和執(zhí)法機構的力量進行裁決和執(zhí)行。類似地,智能合約也會強制執(zhí)行,不同的是,以數(shù)字形式存在,由計算機協(xié)議執(zhí)行。智能合約不僅是將傳統(tǒng)合約電子化,真正的意義在于將傳統(tǒng)合約的背書和執(zhí)行由法律及相關機構替換成了死板的協(xié)議和代碼,沒有解釋空間,只會嚴格執(zhí)行。2.5合約層區(qū)塊鏈節(jié)點為不同實體所擁有,其部署設備和系統(tǒng)并不統(tǒng)一,為了在不同環(huán)境下確保一致的執(zhí)行結果,區(qū)塊鏈智能合約機制常常有相應的虛擬機支持。用智能合約語言編寫的智能合約在開發(fā)完成后編譯為字節(jié)碼,虛擬機則通過執(zhí)行字節(jié)碼運行智能合約。虛擬機需要根據(jù)設備和系統(tǒng)獨立開發(fā),將智能合約翻譯成同樣的字節(jié)碼,確保智能合約的執(zhí)行在各節(jié)點保持一致。以太坊虛擬機(EVM)是以太坊協(xié)議的一部分,用來處理智能合約的部署和執(zhí)行。除了在外部賬戶(EnternalOwneredAccount)之間的簡單轉賬交易,其他所有涉及賬本狀態(tài)更新的操作都是通過EVM計算來實現(xiàn)的。從高層抽象的角度,運行在以太坊上的EVM是一個包含了數(shù)百萬副本的全球化去中心計算機,具有極高的可用性。每個節(jié)點都有一個EVM副本,每個副本都獨立存在,不存在單點崩潰的問題。2.6應用層預言機(Oracle)服務實現(xiàn)向區(qū)塊鏈輸入系統(tǒng)外的可信的信息,以實現(xiàn)部分智能合約和應用。這些信息可以分為兩類:現(xiàn)實世界信息,如匯率和天氣預報等,由外部可信源提供;另一類信息是隨機數(shù),是許多應用的前提需求。區(qū)塊鏈為了維持共識,其執(zhí)行結果總是唯一且可預測的,這導致在區(qū)塊鏈系統(tǒng)內部隨機數(shù)極難產生且易受干擾,一種解決方式就是通過預言機從外部輸入可信的隨機數(shù)。2.6應用層區(qū)塊鏈的用戶不一定是區(qū)塊鏈的維護者,可以是區(qū)塊鏈節(jié)點的擁有者,也可以是挖礦的收益者,其區(qū)塊鏈資產來源于與其他區(qū)塊鏈用戶的交易。區(qū)塊鏈交易所方便了區(qū)塊鏈用戶交易區(qū)塊鏈資產,盤活了區(qū)塊鏈經濟。區(qū)塊鏈工具隨著區(qū)塊鏈生態(tài)的蓬勃發(fā)展不斷更新迭代,除了上述,還有區(qū)塊鏈API和SDK、智能合約IDE等,極大地降低了用戶和開發(fā)者參與區(qū)塊鏈生態(tài)的門檻,方便了用戶和開發(fā)者對區(qū)塊鏈的使用和維護。03區(qū)塊鏈拓展3.1應用拓展比特幣開展了一場規(guī)模空前的加密數(shù)字貨幣實驗,并驗證了區(qū)塊鏈方案的可行性,于是乎各類從比特幣衍生出的各種加密數(shù)字貨幣。然而,比特幣暴露出三大問題:能耗過高、吞吐量過低和通用性不足。比特幣挖礦所需的電力資源龐大,但沒有產生額外的價值;比特幣作為全球化系統(tǒng)卻只支持每秒7筆交易,交易確認需要大約1小時,不能滿足高吞吐量低時延應用的需求;比特幣內置的腳本系統(tǒng)非圖靈完備,可以實現(xiàn)的邏輯和功能有限,若要拓展應用能力,需要直接定制化改造比特幣系統(tǒng),否則難以滿足非加密數(shù)字貨幣類應用的需求。為了拓展應用范圍,后續(xù)的區(qū)塊鏈系統(tǒng)對比特幣腳本系統(tǒng)非圖靈完備缺陷和比特幣系統(tǒng)高耗能問題進行了創(chuàng)新改進。以太坊引入了智能合約機制,支持圖靈完備的智能合約語言,2022年9月15日,以太坊從PoW共識轉向了PoS共識,能耗降低到原來的百分之一,同時提高吞吐量為原來的百倍。3.2性能拓展為了解決吞吐量過小的問題,最直接的方法是對區(qū)塊大小進行擴容。更大的區(qū)塊可以容納更多交易,在出塊時間相同的情況下,就可以獲得更大的吞吐量。隔離見證(SegregatedWitness,常簡寫為SegWit)將簽名信息(也稱為見證信息)存儲在基本交易塊(BaseTransactionBlock)之外。區(qū)塊擴容增加分支多通道。與分片類似,作為聯(lián)盟鏈的代表,HyperledgerFabric項目把賬本分成多個通道。增加分支子鏈(Subchain)。比側鏈更進一步,任何人都可以在底層區(qū)塊鏈之上創(chuàng)建子鏈,子鏈可以使用與主鏈完全不同的運行機制。增加分支分片(Sharding)。從數(shù)據(jù)庫獲得靈感,以太坊把區(qū)塊鏈狀態(tài)分成多個分片,每個分片都有自己的交易歷史,且在某分片中的交易只影響該分片的狀態(tài)。增加分支側鏈(Sidechain)。在原區(qū)塊鏈外建立一條附屬的側鏈可以提高性能,不過相比于提高吞吐量,其意義更在于實現(xiàn)額外的功能。3.2性能拓展3.2性能拓展區(qū)塊鏈三元悖論指出,高效性、去中心化和安全性不可能同時取得最佳,提高其中某一個指標必然以損害另一個或者兩個作為代價。安全性是區(qū)塊鏈的核心特征,常常在去中心化和高效性中取得平衡,以“準去中心化”或者“多中心化”來換取高效性。隨機委員會基于可驗證隨機函數(shù)(VerifiableRandomFunction,VRF),Algorand在共識過程的每輪每回合中都從全部節(jié)點中隨機選出部分節(jié)點,組成委員會,進行共識協(xié)商。共識參與節(jié)點數(shù)量減少可以提高共識達成速度和系統(tǒng)可容納節(jié)點數(shù)量,而安全性下界的降低是可以接受的。共識算法多樣化3.2性能拓展隨著智能合約與區(qū)塊鏈結合,智能合約在區(qū)塊鏈系統(tǒng)中已經不可或缺。智能合約的執(zhí)行機制、虛擬機實現(xiàn)、計費方法、編寫模式、自動審查等都是值得深入研究的課題,更高效、更實用的智能合約會反哺區(qū)塊鏈系統(tǒng)的發(fā)展。從比特幣逆波蘭表達式到圖靈完備編程語言的智能合約,從以太坊合約賬戶存儲智能合約到Fabric系統(tǒng)鏈碼實現(xiàn)系統(tǒng)功能,從順序執(zhí)行到百度XuperChain事務DAG圖并行化執(zhí)行,智能合約升華了區(qū)塊鏈技術,使其從公共賬本轉變?yōu)楣灿嬎銠C,隨著與人工智能技術結合,有望成為“公共大腦”,進行公共資源和共享資源的管理和調度,如GOLEM和SingularityNET等。智能合約優(yōu)化3.2性能拓展對等網(wǎng)絡。與區(qū)塊鏈類似,IPFS沒有中心化控制,具有單點容錯的特性。數(shù)據(jù)分散存儲在多臺獨立設備中,能解決單點崩潰和數(shù)據(jù)丟失的問題。對等網(wǎng)絡還可以減少帶寬消耗,用戶可以從分散的節(jié)點并行下載所需資源。內容尋址。IPFS不關心從哪里下載,只關心下載內容是否所需內容,會自動從已有所需資源的節(jié)點中下載該資源;同時,內容唯一標識符根據(jù)內容的哈希函數(shù)值生成,能自我驗證內容是否正確。與分布式存儲系統(tǒng)結合3.2性能拓展圖結構創(chuàng)新綜合所有節(jié)點的視圖,區(qū)塊鏈其實是樹結構,按照最長(重)鏈協(xié)議,以最長鏈為唯一合法主鏈。部分研究者嘗試將樹結構拓展到有向無環(huán)圖(DirectAcyclicGraph,DAG)結構,代表有Dagcoin、IOTA、Byteball。合法交易不再限于唯一主鏈,分支交易也具有初步的合法性,這樣,從同步記賬提升到異步記賬,嘗試解決傳統(tǒng)區(qū)塊鏈的高并發(fā)問題,是區(qū)塊鏈容量和速度的一次革新。異步記賬使得區(qū)塊結構也不需要加以保留,直接以交易作為共識算法中的數(shù)據(jù)結構的基礎單位,極大提升了交易進入共識環(huán)節(jié)的速度,加速支付過程。01特點交易速度快。DAG實現(xiàn)的局部處理和并行結算可以使得交易速度大幅度提升。03特點作惡難度大。相比于鏈式結構,在DAG中惡意修改的難度會大很多,因為DAG中的交易節(jié)點擁有著很多的出度和入度,不再是鏈結構的單入單出,如果修改某節(jié)點,那么對應的所有出度和入度都要隨之修改。02特點拓展性強。各節(jié)點不需等待同步其他的節(jié)點的數(shù)據(jù)即可生成證明憑證并延展賬本,對總節(jié)點數(shù)不敏感,因此DAG適用于物聯(lián)網(wǎng)等大量節(jié)點的項目,如機器微支付。3.2性能拓展04區(qū)塊鏈的經典框架4.1以太坊外部擁有賬戶(ExternallyOwnedAccount,EOA):由私鑰控制,一般是給用戶分配的賬戶,用戶可以創(chuàng)建自己的私鑰并對交易進行簽名。外部擁有賬戶可以給另一個外部擁有賬戶或合約賬戶發(fā)送消息,并且可以觸發(fā)合約賬戶激活或執(zhí)行其對應的合約代碼。合約賬戶(ContractAccount):由合約代碼控制且只能由一個外部擁有賬戶操作。合約賬戶不能發(fā)起交易,只有在收到來自一個外部擁有賬戶或另一個合約賬戶的交易后,才可以觸發(fā)另一合約賬戶,以完成交易。也就是說,任意交易總是被外部擁有賬戶發(fā)起,合約賬戶負責執(zhí)行或觸發(fā)下一個合約賬戶來完成交易。以太坊賬戶管理4.1以太坊隨機數(shù)(Nonce):指定唯一一個合約代碼,以確保每個交易只會被處理一次。賬戶余額(Balance):賬戶當前的以太幣余額。賬戶合約代碼(codeHash):對于合約賬戶,是此賬戶的合約代碼的哈希值,哈希值實際上是一串字符;對于外部擁有賬戶,是一個空字符串。存儲(storageRoot):賬戶轉態(tài)Merkle樹根節(jié)點的哈希值,通常默認為空值。以太坊賬戶的組成4.1以太坊以太坊采用的共識算法稱為Bthash算法。Ethash算法是基于工作量證明(PoW)的一個共識算法,其前身為DaggerHashimoto算法,本質上與比特幣挖礦機制一樣,需要尋找符合條件的隨機數(shù)來生成新的區(qū)塊,證明自己的工作量。該公式的基本含義是,用hash和Nonce生成的哈希值必須落在[0,MaxValue/Difficulty]的合法區(qū)間。Ethash的挖礦流程是節(jié)點虛擬機開啟多個線程并分配給各線程一個隨機數(shù),去尋找符合條件的Nonce。以太坊挖礦與共識算法4.1以太坊以下介紹以太坊挖礦的主要組件和函數(shù)。①挖礦入口函數(shù)Seal():挖礦引擎的入口,負責管理挖礦的線程,啟動、更新或停止挖礦線程。②挖礦函數(shù)Mine(:負責挖礦,先根據(jù)相關區(qū)塊的內容給挖礦線程分配一個種子(Seed),會把種子作為Nonce的初始值,然后使用緩存(Cache)生成偽隨機數(shù)集成為數(shù)據(jù)集(Dataset),偽隨機數(shù)數(shù)據(jù)集會傳到Rand()哈希函數(shù),以計算出符合條件的Nonce。③緩存數(shù)據(jù)集和偽隨機數(shù)數(shù)據(jù)集。緩存數(shù)據(jù)集存放的都是偽隨機數(shù),緩存會在每個周期(每個周期大概幾千到3萬個區(qū)塊)更新一次,通過哈希計算和異或運算生成基于DAG結構的偽隨機數(shù)數(shù)據(jù)集。該偽隨機數(shù)數(shù)據(jù)集作為哈希運算結果的驗證。④哈希運算Rand(:實現(xiàn)為HashhimotoFull()和himoto()函數(shù),隨機從偽隨機數(shù)數(shù)據(jù)集選取元素,同時將哈希值和Nonce傳入HashhimotoFull(),對其進行哈希,最后驗證輸出結果是否符合指定的難度要求。

01模塊化設計項目的架構設計建立在可擴展的框架基礎上,確保單個模塊的更改不會影響整個系統(tǒng),并保障新功能可以容易擴展。03規(guī)范化應用程序接口與系統(tǒng)互操作性各項目提供豐富且易用的應用程序接口,確??蛻舳嘶驊每梢钥焖僬{用超級賬本的核心賬本底層模塊,并支持與其他系統(tǒng)進行互操作功能。02高度安全性超級賬本的各子項目和模塊包括共識算法、協(xié)議、模塊設計、密碼包工具等,需要經過開放社區(qū)和專家的檢驗審查,以保障交易和隱私數(shù)據(jù)的安全。4.2HyperledgerFabric01超級賬本的5個框架Burrow提供了具有權限控制的通用智能合約執(zhí)行引擎,其智能合約編譯器遵循EVM協(xié)議規(guī)范。03超級賬本的5個框架Indy是一個基于分布式賬本的分布式身份管理平臺,為分布式賬本系統(tǒng)提供構建數(shù)字身份的基礎模塊。02超級賬本的5個框架

Fabric是一個面向企業(yè)級各種應用場景的分布式賬本框架,提供了可插拔的共識算法、成員管理、權限管理等組件,并利用虛擬化技術來執(zhí)行被稱為“鏈碼”的智能合約,以支撐系統(tǒng)的業(yè)務邏輯。4.2HyperledgerFabric4.2HyperledgerFabricIroha主要是面向移動應用開發(fā)的區(qū)塊鏈平臺,提供了基于C++領域驅動設計的簡單框架架構,可以為很多需要分布式賬本基礎設施的項目提供服務。

Sawtooth是一個面向開發(fā)、部署、運維分布式賬本的區(qū)塊鏈平臺,使用可信執(zhí)行環(huán)境(TEE)和零知識證明來支持安全隱私的交易模式,同時支持并行的交易處理,大大提高了區(qū)塊鏈整體系統(tǒng)的性能。超級賬本的5個框架01HyperledgerFabric的功能資產管理:資產可以以鍵值(key-value)對結構進行存儲和表示,可以通過提交交易鏈碼去更改特定的資產。03HyperledgerFabric的功能分布式賬本功能:提供內置的分布式賬本,用作平臺中所有狀態(tài)轉移的記錄,并且支持豐富的賬本操作和底層狀態(tài)賬本的數(shù)據(jù)庫引擎。02HyperledgerFabric的功能鏈碼管理:采用以Docker為主的虛擬化技術作為鏈碼的執(zhí)行環(huán)境,為鏈碼開發(fā)和部署提供便利和靈活性,同時確保用戶本地數(shù)據(jù)與鏈碼的執(zhí)行環(huán)境相互隔離,保護各環(huán)境中的數(shù)據(jù)安全。4.2HyperledgerFabric04HyperledgerFabric的功能隱私保護:用戶在同一個區(qū)塊鏈中可以通過通道(channel)進行數(shù)據(jù)和業(yè)務上的隔離,同時支持安全的數(shù)據(jù)加密傳輸和跨業(yè)務的處理機制。06HyperledgerFabric的功能成員管理:為區(qū)塊鏈網(wǎng)絡節(jié)點提供基于PKI公鑰的身份證書管理功能。05HyperledgerFabric的功能模塊化的共識算法:提供可插拔的共識算法組件,通過設置策略和驗證條件交易來完成整個生命周期的驗證。4.2HyperledgerFabricHyperledgerFabric數(shù)據(jù)包交易簽名:交易發(fā)起者(一般是客戶端應用程序)構建的加密簽名,用來判斷交易是否合法、發(fā)起者的身份認定等。HyperledgerFabric數(shù)據(jù)包交易提案響應:智能合約執(zhí)行后的輸出,包括交易前后的世界狀態(tài),以讀寫集語義展示。HyperledgerFabric數(shù)據(jù)包交易頭:主要包含交易相關的元數(shù)據(jù),如鏈碼名稱、Fabric版本等。HyperledgerFabric數(shù)據(jù)包交易提案:主要對鏈碼的輸入?yún)?shù)進行編碼并在鏈碼運行時負責傳遞編碼的參數(shù)。4.2HyperledgerFabric交易流程執(zhí)行提案并進行背書:背書節(jié)點在收到交易提案后將其進行驗證,通過后根據(jù)當前的賬本數(shù)據(jù)通過執(zhí)行鏈碼代碼邏輯生成讀寫集并進行簽名,然后生成提案響應并返回給客戶端。交易流程構造交易請求并發(fā)送給排序服務節(jié)點:客戶端收到所有背書節(jié)點的簽名后,通過調用SDK將交易提案。交易流程客戶端發(fā)起交易提案:用戶通過應用程序的客戶端節(jié)點構造好交易提案(Proposal),包括本交易需調用的合約、合約參數(shù)和用戶簽名等信息,然后向背書節(jié)點提交交易提案。交易流程收集交易的背書:客戶端節(jié)點收到來自背書節(jié)點的提案響應后對其簽名進行驗證。4.2HyperledgerFabric4.3EOSEOS是Block.One公司研發(fā)的一種區(qū)塊鏈底層系統(tǒng)框架,為去中心化應用(Decent-ralizedApplication,DApp)的開發(fā)提供底層的模板并實現(xiàn)分布式應用的性能擴展。多個應用可以在EOS區(qū)塊鏈底層平臺上同時運行,因此EOS通常被看成一款商用級的區(qū)塊鏈操作系統(tǒng)。目前的公鏈系統(tǒng)普遍存在轉賬吞吐量低、安全性低、系統(tǒng)并發(fā)能力差、轉賬手續(xù)費高、開發(fā)難度過高等問題,問題阻礙了區(qū)塊鏈系統(tǒng)的商業(yè)化應用。EOS是為了解決這些問題而生的,主要提供異步通信的并行鏈方式并采用BFT-DPoS(ByzantineFaultTolerance-DelegatedProofofStake)共識算法機制,可以支持每秒百萬級別的交易處理。EOS是基于石墨烯區(qū)塊鏈底層(GrapheneBlockchainLibrary)架構設計的,主要包括應用層(Programs)、插件層(Plugins)、庫函數(shù)層(Libraries)、智能合約層(Contracts)。其優(yōu)點是高度模塊化和可擴展性,將分布式應用程序封裝成一系列的可執(zhí)行程序,提高了節(jié)點之間的通信能力和動態(tài)調用,極大降低了開發(fā)難度,并有利于分布式應用程序的部署。

4.3EOS

4.3EOSEOS共識算法與治理EOS提供了社區(qū)的自治治理機制。自治社區(qū)通過定義“憲法”給社區(qū)制定明確的規(guī)則,并以系統(tǒng)提供的算法來判斷出現(xiàn)的錯誤是否確實存在,以及社區(qū)對規(guī)則的修復是否正確。當系統(tǒng)算法無法做出決策時,社區(qū)可以再通過投票等機制達成共識,并對“憲法”和相關規(guī)則進行修復,根據(jù)約定的協(xié)議提出硬分叉的系統(tǒng)升級。EOS使用內置的WebAssembly虛擬機來支持智能合約的編譯,因此可以使用標準的C/C++/Rust等高級語言編寫智能合約。EOS的智能合約在節(jié)點上進行登記注冊和執(zhí)行。

4.4IOTAIOTA概述隨著物聯(lián)網(wǎng)的快速發(fā)展,傳統(tǒng)的區(qū)塊鏈系統(tǒng)如比特幣,以及區(qū)塊鏈2.0為代表的以太坊、Fabric等,區(qū)塊鏈3.0為代表的EOS不能有效地處理高吞吐量的交易,也不能夠很好地滿足物聯(lián)網(wǎng)中的小額支付的需求。這些區(qū)塊鏈系統(tǒng)可能存在兩方面的缺陷:一是高額的支付手續(xù)費用,針對小額支付場景,支付手續(xù)費用的比例相對變得很高;二是用戶節(jié)點角色,如比特幣需要有不同的節(jié)點角色,礦工負責驗證交易和普通用戶發(fā)起交易。異質的節(jié)點角色導致系統(tǒng)變得復雜龐大,用戶需要維護多個節(jié)點或角色,造成沖突的可能性變大,導致資源利用上的浪費。針對上述問題設計出一個全新的區(qū)塊鏈底層數(shù)據(jù)結構和交易處理機制,為物聯(lián)網(wǎng)等領域的應用提供高效、高吞吐量、無交易手續(xù)費的區(qū)塊鏈底層框架,即IOTA(InternetofThingsArchitecture,基于物聯(lián)網(wǎng)的架構)。

4.4IOTA與一般的區(qū)塊鏈的數(shù)據(jù)結構不同,IOTA采用的不是單向連續(xù)的鏈式架構,而是基于有向無環(huán)圖結構(DAG)作為底層的區(qū)塊鏈數(shù)據(jù)結構(如圖3-7所示),稱為Tangle。Tangle是由站點和節(jié)點組成的。站點相當于有向無環(huán)圖結構的頂點,代表交易,而節(jié)點是可以發(fā)起交易的用戶節(jié)點本身。

4.4IOTATangle的基本原則是,每筆新發(fā)起的交易必須完成前兩筆舊交易的驗證,因此IOTA沒有特定的礦工,每個用戶需要驗證已有的交易才能夠發(fā)起新的交易。每個節(jié)點代表一個交易,隨著用戶的加入,交易數(shù)量也會不斷增加,新的交易意味著已有交易的確認,因此交易完成的吞吐量會變得越來越大?;贒AG的設計能夠實現(xiàn)高吞吐量的另一個因素就是交易的平行驗證,由于DAG結構可以讓新的交易可以從任何節(jié)點擴展(只要不造成環(huán)結構),因此不同用戶可以在同一時間對不同的交易進行驗證。關于交易的驗證,Tangle沒有規(guī)定要選擇哪筆交易進行驗證,節(jié)點可以根據(jù)所在的地區(qū)或社區(qū)選擇參考制定的規(guī)則作為交易驗證的選擇。未獲得驗證的新交易稱為Tip。

4.5FilecoinIPFS是一種點對點的分布式文件系統(tǒng),可以理解成一個P2P文件傳輸協(xié)議,結合了分布式哈希、P2P傳輸和版本管理系統(tǒng),是實現(xiàn)可快速索引且具有版本管理的去中心化文件系統(tǒng)。HTTP目前存在一些問題,即四大痛點。首先,效率低下,服務成本相當昂貴,HTTP只能從一臺服務器一次連接下載一個文件,不能從多臺服務器獲取多個文件。其次,歷史文件容易被刪除或丟失,Web網(wǎng)頁的平均壽命較低,大量文件不能長期保存,由于過于中心化的存儲方式和缺乏數(shù)據(jù)的分發(fā)備份,有些重要文件可能永遠在互聯(lián)網(wǎng)消失了。再次,過度中心化的網(wǎng)絡結構,容易被控制,易受單點攻擊等,限制了應用的發(fā)展。

4.5Filecoin

Filecoin協(xié)議的底層系統(tǒng)由以下2個模塊組成,每個模塊包含2個基本組件,共計4個基本組件:存儲市場、檢索市場、復制證明、時空證明。①去中心化存儲網(wǎng)絡(DecentralizedStorageNetwork,DSN):由存儲市場和檢索市場組成的去中心化交易所,用戶(使用者)和礦工(數(shù)據(jù)提供者)設定所要求服務的價格,并將其訂單提交到市場。②存儲證明方案:驗證礦工是否按服務要求存儲規(guī)定的數(shù)據(jù),包括復制證明(Proof-of-Replication)和時空證明(Proof-of-Spacetime)。對于存儲礦工而言,大概的挖礦流程如下:首先,存儲礦工需提交抵押,以保證提供指定的存儲服務,然后從存儲市場獲取存儲服務請求,并向交易所提交報價訂單;若交易達成,則存儲礦工需將數(shù)據(jù)存儲到礦工的硬件上,然后生成相關的存儲證明,并發(fā)布到區(qū)塊鏈中,由網(wǎng)絡來驗證。

01BAFFLE的聯(lián)邦學習全過程用戶從區(qū)塊鏈獲取最新的全局模型并與本地當前的模型聚合得到平均模型,然后使用平均模型對本地數(shù)據(jù)迭代訓練獲得新的本地模型。03BAFFLE的聯(lián)邦學習全過程智能合約選取分數(shù)最高的模型組塊,然后調用另一個智能合約,把這些模型組塊更新到全局模型。02BAFFLE的聯(lián)邦學習全過程各用戶把本地模型分成若干模型組塊,并隨機選取一部分模型組塊,然后對每個模型組塊計算出其分數(shù),分數(shù)最高的模型組塊才會被選取,用于全局模型的更新。4.6BAFFLE05基于區(qū)塊鏈的數(shù)據(jù)共享5.1區(qū)塊鏈自身難度適應數(shù)據(jù)共享場景與分布式一致性算法不同,區(qū)塊鏈協(xié)議通過區(qū)塊的時序鏈結構對歷史進行了保護,不同時間的后來者查看歷史時,其獲得的信息一致。人們可以通過任意的誠實節(jié)點了解到從創(chuàng)世區(qū)塊開始到近期的明晰的歷史進程,區(qū)塊鏈的狀態(tài)改變是有據(jù)可查的。無可避免地,區(qū)塊鏈要求其節(jié)點保存從創(chuàng)世區(qū)塊開始的整條主鏈甚至額外包括部分分支的數(shù)據(jù),而這些數(shù)據(jù)隨著時間流逝將會越來越多。若單個區(qū)塊的數(shù)據(jù)量很大,周期的共識將很快將區(qū)塊鏈數(shù)據(jù)膨脹到現(xiàn)有存儲設備難以接受的大小。節(jié)點運維成本上升,設備門檻卡住了更多節(jié)點的加入,區(qū)塊鏈的安全也會受到制約。區(qū)塊大小受限,則單條記錄的數(shù)據(jù)量受限,可容納的記錄數(shù)量也會受限。除了基礎數(shù)據(jù)結構的制約,區(qū)塊鏈的共識算法也使得其數(shù)據(jù)共享效率十分低下。區(qū)塊鏈需要所有節(jié)點達成一致,首先需要把數(shù)據(jù)都分發(fā)給所有節(jié)點,其次通過決策過程完成統(tǒng)一。聯(lián)盟鏈采用了傳統(tǒng)的分布式一致性算法,共識常常需要多輪的投票達成。而在公有鏈中,最長鏈原則巧妙地把共識決策融入流言協(xié)議的數(shù)據(jù)傳播過程,減少了共識互動,但仍然不可避免交易和區(qū)塊的全量分發(fā)。無論何種區(qū)塊鏈都對現(xiàn)有的網(wǎng)絡設備帶寬提出了巨大的挑戰(zhàn)。

5.2區(qū)塊鏈實現(xiàn)數(shù)據(jù)共享安全性優(yōu)化數(shù)據(jù)共享研究歷史悠久,互聯(lián)網(wǎng)技術日新月異,離不開大眾對數(shù)據(jù)共享的需求。不同的數(shù)據(jù)共享技術滿足了不同應用場景下的需求,教條地使用技術框架會制造大量麻煩,在實際應用中必須實事求是,從應用需求出發(fā),尋找合適的技術來搭建系統(tǒng)。迅雷和網(wǎng)盤等數(shù)據(jù)共享工具集成了各式各樣的數(shù)據(jù)共享協(xié)議,面對不同的應用場景。BitTorrent協(xié)議與區(qū)塊鏈一樣采用了P2P網(wǎng)絡架構,人人為我,我為人人,下載者在下載內容的同時上傳已下載的內容給其他下載者,提高共享速率。IPFS進一步優(yōu)化,去除了中心化尋址節(jié)點,用戶不再需要先獲取種子文件,只需要知道文件哈希即可下載內容。網(wǎng)盤、COS等是由云供應商提供的云存儲服務,用戶不用關心存儲細節(jié),由云供應商保障可用性,進而實現(xiàn)數(shù)據(jù)共享。既然已經存在滿足各種應用需求的合適好用的數(shù)據(jù)共享工具和技術,沒有必要舍本逐末,以區(qū)塊鏈一個技術覆蓋所有數(shù)據(jù)共享功能。

隱私保護與數(shù)據(jù)共享技術第四章區(qū)塊鏈與數(shù)據(jù)共享

01隱私保護簡介1.1隱私概念和數(shù)據(jù)匿名

隱私是一種與公共性相對的概念,指的是某些信息或行為是私有的、保密的或不愿意披露的。根據(jù)維基百科的定義,隱私是個人或團體能夠將自己或自己的屬性隱藏起來,從而可以有選擇地表達自己。具體什么被視為隱私,不同的文化或個體可能有不同的理解,但主要思想是一致的,即某些數(shù)據(jù)是某個人(或團體)的隱私通常意味著這些數(shù)據(jù)對他們來說是特殊的或敏感的。

為了明確隱私的概念,我們給出隱私的一般屬性。隱私一般存在兩種相互關聯(lián)的屬性:保密性和匿名性。保密性涉及其他人可能收集到的關于個人的信息,而匿名性涉及個人在計算機或網(wǎng)絡中的真實身份的暴露程度。1.1隱私概念和數(shù)據(jù)匿名

隱私保護的概念與匿名技術之間有著悠久歷史和密不可分的關系,在許多情況下,隱私與“匿名”(Anonymous)的定義和概念是等價的。1998年,Samarati和Sweeney提出了匿名化的概念,為隱私保護技術的發(fā)展奠定了基礎。我們在此討論的匿名度量通常是針對特定的數(shù)據(jù)匿名化方法定義的,目前主要使用三種方法:隨機擾動、數(shù)據(jù)泛化和數(shù)據(jù)抑制。

另一種數(shù)據(jù)匿名化的方法就是數(shù)據(jù)泛化,通常應用于層次結構數(shù)據(jù)中,實際中通常與數(shù)據(jù)抑制方法結合使用。假設數(shù)據(jù)域具有自然的層次結構,如郵政編碼可以認為具有樹結構,郵政編碼1230*是12301的父級,而123*是1230*的祖先,以此類推。在這樣的層次結構下,用它們的(公共)父項的值可以替換它們的值,從而概括了它們的共同屬性。1.2隱私衡量方法

在隱私數(shù)據(jù)的量化過程中,需要綜合考慮用戶的屬性、行為,以及數(shù)據(jù)的屬性、傳播途徑、利用方式等相關因素,才能對隱私數(shù)據(jù)的計算和保護提出相對較好的支撐方案。隱私數(shù)據(jù)的量化方法很多,其中一種常見的方法是使用可信度指標對隱私數(shù)據(jù)進行量化,即基于數(shù)據(jù)發(fā)布方、數(shù)據(jù)存儲方和數(shù)據(jù)使用方的角色信任關系來評估數(shù)據(jù)的可信程度并決定對數(shù)據(jù)進行保護的程度。另一種方法是使用隱私風險指標,即基于數(shù)據(jù)在第三方中的可見性和可獲取程度等因素來評估數(shù)據(jù)的風險程度,并根據(jù)風險程度來決定對數(shù)據(jù)進行保護的程度。

另一方面,隱私保護技術在保護隱私的同時需要盡可能地保證數(shù)據(jù)的有效性,即兼顧對實際應用的價值,以便于實際應用,因為在現(xiàn)實中我們是無法也不可能利用無限的資源來完全確保數(shù)據(jù)的隱私的,即數(shù)據(jù)隱私保護必須考慮隱私性和效用性之間的權衡。01數(shù)據(jù)發(fā)布數(shù)據(jù)發(fā)布階段涉及的數(shù)據(jù)發(fā)布者即采集數(shù)據(jù)和發(fā)布數(shù)據(jù)的實體,包括政府部門、網(wǎng)絡信息公司、網(wǎng)站用戶等。傳統(tǒng)的數(shù)據(jù)匿名發(fā)布技術包括k-匿名、l-diversity匿名、t-closeness匿名、個性化匿名、m-invariance匿名、基于“角色構成”的匿名等方法。03數(shù)據(jù)分析數(shù)據(jù)分析階段涉及的數(shù)據(jù)挖掘者即從發(fā)布的數(shù)據(jù)中挖掘知識的人或組織,他們往往希望從發(fā)布的數(shù)據(jù)中盡可能多地分析挖掘出有價值的信息,可能分析出用戶的隱私信息。02數(shù)據(jù)存儲隨著云計算平臺的發(fā)展壯大,數(shù)據(jù)的存儲模式發(fā)生了巨大的變化,數(shù)據(jù)存儲的參與者包括云存儲提供商、服務商和用戶,大數(shù)據(jù)的存儲者和擁有者是分離的,并且云存儲服務商對于其他參與者而言并不能保證

溫馨提示

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

評論

0/150

提交評論