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系統的更多屬性(不管是吞吐量還是風險特徵),儘管其安全性已經得到極大提高。

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

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

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;