匯總(Rollups)在以太坊社區中風靡一時,并有望在可預見的未來成為以太坊的關鍵可擴展性解決方案。但是,這項技術究竟是什么?您能從中得到什么期望?您將如何使用它?這篇文章將嘗試回答其中一些關鍵問題。
擴展區塊鏈生態系統有兩種方法。首先,您可以使區塊鏈本身具有更高的交易能力。這種技術的主要挑戰在于,具有“更大區塊”的區塊鏈本來就更難以驗證,并且可能變得更加中心化。為了避免此類風險,開發人員可以提高客戶端軟件的效率,或者更可持續地使用分片(sharding)之類的技術,以使構建和驗證鏈的工作分散在多個節點上。目前,被稱為“ eth2”的工作正在為以太坊構建這種升級。
其次,您可以更改使用區塊鏈的方式。用戶不再將所有活動直接放在區塊鏈上,而是通過“二層(Layer2)”協議在鏈下執行大量活動。在鏈上有一個智能合約,該合約只有兩個任務:處理存款和提款,以及核實證明鏈下發生的所有事情都遵循合約規則。進行這些證明的方法有多種,但是它們都具有以下特性:在鏈上驗證證明比在鏈下進行原始計算便宜得多。
Layer 2擴容的三種主要類型是狀態通道,Plasma和匯總(Rollups)。它們是三種不同的范式,具有不同的優勢和劣勢,在這一點上,我們相當有信心所有Layer 2擴容都大致可歸為這三類(盡管存在命名爭議,例如參見“ validium?”)。
另請參閱:https://www.jeffcoleman.ca/state-channels?和statechannels.org?
想象一下,愛麗絲(Alice)正在向鮑勃(Bob)提供網絡連接服務,而鮑勃(Bob)向她每兆字節支付0.001美元。愛麗絲(Alice)和鮑勃(Bob)使用以下Layer2方案,而不是每次付款都進行交易。
首先,鮑勃將1美元(或一些ETH或穩定幣等價物)放入智能合約中。為了向Alice支付第一筆款項,Bob簽署了一張“票”(一條鏈上消息),上面寫著“ $ 0.001”,然后將其發送給Alice。要進行第二次付款,Bob將在另一張票上寫上“ $ 0.002”,并將其發送給Alice。依此類推,可以根據需要進行多次付款。當愛麗絲(Alice)和鮑勃(Bob)完成交易后,愛麗絲(Alice)可以發布價值最高的票證,用她自己的另一個簽名包裹起來。智能合約將驗證Alice和Bob的簽名,向Alice支付鮑勃票上的金額,并將剩余的錢退還給Bob。如果Alice不愿意關閉通道(由于惡意或技術故障),則Bob可以啟動撤回期限(例如7天);如果Alice在這段時間內不提供“票”,那么Bob的錢將會全部返還。
該技術功能強大:可以對其進行調整,以處理雙向支付,智能合約關系(例如,Alice和Bob在通道內簽訂金融合約)和組成(如果Alice和Bob擁有開放通道,Bob和Charile也擁有),Alice可以不信任地與Charile互動)。但是通道可以做什么將會受到限制。不能使用通道將資金從鏈下發送給尚未參與通道的人。通道不能用于表示沒有明確邏輯所有者的對象(例如Uniswap)。而且通道,特別是如果用來做比簡單的定期付款更復雜的事情的通道,需要鎖定大量資金。
V神:ZK-EVM是以太坊Layer 1安全和驗證過程的重要組成部分:金色財經報道,以太坊聯合創始人“V神”Vitalik Buterin在其官方博客上發布文章《以太坊的多客戶端理念將如何與ZK-EVM交互?》(How will Ethereum's multi-client philosophy interact with ZK-EVMs?),其中指出ZK-EVM將在未來發展成為以太坊Layer 1安全和驗證過程的重要組成部分,但關鍵在于如何為零知識證明以太坊區塊的正確性創建一個“多客戶端”生態系統。V神建議采取開放的多個ZK-EVM,因為不同的客戶端有不同的ZK-EVM實現,每個客戶端可以在接受一個區塊為有效之前等待與自己兼容的證明。此外,Vitalik Buterin還對人工智能最近的快速發展大加贊揚,他覺得人工智能的進步可以“加速”證明ZK-EVM實現的發展。“從長遠來看,當然任何事情都有可能發生。也許AI會加強形式驗證,使其可以輕松證明ZK-EVM實現等效并識別導致彼此之間差異的所有錯誤。”[2023/4/2 13:40:23]
另請參閱:最初Plasma白皮書?和Plasma Cash?。
要存入資產,用戶需將資產發送到管理Plasma鏈的智能合約。Plasma鏈為該資產分配一個新的唯一ID(例如537)。每個Plasma鏈都有一個操作者(可以是一個中心化的參與者,或者是一個多重簽名,或者是更復雜的東西,例如PoS或DPoS)。每隔一個間隔(可能是15秒,一個小時,或介于兩者之間的任何時間),操作者都會生成一個“批次(batch)”,其中包括著他們已從鏈下收到的所有Plasma交易。他們生成一個Merkle樹,其中在樹中的每個索引X處都有一個轉移資產ID X的事務(如果存在這樣的事務),否則這個Merkle樹的葉子為零。他們發布這個樹的Merkle根進行鏈接。他們還將每個索引X的Merkle分支發送給該資產的當前所有者。要提取資產,用戶需要發布最近一筆交易的Merkle分支,并將資產發送給他們。合約將開始一個質詢期,在此期間,任何人都可以通過證明(i)發送方在發送資產時不擁有這個資產,或(ii)在以后的某個時間他們還將這些資產發送給了其他人,來嘗試使用其他Merkle分支機構使取款無效。如果在7天內(例如)沒有人證明這個提款是欺詐性的,則用戶可以完成提取資產。
Plasma提供比通道更強大的屬性:您可以將資產發送給從未參與系統的參與者,并且資本要求低得多。但這是有代價的:在“正常操作”期間,通道不需要任何數據就可以在鏈上進行傳輸,但是Plasma要求每條鏈定期發布一個哈希。此外,Plasma傳輸不是即時的:您必須等待時間間隔結束并等待區塊被發布。
V神:EOS是“加類固醇的以太坊”:金色財經消息,以太坊創始人Vitalik Buterin(V神)發推回復Josh Stark提問“我咬牙切齒,什么是EOS?”時疑似“諷刺”的稱,“EOS是“加類固醇的以太坊”,這個名字反映出該項目的核心團隊學習了“以太坊的天真和理想主義”,組建了一支由專業頂尖軟件開發人員的團隊,創建了一個具有更高擴展性和速度的智能合約平臺。”[2022/6/28 1:35:13]
此外,Plasma和通道共有一個共同的弱點:為什么它們安全的博弈論依賴于這樣的思想,即由兩個系統控制的每個對象都具有一定的邏輯“所有者”。如果該所有者不關心其資產,則可能導致涉及該資產的“無效”結果。這對于許多應用都沒關系,但是對于其他許多應用(例如Uniswap)卻是一個破壞交易的因素。即使在無需所有者同意的情況下可以更改對象狀態的系統(例如基于帳戶的系統,在無需他人同意的情況下您可以增加某人的地址余額)也不適用于Plasma。這一切都意味著在任何實際的Plasma或通道部署中都需要大量的“特定于應用的推理”,并且不可能制作僅模擬整個以太坊環境(或“ EVM”)的Plasma或通道系統。為解決此問題,我們走向了Rollups。
另請參閱:關于optimistic rollups?和ZK rollups?。
Plasma和通道是“完整”的二層(Layer 2)方案,因為它們試圖將數據和計算都移到鏈下。但是,圍繞數據可用性的基本博弈論問題意味著,不可能對所有應用都安全地做到這一點。Plasma和通道通過依賴所有者的明確概念來解決此問題,但這會阻止它們走向完全普及。另一方面,匯總是“混合”二層方案。匯總將計算(和狀態存儲)移到鏈下,但每個事務在鏈上保留一些數據。為了提高效率,他們使用了許多花哨的壓縮技巧來盡可能地用計算替換數據。結果是系統的可擴展性仍然受到基礎區塊鏈的數據帶寬的限制,但是但是以一個非常有利比率:以太坊基礎層ERC20代幣傳輸成本約為45000gas,而匯總中的ERC20代幣傳輸占用16個字節的鏈上空間,成本不到300gas。
數據屬于鏈上這一事實很關鍵(注意:將數據“放在IPFS上”是行不通的,因為IPFS不能就是否有任何給定的數據可用達成共識;數據必須放在區塊鏈上)。將數據放在鏈上并對此達成共識,任何人都可以根據需要在本地處理匯總中的所有操作,從而允許他們檢測欺詐,發起提款或親自開始生成交易批次。缺乏數據可用性問題意味著惡意或離線操作者能夠造成傷害更少(例如,它們不會造成1周的延遲),從而為有權發布批次的人員開放了更大的設計空間,并使匯總工作變得非常容易推理一下。最重要的是,缺乏數據可用性問題意味著不再需要將資產映射到所有者,這是導致以太坊社區對匯總感到比以前的二層擴展更令人興奮的關鍵原因:完全通用,甚至可以在匯總中運行EVM,從而使現有的以太坊應用幾乎無需編寫任何新代碼即可遷移到匯總。
V神:討論加密貨幣最好禁止使用“money”這個詞:以太坊創始人V神今日發推稱,當談到加密貨幣時,通常最好在討論中禁止使用“金錢(money)”這個詞,并直接談論它的屬性。“比特幣是錢嗎?”這不是一個經濟問題,這是一個信號問題:“比特幣的主人們能把他們的旗幟插在這座已經有美元、歐元和人民幣的山上嗎?”[2020/12/1 22:40:19]
鏈上有一個智能合約,它維護狀態根:匯總狀態的Merkle根(意思是,“余額”內的帳戶余額,合約代碼等)。
任何人都可以發布批次(batch),這是一種以高度壓縮形式的交易集合,包含了先前的狀態根和新的狀態根(處理交易后的Merkle根)。合約檢查批處理中的先前狀態根是否與其當前狀態根相匹配;如果是這樣,它將狀態根切換到新的狀態根。
為了支持存款和提款,我們增加了使輸入或輸出處于匯總狀態“之外”的交易的功能。如果批次具有來自外部的輸入,則提交該批次的事務也需要將這些資產轉移到匯總合約中。如果某個批次有外部輸出,則在處理該批次時,智能合約會啟動這些提款。
就是這樣!除了一個主要細節:如何知道批次中的后狀態根(post-state root)是正確的?如果某人可以提交具有任何后狀態根的批次而沒有任何后果,那么他們可以將匯總中的所有幣轉移給自己。這個問題很關鍵,因為有兩個非常不同的解決方案系列,而這兩個解決方案系列促成了兩種風格的匯總(Rollups)。
Optimistic rollups vs ?ZK rollups
匯總的兩種類型是:
Optimistic rollups,使用欺詐證明:匯總合約會跟蹤其整個狀態根歷史以及每個批次的哈希。 如果有人發現某個批次的后狀態根不正確,則可以向鏈上發布一個證明,以證明該批次的計算不正確。 合約將驗證該證明,并還原該批次(batch)及其之后的所有批次。
ZK rollups,使用有效性證明:每個批次都包含一個稱為ZK-SNARK的加密證明(例如,使用PLONK?協議),這證明后狀態根是執行批次的正確結果。 無論計算量有多大,都可以在鏈上非常迅速地驗證證明。
兩種匯總類型之間存在復雜的權衡:
V神:以太坊或會成為央行數字貨幣CBDC的無許可平臺:以太坊聯合創始人V神(Vitalik Buterin)在接受The Defiant采訪時表示,以太坊可能成為眾多央行數字貨幣CBDC的無許可平臺。V神同時表示,在一個失去對本國貨幣信任、以太坊可彌補漏洞的世界中,以太坊具有成為全球儲備貨幣的可能性。針對DeFi應用,V神表示將代幣作為治理工具是一個“錯誤的想法”,同時在以太坊2.0分片中相互通信時,以太坊DApp不可避免地會失去一些可組合性。此外,以太坊2.0階段0會“在幾個月內”推出。[2020/5/9]
總的來說,我個人認為,在短期內,對于通用EVM計算而言,Optimistic Rollup可能會勝出,而對于簡單付款,交易和其他特定于應用的用例,ZK Rollup可能會勝出。 隨著ZK-SNARK技術的改進,在中長期而言,ZK Rollup將在所有用例中勝出。
剖析何為欺詐證明
Optimistic Rollup的安全性取決于以下想法:如果有人將無效的批次發布到匯總中,則任何檢測到欺詐的人都可以發布欺詐證明,以向合約證明該批次無效并應該還原。
聲稱某批次無效的欺詐證明將包含上圖中綠色部分數據:該批次本身(可以對照存儲在鏈上的哈希值進行檢查)以及Merkle樹的各個部分,它們僅需要證明已讀取和//或按批次修改的特定的帳戶即可。可以從綠色的節點中重建黃色的樹中節點,因此無需提供。此數據足以執行批處理并計算后狀態(post-state)根(請注意,這與無狀態客戶端驗證單個區塊的方式完全相同)。如果批次中計算出的后狀態根與提供的后狀態根不同,則說明該批次是欺詐性的。
一個簡單的以太坊交易(發送ETH)需要約110個字節。 但是,匯總上的ETH傳輸僅占用?12個字節:
其中一部分只是簡單的高級編碼:以太坊的RLP在每個值的長度上每個值浪費1個字節。 但是,還有一些非常聰明的壓縮技巧正在進行:
Nonce:該參數的目的是防止重放。 如果帳戶的當前隨機數為5,則該帳戶的下一個交易記錄必須帶有5隨機數,但是一旦處理了該交易,該帳戶中的隨機數將增加為6,因此無法再次處理該交易。 在匯總中,我們可以完全省略隨機數,因為我們只是從預狀態中恢復了隨機數。 如果有人嘗試使用較早的隨機數重播事務,則簽名將無法驗證,因為將根據包含新的較高隨機數的數據檢查簽名。
人物丨V神:內置分散式治理機制的區塊鏈項目對許多應用程序有意義:據V神最新消息,他認為內置分散式治理機制的區塊鏈項目對許多應用程序有意義。但要花好幾年時間來弄清楚如何才能做得更好。[2018/6/25]
Gasprice:我們可以允許用戶以固定價格范圍的gas價格進行支付,例如選擇2的16次連續冪。 或者,我們可以將每個批次的費用定為固定水平,或者甚至將gas付款完全移到匯總協議之外,并讓交易者向批次創建者支付費用以通過通道將其包括在內。
gas:我們可以類似地將總gas選擇為2的連續次冪。 另外,我們也可以只在批次級別設置gas限制。
To:我們可以用一個index替換這個20字節地址(例如,如果地址是添加到樹中的第4527個地址,我們只需使用index 4527對其進行引用即可。我們會在狀態中添加一個子樹來存儲index到地址的映射)。
Value:我們可以用科學記數法存儲value。 在大多數情況下,轉帳只需要1-3個有效數字。
Signature:我們可以使用BLS聚合簽名,該簽名允許將許多簽名聚合為單個?32-96字節(取決于協議)的簽名。 然后可以一次檢查整個簽名和發件人的簽名集。 該表中的?0.5表示一個事實,即一個匯總中可以包含多少個簽名是有限制的,這僅僅是因為有必要在單個欺詐證明中驗證簽名。
ZK匯總特有的一個重要壓縮技巧是,如果事務的一部分僅用于驗證,而與計算狀態更新無關,則可以將該部分留在鏈下。Optimistic Rollup中卻不能這么做,因為如果以后需要在欺詐證明中檢查數據,則仍需要將數據包含在鏈上,而在ZK Rollup中,SNARK證明批次的正確性已經證明了任何數據提供了驗證所需的信息。一個重要的例子是隱私保護匯總:在Optimistic Rollup中,每筆交易中用于隱私的ZK-SNARK(大小?500字節)需要上鏈,而在ZK Rollup中,覆蓋整個批次的ZK-SNARK已經毫無疑問地證明了這個“內部” ZK-SNARK是有效的。
這些壓縮技巧是匯總的可擴展性的關鍵。沒有它們,匯總可能只會使基礎鏈的擴展能力提高約10倍(盡管有一些特定的計算繁重的應用,即使簡單的匯總也很強大),而采用壓縮技巧時,對于幾乎所有應用,擴展系數幾乎可以超過100倍。
有很多學派可以在Optimistic Rollup或ZK Rollup中提交批次。通常,一般認為,要能夠提交批次,用戶必須存入一筆大筆存款。如果該用戶曾經提交過欺詐性批次(例如,具有無效的狀態根),則該存款將被部分銷毀,并作為對欺詐證明者的獎勵。除此之外,還有許多可能性:
完全無政府狀態:任何人都可以隨時提交批次。這是最簡單的方法,但是有一些重要的缺點。特別地,存在一個風險,即多個參與者將生成并嘗試同時提交批次,并且這些批次中只有一個可以被成功地包括在內。這導致在生成證明中浪費大佬工作,或在向鏈上發布批次時浪費gas費用。
中心化Sequencer:只有一個角色,即sequencer,可以提交批次(提款除外:通常的技術是用戶可以先提交提款請求,然后如果sequencer在下一次個批次中不處理這個提款請求,那么用戶可以自己提交一個單獨操作批次)。這是最“有效”的方法,但它依賴于中心角色的活躍性。
Sequencer拍賣:舉行拍賣(例如每天),以確定誰有權在第二天成為Sequencer。該技術的優點在于它籌集了可以由例如Rollup控制的DAO分配的資金(請參閱:MEV拍賣)。
從PoS集中隨機選擇:任何人都可以將ETH(或匯總的自身協議代幣)存入到匯總合約中,并且從一批存放者中隨機選擇每一批次的Sequencer,被選擇的概率與存入代幣數量成正比。該技術的主要缺點是導致大量不必要的資本鎖定。
DPoS投票:在拍賣中選擇了一個Sequencer,但是如果它們的表現不佳,代幣持有者可以投票將其踢出并進行新的拍賣來替換它們。
當前正在開發的一些匯總使用“拆分批次”范例,其中提交一批二層事務的動作和提交狀態根的動作是分別完成的。這具有一些關鍵優勢:
您可以允許許多Sequencer同時發布批次,以提高抗審查能力,而不必擔心某些批次將是無效的,因為其他批處理已首先被包含在內。
如果狀態根是欺詐性的,則無需還原整個批次。您可以只還原狀態根,然后等待某人為同一批次提供新的狀態根。這為交易發送者提供了更好的保證,即他們的交易將不會被還原。
因此,總而言之,有一個相當復雜的技術生態正在嘗試在涉及效率,簡單性,抗審查性和其他目標的復雜權衡之間取得平衡。現在說這些想法的最佳組合還為時過早。時間會證明一切。
在現有的以太坊鏈上,gas限制為1,250萬,交易中每個字節的數據花費16 gas。這意味著,如果一個區塊只包含一個批次(比如使用ZK Rollup,在驗證驗證上花費了500k gas),則該批次可以擁有(1200萬/ 16)= 750,000字節的數據。 如上所示,ETH傳輸的匯總每個用戶操作僅需要12個字節,這意味著該批處理最多可包含62,500個事務。 在平均13秒鐘的區塊時間上,這相當于?4807 TPS(相比之下,直接在以太坊上進行ETH傳輸的費用為1,250萬/ 21000/13?= 45 TPS)。
這是其他一些示例用例的圖表:
按照(L1 gas成本)/(匯總字節數* 16)* 1200萬/ 1250萬計算的可實現最大擴展性。
現在,值得注意的是,由于某些原因,這些數字過于樂觀。最重要的是,一個區塊幾乎永遠不會只包含一個批次,至少是因為有并且將會有多個匯總。第二,存款和取款將繼續存在。第三,短期內使用率較低,因此固定成本將占主導地位。但是,即使考慮到這些因素,仍有望實現超過100倍的擴展性。
現在,如果我們想超過?1000-4000 TPS(取決于特定的使用情況)怎么辦?這里是eth2數據分片的來源。分片提議每12秒開放一個16 MB的空間,可以填充任何數據,并且該系統保證就該數據的可用性達成共識。匯總可以使用此數據空間。每秒約1398KB是現有以太坊鏈的每秒約60 KB的23倍,并且從長遠來看,數據容量有望進一步增長。因此,使用eth2分片數據的匯總可以共同處理多達10萬個TPS,將來甚至還會更多。
Rollup的基本概念現在已得到很好的理解,我們可以肯定它們在根本上是可行且安全的,并且已經將多個rollup部署到了主網上,但仍有很多rollup設計領域尚未得到很好的探索,為了充分利用以太坊的可擴展性,將以太坊生態系統的大部分完全整合到rollup中會遇到很多挑戰。一些關鍵挑戰包括:
用戶和生態系統擴大——-很少有應用使用Rollup,用戶不熟悉Rollup,并且很少有錢包開始集成Rollup。商家和慈善機構尚未接受其付款。
交叉Rollup事務——將資產和數據(例如oracle輸出)從一個Rollup有效地移動到另一Rollup中,而不會花費通過基礎層的費用。
審計激勵——如何最大程度地提高至少一個誠實節點實際上將完全驗證Optimistic Rollup的機會,以便在出現問題時發布欺詐證明?對于小規模Rollup(不超過幾百個TPS),這不是一個重要的問題,可以簡單地依靠利他主義,但是對于大型匯總,則需要對此進行更明確的推理。
探索Plasma和Rollup之間的設計空間——是否有將某些狀態更新相關數據放到鏈上的技術,但不是全部數據,還有什么有用的方法可以用呢?
最大化預確認的安全性——許多Rollup提供了“預確認(pre-confirmation)”的概念以實現更快的UX,其中sequencer立即提供一個承諾,即下一個批次中將包含一個事務,如果Sequencer食言,則其存款會被摧毀。但是該方案的經濟安全性受到限制,因為它可能同時對許多參與者做出許諾。這種機制可以改善嗎?
提高對不存在的Sequencer的響應速度——如果Rollup的Sequencer突然掉線,則以最大的速度和成本從該狀況中快速恢復是很有價值的,既可以快速廉價地批量退出到另一個Rollup,也可以替換這個Sequencer。
高效的ZK-VM——生成ZK-SNARK證明,證明通用EVM代碼(或現有智能合約可以編譯到的一些不同VM)已正確執行,并具有給定的結果。
匯總(Rollup)是一種強大的新的二層擴容范例,在短期和中期的未來(以及可能也是長期的)中,有望成為以太坊擴容的基石。他們看到了以太坊社區的極大熱情,因為與以前嘗試進行二層層擴展不同,Rollup可以支持通用EVM代碼,從而允許現有應用輕松遷移。他們通過做出一個關鍵的妥協來做到這一點:不嘗試完全轉向鏈下,而是在鏈上每個事務中保留少量數據。
匯總有很多種,在設計空間中有很多選擇:使用欺詐證明的Optimistic Rollup,還有使用有效性證明的ZK Rollup(也稱為ZK-SNARK)。Sequencer(可以將事務批次發布到鏈上的用戶)可以是中心化執行者,也可以是所有人都可以擔任的,也可以是兩者之間的許多其他選擇。匯總仍是一項早期技術,并且開發仍在繼續快速發展,但匯總功能已經可以正常工作,并且其中一些(尤其是Loopring,ZKSync和DeversiFi)已經運行了幾個月。希望在未來的幾年中,會有更多激動人心的工作出現在匯總空間中。
內容概述: Facebook 計劃在 2021 年推出名為 Diem 的穩定幣。Diem 旨在提供與美元掛鉤的加密貨幣,并推出一個高吞吐量的區塊鏈和數字錢包.
1900/1/1 0:00:0012 月 14 日,加密投資風投基金 Pantera Capital 發推表示反對 Compound 第 32 號治理提案.
1900/1/1 0:00:00隨著比特幣的上漲,涉及加密領域的公司股價也在飆升,包括代幣產品開發公司、礦企、數字概念股、錢包提供商及支付和交易解決方案提供商.
1900/1/1 0:00:002020年全球加密資產總市值6416.47億美金,比特幣23449.95美金,總市值達4342萬美金(2020年12月24日),超過招商銀行,近期央視報道創下歷史新高.
1900/1/1 0:00:00在我對美國加密數字金融市場在2021年的發展的十個預測當中(“2021年,美國加密數字金融市場發展的十個預判”),其中的一個預測是基于比特幣的ETF申請會再次提出,而且這次通過的幾率要大于此前.
1900/1/1 0:00:00前言 2020年,是艱難而又充滿機遇的一年。之于區塊鏈和數字貨幣領域,同樣如此。2019年年底,我們將“醞釀”和“希望”設定為2019和2020年的關鍵詞.
1900/1/1 0:00:00