科普:自下而上解釋Optimistic Rollup
編者按:本文來自以太坊愛好者(ID:ethfans)編者按:本文來自
以太坊愛好者(ID:ethfans)
以太坊愛好者(ID:ethfans)
編者按:本文來自
以太坊愛好者(ID:ethfans)
以太坊愛好者(ID:ethfans)
以太坊愛好者(ID:ethfans)
以太坊愛好者(ID:ethfans)
本文將通過簡單的例子,自下而上地闡述Optimistic Roll-Up (ORU) 的運作方式;為了讓我們能“看得見摸得著” ORU 鏈所有的意涵,本文舉的示例也會比較特殊。
二級標題
ORU 是以太坊layer 2 擴展方案中的佼佼者,既能把可擴展性的蛋糕做大,也能讓你吃到—— 至少是吃到一部分吧。大家之所以對ORU 如此興奮,是因為它及它的表親—— ZK-Rollup,克服了側鏈、 plasma、狀態通道等方案都沒有解決的layer 2 難題。
某所高中正面臨這樣的問題:每隔幾天,就會出現小情侶的爭吵事件,通常是因為其中一方劈腿。
二級標題
典型的場景如下:
Alice 看到男朋友Bob 親吻Cathy,她感到非常生氣。但Bob 可能會辯解“我發誓我沒這麼做!” 或“我倆早就分手了!”......但Alice 根本聽不進去,抓起椅子就朝Bob 扔去;這種在走廊上演的小劇場,正破壞著整個校園的環境。
二級標題
解決方法v1
校園裡的超級書呆子Jamal 提出了一種解決方案:
每天晚上,要求所有學生選擇以下信息之一,並簽署自己的密碼學簽名——
“我單身,勿擾”
“我正在與X 約會(只和X)”
學校會在佈告欄張貼“學生與其對應公鑰” 的公告,所以任何人都能用簽名驗證的方法來確實誰簽了什麼消息。
肉疼!
二級標題
為了方便同學們使用,Jamal 開發了一款app ,每個同學只要在app 上選擇四條內容之一,然後點擊“簽名& 發送” 按鈕就行,之後簽名消息會從後端向以太坊P2P 網絡廣播— — 事實上,這些消息會先發到Jamal 家裡的服務器,由他代表同學們向以太坊發送消息,這樣同學就不需要操心以太坊Gas 的設置。 Jamal 通過一些智能合約高級技巧(CREATE2 操作碼),就可以自己先替同學們支付Gas ,然後再按月度向學校報銷Gas 費用。
(1000 學生) x (1 信息/天/學生) x( $.1 gas/信息) x (30 天/月)
二級標題
= $3000 gas/月.
肉疼!
二級標題
解決方法v2
對於財政吃緊的學校來說,每個月$ 3k 的支出顯然是不合適的。
和v1 方法一樣,當每位學生點擊“簽名& 發送” 之後,信息會先發送至Jamal 家的服務器。然後Jamal 將所有的簽名疊加成一串字符串數據WiSWho (也就是“誰在和誰約會”)的信息。
WiSWho 的信息格式是[ Alice 的ID、Alice 的消息、Alice 的簽名]、 [ Bob 的ID、Bob 的消息、Bob 的簽名] ……
“我,Jamal,檢查過這筆交易附帶的WiSWho 數據,WiSWho 代表截至dd/mm/yyyy 所有學生的交往關係,我對天發誓這些數據包含了完整的事實,無任何人工添加。”
二級標題
用行話來說,Jamal 充當了layer 2 “執行者” 的角色。
左圖:簡單交易,沒有附加數據。右圖:Uniswap 函數和入參(例如min_tokens 是收到的以太坊數量)作為附加數據。
二級標題
以太坊(layer 1)的ORU 合約只會驗證Jamal 的簽名,而附加數據WiSWho 中的其他同學的簽名,只會被視為區塊的二進制“ 冷數據”(注:不會被訪問或檢索的數據)。
這就是擴展性的體現,因為這樣一來layer 1 的全節點只要驗證ORU 執行者的簽名並存儲附加數據,而不需要驗證WiSWho裡的所有簽名。
二級標題
懸念
你可能已經註意到Jamal 簽署的信息,強調了兩句話:
包含了完整的事實,且僅包含事實。
違反規則1 的情況稱為惡意審查(censorship),意思是Jamal 在惡意地過濾信息,比如Bob 和Alice 有過節,所以Bob 賄賂Jamal ,讓他審查Alice 的信息以破壞Alice 的美好生活。
違反規則2 的情況稱為詐欺(fraud),意味著Jamal 將一條或多條不存在的信息加到WiSWho 。比如,數據中包含一條Alice 的聲明—— “我正在和10 位男孩及10 位女孩約會”,而事實上Alice 根本沒有簽署這樣的信息,所以Jamal 在WiSWho 中放入的Alice 簽名是非法的(可能是Bob 賄賂Jamal ,以此造謠中傷Alice ;又或是Jamal 對Alice 不滿,想讓她尷尬......)。
因為ORU 合約不會檢查WiSWho內容的正確性,所以詐欺行為會嚴重影響使用ORU 的初衷,還會讓gas 費用上升(驗證簽名並不便宜),因為存在詐欺行為會迫使大家退而使用v1解決方法。
雖然我們相信,Jamal 是個正直的人,他承諾絕對不會搞審查或詐欺,但從安全性的角度考慮,我們最好還是將希望寄託在Jamal “無法作惡” 而非“不會作惡”。
保留對Jamal 的檢查權
胡蘿蔔:Jamal 提供服務換取可觀的報酬,每天Jamal 發送WiSWho 交易之後,智能合約就會從授權Jamal 向校方提領$ 5 的權利。但Jamal 不能立刻拿到這$ 5 ,他只能在月末提領。 Jamal 看著可提領額度每天蹭蹭往上漲,他肯定會願意繼續提供服務。
避免惡意審查的柔性手段:如果Jamal 故意無視Alice 提交的信息,當晚她可以自行向智能合約提交簽署信息(當然,要自己負擔gas 費用)。隔天一早, Alice 可以去找校長告狀,同時其他同學也會有所警惕,Jamal 的聲譽會因為作惡行為而下降。
實際上,任何願意在合約上鎖定保證金的人都可以成為執行者(差別只是他們要重新向學生宣傳自己而已)。
二級標題
避免詐欺行為的強硬手段:任何人都能發現Jamal 存在詐欺行為(如果有),並通過簡單舉證向layer 1 的ORU 合約證明存在詐欺。除此之外, Jamal 必須事先向智能合約鎖定一筆保證金(想成為執行者的人都需要鎖定,作惡就會被罰款),保證金增加Jamal 進行詐欺的成本。
智能合約會從先前發布的數據中抽取出Alice 的簽名,並通過Alice 的公鑰(在ORU 合約設置之初就存好了)執行簽名驗證。如果這個簽名的確是無效的,則:
二級標題
清零Jamal 的待提領獎勵,
將Jamal 的保證金一半獎勵給舉報者,另一半銷毀。
二級標題
更進一步剖析強硬手段
強硬手段是ORU 合約中最有趣、最具決定性的內容;事實上,它就是ORU 成為layer 2 解決方案的核心因素。
這個手段的特別之處在於:不只是校方或學生,任何人都能舉起這監督的大棒。只要WiSWho 數據上鍊,舉報者們就能拿到證明Jamal 是否作惡所需要的所有材料。人人都能向ORU 合約發出對Jamal 交易的質疑,並有機會獲得舉報成功的獎勵。
強硬手段的設計及運作,是不同ORU 實現之間最重要的區別。
“何時能得到大規模接受?”這是我們圈子裡最常見的問題。假設大家都開始採用區塊鏈技術,ORU 也能用於解決網絡擁堵—— 但現在卻出現另一個問題。
假設教育部希望Jamal 處理全國範圍內,所有學校的簽名,這時候我們的問題就會從“能處理多少學生?” 轉為“你能處理多少學校?”。
這就牽扯到ORU 擴展性的上限:區塊的Gas 上限。雖然Jamal 廣播交易的Gas 消耗量很低,但並不是不存在。如果想要在一筆交易中包含全國範圍內的所有學生數據,很有可能會超過區塊的Gas 限制,換言之, Jamal 需要將數據進行拆分,分批廣播。
二級標題
所以說,通過ORU 能獲得的擴展性是有上限的,如果你需要無限擴展,可以考慮側鍊或plasma 等......但這樣資金安全就沒那麼有保障。
二級標題
總結
layer 1 全節點層面的執行成本更低;因為存儲數據要比在其內部運行任何邏輯便宜得多。
二級標題
總結


