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

Vitalik:Rollup 不完全指南_ROL:ROLL

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 將計算(以及狀態存儲)轉移至鏈下,但同時將每筆交易的部分數據保留在鏈上。

Vitalik Buterin登上《時代》周刊封面:金色財經消息,據《時代》周刊雜志官方公布,以太坊創始人Vitalik Buterin成為《時代》周刊封面人物。

此外,《時代》周刊發文表示,以太坊已成為僅次于比特幣的第二大加密貨幣,為與Visa相媲美的萬億美元生態系統提供動力。以太坊已將全球數千名無銀行賬戶的人帶入金融系統,允許資本不受阻礙地跨境流動,并為企業家提供基礎設施,以構建各種新產品。[2022/3/18 14:05:24]

為了提高效率,他們使用了不少 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 化)。

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

Gravity DEX開發團隊成立新項目Crescent:3月11日消息,開發流動性模塊Gravity DEX的B-Harvest團隊分拆成立了一個名為Crescent的新項目,正在尋求完全重構和擴展Gravity DEX。Crescent由Ignite Ventures資助,并與Ignite團隊合作支持Crescent項目。

Crescent已經公布了治理代幣CRE分配模型,總量2億枚,其中將向ATOM委托者(delegator)空投1億枚,另外1億枚作為戰略儲備。空投方面,5000萬枚CRE可在Crescent網絡啟動后推出Crescent DEX(DEXdrop)時索取,具體空投數量會根據二次空投系統確定,即按UTC時間2022年1月1日00:00快照時委托數量的平方根來決定,如果參與一些治理提案,能獲得通過固定乘數獲得更多獎勵;剩余5000萬枚將在一定時期內分配給使用Crescent Boost的ATOM委托人。[2022/3/11 13:50:06]

為了支持存款和提款,我們增加了交易的能力,其輸入或輸出是「外部」的 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 的正確結果。無論計算量有多大,合約都可以迅速地在鏈上驗證證明。

動態 | 加密項目Vite與TROY達成戰略合作關系:自定義區塊鏈應用生態系統Vite今日宣布與加密經紀商Troy Trade(TROY)達成戰略合作關系。通過此次合作,Vite成為TROY推出的“全球生態社區計劃(Global Ecological Community Program)”的第十一位成員,而TROY也將加入Vite網絡成為區塊生產者。(Crypto Ninjas)[2020/1/2]

但兩種「口味」的 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 是正確的,那么永遠不可能創建一個欺詐性證明以表示其無效。

動態 | Vitalik提出加速合并以太坊1.0及2.0的替代方案,1.0系統將成為執行環境:以太坊聯合創始人Vitalik Buterin發布了一項在向以太坊2.0過渡中的合并以太坊1.0和2.0的替代方案。Vitalik表示,該方案旨在將整個PoW區塊鏈加速移向以太坊2.0的信標鏈,但該方案需要無狀態客戶端 (stateless clients) ,無需無狀態礦工和Webassembly語言,所以將減少需要完成過渡的配置。該方案的條件包括需要一個能夠實現支持驗證、見證區塊以及生成見證區塊功能的無狀態客戶端軟件。該方案的運營方式為,以太坊1.0系統將成為以太坊2.0的執行環境之一,但在最初可以成為以太坊2.0的分片之一。在該方案中,參與以太坊1.0系統的驗證人可以注冊為以太坊1.0的友好驗證人,將維護除了其信標節點外一個完整的以太坊1.0完整節點。[2019/12/26]

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

字節消耗對比

為了達到這樣的壓縮效果,一方面是采用了更簡單高級編碼,而目前 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 來表示它,同時我們也會在狀態中添加一個子樹來存儲索引到地址的映射)。

動態 | 以太坊創始人Vitalik Buterin被巴塞爾大學授予榮譽博士學位:據coindesk報道,以太坊創始人Vitalik Buterin剛被巴塞爾大學授予榮譽博士學位。[2018/11/30]

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

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

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:ROLROLLBATatcroll幣是什么意思roll幣可以roll坐騎嗎BAT價格coinwatch手表

世界幣
降降溫 休息一段再重回戰場_比特幣:beth幣怎么挖

狂人本著負責,專注,誠懇的態度用心寫每一篇分析文章,特點鮮明,不做作,不浮夸!本內容中的信息及數據來源于公開可獲得資料,力求準確可靠,但對信息的準確性及完整性不做任何保證,本內容不構成投資建議.

1900/1/1 0:00:00
穩定幣項目e-Money (NGM)即將首發上線BitMax交易所_穩定幣:MON

穩定幣板塊最近特別火爆,尤其是在SEC起訴Ripple之后——投資者們對監管趨嚴的擔憂又進一步加深,雖然本質上其實是對中心化機構的不信任.

1900/1/1 0:00:00
讀懂比特幣協議重要里程碑:Schnorr 簽名和 Taproot 軟分叉升級_比特幣:Tap

能增強隱私的多簽和潛在復雜腳本擴展性,是比特幣下一次分叉的核心改進。一次比特幣協議的升級,可能會預示著未來 3 至 5 年的趨勢,雖然大家并不關心比特幣的技術迭代,更關注安全和主流人群接受度,但.

1900/1/1 0:00:00
“無奈”的中本聰與梅克爾樹的“多余”_比特幣:HIBAYC

導讀 數字貨幣本質上是一串特殊的字符串,可以無限復制。如果一名礦工短暫控制了超過50%的算力,向交易所發起轉賬,同時把同一筆數字貨幣轉賬給自己.

1900/1/1 0:00:00
金色前哨 | UNI和SUSHI齊漲 DEX再迎爆發?_UNI:UniCrypt

1月18日16:10,金色財經數據顯示,UNI及SUSHI持續拉升。UNI短線上漲,突破9.2美元關口;SUSHI短線上漲,突破7.7美元關口。 至此,UNI實現新高,SUSHI接近歷史高位.

1900/1/1 0:00:00
1.19早行情:比特幣當前寬幅震蕩 灰度增持多頭恢復_USD:Micro Bitcoin

昨天市場整體上以寬幅震蕩為主,白天最低回調至34700美元附近,隨后開啟反彈,最高時反彈到了37500美元附近,接下來再度迎來超過2000美元的回調,價格來到了35400美元.

1900/1/1 0:00:00
ads