自下而上解釋 Optimistic Rollup

買賣虛擬貨幣
本文將透過簡單的例子,自下而上地闡述 Optimistic Roll-Up (ORU) 的運作方式;為了讓我們能 “看得見摸得著” ORU 鏈所有的意涵,本文舉的示例也會比較特殊。ORU 是以太坊 layer 2 擴充套件方案中的佼佼者,既能把可擴充套件性的蛋糕做大,也能讓你吃到 —— 至少是吃到一部分吧。大家之所以對 ORU 如此興奮,是因為它及它的表親—— ZK-Rollup,克服了側鏈、 plasma、狀態通道等方案都沒有解決的 layer 2 難題。ORU 要解決什麼問題?某所高中正面臨這樣的問題:每隔幾天,就會出現小情侶的爭吵事件,通常是因為其中一方劈腿。典型的場景如下:Alice 看到男朋友 Bob 親吻 Cathy,她感到非常生氣。但 Bob 可能會辯解 “我發誓我沒這麼做!” 或 “我倆早就分手了!”......但 Alice 根本聽不進去,抓起椅子就朝 Bob 扔去;這種在走廊上演的小劇場,正破壞著整個校園的環境。
解決方法 v1校園裡的超級書呆子 Jamal 提出了一種解決方案:每天晚上,要求所有學生選擇以下資訊之一,並簽署自己的密碼學簽名——“我單身,勿擾”“我單身,待配對”“我正在與 X 約會(只和 X)”
“我正在和多個人約會(還沒安定)”這裡的簽名和用於密碼學貨幣轉賬的簽名型別是一樣的。學校會在佈告欄張貼 “學生與其對應公鑰” 的公告,所以任何人都能用簽名驗證的方法來確實誰簽了什麼訊息。為了方便同學們使用,Jamal 開發了一款 app ,每個同學只要在 app 上選擇四條內容之一,然後點選 “簽名 & 傳送” 按鈕就行,之後簽名訊息會從後端向以太坊 P2P 網路廣播 —— 事實上,這些訊息會先發到 Jamal 家裡的伺服器,由他代表同學們向以太坊傳送訊息,這樣同學就不需要操心以太坊 Gas 的設定。Jamal 透過一些智慧合約高階技巧(CREATE2 操作碼),就可以自己先替同學們支付 Gas ,然後再按月度向學校報銷 Gas 費用。學校裡有 1000 位同學,每人每天都要簽署傳送 1 條訊息,平均每條訊息要花費 $ 0.1 的 Gas;所以每個月學校用在 Gas 上的費用為:(1000 學生) x (1 資訊/天/學生) x( $.1 gas/資訊) x (30 天/月)
= $3000 gas/月.肉疼!解決方法 v2對於財政吃緊的學校來說,每個月 $ 3k 的支出顯然是不合適的。這時候 ORU 就派上用場了。Jamal 告訴校方,使用 ORU 可以降低約 99% 的 gas 費用 ,以下是改進的方案:和 v1 方法一樣,當每位學生點選 “簽名 & 傳送” 之後,資訊會先傳送至 Jamal 家的伺服器。然後 Jamal 將所有的簽名疊加成一串字串資料WiSWho (也就是 “誰在和誰約會”)的資訊 。
WiSWho 的資訊格式是 [ Alice 的 ID、Alice 的訊息、Alice 的簽名 ]、 [ Bob 的 ID、Bob 的訊息、Bob 的簽名 ] ……接著,Jamal 用自己的私鑰簽署這一筆交易,並廣播之。交易資訊為:“我,Jamal,檢查過這筆交易附帶的 WiSWho 資料,WiSWho 代表截至 dd/mm/yyyy 所有學生的交往關係,我對天發誓這些資料包含了完整的事實,無任何人工新增。”用行話來說,Jamal 充當了 layer 2 “執行者” 的角色。

如果你曾經用以太坊進行交易,你可能注意過附加資料 —— 也就是以太坊瀏覽器中 “Input date” 那一欄。如下圖所示,簡單交易中大多數人會將附加資料留空;如果交易中呼叫瞭如 Uniswap 的 swap 函式,則呼叫的函式名和傳入的引數就會附加上作為交易的 Input Data ;Jamal 的交易會呼叫 layer 1 的 ORU 合約, WiSWho 就是 Jamal 廣播的交易的 Input Data 。

左圖:簡單交易,沒有附加資料。右圖:Uniswap 函式和入參(例如 min_tokens 是收到的以太坊數量 )作為附加資料。

以太坊(layer 1)的 ORU 合約只會驗證 Jamal 的簽名,而附加資料 WiSWho 中的其他同學的簽名,只會被視為區塊的二進位制“ 冷資料”(注:不會被訪問或檢索的資料)。

這就是擴充套件性的體現,因為這樣一來 layer 1 的全節點只要驗證 ORU 執行者的簽名並儲存附加資料,而不需要驗證WiSWho裡的所有簽名。

懸念

你可能已經注意到 Jamal 簽署的資訊,強調了兩句話:

1. 包含了完整的事實,且
2. 僅包含事實。

違反規則 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 提供服務換取可觀的報酬,每天 Jamal 傳送 WiSWho 交易之後,智慧合約就會從授權 Jamal 向校方提領 $ 5 的權利。但 Jamal 不能立刻拿到這 $ 5 ,他只能在月末提領。Jamal 看著可提領額度每天蹭蹭往上漲,他肯定會願意繼續提供服務。

避免惡意審查的柔性手段:如果 Jamal 故意無視 Alice 提交的資訊,當晚她可以自行向智慧合約提交簽署資訊(當然,要自己負擔 gas 費用)。隔天一早, Alice 可以去找校長告狀,同時其他同學也會有所警惕,Jamal 的聲譽會因為作惡行為而下降。

對於校方來說,很容易就能找到能替代 Jamal 角色的人選:智慧合約已經在 layer 1 上部署執行, Jamal 的替代者只要執行 AWS lambda 服務,每天持續監聽同學們發來的資訊、打包簽名、向 ORU 合約廣播單筆交易即可。

實際上,任何願意在合約上鎖定保證金的人都可以成為執行者(差別只是他們要重新向學生宣傳自己而已)。

避免詐欺行為的強硬手段:任何人都能發現 Jamal 存在詐欺行為(如果有),並透過簡單舉證向 layer 1 的 ORU 合約證明存在詐欺。除此之外, Jamal 必須事先向智慧合約鎖定一筆保證金(想成為執行者的人都需要鎖定,作惡就會被罰款),保證金增加 Jamal 進行詐欺的成本。

簡單舉證包含如下內容 —— “嘿 ORU,這個簽名是 Jamal 檢查過的資料之一,由 Alice 簽署;但我,作為舉報者,我宣佈這是個無效的簽名!”

智慧合約會從先前釋出的資料中抽取出 Alice 的簽名,並透過 Alice 的公鑰(在 ORU 合約設定之初就存好了)執行簽名驗證。如果這個簽名的確是無效的,則:

· 清零 Jamal 的待提領獎勵,
· 將 Jamal 的保證金一半獎勵給舉報者,另一半銷燬。

更進一步剖析強硬手段

強硬手段是 ORU 合約中最有趣、最具決定性的內容;事實上,它就是 ORU 成為 layer 2 解決方案的核心因素。

這個手段的特別之處在於:不只是校方或學生,任何人都能舉起這監督的大棒。只要 WiSWho 資料上鍊,舉報者們就能拿到證明 Jamal 是否作惡所需要的所有材料。人人都能向 ORU 合約發出對 Jamal 交易的質疑,並有機會獲得舉報成功的獎勵。

強硬手段的設計及運作,是不同 ORU 實現之間最重要的區別。

來自教育部的電話

“何時能得到大規模接受?”這是我們圈子裡最常見的問題。假設大家都開始採用區塊鏈技術,ORU 也能用於解決網路擁堵 —— 但現在卻出現另一個問題。

假設教育部希望 Jamal 處理全國範圍內,所有學校的簽名,這時候我們的問題就會從 “能處理多少學生?” 轉為 “你能處理多少學校?”。

你可能會說,“既然可以將整個學校的所有簽名整合為一筆交易,那同理將全國的簽名整合為一筆交易不就好了?”

這就牽扯到 ORU 擴充套件性的上限:區塊的 Gas 上限。雖然 Jamal 廣播交易的 Gas 消耗量很低,但並不是不存在。如果想要在一筆交易中包含全國範圍內的所有學生資料,很有可能會超過區塊的 Gas 限制,換言之, Jamal 需要將資料進行拆分,分批廣播。

所以說,透過 ORU 能獲得的擴充套件性是有上限的,如果你需要無限擴充套件,可以考慮側鏈或 plasma 等......但這樣資金安全就沒那麼有保障。

重溫一下 ORU 的好處

在樂觀情況下, layer 1 的全節點無需執行 ORU 操作者發起的交易的附加資料,這樣一來:

· layer 1 全節點層面的執行成本更低;因為儲存資料要比在其內部執行任何邏輯便宜得多。
· 每筆交易的 Gas 成本更低;因為與執行交易相比,儲存資料的 Gas 成本更低。

ORU 與側鏈/Plasma/狀態通道有什麼區別?

與側鏈不同:側鏈的理念發端於 2014 年,但從未產生很大的吸引力;而 ORU 鏈的安全性是直接由 Layer-1 來保護的。
假設你在 ORU 鏈上玩撲克或交易代幣,則你的資產轉移就等同在 layer 1(例如以太坊主網)上轉移一樣安全。雖然當發生欺詐情況時,可能會遇到一些不便 —— 例如你需要等待一兩個星期才能釋放資金,但是 layer 1仍然可以保證資金的安全。

另一方面,如果你在側鏈進行交易,側鏈上的礦工(PoW)或驗證者(PoS)可以竊取你的資金;因為只要他們想要,就能單方面向 layer 1 講述對他們有利的故事,而 layer 1 無從考證。

與 plasma 和狀態通道不同:ORU 的詐欺證明機制非常簡單,任何人 都能提交挑戰。舉報者有 layer 1 上可用的所有資料,能夠檢測並向 ORU 合約提交詐欺行為證明,以此獲得獎勵。如果採用 plasma 或狀態通道,使用者必須承擔其資金的部分或全部的安全性責任,並且必須時刻 “監視” layer 1 合約的情況,以防執行者或其他使用者搞欺詐。

總結

所謂的 optimistic rollup (ORU),其實就是 ①智慧合約 —— 部署在某 layer 1 (如,以太坊主網) 上,以及 ② 區塊生產者 —— 會監聽特定 p2p 網路的交易的,並將其彙總成一個大字串資料,附上驗證簽名後上鏈。

因為合約能夠直接接收使用者的交易,即使執行者掉線或是作惡,都能保證使用者能夠安全地將資金從 ORU 退出。更重要的是,合約能夠核實執行者是否存在詐欺行為,如有有,合約還能罰沒執行者的保證金。

舉報者進行詐欺檢測及舉證所需的所有資料,都能從 ORU 交易的附加資料取得;Layer 1 的全節點不會執行附加資料的內容(除非有人舉報存在詐欺),這就是 layer 1 能夠擴充套件的根本因素。對於 Layer 1 來說,這些附加資料只是個二進位制資料包,並會被永久儲存,僅此而已。

免責聲明:

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

推荐阅读

;