張 亮,劉百祥
(1.復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院上海市智能信息處理重點(diǎn)實(shí)驗(yàn)室,上海 200433;2.海南大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院(密碼學(xué)院),???570228;3.上海區(qū)塊鏈工程技術(shù)研究中心,上海 200433;4.復(fù)旦大學(xué)義烏研究院,浙江 義烏 322000)
區(qū)塊鏈以經(jīng)濟(jì)金融學(xué)、密碼學(xué)、博弈論和計(jì)算機(jī)科學(xué)為支撐[1],近年來受到科技界和金融界的廣泛關(guān)注,我國也將區(qū)塊鏈列為一項(xiàng)互聯(lián)網(wǎng)新型基礎(chǔ)建設(shè)設(shè)施。早期的區(qū)塊鏈系統(tǒng)僅采用密碼學(xué)中的簽名驗(yàn)簽技術(shù)、哈希算法和一定的經(jīng)濟(jì)激勵(lì)實(shí)現(xiàn)去中心化的數(shù)字貨幣功能。本質(zhì)上,區(qū)塊鏈?zhǔn)且粋€(gè)分布式的賬本,即由多人共同對數(shù)據(jù)進(jìn)行維護(hù),保證數(shù)據(jù)在分布式場景下的一致性和正確性。早在1982 年,LAMPOR 等[2]就提出了分布式系統(tǒng)的共識問題,即拜占庭容錯(cuò)(Byzantine Fault Tolerance,BFT)協(xié)議。與最早的區(qū)塊鏈(比特幣[3])不同,從技術(shù)角度,拜占庭容錯(cuò)協(xié)議沒有考慮經(jīng)濟(jì)刺激因素;從功能角度,拜占庭容錯(cuò)協(xié)議沒有考慮交易的往來,因此沒有形成一套類似比特幣的數(shù)字貨幣系統(tǒng);從規(guī)模角度,公有區(qū)塊鏈允許參與者自由進(jìn)出,而拜占庭容錯(cuò)協(xié)議具有準(zhǔn)入門檻限制;從系統(tǒng)參與者角度,區(qū)塊鏈和拜占庭容錯(cuò)協(xié)議均是多方協(xié)同合作,在無第三方權(quán)威和允許一定量惡意節(jié)點(diǎn)的前提下實(shí)現(xiàn)誠實(shí)參與者間的共識。
區(qū)塊鏈的發(fā)展使得更多學(xué)者發(fā)現(xiàn)了區(qū)塊鏈與拜占庭容錯(cuò)系統(tǒng)的相同點(diǎn),使得兩者的相關(guān)研究井噴式發(fā)展。秘密分享(Secret Sharing,SS)技術(shù)[4]在拜占庭容錯(cuò)系統(tǒng)的發(fā)展史上占據(jù)重要地位。秘密分享是指分發(fā)者將秘密拆分成多個(gè)份額并分別發(fā)送給分布式場景下的多個(gè)份額接收者(即份額持有者),當(dāng)且僅當(dāng)超過一定數(shù)量的份額持有者合作才能恢復(fù)出分發(fā)者的秘密。此后,可驗(yàn)證秘密分享(Verifiable SS,VSS)[5]和公開可驗(yàn)證秘密分享(Publicly VSS,PVSS)[6]技術(shù)相繼被提出。
秘密分享技術(shù)的分布式和容錯(cuò)性特點(diǎn)使其在數(shù)據(jù)可用性和數(shù)據(jù)隱私領(lǐng)域得到廣泛引用,而可驗(yàn)證性進(jìn)一步使得數(shù)據(jù)能夠不被篡改,從而保證了數(shù)據(jù)完整性。因此,可驗(yàn)證秘密分享技術(shù)的研究是數(shù)據(jù)安全領(lǐng)域的核心之一。通過合理的設(shè)計(jì)和應(yīng)用,秘密分享技術(shù)可以實(shí)現(xiàn)無中心的多方協(xié)作與多方計(jì)算。秘密分享技術(shù)涵蓋了信息安全的三要素——數(shù)據(jù)機(jī)密性、數(shù)據(jù)完整性和數(shù)據(jù)可用性,即C.I.A.。
區(qū)塊鏈也是一種安全多方計(jì)算(Secure Multi-Party Computation,SMPC)系統(tǒng)。區(qū)塊鏈與秘密分享技術(shù)的結(jié)合,使得許多基于密碼學(xué)的應(yīng)用能夠快速得以實(shí)施。區(qū)塊鏈在共識的達(dá)成、數(shù)據(jù)的存儲和智能合約中均可以與秘密分享技術(shù)相結(jié)合,從而在提升區(qū)塊鏈穩(wěn)定性和效率的同時(shí),豐富區(qū)塊鏈的功能,使得更多基于密碼學(xué)的產(chǎn)品落地。這兩者的結(jié)合能使一些經(jīng)典的應(yīng)用場景得到更高效和便利的實(shí)現(xiàn),如電子投票[7]、密鑰管理[8]、數(shù)據(jù)恢復(fù)[9]等。
本文介紹秘密分享與區(qū)塊鏈的融合研究,從共識層、合約層和存儲層角度,結(jié)合秘密分享技術(shù)進(jìn)行綜述。雖然區(qū)塊鏈近年來得到了迅速發(fā)展,但其在擴(kuò)容性、共識速度、應(yīng)用范圍和存儲冗余度等性能指標(biāo)上仍存在不足。本文通過介紹秘密分享技術(shù)在區(qū)塊鏈領(lǐng)域中的應(yīng)用和融合,為區(qū)塊鏈的優(yōu)化和發(fā)展提供新的視角和思路。
在秘密分享協(xié)議中,n表示參與者個(gè)數(shù),t表示門限值,0 秘密分享(SS)協(xié)議要求分發(fā)者誠實(shí)可信??沈?yàn)證秘密分享協(xié)議在份額分發(fā)算法中添加承諾值,使得份額持有者可以根據(jù)份額和承諾值判定分發(fā)者的誠實(shí)性。相對于秘密分享,可驗(yàn)證秘密分享使得份額持有者可以發(fā)現(xiàn)秘密分發(fā)者是否向其發(fā)送了偽造的份額值。 在可驗(yàn)證秘密分享(VSS)協(xié)議中,份額是高度隱私信息,因此需要使用安全信道傳輸份額。為了能夠在公開信道上傳輸份額,并且同時(shí)能被任何第三方驗(yàn)證,公開可驗(yàn)證秘密分享(Public VSS,PVSS)協(xié)議被提出和實(shí)現(xiàn)。在PVSS 協(xié)議中,份額使用份額持有者的公鑰加密保護(hù)得到。通過添加非交互的零知識(Non-Interactive Zero-Knowledge,NIZK)證明,加密后的份額能在公開環(huán)境中被任何人驗(yàn)證其正確性。 圖1 概括了秘密分享和可驗(yàn)證秘密分享在數(shù)據(jù)安全領(lǐng)域所具備的功能特性[10]。這些功能特性使得秘密分享技術(shù)成為構(gòu)建安全多方計(jì)算協(xié)議的重要基礎(chǔ)原語,也使得秘密分享與區(qū)塊鏈的結(jié)合成為可能。 圖1 (可驗(yàn)證)秘密分享在數(shù)據(jù)安全領(lǐng)域的功能特性Fig.1 Function characteristics of(verifiable)secret sharing in the field of data security 從技術(shù)棧角度,區(qū)塊鏈系統(tǒng)的構(gòu)建可以劃分為存儲層、網(wǎng)絡(luò)層、共識層、智能合約層、應(yīng)用層等5 個(gè)層級[1]:存儲層采用合適的數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫對交易、事務(wù)和區(qū)塊進(jìn)行高效的存儲管理;網(wǎng)絡(luò)層采用點(diǎn)對點(diǎn)網(wǎng)絡(luò)通信協(xié)議實(shí)現(xiàn)節(jié)點(diǎn)間的數(shù)據(jù)傳輸,其中允許出現(xiàn)拜占庭節(jié)點(diǎn)的惡意行為;共識層采用分布式共識算法和激勵(lì)機(jī)制,實(shí)現(xiàn)拜占庭容錯(cuò)能力并解決分布式一致性問題;智能合約層基于分布式共識下的合約運(yùn)行環(huán)境,提供高級語言編譯和運(yùn)行接口以及相關(guān)的程序編譯、執(zhí)行環(huán)境;應(yīng)用層提供用戶可編程接口,使得技術(shù)人員能夠簡便自主地實(shí)現(xiàn)智能合約代碼。 拜占庭容錯(cuò)(BFT)是指分布式系統(tǒng)具有容錯(cuò)性的特點(diǎn),其起源于分布式系統(tǒng)中一個(gè)著名難題——拜占庭將軍問題。構(gòu)建拜占庭容錯(cuò)系統(tǒng)的難點(diǎn)在于,在存在惡意參與者的情況下,形成正確的共識困難度較高,并且需要同時(shí)滿足安全性和活性:安全性是指所有誠實(shí)的參與者在所有決策中總是得到一致的共識結(jié)果;活性是指共識最終總是能達(dá)成,不會被惡意參與者中斷。 安全多方計(jì)算(SMPC)[11]是指在無可信第三方的情況下,如何安全地將不同參與者手中的數(shù)值作為輸入,計(jì)算一個(gè)函數(shù)值的問題。區(qū)塊鏈常被看作是一種安全多方計(jì)算協(xié)議或系統(tǒng),而秘密分享通常作為安全多方計(jì)算的一種密碼原語。秘密分享協(xié)議可以歸納為一組密碼原語算法,協(xié)議中的秘密持有者通過網(wǎng)絡(luò)分發(fā)份額,最后份額持有者通過網(wǎng)絡(luò)協(xié)商達(dá)成份額是否分發(fā)成功的共識。區(qū)塊鏈?zhǔn)且环N遵循特定協(xié)議,具備存儲、計(jì)算和可編程能力并且還在持續(xù)發(fā)展的系統(tǒng)。區(qū)塊鏈系統(tǒng)中對等節(jié)點(diǎn)通過構(gòu)建并廣播消息,然后對歷史數(shù)據(jù)在全網(wǎng)達(dá)成一致性的共識。 秘密分享協(xié)議和區(qū)塊鏈系統(tǒng)都具有多方性、容錯(cuò)性、分布式存儲,以及借助網(wǎng)絡(luò)協(xié)商達(dá)成共識的特性。結(jié)合文獻(xiàn)[12]對安全多方計(jì)算和區(qū)塊鏈技術(shù)的對比,本文進(jìn)一步對比了(公開)(可驗(yàn)證)秘密分享((P)(V)SS)協(xié)議、安全多方計(jì)算和區(qū)塊鏈技術(shù),如表1 所示,從中可以看出,秘密分享技術(shù)在安全多方計(jì)算和區(qū)塊鏈中均具有重要作用。 表1 秘密分享、安全多方計(jì)算與區(qū)塊鏈的對比Table 1 Comparison among(P)(V)SS,SMPC and blockchain 比特幣[3]使用工作量證明(Proof of Power,PoW)共識算法,一次性解決了區(qū)塊鏈的多個(gè)問題:1)PoW算法解決了礦工節(jié)點(diǎn)和獎(jiǎng)勵(lì)對象的問題,只有一個(gè)成功完成工作量證明的節(jié)點(diǎn)才能具備合法打包權(quán)和接受系統(tǒng)的獎(jiǎng)勵(lì);2)礦工的唯一性能夠有效地解決“雙花”問題,使金融系統(tǒng)無差錯(cuò)運(yùn)行;3)根據(jù)最長鏈原則,要想對區(qū)塊鏈系統(tǒng)進(jìn)行控制,需要對歷史上所有的交易進(jìn)行重新打包和重新挖礦,而這被認(rèn)為在經(jīng)濟(jì)上是不可行的;4)PoW 系統(tǒng)中的任意節(jié)點(diǎn)可以任意加入和退出,并且對系統(tǒng)中的其他節(jié)點(diǎn)不產(chǎn)生影響。 文獻(xiàn)[13-14]通過將PoW 共識算法提供的無爭議性和安全性與拜占庭容錯(cuò)協(xié)議相關(guān)聯(lián),從而證明區(qū)塊鏈也是一種具備拜占庭容錯(cuò)性的狀態(tài)機(jī)副本模型系統(tǒng)。在PoW 共識算法中,當(dāng)?shù)V工節(jié)點(diǎn)宣布對最新區(qū)塊ak←b 的打包權(quán)時(shí),其不僅是對最新區(qū)塊b 的聲明,也是對歷史區(qū)塊{a1,a2,…,ak?1}的再次確認(rèn)。由于多個(gè)礦工在某一段時(shí)間內(nèi)可能都成功地找到了PoW 要求的工作量證明,根據(jù)最長鏈原則,唯一的礦工的工作在全網(wǎng)形成共識,從而體現(xiàn)安全性。由于所有的礦工都是獨(dú)立工作的,根據(jù)PoW 算法的要求和復(fù)雜度系數(shù)調(diào)整,誠實(shí)參與者完成工作量證明并公之于眾,同時(shí)得到所有誠實(shí)節(jié)點(diǎn)的確認(rèn)和認(rèn)可,即保證活性。 區(qū)塊鏈中的PoW 算法與經(jīng)典拜占庭容錯(cuò)(BFT)協(xié)議有緊密聯(lián)系。表2 總結(jié)了PoW 算法和BFT 協(xié)議在實(shí)現(xiàn)區(qū)塊鏈共識算法時(shí)的差異。 表2 PoW 算法與BFT 協(xié)議的對比Table 2 Comparison between PoW algorithm and BFT protocol 文獻(xiàn)[15]指出,對拜占庭容錯(cuò)共識算法的擴(kuò)容研究方案包含并行處理事務(wù)、使用可信硬件、設(shè)置代理委員會、選取密碼學(xué)原語和優(yōu)化通信網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。近年來,越來越多的研究使用秘密分享技術(shù)優(yōu)化具備拜占庭容錯(cuò)性的共識算法。隨著區(qū)塊鏈的持續(xù)發(fā)展,研究者提出了非對稱拜占庭容錯(cuò)共識算法[16]。非對稱拜占庭容錯(cuò)共識算法起源于非對稱信任,即在分布式系統(tǒng)中,每個(gè)參與者根據(jù)自己已獲得的信息判斷其他參與者是否誠實(shí)可信??尚烹S機(jī)數(shù)是解決拜占庭容錯(cuò)共識算法中公平問題的基礎(chǔ),在此方面,文獻(xiàn)[16-17]使用秘密分享技術(shù)構(gòu)建可信隨機(jī)源,保證了隨機(jī)數(shù)的可獲得性。 秘密分享協(xié)議和拜占庭容錯(cuò)協(xié)議均具有容錯(cuò)性。通常,一次秘密分享協(xié)議的運(yùn)行只有單一的分發(fā)者,而拜占庭容錯(cuò)協(xié)議往往要求所有節(jié)點(diǎn)對等。因此,秘密分享協(xié)議常作為構(gòu)建拜占庭容錯(cuò)協(xié)議的子步驟或子環(huán)節(jié)。許多具備拜占庭容錯(cuò)特性的協(xié)議,如可驗(yàn)證隨機(jī)數(shù)信標(biāo)(Beacon)協(xié)議[18-19]和分布式密鑰生成DKG 協(xié)議[20],通過讓每個(gè)參與者在每個(gè)輪次中分別調(diào)用一次秘密分享協(xié)議,從而達(dá)到去中心化的目的。不同的通信信道和敵手模型對拜占庭容錯(cuò)協(xié)議的效率和安全性有巨大影響,拜占庭容錯(cuò)協(xié)議通常使用VSS 或PVSS 協(xié)議來驗(yàn)證消息發(fā)送者的誠實(shí)性,并提升消息在協(xié)議中的恢復(fù)能力。 拜占庭容錯(cuò)協(xié)議通常直接達(dá)成對某一明文的共識,而明文不能有效地保護(hù)數(shù)據(jù)的隱私。鑒于此,文獻(xiàn)[21]提出VSSR(VSS Recovery)協(xié)議應(yīng)用到拜占庭容錯(cuò)協(xié)議中,從而構(gòu)建了一個(gè)私有的基于鍵值對的PBFT協(xié)議[22]。 不僅秘密分享技術(shù)可以改善具有拜占庭容錯(cuò)能力的協(xié)議,具備拜占庭容錯(cuò)能力的協(xié)議也可以促進(jìn)秘密分享協(xié)議的研究。在秘密的份額被分享之后,隨著時(shí)間推移,多個(gè)份額被惡意節(jié)點(diǎn)持有的概率將增大。在惡意節(jié)點(diǎn)結(jié)合超過門限值的份額前,秘密持有者需要定時(shí)更新份額,只要攻擊者訪問少于設(shè)定的閾值,系統(tǒng)就會保持安全,使得攻擊者只有較少的時(shí)間來破壞秘密分享體制。 主動(dòng)式秘密分享(Proactive Secret Sharing,PSS)[23]是對秘密分享的一種擴(kuò)展,被用于加強(qiáng)秘密分享者秘密的安全性。在PSS 協(xié)議中,秘密份額的更新過程由份額持有者發(fā)起,每個(gè)份額持有者各自構(gòu)造一個(gè)隨機(jī)的多項(xiàng)式,并執(zhí)行秘密分享的分發(fā)過程,最后每個(gè)份額持有者更新手中的份額值。用此方法可避免攻擊者通過收集足夠的舊的份額值來恢復(fù)秘密。相對于同步情況下的PSS 協(xié)議,APSS(Asynchronous PSS)協(xié)議[24]更能抵抗DoS 攻擊和動(dòng)態(tài)敵手攻擊,異步情況下的PSS 更實(shí)用和貼近真實(shí)網(wǎng)絡(luò)情況。雖然網(wǎng)絡(luò)模型更切實(shí),但是APSS 協(xié)議[24]借助互聯(lián)網(wǎng)實(shí)現(xiàn)通信并達(dá)到網(wǎng)絡(luò)節(jié)點(diǎn)中的共識,其通信量復(fù)雜度達(dá)到了指數(shù)級別。 PoW 共識需要消耗大量電力,在此背景下,引申出了權(quán)益證明(Proof of Stake,PoS)共識算法[25]。PoS 設(shè)計(jì)思想不是通過做工作量證明,而是通過抵押權(quán)益體現(xiàn)對區(qū)塊鏈系統(tǒng)的忠誠,最后從共識算法中分得紅利。由于區(qū)塊鏈的所有規(guī)則都是公開透明的,因此如何有效地制定激勵(lì)機(jī)制顯得尤為重要。其中,為了體現(xiàn)公平原則,可信賴的隨機(jī)數(shù)至關(guān)重要。因?yàn)樵谕该鳈C(jī)制下不能按照已知的信息來分配挖出的礦,否則所有參與者都將對系統(tǒng)發(fā)起攻擊,最大化自己從系統(tǒng)中獲取的利潤。比特幣系統(tǒng)通過PoW 算法和最長鏈原則解決了該問題。PoS 共識算法則是為解決耗能耗電的PoW 算法而被提出。 區(qū)塊鏈中的PoS 共識算法與Beacon 協(xié)議是一對孿生問題[25-26]。事實(shí)上,PoW 共識算法根據(jù)哈希值的隨機(jī)性來選取最終的礦工,擁有算力高的節(jié)點(diǎn)成為礦工的概率更高。文獻(xiàn)[25]指出PoS 共識算法的一個(gè)重大挑戰(zhàn)是設(shè)計(jì)好的方法在分布式系統(tǒng)中實(shí)現(xiàn)領(lǐng)導(dǎo)節(jié)點(diǎn)的公平和隨機(jī)選取。Beacon 的研究是為了防范惡意節(jié)點(diǎn)通過概率分析和協(xié)議模擬影響協(xié)議的公平性和隨機(jī)性,甚至破壞系統(tǒng)的可用性。為了實(shí)現(xiàn)區(qū)塊鏈系統(tǒng)中PoS 相關(guān)的共識,PVSS 技術(shù)得到廣泛研究和應(yīng)用。 由于PVSS 技術(shù)的多方協(xié)同性和公開可驗(yàn)證性,因此其經(jīng)常被用于構(gòu)建Beacon 協(xié)議,進(jìn)而實(shí)現(xiàn)PoS 共識算法的核心思想。Ouroboros[25]、SCRAPE[27]、RandShare[28]、Hydrand[26]等系統(tǒng)均依托點(diǎn)對點(diǎn)網(wǎng)絡(luò)模型,使用PVSS 作為底層密碼原語技術(shù)實(shí)現(xiàn)Beacon 協(xié)議,這些協(xié)議均可進(jìn)一步用于實(shí)現(xiàn)權(quán)益證明共識算法。圖2 描述了基于PVSS 協(xié)議生成Beacon 協(xié)議的一般流程,其中,每個(gè)輪次后n個(gè)參與者都會得到一個(gè)共同的公開可驗(yàn)證隨機(jī)數(shù)。 圖2 基于PVSS 實(shí)現(xiàn)Beacon 協(xié)議的一般流程Fig.2 General procedure of Beacon protocol implementation based on PVSS 通過使用不同的(P)VSS 協(xié)議和假設(shè)不同的網(wǎng)絡(luò)通信模型,Ouroboros[25]、SCRAPE[27]、RandShare[28]、Hydrand[26]和Dfinity[9]實(shí)現(xiàn)的Beacon 協(xié)議也具有不同的性質(zhì)和復(fù)雜度。對上述方法實(shí)現(xiàn)的Beacon 協(xié)議進(jìn)行對比,如表3 所示。其中:n是系統(tǒng)中的節(jié)點(diǎn)個(gè)數(shù);c是對系統(tǒng)分組后的組成員節(jié)點(diǎn)個(gè)數(shù);Hydrand[26]通過在每一個(gè)輪次中選取一個(gè)領(lǐng)導(dǎo)節(jié)點(diǎn),模仿同步條件下的拜占庭容錯(cuò)協(xié)議過程實(shí)現(xiàn)Beacon 協(xié)議。通過對比可知,Hydrand[26]通信、計(jì)算和驗(yàn)證復(fù)雜度較高,并且具備良好的活性/隨機(jī)性,但是,該系統(tǒng)假設(shè)的是同步的網(wǎng)絡(luò)通信模型。 表3 不同Beacon 協(xié)議的對比Table 3 Comparison among different Beacon protocols 智能合約是一段代碼,與傳統(tǒng)的程序代碼不同,為了體現(xiàn)區(qū)塊鏈的不可篡改、可追溯以及公開透明性,智能合約的代碼和數(shù)據(jù)通常是公開的。智能合約代碼運(yùn)行和數(shù)據(jù)沉淀(即寫入?yún)^(qū)塊鏈)都是在區(qū)塊鏈共識之上的。從比特幣的腳本到圖靈完備執(zhí)行環(huán)境,智能合約使得任意可以計(jì)算的問題都能夠得以解決??傮w而言,在無須可信第三方存在的情況下,區(qū)塊鏈的智能合約提供了兩大功能,即公開透明的存儲和計(jì)算。本節(jié)將從區(qū)塊鏈合約層和秘密分享體制中找到結(jié)合點(diǎn):一方面,分析區(qū)塊鏈智能合約如何為秘密分享體制的實(shí)現(xiàn)帶來便捷;另一方面,發(fā)掘基于區(qū)塊鏈智能合約和秘密分享技術(shù)的應(yīng)用場景。 區(qū)塊鏈的智能合約由一組代碼組成,這段代碼具有公開透明性。采用零知識證明方法可以保護(hù)合約參與者的身份信息和敏感隱私數(shù)據(jù)。 原始的秘密分享技術(shù)需要借助隱蔽安全的信道將秘密持有者生成的份額傳遞給其他人。PVSS 等技術(shù)通過對份額進(jìn)行加密處理,使其可以在公開的信道上傳遞和存儲,同時(shí)保證份額在傳遞過程中的機(jī)密性。PVSS 使用了非交互的零知識證明技術(shù)用于證明被加密份額的正確性。在零知識證明中,驗(yàn)證者可以將加密后的份額上傳到區(qū)塊鏈,從而使得區(qū)塊鏈能自動(dòng)判斷加密后份額的正確性。智能合約提供了公開透明的存儲和計(jì)算能力,將其與PVSS 相結(jié)合,可以有效提高系統(tǒng)性能。 區(qū)塊鏈智能合約除了能實(shí)現(xiàn)PVSS 協(xié)議之外,還可以為支持公開驗(yàn)證的秘密分享協(xié)議提供服務(wù)。文獻(xiàn)[29]使用智能合約技術(shù)實(shí)現(xiàn)了一種無中心的分層秘密分享(Hierarchical Secret Sharing,HSS)體制。通常份額持有者具有層級的關(guān)系,因此通過多次運(yùn)行秘密分享體制,可以使秘密能夠?qū)崿F(xiàn)多層級的管理。在HSS 體制中:一方面,智能合約承擔(dān)著可信驗(yàn)證者的角色;另一方面,通過智能合約,協(xié)議能夠使用抵押來要求參與者正確地遵守協(xié)議。文獻(xiàn)[29]基于以太坊測試網(wǎng)絡(luò)驗(yàn)證了其方案的可行性,并給出了以太坊Gas 消耗和算法執(zhí)行時(shí)間消耗。相較于非基于區(qū)塊鏈智能合約的HSS 協(xié)議,該文協(xié)議僅需1 輪通信,同時(shí)具備可驗(yàn)證性和公平性且無須可信第三方。 圖3 顯示了基于智能合約構(gòu)造秘密分享協(xié)議的流程。其中:分發(fā)者在分發(fā)過程中通過智能合約實(shí)現(xiàn)份額的分發(fā)和驗(yàn)證;份額持有者在秘密恢復(fù)過程中通過智能合約實(shí)現(xiàn)秘密的重建;智能合約可以提供公開驗(yàn)證計(jì)算、可信存儲、激勵(lì)機(jī)制等服務(wù)。 圖3 基于智能合約實(shí)現(xiàn)秘密分享協(xié)議的過程Fig.3 Procedure of secret sharing protocol implementation based on smart contract 目前,區(qū)塊鏈技術(shù)已經(jīng)從加密貨幣發(fā)展成為一項(xiàng)可編程的分布式基礎(chǔ)設(shè)施,區(qū)塊鏈上的程序也被稱為智能合約。秘密分享協(xié)議可以結(jié)合一些應(yīng)用場景,在智能合約之中實(shí)現(xiàn)并應(yīng)用。 傳統(tǒng)的電子投票系統(tǒng)需要依賴中心化的服務(wù)器來保證系統(tǒng)的完整性和安全性,然而中心化的服務(wù)器本身容易帶來很多其他的問題,如單節(jié)點(diǎn)故障、信息泄露、賄選問題等。文獻(xiàn)[30-31]均結(jié)合應(yīng)用了秘密分享、同態(tài)加密和區(qū)塊鏈智能合約實(shí)現(xiàn)電子投票系統(tǒng)。HSIAO 通過初始化5 臺計(jì)票服務(wù)器,每一個(gè)投票者將投票信息分成5 份,其中任意3 份可以恢復(fù)出對應(yīng)的原始值,從而避免了單節(jié)點(diǎn)故障問題。區(qū)塊鏈智能合約提供了公開透明的存儲和計(jì)算,使得參與者能夠?qū)τ?jì)票過程進(jìn)行審計(jì),提升了投票過程的公平性。 區(qū)塊鏈智能合約在數(shù)據(jù)保護(hù)方面存在不足,為提升智能合約的安全性和隱私性,文獻(xiàn)[32]開發(fā)了基于安全多方計(jì)算的智能合約平臺。該平臺包括3 個(gè)層級:合約層,計(jì)算層和群組通信層。在合約層,提供了智能合約的框架描述,包含實(shí)現(xiàn)流程、語言結(jié)構(gòu)和語法;在計(jì)算層,通用的線性秘密分享技術(shù)被用來保護(hù)參與者的輸入和保證計(jì)算的正確性;在群組通信層,非阻塞的廣播協(xié)議基于非阻塞的消息傳遞接口和拜占庭容錯(cuò)協(xié)議實(shí)現(xiàn),具備異步的具有節(jié)點(diǎn)故障容錯(cuò)的網(wǎng)絡(luò)通信服務(wù)。在該文研究中,秘密分享技術(shù)被用于構(gòu)建安全多方計(jì)算協(xié)議,實(shí)現(xiàn)了群組合作中的信息隱私保護(hù)。 在醫(yī)療領(lǐng)域,結(jié)合使用區(qū)塊鏈智能合約和秘密分享協(xié)議的研究也廣泛流行。文獻(xiàn)[33]提出一種使用區(qū)塊鏈存儲和智能合約驗(yàn)證計(jì)算的醫(yī)療數(shù)據(jù)共享解決方案。由于醫(yī)療數(shù)據(jù)具有極高的隱私性要求,而區(qū)塊鏈提供的是公開透明的存儲,為克服數(shù)據(jù)被竊取和監(jiān)聽的困難,該方案在系統(tǒng)中增加了用戶和群組進(jìn)行秘密分享的軟件層。 一項(xiàng)具體的分布式應(yīng)用的實(shí)施,可以證明基于區(qū)塊鏈的智能合約技術(shù)具有可行性。然而,智能合約還可以進(jìn)一步抽象成為一種無中心、可交互、可執(zhí)行程序的對象。將智能合約和秘密分享相結(jié)合,對網(wǎng)絡(luò)安全或密碼學(xué)領(lǐng)域?qū)⒂羞M(jìn)一步的貢獻(xiàn)。 文獻(xiàn)[34]基于區(qū)塊鏈的智能合約提出CHURP協(xié)議,并實(shí)現(xiàn)了主動(dòng)式的秘密分享技術(shù),其使用非對稱二元多項(xiàng)式得到份額更新過程中的門限值,并使用高效的多項(xiàng)式承諾協(xié)議防止初始化失敗,同時(shí)表明鏈上通信、計(jì)算的高成本性,引入基于點(diǎn)對點(diǎn)網(wǎng)絡(luò)的鏈下通信,從而降低協(xié)議成本,提高可用性。該文附錄指出,所提協(xié)議可用于智能合約認(rèn)證,即通過構(gòu)建共享密鑰,使得基于智能合約即可生成門限簽名,從而提供授權(quán)服務(wù)。 文獻(xiàn)[35]使用基于區(qū)塊鏈智能合約的秘密分享技術(shù)實(shí)現(xiàn)具備“時(shí)間意識”的秘密管理方案。由于門限秘密分享和區(qū)塊鏈都具有去中心化的特性,因此該方案中“時(shí)間”不會被某一個(gè)或幾個(gè)操控而導(dǎo)致秘密提前泄露。區(qū)塊鏈智能合約一方面提供了高效的計(jì)算能力和公共的數(shù)據(jù)存放平臺,另一方面基于以太坊區(qū)塊鏈的代幣獎(jiǎng)勵(lì)誠實(shí)行為和懲罰惡意行為,從而提高了系統(tǒng)的安全性。 文獻(xiàn)[36]使用區(qū)塊鏈實(shí)現(xiàn)公共通告欄和公開驗(yàn)證者,基于DH 交換加密和VSS 協(xié)議實(shí)現(xiàn)分布式密鑰生成ETHDKG 協(xié)議。在ETHDKG 中,份額密文信息、爭議信息、密鑰恢復(fù)信息均通過智能合約傳遞,并且這些信息的正確性要經(jīng)過智能合約的驗(yàn)證。值得注意的是,ETHDKG 采用的DH 交換加密和VSS 協(xié)議并沒有構(gòu)成非交互的PVSS 協(xié)議,因?yàn)樵摲桨钢屑用芎蟮姆蓊~并不能由任何第三方來檢驗(yàn),而需要等份額持有者解密后來判斷。如果份額持有者解密后發(fā)現(xiàn)份額有誤,可構(gòu)造非交互的零知識證明來“抱怨”秘密分發(fā)者,而不泄露自己的份額值。 由于共識效率低下,對于分布式節(jié)點(diǎn),獲得具備一致性、可用性的數(shù)據(jù)是困難的,因此研究者提出公共通告欄[37]的概念。公共通告欄具有活性和持久性的特點(diǎn):活性是指任意惡意的用戶無法阻止誠實(shí)的用戶獲取通告欄上的信息;持久性是指公共通告欄上的信息和數(shù)據(jù)不能被惡意篡改。許多基于秘密分享的多方協(xié)議[27,38]和分布式應(yīng)用[39]基于公共通告欄進(jìn)行實(shí)現(xiàn)。通過假設(shè)公共通告欄,分布式協(xié)議可以規(guī)避共識協(xié)議的討論,并獲得較低的通信復(fù)雜度。 文獻(xiàn)[40]指出,在現(xiàn)實(shí)世界中,由于人為因素,可能出現(xiàn)計(jì)算不公開透明的問題,從而導(dǎo)致不公平現(xiàn)象。該文基于可信硬件和公共通告欄的技術(shù)實(shí)現(xiàn)安全的多方計(jì)算解決方案,其在可信硬件內(nèi)執(zhí)行秘密分享協(xié)議,實(shí)現(xiàn)了見證者解密。 在區(qū)塊鏈技術(shù)落地之前,公共通告欄通常作為一種假設(shè)。隨著近來區(qū)塊鏈的持續(xù)發(fā)展,尤其是支持通用數(shù)據(jù)存儲的區(qū)塊鏈系統(tǒng),如比特幣、以太坊、IPFS(Interplanetary File System)等,使得公共通告欄技術(shù)得以實(shí)現(xiàn)。以比特幣為例,該區(qū)塊鏈系統(tǒng)即是基于點(diǎn)對點(diǎn)通信、多數(shù)節(jié)點(diǎn)誠實(shí)性、數(shù)字簽名技術(shù)、隨機(jī)預(yù)言機(jī)等假設(shè)實(shí)現(xiàn)公共通告欄。 區(qū)塊鏈又稱為分布式記賬技術(shù)。分布式存儲系統(tǒng)的顯著特征是將所有的數(shù)據(jù)以副本的形式分布式地存儲在不同的服務(wù)器中。因此,分布式存儲是分布式記賬的應(yīng)有之意,也是共識的必要條件,更是區(qū)塊鏈數(shù)據(jù)公開透明的基石。區(qū)塊鏈中保存所有數(shù)據(jù)的節(jié)點(diǎn)稱為全節(jié)點(diǎn)。比特幣的發(fā)明者考慮到普通的個(gè)人電腦、手持設(shè)備計(jì)算能力和存儲能力有限,為這些輕量級設(shè)備設(shè)計(jì)了可以使用的客戶端,又稱為輕節(jié)點(diǎn),提出了簡易支付驗(yàn)證(Simple Payment Verification,SPV)技術(shù)。由于區(qū)塊鏈系統(tǒng)采用Merkle 樹的數(shù)據(jù)結(jié)構(gòu)對交易進(jìn)行管理,因此降低了交易正確性的驗(yàn)證成本并提升了查詢速度,使得輕節(jié)點(diǎn)雖不能參與共識(即不能進(jìn)行挖礦),但能夠參與交易的發(fā)起和查詢,以及交易準(zhǔn)確性的驗(yàn)證。 隨著越來越多區(qū)塊鏈?zhǔn)聞?wù)和交易的生成,區(qū)塊鏈系統(tǒng)數(shù)據(jù)存儲量與日俱增。為減少區(qū)塊鏈數(shù)據(jù)的存儲量,除SPV 技術(shù)外,基于編碼技術(shù)[41-42]、分布式文件存儲系統(tǒng)[43]和多項(xiàng)式承諾技術(shù)[44]等許多相關(guān)研究被提出。本節(jié)介紹采用秘密分享技術(shù)的門限特性來降低存儲數(shù)據(jù)冗余度的研究。 文獻(xiàn)[45]提出了分布式存儲區(qū)塊鏈(Distributed Storage Blockchain,DSB)技術(shù)。在DSB 中,每個(gè)節(jié)點(diǎn)僅存儲所有數(shù)據(jù)的一部分,顯著降低了區(qū)塊鏈單節(jié)點(diǎn)的數(shù)據(jù)存儲量。在該方案中,區(qū)塊鏈的節(jié)點(diǎn)被劃分為不同的區(qū)域,每一個(gè)區(qū)域有一組對應(yīng)的公私鑰對(PK,SK)。每個(gè)區(qū)域的區(qū)塊數(shù)據(jù)均用PK 加密保護(hù),SK在區(qū)域內(nèi)用秘密分享協(xié)議,由區(qū)域內(nèi)的每個(gè)節(jié)點(diǎn)保管其中的一個(gè)份額。加密后的區(qū)塊數(shù)據(jù)使用信息分發(fā)算法(Information Dispersal Algorithm,IDA)同樣分布式地存儲在區(qū)域內(nèi)的節(jié)點(diǎn)中。在之后的工作中,文獻(xiàn)[46]進(jìn)一步提高了數(shù)據(jù)的完整性,同時(shí)分析了存儲消耗和數(shù)據(jù)丟失率的關(guān)系,以及數(shù)據(jù)恢復(fù)消耗和安全性的關(guān)系。為解決DSB 技術(shù)中當(dāng)節(jié)點(diǎn)發(fā)起DoS 攻擊時(shí)會引起巨大網(wǎng)絡(luò)通信開銷的問題,文獻(xiàn)[47]提出了局部秘密分享(Local Secret Sharing,LSS)的概念。LSS 是一種層次化的秘密分享技術(shù),圖4 體現(xiàn)了其中的層級關(guān)系。LSS 包含一個(gè)全局秘密和多個(gè)局部子秘密,并且由部分子秘密能夠恢復(fù)出全局秘密。LSS與HSS類似,但HSS 強(qiáng)調(diào)的是全局秘密的分層管理,而LSS 中局部秘密需要用于恢復(fù)子秘密。 圖4 LSS 協(xié)議的層級關(guān)系Fig.4 Hierachical relationship in LSS protocol 在文獻(xiàn)[45]提出的DSB 協(xié)議中,全局秘密和局部子秘密采用不同的秘密分享多項(xiàng)式,存儲開銷較大,而文獻(xiàn)[47]提出的LSS 協(xié)議僅需維護(hù)一套多項(xiàng)式,能夠使得密鑰存儲開銷減半,同時(shí)也優(yōu)化了密鑰恢復(fù)的網(wǎng)絡(luò)通信開銷。LSS 是基于局部可修復(fù)碼(Locally Recoverable Code,LRC)技術(shù)實(shí)現(xiàn)的。在編碼理論中,通常通過添加修復(fù)碼位來校正錯(cuò)誤位。在全局秘密管理中,文獻(xiàn)[47]使用Shamir 秘密分享協(xié)議,將份額分發(fā)給所有的參與者節(jié)點(diǎn)。在局部子秘密的管理中,LSS 協(xié)議對每一個(gè)區(qū)域利用LRC 技術(shù)的編碼多項(xiàng)式應(yīng)對一個(gè)節(jié)點(diǎn)故障的情況。 雖然文獻(xiàn)[46-47]均使用秘密分享技術(shù)降低了區(qū)塊鏈存儲冗余度,但是區(qū)塊鏈中的區(qū)塊可能由數(shù)千筆交易構(gòu)成,從而導(dǎo)致區(qū)塊也非常大,往往遠(yuǎn)大于一個(gè)大整數(shù)。當(dāng)一個(gè)區(qū)塊被切分成多個(gè)切片再進(jìn)行秘密分享時(shí),會導(dǎo)致需要存儲大量的中間信息。鑒于此,文獻(xiàn)[37]提出了使用多值秘密分享(Multi-Secret Sharing,MSS)的區(qū)塊鏈存儲優(yōu)化方案。該方案先將原始的區(qū)塊鏈切片,然后采用遞歸調(diào)用Shamir 秘密分享協(xié)議的方式,重復(fù)利用秘密分享產(chǎn)生的中間結(jié)果,從而減少了所需的中間輔助變量,最終優(yōu)化了存儲效率。 表4 對比了傳統(tǒng)區(qū)塊鏈[3]以及文獻(xiàn)[46-47]方案的單節(jié)點(diǎn)存儲消耗、恢復(fù)區(qū)塊時(shí)通信量和系統(tǒng)容錯(cuò)能力。假設(shè)區(qū)塊占用空間大小不超過η,區(qū)塊頭占用空間大小不超過q(η和q均用整數(shù)表示),ρ是訪問其他子區(qū)域的額外開銷,n是總節(jié)點(diǎn)數(shù),t是分區(qū)的節(jié)點(diǎn)數(shù)或門限值。雖然通過文獻(xiàn)[46-47]方案能夠?qū)^(qū)塊鏈系統(tǒng)存儲帶來優(yōu)化,但往往只適用于節(jié)點(diǎn)相對固定的區(qū)塊鏈系統(tǒng),即聯(lián)盟鏈。 表4 存儲開銷、恢復(fù)區(qū)塊時(shí)通信量和容錯(cuò)性的對比Table 4 Comparison of storage cost,communication traffic in block recovery and fault tolerance 將區(qū)塊鏈的分布式容錯(cuò)存儲和秘密分享技術(shù)相結(jié)合,能夠提供許多信息安全所需的服務(wù)。這些服務(wù)對密碼體制的功能、云計(jì)算、物聯(lián)網(wǎng)等應(yīng)用的效率和可用性均具有重要作用。 除了在區(qū)塊鏈本身的存儲解決方案上進(jìn)行優(yōu)化,區(qū)塊鏈本身也是一個(gè)分布式的存儲數(shù)據(jù)庫。一些其他區(qū)塊鏈項(xiàng)目,如StoreJ[48],使用區(qū)塊鏈來存放加密后的隱私數(shù)據(jù)信息,用于防止個(gè)人信息丟失,從而保護(hù)個(gè)人隱私。由于區(qū)塊鏈的透明性,StoreJ 中的節(jié)點(diǎn)可能通過收集和整合數(shù)據(jù)對加密的隱私數(shù)據(jù)發(fā)起密文攻擊,從而降低隱私數(shù)據(jù)的安全性。文獻(xiàn)[49]提出一種使用秘密分享和區(qū)塊鏈的點(diǎn)對點(diǎn)網(wǎng)絡(luò)在線存儲的方案,而不使用區(qū)塊鏈直接存放加密數(shù)據(jù)。該方案使用秘密分享技術(shù),通過將秘密拆分成份額,利用點(diǎn)對點(diǎn)網(wǎng)絡(luò)分布式地儲存在網(wǎng)絡(luò)內(nèi)存中,而利用區(qū)塊鏈保存那些擁有份額的節(jié)點(diǎn)列表。由于點(diǎn)對點(diǎn)網(wǎng)絡(luò)本身的異構(gòu)性和變動(dòng)性,區(qū)塊鏈中的列表數(shù)據(jù)會通過共識算法使得每個(gè)人的隱私數(shù)據(jù)保留在網(wǎng)絡(luò)中。在這樣的點(diǎn)對點(diǎn)網(wǎng)絡(luò)中,個(gè)人通過其ID 和密碼授權(quán)獲得個(gè)人私有數(shù)據(jù)的權(quán)限,通過區(qū)塊鏈中的節(jié)點(diǎn)列表得知應(yīng)該向點(diǎn)對點(diǎn)網(wǎng)絡(luò)中的哪些節(jié)點(diǎn)獲取數(shù)據(jù)。 IPFS 是另一個(gè)存儲類的區(qū)塊鏈項(xiàng)目,主要提供解決大文件大數(shù)據(jù)的存儲方案。IPFS 同樣僅提供透明的存儲。為了保護(hù)數(shù)據(jù)的機(jī)密性和用戶的隱私,文獻(xiàn)[10]使用秘密分享技術(shù)、IPFS 存儲和以太坊實(shí)現(xiàn)了一種透明傳輸、可確權(quán)、可訪問控制的文件共享方案。在該方案中,文件所有者首先將文件上傳至IPFS 中,然后得到IPFS 返回的文件哈希值。文件所有者用智能合約記錄IPFS 中對其文件存儲的所有節(jié)點(diǎn),并使用秘密分享技術(shù)將哈希值分散到上述節(jié)點(diǎn)中,最后將加密后的秘密份額上傳至區(qū)塊鏈中。 在云數(shù)據(jù)管理方面,文獻(xiàn)[50]借助區(qū)塊鏈去中心化存儲和計(jì)算的特性,將云數(shù)據(jù)的訪問控制能力部署在智能合約中,從而構(gòu)建了無中心的云數(shù)據(jù)管理模式。同時(shí),為了從云服務(wù)器上將加密云數(shù)據(jù)的密鑰和云數(shù)據(jù)分離開來,該文使用了秘密分享技術(shù)分布式地管理密鑰。但是,該方案需要加入一種新的區(qū)塊鏈節(jié)點(diǎn)——“主節(jié)點(diǎn)”來進(jìn)行存儲秘密分享的密鑰。在物聯(lián)網(wǎng)領(lǐng)域,文獻(xiàn)[51]為了解決智慧城市中個(gè)人管理海量隱私數(shù)據(jù)的問題,提出通過區(qū)塊鏈存儲和管理云服務(wù)商的訪問權(quán)限,并使用秘密分享技術(shù)分布式地管理用戶個(gè)人隱私信息。 中心化系統(tǒng)由于單點(diǎn)共識,因而具備高吞吐率和高響應(yīng)率,而去中心化系統(tǒng)能夠解決對等協(xié)作方之間的不信任問題并提高容錯(cuò)能力。在計(jì)算機(jī)硬件條件和網(wǎng)絡(luò)環(huán)境均不斷優(yōu)化的背景下,中心化系統(tǒng)的性能和效率快速增長,而去中心化系統(tǒng)的吞吐率由于低效的共識卻提升甚微。秘密分享協(xié)議通常是為了構(gòu)建具有容錯(cuò)性或者去中心化的系統(tǒng),秘密分享和區(qū)塊鏈兩者獨(dú)立或關(guān)聯(lián)的研究還有諸多可以推進(jìn)的探索方向。一方面,隨著秘密分享技術(shù)及其對應(yīng)安全多方計(jì)算應(yīng)用的介入,區(qū)塊鏈有了新的探索方向,包括基于拜占庭容錯(cuò)協(xié)議的區(qū)塊鏈、基于權(quán)益證明的區(qū)塊鏈、區(qū)塊鏈存儲優(yōu)化、基于區(qū)塊鏈的安全多方計(jì)算等;另一方面,由于對區(qū)塊鏈的理論支撐或應(yīng)用場景的需要,秘密分享協(xié)議相關(guān)的技術(shù)有著更為細(xì)分的發(fā)展方向,包括VSS、PVSS、PSS、APSS、VSSR、LSS、MSS 等。表5 對比了秘密分享相關(guān)協(xié)議的特點(diǎn)和用途。 表5 秘密分享相關(guān)協(xié)議對比Table 5 Comparison of related secret sharing protocols 制約分布式或去中心化系統(tǒng)共識的重要原因在于協(xié)議的高復(fù)雜度,尤其在分布式節(jié)點(diǎn)數(shù)量快速增長的情況下。未來可從以下方面入手進(jìn)行更深入的研究: 1)在分布式場景下,為了達(dá)成共識,需要考量每個(gè)節(jié)點(diǎn)或所有節(jié)點(diǎn)需要執(zhí)行的計(jì)算量,即計(jì)算復(fù)雜度。由于在分布式場景中,通常還考慮了可能存在未知的惡意節(jié)點(diǎn)或損壞節(jié)點(diǎn),因此協(xié)議的設(shè)計(jì)還包括了必要的驗(yàn)證計(jì)算,驗(yàn)證所花費(fèi)的計(jì)算量也屬于計(jì)算復(fù)雜度。基于拜占庭容錯(cuò)或PoS 的協(xié)議和共識算法通常會在每一輪共識中選取一個(gè)“領(lǐng)導(dǎo)”(leader)推進(jìn)協(xié)議,leader 對各參與者傳輸值的計(jì)算復(fù)雜度及其網(wǎng)絡(luò)傳輸時(shí)延最終決定了平均的共識進(jìn)度。此外,當(dāng)傳輸值還需要進(jìn)行隱私保護(hù)時(shí),通常需要結(jié)合SS 協(xié)議,尤其是PVSS 協(xié)議。此時(shí),由于PVSS 協(xié)議采用了NIZK 證明,因此參與者節(jié)點(diǎn)還需要對證明進(jìn)行驗(yàn)證,從而可能增加計(jì)算復(fù)雜度。 2)在分布式場景中為了達(dá)成共識,需要考量整個(gè)網(wǎng)絡(luò)的通信量,即通信復(fù)雜度。網(wǎng)絡(luò)通信內(nèi)容既可以是正常的協(xié)議所需的數(shù)據(jù),也可以是惡意節(jié)點(diǎn)為破壞信息系統(tǒng)而偽造的數(shù)據(jù)。在區(qū)塊鏈系統(tǒng)中,數(shù)據(jù)和塊通常是經(jīng)過簽名認(rèn)證過的,從而避免了DDoS 攻擊。在基于拜占庭容錯(cuò)或PoS 共識的系統(tǒng)中,通常每個(gè)參與者節(jié)點(diǎn)都需要發(fā)出各自的信息以對最后的共識做出貢獻(xiàn),從而使得網(wǎng)絡(luò)通信復(fù)雜度至少達(dá)到O(n2),并且不誠實(shí)的節(jié)點(diǎn)可能故意偏離協(xié)議規(guī)定,從而引起較高的網(wǎng)絡(luò)通信復(fù)雜度。上文討論的公共通告欄能夠在一定程度上降低協(xié)議的通信復(fù)雜度,但是高效構(gòu)建公共通告欄也是一項(xiàng)值得繼續(xù)探究的問題。 3)為了達(dá)成某種協(xié)議的共識,節(jié)點(diǎn)間需要進(jìn)行足夠的通信協(xié)商輪次。由于網(wǎng)絡(luò)有延時(shí)性,因此低輪次的網(wǎng)絡(luò)通信對于達(dá)成共識更具備現(xiàn)實(shí)價(jià)值。相對于VSS 協(xié)議,PVSS 協(xié)議數(shù)據(jù)可以采取公共通信信道并可以接受任何人的驗(yàn)證,因此,PVSS 往往只需要一次性分發(fā)份額,而不需要參與解決份額相關(guān)的爭議。在基于(P)VSS 實(shí)現(xiàn)的DKG 協(xié)議和Beacon 協(xié)議中,通信輪次都是重要指標(biāo),而不同的DKG 協(xié)議和Beacon 協(xié)議的設(shè)計(jì)可以產(chǎn)生不同的區(qū)塊鏈模型和共識算法。通過對比不同的拜占庭容錯(cuò)共識協(xié)議,可以看出通信輪次和網(wǎng)絡(luò)通信量之間通常存在權(quán)衡和折中。 4)網(wǎng)絡(luò)模型包括同步模型、半同步模型和異步模型,不同的通信模型假設(shè)會決定協(xié)議可能存在不同的漏洞和受到不同類型的攻擊,因此,協(xié)議也需要有相對應(yīng)的處理方式。同步模型是一種較強(qiáng)的假設(shè),優(yōu)點(diǎn)是協(xié)議設(shè)計(jì)者可以借助一些其他工具(如公共通告欄),缺點(diǎn)是可能受到一些由于攻擊者利用網(wǎng)絡(luò)時(shí)延差而發(fā)起的網(wǎng)絡(luò)攻擊。異步或者半同步通信模型能夠更好地模擬真實(shí)的互聯(lián)網(wǎng)環(huán)境,但通常對應(yīng)的協(xié)議需要更高的網(wǎng)絡(luò)通信復(fù)雜度或更多的通信輪次,甚至犧牲一部分活性或安全性。 5)可重配置性是指分布式系統(tǒng)中節(jié)點(diǎn)是否可以自由進(jìn)出。比特幣系統(tǒng)的工作量證明不需要依賴其他節(jié)點(diǎn)的信息和數(shù)據(jù),可以由節(jié)點(diǎn)根據(jù)歷史區(qū)塊鏈數(shù)據(jù)獨(dú)立完成,因此節(jié)點(diǎn)自由度高,可以自由進(jìn)出。基于拜占庭容錯(cuò)或PoS 共識的協(xié)議通常假設(shè)固定節(jié)點(diǎn)數(shù)量和一定比例之內(nèi)的惡意節(jié)點(diǎn)數(shù)量,節(jié)點(diǎn)間需要通過協(xié)作確定最終的共識,惡意節(jié)點(diǎn)加入或誠實(shí)節(jié)點(diǎn)離開可能使得誠實(shí)和惡意節(jié)點(diǎn)比例失衡,最終使得系統(tǒng)為惡意節(jié)點(diǎn)所控制,并且節(jié)點(diǎn)的進(jìn)出本身就需要達(dá)成共識,即何種節(jié)點(diǎn)可以進(jìn)出,何時(shí)可以進(jìn)出,因此,基于拜占庭容錯(cuò)或PoS 共識的協(xié)議往往缺乏可重配置性。基于主動(dòng)式秘密分享的協(xié)議致力于解決份額變化或參與節(jié)點(diǎn)變化,具有解決可重配置性問題的潛力。此外,Dfinity 團(tuán)隊(duì)提出的公開可驗(yàn)證可重新分發(fā)的秘密分享協(xié)議(Public Verifiable Resharing Scheme,PVRS)[53]也使解決可重配置性問題獲得了突破性進(jìn)展。因此,PVRS 的研究也有待進(jìn)一步深入,同時(shí)PSS 和PVRS 的聯(lián)系及區(qū)別也有待發(fā)掘。 6)容錯(cuò)能力是指分布式系統(tǒng)中可以容忍的損壞和惡意節(jié)點(diǎn)比例以及發(fā)掘惡意行為的能力。容錯(cuò)比例越高、發(fā)掘惡意行為能力越強(qiáng)說明容錯(cuò)能力越強(qiáng)。由于通常會假設(shè)惡意節(jié)點(diǎn)具有共謀性,因此為了避免惡意節(jié)點(diǎn)占據(jù)壓倒性優(yōu)勢,需要假定誠實(shí)節(jié)點(diǎn)數(shù)多于惡意節(jié)點(diǎn)數(shù),可推斷出惡意節(jié)點(diǎn)比例通常小于1/2。SS 協(xié)議中分發(fā)者可以是惡意的,因此VSS 被提出用于解決分發(fā)者的信任問題,提升容錯(cuò)能力。PVSS 協(xié)議更是允許任何人均可以驗(yàn)證分發(fā)者的誠實(shí)性,使得分布式系統(tǒng)具備更好的公開性和透明性。 7)區(qū)塊鏈存儲優(yōu)化,即基于區(qū)塊鏈信息存儲冗余度高的客觀現(xiàn)實(shí),在保證安全的情況下,降低區(qū)塊鏈全網(wǎng)的存儲能力。本文第4 節(jié)介紹了研究人員在相關(guān)領(lǐng)域做出的貢獻(xiàn),然而這些研究成果還沒有被應(yīng)用到主流的區(qū)塊鏈系統(tǒng)中。存儲優(yōu)化(單節(jié)點(diǎn)的存儲量減少)可能影響節(jié)點(diǎn)校驗(yàn)區(qū)塊的能力和用戶訪問區(qū)塊鏈數(shù)據(jù)的便捷性。因此,如何設(shè)計(jì)兼顧存儲優(yōu)化和功能完整性的區(qū)塊鏈,也是具有研究價(jià)值的課題。 8)區(qū)塊鏈共識算法[54]決定了區(qū)塊鏈應(yīng)用的公信力、吞吐率、擴(kuò)容能力等,而優(yōu)良的共識算法應(yīng)著重考慮協(xié)議復(fù)雜度、可重配置性、容錯(cuò)能力、存儲優(yōu)化等指標(biāo)。為了獲得更優(yōu)的區(qū)塊鏈共識算法,應(yīng)繼續(xù)深入研究秘密分享相關(guān)協(xié)議。此外,通過使用秘密分享實(shí)現(xiàn)分片技術(shù)[55],對節(jié)點(diǎn)進(jìn)行分組管理也可以提升共識效率。 區(qū)塊鏈?zhǔn)且环N基于經(jīng)濟(jì)學(xué)和密碼學(xué)的去中心化系統(tǒng)。區(qū)塊鏈的透明計(jì)算和存儲特性降低了信任成本,去中心化特點(diǎn)提升了容錯(cuò)能力。而秘密分享是構(gòu)建分布式系統(tǒng)和去中心化協(xié)議的基礎(chǔ)技術(shù),融合應(yīng)用秘密分享技術(shù)可使區(qū)塊鏈得到進(jìn)一步發(fā)展。本文從信息安全三要素角度,指出區(qū)塊鏈系統(tǒng)和秘密分享技術(shù)存在高度契合,分別闡述區(qū)塊鏈、秘密分享及安全多方計(jì)算等基礎(chǔ)理論知識,并進(jìn)一步介紹秘密分享技術(shù)與區(qū)塊鏈共識層、合約層和存儲層相結(jié)合的研究成果。在未來,許多基于秘密分享的多方協(xié)作協(xié)議均能通過區(qū)塊鏈以較低成本實(shí)現(xiàn)。同樣,秘密分享也能為區(qū)塊鏈技術(shù)發(fā)展帶來重要的探索方向——更多基于秘密分享的區(qū)塊鏈共識、智能合約及存儲的研究將被提出和實(shí)現(xiàn)。1.2 區(qū)塊鏈系統(tǒng)
1.3 拜占庭容錯(cuò)
1.4 安全多方計(jì)算
2 秘密分享與區(qū)塊鏈共識的融合研究
2.1 共識算法的拜占庭容錯(cuò)性特點(diǎn)
2.2 秘密分享與拜占庭容錯(cuò)協(xié)議
2.3 秘密分享對PoS 共識的貢獻(xiàn)
3 秘密分享與智能合約的融合研究
3.1 基于智能合約的秘密分享體制
3.2 智能合約和秘密分享結(jié)合的應(yīng)用
4 秘密分享與區(qū)塊鏈存儲的融合研究
4.1 公共通告欄
4.2 區(qū)塊鏈系統(tǒng)存儲優(yōu)化
4.3 基于區(qū)塊鏈存儲和秘密分享的服務(wù)
5 未來展望
6 結(jié)束語