Rollup的zk-SNARKs 效能瓶頸及解決方案探索

買賣虛擬貨幣

一、它山之石,可以攻玉

rollup是當下最火的以太坊擴容方案,但其所依賴的零知識證明演算法zk-snarks 的效能問題是制約其大規模推廣的主要因素之一。

筆者結合當前區塊鏈軟硬體加速方案的代表:hpb芯鏈的boe加速引擎,來簡單聊聊對zk-snarks效能瓶頸可行探索。開之前,我們先回顧下eth目前的擴容方案的現狀。

二、以太坊tps效能之殤


以太坊2.0啟動在即,近期的質押推進比較順利,同時歐美市場上合規的數字貨幣投資基金也正式推出eth投資基金,讓eth有望接棒btc主導的這次漲幅週期。

在社羣對2.0無限期望的同時,如果有效擴容問題遲遲無法達成一致意見,依舊是社羣討論較多的話題

早在多年前以太坊社羣就意識到了可擴充套件性的重要性,plasma、狀態通道等概念相繼提出,但發展至今實際推行仍然遙遙無期,並且有非常多的問題,例如要求使用者定期上線以及資料可用性問題,制約了 plasma 的發展。

特別是在definft等應用帶動的使用者快速增長後,社羣才真正的感受到tps問題如同魅影一般伴隨在eth創立到至今,且嚴重製約著eth生態的發展。

相比眾多方案, rollup擴容方案獲得了以太坊聯合創始人 vitalik buterin的支援,被推薦為當前可選的最佳方案進而推動以太坊 layer 2 擴容。

三、rollup之光

rollup解決方案推出已經有2年多了,rollup 技術解決了之前 plasma 暴露出的問題,提供了和以太坊 layer 1 (也就是以太坊自己) 相同的資料可用性和安全性,而且還能極大提高網路的吞吐能力,同時降低單筆交易成本。正因如此,雖然很多人在廣義上稱 rollup 為 layer 2 的技術,但事實上其卻是介於 layer 1 和 layer 2 之間 。

rollup 的核心理念很簡單,就是將原本散佈在區塊中的大量交易資料,打包成一筆「濃縮」的交易,釋出到鏈上。為確保其中每筆交易的有效性,各種 rollup 方案設計了不同的機制以確保整個過程的安全性與 layer 1 保持一致。

zk rollup以零知識證明 zk-snarks 的密碼學協議確保交易的安全性,而 optimistic rollup則繼承了 plasma 的 懲罰機制 ,以制約節點作惡行為

四、零知識證明 zk-snarks 

rollup的核心技術之一就是零知識證明。

零知識證明(zero-knowledge proof, zkps)於上世紀80年代由s.goldwasser、s.micali及c.rackoff提出,被稱為最小洩露證明系統,也是一種基於概率的驗證方式。它的全稱是「 簡潔化的非互動式零知識證明 」 (zero-knowledge succinct non-interactive argument of knowledge) 

零知識雖然出現的時間較長,但仍有許多問題需要進一步努力探索,近年來已成為密碼學研究的核心課題。零知識證明的基本理論是當代大部分密碼學協議的基礎,對當代密碼學產生了深遠的影響,在廣泛的資訊保安協議的設計中起著很大的作用。零知識證明,通俗的說,就是證明者可以在不給驗證者透露任何自己的資料的前提下,也能讓驗證者相信某個資訊是正確的。它在實質上是一種協議,在這個協議中,一方面關係到驗證者,另一方面關係到證明者。其中的一方,我們稱為證明者,通常用p表示,另一方我們稱為驗證者,通常用v來表示。在協議執行過程中,證明者向驗證者v聲稱已收穫了一些資訊,透過一系列互動驗證pv,驗證或證明,或拒絕一個聲稱,在這一過程中,驗證者v始終沒有得到任何關於證明者p的具體內容資訊。

在rollup解決方案中,它透過將交易聚合,僅需要在鏈上進行一次交易,就可以驗證多筆其他交易。而打包交易和驗證交易的方式是透過 zk-snark 技術實現的,這樣就能大幅度減少交易成本,確保安全性,也可以解決 plasma 之前遇到的問題。

五、zk-snarks也遇到了效能問題!

技術社羣對zk-snarks的效能進行了詳細的測試和驗證, zk-snarks演算法安全性依賴於底層選取的橢圓曲線,發現目前的效能較差,計算複雜度主要來自於底層依賴的橢圓曲線配對運算。

目前分析市場上零知識證明有使用 bn254橢圓曲線,生成一筆隱私交易對應的零知識證明需要40 s左右,並佔用約4gb記憶體,這導致無法在現有的移動裝置上使用 零知識證明演算法,並且40s的時間也無法匹配現實生活中的高併發場景。

但這一切還不夠,我們來測算下當前tps,目前技術社羣號稱百萬的tps的rollup按目前zk-snarks的效能預估,tps最高為600左右。

筆者從技術社羣找到分析了兩種 rollup 方案 zk rollup 和 optimistic rollup 的對比資料,分別在可擴充套件性、延遲、通用性、安全性上等方面進行了比較。


六、雙線性對映的橢圓曲線是什麼?

bn254橢圓曲線來源於雙線性對映的橢圓曲線。

目前用來實現雙線性對映的橢圓曲線根據引數設定不同主要分為以下兩類 :

bn (barreto-naehrig)曲線:一簇易於做雙線性對映的橢圓曲線 , 根據簽名長度可分為 bn-254、bn-381 和 bn-512 等等。

bls (barreto-lynn-scott)曲線:一簇稍微古老的 pairing 友好的橢圓曲線,代表曲線為 bls12-381。

bn-254 的曲線,有研究報告使用數域篩法證明,該曲線安全級別只能達到將近 110 位元安全。

而 bn-381 和 bls12-381 曲線均能達到 128 位元安全,安全性提高了 16%,而相比 bn-512 的安全級別雖然更高,但隨之帶來的是系統吞吐量下降以及額外的資料儲存開銷。

比特幣使用了基於 secp256k1 的橢圓曲線的 ecdsa 作為其數字簽名演算法,而以太坊也沿用了這一方案。 透過以上對比來看,兩種演算法都是橢圓曲線的一脈相承。

七、hpb boe加速晶片原理介紹

具體討論前,我們先來瞭解hpb是如何提升區塊鏈主網tps效能的這一切都離不開boe加速引擎。

hpb芯鏈獨創的boe技術即區塊鏈加速引擎(blockchain offload engine),包括boe硬體、boe韌體、以及與之匹配的體系軟體,透過結合cpu序列能力和fpga/asic晶片的並行處理能力,實現高效能和高併發計算加速,也就是將本來佔用cpu運算資源的各種與網路通訊及計算相關的功能透過一顆片外的晶片獨立去實現,以降低cpu負擔,實現加速的功能.

boe由4個部分組成:

1、tcp/ip引擎(toe):高速最佳化乙太網系統的吞吐量

2、mac模組:處理從乙太網電纜傳輸的資料包

3、橢圓曲線數字簽名演算法(ecdsa)模組:

執行高速簽名驗證,該模組對建立每秒能生成大量電子簽名的系統至關重要。

4、硬體隨機數生成器:生成隨機數以保護交易,提高加密通道的安全性和可靠性

七、rollup也可以透過boe進行加速!

在boe的4個組中部分中,我們可以看到boe最大的特色之一是對橢圓曲線數字簽名演算法的加速。而且在第六小節介紹的時候,我們會發現bn254橢圓曲線是比ecdsa演算法複雜度低。從這個方面來看,boe完全可以透過改造,來支援對zk-snarks底層演算法的加速。

因為boe底層採用的是fpga可程式設計晶片研發的專用加速晶片伺服器,完全可以相容或者加入對zk-snarks底層零知識證明演算法的支援,來解決目前zk-snarks效能問題。

從hpb先前公佈給社羣的檔案中,boe加速晶片對ecdsa加速在10倍以上,參考目前zk-snarks的實際效能在600tps左右,保守估計至少可以提升至6000tps甚至更高(因為其演算法複雜度比ecdsa要小)。

八、hpb的發展未來

孫子兵法雲:故舉秋毫不為多力,見日月不為明目,聞雷霆不為聰耳。

上面敘述的這麼多,就是為了引出第七小節。

hpb芯鏈作為17年的老專案,首次提出了全球首創的軟硬體結合的區塊鏈加速方案,其boe加速晶片業界仍然無法超越;主鏈在18年9月上線,執行至今全球有100多個boe加速節點,目前tps峰值也穩居在5000左右。據聞hpb團隊近期在主打以太坊平行世界市場推廣,主鏈的虛擬機器近期會升級支援最新的eth虛擬機器,也就是說他和以太坊有相同的賬戶體系和虛擬機器,但卻是高效能區塊鏈。

筆者認為,社羣在苦苦追尋eth layer 2 的效能擴充套件解決方案,為什麼沒有人來關注hpb芯鏈這麼好的eth高效能側鏈?

或許大家已經習慣了軟硬體分類解耦的設計模式吧?但是這個世界上怕就怕的是畫地為牢。

本文從當前ethlayer 2 擴容方案的瓶頸角度,另闢蹊徑,以獨樹一幟的hpb芯鏈作為標的進行對比分析,暢想如果目前hpb也採用zk-snarks解決方案,並把該演算法效能問題透過固化在boe加速引擎之上晶片來加速解決,那麼?這個思考就交給讀者吧。

文章參考了大量的技術社羣的文獻,畢竟不是專業的演算法研究人員,難免有紕漏之處,煩請聯絡筆者正。





免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;