比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > USDT > Info

Vitalik:Rollup 不完全指南_BAT

Author:

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

Rollup 最近在 Ethereum 社區風靡一時,有望在未來成為 Ethereum 的主要擴容解決方案。但這項技術到底是什么樣的呢?它可以給我們帶來什么變化?我們如何使用這項技術?這篇文章將試圖回答其中的一些關鍵問題。

目前主要有兩種區塊鏈擴容方式。

首先,你可以直接提高區塊鏈交易吞吐量,但這類技術主要挑戰為「當區塊容量越大時,區塊鏈將更難以驗證,而且很可能逐漸變得更中心化」。為了避免這樣的風險,開發者可以提高客戶端軟件的效率(譯者注:比如 Turbo Geth),或者使用 Sharding 技術讓構建和驗證工作分散到許多節點上,目前 Ethereum 準備借助 Eth2 升級引入 Sharding 技術。

其次,你也可以改變使用區塊鏈的方式。用戶不必將所有交易放在區塊鏈上,而是可以通過 Layer2 協議在鏈下執行大部分交易。即鏈上的智能合約只需執行兩個任務:處理存取款和驗證鏈下交易的有效性。由此減輕鏈上負擔,提高交易處理效率。

目前主要有三種 Layer2 擴容方案:State channels、Plasma 和 Rollups,這三種各有優劣。

譯者注:譯文中省略 State channels 和 Plasma 科普內容,主要講述 Rollups 部分。

術語說明

Batch:批處理交易,指將 Layer2 交易批量打包并提交到 Layer1 的 Rollup 合約。

Sequencer:排序者,指在 Layer2 上打包排序交易的角色,類似 Layer1 的礦工。

State root:狀態根,指 Layer2 上所有狀態(賬戶余額、合約代碼等)通過 Merkle Tree 生成的哈希值。

Rollups

參考:Optimistic rollups 和 ZK rollups。

Plasma 和 State Channels 是「完全」的 Layer2 方案,因為它們試圖將數據和計算都轉移至鏈下。然而,由于存在「數據可用性的博弈問題」,意味著這兩種方案不可能安全地滿足所有應用場景。

Plasma 和 State Channels 通過依賴所屬權的 owner(譯者注:因為提交欺詐性證明需要證明資產所屬權,這也是為什么 Plasma 采用 UTXO 方案,所以無法解決像 Uniswap 資產所屬權場景的問題。感謝 Chih Cheng Liang 指點)來解決該問題,但這使它們無法完全通用化。

另一方面,Rollups 是一種「混合」的 Layer2 方案。Rollups 將計算(以及狀態存儲)轉移至鏈下,但同時將每筆交易的部分數據保留在鏈上。

Illuvium: Beyond游戲將于3月8日6時發布,同時開啟NFT集合Illuvitar鑄造:3月6日消息,RPG鏈游Illuvium在推特上表示,首輪Illuvitar及其配件,將于北京時間3月8日06:00(UTC時間2023年3月7日22:00)與新收藏游戲Illuvium: Beyond一起發布。

根據此前消息,Illuvitar是一個可定制的NFT集合,其中包含擁有各種配件、背景和表情的Illuvial插圖。Illuvitars將以兩種類型的打包出售,即Illuvitar D1SK和Mega D1SK。Illuvitar D1SK包括1件獎勵等級Illuvitar、1件隨機Illuvitar、3個配件,Mega D1SK包括1件稀有物、1件隨機Illuvitar、3個配件。用戶可以在銷售窗口期間鑄造無限數量的Illuvitar。一旦銷售結束,這些Illuvitar將永遠不會再鑄造。[2023/3/6 12:44:31]

為了提高效率,他們使用了不少 fancy 的壓縮技巧,盡可能地使用「計算」代替「數據」。其結果是系統的擴容仍然受限于底層區塊鏈的數據帶寬,但效率是可觀的:Ethereum ERC20 代幣轉賬成本約為 45,000 gas,而 Rollup 中的 ERC20 代幣轉賬僅使用 16 字節的鏈上空間,成本低于 300 gas。

事實上,數據上鏈是關鍵(注意:將數據放在 IPFS 上是行不通的,因為 IPFS 不提供任何給定數據是否可用的共識,所以數據必須放到區塊鏈上)。將數據放在鏈上并獲得共識,如果任何人愿意,他們可以在本地處理 rollup 中的所有操作,從而允許他們監測欺詐交易,請求提款,或親自生成 transaction batches。

因為沒有數據可用性問題,所以惡意或離線運營者所造成的損失會更少(比如他們不能造成 1 周的延遲),從而為誰有權發布 batches 打開了更大的設計空間,并簡化 rollups 系統。最重要的是,沒有數據可用性問題也意味著不再需要將資產映射到 owners。

這是 Ethereum 社區對 rollups 比以往的 Layer2 擴容方案更興奮的關鍵原因:Rollups 是完全通用的,我們甚至可以在 rollup 內運行一個 EVM,使得現有的 Ethereum 應用不必編寫過多新的代碼就可以遷移到 rollups 上。

鏈上會有一個智能合約維護著 state root:rollup 狀態的 Merkle root(即 rollup 內部的賬戶余額、合約代碼等信息的 Merkle 化)。

Vitalik:因FTX的中心化性質,其崩潰是不可避免的:11月12日消息,以太坊聯合創始人Vitalik Buterin表示,FTX的巨大崩潰是不可避免的,因為它的中心化性質。在被問及FTX和其他加密貨幣公司今年的崩潰時,V神說:“今年我們看到了大量這樣的事情,因為它們的模式從根本上說是壞的”。

Buterin指出,FTX的營銷類似于“1930年代獨裁者”的“個人主義風格”,這與加密貨幣精神完全相反。(decrypt.co)[2022/11/12 12:54:33]

任何人都可以發布一筆 batch 交易,這是一個高度壓縮的交易集合,包含舊的 state root 和新的 state root。合約會檢查 batch 中的舊 state root 是否匹配當前的 state root,如果匹配,則將 state root 更新到新的 state root。

為了支持存款和提款,我們增加了交易的能力,其輸入或輸出是「外部」的 rollup 狀態。如果一個 batch 來自外部的輸入,那么提交該 batch 的交易也需要將這些資產轉移到 rollup 合約中。如果一個 batch 有對外的輸出,那么在處理該 batch 時,智能合約將會執行「提現」操作。

這一切就這么簡單! 除了一個主要的細節:如何知道 batch 中的 post-state roots 是正確的呢? 如果有人可以用任意 post-state root 提交一個 batch 而沒有任何懲罰,他們就可以直接將 rollup 內的全部資產轉給自己。這個問題有兩種截然不同的解決思路,從而衍生出兩種「口味」的 rollup 方案。

以下是這兩種「口味」的 rollups 方案描述:

Optimistic rollups,采用欺詐性證明:rollup 合約會跟蹤歷史的 state roots 和每一個 batch 的哈希值。如果有人發現某個 batch 的 post-state root 不正確,那么他們可以向合約提交證明,證明該 batch 計算錯誤。合約驗證該證明有效后,會對該 batch 和之后的所有 batch 進行回滾。

ZK rollups,采用有效性證明:每一個 batch 都包含一個稱為 ZK-SNARK 的密碼學證明(例如采用 PLONK 協議),它可以證明 post-state root 是執行該 batch 的正確結果。無論計算量有多大,合約都可以迅速地在鏈上驗證證明。

Verofax完成Pre-Seed輪融資,Privity參投:Verofax Limited完成Pre-Seed輪融資,Privity FZ LLE參收購一部分股權。據悉,Verofax Limited是一家應用區塊鏈構建創新溯源服務的初創公司。Privity FZ LLE是阿聯酋專注于風險投資的獨立咨詢公司。(Scoop)[2020/7/6]

但兩種「口味」的 rollup 之間有著復雜的權衡:

方案權衡

總的來說,我的觀點是:

短期內,Optimistic rollups 很可能在通用的 EVM 計算中勝出,而 ZK rollups 則可能在簡單的支付、交易和其他特定應用場景中勝出,但最終從中長期來看,隨著 ZK-SNARK 技術的改進,ZK rollups 將在所有場景中勝出。

Optimistic rollup 的安全性主要取決于:如果有人將一個無效 batch 發布到 rollup 合約中,那么保持跟蹤鏈上信息并發現欺詐的任何人都可以發布欺詐性證明,向合約證明該 batch 無效并回滾。

如圖所示,聲稱某 batch 無效的欺詐性證明將會包含這些綠色數據:該 batch 本身(對照存儲在鏈上的哈希值核對)和 Merkle tree 的部分內容,從而證明該 batch 讀取或修改特定賬戶。

而該樹中的黃色節點可以從綠色的節點重建,所以不必提供。這些數據足以執行該 batch 并計算 post-state root(注:類似 stateless clients 驗證單個區塊的方式)。如果計算出的 post-state root 和該 batch 中提供的 post-state root 不一樣,那么說明該 batch 具有欺詐性。

如果一個 batch 存在錯誤,但之前所有的 batches 都是正確的,那么就可以創建一個欺詐性證明以表示該 batch 是錯誤的。

請注意對舊的 batches 聲稱無效的處理:如果存在多筆無效 batches 提交到 rollup 中,那么最好盡量證明最早無效的 batch。當然,如果一個 batch 是正確的,那么永遠不可能創建一個欺詐性證明以表示其無效。

一筆簡單的 Ethereum 交易(比如發送 ETH)通常消耗約 110 字節。然而,在 Rollup 上發送 ETH 僅僅消耗約 12 字節。

聲音 | IOTA愛好者George:Vitalik對IOTA協議的理解并不正確:針對Vitalik評價IOTA Coordicide協議是Avalanche協議的升級克隆,IOTA愛好者George認為Vitalik有些輕浮和草率,并沒有認真研究IOTA的新研發成果。他表示:Avalanche協議和IOTA一樣是無礦工和第三者驗證者的新型加密協議,也稱為Leaderless協議。BCH是有礦工的,不是leaderless協議,所以IOTA和BCH絲毫沒有關系。IOTA Coordicide協議是第一個Leaderless的協議,所以說IOTA克隆Avalanche協議不現實。[2019/5/31]

字節消耗對比

為了達到這樣的壓縮效果,一方面是采用了更簡單高級編碼,而目前 Ethereum 的 RLP 在每個值的長度上都浪費了 1 字節。另一方面,還有一些巧妙的壓縮技巧:

Nonce:該參數的目的是為了防止「重放」。如果賬戶的當前 nonce 是 5,那么該賬戶的下一筆交易必須使用 nonce 5,但一旦交易被處理,那么該賬戶中的 nonce 就會被遞增到 6,這樣采用 nonce 5 的交易就不會被執行。在 rollup 中,我們可以完全省略 nonce,因為我們只是從 pre-state 中恢復 nonce。同時由于簽名會采用最新的 nonce 進行檢查,如果有人試圖使用舊的 nonce 重放交易,那么簽名將無法通過驗證。

Gasprice:我們可以允許用戶使用固定范圍的 gasprices 進行支付,例如 2 的 16 次冪(譯者注:主要為了節省字節)。或者,我們也可以在每筆 batch 中收取固定費用,甚至可以將 gas 支付完全移到 rollup 協議之外,讓交易者通過特定渠道向 batch 創建者支付費用。

Gas:我們同樣也可以將 gas 設置為 2 的多次冪。另外,我們也可以在 batch 層面設置 gas 限制。

To:我們可以使用「索引」來代替 20 字節的地址(例如:一個地址是「樹」中的第 4,527 個地址,我們就可以用索引 4,527 來表示它,同時我們也會在狀態中添加一個子樹來存儲索引到地址的映射)。

Value:我們可以用科學計數法存儲 value。在大多數情況下,轉賬僅需 1 ~ 3 有效位。

Signature:我們可以使用 BLS 聚合簽名,它允許許多簽名聚合成一個約 32 - 96 字節的簽名(取決于協議)。然后,這個簽名可以一次性對整個消息集和發送者進行 batch 檢查。表中的 ~ 0.5 表示一個區塊中可驗證的聚合簽名的數量是有限制的,因為它需要在一次欺詐證明中驗證簽名。

以太坊創始人Vitalik Buterin聲明將不再發表關于比特幣的言論:14日中午,以太坊創始人Vitalik Buterin發布推特稱,將徹底停止評論比特幣問題并把重點轉向以太坊技術。[2017/11/14]

ZK rollups 特有的一個重要壓縮技巧:如果交易的一部分僅用于驗證,并與計算狀態更新無關,那么這部分可以省略。這在 Optimistic rollup 中是做不到的,因為該數據仍然需要包含在鏈上,以防將來欺詐性證明檢查所需,而在 ZK rollup 中,證明數據正確性的 SNARK 已經提供了任何驗證所需的數據。

一個重要的例子是隱私保護 rollups:在 Optimistic rollup 中,每筆交易中 ~ 500 字節用于隱私的 ZK-SNARK 需要上鏈,而在 ZK rollup 中,覆蓋整個 batch 的 ZK-SNARK 已經足以表明「內部」的所有 ZK-SNARKs 是有效的。

這些壓縮技巧是 rollup 擴容的關鍵,如果沒有這些技巧,rollup 或許只能在基礎鏈的擴容上有大約 10 倍的提升(在一些特定的計算量大的應用中,簡單的 rollup 也已經很強大),但有了這些壓縮技巧,幾乎所有應用的擴容系數都可以超過 100 倍。

關于哪些人可以在 Optimistic rollup 或 ZK rollup 中提交 batch 的問題存在許多流派。一般來說,大家都認為提交 batch 的用戶必須先交納一大筆押金,如果該用戶提交欺詐性的 batch(例如采用一個無效的 state root),那么這筆押金的一部分將被燒掉,另一部分作為獎勵給到提交欺詐性證明的用戶。但除此之外,還存在許多可能性:

Total anarchy:任何人都可以在任何時候提交 batch。這是最簡單的方法,但它有一些嚴重的缺點,比如存在這樣的問題:多個參與者同時生成并試圖提交 batch,而其中僅有一個 batch 可以成功被收錄。這將導致大量的浪費,比如沒有意義的生成 batch 證明或者提交 batch 到鏈上。

中心化的 Sequencer:通過 Sequencer 這樣的角色提交 batch(除了提現操作:首先由用戶自己提交提現請求,如果 Sequencer 在下一個 batch 中沒有處理該提現交易,那么用戶可以親自提交一個 batch 處理提現)。這是最「高效」的,但它依賴于一個中心化的角色。

Sequencer 拍賣:通過拍賣(比如每天)來決定誰有權利成為第二天的 Sequencer。這種方案的優點是可以籌集資金,而這些資金可以通過 rollup 的 DAO 來分配(參考:MEV 拍賣)。

從 PoS 集合中隨機選擇:任何人都可以將 ETH(或者 rollup 協議的代幣)存入 rollup 合約中,每一個 batch 的 sequencer 都會從其中一個存款人中隨機選擇,被選中的概率與存款金額成正比。這種方案的主要缺點是大量資產被鎖定,導致資金效率低。

DPoS 投票:Sequencer 通過拍賣選中,但如果他們表現不佳,那么代幣持有者可以投票將其踢出,并舉行新的拍賣來替代他們。

目前一些正在開發的 rollup 方案采用的是 “split batch” 模式,即提交 Layer2 batch 的動作和提交一個 state root 的動作分開執行,這會有一些關鍵優勢:

你可以允許許多 sequencers 并行發布 batch,以提高抗審查能力,而不用擔心一些 batch 會因為其他 batch 已經被打包而無效。

如果一個 state root 存在欺詐,你不需要回滾所有 batch,僅恢復該 state root 即可,并等待有人為該 batch 提供新的 state root。這樣可以更好地保障交易發送者的交易不會被回滾。

總的來說,這是一個相當復雜的技術組合,它們試圖在涉及效率、簡單性、抗審查和其他目標的復雜權衡中獲得平衡。但現在談哪種組合最有效還為時過早,而時間會證明一切。

目前 Ethereum 的 gas limit 是 1,250 萬,交易中每個字節的數據需要消耗 16 gas。那么如果一個區塊僅包含一個 batch(我們假設使用 ZK rollup,將會消耗 50 萬 gas 用于驗證證明),那么該 batch 會有(1,200 萬 / 16)= 75 萬字節。如上圖所示,每一位用戶轉賬 ETH 僅消耗 12 字節,那么也就是說,該 batch 最多可以包含 62,500 筆交易。

在平均區塊時間為 13 秒的情況下,這相當于達到約 4,807 TPS(對比 Ethereum 目前 ETH 轉賬的 1,250萬 / 21,000 / 13 約為 45 TPS)。

部分用例擴容提升規模

那么擴容上限可以這么計算:

(L1 gas cost) / (bytes in rollup * 16) * 12million / 12.5million

現在值得注意的是這些數字還是過于樂觀,原因有幾個:

首先,最重要的是一個區塊幾乎永遠不會僅包含一個 batch,因為將可能會存在多個 rollup 方案同時運作。第二,存款和提款將持續存在。第三,短期內使用量會很低,所以固定成本成為主要消耗。但即使將這些因素考慮在內,預計擴容規模也會超過 100 倍。

現在,如果我們想要超過 ~ 1,000 - 4,000 TPS,該怎么辦呢?這就是 ETH 數據分片的意義所在,sharding 建議每 12 秒開辟一個 16MB 的空間,這個空間可以被任何數據填滿,系統保證對這些數據的可用性達成共識,而這些數據空間可以被 rollup 使用。

這個約 1,398 kB/s 的數據量比當前 Ethereum 60 kB/s 提高了 23 倍,從長遠來看,數據容量有望進一步增長。因此,使用 Eth2 分片數據的 rollup 可以處理高達約 100k TPS,未來甚至會更多。

雖然現在 Rollup 的基本概念已經被大家所熟知,我們也很確認它們從根本上是可行的、安全的,以及已有多個 rollup 方案被部署到主網上,但 rollup 的設計仍然存在許多地方沒有被很好地探索,將 Ethereum 生態系統的大部分內容完全遷移到 rollup 上以利用其擴容能力也存在不少挑戰:

User and ecosystem onboarding - 使用 rollups 的應用不多,用戶對 rollups 也不熟悉,目前很少有錢包開始整合 rollups,而商家和慈善機構還不接受它們用于支付。

Cross-rollup transactions - 有效地將資產和數據 (例如 oracle 輸出) 從一個 rollup 轉移到另一個 rollup 中,而不會產生經過 Layer1 的費用。

Auditing incentives - 如何最大限度地提高至少一個誠實節點會真正全面驗證一個 Optimistic rollup 的概率,以便出錯時他們會發布欺詐性證明。對于小規模的 rollup(幾百個 TPS 以下)來說,這不是一個重要的問題,可以簡單地借助利他主義,但對于更大規模的 rollup 來說,需要更嚴謹地推理這個問題。

Exploring the design space in between plasma and rollups - 是否存在一些方法可以將狀態更新的相關數據放在鏈上,而不是所有的數據。

Maximizing security of pre-confirmations - 許多 rollup 為了更快的用戶體驗,提供了一個「預確認」的概念,即 sequencer 立即給予一個承諾,交易將被包含在下一個 batch 中,如果他們食言,sequencer 的押金將被銷毀。但這種方案的經濟安全性是有限的,因為可能同時向許多用戶做出承諾,這種機制能否獲得改進?

Improving speed of response to absent sequencers - 如果一個 rollup 的 sequencer 突然下線,那么快速和經濟地從這種情況中恢復過來將是非常有價值的:要么快速且經濟地大規模退出到另一個 rollup,要么更換 sequencer。

Efficient ZK-VM - 生成通用 EVM 代碼的 ZK-SNARK 證明(或者將現有的智能合約編譯適配到其他 VM)可以被正確執行,并且有一個明確結果。

Rollups 是一種強大的 Layer2 擴容范式,預計將成為 Ethereum 短期和中期(甚至長期)擴容的基石。我們已經看到了 Ethereum 社區對此感到大大的興奮,因為這與之前的 Layer2 擴容方案不同,它們可以支持通用的 EVM 代碼,允許現有的智能合約輕松遷移。

這是通過一個關鍵的妥協來實現的:放棄將數據和計算完全放在鏈下,而是將每筆交易的少量數據留在鏈上。

Rollups 方案有很多種,在設計空間上會有很多選擇:可以采用欺詐性證明的 Optimistic rollup,或者采用有效性證明的 ZK rollup(又名 ZK-SNARKs)。Sequencer(可以將交易 batch 發布到鏈上的用戶)可以是一個中心化的角色,也可以是一個去中心化的角色,或者是介于兩者之間的其他選擇。

總的來說,Rollup 仍然是一項早期階段的技術,一切仍在迅速發展,特別是 Loopring,ZKSync 和 DeversiFi 已經運作了幾個月。

期待在未來的幾年內,Rollup 領域會出現更多令人興奮的工作成果。

原文:An Incomplete Guide to Rollups

作者:Vitalik

譯者:阿樹

Tags:ROLLROLBATatcTROLLER幣ROLS價格IBAT幣FATCAT幣

USDT
金色觀察 | 保護NFT資產安全的5種方式_CRYPTO

保護NFT資產安全的5種方式來了解一下如何確保NFT代幣的安全吧!NFT,像DeFi一樣,都是2020年以太坊生態系統的明星領域,這股熱潮很可能一直延續到2021年.

1900/1/1 0:00:00
超越信標鏈:Eth2的下一步是什么?_ETH2

1492年,克里斯托弗·哥倫布(Christopher Columbus)認為他已經到達了東印度群島。 實際上,他碰巧踏上了一個驚人的新世界。 有時候,經過艱辛的旅程后,最好盤點一下并重新計劃.

1900/1/1 0:00:00
“鏈上海南”海南省區塊鏈財政電子票據應用管理平臺上線_區塊鏈

2021年1月11日,海南省區塊鏈財政電子票據應用管理平臺正式上線,澄邁縣人民醫院成功開出了首張區塊鏈醫療電子票據.

1900/1/1 0:00:00
金色早報 | 比特幣難度調至歷史新高 特斯拉接受BTC_EOS

頭條 ▌數據:比特幣難度調整至20.61T的歷史新高據歐科云鏈OKLink數據顯示,今日23時25分,比特幣網絡在665280高度迎來難度調整,此次難度調整至20.61T.

1900/1/1 0:00:00
擁有1.4億用戶的Maps.me進入加密世界 , 有怎樣的想象空間?_MAPS

你對一款出行應用,會有多大的想象空間?也許在你看來,高德已經是目前最好的出行應用,但如果說,一款 APP 可以做到高德+大眾點評+攜程,甚至支付寶呢?這并不是紙上談兵,當用戶和流量有了保證.

1900/1/1 0:00:00
40000美元之后比特幣高位震蕩加劇 是買?是賣?還是持有?_比特幣

2021年才過了半個月的時間,比特幣就上演了驚喜又驚嚇的大戲。在2020年年末比特幣正如人們所預料的那樣突破了28000美元.

1900/1/1 0:00:00
ads