什麼是Opside
Opside 是一個去中心化的ZK-RaaS (ZK-Rollup as a Service)平台,也是支持ZKP(零知識證明)挖礦的PoW網絡。 Opside採用PoS & PoW 混合共識,為Web3開發者提供了一鍵生成zkEVM應用鏈的功能。同時,數量眾多的ZK-Rollup帶來的ZKP計算任務也產生了巨大的算力需求,從而為全球礦工提供了一個有意義的挖礦場景。
在擴容領域,L2 的概念並不陌生。但L2不能很好地統籌各種類型的硬件資源,例如數據可用性、ZKP算力、打包節點等。此外,運營一個L2,尤其是ZK-Rollup,需要很高的硬件維護成本以及專業技術門檻,因此很多開發者望而卻步。針對這些問題,Opside首次提出了ZK-RaaS的概念,開發者無需掌握ZK或者鏈節點的知識,也可以在一分鐘內啟動一條屬於自己的zkEVM鏈。同時,Opside還提出了ZK-PoW的概念,引入礦工這個角色來參與zkEVM節點的維護和ZKP的計算。
Opside的宗旨是讓ZK-Rollup變得更加友好和大眾化,從而使得以zkEVM為基礎的應用鏈大規模落地成為可能。
-
ZK-Rollup as a Service:對於開發者,可在多鏈上一鍵部署屬於自己的ZK-Rollup(zkEVM)
-
Opside ZK-PoW Cloud:對於礦工,Opside也是一個多鏈的PoW協議,支持ZK挖礦,為多個公鏈上的ZK-Rollup生成零知識證明。
ZK-RaaS
ZK-RaaS (ZK-Rollup as a Service) 可以為任何人提供一鍵生成ZK-Rollup的服務。
Opside 提供通用的ZK-Rollups launchbase,開發者可以通過launchbase輕鬆地部署不同類型的ZK-Rollups到不同的base chain上。
-
base chain,包括Ethereum/Opside chain/BNB chain/Polygon PoS等公鏈。
-
ZK-Rollup類型,包括zkSync、Polygon zkEVM、Scroll、StarkNet 等zkEVMs,以及其他種類的ZK-Rollups。
在每個base chain上,Opside都會部署一個Rollup系統合約(Rollup System Contracts,RSC),來管理該鏈上的Rollup的生命週期,包括註冊、中止與退出等操作。開發者花費一定數量的IDE(Opside token)租賃一個Rollup slot,即可擁有一個ZK-Rollup。
Rollup slot的概念類似於波卡插槽或者cosmos的應用鏈,但是cosmos應用鏈需要自己維護一套共識層以及跨鏈橋,這帶來了極大的安全風險。而ZK-Rollup採用了ZK技術,在數學意義上嚴格地保證了Rollup和base chain 共享了同一個共識和數據可用層,安全性更高,更加去中心化,維護成本也更低。
開發者租賃了一個Rollup slot後,即擁有獨立的運行環境,例如,開發者可以單獨擁有一條zkEVM鏈。開發者對ZK-Rollup擁有主權,可以自定義rollup經濟模型,包括選擇gas token。開發者可以自由調整gas費用,甚至是0,這樣用戶不需要支付任何費用。
開發者不需要承擔任何硬件成本。所有的硬件資源,包括數據可用性、sequencer、ZKP算力等,皆由下面的Opside ZK-PoW cloud來去中心化地提供。
此外,同一個base chain上,各個ZK-Rollups之間可實現原生的跨rollup 通信。跨rollup通信是一種消息通信機制。也就是說,一個rollup上的地址,可以直接調用另一個rollup上的合約。這極大地解決了用戶資產碎片化的問題,增強了應用之間的可組合性。
Opside ZK-PoW Cloud
ZK-Rollup 和OP-Rollup 相比,有很多優點,包括更安全、無需信任以及更快的提款速度。同時技術上也有一個非常大的不同,就是ZK-Rollup額外需要有一個強大的ZKP算力來支撐零知識證明的生成。
多鏈的ZK-PoW機制
Opside ZK-PoW Cloud會部署到多鏈上,包括但不限於Ethereum、BNB Chain、Polygon PoS以及Opside Chain本身。在Opside的設計中,開發者可以在上述不同的base chain上部署ZK-Rollups。隨著ZK-Rollup技術的逐漸成熟,未來可能會誕生成百上千個ZK-Rollups,這將帶來極大的ZKP算力需求。因此,我們需要激勵礦工加入這個生態來做出貢獻。從以太坊PoW 轉向PoS 以後,有很多以太坊礦機失去了應用場景,從資金規模上來講,礦機的價值就有120 億美元,目前很多都處於閒置的狀態。隨著ZK-Rollup大規模落地,ZKP的生成需要大量的CPU、GPU、FPGA等硬件和礦機來提供計算能力。
Opside使用ZK-PoW 機制來激勵Miner 提供ZKP 算力,從而為ZK-Rollup 提供完整的硬件設施。這也是Opside 核心思想之一。所有角色,包括用戶、開發者、礦工,都能夠在這個Opside 經濟模型當中獲得利益。
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 Chain
Opside Chain作為base chain之一,除了支持Opside ZK-PoW Cloud以外,還針對ZK-Rollup做了更多的優化。例如使用預編譯合約進行ZKP加速驗證,支持數據分片,採用基於ETH 2.0 的PoS 共識。未來還將支持EIP-4844、DankSharding等全分片方案,將Rollup的Gas費用降到最低,甚至是0。
以太坊現在是全球最大規模的去中心化網絡,有超過50 多萬個節點。這些節點不但提供了大規模的去中心化,在未來,得益於數據分片技術,這50多萬個節點也提供了海量的數據可用性。
Opside Chain的靈感來自於以太坊,這也是Opside 選擇基於ETH 2.0 的PoS 共識來改進的原因之一。我們預期Opside Chain上將擁有超過10萬多個節點。
對於Rollup來說,如何讓sequencer更加去中心化,而不是由一個單節點去完成中心化的打包?一個很好的做法是讓Opside Chain 的區塊提議者同時提議Rollup Layer 的區塊。對於Rollup Layer 來說,實際上就是完成了builder 與proposer 的分離:builder 是無需許可地由一個P2P 網絡來支持,proposer 則沿用了Opside chain 的區塊proposer,這樣避免了單節點帶來的可用性風險,同時也具有一定的抗MEV 性和抗審查性。
因此Opside Chain提供標準化的去中心化sequencer機制,Opside Chain 的區塊提議者同時負責提議Rollup 的區塊。 Opside Chain讓ZK-Rollup 不但能繼承上一層的安全性,還繼承了上一層的去中心化程度。
下面是Opside Chain的PoS & PoW 混合共識:
-
Opside chain
-
PoS:Opside 將採用以太坊2.0 的PoS 算法,並對其進行必要的改進。任何人都可以持有Opside token代幣並成為validator。 validator 可以在Opside chain 中獲得區塊獎勵和gas 費用。
-
Rollup layer
-
PoS (Sequencer):validator 不僅提議Opside chain 區塊,還提議Rollup layer 區塊(即data batch)。因此validator 同時也是Rollup layer 中rollup 的sequencer。 sequencer 可以從Rollup layer 交易中的交易費中賺取gas 費用。
-
PoW (Prover):任何人都可以成為Rollup layer 中rollup 的prover,只要它具有足夠的計算能力進行ZKP 計算。根據PoW 規則,prover 根據sequencer 提交的Rollup layer 區塊生成zk 證明。
一個ZK-Rollup 就類似於一台電腦。電腦是有兩個核心組件,一個是硬盤,一個是CPU。 PoS 提供的數據可用性就相當於是硬盤,PoW 提供的算力就相當於是CPU。 Opside Chain 需要做的是在PoS 與PoW 當中找到一個平衡,從而讓每一個角色都能充分發揮價值並從中受益,讓大規模的ZK-Rollups 網絡有更好的性能和體驗。
代幣的供應與需求
Opside token稱為IDE,IDE將通過PoS與PoW獎勵的形式來增發,分別對應Validator 和Miner。在Pre-Alpha 測試網階段,PoS 與PoW 的區塊獎勵比例暫時固定為1:2。在未來,這兩者的比例會隨著整個網絡的ZKP 算力供需關係動態調整。
PoS
如上所言,Opside Chain採用了基於ETH 2.0 改進的PoS 共識。要作為Validator 參與,用戶必須將一定量的IDE 存入存款合約,並運行三個獨立的軟件:執行客戶端、共識客戶端和Validator。這些Validators 負責檢查通過網絡傳播的新塊是否有效,並偶爾自己創建和傳播新塊。如果Validator 行為不誠實或懶惰,那麼抵押的IDE 將作為抵押品被銷毀。
在PoS 下,Opside Chain 的出塊速度是固定的,時間分為slot(12 秒)和epoch(32 個slots)。在每個slot 中隨機選擇一個驗證者作為區塊提議者。該Validator 負責創建新塊並將其發送到網絡上的其他節點。同樣在每個slot中,隨機選擇一個Validator 委員會,其投票用於確定所提議區塊的有效性。具體機制請參考ETH PoS。
Opside Chain 預期在Alpha 測試網支持EIP-4844,數據可用性抽樣(DAS) 將用於確保ZK-Rollup 在執行後提供其交易數據,同時不會對任何單個節點造成太大壓力。每個Validator 隨機抽取blob 中提供的交易數據,以確保所有數據都存在。同樣的技術也可以用來確保區塊生產者將他們所有的數據提供給安全的輕客戶端。同樣,在提議者-構建者分離(PBS)下,只需要區塊構建者來處理整個區塊——其他驗證者將使用數據可用性抽樣進行驗證。
在一些具體參數上,Opside將有所不同,讀者可以在代碼庫裡找到最新的值。
總的來說,Staking 使個人更容易參與保護網絡,促進去中心化。 Validator 節點可以在普通筆記本電腦上運行。一些代理質押池甚至允許用戶在沒有足夠IDE 的情況下進行質押。
ZK-PoW
基於Opside提供的ZK-Rollup launchbase,開發者可以選擇在一個base chain上擁有一個專屬的ZK-Rollup。為了支撐數量眾多的ZK-Rollups 帶來的海量硬件資源的需求,Opside 提供了一個統一的ZKP 算力市場,鼓勵miner(也就是prover)來為這些ZK-Rollups 生成ZKP。這就是Opside 的ZK-PoW 機制。
- 單個Rollup sequence的獎勵份額計算
ZK-PoW是一個多鏈協議,這意味著PoW獎勵將在各個base chain上發放,包括Etheruem,Opside Chain,BNB Chain,Polygon PoS。每個base chain的PoW獎勵數量取決於對應的Rollup slot註冊數量、ZKP工作量等。
對於每個base chain,一個區塊內,每個Rollup只能提交一個sequence(可以包含該Rollup的多個區塊)。各個sequence均分當前區塊的PoW獎勵。這也就意味著,如果在base chain的一個區塊中,有4個Rollup提交了sequence,則PoW獎勵被均分為4份,每一個sequence獲得的獎勵為區塊PoW獎勵的1/4。當然,可能在某些區塊沒有任何Rollup提交sequence,因此PoW實際的通脹可能會低於預期。
在未來,各個sequence將根據對應的ZK-Rollup類型、所包含的Rollup交易數量、gas使用量等進行工作量預估,從而對不同sequence進行不同的定價。
- Prover的質押與懲罰
為了避免prover相關的惡意行為,Prover需要在一個特殊的系統合約中註冊,並質押代幣。 Prover可以自由選擇參與一個或者多個Rollup的PoW挖礦。 Prover需要在系統合約中為每一個要參與的Rollup質押一定量的IDE(Opside token),才可以為該Rollup提交ZKP。如果當前質押數量小於閾值,則不允許為該Rollup提交ZKP。 prover提交ZKP獲得的獎勵也將依據質押量比例來分配,從而避免prover多次提交ZKP的惡意行為。
當prover出現以下行為,會進行不同程度的懲罰:
-
如果prover提交了錯誤的hash
-
如果沒有ZKP通過驗證,則所有提交過hash的prover都將被懲罰
罰沒的Opside token將被燒毀。
關於ZKP的兩步提交機制更多的細節與考量,請讀者參閱官方文檔。 prover質押以及懲罰的具體數字在未來可能會改動。
開發者租賃Rollup slot
在各個base chain上,Opside部署了ZK-PoW協議,開發者可通過ZK-Rollup launchbase一鍵註冊一個Rollup slot,從而啟動屬於自己的ZK-Rollup。該ZK-Rollup所有的硬件資源都由Opside去中心化網絡來提供。開發者需要向Opside網絡支付Rollup slot的租金,這部分租金將直接燒毀。
除了一個固定金額的租金以外,開發者還可以為自己的ZK-Rollup提供額外ZKP補貼,以激勵礦工提供算力。
具體的租金與補貼規則與參數,讀者可以在官方文檔或者代碼庫裡找到。
治理與發展
Opside網絡的功能和性能將隨著時間的推移而不斷發展,以下為幾個優先級更高的示例:
-
根據整個網絡的ZKP算力供需關係,動態調整PoS與PoW的獎勵分配比例
-
Validator的數據分片與數據可用性抽樣,將為整個Rollup Layer提供更加豐裕的存儲空間,從而容納更多的ZK-Rollup生態
-
Rollup的提議者與構建者分離,使得Rollup layer共用Opside chain的validator作為區塊提議者,繼承上一層的去中心化
-
礦工的質押與slash機制的優化,鼓勵礦工提供持續而穩定的ZKP算力
-
應用開發者對所屬Rollup的ZKP生成進行補貼,以激勵礦工提供算力
-
根據ZK-Rollup類型、Rollup交易數量、gas使用量等進行工作量預估,建立Rollup batch的個性化定價機制
這些改進將顯著提高Opside的網絡效用,從而促進ZK-Rollup as a Service的長期發展以及繁榮。
Opside主網啟動後,建立一個Opside DAO,包含合理的流程和機制來共同決定網絡的未來。 Opside主網的所有參數和機制的更新將通過Opside DAO來確定。需要強調的是,Opside是一個合作共建的經濟體,並隨著時間推移而不斷發展演化。未來的改進會以DAO提案的形式詳細地解釋這些方案是如何給Opside經濟的長期利益和每個參與者類別帶來好處。隨著網絡的發展,打造一個無需大量工具和補貼亦可以獨立且穩健運行的經濟至關重要。