區(qū)塊鏈是信息互聯(lián)網(wǎng)向價值互聯(lián)網(wǎng)轉(zhuǎn)變的重要基石,是現(xiàn)代數(shù)字貨幣體系的可選技術(shù)之一。它以密碼學(xué)技術(shù)為基礎(chǔ),通過分布式多節(jié)點“共識”機制,可以“完整、不可篡改”地記錄價值轉(zhuǎn)移(交易)的全過程。區(qū)塊鏈采用的具體技術(shù)包括密碼學(xué)、共識協(xié)議、博弈論、數(shù)據(jù)存儲、P2P通信等,是多種已有技術(shù)的融合創(chuàng)新。本文從共識協(xié)議、安全與隱私保護機制、可擴展性與效率、系統(tǒng)/協(xié)議的安全分析與評估等四個方面,對區(qū)塊鏈的研究進展進行了概要評述。
一、共識協(xié)議
共識協(xié)議用于在分布式系統(tǒng)中實現(xiàn)可用性與一致性,是區(qū)塊鏈的關(guān)鍵技術(shù),其核心指標包括共識協(xié)議的強壯性(容錯、容惡意節(jié)點的能力)、高效性(收斂速度,也即系統(tǒng)達成一致性或“穩(wěn)態(tài)”的速度)及安全性(協(xié)議抽象理論模型的安全界)。代表性協(xié)議包括PBFT為代表的BFT類共識、PoW/PoS為代表的中本聰共識(Nakamoto Consensus)、新型混合共識等。
?。ㄒ唬〣FT類共識
BFT(Byzantine Fault-Tolerant)算法于20世紀80年代開始被研究,旨在解決所謂拜占庭將軍問題。BFT類算法中最著名的是PBFT,該算法是基于消息傳遞的一致性算法,在弱同步網(wǎng)絡(luò)下,算法經(jīng)過三個階段可以達成一致性,復(fù)雜度為O(n2)。在無法達成一致時,這些階段會重復(fù)進行,直到超時。PBFT的優(yōu)點是收斂速度快、節(jié)省資源、具有理論上的安全界(理論上允許不超過1/3的惡意節(jié)點存在,即總節(jié)點數(shù)為3k + 1,其中正常節(jié)點超過2k + 1個時,算法可以正常工作)。
Andrew Miller在2016年提出的HoneyBadgerBFT對PBFT做了改進,其過程由原子廣播(Atomic Broadcast)和異步公共子集協(xié)議(Asynchronous Common Subset)兩部分組成,它使用N個二進制共識協(xié)議實例并根據(jù)其結(jié)果來決定一個公共子集。HoneyBadgerBFT可以在異步網(wǎng)絡(luò)下進行共識,不依賴于任何關(guān)于網(wǎng)絡(luò)環(huán)境的時間假設(shè) 。
BFT類共識隨著參與共識節(jié)點的增加,通信開銷會急劇上升,達成共識的速度則快速下降,難以支撐上萬節(jié)點規(guī)模的分布式系統(tǒng)。此外,節(jié)點參與共識首先要獲得投票權(quán),因此要為節(jié)點的加入和退出過程設(shè)計額外的機制,增加了協(xié)議復(fù)雜度和實現(xiàn)難度。
(二)中本聰共識
比特幣通過引入經(jīng)濟激勵改造了共識投票的過程,將每次賬本數(shù)據(jù)變化都安排一輪投票變?yōu)闈L動的無限期投票:任何人都可以生成一個包含交易的區(qū)塊(增加賬本數(shù)據(jù))并廣播,其他人如果同意該區(qū)塊納入賬本,則將該區(qū)塊的哈希作為自己構(gòu)造的區(qū)塊數(shù)據(jù)的一部分,以對該區(qū)塊進行“確認”;對某個區(qū)塊的“確認”也包含了對該區(qū)塊前序所有區(qū)塊的“確認”;以工作量大小決定投票權(quán)重,投票附加的工作量大的區(qū)塊勝出。這類共識機制的安全依賴于特別設(shè)計的經(jīng)濟激勵,比如工作量證明(PoW)或者權(quán)益證明(PoS)等。
比特幣的工作量證明是尋找滿足特定難度值的區(qū)塊頭哈希,比特幣之后的虛擬貨幣項目為了避免出現(xiàn)專用ASIC礦機,開始設(shè)計抗ASIC的PoW算法,其中一類的思路是通過串聯(lián)不同的哈希函數(shù)來增加ASIC芯片設(shè)計的難度,但并不具備抗ASIC的能力。
另一類思路則是設(shè)計內(nèi)存消耗型算法,比如Ethereum基于Dagger-Hashimoto的Ethash,Zcash基于廣義生日悖論問題的Equihash,?ternity基于二分圖環(huán)路檢測的Cuckoo Cycle等。這類算法在計算時需要占用大量內(nèi)存,內(nèi)存作為成熟產(chǎn)品優(yōu)化空間小,設(shè)計專用ASIC芯片的成本優(yōu)勢不大。
為了克服PoW資源消耗大,運行成本高的問題,PeerCoin最早提出并實現(xiàn)了權(quán)益證明(Proof of Stake,PoS)類的共識協(xié)議。PoS協(xié)議下,節(jié)點獲得區(qū)塊創(chuàng)建權(quán)的概率取決于該節(jié)點在系統(tǒng)中所占有的權(quán)益比例的大小。
PoS一般需要用戶時刻在線,這對應(yīng)用帶來了很大挑戰(zhàn)。為了解決這個問題,衍生出了DPoS(Delegated Proof of Stake)共識,其核心思想是從先從全網(wǎng)節(jié)點中選出部分節(jié)點,保證這些節(jié)點的有效性,然后在該子節(jié)點集合內(nèi)進行PoS共識。
PoS共識機制也引起了學(xué)術(shù)界的極大興趣??的螤柎髮W(xué)的Elaine Shi等在2017年提出了基于Sleepy Model的PoS共識,并對其進行了形式化描述和安全性分析,證明了該共識系統(tǒng)在分布式環(huán)境下有良好的健壯性。愛丁堡大學(xué)的Aggelos Kiayias等在2017年也設(shè)計了一種名為Ouroboros的PoS方案,該成果發(fā)表在密碼學(xué)頂級國際會議Crypto 2017上。
(三)混合共識
Elaine Shi等在2017年提出了將中本聰共識和BFT類共識進行有機結(jié)合的混合共識方案,該方案通過PoW機制來選取Committee(負責交易的驗證確認及區(qū)塊創(chuàng)建),Committee通過PBFT來進行交易及區(qū)塊的共識確認。
而Silvio Micali等在2017年提出的基于可驗證隨機函數(shù)(VRF)的Algorand協(xié)議則從另一個角度出發(fā), 通過“加密抽簽”的方法隨機決定區(qū)塊創(chuàng)建者后,用帶權(quán)重的拜占庭協(xié)議達成全網(wǎng)共識,可視為一種多級動態(tài)驗證組BFT共識和PoS的混合方案。Algorand達成共識的情況會規(guī)約成3種,以大概率保證了只有唯一的輸出,相比Sleepy和Ouroboros共識模型,確定性更好,不容易分叉。
二、安全與隱私保護機制
安全機制是區(qū)塊鏈中最為核心與關(guān)鍵的組成部分,而密碼原語與密碼方案是安全機制的支撐技術(shù)。在公有鏈中,安全機制主要包括:隱私保護、共識協(xié)議安全性、智能合約安全性、數(shù)字賬戶安全(錢包私鑰保護)、離鏈交易安全機制、密碼算法的實現(xiàn)安全及升級機制等。
?。ㄒ唬╇[私保護
在公有鏈中,需要對交易數(shù)據(jù)、地址、身份等敏感信息進行保護,同時又能讓記賬節(jié)點驗證交易的合法性;對于聯(lián)盟鏈,在構(gòu)建隱私保護方案的同時,需考慮可監(jiān)管性/授權(quán)追蹤??梢酝ㄟ^采用高效的零知識證明、承諾、證據(jù)不可區(qū)分等密碼學(xué)原語與方案來實現(xiàn)交易身份及內(nèi)容隱私保護;基于環(huán)簽名、群簽名等密碼學(xué)方案的隱私保護機制、基于分級證書機制的隱私保護機制也是可選方案;也可通過采用高效的同態(tài)加密方案或安全多方計算方案來實現(xiàn)交易內(nèi)容的隱私保護;還可采用混幣機制實現(xiàn)簡單的隱私保護。
1.混幣技術(shù)
混幣技術(shù)是指將多筆不相關(guān)的輸入進行混合后輸出,使得外界無法關(guān)聯(lián)交易的輸入與輸出,從而分辨不出數(shù)字貨幣的流向。這是最樸素的匿名技術(shù)。
CoinJoin是一種無關(guān)協(xié)議的匿名混幣技術(shù),使用者需要委托第三方,來構(gòu)造一筆混合多筆輸入的交易。CoinJoin技術(shù)不是完全匿名的,即提供服務(wù)的第三方可以知道混幣交易的流向。TumbleBit協(xié)議是另一種混幣技術(shù)。該協(xié)議是一種鏈下通道的混幣協(xié)議,也需要第三方參與,但第三方無法知道交易細節(jié),僅僅是提供服務(wù)。TumbleBit分為Puzzle-Promise Protocol和RSA-Puzzle-Solver Protocol兩個子協(xié)議,需要發(fā)送方、接收方和第三方進行多次交互。
2.環(huán)簽名
Monero(門羅幣)在保證交易的隱私性方面應(yīng)用了一次性環(huán)簽名(One-time Ring Signature)技術(shù),具有不可鏈接(Unlinkability)和不可追蹤(Untraceability)兩大特性。
門羅幣里,用戶有兩對主公私鑰對,用于生成一系列的一次性密鑰對。這些一次性密鑰在交易時使用,且無法關(guān)聯(lián)到主公私鑰對。進行交易時,發(fā)送者需要使用一次性公私鑰來計算唯一的key image,然后選擇一個公鑰集合來進行環(huán)簽名。校驗者可以驗證簽名的合法性,但無法知道簽名者的公鑰。在網(wǎng)絡(luò)里,節(jié)點需要維護一張表,來記錄每次使用過的key image,否則會出現(xiàn)雙花問題。環(huán)簽名可以有效提高匿名性的同時,無需任何第三方協(xié)作參與。但相比橢圓曲線簽名,環(huán)簽名的簽名長度明顯增大,生成簽名和驗證簽名的復(fù)雜度也大大增加,這會給網(wǎng)絡(luò)帶來多余的負擔。
3.零知識證明
ZCash采用了名為zk-SNARK的零知識證明技術(shù),來保證交易的發(fā)送者、接受者和交易金額的機密性。在ZCash里,發(fā)送者通過向全網(wǎng)廣播承諾(commitment)和廢棄值(nullifier)來進行轉(zhuǎn)賬交易。zk-SNARK用于向網(wǎng)絡(luò)證明承諾和廢棄值的合法性,同時又不揭露發(fā)送者的身份。
zk-SNARK具有兩個特點:簡潔性(Succinct),即驗證者只需要少量計算就可以完成驗證;非交互性(Noninteractive),即證明者和驗證者只需要交換少量的信息即可。zk-SNARK可以證明所有的多項式驗證問題。它提供了一個系統(tǒng)化的方法,可以把任何驗證程序轉(zhuǎn)化成一個名為 Quadratic Span Program (QSP)的多項式驗證問題。因此,任意復(fù)雜的驗證問題都可以由zk-SNARK來證明。zk-SNARK的缺點在于計算驗證數(shù)據(jù)時,需要一定的計算量。此外,zk-SNARK還有一個初始參數(shù)設(shè)置階段,來生成一個“絕對機密”的隨機信息。使用這些初始化的隨機信息可以欺騙驗證者,因此需要保證該過程的絕對機密與安全。
?。ǘ?shù)字賬戶安全
錢包私鑰直接關(guān)系到賬戶安全,需要對錢包私鑰進行妥善保護??刹捎脽o密鑰的密碼算法(標準算法的白盒化方案或設(shè)計新型的白盒密碼算法)和代碼混淆技術(shù),實現(xiàn)敵手無法提取核心密碼算法和密鑰信息;或采用基于口令、身份、生物特征等認證因子的加密算法對密鑰進行加密存儲;基于TEE(可信執(zhí)行環(huán)境)、輔助硬件的技術(shù)方案也是保障數(shù)字賬戶安全的可選方案之一。
(三)密碼算法的實現(xiàn)安全及升級機制
需確保區(qū)塊鏈中密碼算法的實現(xiàn)安全,并構(gòu)建密碼算法更新/升級時的安全機制。密碼算法的實現(xiàn)安全包括軟件實現(xiàn)的安全性及硬件實現(xiàn)的安全性,避免密碼誤用,有效抵抗旁路攻擊。
三、可擴展性與效率
可擴展性旨在分布式賬本協(xié)議的基礎(chǔ)上,對整體進行性能效率的提升、擴容或功能性上的擴充,可選方法包括:縮短區(qū)塊的產(chǎn)生間隔、增加區(qū)塊大小、采用雙層鏈結(jié)構(gòu)、引入閃電網(wǎng)絡(luò)、在不影響安全性的前提下修剪區(qū)塊中的數(shù)據(jù)等。
(一)閃電網(wǎng)絡(luò)
閃電網(wǎng)絡(luò)是比特幣的鏈下擴容方案,旨在擴大比特幣的交易規(guī)模和交易速度。閃電網(wǎng)絡(luò)的基礎(chǔ)是交易雙方建立雙向微支付通道。HTLC(Hashed Timelock Contract)定義了該雙向微支付通道的基本工作方式。雙方在轉(zhuǎn)賬時,轉(zhuǎn)賬人將一筆錢凍結(jié),并提供一個哈希值。在一定的時間內(nèi),若有人可以給出哈希原像,就可以使用這筆錢。在這個基礎(chǔ)上,兩兩各自建立鏈下微支付通道,最終可以擴大成一個鏈下支付網(wǎng)絡(luò)。一旦鏈下網(wǎng)絡(luò)達到一定的規(guī)模,用戶找到一個通道數(shù)較多的節(jié)點后,便可連接到其他用戶,從而完成鏈下交易。由于不需要上鏈,閃電網(wǎng)絡(luò)中的交易是即時完成的,只有最終的清算才需要上鏈。
目前比特幣和萊特幣均已支持閃電網(wǎng)絡(luò)。然而,在閃電網(wǎng)絡(luò)方案中,鏈下網(wǎng)絡(luò)的建立及路由協(xié)議還存在較大的不足之處,伊利諾伊大學(xué)香檳分校Andrew Miller等在2017年提出了一種新型的閃電網(wǎng)絡(luò)協(xié)議,進一步優(yōu)化提升了閃電網(wǎng)絡(luò)在鏈下網(wǎng)絡(luò)建立及路由方面的性能效率。
(二)采用雙層鏈結(jié)構(gòu)
Bitcoin-NG采用了雙層鏈結(jié)構(gòu),其主要思想是:礦工解決哈希難題并由此創(chuàng)建的區(qū)塊稱為keyBlock,創(chuàng)建keyBlock的礦工在下一個keyBlock出現(xiàn)之前每隔一小段時間可以發(fā)布一個microBlock。系統(tǒng)的安全性和健壯性建立在keyBlock的PoW機制上,而系統(tǒng)的交易吞吐量則通過microBlock的頻繁發(fā)布得以顯著提高。
然而,在Bitcoin-NG中存在兩個安全隱患:一是不能有效阻止自私挖礦,二是當某個礦工創(chuàng)建keyBlock之后,他可在短時間內(nèi)發(fā)布大量的microBlock,從而引發(fā)系統(tǒng)大量分叉并最終對共識機制的收斂性造成很大影響,同時也大大加重了系統(tǒng)的通信負荷。
?。ㄈ㎝imbleWimble
MimbleWimble技術(shù)刪除交易中所有已花費的輸出,可以有效壓縮區(qū)塊數(shù)據(jù)的大小。MimbleWimble使用單向聚合簽名(OWAS)對金額進行隱藏,其隱藏公式為,其中C是Pedersen commitment,G和H是與橢圓曲線加密函數(shù)(ECDSA)生成的無關(guān)的固定值,v是金額,而r是一個秘密的 random blinding key(隨機盲密匙)。此后,需要通過range proof 證明輸出在正常的取值范圍內(nèi)。用戶不需要遍歷整個區(qū)塊鏈,只需要驗證整個區(qū)塊鏈的輸入之和和未花費的輸出之和是否相等,依次證明整條區(qū)塊鏈是正確的。因此,用戶可以刪除所有已花費的輸出,來有效壓縮區(qū)塊數(shù)據(jù)的大小。除此之外,MimbleWimble還提供一定的隱私和擴展性,但該方案無法支持復(fù)雜的比特幣腳本。
四、區(qū)塊鏈/協(xié)議的安全分析與評估
在區(qū)塊鏈(協(xié)議)的安全性分析與評估中,一方面,需要對已有的共識協(xié)議建立抽象理論模型,并基于該模型研究共識協(xié)議的安全性;另一方面,需要研究在不同攻擊方法(或場景下)區(qū)塊鏈的安全性,例如:分別在高同步性、高異步性網(wǎng)絡(luò)條件下,基于合理的困難問題假設(shè)、攻擊者的計算能力、攻擊類型及方法等建立相應(yīng)的統(tǒng)計分析模型,給出共識協(xié)議能有效抵抗相應(yīng)攻擊的安全界;需分析在激勵機制失效下系統(tǒng)的安全性;需對系統(tǒng)中密碼方案軟硬件實現(xiàn)進行安全性分析等。
?。ㄒ唬┳运酵诘V
傳統(tǒng)觀點認為比特幣是有激勵相容機制的,即沒有人可通過損害集體利益去實現(xiàn)自己利益的最大化。但自私挖礦(selfish mining)的提出證明了這種觀點是不完全正確的。在礦工是追求最大化利益的理性者的條件下,只要礦池能控制全網(wǎng)超過1/3的算力,就可以發(fā)起自私挖礦攻擊,獲取更大的收益,并對網(wǎng)絡(luò)安全造成威脅。
自私挖礦的分析是基于理性者條件的假設(shè)下,但現(xiàn)實中人往往不是完全理性的,且存在多方博弈,因此實現(xiàn)自私挖礦攻擊還是存在一定的難度。
?。ǘ┓謪^(qū)攻擊
在P2P網(wǎng)絡(luò)里,只要控制一定數(shù)量的節(jié)點,就可以進行Eclipse Attack,從而發(fā)起51%攻擊,控制整個網(wǎng)絡(luò)。這是一種分區(qū)攻擊。假設(shè)網(wǎng)絡(luò)中只有3個節(jié)點在挖礦,其中兩個分別擁有 30%的全網(wǎng)算力,剩余一個有40%全網(wǎng)算力。如果攻擊者可以控制擁有40%算力的節(jié)點,則他可以隔離其他兩個節(jié)點,使得他們無法達成共識。最終的結(jié)果是,攻擊者所生成的鏈會經(jīng)共識成為最終的區(qū)塊鏈。因此在分區(qū)攻擊下,攻擊者不需要擁有超過一半的算力,就可以發(fā)起51% 攻擊。發(fā)起這種攻擊的前提條件是,被隔離節(jié)點鏈接到的所有節(jié)點都受攻擊者控制。在網(wǎng)絡(luò)規(guī)模不大的時候,這比較容易實現(xiàn)。
?。ㄈ┐髷?shù)據(jù)分析
區(qū)塊數(shù)據(jù)在全網(wǎng)都是公開的,因此可以很容易地對它們進行分析。Kumar Amrit 等在2017年通過對Monero歷史區(qū)塊數(shù)據(jù)的分析,得到了如下結(jié)果:65%以上的input會產(chǎn)生級聯(lián)影響,影響到22%的交易被追蹤到;來自同一交易的output在下次交易時通常會聚合在一起;匿名集中最近發(fā)生的output很可能就是真實被花費的 output。
因此,盡管Monero具有良好的匿名特性,但通過數(shù)據(jù)分析,還是有超過半數(shù)的交易被追蹤并分析出來。這說明了系統(tǒng)的參數(shù)選擇和用戶的使用習(xí)慣也會導(dǎo)致隱私暴露。
(四)共識協(xié)議的抽象理論模型的安全性分析
Aggelos Kiayias等在2017年構(gòu)建了比特幣的PoW協(xié)議的抽象理論模型,并借鑒密碼學(xué)中可證明安全的思想證明了該抽象理論模型的安全性;Elaine Shi等在2017年提出了基于 Sleep Model的PoS共識模型,并對其進行了形式化描述和安全性分析,證明了該共識系統(tǒng)在分布式環(huán)境下有良好的健壯性。
第三十四屆CIO班招生
國際CIO認證培訓(xùn)
首席數(shù)據(jù)官(CDO)認證培訓(xùn)
責編:kongwen
免責聲明:本網(wǎng)站(http://www.www.gypb.net/)內(nèi)容主要來自原創(chuàng)、合作媒體供稿和第三方投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關(guān)資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負任何法律責任。
本網(wǎng)站刊載的所有內(nèi)容(包括但不僅限文字、圖片、LOGO、音頻、視頻、軟件、程序等)版權(quán)歸原作者所有。任何單位或個人認為本網(wǎng)站中的內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,請及時通知本站,予以刪除。