menu-icon
anue logo
鉅樂部鉅亨號鉅亨買幣
search icon
區塊鏈

一文讀懂StarkNet的開源堆棧

BlockBeats 律動財經 2023-02-08 18:00

cover image of news article
律動財經圖片

Web3 降智系列是我在 2023 年新開始的一個 以日常交流中 Web3er 對一些知識和概念的誤解為引子,以即使你在忙了一天後大腦停機的降智狀態也能讀懂為目的,通過講述設計思想而不是外在表現,儘量不涉及具體公式和代碼的 面向非技術人員的科普系列。  

繼上次我們提到 StarkNet 發布了開源的 Sequencer(定序器)後,StarkWare 又搞了一個大新聞:StarkNet 的 Prover(證明器)即將開源!

不知不覺的,從去年 11 月Cairo 語言開源之後,三個月的時間內,StarkNet 的所有組件全部重寫+開源。在這裡,我們回顧一下 StarkNet 的開源堆棧吧。

整體架構

首先,我們先複習一下上次的文章里提到的 StarkNet 架構。



Sequencer 負責管理和協調交易的執行順序。Sequencer 可以認為是一個交易隊列,它確保在同一個區塊內的所有交易按照指定的順序執行,並且確保沒有交易被重複執行。Sequencer 還負責驗證交易的合法性,並將其寫入區塊鏈。

Prover 則負責生成關於 Sequence 執行軌跡有效性的加密證明。目前,這項工作是由單一的 Prover,即「Share Prover」或「SHARP」執行的。

Verifier 位於 L1,用於驗證 Starknet Prover 產生證明的智能合約,如果運行成功,其將更新以太坊 L1 上的狀態用於記錄保存。

在上一篇文章里我們提到了上述三個部件,這一次除了 Sequencer 和 Prover,我們還將對 FullNode 進行說明(Verifier 和 StarkNet Core 屬於以太坊上的合約,不在討論範圍內)。

Sequencer—Blockifier

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—Papyrus

FullNode,即全節點,在 Starknet 中指的是一個 PathFinder(尋徑者)客戶端或者運行這個客戶端的機器。一個全節點會記錄 rollup 中執行的所有交易,並跟蹤系統的當前全局狀態。它通過 p2p 網路接收此資訊,每當創建一個新塊時,都會共享全局狀態和與其相關的有效性證明。

而Papyrus,是一個 StarkNet 全節點的 Rust 實現,已經於 1 月 16 號發布。它將成為新的 StarkNet Sequencer 的基礎的一部分,大大提高 StarkNet 的 TPS。開源 Papyrus,將有助於提高 StarkNet 性能和去中心化。

Cairo OS—Cairo-rs

Cairo OS 是 Sequencer 中用來執行以 Cairo 語言編寫的合約的虛擬機(VM)。而Cairo-rs,是一個由第三方開發團隊 Lambdaclass 開發的新的開源 Cairo VM,用以替換老舊的由 Python 開發的 CairoVM。

Prover—???(名稱未定)

那麼這次的開源 Prover 又對於 StarkNet 的架構有什麼意義?第一是為 Prover 的去中心化做準備,第二則是為了提高 StarkNet 的 TPS。目前 StarkNet 僅有官方運行的單一 Prover,叫做即「Share Prover」(共享證明器,簡稱「SHARP」)。為什麼它的名稱里有個共享?是因為這個證明器不僅負責生產 StarkNet 的證明,還要負責生成 StarkEX 的證明(關於什麼是 StarkEX 參考此處)。這嚴重影響了 StarkNet 的 TPS,且不符合去中心化思想* agian。

有了開源的 Prover 之後,任何人都可以自行編譯和運行自己的 Prover。當然,Prover 還仍然只是宣布開源,暫未放出 Git Repo。而且因為 ZK 的特性,Prover 為計算生成證明所需的計算遠遠多於 Sequencer 所執行的計算,所以根據官方的舊文檔,Prover 可能需要極高的配置,准入門檻非常高(如圖所示,4 核 CPU 和 16GB 內存只能每秒處理 100 個哈希)。

Cairo Language

Cairo 1.0 也已經在今年開源,由於 Cairo Language 是由 Rust 編寫,StarkNet 整個官方生態可以說已經變成了 Rust 全家桶。當然,Cairo 1.0 還未被 StarkNet 所支持,因此還不能用來編寫智能合約。根據官方消息,將在 2023 年 Q1 之內實現對 Cairo 1.0 支持。

原文連結

暢行幣圈交易全攻略,專家駐群實戰交流

▌立即加入鉅亨買幣實戰交流 LINE 社群(點此入群
不管是新手發問,還是老手交流,只要你想參與虛擬貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!

前往鉅亨買幣找交易所優惠






Empty