ZKSwap 探索研究

ZKSwap 探索研究

ZK Rollup和Optimistic Rollup - 以太坊重要的擴展方向

前言:多年來,擴展性一直困擾着公鏈。關於擴展性的解決方案有的在概念論證中,有的在研發中。Optimistic Rollup和Zk Rollup也是擴展性的解決方案,並引起了加密社區的濃厚興趣。那麼,到底什麼Optimistic Rollup和ZK Rollup?哪一種技術路線會贏得以太坊擴展的未來?不管道路如何曲折,之前的努力是否有用(如plasma等技術解決方案),但以太坊的擴展之路一直在前進,滿足主流場景並非遙不可及。本文作者Alex Gluchowski,由藍狐筆記社羣的“JOKO”翻譯。

簡介

Optimistic Rollup是一種很有希望在短期內擴展以太坊上通用智能合約的技術。如果構建足夠快,它能夠提供可以輕鬆遷移現有dApp和服務的方法,且能合理權衡安全和可擴展性。這將使得ETH1.0能夠滿足不斷增長的需求。

ZK Rollup是一種更加複雜的技術。它如今可以用於代幣轉移和特定應用。然而,要在通用智能合約上實現還需要更長一些時間,並且要想高效地將EVM包裹於ZKP中甚至還需要更多的研究工作。(藍狐筆記:ZKP是指零知識證明)

不過,一旦ZK Rollup完全開發出來,所有現有的以太坊dApp和服務都能夠平滑且輕鬆地遷移過去。

ZK Rollup將會解決Optimistic Rollup上的幾個基本問題:

消除讓人討厭的尾巴風險:通過複雜但可行的攻擊向量盜取資金;

將提取資金時間從1-2周減少至幾分鐘;

支持快速交易確認並以無限制的數量退出;

默認引入隱私。

Optimistic Rollup對ZK Rollup來說是個好消息。向Layer 2擴展的過渡要求對錢包、預言機、dApp、用戶習慣的重大改變。Optimistic Rollup有助於爲這一行動做好生態系統的準備,將擴展性帶入這些尚不能基於ZK Rollup構建的dApp。這給予ZK Rollup足夠的時間發展成熟,並使其實現完全無縫的採用,與此同時維持以太坊的增長勢頭。

Rollup 101

  • 什麼是Rollup?

Rollup是類似於Plasma的Layer-2擴展性解決方案:單個主鏈合約持有所有資金,並對較大的“側鏈”狀態(通常是賬戶、餘額及其狀態的Merkle樹)進行簡潔的加密承諾。側鏈狀態由用戶和運營商鏈下維持,且不依賴於Layer 1的存儲(這是最大的擴展性勝利的源頭)。

將Rollup和Plasma區分開來的是它解決了Plasms的巨大問題:數據可用性,其方式是通過Layer 1網絡爲每筆交易發佈一些數據(在以太坊,專門爲此目的使用tx CALLDATA)。

因此可以在單個Rollup區塊中將數千個交易捆綁在一起。儘管此方法的成本嚴格地呈線性增長(交易數量的O(n) ),但它在吞吐量上實際可提升100倍,因爲CALLDATA比Layer 1存儲和計算要便宜。

Rollup已經被Vitalik Buterin反覆認可爲其最喜歡的Layer 2可擴展性解決方案。根據如何確保狀態轉換的正確性,有兩種Rollup方式:ZK Rollup和Optimistic Rollup。

  • 什麼是ZK Rollup?

在ZK-Rollup中,運營商必須爲每個狀態轉換生成一個SNARK(藍狐筆記:簡潔非互動的知情證明,Succinct Non-interactive ARgument of Knowledge),並由主鏈上的Rollup合約進行驗證。此SNARK證明存在一系列由所有者正確簽名的交易,這些交易以正確的方式更新了賬戶餘額,並使得Merkle root從舊到新。因此,運營商不可能提交無效或操縱的狀態。

  • 什麼是Optimistic Rollup?

在Optimistic Rollup中,新狀態根由運營商發佈,且無需每次都由Rollup智能合約檢查。相反,每個人都希望狀態轉換是正確的。但是,如果發佈了不正確的狀態轉換,其他運營商或用戶(必須觀察在Layer 1 Rollup 合約中的情況,執行每個單筆交易)將能夠指出錯誤的交易,並還原錯誤的區塊,消減惡意運營商的押金。Optimistic Rollup的概念最初由John Adler提出的。

接下來,讓我們比較一下ZK Rollup 和Optimsitc Rollup。

靈活性:通用計算

  • Optimistic Rollup

儘管Optimistic Rollup可用於特定的應用,但是Plasma Group最重要的創新是OVM(Optimistic Vitual Machine)。OVM支持任意智能合約邏輯的實現。

幾乎任何在以太坊上能實現的同樣可以在OVM上實現,這其中包括智能合約的可組合性。它基於EVM,EWASM或任何其他虛擬機。關於OVM的好處是,如果它與EVM一起使用,它將支持用Solidity編寫代碼。因此,大部分現有的代碼庫都可以輕鬆移植到Optimistic Rollup上。

如果OVM可以直接重用現有的EVM字節碼,那會是理想的選擇,但這可能不是那麼簡單。正確的實現方式將要求更改交易數據(CALLDATA)格式,並要求複雜的Truebit/Plasma Leap風格的挑戰/響應協議的實現,以提供欺詐證明。

這可能會導致與EVM產生分歧,從而導致無法正確處理邊緣情況,這意味着仍然需要做一些工作才能適應當前的OVM合約。實施的另外一個挑戰在於,大型區塊的欺詐證明可能需要比Layer 1區塊gas limit所允許的更多的gas。那麼,這些欺詐證明必須被分解爲多個ETH交易。

  • ZK Rollup

迄今爲止,所有現有的ZK-Rollup實現聚焦於特定的操作,例如代幣轉移或原子交換。這其中有幾個主要原因。

首先,沒有一種有效的技術可用於針對不同ZKP的簡潔遞歸證明組合,這需要將不同智能合約的執行彙總到一個區塊中。我們最好的方法是在橢圓曲線的循環上使用Groth16(由Coda使用),這需要在較長的字段上進行計算,並且對於大型計算完全沒有效率。

其次,即使我們的字段較短,Groth16也會爲每個智能合約和每個新版本要求一個單獨可信的設置儀式。顯然,這絕對是不現實的。無須可信設置的唯一有效的ZKP技術是基於FRI的STARKs。但是,驗證程序僅對有限的一類問題(可以表示爲簡潔的算術電路)是簡潔的。

STARK驗證程序必須對被證明的計算語句的每個約束至少執行一次,這意味着我們無法迭代異構智能合約的集合。

隨着SNORKs的出現,一切都發生改變。SNORK是基於稍微不同的一組加密原語(著名的多項式承諾方案)的新一代ZKP。由Sean Bowe在Sonic中率先開發,在2019年夏季PLONK和Marlin緊跟其後。所有這些都有一個共同點:儘管依然需要可信設置,但現在它是通用且可更新的。完成一次之後,它可以隨時將其重用於任何數量的不同程序。

然而,在這些證明系統中使用的Kate多項式承諾方案依然需要高效的橢圓曲線循環來進行遞歸,而目前尚不可用。這就是我們爲什麼對最新的完全簡潔和透明(無可信設置)的證明系統感到興奮,例如Halo、SuperSonic、Fractal,以及Matter Labs團隊最近在折騰的讓人興奮的事情。

長話短說:在ZKP上構建通用智能合約的障礙現在已經被移除。ZK Rollup完全能夠支持與EVM相同的編程模型,包括無縫可組合性和可互操作性。儘管Solidity開發者的學習曲線不會超過一天,但最初的合約可能需要專用的DSL。最終,鑑於ZKP證明者技術的當前發展步伐,我們期望所有的現存ETH(甚至EWASM)合約都能以最小的努力有效地移植過來。

可擴展性&交易成本

  • Optimistic Rollup
    根據John Adler的說法,在EIP2028/伊斯坦布爾之後,目前的估算是每筆轉賬tx大約4k的gas。
    
    這意味着,相當於大約100tps。
    
    使用BLS聚合簽名,此數字最多可以上升到大約500tps(爲了不破壞EVM兼容性,tx參數將可能會保留很長時間)。
    
    如果EVM兼容性遭到破壞,則理論上吞吐量可能會增長到ZKP的極限。

實際吞吐量上限(代幣轉移):500tps

目前可能還不錯。

  • ZK Rollup

在Matter Testnet中每筆轉移tx的公共數據成本當前是16bytes,這將在EIP2028/伊斯坦布爾後花費272gas費用。

此外,將會有證明的攤銷費用,預計大約爲30萬gas。

即使我們假定最壞的情況,需要100萬gas證明成本,但估算的轉賬上限仍將超過2140tps。

在一些討論中,可以聽到人們爭論說ZKP會產生大量的計算開銷,由此價格昂貴。實際上,與gas成本相比較,計算成本可以忽略不計,這是真正的瓶頸,因爲抗審查的分散化。我們也期望這個因素會隨時間的推移而顯著下降。

實際吞吐量上限(代幣轉移):超過2000tps —— 類似於Visa的規模。

但是,在許多用例中,ZK Rollup將節省更多,因爲可以從公共數據中省略大塊部分(通過將它們移至ZK電路證明),而無須重構狀態轉換增量。

核心見解是:儘管Optimistic Rollup始終要求用戶發佈完全的交易輸入,而在ZK Rollup中,我們可以靈活地在如下兩者間選擇:1)交易輸入減去不影響狀態轉換的見證人 2)僅交易輸出。可以非常優雅地實現這一選擇,而無須太多複雜性。

著名的例子:

在多籤錢包,具有Argent風格賬戶抽象的錢包或去中心化交易所,用戶需要提交簽名以獲得合約的驗證。這些簽名對於狀態增量更新是非必需的,可以從公開數據中省略。

像Gnosis的Dfusion Dutch DEX這樣的合約要求大量的數據集輸入,這些輸入不會直接影響存儲,但僅用於驗證計算結果。
  • ETH 2.0之後

由於任何Rollup將位於單個分片中,因此,CALLDATA的成本(以及Rollup交易成本)不太可能發生很大的變化,除非帶寬通常變得更便宜。

元交易

兩種類型的Rollup都非常適合支持元交易和賬戶抽象。

安全

  • Optimistic Rollup

與支付通道不同,Rollup中的所有資金都由單個智能合約持有。既然Rollup是最有希望的擴展方向,我們應該看到大量的用戶遷移其中,且很多價值集中於這類合約。持有數千萬上億(甚至數十億)美元價值的資產,對於知名黑客來說,Rollup合約正變成非常有吸引力的蜜罐,如果攻擊有機會,那麼,無論多麼複雜,都有可能會嘗試進行。

Optimistic Rollup的安全模型基於兩個假設:

  1. 至少在n個節點中有1個誠實節點執行所有Optimistic Rollup交易,並且在無效狀態轉換髮布時提交欺詐證明;
  2. 底層Layer 1網絡有強大的抗審查性
  • N個節點中至少有一個誠實節點參與者

對於第一點,現實的期望是,只有Rollup的運營商纔會實際監控和執行交易。普通用戶既沒有動力也沒有技術能力來處理高負載的交易(如果他們可以,擴展來源於哪裏?)幸運的是,運營商自然地有動力去檢查彼此區塊的正確性,因爲基於無效區塊上搭建區塊會被消減資產。

有足夠的可信參與者,N個節點中有1個誠實節點運營商是合理的假設。但是,既然活躍參與者的數量有限(幾百個?),一些複雜的攻擊可能包括:針對所有運營商的基礎設施(非常困難但並非不可行),賄賂/勒索開發工程師祕密安裝惡意代碼,針對Rollup軟件的更新分發渠道等,當然,還可能是這些攻擊的組合。

這些攻擊很難實現,但應該積極防禦,但比起用同樣的方式攻擊以太坊礦工,這些攻擊要更加現實,尤其是因爲對Optimistic Rollup的成功攻擊直到完成後纔會被注意到。

  • 強大的Layer 1抗審查性

第二個假設是棘手的假設。實際上,以太坊的設計提供了經濟機制,它對抗普通審查非常有效。但是,在出現反機制時,這些機制會停止起作用。攻擊者可以創建完全自動的賄賂機制來協調礦工的51%攻擊,這會阻止誠實礦工將欺詐證明包含在其區塊中。

有趣的是,對於參與的礦工來說,此次攻擊的直接成本爲零,如果可以明確地歸因於審查,則不計入由憤怒社區反應所產生的社會成本。這部分也很棘手,因爲該機制爲攻擊的參與者提供了合理的可否認性:“鑑於攻擊者多數的可信承諾,如果我不參與,我的區塊會被拋棄,所以,我必須這麼做,不是爲了利潤,而是爲了避免損失。”

不幸的是,在PoW下,這種攻擊非常現實。沒有什麼有效的方法來懲罰參與其中的匿名礦工。在轉向PoS後,社區將可以通過消減礦工的質押權益來懲罰他們,如果達成廣泛的社會共識。

畢竟,這樣的審查攻擊可以被視爲對整個網絡的侵略,儘管也可以說,礦工只是簡單地誠實地遵循協議,且沒有義務以違背其最佳經濟利益方式行事。

但是,在DAO分叉後,至少可以說,這將是非常有爭議的討論,其結果無法預測。在Vitalik最近進行的一次社區民意測驗中,無論遇到什麼程度的攻擊,63%的投票者反對對不可變的區塊鏈進行任何人工干預來救助用戶。不用說,要清除即使一個驗證者的權益(藍狐筆記:此處是指質押資金)也非常困難,更不用說清除大多數驗證者的權益。

最近發佈了更多關於串通合謀的研究,以及針對PoS環境中欺詐證明的新攻擊,這表明在PoS中Optimistic Rollup的審查攻擊風險至少與PoW一樣高。

抵抗這種攻擊的更現實的方法是在UASF(用戶激活的軟分叉)中社區的快速動員,以迫使礦工將某些交易包括進來。從工程和社會的角度看,這種場景都是複雜的,且將肯定要求相對長的挑戰期窗口,以提供欺詐證明,至少一週,最好兩週。

同時,鑑於主要的DeFi運營商在決定這種分叉的結果時處於有利位置,且避免吵鬧的干擾事件符合其最大利益。所以,他們的最佳選擇可能只是靜靜地遵循攻擊者(這將使以太坊保持最長鏈,併產生比成功軟分叉更少的爭議)。

總的來說,欺詐證明審查的風險相對較低,但不可忽略。

由於存在1-2周的欺詐證明挑戰期,並且沒有太多資金的利害關係,Optimistic Rollup可能是沒有問題的:運營商/礦工合謀將不值得麻煩和冒風險。但是,如果rollup中的價值升高,潛伏的黑天鵝將會變得越來越讓人擔憂。

  • ZK Rollup

在ZK Rollup中,在其變爲有效之前,每個狀態轉換都通過Rollup智能合約進行驗證。嚴格來說,運營商無法盜取資金或破壞Rollup狀態。ZK Rollup依賴於Layer 1的抗審查性,只是爲了其活性,而不是爲了安全性。無須任何人來監控ZK Rollup,在區塊驗證後,用戶資金總是保證最終能被收回,即使運營商拒絕合作。

因此,ZK Rollup更充分地體現了加密世界的基本理念:通過密碼學和博弈理論激勵機制來取代可信方,以實現彈性。但是,爲了完整起見,我必須提到ZK Rollup特有的一些潛在風險。

可信設置

如果在ZK Rollup中使用的ZKP需要通用的可信設置,則我們將得出“N分之一”誠實參與者的假設。根據參與者的數量和質量,這可能是可接受的風險,也可能是不可接受的風險。但安全是安全的,這就是爲什麼我對高效無須信任的SNARKs最新進展感到非常興奮的原因,尤其是Matter Labs正在進行構建上。

密碼學

與Groth16相比,最新一代的SNARKs正在使用的是更多經過實踐檢驗的加密原語。Matter Lab的工作基於FRI,因此甚至可以說是具有後量子的安全性。但是,要完全冷靜下來,應該應用兩種緩解策略:

  • 與RSA挑戰類似,必須以比實際產品版本更低安全參數來部署大量獎金。如果發現了實際攻擊,研究者會在產品代碼被破壞數年前克服挑戰。

  • 所有狀態轉換必須僅由ZKR的運營商發送,而ZKR的運營商實質上充當雙重驗證的保護層。

延遲(達成可驗證最終性所需的時間)

  • Optimistic Rollup

由於上面安全性部分提到的問題,僅在1-2周欺詐證明的挑戰窗口期內Optimistic Rollup才能是安全的。在這段時間過去之前,任何交易都不能認爲是最終的,內部Rollup tx和退出都不是最終的。

不幸的是,對於最終用戶來說,檢查交易是否具有最終性,沒有比通過整個上一次挑戰期執行所有交易更快的方法了。需要特別注意的是,用戶無法單純依賴博弈理論來保證區塊的最終性,因爲單個運營商節點中的漏洞或(黑客入侵)仍可能導致還原。

最終性的時間(PoW下):2周

最終性的時間(PoS下):1周

  • ZK Rollup

當前ZKP計算上很密集。目前,對於1000tx的區塊,我們可以在普通服務器硬件上有20分鐘證明生成時間。正在進行的GPU證明程序實現(Matter Labs和Coda實施)有望將tx速度提高至少10倍。在不遠的將來,專用硬件可能會擁有更高的計算能力。最終,我們期望看到在一分鐘內完成區塊的最終性。

最終性時間(現在):20分鐘

最終性時間(未來):1分鐘內

Rollup交易內部的快速確認

在這兩種類型的Rollup中,通過存入一定的安全保證金(如果交易沒有包含進承諾的區塊,保證金會被消減),運營商都可以向用戶簽發即時交易確認。這爲最終性提供了經濟保證。

這種方法有侷限。它對於可互換代幣的轉移運轉良好,但不適合於NFT和通用合約請求。該NFT可能沒有市場價值,或者當這些資產的所有者不想在任何情況下立即“出售”它。通用合約請求不適用是因爲如果鏈上的某些之前交易被還原,不容易準確量化貨幣價值。簡單的例子:爲接受穩定幣預言機價格廣播的最終價格,運營商應該質押多少資金合適?

快速提取資金

快速退出類似於快速內部Rollup確認。運營商可以與流動性提供商合作,以將可互換代幣即時提取給用戶,而無須等待退出交易在Rollup中成爲具有最終性的交易。這要求大量的抵押品,這跟最終性達成的時間成正比。假設對Optimistic Rollup來說,不久將來的現實的最終性時間爲1周,而ZK Rollup爲5分鐘,那麼,Optimistic Rollup將需要2000倍於ZK Rollup的抵押品才能支持每週相同的提款量。

隱私

  • Optimistic Rollup

Optimistic Rollup可以支持Layer 2以太坊 (混合器等)上的任何可用的隱私解決方案。既然Optimistic Rollup本身也是Layer 2,在其上實現的任何隱私解決方案將作爲Layer 3。這可能導致隱私服務更加分散,並導致較小的匿名集,這使得隱私的實用性非常低(我們甚至可以在zcash上觀察到,默認情況下交易不會隱藏)

  • ZK Rollup

爲了獲得真正的隱私,系統必須默認支持它。從技術的角度看,ZK Rollup可以在某種情況下默認輕鬆支持在協議層面代幣轉移的隱私交易,也可以區分公共和私人智能合約。

同時,構建完全匿名的zcash風格交易(即不僅隱藏金額,也隱藏交易的參與者),它將要求改變ZK Rollup的存儲模型,從基於賬戶模型變爲基於UTXO模型,這會產生很多問題,且不太可能發生。

結論

Optimistic Rollup目前處於PoC階段。(藍狐筆記:PoC是指概念證明階段。從長遠和落地角度,藍狐筆記更看好ZK Rollup)我們希望很快會實現產品級實施。如果證明它移植現有代碼相對容易,那麼,項目將逐漸開始採用它並構建新的基礎架構:Layer 2支持將在錢包中出現,預言機將開始廣播到Optimistic Rollup等。

ZK Rollup在特定應用方面已經更加成熟(例如ERC20代幣的轉移),但會逐步向完全通用的智能合約方向發展。最終,移植任何基於EVM和WASM的智能合約到ZK Rollup也是可能的,在當前的技術發展速度下,這可能耗費數年時間即可完成。

對於這兩種類型的Rollup,類似的基礎設施改變會發生在錢包、預言機以及其他智能合約組件中。這要求大量的工作,隨着更多項目對Layer 2 擴展技術感興趣,這些工作會加速。既然Optimistic Rollup承諾比ZK Rollup更早實現通用化的基於EVM的智能合約,它將極大地推動社區採用Layer 2的動機。

對於用戶和dApp,從一個Rollup跳到另外一個Rollup,將會比從ETH最初遷移到Layer 2更容易。橋接會讓這一過程更加順暢。由於這種切換的簡易,這種解決方案在UX方面會取得顯著優勢,從長遠看,很可能會成爲唯一的贏家。

不管結果如何,這都會是非常重要且讓人興奮的發展。無論如何,最終的贏家都是以太坊社區。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章