StarkWare
簡介
StarkEx和StarkNet均為StarkWare團隊開發的項目,前者類似Iaas,類比應用鏈,StarkWare幫助大型項目開發專有應用Rollup;后者則是可部署通用應用的Rollup。
截止目前,StarkWare已經完成6輪融資,共計2.73億美元。尤其是最近一輪融資金額達到1億美元,使其估值翻了兩番,達到80億。作為?L2項目中估值最高的項目,本文特探討?Starkware?的技術架構和生態應用。
StarkEx:專有ZKR引擎
簡介
在去年和今年上半年,StarkWare通過提供擴容技術解決方案StarkEx創立了擴容即服務的商業模式,建立應用專有網絡,服務業內頭部客戶dYdX、Sorare、ImmutableX、DeversiFi等。
整體架構
工作流包括以下四個環節
打包交易:鏈下服務器處理客戶請求,將多個交易組合成一個“批次”,供StarkEx處理。
確認交易和更新狀態:鏈下服務器確認交易合法,并以被壓縮后的哈希形式更新系統狀態。
為交易生成證明:完成上述流程后,SHARP會為交易生成STARK證明以確認交易的有效性。然后將證明和更新發送到鏈上Verifier智能合約,以確保交易的完整性。
鏈上驗證證明:一旦?STARK?證明被驗證,狀態更新被提交并結算回以太坊主網。所有交易都是在鏈外處理和驗證的,而其完整性的證明是在鏈上驗證的。
SHARP是一個共享證明者,它同時為多個StarkEx客戶/應用提供證明生成服務——生成計算完整性聲明的證明。
Verifier是部署在以太坊上的智能合約,用于驗證來自StarkEx的交易的正確性。
StarkWareApplications
StarkEx應用程序是一系列支持可擴展和自我托管交易的應用程序,區分現貨交易和杠桿交易。應用包括兩個組件,智能合約和后端。
?標準流程
用戶發起交易,交易可以直接與智能合約交互
每個交易都有一個唯一的id,共同組成一個交易流,StarkEx應用將交易流傳輸到后端
后端將狀態轉換提交給SHARP,SHARP為狀態轉換生成證明
SHARP向驗證者合約提交證明并在驗證者完成驗證后,驗證者將之記錄在VerifierFactRegistry,然后后端將在StarkEx智能合約上執行狀態轉換。
StarkEx智能合約檢查狀態轉換是否符合預定義規則來確保狀態轉換的有效性。
參考鏈接:Introduction::StarkExDocumentation
高級概述
如下圖所示,StarkEx系統旨在接受來自合作伙伴后端的用戶交易。這些交易隨后由StarkEx系統進行批處理和處理。結合前面智能合約和后端的介紹,整個StarkEx處理交易的過程和職責分工概述如下。
數據:約1500萬枚MATIC從未知錢包轉移到PolygonStaking:7月24日消息,據WhaleAlert監控數據顯示,近1500萬枚MATIC(10,749,787美元)于今日23:12(北京時間)從未知錢包轉移到PolygonStaking。[2023/7/25 15:56:16]
前端,StarkEx客戶支持兩類操作,鏈上和鏈下。前者是標準的以太坊交易,用戶直接通過StaarkEx合約進行存款取款,后者是通過StarkEx引擎執行的操作,如dydx等。
訂單驗證,由StarkEx客戶的后端設置并進行驗證。
業務邏輯,客制化StarkEx合約來支持客戶業務邏輯
交易流,傳輸到StarkEx的所有交易都使用稱為tx_ids的連續標識符進行驗證和索引,類似nonce的做法,
交易發送方,一旦StarkEx網關確認交易正確就會保證執行它,并且將在前端提前顯示給用戶,而不是等待鏈上最終確定。
錯誤處理,如果檢測到無效交易,StarkEx系統將會向客戶的專業端點報告錯誤,客戶將會以另外的要執行的交易列表來代替無效交易,如空列表等。
批處理審核,任何批次在鏈上傳輸之前可以被客戶審核,如果和預期狀態轉換和不一致,客戶可以不批準或者回滾。
抗審查,如果客戶審查用戶請求,StarkEx允許用戶直接通過?StarkEx合約執行操作,客戶必須在規定時間內向用戶提供它,否則StarkEx合約將會凍結。
參考文檔:StarkExPartnerIntegration::StarkExDocumentation
StarkNet:通用ZKR
簡介
不同于為不同的應用定制ZKRollup的StarkEx,StarkNet是一個通用的ZKRollup,開發者可在StarkNet上部署應用。
基本介紹
在以太坊上,每提交一筆交易都需要所有節點檢查、驗證并執行交易來保證計算正確性,并將計算后的狀態變化在網絡中廣播。
https://ethereum.org/zh/developers/docs/evm/?
StarkNet僅在鏈下執行計算并生成一個ZK證明,然后在鏈上驗證該證明的正確性,最后把多個L2交易打包為以太坊上的一筆交易。因此,StarkNet上發生的交易成本可以被同一打包批次的其他交易所均攤,就像拼車一樣,交易越多,成本越低。
除此之外,相比以太坊讓每個節點完整執行交易的方法,StarkNet為交易生成ZK證明的方法可以大大提高網絡運行速度、減少鏈上通信量、增加網絡吞吐,因此StarkNet相比以太坊具有更高TPS和更低Gas。
簡而言之,將驗證計算正確性比喻為老師需要檢查同學們是不是掌握了知識。以太坊的方法是檢查每個同學是否能背誦整本教科書,而StarkNet的方法是讓同學們做卷子。后者的效率更高,成本更低,但仍然保證安全。
Boba Network等8個項目入選10月份BNB Chain Project Stars:10月17日消息,BNB Chain宣布,10月份共8個項目入選BNB Chain Project Stars,包括NFT MMORPG游戲Stella Fantasy、GameFi平臺P12、可提高LP收益的Wombex、區塊鏈虛擬世界Dracoo World、Web3任務和事件平臺Quest3、多鏈DAO生態XDAO、以太坊擴容方案Boba Network、Pyth。[2022/10/17 17:28:11]
EVM兼容
StarkNet網絡本身不兼容EVM,而設計了另外一套ZK友好的CairoVM。
StarkNet沒有和Hermez和Scroll一樣針對以太坊操作碼做ZK電路,而是自己做了一套更加ZK友好的匯編語言、AIR以及高級語言Cairo。
StarkNet屬于Vitalik定義的type4級別——語言兼容的zkEVM。
https://vitalik.eth.limo/general/2022/08/04/zkevm.html
盡管StarkNet本身不兼容EVM,但StarkNet仍然可以通過其他方式兼容以太坊。
1、Warp:將Solidity轉譯為Cairo語言的轉譯器
Warp是一個Solidity-Cairo轉譯器,目前已經由以太坊著名基礎設施團隊Nethermind開發完成。Warp可以把Solidity代碼轉譯為Cairo,但轉譯后的Cairo程序往往需要修改并增添Cairo特性才能最大化執行效率。
2、Kakarot:一個用Cairo語言編寫的zkEVM
Kakarot是一個用Cairo寫的智能合約,目前部署在Starknet上,字節碼等效EVM。目前處于測試階段。以太坊應用可以通過部署到Kakarot的方式移植到StarkNet。
Kakarot可以:(a)執行任意EVM字節碼,(b)按原樣部署EVM智能合約,(c)調用Kakarot部署的EVM智能合約的功能
Kakarot是一個EVM字節碼解釋器。
目前已經支持EVM全部操作碼。
https://github.com/sayajin-labs/kakarot
工作原理
組成部分
StarkNet有五個組成部分。分別是在StarkNet上的Prover,Sequencer和全節點;以及部署在以太坊上的驗證者和核心狀態合約。
https://david-barreto.com/starknets-architecture-review/#more-4602?
當我們在StarkNet上發起一個交易,一個鏈下服務器——排序器將會接收、排序、驗證,并將它們打包到區塊。執行交易,然后狀態轉換發送給StarkNetCore合約;
穩定幣聚合協議mStable將部署Feeder Pool:穩定幣聚合協議mStable發推稱,此前關于部署Feeder Pool的提案MIP-9已獲投票通過。官方將部署Feeder Pool;67%的獎勵將被鎖定6個月;最初的mUSD Feeder Pool資產將為BUSD和GUSD;最初的mBTC Feeder Pool資產將為tBTC和hBTC。[2021/3/27 19:23:13]
證明者將為交易生成證明,并發送給以太坊的驗證者合約;
驗證者將驗證結果發送到以太坊上的StarkNetCore合約,并從StarkNetCore合約觸發一組新的以太坊交易,以更新鏈上的全局狀態以進行記錄保存。狀態事務作為“calldata”來發送,以節省L1事務gas。這些“metadata”可被StarkNet全節點解密。
全節點基本發揮存儲功能。全節點存儲狀態改變、元數據、證明以及記錄在StarkNet中的已被執行的所有事務,并跟蹤系統的當前全局狀態。在有必要的時候,全節點將解密“metadata”來重構StarkNet的歷史。
參考StarkNet開發倡導者?@barretodavid寫的《StarkNet’sArchitectureReview》。
瀏覽器?https://testnet.starkscan.co/,L2?動態出塊,以太坊一小時結算
賬戶抽象與交易模型
不同于以太坊EOACA的雙賬戶設計,StarkNet實現了原生賬戶抽象,只有一種賬戶設計,借鑒了EIP4337的精神,
下圖為交易模型,
https://community.starknet.io/t/starknet-account-abstraction-model-part-1/781?
原生賬戶抽象為賬戶可編程打開大門,StarkNet的開發倡導者@barretodavid提到StarkNet上實現手機硬錢包的思路。
以太坊上的EOA僅支持Secp?256?k?1橢圓曲線上的簽名方案ECDSA
大部分的智能手機都不支持以太坊的橢圓曲線。
所以移動錢包需要依靠軟件簽署交易,移動錢包因此是熱錢包。
StarkNet原生賬戶抽象,支持多種橢圓曲線,簽名驗證高度可編程,因此基于StarkNet/Cairo的手機錢包完全可以變成硬錢包。
Cairo已經有一個?nistp?256?的實現
https://github.com/spartucus/nistp?256-cairo
簡單來講就是直接調用手機的加密模塊來對交易進行“硬簽名”。
STARK
目前有許多不同的證明系統,如Halo、PLONK、Groth?16、Groth?09、Marlin、Plonky?2等,它們都屬于SNARK證明系統。證明系統存在一個證明者生成證明,一個驗證者驗證證明。而不同的ZK項目幾乎都會使用不同的證明系統,StarkNet使用的STARK某種意義上屬于一種特別的SNARK。
V神:當前正在發生垃圾郵件攻擊ethstatus:以太坊聯合創始人V神剛剛在推特表示,當前正在發生垃圾郵件攻擊ethstatus。許多帳戶。所以你不能只阻止一個帳戶就可以消除垃圾郵件。這將是一個有趣的挑戰,看看如何可靠地抵御這類事情。[2020/9/8]
STARK相比SNARK有更多創新。它不需要和SNARK一樣依賴“可信設置”。它還帶有更簡單的密碼學假設,避免了對橢圓曲線、配對和指數知識假設的需要,純粹依賴哈希和信息論,因此抗量子攻擊。總體來講STARK比SNARK更安全。
在擴展性方面,STARK的擴展性更強。證明生成速度具備線性擴展性,驗證時間和證明大小具備對數擴展性。但缺點在于生成的證明尺寸更大。但隨著證明規模增加,驗證成本將會邊際遞減——這意味證明越大,總成本越低。
https://consensys.net/blog/blockchain-explained/zero-knowledge-proofs-starks-vs-snarks/
總結一下,相比SNARK,STARK更安全,平均驗證時間和證明大小將隨著驗證規模擴大而降低,缺點在于初始證明尺寸更大,因此更適合大規模應用。
擴展性詳解
證明時間線性擴展:證明人花費的時間與哈希調用的數量呈近似線性關系。
在80比特的安全級,STARK每12288次哈希調用的證明者執行時間為1秒,得12288?次/S;而每98304次哈希調用需要10秒,得9830?次/S,因此,我們可以知道STARK的證明時間和哈希調用基本呈近似線性關系。如下圖所示
https://eprint.iacr.org/2021/582.pdf
**驗證和證明大小對數擴展:驗證時間與哈希調用呈現對數關系。**如下圖所示:
左圖可以看出,當哈希調用從3072增加到49152?,驗證時間從40毫秒增加到60毫秒。而當哈希調用從49152增加到786432?,驗證時間僅從60毫秒增加到80毫秒。證明大小同理。因此,我們可得知,哈希調用次數越多,平均驗證時間越短,平均證明大小也會更小。
遞歸證明
任何通用的、簡潔的知識系統的證明/論證都可以用來遞增地驗證計算。這意味著一個計算可以產生一個證明,以證明該計算的前一個實例的正確性,這個概念被非正式地稱為“遞歸證明組合"或者"遞歸?STARKs”。
換句話說,一個遞歸STARK證明者可為一個陳述生成一個證明,即系統的狀態可以從a移到a?1?。因為證明者已經驗證了一個證實a的計算完整性的(遞歸)證明,并且忠實地執行了狀態a的計算,達到了新的狀態a?1?。簡而言之,你可以理解該過程將a和a?1兩個證明合并為了一個證明**。如下圖所示:**
https://medium.com/starkware/recursive-starks-78?f?8?dd?401025?
動態 | Staking獎勵將不會在以太坊升級到2.0之后產生顯著利潤:據Cryptoglobe報道,一些分析師認為,相比使用基于云的服務,如亞馬遜AWS,以太坊網絡上的交易驗證者若使用自己的硬件,會更有可能獲得更高的利潤。然而,最近的統計數據表明,在與以太坊2.0相關的一系列升級被激活后,驗證以太坊區塊鏈上的交易將不會產生顯著投資回報(主要是Staking獎勵)。根據以太坊聯合創始人Vitalik Buterin的提議,智能合約平臺上的交易驗證者可以獲得每年5%的利息,最低存款額為32 ETH,年回報率大致約為250美元。但如果考慮與購買和維護新硬件設備和電力消耗的成本,那么以太坊網絡交易驗證者獲得的利潤將減少到僅約41美元,這僅僅是0.8%的投資回報率。[2019/5/8]
CairoVM:驗證計算正確性
CairoVM概述
有時候也通過StarkNetOS/CairoOS的方式出現,是一個東西,不同于EVM執行計算,CairoVM本身僅為計算生成證明并驗證正確性。
CairoVM是一個是一個采用馮諾依曼架構的CPUVM,其編程語言也叫Cairo,Cairo語言基于Cairo匯編,因此編譯效率非常高。Cairo是CPUAlgebraicIntermediateRepresentation的首字母縮寫。CairoVM包含單個AIR來驗證這個「CPU」的指令集。
關于工作方式,它根據收到的輸入的交易來更新系統的L2狀態。促進StarkNet合約的執行。操作系統是基于?Cairo?的,本質上是使用STARK證明系統對其輸出進行證明和驗證的程序。StarkNet合約可用的具體系統操作和功能可作為對操作系統的調用。
Cairo語言概述
Cairo是StarkNet的智能合約語言,基于STARK設計,Cairo程序可生成STARK證明。
Cairo程序是匯編代碼的集合,Cairo開發人員將以高級語言Cairo來編寫智能合約而非Cairo匯編。當我們寫了一個Cairo程序,Cairo編譯器會將Cairo代碼編譯成Cairo匯編,Cairo匯編器將采用匯編代碼生成Cairo字節碼以在CairoVM執行,當他最終運行到真實機器上還需要編譯為操作碼和機器代碼。
非確定性計算
Cairo程序的目標是驗證某些計算是正確的,因此可以相比那些確定性計算走捷徑。它意味著為了證明一個計算,驗證者可以做一些不屬于計算的額外工作。
例如,證明?x=?961?的平方根?y?是在?0,?1,…,?100?的范圍內。直接的方法是寫一個復雜的代碼,從961開始,計算它的根,并驗證這個根是否在所要求的范圍內。
偽代碼如下:猜測?y?的值。計算?y?2?并確保其結果等于?x。驗證?y?是否在范圍內。并且,如果我們采取以下的計算方式。Y=SQRT(X)我們可以改為計算如下。Y*Y=X
我們可以看到,有兩種可能的解決方案。Y?和-Y,而且有可能只有其中一個能滿足其余的指令。
這意味著,如果沒有一些額外的信息,一些開羅程序是無法有效執行的。這種信息由我們稱之為提示的東西提供。提示是CairoRunner的特殊指令;用于解決不能輕易推導出數值的非確定性問題。理論上,提示可以用任何編程語言編寫。在當前的?Cairo?實現中,提示是用Python寫的。
關于確定性和非確定虛擬機,witness
Cairo在這里其實也會涉及到有確定性的CairoVM和非確定性的CairoVM。前者就是正經的zkVM,證明和驗證;后者用于非確定性計算。
anacceptinginputtotheCairodeterministicmachine,thatconstitutesthewitnesstothenondeterministicmachine.
Cairo確定性VM的一個可接受的輸入構成了非確定性VM的witness,ZKP需要將witness作為輸入輸出proof。
是一個并行狀態機。
內存模型:只讀非確定性
只讀的非確定性內存,這意味著每個內存單元的值由證明者選擇,它不能隨時間改變,是不可變的。該指令只能從中讀取。我們可以將之視為一次寫入的存儲器:可以向一個單元寫一次值,但事后不能改變它。
而且它是連續的,如果有空會被任意值填充。
ROM優點包括
低成本,電路比RAM更簡單
永存儲,
不可篡改,數據不能修改和刪除
內置函數:減少代碼編譯
開發者直接調用內置函數可以減少計算開銷,優化開發體驗,而不需要代碼轉換。添加內置函數不會影響CPU約束。這只是意味著相同的內存在CPU和內置函數之間共享,如圖所示。
https://medium.com/@pban/demystifying-cairo-white-paper-part-i-b?71976?ad?0108?
Cairo體系結構沒有指定一組特定的內置函數。可以根據需要在AIR中添加或刪除內置函數。
CPU架構:靈活
更加靈活,可以通過軟件編程的方式無限接近AISC的性能。以Cairo復刻其他虛擬機。
啟動加載:從哈希加載程序
程序可以將另一個程序字節碼寫入內存,并讓ProgramCounter指向該內存段,然后運行該程序。一個從哈希啟動加載的用例是,一個被稱為啟動加載器的程序計算并輸出另一個程序的字節碼,然后像之前一樣開始執行它。這樣驗證者只需要知道程序的哈希而非完整字節碼。這有兩個好處:
可擴展性,驗證時間和程序大小呈現對數關系,正如STARK部分提到的。
隱私性,驗證者可以驗證程序是否正確執行而無需知道計算。
連續記憶:連續訪問內存地址
Cairo有一個技術要求,程序訪問的內存地址必須是連續的。例如,如果訪問地址7和9?,那么在程序結束之前也必須訪問8?。如果地址范圍中存在小間隙,證明者將自動用任意值填充這些地址。通常,存在這樣的間隙是低效的,因為這意味著內存在未被使用的情況下被消耗。引入太多的漏洞可能會使證明的生成對于誠實的證明者來說過于昂貴而無法執行。然而,這仍然沒有違反可靠性保證——無論如何都不會產生錯誤的證明。
StarkNet生態
盤點StarkNet生態:
https://h?0?m?83?hhc?6?r.feishu.cn/docx/doxcnS?3?GGdXXc?1?PzKh?9?uTgTR?73?c
全鏈游戲
全鏈游戲——生產效率消費體驗的變革,基本上,有思考,有實踐,有資金,最重要的是有一個富有活力的開發者社區。
MatchboxDAO:https://mirror.xyz/matchboxdao.eth
TheFutureofOn-ChainGaming:
https://volt.capital/blog/the-future-of-on-chain-gaming
Game2.0?:
https://www.guiltygyoza.xyz/2022/07/game?2?
重點推薦Topology團隊,Lootreamls。
合約錢包
合約錢包變成硬錢包的實現方法有兩種。
共識層支持手機硬件。在StarkNet這樣原生賬戶抽象的L2上,支持多種橢圓曲線,而不是和以太坊一樣只支持ECDSA,因此可以讓手機的加密芯片/模塊直接對交易簽名。因此,在原生賬戶抽象的L2上,合約錢包可以和硬錢包一樣直接通過硬件簽署交易。
錢包層進行簽名轉錄。在以太坊這樣非原生賬戶抽象的網絡上,合約錢包可以簽名轉錄。像EIP-4337可以自定義驗證邏輯,用戶用手機硬件支持的算法簽名后再轉換為以太坊支持的ECDSA。
StarkNet的開發倡導者@barretodavid,提到的在StarkNet上實現手機硬錢包的思路。
以太坊上的EOA僅支持Secp?256?k?1橢圓曲線上的簽名方案ECDSA
大部分的智能手機都不支持以太坊的橢圓曲線。
所以移動錢包需要依靠軟件簽署交易,移動錢包因此是熱錢包。
StarkNet原生賬戶抽象,支持多種橢圓曲線,簽名驗證高度可編程,因此基于StarkNet/Cairo的手機錢包完全可以變成硬錢包。
https://twitter.com/barretodavid/status/1563584823884935168?
Cairo已經有一個(
)的實現。
合約錢包全鏈游戲的耦合,開辟了錢包DeFi之外的新場景。Argent、Cartridge.gg正在做。
鏈上?AI
目前有2個機器學習項目,ML平臺Giza和鏈上交易機器人StarkNet中文群還有另外一個。
ModulusLabs:https://www.moduluslabs.xyz/
Giza-MachineLearningintheBlockchain:
https://gizatech.xyz/
StarkNetdecentralization:Kickingoffthediscussion
mirror.xyz:https://community.starknet.io/t/starknet-decentralization-kicking-off-the-discussion/711?
總結下StarkNet與AIML為何如此登對?ZKP允許AIML鏈下計算,將生成證明交由他人驗證。
應用范圍包括:游戲、預言機、交易、反女巫、KYC、數據隱私;AI模型算力挖礦。
致謝
本文由?HackerDojo?資助和創作。HackerDōjo?是由?Hacker?共建的加密、Web3前沿技術開源知識社區。
感謝創作者?Maxlion?及?HackerDojo。
原文鏈接:https://community.dorahacks.io/t/starkware/272?
Tags:STAARKSTARSTARKStand Sharearkm幣是什么板塊FireStarterStarkMeta
尊敬的用戶: ETH上海升級即將到來,火必將于2023年3月7日開啟“ETH上海升級”主題活動,驚喜不停,邀您參與!活動一:交易LSD板塊幣種交易賽,贏取15.
1900/1/1 0:00:00尊敬的XT.COM用戶:因AR錢包升級維護,XT.COM現已暫停AR鏈上代幣充提業務。給您帶來的不便,請您諒解!感謝您對XT.COM的支持與信任.
1900/1/1 0:00:00金色財經報道,去中心化質押協議RocketPool宣布將于4月初進行Atlas升級,使該協議與以太坊的上海升級兼容,并且擴展協議以滿足更高的需求和保持去中心化.
1900/1/1 0:00:003月3日消息,韓國金融當局決定不將加密交易所需的加密資產實名賬戶發放機構擴大到銀行以外。金融行業人士提出了允許證券公司發放加密資產實名賬戶的方案,但金融當局與此劃清了界限.
1900/1/1 0:00:00ForesightNews消息,AlphaHomora給以太坊上借貸平臺IronBank發布第三封公開信,此前IronBank因壞賬糾紛于3月1日凍結了AlphaHomora的貸款賬戶.
1900/1/1 0:00:002023年全年會是最好的布局之年,24年BTC減半、加息放緩,大概率已大漲,作一個全局性思考很有必要所謂百倍幣.
1900/1/1 0:00:00