一文讀懂 StarkWare:dYdX 和 Immutable 背後的 L2 方案


StarkWare 簡介

StarkWare 主要解決了區塊鏈的可擴充套件性和隱私。 StarkWare 開發了一個完整的解決方案,使用 STARK 技術,通過 zk-Rollups 和 Validium 模式組成 Volition 來生成和驗證計算完整性的證明。 StarkWare 的密碼證明可以做到零知識、簡潔、透明和後量子安全。 StarkWare 所研發的產品主要有: StarkNet、StarkEx、Cairo。

主要特點

可拓展性:StarkWare 允許區塊鏈通過依賴在雲中的鏈下證明者生成的加密證明進行大規模擴充套件,然後通過鏈上智慧合約進行驗證。

隱私性:zk-STARK 證明不會透露輸入的私人資訊。 結合其他加密工具,zk-STARK 可以完全且可證明地保護使用者資料。

使用者體驗:通過 Immutable 和 dYdX 的例子,我們就可以體驗到 StarkWare 所提供方案極強的拓展能力。 DiversiFi 的支付 TPS 可以達到 18k,Immutable 的 NFT 鑄造費用僅需 0.2 美分,dYdX 的交易費用縮減到了 1/50。秒確認,費率幾乎為 0,帶來了極佳的使用者體驗。

里程碑

2018: STARK 白皮書釋出,以太坊基金會 Grant

2019: 第一個 Demo 釋出 (擴大以太坊效率 200 倍),StarkEx Alpha 釋出測試網,第二個 Demo 釋出 (擴大以太坊效率 700 倍)

2020: DeversiFi (StarkEx 1.0) 釋出主網,VeeDo (基於 Stark 的 VDF) 釋出主網,StarkEx Rollup 釋出主網,ethSTARK 釋出,Cairo (圖靈完備的針對 STARK 語言) 以及其 PlayGround 釋出,Ziggy STARK (後量子安全的安全簽名) 釋出,StarkEx 2.0 釋出主網

2021: StarkNet 公佈,dYdX 與 Immutable X (均為 StarkWare 的客戶) 專案釋出主網

Immutable 與 StarkWare

iMMUTABLE 是第一個 Layer 2 的 NFT 交易平臺。 Tik Tok 在 9 月份與 Immutable 開展了合作,釋出了一系列 NFT。

由於以太坊的本地吞吐量上限為 4 交易 / 秒,限制了任何希望擴充套件的 DApp. 對於 NFT 來說,吞吐量瓶頸甚至比普通 Token 更大: 使用 NFT, 一千個 Token 實際上消耗區塊鏈資源的千倍於單個 Token.Immutable 希望用以太坊原生解決方案來享受以太坊的安全,開發工具和網路效果,所以採取了 StarkWare 提供的解決方案。

StarkWare 提供的解決方案的獨特功能之一是它能夠以多種資料可用性模式進行部署: zk-Rollups 或 Validium. 兩者都是基於有效性證明的,但是在 zk-Rollups 中,所有資料都在鏈上提交,而在 Validium 中,資料被儲存在鏈外,並且只有對最新狀態的提交,以及該狀態有效性證明的鏈上提交。Immutable 以 Validium 模式開始,提供更低的 gas fee。由於政策法規規定,資料可用性委員會 (DAC) 確保使用者始終可以訪問他們的資料。 所以 Immutable 切換到了 Volition 的新資料可用性模式,該模式將允許使用者以單一事務粒度選擇資料的儲存位置——鏈上 (zk-Rollups) 或鏈下 (Validium). 同時這樣的做法也最大化了效能的拓展。

在 Tik Tok 與 Immutable 的合作部落格文章中,Tik Tok 特別提到了 StarkWare 是第一個碳中和的 L2 拓展解決方案。 在傳統網際網路公司的視角里,環保是很重要的,不環保是很容易受到抨擊的,因此 L2 高效能和節約資源的特性也能吸引傳統網際網路公司的目光,給他們鋪平道路,光明正大入局加密貨幣領域。

StarkWare 提供給 Immutable 的解決方案最終讓 Tik Tok 這個目前最熱門的公司找上了 Immutable 進行合作。 StarkWare 所提供的兩種部署模式給了客戶資料儲存方式的靈活性,不僅符合法規,同時也讓效能得以拓展。更重要的是,效能的拓展也讓以太坊飽受爭議的能耗問題得到了解決,這會是 Layer 2 的勝利,更是 StarkWare 的勝利。在未來,我們一定會看到更多的傳統企業選擇以太坊以及 StarkWare 的方式進入區塊鏈領域。

StarkWare 應用為何有如此高的效能?

StarkWare 的 Prover 有各種數學優化和 StarkWare 首先提出的一些優化演算法,同時開發所用的 Cairo 語言有專門數學相關的優化。除此之外互動資料送到 Prover 之前會用 StarkEx 引擎先協調一遍待證明的資料以及批處理。 整個執行流程都做到了全覆蓋的優化。 具體細節會在後文中詳細探討。

StarkWare 應用的去中心化程度?

StarkWare 的 StarkNet 上的共識為 zk-STARK. zk-Rollups 不一定是去中心化,無准入限制的。 但是 StarkWare 所使用的 zk-STARK 是無准入限制的,與以太坊等公鏈一樣。 在 StarkWare 所做的應用中間過程是會存在一些中心化的伺服器來提供一些服務。 但這在一個完整應用的開發中是必要且無法去除的。 就像 uniswap 必須得有個中心化的域名和前端一樣。 所以 StarkWare 所做的 dYdX, StarkNet 等依然是去中心化的。

zkSync 和 StarkWare 對比


目前來看,StarkWare 無論是從效能還是目前的執行狀況,都領先於 zkSync。zkSync 和 StarkWare 最大的區別還是運作理念。 zkSync 的專案都是開源的,而且團隊說自己被替代掉也無所謂,只要能推動社羣和以太坊的發展。 StarkWare 公司是 toB 中心化的運作方式,STARK 證明器目前只能 StarkWare 公司使用,而且做 Cairo 這個語言其實也是不那麼對以太坊生態有利的做法 (對開發者友好的做法應該是和 zkSync 或 Optimistic 一樣去做 EVM 相容)。

延伸閱讀  用區塊鏈改進客戶關係管理系統?瞭解 Cere Network 的實踐

zk-Rollups 與 STARK 證明

StarkWare 所使用的技術包含了 zk-Rollups 以及 zk-STARK. 這兩者不是同一個事物。 STARK 即為 zk-STARK, 是零知識證明的一種。

StarkWare 傾向於稱自己的解決方案為 Validity Rollups,因為方案中不一定是用 zk-Rollups。Validity Rollups 包含了 Validium 和 zk-Rollups。這兩個的區別就是使用者資料是否上鍊。

STARK 通過允許開發人員將計算和儲存移出鏈來提高可伸縮性。 鏈外服務將能夠生成 STARK 證明,證明鏈外計算的完整性。 然後,這些證據被放回鏈上,供任何利益相關方驗證計算。使用 STARK 將大部分計算工作移出鏈,允許現有區塊鏈基礎設施以指數級擴充套件,同時保持計算完整性。

以太坊資料上鍊大致流程:1000 筆交易傳送給以太坊每個節點 → 每個節點讀取 1000 筆交易 → 節點更新 1000 筆交易

zk-STARK 資料上鍊流程: 1000 筆交易傳送給 zk-STARK → zk-STARK 作為證明者,生成 1 個證明 (*生成階段) → 節點作為驗證者讀取證明,更新

生成階段: 通常 zk-STARK 證明需要以下過程生成證明。 驗證者的證明過程分為兩步: 第一步為計算完整性宣告經過算術後生成代數中間程式碼表示,第二步為經過測試後生成 FRI (StarkWare Co-Founder 2017 年所著論文中對證明的優化方法),之後經過加密演算法後輸出可拓展的公開透明知識論據 (也就是 STARK). 簡而言之就是通過安全可信的環境以及優化演算法生成一個可信並且高效能的證明。

zk-Rollups 與其他 L2 方案比較

根據嚴格定義來說,StarkWare 很多文件中所使用的詞彙 zk-Rollups 並不是一定採用零知識證明,正確的描述是 Validity Proofs (包含 zk-Rollups 和 Validium, 因為 StarkWare 提供兩種模式). 為了避免術語的變動影響理解,本文依照 StarkWare 的文件均將其相關表述為 zk-Rollups。

側鏈 (Polygon 或 xDai)

優點: 即使使用者進行了大量交易,主鏈上發生的只有兩個,即存款和取款。 由於側鏈上的交易成本低於以太坊本身,因此可以得到可擴充套件性。

缺點: 授予建立新區塊的權力會帶來停止生產區塊的權力。 側鏈可以有阻止使用者提取資金的權力。

狀態通道

優點: 狀態通道的一個例子就是閃電網路。 當參與者將在長時間內交換大量狀態更新時,狀態通道非常有用。 具有很強的隱私性,因為之間的狀態只在通道內發生。 具有即時終結性,只要結束就立馬終結。

缺點: 狀態通道非常依賴於有效性,比較適用於有一組確定參與者的應用程式。

Plasma

優點: Plasma 非常適合處理 NFT,因為每個 NFT 都有一個唯一的 ID. 側鏈的問題之一是共識機制可以停止出塊甚至鎖定使用者資金 ; Plasma 使用者可以呼叫 Block root,因此如果共識機制停止建立 Block,使用者仍然可以向以太坊索取資金。

缺點: 如果許多使用者同時退出他們的 Plasma 鏈,他們可能會淹沒根鏈並使網路擁塞。 諸如欺詐活動或網路攻擊之類的事情可能會導致如此大規模的外流。 另一個缺點是缺乏複雜性,使用者無法像在側鏈上那樣執行相同型別的複雜操作,無法模擬完整以太坊環境。

zk-Rollups

優點: 每次轉賬的費用很低。 比 Plasma 和 Optimistic Rollups 更快。 資料量更少帶來更高的吞吐量和可擴充套件性。

缺點:初始設定不去中心化 (STARK 中沒有初始設定), 量子計算可能構成未來的黑客威脅 (STARK 可以抗量子計算機)

對比完各個 L2 解決方案後,我們可以發現 zk-Rollups 或許是最接近區塊鏈升級擴容的完美解決方案。 同時 zk-Rollup 的為數不多的幾個缺點會在 StarkWare 採用的 zk-STARK 中得到修正。

STARK 與其他 ZK 效能比較


ZK 證明中主要有 SNARK, STARK, Bulletproof 三種。 Bulletproofs 和 STARK 不需要可信設定,STARK 使用公開可驗證的隨機性來建立不受信任的可驗證計算系統。 其中 STARK 相較於其他兩種,證明大小大非常多,但在計算時的大小和證明速度上有很大優勢。 同時 STARK 的安全性更高,可以抗量子攻擊。


上圖是 StarkWare 的 Co-Founder 在宣講時放出的圖。 他們測試時使用的 STARK 證明用圖裡伺服器配置執行,對比其他幾種包括 SNARK 演算法的效能都高出很多。

StarkNet

StarkNet Alpha 會 在 11 月上線以太坊主網。(區塊鏈瀏覽器)

簡介

StarkNet 是一個去中心化,無需許可即可加入且抗審查的 L2 zk-Rollups, 支援以太坊上的通用計算。 它基於圖靈完備的 Cairo 語言。 開發人員可以構建應用程式來實現 App 業務邏輯並部署在 StarkNet 上 ; 使用者可以將交易以與以太坊正常交易相同的方式傳送到 StarkNet 來執行。 StarkNet 節點和參與者將受到經濟激勵,以確保網路高效公平執行。

所有 StarkNet 交易將定期進行批處理,交易在 STARK 證明中得到證明,最終在以太坊上進行驗證。 由於驗證 STARK 證明所需的計算工作量與以太坊證明的計算量相比,呈指數級小,因此 StarkNet 可以將以太坊擴充套件幾個數量級。 由於所有 StarkNet 狀態轉換都將經過 STARK 驗證,因此以太坊只接受最終有效的狀態轉換。


主要特點: 效能可拓展性,開發便利,針對以太坊生態的可組合性。

網路生態

程式語言 Cairo: Cairo 是一門圖靈完備的高階程式語言和框架,可以用於生成 STARK 證明。 開發人員可以使用 Cairo 來定義任何業務邏輯,將交易送到 Shared Prover Service 對邏輯進行鏈下驗證並在鏈上進行驗證。 Cairo 已在主網上適合進行正式的專案開發,可供開發人員使用。

鏈下驗證服務 Shared Prover Service: 在交易上鍊之前,交易會送到 Sharp 進行驗證,判斷應用程式執行的完整性,並且計算出分攤證明驗證的 gas 費用。

開源證明器 ethSTARK: ethSTARK 提供零知識和後量子安全簽名。 ethSTARK 在主網上的一個證明中處理 30 萬筆交易,TPS 達到了 3000. Rollup gas 效率也突破了世界紀錄達到 315 gas/tx, 比以太坊 L1 上的交易便宜幾個數量級。 這項技術是 StarkNet 去中心化證明層的基石。

延伸閱讀  三分鐘讀懂 Alien Worlds:融合 DeFi、NFT 與 DAO 的太空探索遊戲

第三方專案: 目前主要的第三方庫有 StarkNet.js。 StarkNet.js 的作用類似於 Web3.js,是用於前端獲取合約內容時使用的。 以太坊客戶端團隊正在做 StarkNet 的完整節點實現。 同時目前 StarkNet 網路審計軟體包括 CryptoExperts 和 LEAN proof。

使用案例

DeversiFi: 交易 TPS 9k, 支付 TPS 18k.
2.Immutable: NFT 鑄造 gas 0.2 美分,每日 L2 交易 > 每週 L1 交易。dYdX: 每筆交易費用縮減 50 倍。

StarkEx

簡介

StarkEx 類似一個底層引擎,構成元件來支援使用 STARK 的應用。

StarkEx 是可用於生產環境的 L2 可擴充套件性引擎,自 2020 年 6 月起部署在以太坊主網上。 StarkEx 利用 STARK 技術為 DeFi 和遊戲等應用程式提供可擴充套件的自託管交易。 StarkEx 支援廣泛的用例: 現貨交易,永續交易以及 NFT 鑄造和交易。 在主網部署之前,超過 5000 萬筆 StarkEx 交易在公共和私人以太坊測試網上結算。

StarkEx 目前支援 ETH 代幣,ERC-20, ERC-721 代幣和合成資產。 此外,它可以支援其他相容 EVM 的區塊鏈上的代幣。

特點

可擴充套件性和計算完整性:應用程式可以依賴 StarkEx 和底層 STARK 基礎設施來擴充套件,同時 StarkEx 確保計算完整性。 通過 SHARP (共享證明器)技術,gas 成本在所有基於 StarkEx 的應用程式中均攤銷。

多樣化的部署模式:StarkEx 可以部署 zk-Rollups 模式 (在鏈上釋出資料) 或 Validium 模式 (通過側鏈驗證資料可用性). 還有即將推出的模式: Volition, 允許使用者為自己選擇資料可用性模式。

錢包整合:StarkWare 通過 Ledger, Authereum 和 WalletConnect 提供本地支援。 StarkWare 還通過與 Web3 相容的金鑰生成 (適用於許多其他現有錢包) 提供 MetaMask 整合。

架構與業務邏輯


上圖是一個使用了 StarkNet 和 StarkEx 的典型應用的架構圖。 假設這個應用是一個叫 Starkswap 的 DEX。

最左側黃色框內的應用 —— 操作整個應用:這個鏈下元件接收使用者交易並定義業務邏輯和執行順序。 它將交易傳遞給 StarkEx 服務。這個元件是應用的中心化前端,通常為 Web 或客戶端。

淡藍色框內的 StarkEx 服務 —— 批處理和協調:一個鏈下元件,負責批處理一組操作並根據操作更新系統狀態。 對於每個批次,它會將這批操作 (通過 Cairo 語言執行,先把 Solidity 的位元組碼轉化成 Cairo 語言的智慧合約,在到 Cairo 語言環境中執行) 傳送到 SHARP 以證明其有效性。 一旦證明得到驗證,它就會在鏈上釋出新的狀態。 狀態由默克爾樹表示。 每個 Vault 的結構和內容根據實現的特定業務邏輯而有所不同。 默克爾樹根代表要提交到鏈上的狀態。

SHARP —— 共享證明器 (由 StarkWare 專門為應用定製):SHARP 是 Cairo 語言的共享證明服務。 它接收來自不同應用程式的證明請求並輸出證明以證明 Cairo 程式碼執行的有效性。 輸出證明可以在多個證明請求之間共享。這個元件此前的名字叫 Generic Prover Service. 所以元件本質上是一個後端伺服器,包含了一些特定服務。 推測是部署在 StarkWare 的中心化伺服器上。

StarkEx 合約 ( Verifier 合約) —— 狀態更新、存款和取款:該合約有兩個主要功能。 第一個功能是在驗證滿足有效性條件後更新系統的狀態,第二個功能是以非託管方式管理進出 StarkEx 的存款和取款 (任何情況下,使用者都可以提取他們的資金)。這個元件是以太坊上的一個智慧合約。

Starkswap 的業務邏輯如下:

1. 處理請求:

淡藍色方框內的 StarkWare 應用程式處理客戶請求,將這些交易轉換為可證明的陳述,並將這些傳送給深藍色方框內的 SHARP. 所有請求傳送與處理都通過圖中第一步的 API 以及第二步中的批處理語句傳送 (一個批次可以編譯多個請求)。

2. SHARP 證明:

深藍色的 SHARP 構造證明。

3. 登記證明:

SHARP 將證明傳輸到粉色框中的第三步的鏈上驗證者智慧合約。

4. 註冊狀態轉換:

第四步中,StarkWare 應用程式在 Starkswap 智慧合約上進行應用狀態轉換。
第五步中,為確保轉換的有效性 (SHARP 的驗證), Starkswap 的智慧合約確認轉換語句已在 Verifier 智慧合約中註冊。

功能與加密演算法

https://docs.starkware.co/starkex-v3/crypto/stark-curve

功能細節:

鏈下狀態:餘額樹和順序樹。 通過默克爾樹,保證了資金狀態的安全和可信,以及避免了雙花問題。

Flow Description:

– 鏈上賬戶 (賬戶的餘額在鏈外儲存和管理,除非資金移入 / 移出鏈上賬戶。 從 L1 的角度來看,這些賬戶的資金都儲存在 StarkEx 智慧合約下。)
– 鏈下賬戶 (所有餘額指令作為 L1 交易到達。 鏈上賬戶的一個特殊屬性是它不需要私鑰 (stark 的私鑰), 所以智慧合約是此類賬戶的 ” 所有者 “. 因此,L1 使用者和應用程式可以通過 StarkEx 進行交易並與任何掛單匹配。 鏈上交易模式實現了 StarkEx 應用程式和 L1 應用程式之間的互操作性,可用於 DeFi Pooling 或由流動性聚合器使用).

延伸閱讀  Findora 開發者網路成功實現 EVM 的完全相容和跨鏈功能,正式進入 DeFi 生態

StarkEx 特定概念:在 StarkEx 中有很多概念 與以太坊不同,因此開發需要額外的學習。

除此之外,StarkEx 還有資訊加密、批量閃電貸、DeFi pooling 等的特定操作。

加密演算法:STARK Elliptic Curve、Pedersen Hash Function、KDF。通過使用以上的加密演算法以及 參考 例項,第三方錢包可以整合 StarkEx。

Cairo

簡介

Cairo 是第一個生成 STARK 證明的生產級平臺。 它是圖靈完備的,而且非常高效。 要在 StarkNet 上部署高效能並且低 gas 費的 Layer 2 應用元件就需要使用 Cairo 來編寫應用程式。 Cairo 語言不是一門專門的合約語言,但是可以並且主要用來寫類似合約的內容。

zk-Rollups 當前的缺點是通用計算: 將智慧合約邏輯直接移植到 rollups 中更具挑戰性,因此只有有限的功能可用,例如轉移和交易。 然而,Cairo 填補了這個空缺,可以將智慧合約邏輯直接移植到 rollups 中。 zkSync 和 Optimistic 的做法分別是讓 rollups 做到 EVM 相容和 EVM equivalency (更加全面並且進一步的 EVM 相容).

特點

計算完整性

計算完整性是代表了在沒有監管的情況下,能保證計算的公正性。 保證 Computational Integrity 的方法有五種: 銀行委託問責制 (基於信譽,審計等), 計算可重放性 (例如比特幣和其他 L1 公開所有交易), 可信執行環境 (例如英特爾的 SGX), 欺詐證明 (Optimistic rollups, 介於委託問責和計算可重放性之間), 密碼學證明 (zk-STARK). Cairo 語言經過多篇論文以及數學證明的驗證,可以安全可信地生成 zk-STARK 的證明來保證計算完整性。

AIR (代數中間程式碼表示)

在 STARK 證明的過程中,需要用到很多設計代數證明的運算以及符號,Cairo 會通過編譯器把程式語言轉化為 Cairo 位元組程式碼,生成一個 AIR 來包含所有的數學證明步驟,最終生成結果。 Cario 語言有配套的 AIR 視覺化工具,來檢視證明中的細節。

語言設計

Cario 語言的設計遵循 Minimal Variable Language 的原則,講究恰到好處。 同時做到了語言的表達性 (便於開發者閱讀) 以及 STARK 證明的生成效率。 Cario 語言的設計也並非過於複雜,僅有三個暫存器 (PC, 分配指標,幀指標), 和簡潔的指令集。 Cario 語言也支援一些必要的功能,包括函式,遞迴,分支,判斷等。 Cario 語言設計的感覺更加符合數學證明的邏輯,更加工整。

工具鏈

編譯器、虛擬機器、程式碼編輯環境外掛 (VSCode 上的程式碼提示 外掛)、跟蹤程式、程式碼示例。

語言生態

目前 Cairo 語言的生態可以說非常全面但年輕。 在工具鏈方面一應俱全,根據這些工具的 GitHub 星數可以判斷出並沒有收穫很大的關注,但是倉庫的開發者在持續更新,基本在一到兩週內都有新的提交。 未來 Cairo 語言會更加開放,培養更多開發者後,在 StarkEx 引擎上寫 Cairo 程式碼的工作很可能從 StarkWare 移交到開源開發者手裡,這樣對 StarkWare 應用的去中心化會有很大的意義。

更重要的是 OpenZeppelin 正在做 Cairo 語言的 ERC-20、ERC-721 等基礎模版的 實現。這個實現的意義就是能方便開發者在此實現的基礎上開發,能讓開發者放心且大膽地拷貝此實現,迅捷開發並且不用過於擔心安全性。從倉庫的 commit 來看,OpenZeppelin 目前有專人來為 Cairo 語言做支援,證明 OpenZeppelin 對 StarkWare 生態的重視。

總結

作為一家 Layer 2 解決方案提供商,StarkWare 做出了 dYdX 和 Immutable 這樣的爆款產品。 在各種解決方案中,StarkWare 的 zk-STARK 技術支援了 Layer 2 上最大的交易數量。 從 Prover 的數學優化,Cairo 語言的數學優化,到 StarkEx 引擎的證明協調,StarkNet 作為一個去中心化 zk-STARK 網路,提供了極高的效能,做到完全執行流程的優化。 StarkWare 通過前沿的技術和完整的技術服務,支撐了 Layer 2 應用龐大的交易量,未來也必將擁抱開源,做到更去中心化,幫助了以太坊 2.0 的建設。

Scroll to Top