本文對StarkNet生態做了完整分析,首先將介紹理解所討論主題的所有基本概念(零知識、ZkRollup等)。任何對加密貨幣和區塊鏈技術感興趣的人都必須吸收這些知識。
第二部分,將介紹StarkWare開發的解決方案StarkNet/StarkEx,StarkNet: Cairo的智能合約語言及其與Solidity相比的特殊性,以及一些非典型和創新的微妙之處。
最後將分享一小部分正在構建的項目,這些項目將會在生態系統爆發中發揮重要作用。
詞彙表
ZKP = 零知識證明(Zero Knowlegde Proof)
ZKSTARK = 零知識可擴展透明知識論證(Zero-Knowledge Scalable Transparent ARguments of Knowledge)
Rollup = 來自ETH智能合約交易的鏈下聚合(Off-chain aggregation of transactions from a Smart Contract ETH)
ZK-Rollup = 使用ZKP進行Rollup
Scalabilité
SHARP = 共享證明者(Shared Prover)
Zero Knowledge、ZKSTARK和Rollup
零知識證明(Zero Knowledge Proof)
雖然區塊鍊為我們帶來了透明度、不變性和去中心化等巨大好處,但隱私的概念卻很少被討論。這就是零知識證明( ZKP ) 的用武之地:可組合性、隱私性和不變性的組合。
ZKP是一種加密方案,通過該方案,一方(PROVIDER,我們將其稱為PR)可以向另一方(VERIFIER,我們將其稱為VER)證明特定信息的真實性,而無需透露任何額外信息。
在一個具體的例子中,VER想要從金庫中收集獎勵。在ZK中:
-
PR秘密生成密鑰(K)
-
VER驗證密鑰(K),允許獲得獎勵
-
ZKP被驗證證實
同樣的,ZKP也可以解決:
-
PR生成密鑰(K) 並秘密地從保險庫中檢索獎勵
-
VER驗證獎勵對應於僅在同一保險庫中可用的獎勵
-
ZKP被驗證證實
總之,VER驗證者將不知道除布爾語句之外的任何信息。其他方的信息和個人數據的詳細信息保持匿名。
如你所見,ZKP允許隱私。但是這種方法的有趣之處在於它非常簡單、安全並具有令人難以置信的可擴展性,許多區塊鏈應用程序都選擇它來實現這些優點。
Rollup和Zk-Rollup
以太坊Rollup是以太坊智能合約中交易的鏈下聚合,通過將吞吐量從當前的15 tps提高到超過1000 tps來減少費用和擁塞。
ZK-Rollups是正在開發的用於構建2層的選項之一,通過在單個交易中處理大量轉賬來提高可擴展性。 Plasma每次轉賬創建一個交易,ZK-Rollups將數百個轉賬聚合成一個交易。智能合約將解構並驗證單筆交易中的所有轉賬:另一個可擴展性證明。
ZKP方法用於公開展示和記錄以太坊區塊鏈上區塊的有效性。 ZK通過減少交易中持有的數據量來減少驗證區塊的計算和存儲資源;不需要數據集的知識。
ZKSNARK — ZKSTARK
下面將介紹本文的一個關鍵概念:ZKSNARK和ZKSTARK,它們實際上是兩種不同類型的零知識證明。
ZK-Rollup方案由兩種類型的用戶組成:中繼者和交易者。
1、交易者創建他們的轉賬並通過網絡廣播轉賬。智能合約將數據存儲在兩個Merkle樹中:
-
一個默克爾樹中的地址
-
另一個默克爾樹中的轉賬的金額。
2、中繼者收集大量轉賬以創建聚合。生成SNARK證明是中繼者的工作:ZKSNARK。
SNARK證明是代表區塊鏈狀態改變的哈希值。 SNARK證明將轉賬前的區塊鏈快照與轉移後的區塊鏈快照進行比較,並僅向主網絡報告可證明哈希的變化。
在ZK-STARK之前,ZK-SNARK用於創建ZK證明系統,但需要一個或多個受信任方來初始配置ZK證明系統,這引入了這些受信任方的漏洞,從而危及整個系統的機密性。 ZK-STARK通過消除對可信配置的需求來改進這項技術。
這個新證明解決了舊SNARK證明的最大缺陷之一。這個證明是由StarkWare團隊提出。我稍後將介紹。
STARKs改善了無許可區塊鏈的兩個問題:可擴展性和隱私。
STARK通過允許開發人員將計算和存儲轉移到鏈下來提高可擴展性。鏈下服務將能夠生成證明鏈下計算完整性的STARK證明。然後將這些證明送回鏈上,供任何相關方驗證計算。使用STARK轉移大部分的鏈下計算工作允許現有的區塊鏈基礎設施以指數方式擴展,同時保持計算完整性:它將改變遊戲規則。
現在你擁有進入StarkWare:StarkNet生態系統的鑰匙了。
Starware x StarkNet
StarkNet是一種去中心化、無需許可的ZK-Rollup(基於ZKP),並使用ZKSTARK技術在不損害隱私的情況下實現指數級擴展。
StarkNet Alpha於2021年6月在公共測試網上發布,並於2021年11月主網上線。在主網部署時,StarkNet已經在類似以太坊的狀態下提供通用計算。
在整個開發過程中,StarkWare團隊選擇了一種專注於首先發布最重要功能的方法,本質上是與社區共享進化過程。
StarkNet遠未完成,但即使是現在,開發人員已經可以創建有意義且複雜的應用程序。如今,有數百名開發人員依賴StarkNet、大量dApp,以及一些外部團隊為StarkNet生態系統開發工具和基礎設施(我們將在最後一節中看到)。
一系列更新提供了許多重要功能。有幾個引起了我的注意:
-
L1 <-> L2消息傳遞
-
鏈上數據和可組合性支持
-
活動支持
-
基礎定價機制,合約升級
-
錢包抽象(現在是智能合約)
-
測試框架、開發工具、快速確認
自2022年年初以來,生態系統已達到可用性門檻:可以構建完整且令人驚嘆的dApp。團隊現在將專注於系統性能:在當前狀態下,它能夠支持有限的交易流。目標是在2022年下半年初實現TPS至少比以太坊高一個數量級,而成本至少比以太坊低兩個數量級。
StarkNet必須是一個完全去中心化的無許可網絡,具有領導選舉和治理機制。一旦吞吐量飆升和成本下降,實現這一目標將成為主要目標。
StarkEx現在是一些使用L2的最成功dApp的擴展引擎:dYdX(永續合約)、DeversiFi(交易和現金支付),以及Immutable X(IMX) 和Sorare(NFT 鑄造和交易)。
分形擴展:3層及更多
以太坊上高昂的交易成本推動L2發展。 StarkWare的範式是,由於交易成本大幅降低、對DeFi 工具的支持不斷增加以及它們提供的流動性增加,最終用戶將在L2上開展大部分業務。 L2s通過降低每筆交易的gas成本和提高交易率來提高可擴展性。同時,L2s保留了去中心化、通用邏輯和可組合性的好處。但是,某些應用程序需要特定的定制,可以通過單獨的新層更好地服務:讓我們談談第3 層。
L3與L2相關,就像L2與L1相關一樣。只要鏈接的L2能夠支持智能合約驗證者,就可以使用有效性證明來實現L3。當L2也使用提交給L1的有效性證明時,就像StarkNet所做的那樣,它變成了一個瘋狂的遞歸結構,其中L2證明的壓縮優勢乘以L3證明的壓縮優勢。
換句話說,如果每一層都實現了例如1000倍的成本降低,那麼與L1相比,所討論的L3可以實現100萬倍的降低,同時保持相同的安全性。然後,人們可以想像一筆交易費用只需要通常的gas費用的一小部分。
StarkWare解釋了擁有3層的優勢:
-
超可擴展性:利用遞歸證明的乘法效應。
-
由技術堆棧的應用程序設計人員更好地控制:
-
更具確定性的性能和成本
-
定制的數據可用性模型(例如,基於Validium或特定於應用程序的鍊式數據壓縮),
-
更快的功能和技術速度(例如,引入尚未準備好普遍可用的新功能)。
-
機密性:ZKP應用於公共L2上的隱私保護交易。
-
互操作性:獨立的L3將通過L2而不是L1進行交互。 L2顯然應該比L1便宜。
-
L3對於L2相當於Polkdot的“金絲雀”網絡Kusama:在向公眾提供之前,可以在L3上測試新的創新。
同樣,我們也提供了一個由StarkWare提出的3層理論例子:
-
具有Validium數據可用性的StarkNet,例如,用於對價格極為敏感的應用程序的一般用途。
-
為獲得更好的應用性能而定制的特定應用StarkNet系統,例如,使用指定的存儲結構或數據可用性壓縮。
-
具有Validium或Rollup數據可用性的StarkEx系統(例如服務於dYdX、Sorare、Immutable和DeversiFi的系統)立即為StarkNet帶來了經過實戰驗證的可擴展性優勢。
-
隱私StarkNet實例(在此示例中也為L4)啟用隱私保護交易,而無需將它們包含在公共StarkNet中。
Starknet上的智能合約:Cairo
StarkNet建立在Cairo編程語言之上,這是以太坊上第一個生產級完整的馮諾依曼圖靈檢查者(checker)。它實際上是生態系統中智能合約的語言。 Cairo允許開發人員使用ZKSTARK的強大功能來創建完全可擴展的應用程序。讓我們仔細看看。
Cairo:智能合約
Cairo是一種用於編寫可證明程序的語言:Cairo程序的執行會產生跟踪,然後可以將其發送給證明者,證明者會生成由Cairo程序表示的指令或計算的有效性的STARK 證明。然後可以用驗證者檢查證明。
如今,大多數dApp都是圍繞智能合約Solidity構建,實現了某種邏輯和接口以及後端。這些dApp成功後,不可避免地會面臨可擴展性問題。
我們越來越多地看到dApp通過轉向基於證據的L2可擴展解決方案(例如StarkEx的DeversiFi)來解決其可擴展性問題。鏈下組件支持業務邏輯的一些更複雜的部分,並與鏈上智能合約進行通信,而不會放棄安全性,因為對系統狀態的所有更改都經過證據證明( ZKP )。可擴展性提高了,因為驗證鏈上證明比完全在鏈上執行業務邏輯要便宜得多。
Cairo使用證明來實現可擴展性的障礙要低得多:在Cairo編寫邏輯,然後代碼必須在鏈下得到證明,一旦證明在鏈上得到驗證,你最終會得到一個可以自信地使用的結果——就像它在鏈上運行一樣。
在以太坊上,三點是昂貴的:計算、傳輸和存儲。
Cairo解決了這三個問題。要了解它是如何做到這一點的,我們需要引入一個新概念——共享證明者(The Shared Prover或SHARP)。
SHARP是Cairo代碼和Solidity智能合約之間的鏈接。它具有三個主要組件:證明者(鏈下)、智能合約驗證者(鏈上)和事實記錄器合約(鏈上)。
證明者跟踪你的程序的執行,證明它是有效的並將這個證明發送給驗證者。在驗證了證明之後,鏈上驗證者採取了更重要的一步:它在事實寄存器中寫入一個事實來證明證明的有效性。這個事實就像一個沒有信任的批准印章,證明Cairo計劃的計算是正確的。現在,dApp的智能合約剩下的就是驗證這一事實是否存在,以便依賴於鏈下執行的計算。
為了進一步了解這個開發環境,請看Notion頁面:
必須關注的StarkNet上的項目
StarkNet錢包:ArgentX
第一步是配置錢包。我們將使用ArgentX:下載chrome擴展或查看他們的repo
不像以太坊L1的私鑰和賬戶通常是同一個東西(想想EOA錢包),StarkNet支持賬戶抽象,這意味著每個賬戶實際上都是一個智能合約,必須先部署它才能與網絡交互。對於普通用戶來說,這既是一個絕佳的機會,也增加了複雜性。
ArgentX錢包在這裡被用來抽像出複雜性:它創建和保護私鑰,部署密鑰控制的賬戶合約,連接到去中心化應用程序並將交易發送到StarkNet網絡。
在我看來,使用智能合約作為錢包是安全性的一大進步。 ArgentX提供了與錢包相同的方式來創建保險櫃(因此是自動多重簽名)。除非你使用監護人,否則所有地址不受信任的交易都會被自動阻止。這種安全性涵蓋了所有資產,具有可信地址的交易是透明的。
目前,可用的應用程序主要在StarkNet的測試網上,要使用它們,你必須獲得測試代幣:https://faucet.goerli.starknet.io/
StarkNet橋
第二個最重要的事情是:如何將資金從L1(以太坊)轉移到L2 Starknet。答案在StarGate網橋中。不過應該謹慎,因為它又是一個Alpha產品,尚未經過審計。
StarkNet DEX — AMM
我們將從進入新生態系統時都在尋找的東西開始:DEX、交易和AMM。
截至今天,有幾個dApp脫穎而出:
Zigzag:DEX,一個圍繞ZKP構建的去中心化交易所,帶有OrderBook。
ZKX: 永續合約交易
Starkswap: DEX AMM,自動做市商的去中心化交易所
StarkNet借貸
zkLend:zkLend是基於StarkNet的貨幣市場協議。 ZkLend為機構客戶(“Apollo”)和麵向DeFi零售用戶(“Artemis”)的免授權服務提供雙重授權套件。
StarkNet Launchpad:Zkpad ZkPad為所有人建立一個風險投資平台。
像往常一樣,在我看來,新生態系統的焦點之一是:Launchpad。 ZkPad的目標是為創始人提供戰略和運營支持,包括Twitter/Discord上的聯合營銷、合作夥伴關係和生態系統介紹、訪問選定人才的數據庫,包括Cairo開發人員、UX/UI設計師和營銷人員。該平台專門用於向個人開放以前為投資基金保留的投資機會。
StarkNet DeFi
Magnety:Magnety是一種資產管理協議,允許任何人(例如投資集團、DAO或個人)通過Starknet和L1 DeFi生態系統創建和管理對沖基金。該協議允許用戶根據可以選擇的投資策略創建一個高度可定制的金庫。