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部分是基於ETH2.0的共識改進的。因此, Opside將擁有超過10w多個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的提交者,也就是礦工。
- 提交proofhash :在一個時間窗口內,對於某個sequence ,允許多個礦工參與zero-knowledge proof的計算。各個礦工計算出proof之後,並不直接提交原始的proof ,而是計算( proof / address )的proofhash ,並向合約提交proofhash 。
- 提交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 + 1TB RAM組成的機器集群,測試交易穩定在27.8TPS約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 )。