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