StarkNet的Prover(證明器)即將開源,本文帶大家回顧一下StarkNet的開源堆疊。
StarkNet 發佈了開源的 Sequencer(定序器)後,StarkWare 又搞了一個大新聞:StarkNet 的 Prover(證明器)即將開源!
不知不覺的,從去年 11 月Cairo 語言開源之後,三個月的時間內,StarkNet 的所有元件全部重寫+開源。在這裡,我們回顧一下 StarkNet 的開源堆疊吧。
Sequencer 負責管理和協調交易的執行順序。Sequencer 可以認為是一個交易佇列,它確保在同一個區塊內的所有交易按照指定的循序執行,並且確保沒有交易被重複執行。Sequencer 還負責驗證交易的合法性,並將其寫入區塊鏈。
Prover 則負責生成關於 Sequence 執行軌跡有效性的加密證明。目前,這項工作是由單一的 Prover,即「Share Prover」或「SHARP」執行的。
Verifier 位於 L1,用於驗證 Starknet Prover 產生證明的智慧合約,如果運行成功,其將更新以太坊 L1 上的狀態用於記錄保存。
Starknet 的新 Sequencer Blockifier已於 1 月 26 號發佈,其節點部分和 CairoOS 部分分別基於將在下面提到的 Papyrus 和 Cairo-rs。之前的 Sequencer 是一個閉源的由 python 編寫用戶端,且只由 StarkNet 自己控制。而這個 Python 用戶端是連官方也承認的慢,而且也沒實現交易執行的並行性,這嚴重影響了 StarkNet 的 TPS,且不符合去中心化思想。
這個由 Rust 編寫的 Sequencer 開源後,最基礎的,是可以讓任何人都可以自行編譯和運行自己的 Sequencer 用戶端。同時根據官方自己的資訊,這個用戶端大幅度的提高了執行速度。而官方的後繼計畫也在路上:
- 整合現有的 StarkNet Sequencer,通過替換其當前用 Python 編寫的事務塊化元件。
- 實現交易執行的樂觀併發。
- 將 Blockifier 擴展成一個完整的 StarkNet Squencer,替換當前使用的 sequencer。
FullNode,即全節點,在 Starknet 中指的是一個 PathFinder(尋徑者)用戶端或者運行這個用戶端的機器。一個全節點會記錄 rollup 中執行的所有交易,並跟蹤系統的當前全域狀態。它通過 p2p 網路接收此資訊,每當創建一個新塊時,都會共用全域狀態和與其相關的有效性證明。
而Papyrus,是一個 StarkNet 全節點的 Rust 實現,已經於 1 月 16 號發佈。它將成為新的 StarkNet Sequencer 的基礎的一部分,大大提高 StarkNet 的 TPS。開源 Papyrus,將有助於提高 StarkNet 性能和去中心化。
Cairo OS 是 Sequencer 中用來執行以 Cairo 語言編寫的合約的虛擬機器(VM)。而Cairo-rs,是一個由協力廠商開發團隊 Lambdaclass 開發的新的開源 Cairo VM,用以替換老舊的由 Python 開發的 CairoVM。
那麼這次的開源 Prover 又對於 StarkNet 的架構有什麼意義?第一是為 Prover 的去中心化做準備,第二則是為了提高 StarkNet 的 TPS。目前 StarkNet 僅有官方運行的單一 Prover,叫做即「Share Prover」(共用證明器,簡稱「SHARP」)。為什麼它的名稱裡有個共用?是因為這個證明器不僅負責生產 StarkNet 的證明,還要負責生成 StarkEX 的證明。這嚴重影響了 StarkNet 的 TPS,且不符合去中心化思想。
有了開源的 Prover 之後,任何人都可以自行編譯和運行自己的 Prover。當然,Prover 還仍然只是宣佈開源,暫未放出 Git Repo。而且因為 ZK 的特性,Prover 為計算生成證明所需的計算遠遠多於 Sequencer 所執行的計算,所以根據官方的舊文檔,Prover 可能需要極高的配置,准入門檻非常高(如圖所示,4 核 CPU 和 16GB 記憶體只能每秒處理 100 個雜湊)。
Cairo 1.0 也已經在今年開源,由於 Cairo Language 是由 Rust 編寫,StarkNet 整個官方生態可以說已經變成了 Rust 全家桶。當然,Cairo 1.0 還未被 StarkNet 所支持,因此還不能用來編寫智慧合約。根據官方消息,將在 2023 年 Q1 之內實現對 Cairo 1.0 支持。
免責聲明:
本文觀點僅代表作者個人觀點,不構成本平台的投資建議,本平台不對文章信息準確性、完整性和及時性作出任何保證,亦不對因使用或信賴文章信息引發的任何損失承擔責任
0.00