定序器不能竊取用戶的資金,但能審查用戶的交易。

原文標題:《科普 | Rollup 中的定序器
撰文:Kris Kaczor
翻譯及校對:閔敏 和 阿劍

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

首先,最重要的是,定序器在許多 Rollup 系統中都屬於享有特權的參與者 (Optimism、Arbitrum、StarkWare、zkSync)。它們接收來自用戶的交易,對其進行排序並批量提交到 Layer 1 上。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

其它項目如 Arbitrum 在試驗一種 公平的協議 來發現正確的交易排序。

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

如果你想更多瞭解 Rollup 的設計空間,可以閱讀 Vitalik 的 這篇文章 中的 「誰可以提交批量交易」 一節。

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