兩輪 8000 萬美元融資,先後推出兩個版本的測試網,Scroll 距離主網的正式上線已漸行漸近。

作者: Young,Scroll 研究員,Babywhale,Foresight News

封面: Scroll

今年 2 月底,基於 ZK Rollup 的乙太坊 Layer 2 網路 Scroll 正式推出了向所有用戶開放的 Alpha 測試網,並表示將在未來幾個月內改進 zkEVM 性能。 就在推出新測試網的一周后,Scroll 宣佈以 18 億美元估值完成了 Polychain Capital、紅杉中國等參投的 5000 萬美元融資。

2022 年 6 月,筆者在 《三分鐘讀懂 Scroll:ZK Rollup 擴容新銳選手》中簡單介紹了 Scroll 的設計框架。 Scroll 旨在建立「EVM 等效」的 zkEVM 擴容網路,實現乙太坊上應用的無縫遷移。

7 月,Scroll 推出了需要申請資格的 Pre-Alpha 測試網,截至 Alpha 測試網推出時,Pre-Alpha 測試網已處理了超 1540 萬筆交易,共確認了超 180 萬個區塊,提交了 64.1 萬批有效性證明,且共有超 10 萬名用戶參與。 而 Alpha 測試網開放至今,共有約 2,145,099 個錢包地址,處理了約 10,102,684 筆使用者交易,生成了 886,701 個區塊,平均區塊時間約為 3 秒。

本文中,筆者將介紹 Scroll 通過怎樣的機制實現在去中心化的前提下繼承乙太坊主網的安全性。

Scroll 的架構

Scroll 架構主要由 3 部分組成:節點網路、證明網路和 Rollup 合約。

節點網路(Scroll Node)

Scroll 的節點網路包含三部分:定序器(Sequencer)、協調器(Coordinator)和中繼器(Relayer)。

定序器(Sequencer)

定序器(Sequencer)提供 JSON-RPC(JSON 是一種輕量級的數據交換格式,它可以表示數值、字串、序列及名 / 值對集合。 JSON-RPC 是一種無狀態的,輕量級的遠端程式調用協定)介面並接受 L2 交易。 每隔幾秒鐘,它就會從 L2 mempool 檢索一批交易,並執行它們以生成新的 L2 區塊和一個新的狀態根。 Scroll 的定序器實現是通過 fork 被廣泛使用的乙太坊節點 Go Ethereum(Geth),並以此實現更好的相容性和承經得起時間考驗的安全性。

協調器(Coordinator)

一旦生成新的區塊,協調器(Coordinator)就會收到通知,並從定序器接收該區塊的 Execution trace。 然後,協調器將 Execution trace 分配給一個從去中心化的證明網路中隨機選擇的證明者生成證明。

中繼器(Relayer)

中繼器(Relayer)用於觀察部署在乙太坊和 Scroll 上的跨鏈橋和 Rollup 合約。 它主要有兩個職責,其一是監視 Rollup 合約,跟蹤 L2 區塊的狀態,包括其數據可用性和有效性證明。 其二是監視部署乙太坊和 Scroll 上的跨鏈橋合約的存款和提取活動,並將消息從一方傳遞到另一方。

證明網路(Roller Network)

Rollers 作為網路中的證明者,負責為 ZK Rollup 生成有效性證明。 Roller 可以利用像 GPU、FPGA 和 ASIC 等硬體設備來減少驗證時間和驗證成本。

下图展示了 Roller 如何为每个区块生成有效性证明,有以下步骤:

  1. Roller 首先将从协调器那里收到的执行 Trace,转换为电路 witness。
  2. 为每个 zkEVM 电路生成证明。
  3. 使用证明聚合,将来自多个 zkEVM 电路的证明合并为一个单一的区块证明 Rollup 和跨链合约。

值得一提的是,Scroll 团队成员表示 Scroll 计划于主网上线前上线证明网络测试网。证明网络的去中心化一方面为以太坊合并后无处安放的 GPU 矿机找到了暂时的用武之地。另一方面,未来主网对证明者的激励可能可以刺激零知识证明专用芯片的开发,并最终被大量 ZK 项目广泛采用,形成继 Pow ASIC 矿机后的又一实体产业链。

Rollup 和跨链桥合约

Scroll 通过 Rollup 和跨链桥合约连接到以太坊。这样确保了 L2 交易的数据可用性,并允许用户在 L1 和 L2 之间传递资产和信息。

Rollup 合约

Rollup 合约从定序器接收 L2 状态根和区块。它将状态根存储在以太坊状态中,L2 区块数据作为以太坊 calldata。这为 Scroll 区块提供了数据可用性,并利用以太坊的安全性来确保包括 Scroll 中继器在内的索引器能够重建 L2 区块。一旦确定 L2 区块有效性的证明被 Rollup 合约验证,相应的区块就被认为在 Scroll 上已经完成。

跨链桥合约

部署在以太坊和 Scroll 上的跨链桥合约允许用户在 L1 和 L2 之间传递任意的信息。在这个消息传递协议的基础上,我们还建立了一个无需信任的跨链协议,允许用户在两个方向上桥接 ERC-20 资产。从以太坊向 Scroll 发送消息或资金,用户需要在跨链桥合约上调用 sendMessage 交易。中继器将在 L1 上对该交易进行索引,并将其发送给定序器,将其包含在 L2 区块中。从 Scroll 向以太坊发送消息,在 L2 跨链桥合约的流程和上述过程类似。

Scroll 如何实现 ZK Rollup?

Scroll 中的 L2 区块被生成后提交给以太坊,并按以下步骤顺序最终完成:

  1. 定序器的角色是生成区块。对于第 i 个区块来讲,定序器生成执行 Trace:T,并将其发送给协调器。定序器还将交易数据 D 作为 CallData 提交到以太坊的合约中,保证数据可用性以及由此生成的状态根和对 Rollup 合约的交易数据的承诺作为状态。
  2. 协调器会随机选择一个证明者为每个 Block trace 生成一个有效性证明。为了加快证明生成过程,不同区块的证明可以由不同的证明者并行生成。
  3. 在为第 i 个块生成区块证明 P 之后,证明者会将其发送回协调器。每隔 K 个区块,协调器向另一个证明者分派一个聚合任务,将 k 个区块证明聚合为一个聚合证明 A。
  4. 最后,协调器向 Rollup 合约中提交聚合证明 A,通过对先前提交给 Rollup 合约的状态根和交易数据 commitment 进行验证,最终可以确定从 i+1 到 i+k 的 L2 Block。

上图说明了 Scroll 区块将在多步骤的过程后在 L1 上最终完成。每个 L2 区块将经过以下三个阶段,直到最终确定:

预提交。预提交示 block 已由定序器提出并发送给证明者。尽管预提交的区块还不是 Scroll L2 链的规范部分,但是由于它们尚未发布在以太坊上,因此信任定序器的用户可以选择预期对它们采取的行动。

提交。提交表示该区块的交易数据已经发布在以太坊的 Rollup 合约上。这确保了区块的数据可用性,但不能证明它是以有效的方式执行的。

终结。终结状态表示该区块中的交易已经被正确执行,并且通过了以太坊上的有效性证明验证。最终完成的区块被认为是 Scroll L2 链的规范部分。 

Scroll 与其他 ZK Rollup 方案的区别

总体而言,Scroll 与已上线主网的 Polygon zkEVM、StarkNet 以及 zkSync Era 最大的区别在于 Scroll 更接近原生以太坊实现,对 EVM 开发者来说更加友好。

Scroll vs Polygon zkEVM

二者在实现方面存在一些技术差异,。一是 Scroll 直接 fork 被广泛使用的以太坊节点实现 Geth 生成 Layer2 的区块,接近原生以太坊实现。Scroll 设计了不同的子电路来证明 Geth 执行跟踪中的每个操作码,并且更容易验证电路与原生以太坊具有完全相同的行为。而 Polygon zkEVM 则使用新的汇编语言重写每个 EVM 操作码,然后为其底层状态机生成证明。

另一个区别是,Scroll 对 zkEVM 电路和聚合电路都使用 SNARK。Polygon zkEVM 是使用 STARK 作为他们的 zkEVM 电路,并使用 SNARK 作为聚合电路来聚合 STARK 证明。

Scroll vs StarkNet

与 StarkNet 相比,Scroll 以 EVM 等效性为目标,希望原生 zkEVM 解决方案以实现字节码级兼容性,对以太坊开发者更加友好;而 StarkNet 是一个对于 ZK 友好而对开发者不友好的方案。故 StarkNet 建立开发者和项目生态具有一定的学习成本,也存在不小的挑战。

Scroll vs zkSync

相較於 Scroll 對 EVM 位元組碼級的相容性,zkSync 是在語言級別相容 EVM 的,故對於智慧合約的開發者而言,需要對部署帶有 BlackBlox 的編譯器的額外信任,也需要更多的時間來進行安全審計。

Scroll 的去中心化夢想

Scroll 團隊成員張燁曾發表了一篇名為 《Scroll 背後的理念》的文章。 這篇文章詳細描述了 Scroll 的願景:除了 Scroll 專案本身,團隊更加希望為乙太坊的 zkEVM 研究做出貢獻。

文章中提到,相比於「閉門造車」,Scroll 從一開始就做出了與社區共同發展的決定,並且也一直在踐行這一點,包括由社區驅動開發 zkEVM、開展零知識證明方面的公共教育、維護 Python 版本的 zkEVM 規範等。

除了上述方面的社區化運作,Scroll 還強調了更多方面的去中心化,包括定序器、證明者等等。 總體而言,Scroll 更希望成為一個類似於乙太坊一樣,雖然有核心開發團隊,但仍然在底層技術和基礎設施層面開放的協定,並最終推動 zkEVM 生態的蓬勃發展以及主網與 zkEVM 的相容,乃至乙太坊 Layer 1 本身想要達到的最終目標。

免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 文章內的資訊僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。