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