從數(shù)據(jù)分析、密碼學(xué)角度看區(qū)塊鏈未來
編者按:區(qū)塊鏈技術(shù)是近年來的熱點(diǎn)話題。無論是比特幣、以太坊等密碼學(xué)貨幣價(jià)格的大幅波動(dòng),還是各國(guó)政府機(jī)構(gòu)對(duì)區(qū)塊鏈技術(shù)的大力研發(fā)投入,都預(yù)示著區(qū)塊鏈技術(shù)已經(jīng)處在時(shí)代的“風(fēng)口浪尖”。本文從數(shù)據(jù)分析及密碼學(xué)的角度,結(jié)合最近微軟亞洲研究院可信系統(tǒng)研究組發(fā)表的兩篇論文,向大家介紹區(qū)塊鏈技術(shù)的相關(guān)現(xiàn)狀以及技術(shù)趨勢(shì)。
區(qū)塊鏈?zhǔn)且粋€(gè)復(fù)雜的點(diǎn)對(duì)點(diǎn)系統(tǒng),其中既包含技術(shù)的部分(例如網(wǎng)絡(luò)、密碼學(xué)、虛擬機(jī)等),也包含對(duì)生態(tài)中各個(gè)角色的決策(例如攻擊者、共識(shí)維護(hù)者即礦工、交易所等)。例如,區(qū)塊鏈中的節(jié)點(diǎn)都需要按照技術(shù)的部分來運(yùn)行,同時(shí)根據(jù)自身的利益,也可以采取對(duì)應(yīng)的決策對(duì)區(qū)塊鏈系統(tǒng)產(chǎn)生正向或者反向的影響。
微軟亞洲研究院可信系統(tǒng)研究組多年來持續(xù)探索區(qū)塊鏈技術(shù)的前沿發(fā)展,對(duì)技術(shù)部分以及生態(tài)部分都有著長(zhǎng)期的研究。因此,可信系統(tǒng)研究組的研究員們從技術(shù)和生態(tài)兩個(gè)角度分別闡述了區(qū)塊鏈技術(shù)的相關(guān)現(xiàn)狀及未來趨勢(shì):1、生態(tài)部分,從數(shù)據(jù)分析的角度,研究共識(shí)維護(hù)者的行為以及發(fā)展趨勢(shì); 2、技術(shù)部分,通過研究目前最熱門的密碼學(xué)技術(shù)之一——零知識(shí)證明,探索其如何能更高效地服務(wù)于區(qū)塊鏈系統(tǒng)。
數(shù)據(jù)分析——以太坊頭部三大礦池?fù)碛?3%的算力
區(qū)塊鏈系統(tǒng)以其“不可偽造”、“全程留痕”、“可以追溯”、“公開透明”、“集體維護(hù)”等特征聞名業(yè)界,金融、供應(yīng)鏈管理、醫(yī)療健康等領(lǐng)域也在利用其特性,積極部署區(qū)塊鏈系統(tǒng)。但在基于工作量證明共識(shí)(Proof-of-work, PoW)的區(qū)塊鏈系統(tǒng)中,還存在“51%算力攻擊”威脅著系統(tǒng)安全,也就是說,如果有某種勢(shì)力擁有系統(tǒng)中的51%算力,那么就有可能“顛覆”系統(tǒng)。
在現(xiàn)實(shí)中,頭部礦池掌控大量算力,也擁有威脅系統(tǒng)安全的潛在力量。如圖1所示,以太坊的頭部三大礦池(Spark Pool, Ethermine, F2Pool)已掌握超過占全網(wǎng)53%的算力,已經(jīng)能夠發(fā)起”51%算力攻擊“。此外,其他 PoW 區(qū)塊鏈亦存在頭部礦池掌握大多數(shù)算力的情況。
圖1:以太坊算力分布圖(源自 Etherscan,2021.03.22)
為了深入了解、分析區(qū)塊鏈系統(tǒng),微軟亞洲研究院和清華大學(xué)的科研人員提出了對(duì)以太坊礦池參與者的首次大規(guī)模研究。研究員們通過數(shù)據(jù)分析了解礦池參與者的算力分布和挖礦行為,進(jìn)一步刻畫以太坊算力去中心化程度,并將研究的分析見解發(fā)表了論文“Characterizing Ethereum’s Mining Power Decentralization at a Deeper Level”。該工作已被全球計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域的重要會(huì)議 INFOCOM 2021 接收。
論文地址:https://www.microsoft.com/en-us/research/uploads/prod/2021/02/infocom-camready.pdf
該文章作者中,曾麗儀來自清華大學(xué),現(xiàn)為微軟亞洲研究院實(shí)習(xí)生,與微軟亞洲研究院創(chuàng)新工程組郭眾鑫、可信系統(tǒng)研究組陳洋、陳碩、張憲等在區(qū)塊鏈研究上有長(zhǎng)期的合作。
以太坊的挖礦生態(tài)結(jié)構(gòu)如圖2所示,區(qū)塊記錄礦工帳號(hào),這些帳號(hào)來自礦池管理者或者獨(dú)立礦工,他們可直接獲得系統(tǒng)發(fā)放的挖礦獎(jiǎng)勵(lì),當(dāng)?shù)V池收到獎(jiǎng)勵(lì)后再通過鏈上交易分發(fā)給礦池參與者。過去,分析算力去中心化的研究工作主要停留在分析頭部礦池的算力分布,忽略了其他挖礦參與者的算力情況。因此,微軟亞洲研究院的研究員們認(rèn)為研究以太坊算力去中心化情況不能僅僅局限于分析挖礦節(jié)點(diǎn)(礦池和獨(dú)立礦工)的算力分布,也應(yīng)該考慮礦池參與者的挖礦行為和算力分布情況,為度量算力去中心化程度和防止算力集中的解決方案提供更多洞悉。
圖2:以太坊挖礦生態(tài)結(jié)構(gòu)圖
然而,以太坊帳號(hào)都是去實(shí)名化的,單從鏈上交易無法準(zhǔn)確識(shí)別礦池參與者的帳號(hào),目前學(xué)術(shù)界并沒有關(guān)于礦池參與者的真實(shí)數(shù)據(jù)集。所以,需要結(jié)合鏈上和鏈下的多個(gè)數(shù)據(jù)源才可以識(shí)別礦池參與者帳號(hào)和礦池分發(fā)獎(jiǎng)勵(lì)交易。數(shù)據(jù)集識(shí)別流程如圖3所示。
圖3:以太坊挖礦數(shù)據(jù)集識(shí)別流程圖
由于部分礦池會(huì)在 Etherscan(以太坊搜索引擎)公開帳號(hào)信息,部分大型礦池也會(huì)給挖礦參與者提供查詢挖礦收益信息的 API,以用于識(shí)別某個(gè)以太坊帳號(hào)是否屬于其礦池參與者。因此,研究員們可以在 Etherscan 上爬取公開身份的礦池帳號(hào),并從以太坊區(qū)塊鏈數(shù)據(jù)庫提取識(shí)別的礦池發(fā)出的交易,收集這些交易的接收帳號(hào),從而用于礦池 API 識(shí)別。能被礦池 API 識(shí)別的帳號(hào)就可確認(rèn)為礦池參與者帳號(hào),然后再相應(yīng)地提取識(shí)別的礦池發(fā)至礦池參與者的獎(jiǎng)勵(lì)交易。
通過首個(gè)大規(guī)模對(duì)以太坊礦池參與者的識(shí)別和分析研究,微軟亞洲研究院和清華大學(xué)的研究員們創(chuàng)建了首個(gè)大規(guī)模以太坊挖礦數(shù)據(jù)集 E-PAR。該數(shù)據(jù)集涵蓋了以太坊自上線(2015年7月30日)以來至2020年4月10日近5年的數(shù)據(jù),其中包含所有礦工帳號(hào)的獎(jiǎng)勵(lì)交易、識(shí)別的礦池帳號(hào)、識(shí)別的礦池參與者帳號(hào)和礦池發(fā)至礦池參與者的獎(jiǎng)勵(lì)交易,且覆蓋了近兩年內(nèi)占全網(wǎng)平均77%算力的挖礦行為。
E-PAR 數(shù)據(jù)集揭示了礦池之下礦池參與者的算力分布情況、礦池參與者同時(shí)參與多個(gè)礦池或在多個(gè)礦池間跳轉(zhuǎn)的挖礦行為、礦工選擇加入礦池的多元原因,從而進(jìn)一步豐富了以太坊算力去中心化程度的評(píng)估,討論了礦池挖礦算力的可控性,推理思考了現(xiàn)有研究工作提出的阻止礦池集中算力的解決方案的可行性,給區(qū)塊鏈社區(qū)帶來了基于數(shù)據(jù)驅(qū)動(dòng)的深層次的算力分布研究。想要了解更多詳細(xì)情況,可查看數(shù)據(jù)集。
數(shù)據(jù)集 GitHub 地址:https://github.com/yangsrc/pool-dataset
密碼學(xué)——零知識(shí)證明提升區(qū)塊鏈性能和隱私
除了從數(shù)據(jù)分析角度解析區(qū)塊鏈生態(tài)的發(fā)展趨勢(shì),微軟亞洲研究院的研究員們還從技術(shù)角度,探索了使用現(xiàn)代密碼學(xué)提升區(qū)塊鏈性能以及隱私保護(hù)的重要技術(shù)——零知識(shí)證明。
零知識(shí)證明(Zero-Knowledge Proof)于20 世紀(jì) 80 年代初被提出,是現(xiàn)代密碼學(xué)的重要基礎(chǔ)之一,也是現(xiàn)代密碼學(xué)研究的熱點(diǎn)。其在隱私性和可驗(yàn)證性之間搭建起了一座橋梁,原理如下:證明者 P 能在不透露 w 的情況下,向驗(yàn)證者 V 發(fā)送一個(gè)證明(proof),證明 P 本人知道一個(gè) w,使得給定公開輸入 x、公開輸出 y 以及程序 f,滿足 f(x,w)=y。舉例而言,假設(shè) P 為金融機(jī)構(gòu),V 為監(jiān)管部門,w 為涉及用戶交易的隱私數(shù)據(jù),f 為交易是否合規(guī)的驗(yàn)證程序,x 為公開數(shù)據(jù),y 為是否合規(guī)的結(jié)果,那么零知識(shí)證明將保證金融機(jī)構(gòu)能在不透露用戶隱私的情況下,向相關(guān)監(jiān)管部門證明其涉及到用戶的交易是合規(guī)的。
正是由于零知識(shí)證明獨(dú)特的性質(zhì),所以它被廣泛應(yīng)用于區(qū)塊鏈系統(tǒng)中,以增強(qiáng)區(qū)塊鏈的隱私保護(hù)、增加區(qū)塊鏈的交易吞吐:
增強(qiáng)隱私:由于區(qū)塊鏈的鏈上交易數(shù)據(jù)公開可見,所以各種交易數(shù)據(jù)容易被提取、分析,導(dǎo)致隱私泄露,這是業(yè)界認(rèn)為區(qū)塊鏈缺乏隱私保護(hù)機(jī)制的原因。而經(jīng)過零知識(shí)證明加持之后,區(qū)塊鏈中的用戶就可以將相關(guān)的鏈接關(guān)系以及交易金額等信息隱藏起來,并能讓區(qū)塊鏈礦工驗(yàn)證交易的正確性,從而達(dá)到隱私保護(hù)的目的。目前,零知識(shí)證明已被廣泛應(yīng)用在各種隱私保護(hù)區(qū)塊鏈中,例如 Monero、Zcash 等(了解更多相關(guān)細(xì)節(jié),可參考文章《一文讀懂區(qū)塊鏈上的隱私與監(jiān)管問題》)。
提升吞吐:除了隱私問題,區(qū)塊鏈的低吞吐率也遭業(yè)界詬病。例如隨著以太坊上 DeFi 應(yīng)用的興起,以太坊交易數(shù)量猛增并造成擁堵,導(dǎo)致產(chǎn)生極高的交易費(fèi)用。運(yùn)用零知識(shí)證明技術(shù),用戶可以先將相關(guān)交易發(fā)送給交易聚合節(jié)點(diǎn),然后聚合節(jié)點(diǎn)再生成關(guān)于大量交易都是有效的零知識(shí)證明,并把對(duì)應(yīng)的證明發(fā)送至合約由礦工們進(jìn)行驗(yàn)證,從而節(jié)省礦工對(duì)大量交易進(jìn)行重新計(jì)算的開銷,極大降低被聚合交易的交易費(fèi)用。這種技術(shù)被稱為 zk-rollup,目前有很多項(xiàng)目都在進(jìn)行相關(guān)的開發(fā),例如 zkSync,zkSwap。
回到零知識(shí)證明本身,證明者生成證明的過程往往涉及大量復(fù)雜的密碼學(xué)計(jì)算,這就使得生成證明的時(shí)間會(huì)特別長(zhǎng),大大超出了應(yīng)用可以接受的延遲范圍,并極大地限制了零知識(shí)證明的使用場(chǎng)景。例如由于 Zcash 之前生成證明的開銷太大,普通用戶大量使用了沒有隱私保護(hù)的交易方式,從而引發(fā)了隱私泄露;又例如現(xiàn)在的 zk-rollup 技術(shù)處理的交易所涉及到的程序復(fù)雜度都相對(duì)較低,一旦之后的復(fù)雜度有所提升,那么就會(huì)造成聚合節(jié)點(diǎn)生成證明的時(shí)間過長(zhǎng),進(jìn)而影響交易的實(shí)時(shí)性。
針對(duì)這個(gè)問題,來自微軟亞洲研究院、北京大學(xué)、清華大學(xué)及上海樹圖區(qū)塊鏈研究院等機(jī)構(gòu)的科研人員聯(lián)合提出了名為“PipeZK”的高效硬件加速系統(tǒng),可將零知識(shí)證明的證明過程加速10倍以上,證明過程的延遲下降一個(gè)數(shù)量級(jí)。PipeZK 系統(tǒng)可廣泛應(yīng)用于隱私保護(hù)以及區(qū)塊鏈 Layer-2 技術(shù)場(chǎng)景中,并可顯著增強(qiáng)區(qū)塊鏈的交易隱私保護(hù),提高交易吞吐率。相關(guān)論文“PipeZK: Accelerating Zero-Knowledge Proof with a Pipelined Architecture”已被計(jì)算機(jī)體系結(jié)構(gòu)領(lǐng)域的全球頂級(jí)學(xué)術(shù)會(huì)議 ISCA’21 接收。
論文地址:https://www.microsoft.com/en-us/research/publication/pipezk-accelerating-zero-knowledge-proof-with-a-pipelined-architecture/
zk-SNARK 協(xié)議是近年來最流行且最高效的零知識(shí)證明協(xié)議之一,其證明過程主要由兩部分計(jì)算構(gòu)成(如圖4):一個(gè)是高次多項(xiàng)式的乘法(下文簡(jiǎn)稱 POLY),一個(gè)是大規(guī)模的橢圓曲線向量積(下文簡(jiǎn)稱 MSM)。通過深入研究,研究員們發(fā)現(xiàn)這兩部分都可以用一種高效的流水線(Pipeline)方式進(jìn)行并行加速,讓 ASIC(application-specific integrated circuit,專用集成電路)的計(jì)算資源高效化并能協(xié)同 CPU 處理這兩部分的計(jì)算。
圖4:zksnark 的主要計(jì)算部分:多項(xiàng)式乘法(POLY)及橢圓曲線向量乘(MSM)
針對(duì) POLY 部分,研究員們主要采用了 number theoretic transforms(NTT)算法進(jìn)行處理(如圖5)。為了處理 zk-SNARK 中 POLY 計(jì)算規(guī)模太大,從而造成 ASIC 片上計(jì)算資源及片下內(nèi)存訪問速度太慢的問題,研究員們?cè)O(shè)計(jì)了一種高效的流程來將大規(guī)模的 NTT 迭代分解為小規(guī)模 NTT,并使用 FIFO 等數(shù)據(jù)結(jié)構(gòu)來提升內(nèi)存的訪問效率。除此之外,研究員們還使用了 data tiling 以及片上矩陣轉(zhuǎn)置等方式來提升片下內(nèi)存的效率。通過 PipeZK 系統(tǒng),POLY 部分可以被加速20倍以上。
圖5:POLY 部分的優(yōu)化設(shè)計(jì)
針對(duì) MSM 部分,研究員們采用了高效的 Pippenger 算法處理橢圓曲線的向量乘,并分析了對(duì)應(yīng)標(biāo)量部分的數(shù)據(jù)分布,使用了與之適配的調(diào)度機(jī)制,從而優(yōu)化了片上資源利用,提升了并行度(圖6)。研究員們還進(jìn)一步使用了一種粗粒度的處理方式將 ASIC 上的計(jì)算單元進(jìn)行了解耦,使之能各自獨(dú)立地處理計(jì)算任務(wù),避免了計(jì)算單元的閑置。實(shí)驗(yàn)結(jié)果表明 PipeZK 系統(tǒng)能將 MSM 部分的延遲降低77倍以上。
圖6:MSM 部分的優(yōu)化設(shè)計(jì)
研究員們?cè)诙喾N測(cè)試集以及零知識(shí)證明的應(yīng)用上測(cè)試了 PipeZK,其都能取得可觀的性能加速。例如在一系列密碼電路(如 AES、SHA256 等)的零知識(shí)證明上,PipeZK 甚至比當(dāng)前最流行的 GPU 算法快(接近)20倍。在 Zcash 的交易證明生成上,PipeZK 系統(tǒng)目前也能將證明過程的延遲加速5倍以上。經(jīng)分析,目前終端到終端的性能瓶頸已經(jīng)集中在了 witness 生成以及 G2 曲線計(jì)算上,相信通過后續(xù)的優(yōu)化,加速比將會(huì)得到進(jìn)一步的提升。
區(qū)塊鏈的研究方興未艾,數(shù)據(jù)分析以及密碼學(xué)相關(guān)的研究只是提供了兩個(gè)角度。其他方向例如區(qū)塊鏈的系統(tǒng)/共識(shí)性能優(yōu)化、合約安全、Layer-2 技術(shù)、應(yīng)用創(chuàng)新等,近年來也都產(chǎn)生了大量的工作。微軟亞洲研究院在區(qū)塊鏈其他方向上也正在進(jìn)行著創(chuàng)新和探索,未來會(huì)給大家?guī)砀嗲把毓ぷ鞯慕榻B。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。