博客專欄

        EEPW首頁 > 博客 > 從數據分析、密碼學角度看區塊鏈未來

        從數據分析、密碼學角度看區塊鏈未來

        發布人:MSRAsia 時間:2021-05-19 來源:工程師 發布文章

        編者按:區塊鏈技術是近年來的熱點話題。無論是比特幣、以太坊等密碼學貨幣價格的大幅波動,還是各國政府機構對區塊鏈技術的大力研發投入,都預示著區塊鏈技術已經處在時代的“風口浪尖”。本文從數據分析及密碼學的角度,結合最近微軟亞洲研究院可信系統研究組發表的兩篇論文,向大家介紹區塊鏈技術的相關現狀以及技術趨勢。

        區塊鏈是一個復雜的點對點系統,其中既包含技術的部分(例如網絡、密碼學、虛擬機等),也包含對生態中各個角色的決策(例如攻擊者、共識維護者即礦工、交易所等)。例如,區塊鏈中的節點都需要按照技術的部分來運行,同時根據自身的利益,也可以采取對應的決策對區塊鏈系統產生正向或者反向的影響。

        微軟亞洲研究院可信系統研究組多年來持續探索區塊鏈技術的前沿發展,對技術部分以及生態部分都有著長期的研究。因此,可信系統研究組的研究員們從技術和生態兩個角度分別闡述了區塊鏈技術的相關現狀及未來趨勢:1、生態部分,從數據分析的角度,研究共識維護者的行為以及發展趨勢; 2、技術部分,通過研究目前最熱門的密碼學技術之一——零知識證明,探索其如何能更高效地服務于區塊鏈系統。

        數據分析——以太坊頭部三大礦池擁有53%的算力

        區塊鏈系統以其“不可偽造”、“全程留痕”、“可以追溯”、“公開透明”、“集體維護”等特征聞名業界,金融、供應鏈管理、醫療健康等領域也在利用其特性,積極部署區塊鏈系統。但在基于工作量證明共識(Proof-of-work, PoW)的區塊鏈系統中,還存在“51%算力攻擊”威脅著系統安全,也就是說,如果有某種勢力擁有系統中的51%算力,那么就有可能“顛覆”系統。

        在現實中,頭部礦池掌控大量算力,也擁有威脅系統安全的潛在力量。如圖1所示,以太坊的頭部三大礦池(Spark Pool, Ethermine, F2Pool)已掌握超過占全網53%的算力,已經能夠發起”51%算力攻擊“。此外,其他 PoW 區塊鏈亦存在頭部礦池掌握大多數算力的情況。

        1.png

        圖1:以太坊算力分布圖(源自 Etherscan,2021.03.22)

        為了深入了解、分析區塊鏈系統,微軟亞洲研究院和清華大學的科研人員提出了對以太坊礦池參與者的首次大規模研究。研究員們通過數據分析了解礦池參與者的算力分布和挖礦行為,進一步刻畫以太坊算力去中心化程度,并將研究的分析見解發表了論文“Characterizing Ethereum’s Mining Power Decentralization at a Deeper Level”。該工作已被全球計算機網絡領域的重要會議 INFOCOM 2021 接收。

        論文地址:https://www.microsoft.com/en-us/research/uploads/prod/2021/02/infocom-camready.pdf

        2.png

        該文章作者中,曾麗儀來自清華大學,現為微軟亞洲研究院實習生,與微軟亞洲研究院創新工程組郭眾鑫、可信系統研究組陳洋、陳碩、張憲等在區塊鏈研究上有長期的合作。

        以太坊的挖礦生態結構如圖2所示,區塊記錄礦工帳號,這些帳號來自礦池管理者或者獨立礦工,他們可直接獲得系統發放的挖礦獎勵,當礦池收到獎勵后再通過鏈上交易分發給礦池參與者。過去,分析算力去中心化的研究工作主要停留在分析頭部礦池的算力分布,忽略了其他挖礦參與者的算力情況。因此,微軟亞洲研究院的研究員們認為研究以太坊算力去中心化情況不能僅僅局限于分析挖礦節點(礦池和獨立礦工)的算力分布,也應該考慮礦池參與者的挖礦行為和算力分布情況,為度量算力去中心化程度和防止算力集中的解決方案提供更多洞悉。

        3.png

        圖2:以太坊挖礦生態結構圖

        然而,以太坊帳號都是去實名化的,單從鏈上交易無法準確識別礦池參與者的帳號,目前學術界并沒有關于礦池參與者的真實數據集。所以,需要結合鏈上和鏈下的多個數據源才可以識別礦池參與者帳號和礦池分發獎勵交易。數據集識別流程如圖3所示。

        4.png

        圖3:以太坊挖礦數據集識別流程圖

        由于部分礦池會在 Etherscan(以太坊搜索引擎)公開帳號信息,部分大型礦池也會給挖礦參與者提供查詢挖礦收益信息的 API,以用于識別某個以太坊帳號是否屬于其礦池參與者。因此,研究員們可以在 Etherscan 上爬取公開身份的礦池帳號,并從以太坊區塊鏈數據庫提取識別的礦池發出的交易,收集這些交易的接收帳號,從而用于礦池 API 識別。能被礦池 API 識別的帳號就可確認為礦池參與者帳號,然后再相應地提取識別的礦池發至礦池參與者的獎勵交易。

        通過首個大規模對以太坊礦池參與者的識別和分析研究,微軟亞洲研究院和清華大學的研究員們創建了首個大規模以太坊挖礦數據集 E-PAR。該數據集涵蓋了以太坊自上線(2015年7月30日)以來至2020年4月10日近5年的數據,其中包含所有礦工帳號的獎勵交易、識別的礦池帳號、識別的礦池參與者帳號和礦池發至礦池參與者的獎勵交易,且覆蓋了近兩年內占全網平均77%算力的挖礦行為。

        E-PAR 數據集揭示了礦池之下礦池參與者的算力分布情況、礦池參與者同時參與多個礦池或在多個礦池間跳轉的挖礦行為、礦工選擇加入礦池的多元原因,從而進一步豐富了以太坊算力去中心化程度的評估,討論了礦池挖礦算力的可控性,推理思考了現有研究工作提出的阻止礦池集中算力的解決方案的可行性,給區塊鏈社區帶來了基于數據驅動的深層次的算力分布研究。想要了解更多詳細情況,可查看數據集。

        數據集 GitHub 地址:https://github.com/yangsrc/pool-dataset

        密碼學——零知識證明提升區塊鏈性能和隱私

        除了從數據分析角度解析區塊鏈生態的發展趨勢,微軟亞洲研究院的研究員們還從技術角度,探索了使用現代密碼學提升區塊鏈性能以及隱私保護的重要技術——零知識證明。

        零知識證明(Zero-Knowledge Proof)于20 世紀 80 年代初被提出,是現代密碼學的重要基礎之一,也是現代密碼學研究的熱點。其在隱私性和可驗證性之間搭建起了一座橋梁,原理如下:證明者 P 能在不透露 w 的情況下,向驗證者 V 發送一個證明(proof),證明 P 本人知道一個 w,使得給定公開輸入 x、公開輸出 y 以及程序 f,滿足 f(x,w)=y。舉例而言,假設 P 為金融機構,V 為監管部門,w 為涉及用戶交易的隱私數據,f 為交易是否合規的驗證程序,x 為公開數據,y 為是否合規的結果,那么零知識證明將保證金融機構能在不透露用戶隱私的情況下,向相關監管部門證明其涉及到用戶的交易是合規的。

        正是由于零知識證明獨特的性質,所以它被廣泛應用于區塊鏈系統中,以增強區塊鏈的隱私保護、增加區塊鏈的交易吞吐:

        增強隱私:由于區塊鏈的鏈上交易數據公開可見,所以各種交易數據容易被提取、分析,導致隱私泄露,這是業界認為區塊鏈缺乏隱私保護機制的原因。而經過零知識證明加持之后,區塊鏈中的用戶就可以將相關的鏈接關系以及交易金額等信息隱藏起來,并能讓區塊鏈礦工驗證交易的正確性,從而達到隱私保護的目的。目前,零知識證明已被廣泛應用在各種隱私保護區塊鏈中,例如 Monero、Zcash 等(了解更多相關細節,可參考文章《一文讀懂區塊鏈上的隱私與監管問題》)。

        提升吞吐:除了隱私問題,區塊鏈的低吞吐率也遭業界詬病。例如隨著以太坊上 DeFi 應用的興起,以太坊交易數量猛增并造成擁堵,導致產生極高的交易費用。運用零知識證明技術,用戶可以先將相關交易發送給交易聚合節點,然后聚合節點再生成關于大量交易都是有效的零知識證明,并把對應的證明發送至合約由礦工們進行驗證,從而節省礦工對大量交易進行重新計算的開銷,極大降低被聚合交易的交易費用。這種技術被稱為 zk-rollup,目前有很多項目都在進行相關的開發,例如 zkSync,zkSwap。

        回到零知識證明本身,證明者生成證明的過程往往涉及大量復雜的密碼學計算,這就使得生成證明的時間會特別長,大大超出了應用可以接受的延遲范圍,并極大地限制了零知識證明的使用場景。例如由于 Zcash 之前生成證明的開銷太大,普通用戶大量使用了沒有隱私保護的交易方式,從而引發了隱私泄露;又例如現在的 zk-rollup 技術處理的交易所涉及到的程序復雜度都相對較低,一旦之后的復雜度有所提升,那么就會造成聚合節點生成證明的時間過長,進而影響交易的實時性。

        針對這個問題,來自微軟亞洲研究院、北京大學、清華大學及上海樹圖區塊鏈研究院等機構的科研人員聯合提出了名為“PipeZK”的高效硬件加速系統,可將零知識證明的證明過程加速10倍以上,證明過程的延遲下降一個數量級。PipeZK 系統可廣泛應用于隱私保護以及區塊鏈 Layer-2 技術場景中,并可顯著增強區塊鏈的交易隱私保護,提高交易吞吐率。相關論文“PipeZK: Accelerating Zero-Knowledge Proof with a Pipelined Architecture”已被計算機體系結構領域的全球頂級學術會議 ISCA’21 接收。

        論文地址:https://www.microsoft.com/en-us/research/publication/pipezk-accelerating-zero-knowledge-proof-with-a-pipelined-architecture/

        zk-SNARK 協議是近年來最流行且最高效的零知識證明協議之一,其證明過程主要由兩部分計算構成(如圖4):一個是高次多項式的乘法(下文簡稱 POLY),一個是大規模的橢圓曲線向量積(下文簡稱 MSM)。通過深入研究,研究員們發現這兩部分都可以用一種高效的流水線(Pipeline)方式進行并行加速,讓 ASIC(application-specific integrated circuit,專用集成電路)的計算資源高效化并能協同 CPU 處理這兩部分的計算。

        5.png

        圖4:zksnark 的主要計算部分:多項式乘法(POLY)及橢圓曲線向量乘(MSM)

        針對 POLY 部分,研究員們主要采用了 number theoretic transforms(NTT)算法進行處理(如圖5)。為了處理 zk-SNARK 中 POLY 計算規模太大,從而造成 ASIC 片上計算資源及片下內存訪問速度太慢的問題,研究員們設計了一種高效的流程來將大規模的 NTT 迭代分解為小規模 NTT,并使用 FIFO 等數據結構來提升內存的訪問效率。除此之外,研究員們還使用了 data tiling 以及片上矩陣轉置等方式來提升片下內存的效率。通過 PipeZK 系統,POLY 部分可以被加速20倍以上。

        6.png

        圖5:POLY 部分的優化設計

        針對 MSM 部分,研究員們采用了高效的 Pippenger 算法處理橢圓曲線的向量乘,并分析了對應標量部分的數據分布,使用了與之適配的調度機制,從而優化了片上資源利用,提升了并行度(圖6)。研究員們還進一步使用了一種粗粒度的處理方式將 ASIC 上的計算單元進行了解耦,使之能各自獨立地處理計算任務,避免了計算單元的閑置。實驗結果表明 PipeZK 系統能將 MSM 部分的延遲降低77倍以上。

        7.png

        圖6:MSM 部分的優化設計

        研究員們在多種測試集以及零知識證明的應用上測試了 PipeZK,其都能取得可觀的性能加速。例如在一系列密碼電路(如 AES、SHA256 等)的零知識證明上,PipeZK 甚至比當前最流行的 GPU 算法快(接近)20倍。在 Zcash 的交易證明生成上,PipeZK 系統目前也能將證明過程的延遲加速5倍以上。經分析,目前終端到終端的性能瓶頸已經集中在了 witness 生成以及 G2 曲線計算上,相信通過后續的優化,加速比將會得到進一步的提升。

        區塊鏈的研究方興未艾,數據分析以及密碼學相關的研究只是提供了兩個角度。其他方向例如區塊鏈的系統/共識性能優化、合約安全、Layer-2 技術、應用創新等,近年來也都產生了大量的工作。微軟亞洲研究院在區塊鏈其他方向上也正在進行著創新和探索,未來會給大家帶來更多前沿工作的介紹。

        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: 區塊鏈

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 织金县| 龙口市| 阿克| 承德市| 民勤县| 荔波县| 建阳市| 万源市| 孙吴县| 姚安县| 华亭县| 岳普湖县| 吴江市| 金堂县| 合江县| 唐山市| 清苑县| 佛坪县| 宾阳县| 兴安县| 隆化县| 盈江县| 永嘉县| 杭锦旗| 义马市| 卓资县| 松阳县| 孟村| 安岳县| 通州市| 原平市| 聂拉木县| 南开区| 荥经县| 航空| 方正县| 铜川市| 太保市| 通榆县| 德化县| 永城市|