以太坊聯合創始人VitalikButerin在發布的《Rollups不完全匯總指南》中指出,匯總是一種強大的新的二層擴容范例,在短期和中期的未來中,有望成為以太坊擴容的基石。不過,目前,Rollups存在用戶難以理解、生態系統不支持、交叉Rollup、Plasma以及Rollups間設計空間的探索、最大化預確認安全性、高效的ZK-VM等關鍵挑戰。匯總在以太坊社區中風靡一時,并有望在可預見的未來成為以太坊的關鍵可擴展性解決方案。但是,這項技術究竟是什么?您能從中得到什么期望?您將如何使用它?這篇文章將嘗試回答其中一些關鍵問題。
背景:什么是Layer1和Layer2擴容?
擴展區塊鏈生態系統有兩種方法。首先,您可以使區塊鏈本身具有更高的交易能力。這種技術的主要挑戰在于,具有“更大區塊”的區塊鏈本來就更難以驗證,并且可能變得更加中心化。為了避免此類風險,開發人員可以提高客戶端軟件的效率,或者更可持續地使用分片之類的技術,以使構建和驗證鏈的工作分散在多個節點上。目前,被稱為“eth2”的工作正在為以太坊構建這種升級。
其次,您可以更改使用區塊鏈的方式。用戶不再將所有活動直接放在區塊鏈上,而是通過“二層”協議在鏈下執行大量活動。在鏈上有一個智能合約,該合約只有兩個任務:處理存款和提款,以及核實證明鏈下發生的所有事情都遵循合約規則。進行這些證明的方法有多種,但是它們都具有以下特性:在鏈上驗證證明比在鏈下進行原始計算便宜得多。
狀態通道vsPlasmavs?Rollups
Layer2擴容的三種主要類型是狀態通道,Plasma和匯總。它們是三種不同的范式,具有不同的優勢和劣勢,在這一點上,我們相當有信心所有Layer2擴容都大致可歸為這三類。
狀態通道如何運作?
另請參閱:https://www.jeffcoleman.ca/state-channels?和statechannels.org?
想象一下,愛麗絲正在向鮑勃提供網絡連接服務,而鮑勃向她每兆字節支付0.001美元。愛麗絲和鮑勃使用以下Layer2方案,而不是每次付款都進行交易。
首先,鮑勃將1美元放入智能合約中。為了向Alice支付第一筆款項,Bob簽署了一張“票”,上面寫著“$0.001”,然后將其發送給Alice。要進行第二次付款,Bob將在另一張票上寫上“$0.002”,并將其發送給Alice。依此類推,可以根據需要進行多次付款。當愛麗絲和鮑勃完成交易后,愛麗絲可以發布價值最高的票證,用她自己的另一個簽名包裹起來。智能合約將驗證Alice和Bob的簽名,向Alice支付鮑勃票上的金額,并將剩余的錢退還給Bob。如果Alice不愿意關閉通道,則Bob可以啟動撤回期限;如果Alice在這段時間內不提供“票”,那么Bob的錢將會全部返還。
V神:以太坊現在的協議和一年半前一樣簡單:在最近的節目中,就以太坊2.0是否會讓以太坊的進程和協議變得更加復雜這一問題,V神回答稱權益證明的缺點之一就是技術上有點復雜,因為你必須與驗證節點打交道。你必須弄清楚登錄和登出驗證節點的過程是什么樣的,在協議中還有很多類似管理的事情發生。網絡安全是我們一直努力使協議變得更簡單的一個重要原因。我可以肯定地認為,現在的協議和一年半前一樣簡單,這是一件非常重要的事情。就staking的引入對ETH的價格和貨幣政策有什么影響,他表示很難想出哪些具體行為會降低ETH價格的波動性。當你把以太坊和其他很多貨幣的對比時,就會發現它的價格波動那么高是必然的,從統計上看,以太坊的價格波動性要比比特幣要高,但還是比其他很多市值較低的加密貨幣要低。[2020/8/1]
該技術功能強大:可以對其進行調整,以處理雙向支付,智能合約關系和組成,Alice可以不信任地與Charile互動)。但是通道可以做什么將會受到限制。不能使用通道將資金從鏈下發送給尚未參與通道的人。通道不能用于表示沒有明確邏輯所有者的對象。而且通道,特別是如果用來做比簡單的定期付款更復雜的事情的通道,需要鎖定大量資金。
Plasma如何工作?
另請參閱:最初Plasma白皮書?和PlasmaCash?。
要存入資產,用戶需將資產發送到管理Plasma鏈的智能合約。Plasma鏈為該資產分配一個新的唯一ID。每個Plasma鏈都有一個操作者。每隔一個間隔,操作者都會生成一個“批次”,其中包括著他們已從鏈下收到的所有Plasma交易。他們生成一個Merkle樹,其中在樹中的每個索引X處都有一個轉移資產IDX的事務,否則這個Merkle樹的葉子為零。他們發布這個樹的Merkle根進行鏈接。他們還將每個索引X的Merkle分支發送給該資產的當前所有者。要提取資產,用戶需要發布最近一筆交易的Merkle分支,并將資產發送給他們。合約將開始一個質詢期,在此期間,任何人都可以通過證明發送方在發送資產時不擁有這個資產,或在以后的某個時間他們還將這些資產發送給了其他人,來嘗試使用其他Merkle分支機構使取款無效。如果在7天內沒有人證明這個提款是欺詐性的,則用戶可以完成提取資產。
Plasma提供比通道更強大的屬性:您可以將資產發送給從未參與系統的參與者,并且資本要求低得多。但這是有代價的:在“正常操作”期間,通道不需要任何數據就可以在鏈上進行傳輸,但是Plasma要求每條鏈定期發布一個哈希。此外,Plasma傳輸不是即時的:您必須等待時間間隔結束并等待區塊被發布。
V神:ZK rollups是目前為止最好的解決方案:推特網友Toast Of Crypto提問稱,為什么要推動或強迫人們遠離理想的Layer 2擴容協議?以太坊創始人V神對此回復稱,因為ZK rollups是最好的解決方案,直到今年晚些時候與EVM兼容的Optimistic rollups出現,eth2將花費更長的時間。(注:ZK rollups是一種混合擴展方法,通過智能合約和零知識方法將鏈上安全性和第二層網絡結合在一起。)[2020/7/28]
此外,Plasma和通道共有一個共同的弱點:為什么它們安全的博弈論依賴于這樣的思想,即由兩個系統控制的每個對象都具有一定的邏輯“所有者”。如果該所有者不關心其資產,則可能導致涉及該資產的“無效”結果。這對于許多應用都沒關系,但是對于其他許多應用卻是一個破壞交易的因素。即使在無需所有者同意的情況下可以更改對象狀態的系統也不適用于Plasma。這一切都意味著在任何實際的Plasma或通道部署中都需要大量的“特定于應用的推理”,并且不可能制作僅模擬整個以太坊環境的Plasma或通道系統。為解決此問題,我們走向了Rollups。
匯總
另請參閱:關于optimisticrollups?和ZKrollups?。
Plasma和通道是“完整”的二層方案,因為它們試圖將數據和計算都移到鏈下。但是,圍繞數據可用性的基本博弈論問題意味著,不可能對所有應用都安全地做到這一點。Plasma和通道通過依賴所有者的明確概念來解決此問題,但這會阻止它們走向完全普及。另一方面,匯總是“混合”二層方案。匯總將計算移到鏈下,但每個事務在鏈上保留一些數據。為了提高效率,他們使用了許多花哨的壓縮技巧來盡可能地用計算替換數據。結果是系統的可擴展性仍然受到基礎區塊鏈的數據帶寬的限制,但是但是以一個非常有利比率:以太坊基礎層ERC20代幣傳輸成本約為45000gas,而匯總中的ERC20代幣傳輸占用16個字節的鏈上空間,成本不到300gas。
數據屬于鏈上這一事實很關鍵。將數據放在鏈上并對此達成共識,任何人都可以根據需要在本地處理匯總中的所有操作,從而允許他們檢測欺詐,發起提款或親自開始生成交易批次。缺乏數據可用性問題意味著惡意或離線操作者能夠造成傷害更少,從而為有權發布批次的人員開放了更大的設計空間,并使匯總工作變得非常容易推理一下。最重要的是,缺乏數據可用性問題意味著不再需要將資產映射到所有者,這是導致以太坊社區對匯總感到比以前的二層擴展更令人興奮的關鍵原因:完全通用,甚至可以在匯總中運行EVM,從而使現有的以太坊應用幾乎無需編寫任何新代碼即可遷移到匯總。
V神:無狀態客戶端承諾在不犧牲驗證情況下改進區塊鏈節點,但在加密技術方面有障礙:在Unitize會議上,以太坊聯合創始人V神提供了關于無狀態客戶端轉換的最新進展和問題的最新情況。簡而言之,無狀態客戶端是一種允許節點完全參與驗證而不必保留整個區塊鏈早期歷史的方式。該狀態代表所有當前余額,智能合約代碼及其各自的數據。每個新塊只對狀態進行很小的更改,但是所有這些更改都必須針對整個區塊鏈進行驗證,這使得它是一個非常低效的過程。無狀態客戶是以太坊1.x計劃的核心重點,該計劃旨在使現有鏈保持可用狀態。但是這項研究對以太坊2.0也具有重要意義。V神說:“在以太坊2.0分片環境中,無狀態客戶端基本上是必需的,因為節點會在不同分片之間快速重新組合。”但V神還強調,其他區塊鏈也在研究無狀態客戶端,包括比特幣。無狀態客戶端依賴于加密技術,只計算狀態更改并驗證它們,而不必將狀態本身保存在內存中。但其中涉及的密碼學仍不完善。(Cointelegraph)[2020/7/10]
好的,那么匯總如何工作?
鏈上有一個智能合約,它維護狀態根:匯總狀態的Merkle根。
任何人都可以發布批次,這是一種以高度壓縮形式的交易集合,包含了先前的狀態根和新的狀態根。合約檢查批處理中的先前狀態根是否與其當前狀態根相匹配;如果是這樣,它將狀態根切換到新的狀態根。
為了支持存款和提款,我們增加了使輸入或輸出處于匯總狀態“之外”的交易的功能。如果批次具有來自外部的輸入,則提交該批次的事務也需要將這些資產轉移到匯總合約中。如果某個批次有外部輸出,則在處理該批次時,智能合約會啟動這些提款。
就是這樣!除了一個主要細節:如何知道批次中的后狀態根是正確的?如果某人可以提交具有任何后狀態根的批次而沒有任何后果,那么他們可以將匯總中的所有幣轉移給自己。這個問題很關鍵,因為有兩個非常不同的解決方案系列,而這兩個解決方案系列促成了兩種風格的匯總。
Optimisticrollupsvs?ZKrollups
匯總的兩種類型是:
Optimisticrollups,使用欺詐證明:匯總合約會跟蹤其整個狀態根歷史以及每個批次的哈希。如果有人發現某個批次的后狀態根不正確,則可以向鏈上發布一個證明,以證明該批次的計算不正確。合約將驗證該證明,并還原該批次及其之后的所有批次。
聲音 | V神:以太坊2.0公共測試網很快會推出 權益證明機制很快就可以啟動:據區塊大本營今日消息,近日,以太坊創始人Vitalik Buterin在接受媒體采訪時表示,在過去幾個月中,以太坊生態中已經取得了很多的進展。比如零知識證明(zero-knowledge proofs),相關的技術發展迅速,一些基于零知識證明技術的應用也在開發中。以太坊2.0的開發工作也取得了非常快速的進展,以太坊2.0公共測試網也很快就會推出;在其他的可擴展性技術方面也得到了很大的改進,有很多的應用也被搭建出來。
同時V神表示,以太坊2.0的7個客戶端開發團隊曾于9月初在多倫多匯聚,他們實現了這7個客戶端相互交流,實現互操作性。當前在多客戶端公共測試網推出之前,僅剩一些對等網絡協議 (peer to peer networking protocols)方面的工作。以太坊2.0的首要工作,也即權益證明機制(Casper FFG),很快就可以啟動了。[2019/10/4]
ZKrollups,使用有效性證明:每個批次都包含一個稱為ZK-SNARK的加密證明,這證明后狀態根是執行批次的正確結果。無論計算量有多大,都可以在鏈上非常迅速地驗證證明。
兩種匯總類型之間存在復雜的權衡:
總的來說,我個人認為,在短期內,對于通用EVM計算而言,OptimisticRollup可能會勝出,而對于簡單付款,交易和其他特定于應用的用例,ZKRollup可能會勝出。隨著ZK-SNARK技術的改進,在中長期而言,ZKRollup將在所有用例中勝出。
剖析何為欺詐證明
OptimisticRollup的安全性取決于以下想法:如果有人將無效的批次發布到匯總中,則任何檢測到欺詐的人都可以發布欺詐證明,以向合約證明該批次無效并應該還原。
聲稱某批次無效的欺詐證明將包含上圖中綠色部分數據:該批次本身以及Merkle樹的各個部分,它們僅需要證明已讀取和//或按批次修改的特定的帳戶即可。可以從綠色的節點中重建黃色的樹中節點,因此無需提供。此數據足以執行批處理并計算后狀態根。如果批次中計算出的后狀態根與提供的后狀態根不同,則說明該批次是欺詐性的。
可以保證,如果一個批次的構造不正確,并且所有先前的批次都正確構造,則可以創建一個欺詐證明,證明該批次的構造不正確。請注意有關先前批次的聲明:如果有多個無效批次發布到匯總中,那么最好嘗試證明最早的無效批次。當然,還可以保證,如果正確構造了一個批次,則永遠不可能創建表明該批次無效的欺詐證明。
V神:徹底關閉公鏈很難,但監管要容易得多:今日V神在王峰十問上表示:我們在2014年非常認真地考慮過證券監管法規等問題,我們與多家律師事務所進行了磋商,并仔細確認了我們所做的事情是否符合當時的法律。我們很高興看到,美國證券交易委員會認為并非所有的加密貨幣都是證券。我覺得,監管政策絕對會繼續影響區塊鏈技術的進步,盡管主要是從應用角度來看。我認為總的來說,各國政府已經認識到,徹底關閉公鏈網絡是非常困難的,但監管它們要容易得多。[2018/6/22]
壓縮如何實現?
一個簡單的以太坊交易需要約110個字節。但是,匯總上的ETH傳輸僅占用?12個字節:
其中一部分只是簡單的高級編碼:以太坊的RLP在每個值的長度上每個值浪費1個字節。但是,還有一些非常聰明的壓縮技巧正在進行:
Nonce:該參數的目的是防止重放。如果帳戶的當前隨機數為5,則該帳戶的下一個交易記錄必須帶有5隨機數,但是一旦處理了該交易,該帳戶中的隨機數將增加為6,因此無法再次處理該交易。在匯總中,我們可以完全省略隨機數,因為我們只是從預狀態中恢復了隨機數。如果有人嘗試使用較早的隨機數重播事務,則簽名將無法驗證,因為將根據包含新的較高隨機數的數據檢查簽名。
Gasprice:我們可以允許用戶以固定價格范圍的gas價格進行支付,例如選擇2的16次連續冪。或者,我們可以將每個批次的費用定為固定水平,或者甚至將gas付款完全移到匯總協議之外,并讓交易者向批次創建者支付費用以通過通道將其包括在內。
gas:我們可以類似地將總gas選擇為2的連續次冪。另外,我們也可以只在批次級別設置gas限制。
To:我們可以用一個index替換這個20字節地址。
Value:我們可以用科學記數法存儲value。在大多數情況下,轉帳只需要1-3個有效數字。
Signature:我們可以使用BLS聚合簽名,該簽名允許將許多簽名聚合為單個?32-96字節的簽名。然后可以一次檢查整個簽名和發件人的簽名集。該表中的?0.5表示一個事實,即一個匯總中可以包含多少個簽名是有限制的,這僅僅是因為有必要在單個欺詐證明中驗證簽名。
ZK匯總特有的一個重要壓縮技巧是,如果事務的一部分僅用于驗證,而與計算狀態更新無關,則可以將該部分留在鏈下。OptimisticRollup中卻不能這么做,因為如果以后需要在欺詐證明中檢查數據,則仍需要將數據包含在鏈上,而在ZKRollup中,SNARK證明批次的正確性已經證明了任何數據提供了驗證所需的信息。一個重要的例子是隱私保護匯總:在OptimisticRollup中,每筆交易中用于隱私的ZK-SNARK需要上鏈,而在ZKRollup中,覆蓋整個批次的ZK-SNARK已經毫無疑問地證明了這個“內部”ZK-SNARK是有效的。
這些壓縮技巧是匯總的可擴展性的關鍵。沒有它們,匯總可能只會使基礎鏈的擴展能力提高約10倍,而采用壓縮技巧時,對于幾乎所有應用,擴展系數幾乎可以超過100倍。
誰可以提交一個批次?
有很多學派可以在OptimisticRollup或ZKRollup中提交批次。通常,一般認為,要能夠提交批次,用戶必須存入一筆大筆存款。如果該用戶曾經提交過欺詐性批次,則該存款將被部分銷毀,并作為對欺詐證明者的獎勵。除此之外,還有許多可能性:
完全無政府狀態:任何人都可以隨時提交批次。這是最簡單的方法,但是有一些重要的缺點。特別地,存在一個風險,即多個參與者將生成并嘗試同時提交批次,并且這些批次中只有一個可以被成功地包括在內。這導致在生成證明中浪費大佬工作,或在向鏈上發布批次時浪費gas費用。
中心化Sequencer:只有一個角色,即sequencer,可以提交批次。這是最“有效”的方法,但它依賴于中心角色的活躍性。
Sequencer拍賣:舉行拍賣,以確定誰有權在第二天成為Sequencer。該技術的優點在于它籌集了可以由例如Rollup控制的DAO分配的資金。
從PoS集中隨機選擇:任何人都可以將ETH存入到匯總合約中,并且從一批存放者中隨機選擇每一批次的Sequencer,被選擇的概率與存入代幣數量成正比。該技術的主要缺點是導致大量不必要的資本鎖定。
DPoS投票:在拍賣中選擇了一個Sequencer,但是如果它們的表現不佳,代幣持有者可以投票將其踢出并進行新的拍賣來替換它們。
拆分批次和狀態根供應
當前正在開發的一些匯總使用“拆分批次”范例,其中提交一批二層事務的動作和提交狀態根的動作是分別完成的。這具有一些關鍵優勢:
您可以允許許多Sequencer同時發布批次,以提高抗審查能力,而不必擔心某些批次將是無效的,因為其他批處理已首先被包含在內。
如果狀態根是欺詐性的,則無需還原整個批次。您可以只還原狀態根,然后等待某人為同一批次提供新的狀態根。這為交易發送者提供了更好的保證,即他們的交易將不會被還原。
因此,總而言之,有一個相當復雜的技術生態正在嘗試在涉及效率,簡單性,抗審查性和其他目標的復雜權衡之間取得平衡。現在說這些想法的最佳組合還為時過早。時間會證明一切。
匯總會給您帶來多少擴展?
在現有的以太坊鏈上,gas限制為1,250萬,交易中每個字節的數據花費16gas。這意味著,如果一個區塊只包含一個批次,則該批次可以擁有=750,000字節的數據。如上所示,ETH傳輸的匯總每個用戶操作僅需要12個字節,這意味著該批處理最多可包含62,500個事務。在平均13秒鐘的區塊時間上,這相當于?4807TPS。
這是其他一些示例用例的圖表:
按照/*1200萬/1250萬計算的可實現最大擴展性。
現在,值得注意的是,由于某些原因,這些數字過于樂觀。最重要的是,一個區塊幾乎永遠不會只包含一個批次,至少是因為有并且將會有多個匯總。第二,存款和取款將繼續存在。第三,短期內使用率較低,因此固定成本將占主導地位。但是,即使考慮到這些因素,仍有望實現超過100倍的擴展性。
現在,如果我們想超過?1000-4000TPS怎么辦?這里是eth2數據分片的來源。分片提議每12秒開放一個16MB的空間,可以填充任何數據,并且該系統保證就該數據的可用性達成共識。匯總可以使用此數據空間。每秒約1398KB是現有以太坊鏈的每秒約60KB的23倍,并且從長遠來看,數據容量有望進一步增長。因此,使用eth2分片數據的匯總可以共同處理多達10萬個TPS,將來甚至還會更多。
Rollup中有哪些尚未解決的挑戰?
Rollup的基本概念現在已得到很好的理解,我們可以肯定它們在根本上是可行且安全的,并且已經將多個rollup部署到了主網上,但仍有很多rollup設計領域尚未得到很好的探索,為了充分利用以太坊的可擴展性,將以太坊生態系統的大部分完全整合到rollup中會遇到很多挑戰。一些關鍵挑戰包括:
用戶和生態系統擴大——-很少有應用使用Rollup,用戶不熟悉Rollup,并且很少有錢包開始集成Rollup。商家和慈善機構尚未接受其付款。
交叉Rollup事務——將資產和數據從一個Rollup有效地移動到另一Rollup中,而不會花費通過基礎層的費用。
審計激勵——如何最大程度地提高至少一個誠實節點實際上將完全驗證OptimisticRollup的機會,以便在出現問題時發布欺詐證明?對于小規模Rollup,這不是一個重要的問題,可以簡單地依靠利他主義,但是對于大型匯總,則需要對此進行更明確的推理。
探索Plasma和Rollup之間的設計空間——是否有將某些狀態更新相關數據放到鏈上的技術,但不是全部數據,還有什么有用的方法可以用呢?
最大化預確認的安全性——許多Rollup提供了“預確認”的概念以實現更快的UX,其中sequencer立即提供一個承諾,即下一個批次中將包含一個事務,如果Sequencer食言,則其存款會被摧毀。但是該方案的經濟安全性受到限制,因為它可能同時對許多參與者做出許諾。這種機制可以改善嗎?
提高對不存在的Sequencer的響應速度——如果Rollup的Sequencer突然掉線,則以最大的速度和成本從該狀況中快速恢復是很有價值的,既可以快速廉價地批量退出到另一個Rollup,也可以替換這個Sequencer。
高效的ZK-VM——生成ZK-SNARK證明,證明通用EVM代碼已正確執行,并具有給定的結果。
結論
匯總是一種強大的新的二層擴容范例,在短期和中期的未來中,有望成為以太坊擴容的基石。他們看到了以太坊社區的極大熱情,因為與以前嘗試進行二層層擴展不同,Rollup可以支持通用EVM代碼,從而允許現有應用輕松遷移。他們通過做出一個關鍵的妥協來做到這一點:不嘗試完全轉向鏈下,而是在鏈上每個事務中保留少量數據。
匯總有很多種,在設計空間中有很多選擇:使用欺詐證明的OptimisticRollup,還有使用有效性證明的ZKRollup。Sequencer可以是中心化執行者,也可以是所有人都可以擔任的,也可以是兩者之間的許多其他選擇。匯總仍是一項早期技術,并且開發仍在繼續快速發展,但匯總功能已經可以正常工作,并且其中一些已經運行了幾個月。希望在未來的幾年中,會有更多激動人心的工作出現在匯總空間中。
由于Symbol發布時間的延遲,之前確定的向XEM持有用戶空投Symbol代幣XYM的快照時間不再適用,當前社區正在關于新的快照時間進行投票.
1900/1/1 0:00:00比特幣?是一段旅程,并非目的地,每個人都走在自己的道路上。每天早上,當我研究比特幣時,我發現自己更具敬畏心,因為比特幣?非結構化的簡潔性所具備的力量和潛力讓我懂得謙遜.
1900/1/1 0:00:00“Gate.io理財寶”將于今日18:00同步上線《1INCHPoS挖礦活期理財》和《DeFi理財1INCH鎖倉挖礦14天第1期》認購,其中《1INCHPoS挖礦活期理財》幣年化收益率為10%.
1900/1/1 0:00:00?1.勝不驕,敗不餒,平常心必須是市場交易的一個長期心理過程。在這個過程中,勝利和失敗總是同時存在,相伴而生。市場上機會很多,每天都可以經歷多次的成功和失敗.
1900/1/1 0:00:00兩周前,幾乎沒有投資者預計比特幣(BTC)的價格會上漲到超過2萬美元。實際上,大多數人預測到2022年年中或2023年年末,比特幣的價格最多達到3萬美元.
1900/1/1 0:00:00多言不可與謀,多動不可與久處,交易與其沖動,還不如一動不動!大家好,我是席幕楓。心存陽光必有詩與遠方,認識老席何懼再遇荒涼?席幕楓:1.7以太分析以太坊,早間再次刷新破高,最高來到1220.79.
1900/1/1 0:00:00