什麼是 Opside
Opside 是一個去中心化的 ZK-RaaS (ZK-Rollup as a Service)網絡。基於模塊化區塊鏈的理念,Opside 設計了三層的區塊鏈架構,採用PoS & PoW 混合共識,為Web3開發者提供了一鍵生成應用 zkEVM 鏈的功能。
在擴容領域,L2 的概念並不陌生。但L2不能很好地統籌各種類型的硬件資源,例如數據可用性、ZKP算力、打包節點等,因此出現了模塊化區塊鏈的概念。 Opside 的 3-layer 架構,在L2的基礎上進一步升級,在內部統籌了不同的模塊,對外提供了 ZK-RaaS 的平台。
• L1,Public Chain:Ethereum、BNB Chain、Polygon 等公鏈。
• L2,Opside Chain:提供大規模去中心化的共識、數據可用性以及 ZKP 算力,所有產生的交易和數據將在L2 驗證打包上鍊和存儲。交易速度快,手續費低。
• L3,Rollup Layer:Rollup 將昂貴的計算過程從鏈上移到鏈下,從而實現可擴展性。
Opside 提供了不同種類的 ZK-Rollup SDK,尤其是 zkEVM,包括Polygon Hermez、 Scroll、Taiko、zkSync 等。開發者可根據SDK 一鍵在Opside L3 上部署屬於自己的ZK-Rollups 項目,並且所有的硬件資源都由 Opside 去中心化網絡來提供。
各個Layers 之間通過不同類型的跨鏈橋進行連接,可以從L1 直接將資產轉移到L2 或是L3。
ZK-RaaS
ZK-RaaS (ZK-Rollup as a Service) 即提供一鍵生成ZK-Rollup 服務。
Opside 提供通用的ZK-Rollups SDK(軟件開發工具包),開發者根據SDK 便可輕鬆的在
Opside L3 上部署ZK-Rollups 項目。
Opside L3的 ZK-Rollups 由系統合約來管理,包括註冊、中止與退出等。開發者花費一定數量的 IDE(Opside token)租賃一個 Rollup slot,即可擁有一個 ZK-Rollup。這個概念類似於波卡插槽,但Opside L2 和L3 共享了同一個共識和數據可用層,安全性更高,更加去中心化, 維護成本也更低。
開發者租賃了一個 Rollup slot 後,即擁有獨立的運行環境,例如,開發者可以單獨擁有一條zkEVM 鏈。開發者對 ZK-Rollup 擁有主權,可以自定義 rollup 經濟模型,包括選擇 gas token。開發者可以自由調整 gas 費用,甚至是 0 ,這樣用戶不需要支付任何費用。此外,L3中的各個ZK-Rollups 項目之間可實現原生的跨 rollup 通信。
開發者不需要承擔任何硬件成本。所有的硬件資源,包括數據可用性、sequencer、ZKP 算力等,皆由下面的 PoS & PoW 混合共識來去中心化地提供。
PoS & PoW Hybrid Consensus
ZK-Rollup 和OP-Rollup 相比,有很多優點,包括更安全、無需信任以及更快的提款速度。同時技術上也有一個非常大的不同,就是 ZK-Rollup 額外需要有一個強大的 ZKP 算力來支撐零知識證明的生成。
在 Opside 網絡中,未來可能有成百上千個 ZK-Rollups 共同組成 Rollup Layer,這將帶來極大的ZKP 算力需求。因此,我們需要激勵礦工加入這個生態來做出貢獻。從以太坊PoW 轉向PoS 以後,有很多以太坊礦機失去了應用場景,從資金規模上來講,礦機的價值就有120 億
美元,目前很多都處於閒置的狀態。隨著 ZK-Rollup 技術的成熟,ZKP 的生成需要大量的FPGA、GPU 等硬件和礦機來提供計算能力。 Opside 的PoS 和PoW 的混合共識,除了使用PoS 機制來激勵Validator 提供數據可用性以外,也使用PoW 機制來激勵Miner 提供ZKP 算力,從而為ZK-Rollup 提供完整的硬件設施。這也是Opside 核心思想之一。所有⻆色,包括用戶、開發者、節點運營商、礦工,都能夠在這個Opside 經濟模型當中獲得利益。
Opside 除了讓ZK-Rollup 繼承上一層的安全性以外,也要讓ZK-Rollup 繼承上一層的去中心化程度。以太坊現在是全球最大規模的去中心化網絡,有超過50 多萬個節點。這些節點不但提供了大規模的去中心化,在未來,得益於數據分片技術,這 50 多萬個節點也提供了海量的數據可用性。這也是Opside 選擇基於ETH 2.0 的PoS 共識來改進的原因之一。
我們預期Opside 上將擁有超過 10 萬多個節點。那麼如何讓Rollup 的去中心化程度也達到這個級別,而不是由一個單節點去完成中心化的打包?一個很好的做法是讓Opside Chain 的區塊提議者同時提議Rollup Layer 的區塊。對於Rollup Layer 來說,實際上就是完成了builder 與proposer 的分離:builder 是無需許可地由一個P2P 網絡來支持,proposer 則沿用了L2 的區塊proposer,這樣避免了單節點帶來的可用性⻛險,同時也具有一定的抗MEV 性和抗審查性。
Layer 2 (L2)
• PoS:Opside 將採用以太坊2.0 的PoS 算法,並對其進行必要的改進。因此,Opside 的共識層將擁有超過10 萬個validator。任何人都可以持有IDE 代幣並成為validator。此外,Opside 的PoS 是可證明的,validator 將定期向L1 提交PoS 證明。 validator 可以在L2 中獲得區塊獎勵和gas 費用。
Layer 3 (L3)
• PoS (Sequencer):validator 不僅提議L2 區塊,還提議L3 區塊(即 data batch)。因此
validator 同時也是L3 中rollup 的sequencer。 sequencer 可以從L3 交易中的交易費中
賺取gas 費用。
• PoW (Prover):任何人都可以成為L3 中rollup 的prover,只要它具有足夠的計算能
力進行ZKP 計算。 prover 為L3 中的每個本地rollup 生成零知識證明。根據PoW 規則,prover 根據sequencer 提交的L3 區塊生成zk 證明。
一個ZK-Rollup 就類似於一台電腦。電腦是有兩個核心組件,一個是硬盤,一個是CPU。 PoS 提供的數據可用性就相當於是硬盤,PoW 提供的算力就相當於是CPU。 Opside 需要做的是在PoS 與PoW 當中找到一個平衡,從而讓每一個⻆色都能充分發揮價值並從中受益, 讓大規模的ZK-Rollups 網絡有更好的性能和體驗。
代幣的供應與需求
Opside 代幣(IDE)分配細則如下:鑄造上限為 100 億枚IDE。其中, 10% 分配給早期融資, 14% 分配給 Opside 團隊以及貢獻者, 15% 分配給社區,包括測試網早期參與者、生態項目方以及未來可能的空投。 28% 分配給基金會,將被用作生態發展,後續融資以及其他用途。其餘的 33% 作為PoS & PoW 混合共識的獎勵,分別被分配給Validator 和Miner,用於提供數據存儲服務、生成零知識證明、維護區塊鏈、運行合約等。
代幣分配餅圖如下:
根據PoS & PoW 混合共識,區塊獎勵分為PoS 和PoW 兩部分,分別對應Validator 和Miner。在Pre-Alpha 測試網階段,PoS 與PoW 的區塊獎勵比例暫時固定為 1: 2 ,即 11% 的IDE 被分配給Validator, 22% 的獎勵被分配給Miner。在未來,這兩者的比例會隨著整個網絡的ZKP 算力供需關係動態調整。
PoS 的獎勵
如上所言,Opside 採用了基於ETH 2.0 改進的PoS 共識。 5 月 2 日,Opside 已宣布開放測試網驗證者節點申請。要作為Validator 參與,用戶必須將一定量的IDE 存入存款合約,並運行三個獨立的軟件:執行客戶端、共識客戶端和Validator。這些Validators 負責檢查通過網絡傳播的新塊是否有效,並偶爾自己創建和傳播新塊。如果Validator 行為不誠實或懶惰,那麼抵押的IDE 將作為抵押品被銷毀。
在PoS 下,Opside 的出塊速度是固定的,時間分為slot( 12 秒)和epoch( 32 個 slots)。在每個slot 中隨機選擇一個驗證者作為區塊提議者。該Validator 負責創建新塊並將其發送到網絡上的其他節點。同樣在每個slot 中,隨機選擇一個Validator 委員會,其投票用於確定所提議區塊的有效性。具體機制請參考ETH PoS。
Opside 預期在Alpha 測試網支持EIP-4844 ,數據可用性抽樣(DAS) 將用於確保ZK- Rollup 在執行後提供其交易數據,同時不會對任何單個節點造成太大壓力。每個Validator 隨機抽取blob 中提供的交易數據,以確保所有數據都存在。同樣的技術也可以用來確保區塊生產者將他們所有的數據提供給安全的輕客戶端。同樣,在提議者-構建者分離(PBS)下, 只需要區塊構建者來處理整個區塊——其他驗證者將使用數據可用性抽樣進行驗證。在一些具體參數上,Opside 將有所不同,讀者可以在代碼庫裡找到最新的值。
總的來說,Staking 使個人更容易參與保護網絡,促進去中心化。 Validator 節點可以在普通筆記本電腦上運行。一些代理質押池甚至允許用戶在沒有足夠IDE 的情況下進行質押。
PoW 的獎勵
在Opside 的L3,也就是Rollup Layer 上,每一個Web3 應用都可以擁有一個專屬的ZK- Rollup。為了支撐數量眾多的ZK-Rollups 帶來的海量硬件資源的需求,除了上面提到的Validator 提供數據可用性以外,Opside 還提供了一個統一的ZKP 算力市場,鼓勵miner(也就是 prover)來為這些ZK-Rollups 生成ZKP。這就是Opside 的PoW 機制。
單個 Rollup sequence 的獎勵份額計算
在 Pre-Alpha 階段,一個L2區塊內,每個 Rollup 只能提交一個 sequence(可以包含該 Rollup 的多個區塊)。所有 sequence 根據當前 Rollup slots 註冊數量均分當前區塊的 PoW 獎勵。這也就意味著,如果當前總共有 64 個註冊的 rollup slots,那麼在L2的一個區塊中,PoW 獎勵被均分為 64 份,每一個 sequence 獲得的獎勵為區塊 PoW 獎勵的 1/64 。當然,可能某些 rollup 在某些區塊沒有提交 sequence,因此 PoW 實際的通脹會低於預期。在未來,各個 sequence 將根據對應的 ZK-Rollup 類型、所包含的 Rollup 交易數量、gas 使用量等進行工作量預估,從而對不同 sequence 進行不同的定價。
ZKP 的兩步提交
一個 sequence 獲得的 PoW 獎勵份額,會按照一定規則分配給有效 ZKP 的提交者,也就是礦工。 Rollup 的智能合約驗證 ZKP 的時候,需要原始 proof 數據,這就可能引發鏈上攻擊行為。例如某一個 prover 計算出 ZKP 之後,交易廣播到交易池中,攻擊者就可以看到原始 proof 數據,攻擊者可以設置一個更高的 gas 費來發交易,從而優先打包到區塊中,來獲取 PoW 獎勵。為了防止惡意攻擊行為,Opside 提出了一個兩步提交的 ZKP 驗證機制。
1. 提交 hash
• 對於某個 sequence,prover 計算出 ZKP 之後,計算(proof / address)的 hash,並向合約提交 hash 和 address,其中 proof 是某一個 sequence 的 proof,address 是 prover 的地址,該地址必須提前質押。
• 假設在第 1 個 prover 在第 T 個區塊提交了 hash,則在第 T+ 10 區塊以內,還可以接受其他 prover 提交 hash,沒有數量限制。第 T+ 11 區塊及之後,不再接受新的 prover 提交 hash。 2. 提交 ZKP
• 第 T+ 11 區塊及之後,允許任何 prover 提交 zkp。只要有一個 zkp 通過驗證,那麼就對所有提交過的 hash 進行校驗。校驗通過的 prover 都可以得到 PoW 獎勵,獎勵金額按照礦工質押量的比例來分配。
• 如果在第 T+ 20 區塊之前,都沒有 ZKP 通過驗證,則所有提交過 hash 的 prover 都罰沒 1000 IDE。此時該 sequence 重新開放,允許提交新的 hash
舉一個例子,假設 Opside 中每個L2區塊的 PoW 獎勵是 128 IDE,當前總共有 64 個 Rollup slots,那麼每一個 Rollup sequence 分配到的 PoW 獎勵是 2 IDE。如果先後有 A, B, C 3 個礦工為一個 sequence 提交了正確的 ZKP,且 A, B, C 3 個礦工的礦工質押量(IDE)分別為 200 K, 500 K, 300 K。那麼,A, B, C 可以獲得的 PoW 獎勵分別為 0.4 IDE, 1 IDE, 0.6 IDE。
Prover 的質押與懲罰
為了避免針對 prover 的惡意行為,prover 需要在一個特殊的系統合約中註冊,並質押至少100000 IDE。如果當前質押數量小於閾值,則不允許提交 hash 和 ZKP。 prover 提交 ZKP 獲得的獎勵也將依據質押量比例來分配,從而避免 prover 多次提交 ZKP 的惡意行為。當 prover 出現以下行為,會進行不同程度的懲罰
• 如果 prover 提交了錯誤的 hash,則罰沒 10000 IDE
• 對於某個 sequence,如果沒有對應的 ZKP 通過驗證,則所有提交過 hash 的 prover 都將被
罰沒 1000 IDE,罰沒的 IDE 將被燒毀。關於 ZKP 的兩步提交機制更多的細節與考量,請讀者參閱官方文檔。 prover 質押以及懲罰的具體數字在未來可能會改動。
開發者租賃 Rollup slot
Opside 為開發者提供了 ZK-Rollup launch base,開發者可一鍵註冊一個 Rollup slot,從而擁有屬於自己的 ZK-Rollup。該 ZK-Rollup 所有的硬件資源都由 Opside 去中心化網絡來提供。開發者需要向 Opside 網絡支付 Rollup slot 的租金,這部分租金將直接燒毀。除了一個固定金額的租金以外,開發者還可以為自己的 ZK-Rollup 提供額外 ZKP 補貼,以激勵礦工提供算力。這部分將在 Alpha 測試網推出。具體的租金與補貼規則與參數,讀者可以在官方文檔或者代碼庫裡找到。
治理與發展
Opside 網絡的功能和性能將隨著時間的推移而不斷發展,以下為幾個優先級更高的示例:
• 根據整個網絡的 ZKP 算力供需關係,動態調整 PoS 與 PoW 的獎勵分配比例
• Validator 的數據分片與數據可用性抽樣,將為整個 Rollup Layer 提供更加豐裕的存儲空間,從而容納更多的 ZK-Rollup 生態
• Rollup 的提議者與構建者分離,使得L3共用L2的 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 經濟的⻓期利益和每個參與者類別帶來好處。隨著網絡的發展,打造一個無需大量工具和補貼亦可以獨立且穩健運行的經濟至關重要。