分享會內容過長,本次 AMA 總結文字做大量刪減,如果你想了解 StarkNet 更多知識可前往 StarkNet Astro 知識庫頁面。
StarkWare#
StarkWare 是 StarkEx 和 StarkNet 背後的開發團隊,團隊成員以密碼學工程師為主,STARKs 和 SNARKs 發明者均是其創始人,技術實力一流;融資方面累計融資 2.7 億美元,估值達到 80 億美元,為 L2 最高。
StarkEx#
簡介#
StarkEx 是 StarkWare 創立的,為項目方定制 ZKR 的企業服務,它可以幫助項目定制應用專有的 ZKR,目前使用 StarkEx 的客戶包括 dYdX 、Sorare、ImmutableX、DeversiFi 等。
與通用 ZKR 不同,在通過 StarkEx 定制的 ZKR 中,項目方往往具有超級管理員的權限,可以決定交易是否通過與排序,外部開發者不能免許可地部署應用,網絡較為中心化,但優點是性能極高。
工作原理#
StarkEx 工作流如下:
-
打包交易:鏈下伺服器(往往由項目方中心化運行)處理客戶請求,將多個交易組合成一個 “批次”,供 StarkEx 處理。
-
確認交易和更新狀態:鏈下伺服器確認交易合法,並以被壓縮後的哈希形式更新系統狀態。
-
為交易生成證明:SHARP 會為交易生成 STARK 證明以確認交易有效性,然後將證明和更新發送到鏈上 Verifier 智能合約,以確保交易的完整性。
-
鏈上驗證證明:一旦 STARK 證明被驗證,狀態更新被提交並結算回以太坊主網。所有交易都是在鏈外處理和驗證的,而其完整性的證明是在鏈上驗證的。
SHARP 是一個共享證明者,它同時為多個 StarkEx 客戶 / 應用提供證明生成服務 —— 生成計算完整性聲明的證明。Verifier 是部署在以太坊上的智能合約,用於驗證由 StarkEx 的交易生成的 STARK 證明的正確性。
StarkNet#
簡介#
StarkNet 是一個通用的 ZK Rollup,理論上能夠將 TPS 提高到 2000+,Gas 降低到 0.002 以下。
為什麼 StarkNet 具有相比以太坊更高的性能?首先回顧一下以太坊的工作原理。在以太坊上,每提交一筆交易都需要所有節點檢查、驗證並執行交易來保證計算正確性,並將計算後的狀態變化在網絡中廣播。
相比之下,StarkNet 僅在鏈下執行計算並生成一個 ZK 證明,然後在鏈上驗證該證明的正確性,最後把多個 L2 交易打包為以太坊上的一筆交易。因此,StarkNet 上發生的交易成本可以被同一打包批次的其他交易所均攤,就像拼車(🚌拼多多)一樣,交易越多,成本越低。StarkNet 為交易生成 ZK 證明的方法可以大大提高網絡運行速度、減少鏈上通信量、增加網絡吞吐,因此 StarkNet 相比以太坊具有更高 TPS 和更低 Gas。
簡而言之,將驗證計算正確性比喻為老師需要檢查同學們是不是掌握了知識。以太坊的方法是檢查每個同學是否能背誦整本教科書,而 StarkNet 的方法是讓同學們做卷子。後者的效率更高,成本更低,但仍然保證安全。
EVM 兼容#
StarkNet 網絡本身不兼容 EVM(以太坊虛擬機),而設計了另外一套 ZK 友好的 Cairo VM,是 Vitalik 所說的第四類 zkEVM,但屬於嚴格意義上的 zkVM。
在 zkVM 架構方面,StarkNet 實現了一套更加 ZK 友好的指令集、匯編語言、字節碼、AIR(代數中間表示)以及高級語言 Cairo。
儘管 StarkNet 本身不兼容 EVM,但 StarkNet 仍然可以通過其他方式兼容以太坊。
1、Warp:將 Solidity 轉譯為 Cairo 語言的轉譯器
Warp 是一個 Solidity-Cairo 轉譯器,目前已經由以太坊著名基礎設施團隊 Nethermind 開發完成。Warp 可以把 Solidity 代碼轉譯為 Cairo,但轉譯後的 Cairo 程序往往需要修改並增添 Cairo 特性(如調用內置函數,優化內存等)才能最大化執行效率。
2、Kakarot:一個用 Cairo 語言編寫的 zkEVM
Kakarot 是一個用 Cairo 寫的智能合約,目前部署在 StarkNet(goerli 測試網)上,100% 字節碼等效 EVM。目前處於測試階段。以太坊應用可以通過部署到 Kakarot 的方式移植到 StarkNet。
-
✅ Kakarot 可以:(a) 執行任意 EVM 字節碼,(b) 按原樣部署 EVM 智能合約,(c) 調用 Kakarot 部署的 EVM 智能合約的功能(視圖和寫入方法)。
-
✅ Kakarot 是一個 EVM 字節碼解釋器。
目前已經支持 EVM 全部操作碼。
工作原理#
StarkNet 有五個組成部分。分別是在 StarkNet 上的 Prover(證明者),Sequencer(排序器)和全節點;以及部署在以太坊上的驗證者(Verifier)和核心狀態合約(StarkNet Core)。
工作流程如下:
1、當我們在 StarkNet 上發起一個交易,一個鏈下伺服器 —— 排序器將會接收、排序、驗證,並將它們打包到區塊。執行交易,然後狀態轉換發送給 StarkNet Core 合約;
2、證明者將為交易生成證明,並發送給以太坊的驗證者合約;
3、驗證者將驗證結果發送到以太坊上的 StarkNet Core 合約,並從 StarkNet Core 合約觸發一組新的以太坊交易,以更新鏈上的全局狀態以進行記錄保存。狀態事務作為 “calldata” (EIP-4844 後為 Blob)來發送,以節省 L1 事務 gas。這些 “metadata” 可被 StarkNet 全節點解密。
全節點基本發揮存儲功能。全節點存儲狀態改變、元數據、證明以及記錄在 StarkNet 中的已被執行的所有事務,並跟蹤系統的目前全局狀態。在有必要的時候,全節點將解密 “metadata” 來重構 StarkNet 的歷史。
參考 StarkNet 開發倡導者 @barretodavid 寫的《StarkNet's Architecture Review》。
賬戶抽象#
不同於以太坊 EOA+CA 的雙賬戶設計,StarkNet 實現了原生賬戶抽象,只有一種賬戶設計,借鑒了 EIP 4337 的精神,下圖為交易模型:
STARK 證明系統#
目前有許多不同的證明系統(生成和驗證證明),如 Halo、PLONK、Groth16、Groth09 、Marlin、Plonky2 等,它們都屬於 SNARK 證明系統。證明系統存在一個證明者生成證明,一個驗證者驗證證明。而不同的 ZK 項目幾乎都會使用不同的證明系統,StarkNet 使用的 STARK 某種意義上屬於一種特別的 SNARK 。
STARK 相比 SNARK 有更多創新。它不需要和 SNARK 一樣依賴 “可信設置”。它還帶有更簡單的密碼學假設,避免了對椭圓曲線、配對和指數知識假設的需要,純粹依賴哈希和信息論,因此抗量子攻擊。總體來講 STARK 比 SNARK 更安全。
在擴展性方面,STARK 的擴展性更強。證明生成速度具備線性擴展性,驗證時間和證明大小具備對數擴展性。但缺點在於生成的證明尺寸更大。但隨著證明規模增加,驗證成本將會邊際遞減 —— 這意味證明越大,總成本越低。
總結一下,相比 SNARK,STARK 更安全,平均驗證時間和證明大小將隨著驗證規模擴大而降低,缺點在於初始證明尺寸更大,因此更適合大規模應用。
這裡介紹一下 STARK 的重要特性:遞歸證明
任何通用的、簡潔的知識系統的證明 / 論證(特別是 STARKs)都可以用來遞增地驗證計算。這意味著一個計算可以產生一個證明,以證明該計算的前一個實例的正確性,這個概念被非正式地稱為 "遞歸證明組合" 或者 "遞歸 STARKs"。
換句話說,一個遞歸 STARK 證明者可為一個陳述生成一個證明,即系統的狀態可以從 a 移到 a+1。因為證明者已經驗證了一個證實 a 的計算完整性的 (遞歸) 證明,並且忠實地執行了狀態 a 的計算,達到了新的狀態 a+1。簡而言之,你可以理解該過程將 a 和 a+1 兩個證明合併為一個證明,在理論上可以將近乎無限的證明合併為一個證明,這將大幅減少證明大小和驗證時間。如下圖所示:
Cairo VM 和 Cairo 語言#
Cairo VM 概述#
Cairo VM 是一個是採用馮諾依曼架構的 CPU VM,其編程語言也叫 Cairo,Cairo 語言基於 Cairo 匯編,因此編譯效率非常高。 Cairo 是 CPU Algebraic Intermediate Representation (代數中間表達)的首字母縮寫。Cairo VM 包含單個 AIR 來驗證這個 「CPU」 的指令集。
它有時候也被叫做 StarkNet OS/Cairo OS 。它不同於 EVM,Cairo VM 不執行計算,僅為計算生成證明並驗證正確性。
關於工作方式,它根據收到的輸入的交易來更新系統的 L2 狀態。促進 Cairo 合約的執行。Cairo VM 是基於 Cairo 的,合約可用的具體系統操作和功能可作為對操作系統的調用。
Cairo VM 特性#
靈活的 CPU 架構
Cairo VM 採用圖靈完備的馮諾依曼 CPU 架構,可通過軟件編程的方式無限接近 AISC 的性能,有對應的指令集,所以 Cairo 理論上可以復刻其他虛擬機。
只讀非確定性內存模型
Cairo VM 採用只讀的非確定性內存,這意味著每個內存單元的值由證明者選擇,它不能隨時間改變(在 Cairo 程序執行期間),是不可變的。該指令只能從中讀取。我們可以將之視為一次寫入的存儲器:可以向一個單元寫一次值,但事後不能改變它。而且它是連續的,如果有空會被任意值填充。
ROM 優點包括:低成本,電路比 ROM 更簡單;永存儲,內存值將保證永久存儲;不可篡改,數據不能修改和刪除。
Cairo 語言概述#
Cairo 是 StarkNet 的智能合約語言,基於 STARK 設計,Cairo 程序可生成 STARK 證明。
Cairo 程序是匯編代碼的集合,Cairo 開發人員將以高級語言 Cairo 來編寫智能合約而非 Cairo 匯編。當我們寫了一個 Cairo 程序,Cairo 編譯器會將 Cairo 代碼編譯成 Cairo 匯編,Cairo 匯編器將採用匯編代碼生成 Cairo 字節碼(它運行在 Cairo CPU)以在 Cairo VM 執行,當他最終運行到真實機器上還需要編譯為操作碼和機器代碼(還有指令)。
Cairo 語言特性#
啟動加載:從哈希加載程序
程序可以將另一個程序字節碼寫入內存,然後運行該程序。
這有兩個好處:
-
可擴展性,驗證時間和程序大小呈現對數關係,正如 STARK 部分提到的。
-
隱私性,驗證者可以驗證程序是否正確執行而無需知道計算。
內置函數:減少代碼編譯
開發者直接調用內置函數可以減少計算開銷,優化開發體驗,而不需要代碼轉換。添加內置函數不會影響 CPU 約束。這只是意味著相同的內存在 CPU 和內置函數之間共享,如圖所示。
Cairo 體系結構沒有指定一組特定的內置函數。可以根據需要在 AIR (代數中間表示)中添加或刪除內置函數。
特色生態#
與其他生態不同,StarkNet 有一些原生的創新應用,分別是全鏈遊戲、合約錢包和鏈上 AI。
關於全鏈遊戲(On-chain game),它不同於 GameFi。全鏈遊戲與 GameFi 的根本差別在於前者是去中心、免許可、可組合、互操作的,而後者僅僅將遊戲中的關鍵道具鑄造為代幣。
GameFi 只是將遊戲資產上鏈,計算與存儲的部分則在鏈下的中心化伺服器上,比如知名的 StepN,Axie Infinity,儘管它們已經取得了非常好的成績,但這些遊戲的玩法和內容是有限的,且受到項目方中心化運營的影響,項目方可以更改遊戲規則。GameFi 也不支持 UCG —— 玩家和開發者不能免許可地創造遊戲內的內容與資產,並且其他鏈上應用也難以與之互操作。
全鏈遊戲則不僅僅是將遊戲資產上鏈,整個遊戲也以合約的方式存在於網絡之中,遊戲的狀態存儲、邏輯執行也完全在鏈上,符合區塊鏈的去中心、免許可、可組合的基本屬性。這意味著沒有實體可以單方面更改遊戲規則,遊戲的主動權在玩家手中,遊戲 “官方” 的概念將會逐漸消失。
更有價值的是,玩家與開發者可以基於開源代碼自定義前端,在基本規則約束下對遊戲內的設施和資產進行再創造,解鎖 UCG—— 用戶創作內容的可能性。而且任何符合全鏈遊戲合約規則的 DApp 都可以免許可地與之互操作,這將把全鏈遊戲的可組合性擴展到更大的生態範圍之中,不僅各個鏈遊可以相互操作,鏈遊與 DeFi 、NFT 以及在未來可能湧現的任何 DApp 都能夠與全鏈遊戲相互操作,這將打破 Web2 以壟斷為商業模式的業務格局,給開發者和用戶更完美的應用體驗以及更有想像力的創造機會。
推薦項目 Topology、Cartridge.gg、Briq、Lootrealms
關於合約錢包,它具有強大的可編程、可組合的特性,從而能夠適應 DeFi 之外的新場景如全鏈遊戲、社交等。推薦 StarkNet 合約錢包 Braavos 和 Argent,前者可以將手機變成硬錢包,後者支持社交恢復,並且還將不斷更新功能。
關於鏈上 AI,StarkNet 允許 AI 模型在鏈下執行計算,將生成證明交由他人驗證即可保證計算完整性,並且 STARK 證明系統存在網絡效應,因此可降低需要大規模證明生成的 AI 模型的成本。
鏈上 AI 應用範圍包括:遊戲、預言機、交易(自動收益)、反女巫、KYC、數據隱私以及 AI 模型算力挖礦等。
問答#
Q:StarkNet 交易排序的邏輯是什麼?是否也會有以太坊上的 MEV?官方排序器有 MEV 需求嗎?能做嗎?
A:1)StarkNet 排序器排序,仍然是 gas 優先,去中心排序器後會做並行執行,目前去中心排序器的更多細節還沒有確定,排序設計也還沒有確定;L2 交易有順序,在 L1 上作為批處理就不體現 L2 交易順序;2)會有 MEV,但是還沒確定排序器去中心的共識,可能會借鑒 Flashbots,PBS 之類的機制;3)目前 StarkNet 中心化運營排序器,官方沒有做 MEV,Rollup 理論上都可以做。
Q:L2 gas fee,速度在哪裡可以看?哪裡能看到它們最終的性能指標?
A:Gas 在 https://l2beat.com/scaling/tvl 看,TPS 在這裡看 https://ethtps.info/。目前 ZKR 的工程進度較慢,可能在年中才能迎來規模採用,現在比較性能意義不大,且 L3 的實現可能會給 TPS 計算造成阻礙。
Q:為什麼很多以太坊都部署在 Arbitrum?
A:因為是 OPR,開發得更快;在前年就部署了,發展期更長。
Q:ZKR 什麼時候會迎來應用爆發?
A:應用爆發分為兩類,應用遷移和應用創新,遷移進度取決於不同 ZKR 的工程周期,可能會在 Q3-Q4;應用創新方面,哪些高 TPS、低單位收益的應用更能在 ZKR 上實現,可能會在年末爆發,取決於。
Q:OPR 和 ZKR 的差別是什麼?
A:OPR 使用欺詐性證明,ZKR 使用有效性證明,後者更快更便宜,Vitalik 有過文章闡述
https://vitalik.eth.limo/general/2021/01/05/rollup.html
Q:StarkNet 有什麼馬上能用的合約錢包?
A:Braavos、Argent。
Q:賬戶抽象的未來是什麼?
A:基於賬戶抽象的合約錢包可編程,比如它允許用戶自定義設置在某個時間內,低於一定價格的 Gas 都將被自動支付;而且相比 EOA 錢包更能適用 DeFi 之外的新場景如全鏈遊戲、社交。它就是把錢包當成合約來設計,讓錢包能實現合約能實現的功能。
Q:StarkNet 上有哪些值得交互的項目?
A:可以關注 Topology 團隊開發的全鏈遊戲 MuMu,它們近期還會推出一個新的鏈上 AI 格鬥遊戲;NFT 項目推薦 Briq,之前項目方給購買 NFT 的用戶空投了聖誕樹 NFT;推薦 Loot 系的遊戲 Lootrealms,這個遊戲發幣了。
Q:StarkNet 是不是更適合做鏈上 AI 和全鏈遊戲?
A:是的,因為 StarkNet 使用 STARK 證明系統,它的平均驗證時間和證明尺寸會隨著證明規模擴大而降低,因此具備網絡效應,這是 SNARK 所不具備的特性,這對鏈上 AI 和遊戲而言有助於降低成本和提高性能;另一方面 StarkNet 生態有很多全鏈遊戲融資、開發的基礎設施,如 MatchBoxDAO、Volt Capital、Cartridge.gg 等,官方也在大力支持全鏈遊戲的發展,因此 StarkNet 在技術和資源支持方面適合做鏈上 AI 和全鏈遊戲。
Q:StarkNet 可不可以和其他公鏈對接?
A:官方宣稱不會,只會以太坊作為結算層;技術上可以。
Q:賬戶抽象的缺點是什麼?
A:現在比較早期,相關的工具、代碼不夠成熟,但隨著時間的推進賬戶抽象會越來越成熟,賬戶抽象的優點是讓交易更加可編程。
Q:ZKR 的電路是什麼?為什麼要有電路?
A:可以理解為 ZK 的代碼;ZKR 需要為代碼的計算生成證明,高級語言的代碼需要編譯為字節碼再變成 ZK 電路才能夠被用來生成 ZK 證明。