我們基于欺詐證明(Fraud Proof)和有效性證明(Validity Proof)之間的區(qū)別,分析和比較各種2層(L2)可擴展性解決方案。我們認為,有效性證明擁有根本性優(yōu)勢,因為它確保只有正確的狀態(tài)轉換才會被接受。
背景
最近幾個月出現了幾個旨在解決以太坊可擴展性問題的項目(諸如Truebit,Gluon Plasma,dFusion,Roll-Up和Ignis等),它們都是基于證明的?;镜南敕ê芎唵危翰挥脤⒑芏嘟灰讓懭雲^(qū)塊鏈,而是生成一個證明(proof),用這些交易的某些簡潔表示(例如哈希)來代表新的狀態(tài)。
上述提到的項目都是L2解決方案:它們定義了一個在1層(L1)上運行的協(xié)議(和邏輯),依靠它來提供各種服務,如存款/取款,確認鏈下狀態(tài)的分類賬以及作為“通用時鐘”使用。重要的是,L1不了解L2的邏輯,因此也不能執(zhí)行任何L2邏輯。
我們想提出一個比較這些解決方案的框架,特別關注欺詐證明與有效性證明之間的區(qū)別。從本質上說,欺詐證明和有效性證明都可以存在于L1中,但目前的嘗試以及我們的分析都把關注點放在了L2上。
欺詐證明提出證據,表明狀態(tài)轉換是不正確的。它們反映了對世界的樂觀看法:假設區(qū)塊代表L2數據的正確狀態(tài),直到被證明不是這樣。但實際上,一個已提交的區(qū)塊可能包含錯誤的狀態(tài)轉換。
有效性證明則提出證據,表明狀態(tài)轉換是正確的。它們反映了對世界更悲觀的看法。區(qū)塊只有在狀態(tài)是正確的時候,才會將代表L2狀態(tài)的數值包含在內。
值得強調的是:使用證明系統(tǒng)(例如SNARK,STARK)時有兩種形式:欺詐證明和有效性證明。人們不應該將我們如何證明(例如SNARK,STARK)與我們證明了什么(欺詐或有效性)混淆起來。
更深入的探討
欺詐證明
欺詐證明的主要優(yōu)勢是,并不是每次狀態(tài)轉換都需要它們。因此,它們需要較少的計算資源,并且更適合可擴展性受限的環(huán)境。這些協(xié)議的主要缺點源于它們的交互性:它們定義了一個多方之間的“對話”。對話要求當事方—— 特別是聲稱有欺詐的一方 ——在線(活躍),并允許其他方通過各種方式中斷對話。但問題的核心在于協(xié)議將沉默(即沒有對新狀態(tài)發(fā)起挑戰(zhàn))解釋為默認的同意。實際上,攻擊者可能會嘗試使用DDoS攻擊來產生沉默的假象。
讓我們描述一下概念協(xié)議:由于區(qū)塊可能包含不正確的狀態(tài)轉換,因此欺詐證明協(xié)議允許在一個時間范圍 ——爭議時間段(Dispute Time Frame,DTF)—— 對此錯誤狀態(tài)提出異議。該時間窗口以區(qū)塊為單位進行衡量。如果在DTF內未提交欺詐證據,則認為L2狀態(tài)轉換是正確的。如果欺詐證明被提交給智能合約,并且被發(fā)現是正確的(即,在DTF內提交,并且確實證明了狀態(tài)轉換是錯誤的),則至少會導致智能合約恢復到上一次正確的L2狀態(tài)。其他措施,例如對違規(guī)方進行處罰,也可能會執(zhí)行。
DTF持續(xù)時間的不同選擇會帶來這樣的結果:它越長,檢測到錯誤狀態(tài)轉換的概率就越高——這是好的一面。但是,時間越長,用戶必須等待的時間也會越長,例如,提取資金——這是不好的一面。
有效性證明
有效性證明相比之下就簡單很多了:一些離線計算的代表形式被發(fā)送到智能合約。只有在驗證為正確后,智能合約才會使用這個新的數值更新區(qū)塊鏈。有效性證明的主要優(yōu)點是區(qū)塊鏈將始終反映正確的L2狀態(tài),可以立即使用新的狀態(tài)。主要缺點是,每次狀態(tài)轉換都需要證明,而不僅僅是在這種轉換受到爭議時,這會影響可擴展性。
51%Attacks
在眾多可能的攻擊中,我們這里主要關注L1上的51%攻擊。我們最近看到這種攻擊事件不斷發(fā)生,包括對以太坊經典的攻擊。欺詐證明和有效性證明如何抵御此類攻擊呢?
欺詐證明:51%攻擊允許攻擊者將區(qū)塊鏈引入欺詐狀態(tài),例如,從被攻擊的交易所中竊取資金。
· 攻擊者使用欺詐性狀態(tài)轉換創(chuàng)建BlockFr。例如,這包括將交易所中的所有資金轉移到他們自己的賬戶。
·在BlockFr之上,他們將添加DTF區(qū)塊,最終形成一個區(qū)塊,其中包括取出BlockFr中授予的全部資金。
·然后,他們繼續(xù)將鏈擴展到DTF以外,以及當前的鏈以外。他們有能力這樣做,因為他們控制了51%的哈希值。
·發(fā)動這種攻擊的成本(目前非常低,對發(fā)動以太坊攻擊的成本低于10萬美元/小時)與獲得潛在收益(即受到攻擊的交易所控制的資金)無關。但隨著加密交易所中交易活動的增加,它們更加有可能成為這種攻擊的目標。
總而言之,根本問題在于,L2解決方案定義了自己的邏輯,允許包含欺詐狀態(tài)轉換的區(qū)塊。攻擊者偷走資金后的分類帳狀態(tài)仍然是合法的狀態(tài)!沒有發(fā)生雙重支付,但是發(fā)生了欺詐行為。
有效性證明:51%攻擊只能逆轉記錄的歷史,并可能提供新的歷史記錄;重要的是,這個替代歷史也是正確的。可在此處執(zhí)行的攻擊范圍僅限于L1可能發(fā)生的攻擊。在幣幣交易所中(特別是當所有的交易資產都駐留在同一區(qū)塊鏈上時),逆轉記錄有時可能是一個暴利的舉動:例如,賣方可能會很樂于去逆轉一個事后才發(fā)現是最低價的交易,但是在一個加密資產存放在給定區(qū)塊鏈的交易所中,沒有任何手段可以去直接盜竊加密資產。
提議的解決方案
鑒于這些明顯的缺點,為什么很多項目(例如Gluon Plasma和dFusion)還是要使用欺詐證明呢?主要原因是有效性證明過于昂貴和繁瑣。
在使用證明系統(tǒng)之前,在一個無需許可的系統(tǒng)中,“有效性證明”涉及原生重放(naTIve replay),因此極大地限制了可擴展性;本質上,當前這種重放在L1上仍在進行,大家已經了解其對可擴展性的限制。證明系統(tǒng)提供了一個非常吸引人的特點,稱為簡潔性:為了驗證狀態(tài)轉換,只需要驗證證明,這樣做所需的成本實際上與狀態(tài)轉換的大小無關(更確切地說,它是狀態(tài)轉變大小的多對數函數)。
Ignis / Roll-Up都依賴于需要可信設置的SNARK,而它比STARK需要更多的證明計算資源。 StarkWare正在努力部署StarkDEX(DEX的可擴展性解決方案),它將使用STARK來實現有效性證明。
結論
我們強調了有效性證明在51%攻擊方面的固有優(yōu)勢。憑借其快速的驗證時間,簡潔的驗證和無信任的設置,STARK將是生產級有效性證明的有力手段。