前言:由于Layer 1擴展不易,Layer 2擴展一直也是區(qū)塊鏈擴展的重要探索方向。以太坊社區(qū)曾經提出過Plasma的解決方案,但事后證明,Plasma在資金退出等問題上非常復雜,導致其很難成為真正可行的可擴展性解決方案。但Plasma的失敗并非沒有用,zk-Rollup的誕生讓人們看到的layer-2擴展的可能方向,它可以解決Plasma的數(shù)據(jù)可用性問題和退出復雜性問題。而Plasma Group也將重心轉向Optimistic Rollup,以期實現(xiàn)可用于通用智能合約的Rollup側鏈。從這里我們可以看出,很多的技術構想,包括Vitalik的構想從一開始也可能會有一定的局限性,只有在不斷的摸索中才能找到真正可行的方向。社區(qū)的力量很重要,rollup方案一開始就是由社區(qū)成員提出的,只有更多人參與進來,才能推動以太坊和公鏈生態(tài)的發(fā)展。偉大的力量總是根植于人們之中。
在2017年8月,Ether的價格接近歷史新高。以太坊區(qū)塊鏈使用量暴增,在不斷增長的需求下以太坊不堪重負。研究者和開發(fā)者瘋狂地尋找新的擴展性解決方案。
在全球各地的區(qū)塊鏈會議上,開發(fā)者爭論著擴展性的解決方案。以太坊社區(qū)迫切需要一個方案。在這樣的瘋狂過程中,Plasma論文的第一版發(fā)布了,它承諾一個layer-2可擴展性方案,可以處理“世界范圍內的幾乎所有財務計算”。
快進到2020年。以太坊跟以往一樣慢,但它卻在所有的所謂“以太坊殺手”項目中存活下來。ETH2.0的發(fā)布日期越來越遠,隨著很多開發(fā)團隊關閉運營,Plasma看似完全消失。
不過,Optimistic Rollup和ZK Rollup(可以參考藍狐筆記之前的發(fā)布《一文讀懂ZK Rollup和Optimistic Rollup:以太坊重要的擴展方向》)正在被譽為最佳擴展性解決方案。但是,對Plasma的記憶似乎消失得無影無蹤。
那么,是誰殺死了Plasma?
讓我們回到2017年初。以太坊第一次進入主流,人們對其前景充滿無限樂觀。當時人們聲稱,所有有價值的資產會被代幣化。在舊金山的活動聚會中,人們在房間里只能站著,每當有關于以太坊的主題,便是門庭若市。但以太坊并沒有實現(xiàn)可擴展。
在這樣的狂熱之下,Vitalik Buterin和Joseph Poon發(fā)布了一篇論文,其中提到一種新的layer-2可擴展性解決方案,它就是Plasma。
Plasma聲稱,它能讓以太坊擴展到Visa級別的交易量,這種大膽的聲明引發(fā)了開發(fā)者和社區(qū)的熱潮。不久之后,以太坊研究社區(qū)就Plasma問題進行集會,以作為解決以太坊擴展性問題的方案。
但什么是Plasma?為什么它最終沒能實現(xiàn)其承諾?
Plasma是如何運行的
Plasma論文最初描述了一種構建MapReduce“區(qū)塊鏈樹”的機制。樹中的每個節(jié)點都代表連接到其父節(jié)點的唯一區(qū)塊鏈。所有這些區(qū)塊鏈都按照巨大的層級結構進行排列。但是,最初的規(guī)范很模糊且復雜。不久之后,Vitalik簡化了規(guī)范,并稱之為MVP(藍狐筆記:也就是最小可行的Plasma,Minimal Viable Plasma)。
MVP提出了簡化版本的Plasma:基于UTXO的簡單側鏈在數(shù)據(jù)不可用的情況下是安全的。但是,什么是側鏈?數(shù)據(jù)不可用意味著什么?在我們深入討論Plasma之前,先來了解一下這些術語的含義。
側鏈是連接到另外一個區(qū)塊鏈的區(qū)塊鏈。側鏈可以通過多種不同方式來操作,例如通過可信的第三方、聯(lián)盟、或共識算法。例如,Blockstream參與了在比特幣網(wǎng)絡上的聯(lián)盟側鏈,它被稱為Liquid。Liquid允許更高的交易吞吐量,它之所以能實現(xiàn)是因為它在其信任模型上做了權衡。用戶必須相信聯(lián)盟不會合謀和竊取資金。在這種情況下,鏈的運營者是Liquid聯(lián)盟的各種成員,例如Blockstream公司。
側鏈通過雙向錨定連接到較大的區(qū)塊鏈,例如比特幣區(qū)塊鏈。用戶可以在側鏈存儲資金,其方式是將其資金發(fā)送到主鏈上的特定地址或智能合約。這稱為錨入交易。為了提取資金,用戶可以在側鏈上執(zhí)行相同的操作以將其資金取回至主鏈。這稱為錨出交易。但這跟Plasma有什么關系?
正如我們在上面的示例可以看到的那樣:將資金從側鏈移出需要一個關鍵的要素:信任。用戶必須信任側鏈的運營商不會拿資金潛逃。但這不是區(qū)塊鏈無須信任的主要特性嗎?如果用戶想跟側鏈交互而無須信任其運營商該怎么辦?
這正是Plasma試圖要解決的問題。
Plasma旨在最小化對側鏈運營商的信任。也就是說,Plasma試圖阻止資金被盜取,甚至即使運營商(或多數(shù)共識)行為不當。但是,即使側鏈運營商無法徹底竊取資金,側鏈還有另外一個問題。萬一側鏈運營商發(fā)布區(qū)塊頭,但拒絕發(fā)布底層的交易數(shù)據(jù)呢?這將阻止任何人驗證側鏈的正確性。這一概念稱為數(shù)據(jù)的不可用性。(藍狐筆記:也就是數(shù)據(jù)的發(fā)布需要依賴于可信的側鏈運營商,可能存在數(shù)據(jù)不可獲取的情況)
Plasma試圖確保用戶安全,即使運營商保留交易數(shù)據(jù)。也就是說,如果運營商拒絕發(fā)布數(shù)據(jù),所有用戶將仍然能夠取回其資金,并退出側鏈。
Plasma對其安全性和可擴展性許下很大的承諾。在2017年牛市期間,人們普遍相信Plasma將會解決以太坊的擴展性問題。但是,隨著2018年市場的清醒,區(qū)塊鏈炒作崩潰,關于Plasma的更現(xiàn)實的圖景開始具體化。當它進入現(xiàn)實世界的部署,相對于解決方案,Plasma提出了更多問題。
第一個問題是,每位用戶不得不監(jiān)控和驗證Plasma MVP鏈上的所有交易以進行監(jiān)察,并在運營商存在惡意行為時退出。但是,交易驗證非常昂貴,這種監(jiān)控要求對參與Plasma鏈來說,增加了非常大的開銷。
研究者還意識到,用戶很難退出Plasma鏈。當用戶試圖從Plasma MVP鏈中提取資金時,他們必須提交退出交易,然后等待設定的時間周期。也就是通常所說的挑戰(zhàn)期。
在挑戰(zhàn)期內的任何時候,任何用戶可以挑戰(zhàn)其他用戶的退出,其方式是提交退出無效的證明(例如,他們挖出假代幣或盜取其他人的代幣等)。因此,所有退出只能在挑戰(zhàn)期結束之后處理,在一些提議中,這需要花費一周時間。
但情況可能更糟。
請記住,即使運營商保留數(shù)據(jù)(也就是不發(fā)布數(shù)據(jù)),我們也希望用戶能夠從Plasma鏈中提取其資金。MVP以如下方式處理這個問題:如果Plasma交易數(shù)據(jù)被保留,則每個用戶都需要根據(jù)Plasma鏈最后的有效狀態(tài),分別退出其自己的資金。請注意,為了避免惡意運營商搶在誠實用戶前面,退出按照最后一次交易的時間進行先后排序。
在最壞的情況下,如果所有用戶都需要退出Plasma鏈,則鏈的整個有效狀態(tài)都必須在單個挑戰(zhàn)期內發(fā)布到以太坊主網(wǎng)。鑒于Plasma鏈可以任意增大,并且以太坊區(qū)塊鏈已經接近于其瓶頸,將整個Plasma鏈倒入以太坊主網(wǎng)幾乎是不可能的。因此,任何退出的踩踏都幾乎會導致以太坊的擁堵。這也就是眾所周知的大規(guī)模群體的退出問題。
隨著價格在2018年的崩潰,以太坊追隨者開始意識到Plasma MVP將不會是他們所期望的可擴展性的殺手锏解決方案。根本沒有任何辦法可以克服其弱點。Plasma MVP陷入死胡同。一直以來,以太坊繼續(xù)在其交易負擔下掙扎,而ETH2.0還有幾年才能實現(xiàn)。
下一代的Plasma
在2018年中,隨著價格持續(xù)暴跌,以太坊的研究社區(qū)繼續(xù)其努力以優(yōu)化Plasma,在Plasma MVP設計上迭代。新版本被稱為Plasma Cash。
按照其主設計師之一Vitalik的說法,Plasma Cash將可以實現(xiàn)任何高的tps,并解決困擾其前身的問題。有些人甚至聲稱這種新設計將實現(xiàn)每秒數(shù)十萬筆交易。
首先,讓我們回顧一下Plasma MVP的問題。
*在運營商存在不當行為時,會存在大規(guī)模群體退出的問題(藍狐筆記:就像是踩踏事件)。
*用戶不得不等待整個挑戰(zhàn)周期才能提取資金
*用戶不得不監(jiān)控Plasma鏈上的所有交易
相對于Plasma MVP,Plasma Cash擁有一個主要優(yōu)勢:通過使用不同的數(shù)據(jù)模型,Plasma Cash可以避免大規(guī)模群體退出問題。在Plasma Cash中,所有代幣都表示為NFT(藍狐筆記:不可互換代幣),這使得證明一組代幣的所有權更加容易。簡而言之,用戶有責任證明自己擁有代幣的所有權,而不是其他人。因此,用戶僅需要監(jiān)控其自己代幣,而不必監(jiān)控整個Plasma鏈。
Plasma Cash也展示了新的交互式挑戰(zhàn)系統(tǒng),它允許用戶在運營商有不當行為時輕松提取資金。使用新的Merkle Tree結構,也就是所謂的Sparse Merkle Tree,用戶可以使用包含證明來輕松驗明代幣的歷史和所有權。
在運營商存在不當行為時,用戶將只需要發(fā)布鏈上證明,證明其當前擁有代幣(由最近兩次交易和其相應包含證明組成)。然而,Plasma Cash 帶來一系列的全新問題。
首先,惡意用戶或代幣的過去所有者可以發(fā)布錯誤的提取資金嘗試。由于用戶被要求證明其自己代幣的所有權,因此由這些用戶來實際抓獲并挑戰(zhàn)其資金的欺詐性提款。
結果是,Plasma Cash跟Plasma MVP一樣,要求用戶至少每兩周保持在線一次,以在其挑戰(zhàn)期內抓獲錯誤的提款。
此外,為了證明代幣的所有權,用戶將不得不維持其代幣的整個歷史記錄和相應的包含/排除證明,這導致不斷增加的存儲要求。
到2018年底,Ether的價格跌至谷底,烏托邦式的加密樂觀主義煙消云散。Plasma Cash雖然比Plasma MVP有所改善,但它并不是以太坊所承諾的Visa規(guī)模的解決方案,并且其MapReduce“區(qū)塊鏈樹”現(xiàn)在只不過是個空想。大多數(shù)為Plasma Cash開發(fā)客戶端的公司都停止了工作,并且其實施都處于半完成的狀態(tài)。
以太坊社區(qū)陷入了困境。盡管新的Plasma構建持續(xù)出現(xiàn),并在其前身上有些許改進,但以太坊社區(qū)在這些新構建上沒能實現(xiàn)反彈。
看上去Plasma已經死了。
進入Rollup
在對layer-2的信心降至冰點時,一個名為“roll_up”的GitHub存儲庫由一位筆名為Barry Whitehat的用戶發(fā)布。這個存儲庫描述了新型的layer 2 擴展性解決方案:具有“捆綁”交易的類似于Plasma的結構,其中不是依賴于運營商的可信度,而可以使用鏈上的證明(SNARK)來驗證“捆綁交易”的正確性。
該SNARK確保運營商無法發(fā)布惡意或無效交易,并保證所有側鏈區(qū)塊是有效的。
不久之后,Vitalik發(fā)布了Barry提案的改進版本,并稱之為zk-Rollup。Zk-Rollup成為在以太坊研究論壇上瀏覽次數(shù)最高的帖子之一。Vitalik的提案引入一種解決方案,可以防止困擾Plasma的數(shù)據(jù)可用性問題:在以太坊鏈上發(fā)布側鏈交易數(shù)據(jù)。
發(fā)布交易數(shù)據(jù)作為函數(shù)參數(shù),這意味著它可以在發(fā)布時對其進行驗證,然后可將其丟棄(這樣就不會造成以太坊存儲膨脹)。
Zk-Rollup可以完全避免Plasma的退出博弈和挑戰(zhàn)期,同時無須平衡可負擔性或安全性。借助zk-Rollup,人們可以一次使用新穎的密碼學來解決所有Plasma的layer-2擴展性兩難。
然而,zk-Rollup也有其自身的一些平衡。即,有效性證明的生成在計算上是昂貴的。這些zk-SNARKS在每個區(qū)塊產生,最多可能需要10分鐘才能生成,而每次驗證(伊斯坦布爾之后)的成本高達350,000gas。作為參考,它大約占據(jù)整個區(qū)塊的3.5%(伊斯坦布爾之前為8%)。(藍狐筆記:PUSH一般花費3gas,普通交易一般消耗21,000gas,由此可見有效性證明的gas花費高)
此外,當前在zk-Rollup側鏈上部署通用智能合約還不可能。有些針對專用的零知識虛擬機提案(例如zkVM和ZEXE)正在開發(fā)中,也許它們會支持,但它們依然需要很多專用知識來與其交互。在大多數(shù)情況下,zk-Rollup限制了通用的可編程性。
到2019年中,這些新發(fā)展讓以太坊研究社區(qū)重新煥發(fā)活力。Zk-Rollup似乎解決了很多困擾layer-2敘事的難題。諸如Matter Labs和LoopRing這樣的公司開始積極開發(fā)zk-Rollup,如今兩者都有了測試網(wǎng)。通過優(yōu)化,Matter Labs相信其可以在ZK Sync網(wǎng)絡上實現(xiàn)高達2,000的tps。
此外,Starkware正在zk-Rollup上構建變體,他們稱之為StarkExchange。StarkExchange使用STARK證明側鏈交易的有效性,但卻代表了鏈外數(shù)據(jù)托管的問題(如果側鏈停止,則可以通過鏈上檢查點來確保退出)。
他們正在與DeversiFi合作實施這種設計的DEX,并在不久的將來在其主網(wǎng)上發(fā)布。
但并非所有人都將其希望寄托在zk-Rollup上。在第一個zk-Rollup規(guī)范發(fā)布一年之后,John Adler和Mikerah引入一種他們稱為Merged Consensus(合并共識)的設計。合并共識支持鏈下共識系統(tǒng),它完全在以太坊上驗證,而無須任何花哨的零知識密碼學。
在發(fā)布之后,Plasma Group發(fā)布了合并共識設計的擴展版本,并帶有現(xiàn)在眾所周知的名字:Optimistic Rollup。
盡管zk-Rollup依賴于zk-SNARKS來驗證和實現(xiàn)每個區(qū)塊最終性,但Optimistic Rollups采用了不同的方法:如果僅假設每個單一區(qū)塊是有效的,該怎么辦?
當每個人都正常運作,它會運行良好。但我們知道,運營商可能會有惡意行為。那么,Optimistic Rollups如何處理運營商的行為不當?
Optimistic Rollups的答案是使用欺詐證明。欺詐證明是運營商執(zhí)行無效操作的計算證明。如果運營商發(fā)布無效狀態(tài)轉換,則任何人都可以提交該轉換無效的證明,并還原這些交易(大約1周時間)。由于這些證明是非交互式的,任何人都可以發(fā)布:它們不需要用戶監(jiān)控其代幣以確保安全。
但是,Optimistic Rollup跟zk-Rollup不同,它需要將更多的數(shù)據(jù)(3-5倍)發(fā)布到鏈上。這些數(shù)據(jù)主要包括見證人,例如簽名數(shù)據(jù)(在zk-Rollup上并不需要,既然它用零知識來驗證)。
在最好的情況下,Optimistic Rollup將永遠無須驗證交易,除非有人提交欺詐證明。鏈上的見證驗證和發(fā)布非常昂貴,然而,開發(fā)者已經探索了聚合簽名機制,該機制允許進行廉價的大規(guī)模驗證并減少交易數(shù)據(jù)的需求。這種優(yōu)化可以提升Optimistic Rollup的理論TPS,從當前的大約450TPS提升到潛在的2000TPS左右。
Optimistic Rollup提供了跟zk-Rollup完全不同的權衡??紤]到欺詐挑戰(zhàn)不是經常的事,它們不會那么昂貴,但是它們權衡了安全性,導致其安全性較差。換言之,交易可能會被錯誤應用且在后續(xù)還可能被還原。該安全窗口可以長達一整周。結果是,用戶無法在該安全窗口內將資金退出該鏈。否則,他們可能會帶著別人的資金跑掉。但是,可以通過引入二級市場來改善這些資金提取問題。
用戶可以將其資金退出權賣給第三方流動性提供商,流動性提供商可以收取小額費用。流動性提供商會因為承擔一周時間的退出帶來流動性不足而獲得報酬。這樣可以實現(xiàn)用戶在rollup鏈的即時退出。(藍狐筆記:第三方流動性提供商專業(yè)做這個事情,比用戶操作更合適,這是一個好的方案)
盡管zk-Rollup需要程序員理解復雜的約束系統(tǒng)和高級加密學,Optimistic Rollup允許通用智能合約的部署(例如Solidity)和執(zhí)行。這意味著基于智能合約的協(xié)議,例如Uiswap可以構建于Optimistic Rollup側鏈之上。
Rollup系列的解決方案提供類似的方法來解決Plasma的數(shù)據(jù)可用性問題和退出復雜性問題,但是,所有這些都有可能大大擴展Plasma的結構。例如,IDEX已經構建并部署了自己的Optimistic Rollup,并在此結構上運行DEX。
同樣,F(xiàn)uel Labs也已經構架了一個Optimistic Rollup版本,它允許UTXO模式付款和ERC-20代幣的交換。Plasma Group(現(xiàn)在是Optimism)近期宣布將其重點轉向Optimistic Rollup,并致力于在其平臺(通過其OVM結構)提供通用智能合約能力。
任何上升的東西必須收斂
Plasma最終遠不僅是協(xié)議。在一個非理性的繁榮時間,Plasma是以太坊需要相信的故事。但從事后看來,它聲稱的無限擴展性證明是技術的狂妄。只有越過Plasma,才能深入理解layer-2可擴展性所固有的權衡取舍。
隨著ETH價格在去年的反彈,對以太坊未來的樂觀情緒也隨之而來。在歷經接近3年對安全、可擴展和穩(wěn)健的擴展性方案的尋找之后,以太坊研究社區(qū)最終走向rollup為中心。Plasma及其表親是首次嘗試,但是,一群創(chuàng)新者最終創(chuàng)造了更現(xiàn)實的layer-2設計,似乎解決了Plasma的最嚴重問題。
一些專注于Plasma的研究團隊,例如Plasma Group已經著手研究Optimistic Rollup的解決方案,但我們相信尋找最終的layer2解決方案的工作才剛剛開始。這里有很多競爭者,我們期望這一領域保持活躍,它也是讓人興奮的研究和開發(fā)領域。