自于將L2重新定義為以太坊之上的樂觀分叉選擇規(guī)則。形式化大量借鑒了CBC Casper的研究,并將2層描述為1層共識的直接延伸。這意味著在單一理
自于將L2重新定義為以太坊之上的“樂觀”分叉選擇規(guī)則。形式化大量借鑒了CBC Casper的研究,并將2層描述為1層共識的直接延伸。這意味著在單一理論和虛擬機:OVM下可能統(tǒng)一所有“2層可伸縮性”的結構(閃電,plasma等)。
介紹OVM的語言
簡述如何使用通用爭議合約端到端地編譯一類L2應用程序。
第1部分:使用統(tǒng)一語言描述L2
第1層(L1)為我們提供了一個值得信賴但價格昂貴的虛擬機(VM)。第2層提供了一個有效而昂貴的L1 VM的接口 - 而不是直接更新L1狀態(tài)的事務,我們使用離線數(shù)據(jù)來保證L1狀態(tài)會發(fā)生什么。我們稱此保證為“樂觀的決定”。
做出樂觀決策的三個步驟:
1、看看L1,找出未來可能發(fā)生的事情。
2、查看鏈外消息以及它們保證在L1中使用的內容。
3、基于這些保證,限制我們對未來L1狀態(tài)的期望。
我們將此過程描述為OVM狀態(tài)轉換函數(shù)的一部分。然而,首先讓我們通過一些關鍵概念來構建“限制對未來L1狀態(tài)的期望”的想法。
概念1:以太坊期貨圓錐體
可以想象未來的以太坊狀態(tài)是一個無限的擴展,其中包含了區(qū)塊鏈可能發(fā)生的一切。每個可以簽署的交易,都可能慧被黑客攻擊的DAO。為了避免陳詞濫調,這篇文章不會提到“量子”這個詞。
然而,即使面對無限期貨,我們仍然可以根據(jù)以太坊虛擬機的規(guī)則限制未來的可能。例如,在EVM中,如果5 ETH被燒掉到地址0x000…,我們知道所有未來的以太坊模塊仍將燒掉5 ETH。這與CBC未來的協(xié)議狀態(tài)類似(Barnab_Monnot在這里提供了很好的例子!)。
我們可以將逐漸限制可能的未來的過程可視化為一個無限大的“錐形”可能性,每當我們挖掘并最終確定一個新區(qū)塊時,這些可能性就會縮小。
注意,在L1中對可能的未來狀態(tài)的所有限制都是通過挖掘并形成關于(最終確定)新塊的共識來完成的 - 這個過程在EVM內產(chǎn)生不可逆的狀態(tài)轉換。
概念2:本地信息
L2利用本地信息(例如鏈下消息)擴展共識協(xié)議。 例如帶符號的通道更新,或plasma區(qū)塊的包含證明。
OVM使用這些本地信息做出樂觀的決策——我們稱新決策為OVM狀態(tài)轉換。但首先OVM必須定義其用于衍生未來以太坊狀態(tài)的假設。
概念3:本地假設
OVM程序定義了基于本地信息確定以太網(wǎng)狀態(tài)可能的假設。這可以表示為函數(shù)satisfies_assumptions(guess,ethereum_state,local_information)=> true / false。如果satisfies_assumptions(...)返回true,那么ethereum_state可以基于這些特定的假設和我們的local_information。
在許多L2解決方案中,這采取“爭議活躍假設”的形式。例如,通道中的參與者假設他們將對任何惡意撤回提出異議。因此,對于包含惡意、無可爭議的退出的任何以太坊狀態(tài),我們都會返回false。
概念4:樂觀決策
隨著我們本地的假設消除了未來的不可能性,我們最終可能會對未來做出“樂觀的決定”。以下是支付通道中常見的樂觀決策:
樂觀地決定余額(上面定義了我們的三步流程):
1、查看L1并確定Alice與Bob在付款通道中。
2、查看離線消息確定:a)Alice擁有最高簽名的nonce,發(fā)送她的5個ETH; b)Alice可以在爭議期后撤回其5個ETH; c)Alice可以根據(jù)她的“爭議活躍假設”回復任何無效的提款。
3、將我們對未來L1狀態(tài)的期望限制為僅向Alice發(fā)送了5個ETH的狀態(tài)。
Alice現(xiàn)在樂觀地決定,在以太坊的所有未來狀態(tài)中,她最終將擁有至少5個以太坊幣。而無需啟動鏈上交易!
概念5:樂觀的期貨圓錐體
請記住,“以太坊期貨錐”僅受最終確定塊的限制-這是一個完全可追溯的過程。在最后一節(jié)中,我們回顧了一種樂觀的方法,這種方法基于本地信息和本地對未來的假設來限制期貨,這是一個前瞻性的過程。這兩種方法可以相互“分層”,以充分利用這兩個領域:區(qū)塊鏈共識的安全性,以及本地消息傳輸?shù)乃俣?、效率和隱私。
我們可以用一個期貨錐體來可視化這個混合過程,這個錐體不僅在每個塊之后限制未來的以太坊狀態(tài),而且基于本地信息限制塊之間的未來狀態(tài)。在OVM中,決定一個新的限制被認為是“狀態(tài)轉換”。
統(tǒng)一語言
以上概念可以用作2層的共享語言和執(zhí)行模型的基礎。這包括:
· 零確認交易
· 閃電網(wǎng)絡
· 跨分片狀態(tài)方案
· plasma,通道,Truebit
在這篇文章的第2部分中,我們將擴展這種語言,并展示如何通過構造正確的方法激勵特定的OVM運行時?;谝浑A邏輯,它支持現(xiàn)有的L2設計 - 包括ETH2的設計。
但是首先,如果你和我們一樣古怪,想要看一些奇特的數(shù)學,下面是我們剛剛回顧的關鍵概念的形式化:
更進一步:構建一個OVM runtime
當意識到L2可以用統(tǒng)一的語言來描述時,我們很快發(fā)現(xiàn):我們如何使它有用?我們能創(chuàng)建一個通用的二級運行時環(huán)境,支持不同的二級設計嗎?
事實證明,對于廣泛的OVM程序,我們是可以的。訣竅是建立一個爭議合同,解釋OVM所基于的相同數(shù)學表達式。這使得用謂詞邏輯編寫的高級語言成為可能。
普遍爭議合同
為此,我們創(chuàng)建了一個仲裁合同處理用戶提交的“索賠”表達式,該表達式的值為真/假。例如,“hash X的預映像不存在。”
爭議涉及邏輯上相互矛盾的反索賠。例如,“hash x的preimage確實存在”將與第一個聲明相矛盾。這概括了二級語言的“挑戰(zhàn)”:到了最后,所有的爭議都是邏輯矛盾(不能都是真的)。
在爭議超時后,合同可以對無異議的索賠作出真實的裁決。然而,如果出現(xiàn)矛盾,就需要做出選擇。判斷真/假語句的邏輯稱為斷言演算。
斷言2.0(Predicates)
在開發(fā)廣義Plasma時,我們認識到可插拔的“斷言合約”支持自定義樂觀執(zhí)行。我們現(xiàn)在理解的是,一個可插入的斷言系統(tǒng)不是廣義plasma,而是廣義第2層。
斷言合約是邏輯上的“評估者”——決定輸入的是真是假。關鍵是他們可以根據(jù)其他斷言來決定。這就意味著一小組交互斷言可以仲裁大量的L2系統(tǒng)。
斷言實例
讓我們回顧一下一階邏輯中使用的一些示例謂詞。
NOT
該斷言執(zhí)行邏輯否定:NOT(aPredicate, anInput),聲稱aPredicate(anInput)可能會引發(fā)矛盾。
AND
該斷言是邏輯AND運算符,采用形式AND(predicate1,input1,predicate2,input2)。它可以與NOT(predicate1,input1)或NOT(predicate2,input2)相矛盾。
WITNESS_EXISTS
此斷言聲稱存在某些見證數(shù)據(jù):WITNESS_EXISTS(verifier, parameters) 。它是使用活躍度假設給L2系統(tǒng)提供的基本構建塊區(qū)塊鏈。只有當它收到一些witness,類似verifier.verify(parameters, witness) 返回true時,它才會確定為真。
UNIVERSAL_QUANTIFIER
這個斷言代表基于一些量詞(“such that”)的通用量化(“for all”) - UNIVERSAL_QUANTIFIER(aQuantifier,aPredicate)。當且僅當aQuantifier.quantify(someInput)返回true時,它與NOT(aPredicate,someInput)相矛盾。
組成狀態(tài)通道
一類被廣泛理解的2層系統(tǒng)是狀態(tài)通道,所以讓我們用斷言組成一個狀態(tài)通道。退出狀態(tài)通道就像聲稱以下內容:“對于所有狀態(tài)更新,其nonce值高于此withdrawn_update,所有通道參與者都不存在一致簽名。”
那么,對于普遍爭議合同,我們會聲稱如下:
UNIVERSAL_QUANTIFIER(HAS_HIGHER_NONCE_QUANTIFIER(withdrawn_update),NOT(WITNESS_EXISTS(VERIFY_MULTISIG,withdrawn_update.participants)))
對于Math人員,這可能看起來更熟悉如下表達式:
因此,可以通過組合四個簡單斷言來構建狀態(tài)通道。
樂觀的未來
由于斷言很少,這種通用爭議合約可以仲裁許多L2系統(tǒng):plasma風格,狀態(tài)通道,樂觀的交叉分片狀態(tài)方案,Truebit等。斷言運行時為每種方法提供了一個共享平臺 - 支持改進的開發(fā)人員工具。它有效地將L2開發(fā)人員的工作減少了一半,因為謂詞表達式在鏈上和鏈外解釋。
除了斷言runtime,ovm還有更廣泛的含義:
· 溝通-先前定制概念的數(shù)學模型。
· 互操作性-所有樂觀執(zhí)行的共享內存。
· 安全性-二級語言和斷言runtime的形式證明。(鏈三豐)
關鍵詞: OVM狀態(tài)轉換 L2 ETH2