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