我看到OptimismPBC 上部署的Uniswap 的快速確認功能引起了很多人的興趣。但這是如何做到的?用戶可以放心使用嗎?只靠一個定序器提供確認難道不會威脅到去中心化嗎?讓我來一一為你解答。

首先,最重要的是,定序器在許多rollup 系統中都屬於享有特權的參與者(@optimismPBC、@arbitrum、@StarkWareLtd、@zksync)。它們接收來自用戶的交易,對其進行排序並批量提交到Layer1上。

定序器之所以存在,主要是因為單一協調者簡單高效。現階段,每個rollup 系統通常都會有一個定序器,由系統創建者運行。

定序器負責為交易排序。因此,在收到用戶的交易後,定序器可以立即將其挖出,並向用戶返回確認。這極大地改善了用戶體驗。

如果你擔心定序器會攫取MEV,那你是對的,不過我會單獨討論這個問題(留到最後分析)。

如果定序器忠於職守,則一切都好。但是,如果定序器作惡,欺騙用戶並試圖破壞網絡,我們該怎麼辦?讓我們來深入探討這個問題。

最重要的問題是:定序器可以偷用戶的資金嗎?不能。狀態轉換的有效性由rollup 架構保障(Optimistic Rollup 靠的是欺詐證明,zk-Rollup 靠的是有效性證明)。

定序器能審查用戶的交易嗎?沒錯,它確實可以。定序器通常是JSON RPC 節點。與Infura 類似,定序器甚至可以謊報網絡狀態或審查用戶交易。

幸運的是,審查不是什麼大問題,因為所有rollup 系統都可以通過不可審查的Layer1 來發布Layer2 交易。協議會強迫定序器在幾分鐘內將用戶交易打包到rollup 內。

如果定序器謊報狀態,用戶需要自己運行節點,根據發佈到Layer 1 的批量交易重新創建rollup 狀態。這聽起來可能很糟糕,但是與Layer1 上的情況相同。

最後,定序器可以謊稱交易已得到即時確認嗎?可以。正如上文所述,定序器可以謊報當前網絡狀態以及用戶交易是否被打包。

例如,定序器可以對用戶謊稱交易已成功,但是實際上被撤銷了。用戶只有基於Layer1 重新創建rollup 狀態之後才會發現自己被騙了。

只有被發佈在Layer1 上,rollup 交易才算是被敲定了。這就是為什麼Rollup 的Web 3.0 庫一般可以讓開發者輕鬆構建用戶界面,以告知用戶Rollup 交易的處理進度。

未來有可能採取的一種解決方案是,讓定序器在收到用戶交易時簽名確認,如果交易沒有被打包到rollup,用戶可以懲罰定序器。這可以通過瞭望塔之類的服務自動化執行。

這是真正讓我感到興奮的地方—— 定序器技術還處於發展初期。未來,我們將看到更多複雜的設計來解決我提到的很多問題。

我們也可以運行一個由定序器組成的免許可型PoS 網絡來代替單個許可型定序器。每一批交易都由網絡中隨機選取的定序器打包到Layer1 上。這會大幅增強抗逆性和抗審查性。

當然了,每個定序器都需要提供保證金,一旦作惡就會遭到罰沒。

其它項目如Arbitrum 在試驗一種公平的協議來發現正確的交易排序。 https://eprint.iacr.org/2020/269.pdf

當然,也可以不打擊MEV,而是擁抱MEV:參與方通過競標的方式來獲得在一段時間內運行定序器的權利(但是這個想法存在一些問題)。

如果你想更多了解rollup 的設計空間,可以閱讀Vitalik 的這篇文章(中文譯本)中的“誰可以提交批量交易” 一節。

總之,IMO 定序器在去中心化和速度之間取得了良好的平衡。我們目前看到的還只是定序器的最小可行產品,還有很多聰明人正在努力改進它。未來將一片光明!