zkRollup和Validium的區別:各自適合什麼場景?

(岩石區,梵高)

前言:zkRollup和Validium都是以太坊Layer 2的擴展性解決方案,其交易有效性通過使用零知識證明來實現,不過一個的數據可用性保持在鏈上,一個是保持在鏈下。這個看似微小的差別導致兩者在資產的安全級別上存在較大差異。當然,這也導致了兩者在吞吐量量上也存在較大差異。Validium可能更適合於對無須信任要求沒那麼高的較爲高頻應用(如遊戲dApp),而zkRollup更適合於對安全要求較高的支付和交易所等場景。本文作者Alex Gluchowski,由“藍狐筆記”社羣的“SIEN”翻譯。

DeversiFi最近推出了新版的交易所,它是由StarkEx交易引擎提供的支持。這是一項了不起的技術成就,它提高了用戶從加密貨幣交易所期望的安全級別。這也標誌着一個歷史性的轉折點:這是有史以來第一個在產品系統中應用STARK(無須信任設置的簡潔零知識證明)。

從背景上說,StarkEx是Validium:它是一種Layer 2擴展性解決方案,其中所有的交易有效性都使用零知識證明來強制執行,而數據可用性保持在鏈下。這可以防止Validium中的資金被盜,因爲從特定用戶賬戶發生的每次價值轉移都必須得到用戶的授權。

(vitalik轉推了Eli Ben-Sasson對兩者區別的總結

Validium的機制跟zkRollup很相似,主要的區別在於在zkRollup中的數據可用性是在鏈上的,而Validium則保持在鏈下。這使得Validium可以實現更高的吞吐量,不過,這也是有代價的:

StarkEx Validium的運營者能凍結用戶的資金

“能摧毀事物的人控制事物。”——Frank Herbert,Dune

沒有zkRollup的數據可用性保證,Validium的運營者(或更確切地說,數據可用性的管理者),可以拒絕任何用戶轉移資金的權利。

這是它的工作方式:運營者對默克爾狀態進行微小更改,而不向用戶揭示其狀態更改。缺乏此信息,用戶無法爲其賬戶創建默克爾所有權證明。

如圖所示:如果運營者更改了賬戶d3,賬戶d1的所有者將丟失其證明中所需的節點m的信息,這些信息需要用來證明其賬戶所有權。

有沒有一種方法可以阻止Validium中的數據保留攻擊?從2016年提出Plasma概念以來,這個問題就被大家討論。同時,zkRollup也是在這一研究結果上誕生出來的。Non-rollup試圖無須信任地確保數據可用性,這將導致失去Validium的大部分競爭優勢。

儘管不能完全解決問題,但StarkEx通過引入許可的數據可用性委員會(DAC)來緩解這一情況。

DAC必須通過其委員會成員的法定人數簽署對狀態的每次更新,以此來確認它已經接收到數據。在StarkEx中,DAC由8位參與者組成(添加太多成員會不利於系統的活性)。它們都是在已建立的法律管轄區中衆所周知的富有聲望的組織。對他們來說,幾乎不太可能去嘗試濫用其權力。這就是其構建的邏輯。

矛盾的是,衆所周知、富有聲望、且處在強大國家的司法管轄區正是讓它們變得脆弱的原因。一種可能的麻煩情況是:運營者要求執行KYC/AML法規,並有義務凍結(可能是永遠)交易記錄超過1萬美元的賬戶的所有資金。

隨着我們研究的深入,StarkEx實施了“驗證者合約升級”機制,它允許運營者立即將新項添加到鏈上的驗證者合約。它不能使任何舊的邏輯失效,例如,你不能刪除用戶簽名檢查。相反,它允許增加其他約束(就Solidity而言,你可以將約束視爲 `require()`語句)。

這是很好的安全功能:如果在StarkEx的STARK circuit邏輯中發現任何缺失的約束,則可以快速修復它,同時不引入新的漏洞。但是,這一功能可以用作爲隱藏的審查後門。

簡言之,StarkEx運營者始終可以部署合約邏輯的擴展,這樣就存在引入黑名單的擴展可能,而無須事先警告用戶。從其文檔中還無法完全弄清楚這一點,但是看上去執行新規則似乎並不需要得到DAC(藍狐筆記:數據可用性委員會)的同意。

如果你將StarkEX看作爲完全去中心化的交易協議,那麼這沒有多大意義。想象一下如果Vitalik Buterin擁有一個開關可以即時凍結任何以太坊賬戶,那會是什麼結果?另外,如果你將StarkEX看作爲加密交易所安全功能的增強(其創建者應該這麼做),則它就有意義了。

StarkEX Validium的運營者能沒收用戶的資金

讓我們擴展思想試驗。不管出於何種假想原因(很可能是由於運營者無法掌控的原因),很多用戶的資產已被凍結。那麼,用戶在StarkEx的資金也可以被沒收嗎?

事實上,它是可能的。

跟其他很多加密項目一樣,StarkEx實現了最新的升級機制。在部署新版本之前,會提前28天通知用戶,任何人只要不喜歡都可以提取退出。

除了那些資金被凍結的人。

可以在合約上部署新邏輯,這樣在寬限期結束後,通過新邏輯可以將凍結資金轉移由指定方保管。不幸的是,受影響的用戶對此毫無辦法。

還存在一些合理擔心,升級提醒週期可能並不足以讓每位不同意改變的用戶退出(所謂的“大量退出”場景)。但,這個問題是通用的合約升級問題,並非Validium獨有的問題。

賈斯汀·德雷克描述了對Validium的加密經濟攻擊

在後續的討論中,賈斯汀·德雷克指出數據可用性可能會導致意外的攻擊向量:如果DAC(數據可用性委員會)的法定人數的簽名密鑰遭到破壞(考慮到這些密鑰保持在線狀態,這讓它們很難保證完全安全),攻擊者可以將Validium轉換爲只有他們知道的狀態,從而凍結所有資產,然後要求解鎖資產的贖金。

理論上講,合約升級機制可以減輕此類攻擊。Validium的運營者可以啓動新版本的部署,並在28天的升級通知期後,將狀態恢復爲最新的已知版本。這將是爲期一個月的資本鎖定,這當然有很大的成本,但是如果DAC拒絕談判,攻擊者將得不到一分錢。

但是,事實證明,攻擊者有一種方法可以迫使運營者在丟失所有和允許攻擊者進行雙花之間做決定。可以通過如下例子說明:

想象一下,你可以按照某種方式對ATM進行黑客攻擊,以在提款完成後擦除整個銀行數據庫。你只能從自己的賬戶中提款,但當數據庫消失時,操作的詳細信息也將丟失。銀行員工可以在一個月內完成複雜的數據庫恢復過程。但是,既然他們無法知道是誰提了款,因此通過返回上個檢查點,他們還將恢復你已提過款的餘額。(藍狐筆記:也就是攻擊者可以通過操作自己的賬戶,實現雙花攻擊)

當然,這個雙花攻擊將僅限於攻擊者的賬戶餘額。但是,構建無須信任的合約並從匿名鯨魚那裏借入必要的資產並不是難事。

在zkRollup中數據可用性保護了用戶的資產免遭扣押、審查和黑客攻擊,但其吞吐量有所降低。對於zkrollup用戶來說,rollup的狀態是可用的,只要有一個以太坊全節點在線。

它是這樣工作的:對於每個zkRollup區塊,必須將重建狀態變化所需的信息作爲以太坊交易的調用數據提交,否則zkRollup智能合約將拒絕進行狀態轉換。zkRollups上的狀態更改將導致每筆交易的gas成本較低,這個成本隨着交易數量呈線性增長。

藉助手頭的Merkle樹數據,被審查的用戶始終可以直接從主網上的zkRollup合約中索取其資金。他們需要做的是提供其賬號上的Merkle所有權證明。因此,鏈上的數據可用性可以確保沒有人(包括zkRollup運營者)能夠凍結或捕獲用戶資金。

數據可用性的鏈上存儲導致吞吐量受到限制,zkRollup在如今的以太坊上有2000tps的上限,而StarkEx Validium聲稱可以達到9000tps。這種差異可能會導致在確定選擇兩者技術在應用領域和用例方面變得關鍵。例如zkRollup非常適合於擴展去中心化的加密支付(VISA在全球平均的tps爲2000),以及那些對無須信任有嚴格要求的不可篡改的智能合約;而對於Validium來說,它可能更適合於傳統的高頻交易或具有較低信任假設的好遊戲。

結論

已經證明zkRollups和Validium(StarkEX)在工作方式上相對相似,但其主要區別在於數據是在鏈上還是鏈下可用。這對於理解它們以及在什麼場景使用它們至關重要。這種差異也意味着,儘管zkRollup是完全無須許可的去中心化擴展協議,不過Validium展示了託管性的PoA系統的更多屬性(不管是吞吐量還是風險特徵),儘管其安全性已經得到極大提高。

兩者技術發展都在減輕對信任的需求,併爲用戶提供更多對其資產的控制權,都是朝賦予個人更多能力的方向發展,爲了取得進展,我們總是需要作出權衡取捨。

不過,在加密社區中,越來越多的共識是技術已經過了“不要作惡”的階段,而進入了“無法作惡”的階段。我們可以通過自我託管、抗審查性、隱私以及消除單點故障來達成目的。這些想法構成了我們正在爲之奮鬥的系統的基本價值。

------

風險警示:藍狐筆記所有文章都不能作爲投資建議或推薦,投資有風險,投資應該考慮個人風險承受能力,建議對項目進行深入考察,慎重做好自己的投資決策。

加入藍狐筆記的知識星球:https://t.zsxq.com/iaQNnIq

歡迎加入藍狐筆記羣微信:pacinoli

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