關于 Optimistic Rollup,你需要知道的一切(下)

干貨 | 關于 Optimistic Rollup,你需要知道的一切(上)


Optimistic Rollup 的激勵機制

Layer 2 可擴展性方案基于這樣一個事實,即,我們試圖盡可能減少鏈上執行的事務的數量。我們使用欺詐證明來取消已發生的無效狀態轉換,由于欺詐證明是鏈上事務,我們想盡可能減少在以太坊上發布的欺詐證明的數量,在理想情況下,欺詐永遠不會發生,也就不會有欺詐證明發布,

我們通過引入誠信保證金(fidelity bond)來反激勵欺詐行為。想要成為排序者的用戶必須首先在以太坊上存入一筆保證金,如果他們的欺詐行為被證明,就會失去保證金。為了激勵用戶積極發現欺詐行為,排序者的保證金會被獎勵給驗證者,

誠信保證金和爭議期

在欺詐證明激勵機制的設計中,有兩個參數需要設計:

  • 誠信保證金金額:排序者所繳納的保證金就是驗證者所能獲得的獎勵,金額越高,對驗證者的激勵越大,對排序者作惡的激勵就越小。
  • 爭議期持續時間:可以發布欺詐證明的時間窗口。一旦過了這個時間窗口,L2 事務就會在 L1 上敲定。如果爭議期較長,就會提高安全性,更好地抵御審查攻擊。如果爭議期較短,用戶在將 L2 上的資金取出到 L1 時就能享有更好的用戶體驗,因為他無需等待很長時間就能在 L1 上使用這筆資金,
我認為,這兩個參數都沒有所謂正確的靜態值,或許 10 ETH 的保證金和 1 天的爭議期就足夠了,真正的答案是,這取決于成為驗證者的激勵(運行驗證者軟體的成本),以及發布欺詐證明的難度(L1 上的擁堵程度)。這些都是可以手動或自動調整的。例如,EIP 1559 在以太坊上引入了
BASEFEE
操作碼。這個操作碼可以用來預測鏈上擁堵程度,讓爭議期的長度也變成可編程的。
正確地實施這一懲罰機制很重要,否則就有可能在實際操作中被利用,例如,這里有一個不可行的原生實現:
  1. Alice 繳納 1 ETH 的保證金,成為了排序者
  2. Alice 發布了一個虛假狀態更新
  3. Bob 發現了,并提出爭議。如果成功,Alice 的 1 ETH 保證金就會獎勵給 Bob,虛假狀態更新也會被取消,
  4. Alice 發現該爭議,也提出爭議(挑戰她自己!)
  5. Alice 拿回了自己的 1 ETH,成功逃避了原本會因作惡遭到的懲罰。
Alice 可以通過 “搶跑事務” 來發起這一攻擊,即, 廣播一個跟 Bob 一樣的事務,但是支付更高的 gas 價格,讓自己的事務搶在 Bob 的前面執行,這意味著,Alice 可以一直以極低的成本作惡。
解決這個問題很簡單:不要將作惡者的全部保證金獎勵給提出爭議者,而是將其中 X% 銷毀,在上述例子中,如果我們將保證金的 50% 銷毀,Alice 只能通過搶跑事務拿回 0.5 ETH,這就足以嚇阻 Alice 在上述第 2 步中作惡。當然了,保證金銷毀機制也會削弱人們運行驗證者軟體的激勵(因為成功提出爭議所能獲得的獎勵會減少),因此銷毀后剩下的部分要足以激勵驗證者才行。

對 Optimistic Rollup 批評的回應

我們已經了解了 Optimistic Rollup 的設計,現在,讓我們來聽聽人們對 Optimistic Rollup 的批評,并做出回應,

較長的取款/爭議期不利于采用和可組合性

我們在上文提到,較長的爭議期有助于提高安全性,這里面似乎有一個內在權衡關系:較長的爭議期不利于 OR 采用,因為任何想要從 OR 中取出資金的用戶都需要等待很久(如 7 天)。較短的爭議期會帶來較好的用戶體驗,但是這會提高未能及時對欺詐提出爭議的風險,
我們不認為這是個問題,由于取款延遲較長,我們預期將有做市商提供快速取款服務。這是有可能的,因為驗證 L2 狀態的人能夠正確判斷取款是否存在欺詐性,從而以略低一些的價格買下這筆取款。例如:
參與方:
  • Alice:在 L2 上有 5 ETH
  • Bob:在 L1 上的 “做市商” 智能合約中有 4.95 ETH,是 L2 的驗證者
步驟:
  1. Alice 告訴 Bob 說她想要快速取款,并向他支付 0.05 ETH 的費用
  2. Alice 向 Bob 的 “做市商” 智能合約發起一筆取款事務
  3. 可能會發生兩種情況:
(1)Bob 在 L2 上驗證這筆取款是有效的,并同意 Alice 的快速取款請求。做市商合約中的 4.95 ETH 立即發送至 Alice 在 L1 的地址。等爭議期結束,Bob 就能獲得 5 ETH,獲得一筆不菲的利潤。
(2)Bob 在驗證時發現這筆取款是無效的,Bob 對這筆事務的狀態轉換提出爭議,取消該狀態轉換,并得到了試圖作惡的排序者的保證金作為獎勵,
如果 Alice 是誠實的,就能立即完成取款;如果她想要做惡,就會遭到懲罰,我們預期,如果真的存在對快速事務服務的需求,支付給做市商的服務費會逐漸降低,最終讓用戶完全感受不到這一過程。
快速事務服務帶來的最重要影響是,可以實現與 L1 合約的可組合性,無需等待整個爭議期結束。
注:該技術首次出現于《簡單的快速事務》一文。

礦工會受賄審查取款事務,破壞 OR 的安全性

《Optimistic Rollup 上幾乎零成本的攻擊場景》指出,排序者可以輕而易舉地賄賂以太坊礦工來審查爭議事務,對于 Optimistic Rollup 系統來說,這會是致命的,因為整個系統的安全性源自爭議機制,
我們不認同這個觀點,我們認為誠實一方會出與惡意一方同樣乃至更多錢的來賄賂礦工,此外,礦工每次助紂為虐時都會產生額外的成本。這會影響以太坊的價值,從而影響礦工自身的利益。
事實上,已經有學術文獻研究過這一場景,結果證明 “這種反擊的威脅會產生一種子博弈精煉納什均衡,因此攻擊從一開始就不會發生”,
感謝 Hasu 向我們推薦了這篇文章。

驗證者的兩難困境會帶來反向激勵,降低 OR 的安全性

關于驗證者的兩難困境,Ed Felten 已經在他的雄文中分析過了,并提出了解決方案,我們總結如下:
  1. 如果系統的激勵機制如預期般運行,沒人會做惡
  2. 如果沒人作惡,運行驗證者軟體就沒有意義,因為無法帶來收益
  3. 如果沒人運行驗證者軟體,排序者就會有機會做惡
  4. 如果排序者做惡,系統就不會再如預期般運行
這個問題看起來很重要,而且似乎是一個悖論!假設總的獎勵金額是固定的,驗證者人數越多,每個驗證者的預期收益越低。另外,如果驗證者人數增多,總的獎勵金額有可能減少,因為欺詐行為會減少,導致驗證者的收益更低。在接下來的分析中,Felten 提出了如何解決驗證者兩難困境的方法,
我要提出反對意見,我認為驗證者兩難困境不像批評者說的那么嚴重,實際上,驗證者靠的不是經濟激勵。假設你在 rollup 上構建了一個大型應用,或者你是持幣者。如果這個系統被破壞,你的應用就無法運作,你的代幣就會喪失價值。此外,對快速取款的需求會催生做市商服務(正如我們上文提到的那樣),這與是否存在欺詐行為無關。舉個現實的例子,比特幣就沒有通過經濟激勵的方式來鼓勵節點運營者存儲完整的區塊鏈事務史,或將本地數據提供給對等節點,但是人們還是會無私地做這些事情。
即使不為運行驗證者提供經濟激勵是激勵不兼容的(not incentive compatible),但是它可以保障系統的安全性,這對于投資該系統的實體來說是很重要的。因此,我們認為,Optimistic Layer2 系統不需要通過設計機制來解決驗證者兩難困境問題。

總結

就像文章標題說的那樣,我們分析了 2021 年對以太坊來說最重要的技術之一:Optimistic Rollup,
OR 的優點包括:它是對以太坊的擴展,集成了以太坊的安全性和可組合性,以及開發者優勢。與此同時,它還能提高以太坊的性能,而且幾乎不會增加以太坊用戶的成本或信任需求。我們探索了讓 OR 可行的激勵機制,并對常見的批評觀點提出了反駁,
我們想要強調的是,OR 的性能上限是 L1 上能夠承載的數據量,因此,我們最好能做到兩點:1)盡可能壓縮你在 L1 上發布的數據(例,通過 BLS 簽名聚合),2)擁有一個大且低成本的數據層(例,ETH 2.0)。
如需補充閱讀,我們推薦 Vitalik 的《Rollup 不完全指南》(中文譯本)和《信任的模式》(中文譯本)。我們還建議你了解一下另一個 rollup 方案 ZK Rollup,我們的朋友 StarkWare 正在構建 ZK Rollup 方案。最后,還有其它方法可以實現去中心化可擴展性,如,分片和狀態通道,它們都有各自的優缺點。
在下一篇文章中,我們將深入分析由 Optimism 構建的首個兼容 EVM 的 OR 方案的機制和代碼庫,
我們想要感謝 Hasu、Patrick McCorry、Liam Horne、Ben Jones、Kobi Gurkan 和 Dave White 對本文的寶貴反饋。

來聊聊吧

有問題?有想法?請@gakonst


原文鏈接:

https://research.paradigm.xyz/rollups

作者: Georgios Konstantopoulos

翻譯&校對:
閔敏 &

阿劍

0 条回复 A文章作者 M管理員
    暫無討論,說說你的看法吧