原文標題:Vitalik:Rollups不完全指南
Rollups解決方案在以太坊社區中正風靡一時,并有望在將來成為以太坊的關鍵擴容解決方案。但是這項技術究竟是怎樣的呢?它能給我們帶來什么?我們將如何使用這項技術呢?本文將盡量回答其中一些關鍵問題。
背景:何為一層、二層擴容?
區塊鏈擴容方式有兩種。第一種,可以提高區塊鏈本身的交易容量。這種技術的主要挑戰就是:當區塊容量越來越大時,區塊鏈將越來越難驗證,且中心化程度越來越高。為了避免此類風險,開發者可以提高客戶端軟件的效率。或者選擇另一種更為可持續的方式:利用諸如分片這類技術,使得區塊鏈上的構建區塊和驗證工作可以分散至許多節點(Eth2升級中就會將此技術引入以太坊)。
第二種,可以改變使用區塊鏈的方式。即用戶不是將所有交易都直接在區塊鏈上進行,而是通過二層協議在鏈下執行大部分交易。好比鏈上有一個智能合約,該合約只有兩個任務:處理存款和提款交易、以及驗證所有鏈下交易的有效性。對鏈下交易進行驗證的方法有多種,但他們都具有同一個特性:在鏈上驗證證明比在鏈下進行原始計算的成本要低得多。
狀態通道vsPlasmavsRollups
二層擴容方案的三種主要類型是:狀態通道、Plasma和rollups。他們是三種不同的范式,具有不同的優劣勢。我們可以把所有二層擴容解決方案大致地歸為這三類(盡管有的方案因分類模糊而存在命名爭議,如validium)。
狀態通道的原理
更多資料請參考:
https://www.jeffcoleman.ca/state-channelsandstatechannels.org
假設Alice正給Bob提供互聯網連接,作為交換,Bob每兆字節向她支付0.001美元。他們不需要每一次支付都執行交易,而是使用下面的二層解決方案。
首先,Bob向一個智能合約中存入1美元(或等值的ETH或穩定幣)。Bob在一張寫著“0.001美元”的票上進行簽名(一條鏈下信息),然后發給Alice,這樣就完成了對Alice的第一筆支付。而第二次支付時,Bob在另一張寫著“0.002美元”的票上進行簽名,然后發給Alice。以此類推,可以根據需要進行多次付款。當他們完成交易了,Alice可以將數值最高的票單發布到鏈上,并對其進行簽名。鏈上的智能合約將驗證Alice和Bob的簽名,然后向Alice支付Bob票據上的金額,并將剩余的錢退還給Bob。
如果Alice不愿意關閉他們之間的狀態通道(出于惡意行為或由于技術故障),則Bob可以啟動提款期(withdrawalperiod),如果Alice在這段期間內(比如7天)還是沒有向Bob提供票據,那么Bob就可以拿回他的所有錢。
該技術功能強大:可以對其進行調整,以進行雙向支付、處理智能合約關系(如,Alice和Bob在通道中簽訂金融合約)、以及對通道進行組合(比如,當Alice和Bob、Bob和Charlie之間有一條開放通道時,Alice和Charlie也可以進行去信任交易)。
以太坊創始人V神發布關于“單槽終結路徑”的研究文章:金色財經報道,1月25日,以太坊創始人Vitalik發布了關于“單槽終結路徑”的研究文章,文章表示,由很多論據推論,盡管以太坊現在有超過28w個驗證者,但仍可以將以太坊最終確認時間減小至單個Slot時間。
實現“單槽終結”可以提升用戶體驗,減少以MEV為目的的重組鏈并減少協議復雜性和錯誤幾率。但這是一個是長遠的計劃,其順序會排在PoS、分片、Verkle樹之后。目前,實現這一目標主要思路有:
1.通過超級委員會實現,即通過至少數百名的超級委員會驗證者完成共識中單個slot內的驗證工作。
2.讓如今的巨量的驗證者更快更高效的發揮作用,即讓聚合簽名過程更高效。
此外,對于“單槽終結”實施有具體如下4點要求。
1.加緊優化簽名聚合工作;2.確定超級委員會規模;3.研究、達成一致并指定一個理想的共識和分叉機制選擇;4.同意并在實施路徑上執行這些。[2022/1/25 9:11:04]
但狀態通道的作用是有限的:無法將資金在鏈外發送給沒有參與進來的用戶;通道不能代表那些邏輯上沒有明確所有者的對象(如Uniswap);并且如果要進行更為復雜的交易,需要在通道內鎖定大量資金。
Plasma的原理
更多資料請參考?
最早的Plasma論文:
http://plasma.io/plasma-deprecated.pdf
PlasmaCash:
https://ethresear.ch/t/plasma-cash-plasma-with-much-less-per-user-data-checking/1298
用戶向某個Plasma鏈的智能合約中發送一筆資產以完成存款。Plasma鏈給該資產分配一個唯一的ID(如537)。每條Plasma鏈都有一名運營者“operator”(他可以是一個中心化的角色、一個多簽名者、或諸如PoS/DPoS此類更為復雜的東西)。每隔一段時間(可以是15秒至1小時),運營者便會生成一個等待批量處理的匯總交易(由他們在鏈下收集到的所有Plasma交易組成)。
這些運營者會生成一個默克爾樹,樹中每個索引X處,如有存在交易的話,會顯示某筆轉移交易資產IDX,如果沒有交易,葉子值為零。隨后他們將該默克爾樹的默克爾根發送到鏈上,同時還會將每個索引X的默克爾分支發送給其資產的當前所有者。
如果用戶想要進行提款,那么就要公布其最近向其發送資產的交易的默克爾分支。然后智能合約就將啟動挑戰期,在此期間,任何人都可以嘗試使用其他默克爾分支來證明該提款無效。需要至少證明其中一項:(i)發送方在發送資產時并不是該資產的所有者;(ii)發送方在后來將資產發給了其他人。如果在某個時間段內(如七天)沒有人證明該提款是欺詐性的,用戶便可以取出他的資產。
V神發文:使用calldata擴展和分片擴展Rollups的分步路線圖:11月26日消息,V神發布了關于“使用calldata擴展和分片擴展Rollups的分步路線圖”。在此文中,V神表示L1上的交易費用一直非常高,因此采取任何必要措施來幫助促進整個生態系統向Rollups的轉變變得更加緊迫。Rollup已經顯著降低了許多以太坊用戶的費用:l2fees.info顯示Optimism和Arbitrum提供的費用比以太坊基礎層本身低約3-8倍,然而,即使是這些費用對許多用戶來說也太貴了。V神提出了4步,第一步:txcalldata擴展,第二步:一些分片,第三步:N個分片并且受委員會保護,第四步:數據可用性抽樣。但是這留下了一個問題:如果以太坊核心協議不存儲這些數據,誰來存儲?V神提出了幾個可能:個人和機構;區塊瀏覽器;RollupDAO,客戶端;門戶網絡;像TheGraph一樣的協議。其中一些解決方案(個人和機構志愿者、區塊瀏覽器)已經可用。[2021/11/26 7:11:58]
Plasma比狀態通道擁有更加強大的性能:使用Plasma,用戶可以將資產發送給從未加入其系統的參與者;對資本的要求也低許多。但Plasma也是有缺點的:在“正常操作”期間,通道不需要任何數據就可以在鏈上進行傳輸,而Plasma要求每條鏈定期發布一個哈希。此外,在Plasma上轉賬不是即時的:用戶需要等一段時間并且等到區塊被發布之后。
再者,Plasma和通道都有一個關鍵弱點:確保這兩種方案安全的前提是,這兩種系統所控制的對象都有邏輯上的“所有者”。如果該資產的所有者不關心其資產,那么可能會導致證明其資產無效的結果。這對許多應用程序來說是可以接受的,但是對于許多其他應用來說(如Uniswap)來說是破壞交易原則的。甚至在一些系統中如果對象的狀態不經其所有者的同意就可以被改變(如基于賬戶的系統,你可以不經某人的同意就可以提升其余額),這些系統也不適用Plasma。
這意味著,當部署任何實際Plasma或通道時,都需要大量的“某個特定應用程序的推理”,并且不可能創建一個模擬完全的以太坊環境(或“EVM”)的Plasma或者狀態通道系統。為了解決此問題,各種rollup方案出現了。
Rollups
其他資源參見?
EthHubonoptimisticrollups:
https://docs.ethhub.io/ethereum-roadmap/layer-2-scaling/optimistic_rollups/
ZKrollups:
https://docs.ethhub.io/ethereum-roadmap/layer-2-scaling/zk-rollups/
Plasma和通道類是“純粹”的二層方案,因為其將數據和計算都移至鏈下。然而,圍繞“數據可用性”的基本博弈論問題意味著這些方案不一定對于所有應用來說都是安全的。Plasma和通道方案的解決方式是依靠所有者完全知曉狀態,但這使得此類方案無法完全通用化。Rollups,則是一種“混合型”二層方案。Rollups將計算(以及狀態存儲)移至鏈下,但將每筆交易的一些數據放在鏈上。
V神發布針對信標鏈的終結性模型替代設計構想:金色財經報道,以太坊聯合創始人V神在Ethresearch論壇中發表針對信標鏈的替代設計方案《一個基于累積委員會的終局性模型》,他認為信標鏈從長期來看可以切換到這個方案,以取代此前計劃切換的CasperCBC方案。他表示該方案的核心屬性包括:可以在通常情況下提供單時隙(slot)的經濟終局性;即使發生了單時隙(slot)的重組(reorg),對于串通的多數人來說,執行也要昂貴的多,從而減少共識可提取價值CEV(consensus-extractablevalue);擺脫對LMDGHOST分叉選擇的嚴重依賴,避免已知的缺陷,并引入復雜的混合分叉選擇規則來修復這些缺陷;有可能允許較低的存款規模和較高的驗證人數量;保留了經濟終局性可以接近一個非常大的數字(數百萬ETH)。[2021/8/5 1:36:30]
為了提高效率,這類方案借助了許多復雜的壓縮技巧以盡可能使用計算替代數據。結果是系統的擴容性仍然受到底層區塊鏈的數據帶寬限制,但比較來看仍十分有利:以太坊基礎層ERC20通證的轉移成本約為45000gas,而rollup中的ERC20通證僅轉移占用16字節的鏈上空間,成本不到300gas。
數據在鏈上這一點很關鍵(請注意:將數據“放在IPFS上”是行不通的,因為IPFS不能就任何給定的數據是否可用提供共識;數據必須被記錄在鏈上)。將數據放在鏈上并對此達成共識,使得任何人都可以根據需要在本地處理rollup中的所有操作,從而允許其對欺詐進行監測、發起提款或親自開始批量生成交易。缺乏數據可用性意味著一名惡意的或是離線的運營者能夠產生的影響甚至會更小(例如他們無法造成一周的延遲),從而為有權發布批量交易的人打開更大的設計空間,并使rollup更容易有理可循。
更重要的是,缺乏數據可用性意味著不再需要映射資產到所有者,從而我們能得出以太坊社區相較之前的二層擴容方案對rollups更加期待的關鍵原因之一:rollups是完全通用的,我們甚至還可以在rollup內部運行EVM,使得既有的以太坊應用幾乎不需要編寫新代碼就能遷移到rollups上。
Rollup的原理到底是什么?
在鏈上存在一份智能合約,其中包含一個狀態根,即rollup狀態的默克爾根(也就是rollup內部的賬戶余額、合約代碼等等)。
任何人都可以發布一批匯總交易(batch),這是一個經由高度壓縮的交易集合,其中包含之前的狀態根和新狀態根(處理交易之后的新默克爾根)。該合約會檢查batch中的舊狀態根是否匹配其當前的狀態根,如果匹配的話,合約會對狀態根進行更新。
為了支持存款和提款,我們增加了輸入和輸出在rollup狀態“外部”的交易的功能。如果一個batch中包含來自外部的輸入,則提交到該batch的交易也需要將資產轉移到rollup合約。如果一個batch中包含來自外部的輸出,則智能合約在處理該batch時會發起提款。
動態 | V神發5篇博文談以太坊2.0未來將遇到的難題:據Coindesk文章報道,在以太坊Devcon大會期間,V神筆耕不輟,連發5篇博客文章,談論以太坊2.0未來將遇到的難題。現整理如下:
1.在短期內(指如果ETH2.0發布),將ETH從以太坊2.0轉移到以太坊1.0仍然存在這個可能。以太坊2.0開發人員Preston Van Loon表示,在ETH 2.0和 ETH 1.0之間創建雙向橋的復雜性給兩個鏈帶來了“安全風險”。Buterin提出了兩種可能的方法來在兩個區塊鏈之間建立“橋梁”。他承認,“如果以太坊2.0遭到破壞,這兩項建議都需要在以太坊1.0方面采取緊急補救措施。”為了降低此類風險,Buterin建議在投票期間啟用“人為干預”,以逆轉從以太坊1.0網絡進行的遷移。目前這仍然是項建議,研究人員還沒在 ETH 2.0中設計遷移“橋梁”。
2.在ETH2.0和ETH1.0完全合并之前,以太坊2.0可能會與ETH1.0并行使用多年。區塊鏈研究員Mihailo Bjelic表示,在開發人員確定其可靠性之前,以太坊2.0這樣的復雜系統不應取代當前的以太坊主網。V神在博客文章中稱,希望這種過渡是平穩的。
3.調用有關以太坊2.0區塊鏈的數據將比以前更加昂貴。V神針對這些問題,在博客文章中建議開發人員可以在編寫驗證器時控制其規模等。
4.以太坊將失去原子交易的能力。ETH 2.0將破壞以太坊上原子交易能力,即一次完成所有交易(交易拆會在不同分片間完成)。V神認為,不同應用之間可以具備更強交互能力,但也會使一些活動受阻,使得更難吸引加密貨幣交易者。
5.V神在博客文章中提出ETH 2.0 在發布時分片數量會降低,先前為1024個分片,現在提出的為64個分片,主要好處是以太坊2.0的分片之間可以通信更快,更簡單。[2019/10/25]
這就是rollup的工作原理了。但還有一個重要細節:如何得知batches里的后狀態根(post-stateroot)是正確的呢?如果某人能夠提交一個具備任意后狀態根的batch,而無需承擔任何后果,他們完全可以將rollup中的所有代幣都轉移給自己。這個問題很關鍵,因為由此誕生了兩種不同的解決方案,這兩種解決方案又衍生出了兩種不同的rollups。
Optimisticrollups與ZKrollups
這兩種rollups為:
1.Optimisticrollups,其解決方案為欺詐證明(fraudproofs):這類rollup會追蹤所有歷史狀態根以及每個batch的哈希值。如果任何人發現某個batch的后狀態根不正確,他可以向區塊鏈發布一個證明,證明該batch計算錯誤。合約會對證明進行驗證,并且對該batch及其之后的batches進行回滾。
2.ZKrollups,其解決方案為有效性證明(validityproofs):每個batch都包含一個稱作ZK-SNARK的密碼學證明(例如使用PLONK協議),以證明后狀態根是正確執行batch的結果。無論計算量有多大,該證明都能在鏈上得到極速驗證。
動態 | V神發表區塊鏈方向開發應該集中在第一層還是第二層功能的看法:據AMBCrypto消息,對于區塊鏈的開發應該集中在第一層還是第二層功能上的爭議,V神發表了自己折中的意見。考慮到區塊鏈的發展對未來的影響,V神說道:“我真的認為區塊鏈將變得越來越成熟。第一層將變得更穩定,第二層將承擔越來越多不斷出現的發明和改變的重擔。”[2018/8/29]
這兩種rollup之間存在復雜的權衡:
總的來說,我個人的觀點是,在短期內,optimisticrollup的顯著優勢在于其通用的EVM計算,而ZKrollup更可能被用于支付、交易和其他特定用例。但中長期來看,隨著ZK-SNARK技術的成熟,ZKrollup會在所有用例中發揮出優勢。
解構欺詐證明
Optimisticrollup的安全性保障主要來自于:如果有人在rollup中發布了一個無效的batch,其他任何跟進該鏈的用戶監測到欺詐行為都可以發布欺詐證明,向合約證明該batch的無效性,并進行回滾。
在上圖中,聲稱某batch?無效的欺詐證明會包含綠色的數據:如果要證明特定賬戶被該batch讀取和/或被修改,則需要該batch本身(可以對照存儲在鏈上的哈希值進行檢查)以及Merkle樹的各個部分。不需要提供圖中黃色的節點,因為他們能夠被綠色的節點重構。該數據已經足夠執行batch并計算后狀態根了(這與無狀態客戶端驗證單個區塊的方式幾乎相同)。如果經計算的后狀態根以及獲得的batch中的后狀態根不一致,那么該batch就是無效的。
可以保證如果某個batch不正確,但之前所有的batches都是正確的,那么就能夠創建一個欺詐證明以表示該batch是不正確的。請注意對之前batch的聲明:如果有超過一個無效的batch被發布到rollup中,那么最好嘗試證明最早的無效batch。也可以說,如果某個batch是正確的,那么永遠都無法創建一個欺詐證明表示其無效。
如何進行壓縮?
一筆簡單的以太坊交易(發送ETH)大小約為110字節。而在rollup上進行ETH轉賬,大小僅為約12字節:
其中一部分只是簡單的高級編碼:以太坊的RLP編碼方式在每個值上會浪費1字節。但是其中還包括一些機智的壓縮技巧:
Nonce:這個參數的主要目的是預防重放攻擊。如果帳戶的當前隨機數為5,則該帳戶的下一個交易記錄必須包含隨機數5,但是交易一經處理,該帳戶中的隨機數將增加為6,因此無法再次處理該交易。在rollup中,我們可以完全省去隨機數,因為我們可以直接從前狀態中恢復隨機數;如果有人嘗試使用先前的隨機數重放交易,簽名將無法驗證,因為會依據包含較高隨機數的數據來對簽名進行檢查。
Gasprice:我們可以允許用戶按固定gas價格范圍進行支付,例如2的16次冪。或者我們可以在每個batch中收取固定的gas費用,甚至可以將gas費的支付完全移出rollup協議,讓交易者使用通道向batch創建者支付相應費用。
Gas:同樣地,我們可以將總gas設定為2的多次冪形式。或者我們也將gas限制在batch的水平。
To:可以用index來替換20字節的地址(例如,如果某地址是被添加到默克爾樹中的第4527個地址,我們只需使用index4527來表示即可。然后向狀態添加一個“子樹”(subtree)來存儲index和地址本身的映射關系)。
Value:我們可以用科學記數法儲存值。在大多數情況下,交易只需要1-3個有效位。
Signature:我們可以使用BLS聚合簽名將大量簽名聚合成一個約為32-96字節(取決于協議)的簽名。該聚合簽名可以依據消息集和batch的發送者集一次性進行檢檢查。表中的“~0.5”表示一個聚合簽名中可以包含的簽名數量是有限制的,因為需要能夠在一個欺詐證明中對聚合簽名進行驗證。
ZKrollups特有的一個重要壓縮技巧是:如果交易的一部分信息僅用于驗證,并且不用于計算狀態更新,那么該部分可以移至鏈下。Optimisticrollup無法做到這一點,因為該數據仍然需要存在鏈上,以備需要在欺詐證明中進行檢查的不時之需。而在ZKrollup中,SNARK已經證明了batch的正確性,也就是說驗證所需的數據已經齊全。
具備隱私保護功能的rollups是一個重要例子:在optimisticrollup中,每筆交易中用于隱私保護的ZK-SNARK證明需要在鏈上,需要占據約500字節。而在ZKrollup中,包含整個batch的ZK-SNARK已經證明了“內部”ZK-SNARK的有效性。
這些壓縮技巧是rollups擴容性的關鍵,否則rollups擴容性相較底層連只能提高約10倍(雖然對于某些特定的計算密集型應用來說,簡單的rollups方案已經足夠),而對數據進行壓縮后,幾乎對所有應用來說,擴容性都可以實現100倍以上的提升。
誰能批量打包交易并提交?
對于optimisticrollups和ZKrollups中交易的打包權有許多說法。一般來說,任何想要打包交易并且提交的用戶,必須要鎖定大量存款。如果用戶提交了包含欺詐/無效交易的batch(例如包含無效狀態根),那么該用戶的存款的一部分會被銷毀,另一部分則作為欺詐證明者的獎勵。除此之外,還存在其他可能性:
完全“無政府狀態”:任何人都可以在任何時候批量打包交易并提交。這是最簡單的方式,當然也存在缺陷。尤其是多個參與者同時嘗試提交但最終只有一個batch能被成功打包。這會導致大量生成證明的工作和/或發布batches的gas被白白浪費。
中心化處理:存在一個行為者即排序者(sequencer)提交batches(但提款存在例外:通常來說一個用戶可以首先提交提款請求,如果排序這沒有在下個batch中處理該提款,那么該用戶能夠自己提交一個batch)。這是最“高效”的方式,但是依賴于一個中心化的角色。
排序者拍賣:通過定期舉行拍賣的形式來確定誰有權成為下一個周期的排序者。其優點在于它可以籌集資金,并通過例如由rollup控制的機制(例如DAO)來進行分配。(參見MEV拍賣)
PoS集隨機選擇:任何人都可以將ETH(或是rollup協議的代幣)存入rollup合約,然后在存款人中隨機選擇每個batch的排序者,被選中的可能性與鎖定資產成一定比例。這個方式的主要缺點在于會有大量資本被鎖定,而這是不必要的。
DPoS投票:通過拍賣確定一個排序者,如果該行為人表現不佳,那么代幣持有者可以通過投票將其驅逐,并發起新的拍賣。
將批量打包和狀態根處理相獨立
目前正在開發的一些rollup項目采用了“獨立批量打包”的方式,也就是將提交二層交易的batch和提交狀態根的過程分離。這種做法的優勢在于:
1.使得多個排序者能夠同時發布batches,以提高扛審查性,而避免了因為一些batches被首先打包而導致其他batches無效的問題。
2.如果某個狀態根是無效的,我們不需要回滾整個batch,可以只回滾狀態根,并等待他人提供該batch的新狀態根。這保障了交易發送方的交易不會被回滾。
總之,在效率、簡潔性和抗審查性等方面的權衡十分復雜,許多方案也在進行探索。目前要判斷哪些概念是最佳組合還為時尚早,時間會證明一切。
rollup能在多大程度上實現擴容?
在現有的以太坊鏈上,gas上限是1250萬,一筆交易里,每個字節的數據花費16gas。這意味著如果一個區塊只包含一個batch(我們說相當于打包了一個zkrollup,在證明驗證上花費50萬gas),那一個batch可以包含?(1200萬/16)750,000字節的數據。如上文所示,對于一個以太坊轉賬的rollup,每一次用戶操作只需12個字節,也就是說該批交易可以包含高達6.25萬筆交易。現在平均出塊時間為13秒,即相當于大約每秒4807筆交易(相比之下,現在直接在以太坊上轉賬是每秒1250萬/21000/13~=45筆交易)
以下表格是其他用例的例子:
擴容的最高水平是這樣計算的:/*1200萬/1250千萬
現在,值得注意的是這些數據都過于樂觀了,原因有幾個。最重要的是,一個區塊幾乎不可能只包含一個batch,因為最起碼會有多個rollup。第二,存款和提款行為會一直存在。第三,在短期,使用率會比較低,所以固定成本會占主導。但即使這些因素都考慮到了,超過100倍的擴容水平也有望成為常態。
如果我們想每秒交易量達到1000-4000呢(取決于特定的用例)?這就是eth2數據分片發揮作用的時候了。分片協議為每12秒提供16MB的空間來容納任何數據,且系統確保數據可用性的共識。數據空間可以被rollup使用。這大約每秒1398kb的空間比現在以太坊鏈上每秒大約60kb提高了23倍,且在更長期來看,數據容量有望繼續增加。因此,使用eth2分片數據的rollup可以以每秒約10萬筆交易的吞吐量批量處理,在未來可能更多。
Rollup上還有哪些未解決的困難?
盡管rollup的基本概念現在已為人所了解,我們確信它們是完全可行且安全的,現在多種rollup已經部署到主網上,但rollup設計還有很多領域未被充分探索,以及在實現橋接以太坊生態上大部分的活動到rollup上,以利用它們的可擴容性這件事上,還存在不少困難。一些關鍵的困難包括:
用戶和生態的入駐——使用rollup的應用不多,用戶也不熟悉rollup,只有少數錢包開始集成rollup。商家與慈善機構也還不支持這種支付方式。
跨rollup交易——高效地從一個rollup移動資產與數據(例如:預言機輸出)到另一個,而無須產生經由基礎層的費用。
審計激勵——如何最大程度提高至少有一個誠實節點完整驗證一個optimisticrollup的機會,使得出現問題時他們會發布欺詐證明?對于小規模rollup(高至每秒幾百筆交易),這個問題不大,因為對礦工來說只是舉手之勞,但對于大規模的rollup來說,還需要更充分的理由以說服礦工去做驗證。
探索plasma和rollup之間的設計空間——是否有技術可以放一些狀態更新相關數據到鏈上而不是全部的數據,且這些數據會產生有用的東西?
最大程度提高提前確認的安全性——很多rollup都會為了更快的用戶體驗(UX)提供“提前確認(pre-confirmation)”,這里排序者(sequencer)會馬上承諾某筆交易會被打包到下一個batch里,而如果此承諾沒有被兌現,該排序者將損失其保證金。但這個方案的經濟安全性是有限的,因為排序者可以同時對非常多的人作出非常多的承諾。這個機制可以改善嗎?
提高缺席排序者的回應速度——如果一個rollup的排序者突然離線了,在最短的時間內以最低的成本從這種情況恢復過來是很重要的,方法不是快速且低成本地大規模退出到另一個rollup,就是換一個排序者。
高效ZK-VM——生成一個ZK-SNARK證明,證明通用的EVM代碼(或一些現有的智能合約可以編譯成的不同VM)已被正確執行和有一個給定結果的。
結論
Rollup是一個強大、新穎的二層擴容范式,并有望成為以太坊在中短期未來(也可能是長期)擴容的基石。以太坊社區已經表現出對rollup的強烈興趣,因為不像之前在二層擴容的嘗試,它們可以支持通用的EVM代碼,使得現有的應用可以輕易遷移。Rollup有一個重要的妥協:交易處理不是完全在鏈下進行,而是每筆交易留下一小部分數據在鏈上。
Rollup有很多種,在設計空間上有很多選擇:可以是使用欺詐證明的optimisticrollup,也可以是使用有效性證明(即ZK-SNARKs)的ZKrollup。排序者(可以發布打包好的batch到鏈上的用戶)可以是中心化的行動者、自由放任者、或兩者間的很多可能性。Rollup還是早期的技術,其開發在不斷快速地進行中,但它們是可行的,且其中有些(比較有名的是路印、ZKSync、和DeversiFi)已經運行數月了。期待今年rollup會有更多令人振奮的成果。
來源|?vitalik.ca
作者|VitalikButerin
原文鏈接:
https://vitalik.ca/general/2021/01/05/rollup.html
介紹 受PlanB的存量與流量回歸模型的啟發,我利用網絡的每日總費用為以太坊開發了一個回歸模型。比特幣的基本論點是,它是一種價值存儲,類似于黃金,因此存量與流量比是分析比特幣價值的有用依據.
1900/1/1 0:00:00Gate.io萬券齊發,$80,000點卡免費大派送活動已圓滿結束,本次活動為期一個月,用戶僅需完成實名認證即可免費領取價值$8的點卡,參與人數累計約8000人.
1900/1/1 0:00:00Gate.io一直秉承真實,透明的理念,不造假數據,不干預市場交易,為用戶提供真實自由的市場工具和穩定健康的市場服務。杠桿交易提供做多和做空機制,可以有效穩定市場到合理價值.
1900/1/1 0:00:00尊敬的XT用戶: 為慶祝BEB正式上線XT.COM,XT將于2021月1月11日16:16聯合BEB舉辦交易量大賽.
1900/1/1 0:00:00“Gate.io理財寶”將于今日12:00上線《DeFi理財YFI鎖倉挖礦14天》認購,總額度35YFI,鎖倉期限14天,浮動利率4.5%,利息每日發放,按先到先得原則,滿額為止.
1900/1/1 0:00:00親愛的BitMax用戶:BitMax將于北京時間2021年1月9日10:00起調整全新VIP階梯費率機制.
1900/1/1 0:00:00