加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads
首頁 > MATIC > Info

ZK rollups 中的“證明溢出”問題探究_GAS:STAR

Author:

Time:1900/1/1 0:00:00

在 Scroll,我們正在開放構建zkEVM,并希望將我們正在構建的協議的所有方面保持公開透明。

這篇文章中描述了我們稱之為“證明溢出”的問題 — 一個由于 ZK rollups 中執行和證明生成分離而引起的問題。

背景

Scroll 的 rollup 流程大致可以理解為:

1. 用戶向 Scroll 的內存池提交交易。

2. 排序器(sequencer)節點將一些交易打包到一個區塊中。

3. 批處理程序(bather)將一些區塊打包成一個批次(batch)。

批次的數據(包括其所有交易數據)被發布或“提交”到以太坊 L1

4. 證明者獲取批次并生成證明。

該證明可以證明該批次中的所有交易均已正確執行。

該證明提交給以太坊 L1 進行驗證。相應的批次被認為是“最終確認的”。

Layer2 ZK Rollup的NFT市場Mint Square上線.stark域名:9月17日消息,基于以太坊Layer2 ZK Rollup的NFT市場Mint Square上線由Starknet.id提供支持的.stark域名。.stark個人資料URL現已支持Mint Square測試網,主網即將推出,目前可按長度過濾或按類別進行搜索瀏覽。[2022/9/17 7:02:48]

我們在 Alpha 測試網中遇到的一個問題是無法證明某些批次。愿意是它們“太大”而無法放入我們的 zkEVM 電路中。

人們可以認為 zkEVM 電路由許多子電路組成,比如 n 個子電路,它們通過查找表互連。每個子電路用于約束特定的操作——例如,Keccak 電路計算 Keccak 哈希,求冪電路計算求冪。我們的 zkEVM 電路設計中當前限制是每個子電路必須具有相同的行數,比如 m 行。

根據每個子電路中消耗的行數,每個所傳入的交易都具有唯一的配置文件。例如,可能有一個交易需要許多 Keccak 操作,因此在 Keccak 電路中占用許多行,而在求冪電路中不占用任何行。相反,可能有一個交易在 Keccak 電路中占用很少的行,而在求冪電路中占用很多行。

Syscoin宣布集成跨鏈ZK Rollups:金色財經報道,Syscoin是宣布整合跨鏈ZK rollups,與跨鏈網絡ZKCross 合作。ZKCross的跨鏈ZK rollups結合了Layer 2和多鏈rollup方法來創建一個網絡,該網絡允許用戶有效交易,同時保持對資產的控制,體驗與中心化交易所一樣。通過創建連接多個區塊鏈的橋梁,Syscoin和ZKCross正在開發一個安全性、效率和可擴展性的DeFi社區。[2022/7/22 2:31:28]

由于批次由區塊組成,而區塊由交易組成,因此批次的行消耗配置文件由組成它的交易所決定。如果一個批次的行消耗超過最大行數 m,則該批次將無法證明(即證明“溢出”)。當一個批次無法證明時,它無法在 L1 上最終確認,任何后續的批次也無法證明(取決于無法證明批次的結果狀態)。

值得注意的是,即使只包含單個交易的批次也可能會溢出電路。

要解決“證明溢出”問題需要解決以下問題:如何防止創建超出電路容量的批次?

基于ZK Rollup的DEX ZigZag上線zkSync與Polygon跨鏈橋測試版:3月14日消息,基于 ZK Rollup 的訂單簿式 DEX ZigZag 宣布上線 zkSync 與 Polygon 跨鏈橋的測試版。該測試版現已支持 zkSync 上 ETH 和 Polygon 上 WETH 的小額跨鏈轉賬測試,待代碼穩定后會增加測試額度并進行 UI 開發。[2022/3/14 13:55:10]

長期解決方案

問題源于我們電路架構的局限性:所有子電路都必須有一些預先確定的、固定數量的行。我們正在研究重新設計我們的架構,以便可以獨立地動態調整子電路的大小——每個子電路的大小都可以根據批次證明的要求放大或縮小。例如,如果一個批次在 Keccak 電路中需要 2^20 行,但在求冪電路中只需要 2^14 行,則子電路可以獨立縮放。

這種類型的動態設計帶來了挑戰,我們正在努力解決這些問題。然而,與此同時,我們需要解決固定尺寸電路的問題。

ZK Rollup擴容方案StarkNet Alpha上線以太坊主網:11月29日消息,StarkWare推出的以太坊Rollup擴容方案StarkNet Alpha今日上線以太坊主網。StarkNet是一個無需許可的以太坊L2網絡去中心化Rollup擴容方案。StarkNet允許任何dApp實現其計算規模,而不會影響可組合性和安全性,它依賴于安全和具可擴展性的加密證明系統——STARK。StarkNet建立在Cairo編程語言之上,Cairo和STARK均由 StarkWare內部開發,并為生產級應用程序提供支持。除其他功能外,StarkNet Alpha支持通用計算智能合約,支持與其他StarkNet合約以及通過 L1<>L2 消息與L1合約的可組合性。StarkNet Alpha在Rollup模式下運行,所有狀態差異數據都在鏈上發送。

StarkNet Alpha上線以太坊主網意味著開發者可以在StarkNet上部署他們的合約,用戶可以向這些合約發送交易,每個StarkNet區塊都在鏈上被證明和驗證,應用程序獲得無限擴展并保持L1安全性。這是一個Alpha版本,該網絡仍在開發中。團隊不斷添加功能、修復錯誤并對其進行改進。在接下來的幾周和幾個月內,團隊將在以下功能上升級Alpha:合約升級機制;收費機制;添加系統調用(get_block_number、get_block_timestamp 等)。[2021/11/30 12:39:57]

當前解決方案

StarkWare推出ZK Rollup擴容方案StarkNet Alpha2版本:金色財經報道,據官方消息,StarkWare推出ZK Rollup擴容方案StarkNet Alpha2版本。StarkWare發布了一個測試框架,開發人員現在可以在本地有效地測試他們的合約。新功能包括可組合性,支持智能合約之間的交互;本地測試框架,將允許開發人員通過在本地測試其StarkNet合約部署和交互來加快dApp開發,此版本僅包L2交互,下一版本將擴展功能和易用性;性能提升,改進了StarkNet的設計,支持更高的吞吐量和更短的驗證生成時間,允許創建更大的區塊,從而降低每個交易的成本。添加了一個內置函數來支持StarkNet合約中更高效的按位運算(文檔);以及StarkNet正在從Ropsten遷移到Goerli。[2021/9/1 22:53:12]

1. 根據最壞情況下的操作碼設置區塊Gas 限制

這里的想法是根據最壞情況下(就電路行消耗而言最昂貴)的操作碼來設置區塊的 Gas 限制。換句話說,設置區塊 Gas 限制,即使它被最昂貴的操作碼填滿,該區塊仍然可以適配我們的電路。這保證了任何區塊都無法填滿電路。

優點:簡單

缺點

非常低效

分析表明,最昂貴的操作碼 (SHA) 的證明行與 EVM Gas之間的比率約為 11 倍。

每個額外的 Keccak 字節占用約 2.2 行,同時消耗約 6/32 EVM gas。對于 m = 2^20(大約 100 萬行),我們可以容納大約 2^20 / 2.2 個 Keccak 字節。這對應于 (2^20 / 2.2) * (6/32) ~= 89,000 gas 的最大區塊限制。太小!!

2. Gas 重新定價 

我們可以修改操作碼到Gas的映射表來反映證明成本,而不是執行成本。這將涉及從每個操作碼與它在所有子電路中占用的最大行數的靜態映射,然后修改我們的 Geth 分支(“L2Geth”)以使用這個新的 Gas 定價。

證明溢出問題在執行層被處理為“Out of Gas”錯誤

可能會破壞依賴于正常 EVM Gas 定價的合約。

很難以編程方式將操作碼映射到行消耗。

這個映射應該是可編程的,因為zkEVM的電路庫會隨著時間的推移而改變,也因為手工分析容易出錯,這里稍有錯誤就會導致溢出漏洞

需要保持 L2Geth Gas定價和 zkEVM 電路庫之間的同步 - 不同步將導致漏洞

3. 引入額外的“Proof Gas”計量

除了正常的 EVM Gas之外,我們還可以有一個單獨的概念 “Proof  Gas ”。Proof  Gas 將用于量化交易在我們的電路中消耗的空間。請注意,這種“Proof  Gas”應該是多維的——因為不同的操作碼在不同的電路中占據不同的行。

一旦引入“Proof  Gas”計量的概念,就會出現在哪個級別約束它的問題。

3a.在執行層約束 Proof Gas

此解決方案與解決方案2類似,不同之處在于它保留了 EVM Gas 和Proof Gas 的概念。這將再次涉及將每個操作碼靜態映射到它在每個電路中占用的行數,然后修改 L2Geth 以添加這種 Proof Gas的概念。如果特定交易超過了 Proof Gas 限制,則交易將撤銷并出現一些自定義的“ out of proof gas ”的錯誤。這將確保沒有區塊可以超過行約束,因為執行層將在此之前停止交易。

證明溢出問題在執行層被處理為“out of proof gas”錯誤

難以生成從操作碼到行消耗的靜態映射

需要保持 L2Geth 和 zkEVM 電路庫之間的同步

需要對 L2Geth 和 zkEVM 電路庫中的邏輯進行重大更改,以支持額外的 Proof Gas 概念

3b.在執行層之外約束 Proof Gas

我們可以從 zkEVM 電路庫中公開 API 來報告給定執行蹤跡所需的行數,而不是生成操作碼到電路行的靜態映射。L2Geth 可以生成區塊的執行蹤跡,然后查詢電路行消耗 —— 如果超過最大行數,則不會創建區塊。

無需以編程方式將操作碼映射到行消耗所需的復雜性。

缺點:

當必須構造一個區塊時,L2Geth 會增加一些計算開銷,因為它需要進行額外的計算來估計電路行消耗。

使強制包含(Forced Inclusion)變得復雜。

強制包含是一種機制,用戶可以直接通過 L1 提交 L2 交易。這些交易被“強制”包含在 L2 鏈中,作為一種抗審查機制。

我們無法將交易映射到它在 L1 上消耗的電路行數,因此無法判斷它是否可證明

結語:

似乎解決方案 3b 是最簡單且風險最小,也是可行的解決方案。

伴隨這種方案的主要挑戰是如何處理強制交易,因為可能存在太大而無法放入電路中的強制交易。這里的一個想法是使用解決方案 1 中的想法來限制強制交易的 Gas 限制,這樣即使在最壞的情況下,強制交易也不會溢出電路。

從長遠來看,我們的目標是開發一個更靈活的證明系統,支持動態大小的子電路,從而完全避免這個問題。

金色薦讀

金色財經 善歐巴

Chainlink預言機

區塊律動BlockBeats

白話區塊鏈

金色早8點

Odaily星球日報

MarsBit

Arcane Labs

深潮TechFlow

Tags:GASARKSTASTARVEGASMark.SpaceAltered State TokenINSTAR價格

MATIC
簡析DWF Labs:出手頻繁 頗具爭議的加密做市商_ABS:LABS

4月,一家公司名為DWF Labs的公司在投資方面頻頻出手,很快就引起了眾人的關注。在My MetaData最新的投資展示列表中,DWF Labs所投的鏈游項目數量就達到了3個.

1900/1/1 0:00:00
笑瘋 外國小哥用ChatGPT完成80%工作 同時打4份工_GPT:bchat幣聊下載

不少白領在工作中都用上了ChatGPT,堪稱如虎添翼。畢竟,很多工作都是重復的、有章可循的。既然有了科技力量的加持,用一用提升一下效率倒也不足為奇.

1900/1/1 0:00:00
帳戶抽象將如何推動 DeFi 的大規模采用_DAP:WEB

“我們還處于早期階段”有點成為了一種 Meme,但不可否認的是這是事實。試著讓 100 個人說出以太坊上的五個應用程序。95% 的人都說不出來,有些人甚至不知道以太坊是什么.

1900/1/1 0:00:00
空投的4個問題_BTT:RUM

在兩周前,我寫了一篇關于Arbitrum如何有效地為每個用戶支付2175美元以獲取一個地址的文章。我沒想到這篇文章會引起如此廣泛的討論.

1900/1/1 0:00:00
奧斯汀獨家對話:從機構的「拉扯」中成長的美國加密監管_NBS:加密貨幣

4 月 25 日,在美國得克薩斯州的首府奧斯汀,這座充滿活力和創造力的城市.

1900/1/1 0:00:00
對話ABCDE Capital聯創BMAN:若Crypto是樹 我們會投樹根和樹葉_CRYPT:crypto幣圈

去年 6 月,BMAN 宣布他與火幣聯合創始人杜均合作,推出了一個 4 億美元的基金,該基金將專注于 Web3 建設者。新基金的名稱是 ABCDE,代表「以區塊鏈為中心的發展生態系統」.

1900/1/1 0:00:00
ads