TL;DR
Opside提出的ZK-PoW算法,具有以下優勢:
-
一個市場化的ZK算力定價機制,不但可以用於擴容(ZK-Rollup),在未來也可以應用於AI(ZKML)
-
為即將到來的ZK-Rollup(尤其是zkEVM)的大規模爆發提供了海量算力平台;同時也為大量閒置的礦工提供了新的挖礦場景
-
ZKP的兩步提交算法,為ZK-Rollup提供了標準的去中心化Prover機制
-
優化的ZKP計算與提交機制,將生成ZKP的效率提高了80%
為什麼我們需要ZK算力的PoW算法?
當前,以太坊主網上已經有多個ZK-Rollups在運行了,包括Polygon zkEVM以及zkSync era。然而實際上目前絕大部分的ZK-Rollup項目都沒有實現去中心化的prover。例如Polygon zkEVM的beta mainnet中依靠trusted aggregator來提交ZKP,zkSync era也是類似。
當ZK-Rollup數量不多的時候,中心化的prover是可行的。但是隨著ZK擴容技術的成熟,特別是未來一到兩年時間內zkEVM技術的逐漸落地,ZK-Rollup數量將迎來非常可觀的增長。在海量ZK-Rollup的情況下,中心化的prover也會引發很多問題:
-
首先,prover成本高昂,且需要專業的設備與機房,不是每一個ZK-Rollup的運營者都具有維護一個中心化的prover集群的能力。因此我們需要專業的礦工來承擔未來海量的ZK-Rollup的算力需求
-
其次,如果只有一個prover,那麼單節點宕機就會造成整個ZK-Rollup的交易無法被確認。我們需要一個去中心化Prover機制來鼓勵多個礦工同時參與一個ZKP的計算,並獲得對應的獎勵。
-
最後,我們需要一個標準化的ZKP優化算法,來提升整體的硬件效率。
Opside的ZK-PoW算法
作為一條高度去中心化的公鏈,Ethereum已經擁擠不堪,gas fee極其昂貴。很多Web3應用,尤其是金融衍生品、Game、社交網絡等,需要往layer 2 或者其他公鏈遷移。其實,單純提供高性能和低gas的執行環境並不難,一些中心化的方案可以很容易做到這一點。難的是如何在保證高性能和低gas同時,保持高度的去中心化程度。
在Opside 的設計中,每一個 Web3 應用都可以擁有一個專屬的 ZK-Rollup,並且可以自由選擇base chain。目前,Opside支持4 條base chain,分別是Ethereum、Opside、BNB chain、Polygon。也就是說,開發者可以選擇在這4 條公鏈上面部署自己的ZK-Rollup。為了支撐數量眾多的ZK-Rollups 帶來的海量硬件資源的需求,Opside 還提供了一個統一的 ZKP 算力市場,鼓勵Miner來為這些ZK-Rollups 生成 ZKP。
PoW的獎勵分配機制
Opside採用了PoS和PoW混合共識。其中PoS部分是基於ETH 2.0 的共識改進的。因此,Opside將擁有超過10 w多個validator來提供海量的數據可用性,同時具有高度的去中心化程度。
在Pre-Alpha測試網階段,根據PoW算法,一個Opside區塊內,每個Rollup會按照一定規則提交一個sequence。所有sequence根據當前Rollup slots註冊數量來以及包含的batch數量來劃分當前區塊的PoW獎勵。當然,可能某些rollup在某些區塊沒有提交sequence,因此PoW實際的通脹會低於預期。
Miner可以自由選擇參與其中一個或者多個Rollup的ZKP計算。在未來,各個sequence將根據對應的ZK-Rollup類型、所包含的Rollup交易數量、gas使用量等進行工作量預估,從而對不同sequence進行不同的定價。
為了避免Miner相關的惡意行為,Miner需要在一個特殊的系統合約中註冊,並質押代幣。 Miner需要在系統合約中為一個Rollup質押相應的token,才可以為該Rollup提交ZKP。 Miner提交ZKP獲得的獎勵也將依據質押量比例來分配,從而避免Miner多次提交ZKP的惡意行為。
更多細節請參考Opside Tokenomics
ZKP 的兩步提交算法:標準的去中心化Prover機制
為了鼓勵多個礦工同時參與一個ZKP的計算任務,Opside提出了一個兩步提交的ZKP驗證機制。一個ZKP對應的PoW獎勵份額,會按照一定規則分配給有效ZKP的提交者,也就是礦工。
1. 提交proofhash:在一個時間窗口內,對於某個sequence,允許多個礦工參與zero-knowledge proof的計算。各個礦工計算出proof之後,並不直接提交原始的proof,而是計算(proof / address)的proofhash,並向合約提交proofhash。
2. 提交ZKP:在時間窗口後,礦工提交原始的proof,並與之前提交的proofhash進行驗證。驗證通過的礦工都可以得到PoW獎勵,獎勵金額按照礦工質押量的比例來分配。
更多細節請參考ZKP’s Two-Step Submission Algorithm
優化的 ZKP 生成算法:礦工效率提高了 80%
Rollup的智能合約驗證ZKP的時候,如果提交的是原始proof數據,就有可能引發鏈上攻擊行為。為了防止惡意攻擊行為,ZK-Rollup往往需要進行額外的工作量來隱藏原始的proof數據。有一種解決方案是,礦工提交的ZKP包含了對礦工地址的聚合結果。 Opside提出的ZKP的兩步提交算法,則巧妙地採用了先提交+後驗證的模式,不再需要對proof和地址做類似的不必要的聚合計算。
此外,在一些開源的zkEVM中,ZKP的計算與提交都是串行的。當ZK-Rollup提交了大量的sequence時,礦工無法同時計算多個ZKP。在Opside中,ZKP的兩步提交算法實現了ZKP的並行計算與串行提交,允許礦機同時執行多個ZKP生成任務,從而大大加速了ZKP的生成效率。
Opside團隊還對ZKP遞歸聚合算法進行了一系列的優化,充分提升了集群內機器資源的利用率,進一步提高了ZKP的計算速度。
在實際的壓測環境中,礦工擁有20 台128 core CPU + 1 TB RAM組成的機器集群,測試交易穩定在27.8 TPS約40 分鐘。在相同條件下,Opside將交易的平均確認時間從約5-6 分鐘降低到了約3 分鐘,ZKP生成效率提高了約80% 。在未來,隨著更多ZK-Rollup以及礦工的加入,ZK算力市場的需求端和供給端的規模將進一步擴大,Opside的PoW算法帶來的效率提升將體現得更加明顯。
總結
Opside提出的ZK-PoW算法,創造性地定義了一個市場化的ZK算力定價機制。這個算力市場為即將到來的ZK-Rollup(尤其是zkEVM)的大規模爆發提供了海量算力平台;同時也為大量閒置的礦工提供了新的挖礦場景。
ZKP的兩步提交算法,為ZK-Rollup提供了標準的去中心化Prover機制,鼓勵更多的礦工提供穩定、持續的ZKP算力。同時,優化的ZKP計算與提交機制,將生成ZKP的效率提高了80%
在未來,Opside的PoW機制的應用場景可以輕易地拓展,不但可以用於擴容(ZK-Rollup),在未來也可以應用於AI(ZKML)。