撰文:LFG Labs
想象一下,如果任意一个 Solidity 开发者,都可以直接在 Move 上近乎 0 门槛构建/迁移更安全高效的 DApp ,是不是会非常酷?
2019 年,搅动整个科技行业又迅速凋零的 Libra 可能不会想到,在自己折戟沉沙之后,Aptos、Sui、Linera、Movement 会相继接过衣钵,反而把 Move 系新公链推向了一个小高潮。
不过有意思的是,不同于 Aptos、Sui、Linera 都是基于 Move 语言的 L1 公链,新生代的 Movement 却把视线投向 L2——推出了首个基于 Move 语言的以太坊 L2,旨在借助 Move 底层的执行性能和安全性优势,再进一步融合 EVM 的生态优势,从而让开发者无需编写 Move 代码即可在 M2 上启动 Solidity 项目。
作为 Move 系新公链中首个从“以太坊杀手”转向“加入以太坊”的融合性方案,Movement 这种在 L2 层应用高性能架构、最终状态安全性基于以太坊主网的机制设计,也在 4 月份斩获了 3800 万美元的大额融资。
那 Movement 究竟要做什么事情,又有着怎样的魔力来吸引 Polychain Capital、Binance Labs、OKX Ventures、Hack VC 等顶级投资机构纷纷押注?
Movement:将 Move 引入 EVM 生态
由于编程语言映射了一个区块链项目的核心调性,因此在详细了解 Movement 要做的事情之前,我们有必要先温习一下 Move 语言的内生特点。
众所周知,Move 作为由 Facebook 开发设计的全新智能合约语言,除了最早应用于 Facebook 的 Libra(Diem)项目之外,目前市场上公开采用 Move 语言的 Web3 产品主要集中在 Aptos、Sui 这样的新公链生态。
从公链角度看的话,Move 语言称得上是专为数字资产而生——与 Solidity 等区块链编程语言相比,Move 在核心逻辑上就专门突出了“资产安全性”和“原生高性能”这两个关键词:
- 一方面,它以 Rust 为基础,被设计为一种面向对象的语言,用于编写具有安全资源管理的智能合约,着重强化了数字资产的地位,使得开发者能够更灵活、安全地在链上定义和管理数字资产;
- 另一方面,基于 Move 语言的源代码 Move IR 可以通过解耦交易脚本和模块,拆分交易逻辑和智能合约,这也使得 Move 系公链的 TPS 往往能达到上万甚至 10 万级别,大幅高于 EVM 系公链的性能;
简言之,基于 Move 搭建的区块链网络,天然具备优于 Solidity 系公链的安全性和高性能优势,这也为新开发人员构建链上应用程序提供了一个更好的切入点。
不过对公链来说,技术叙事往往不是竞争的主战场,能否吸引足够的用户和资金入场才是公链角逐的关键,这也是近些年来鲜少有人提及“以太坊杀手”的核心原因——相比以太坊层出不穷的应用层创新,绝大部分新公链饱受“鬼城效应”诟病,大多数网络的用户和流动性都十分惨淡。
也正因如此,Movement 选择另辟蹊径,致力于将 Move 系智能合约的安全性和高性能优势,与 EVM 系的流动性和用户群优势打通,即借助“将 Move 引入以太坊”的思路来把二者的各自优势进行结合。
譬如 Movement 旗下的 M1 和 M2 公链架构,就既天然具备高效交易处理的优势,同时又特别集成了以太坊虚拟机(EVM),允许开发者无需编写 Move 代码,即可在 M2 上启动并引入 EVM 系上成熟的 DApp。
也就是说 Movement 可自动将 Solidity 脚本转换为 Move 可以理解的操作码,使得 Move 能获得与以太坊及其它 EVM 网络的互操作性。
所以与其说 Movement 是将 Move 引入 EVM 生态,倒不如说是在将 EVM 的资金和用户纳入 Movement Labs 堆栈和泛 Move 生态,最终虹吸 EVM 生态的流量,构建起一个更安全、更高效的区块链系统。
模块化开发套件 Movement SDK
而实现“将 Move 引入以太坊”这个核心愿景的主要开发工具,就是 Movement SDK。
作为一个模块化开发套件,它主要包含 MoveVM、Fractal、用于排序器网络和 DA 服务的自定义适配器(Adaptors)这 3 个核心组件。
MoveVM:安全高效的运行环境
首先,作为 Movement SDK 的核心,MoveVM 主要是为智能合约提供一个安全高效、面向资源的运行环境。
这也使 Movement SDK 具备了执行复杂智能合约和管理数字资产的能力,进而成为 M2 网络不可或缺的组成部分(详见下文介绍),因此 MoveVM 也是 M2 网络实现超高交易吞吐量和极快响应速度的关键支撑,其主要特点包括:
- 面向资源的编程:MoveVM 将资产视为有形的、不可复制的资源,从而确保了资产管理的更高程度的安全性和完整性;
严格的安全保证:通过采用字节码验证过程,MoveVM 确保所有运行的代码都遵守严格的安全协议,最大限度地减少漏洞并增强区块链系统的整体稳健性; - 高效的资产管理:它提供了一个受控的环境,允许精确管理数字资产,确保以最高的保真度和可靠性执行交易。
- 类型安全和形式验证:MoveVM 强调类型安全,采用严格的类型系统在编译时捕获错误,结合形式化的验证方法,它确保智能合约遵守指定的属性和安全标准,降低错误和漏洞的风险;
- 隔离和封装:MoveVM 中的资产和代码封装在模块中,从而实施严格的访问控制和隔离,这种封装可防止未经授权的访问和交互,确保每个模块在其定义的参数范围内运行,从而增强系统的整体安全性和完整性;
- 字节码验证:MoveVM 采用全面的字节码验证流程在执行前仔细检查智能合约,此步骤可确保所有合约都符合平台的安全性和正确性标准,从而显著降低执行恶意或有缺陷代码的风险;
值得注意的是,Movement 的 MoveVM 采用了并行处理技术和模块化架构,前者通过算法将内存池中的交易顺序和优先级进行优化,以并行处理的方式来减少处理事务的拥堵和延迟问题。
后者则能够将原始 MoveVM 的功能扩展到外部环境(如 EVM),也就是搭建一个多功能虚拟机,旨在囊括更广泛的互操作性区块链生态系统。
就在前两天,资深 Move 工程师 @artoriatech 曾公开发推“炮轰”目前 Move 系生态所面临的破碎化问题,直言“开发人员在从一条 Move 链过渡到另一条 Move 链时遇到的阻力非常大”:
以 Sui Move 和 Aptos Move 为例,每条链都是一个孤立的生态系统,具有其独特的 VM 和工具包,差异非常大,并且随着协议发布新功能而继续增长,以至于它们几乎是不同的语言,且没有项目来尝试减少这种差异。
而 Movement 的模块化 MoveVM 作为一款多功能虚拟机,则旨在完全兼容 EVM 和其它 Move 生态——目前这已支持部署 Aptos 和 EVM 代码,并且很快也将覆盖 Sui 生态。
这意味着 Aptos、以太坊等 EVM 生态的 DApp,都可以在 10 分钟内部署——开发者无需额外学习 Move,只需将代码保留在 Solidity 等原有的语言架构中,即可实现并行化部署。
Fractal:桥接 Solidity 和 MoveVM
Fractal 的本质就是一个编译器,使 Solidity 智能合约能够在 MoveVM 环境中执行,从而成为无缝连接 Solidity 和 Move 两种语言的安全框架,使开发者能够在 MoveVM 上(M2 网络)部署他们的 Solidity 合约。
这样的好处也无需赘言,开发者既享受到了 Solidity 的灵活性,又可以利用 Move 的安全性、高性能优势来解决 Solidity 上的一些先天性痼疾。
Fractal 的编译过程则主要分为以下 5 个步骤:
- 分词和解析。该过程首先将 Solidity 脚本分解为表示脚本基本元素(例如变量、函数和控制结构)的分词,解析这些分词涉及分析 Solidity 代码的语法结构,并将元素组织到抽象语法树 (AST)中,该树描述了代码的逻辑和组织流程;
- 抽象语法树(AST)。AST 是 Solidity 代码语法结构的树表示形式,它详细介绍了操作的层次结构和不同代码段之间的相互关系;
- 中间语言(IL)。构建 AST 后,代码将转换为中间语言(IL),以弥合了高级 Solidity 代码和执行所需的低级指令之间的差距;
- MoveVM 操作码。然后将 IL 编译为 MoveVM 的操作代码(操作码),这些操作码是虚拟机理解和执行的基本指令,指示 MoveVM 应执行的特定操作;
- MoveVM 字节码。在最后阶段,操作码将转换为 MoveVM 字节码,此字节码是程序的可执行二进制表示形式,完全基于原始的Solidity脚本进行编译,并准备在 MoveVM 的安全和面向资源的环境中运行;
根据官方博客披露,目前 Fractal 仍处于开发阶段,正在进行彻底的测试和增强,以将其功能扩展到现有功能之外。
自定义适配器
自定义适配器(Custom Adaptors)则是 Movement SDK 的最后一个核心组件(本质上即为下文的 M1 架构),旨在提供与排序器网络和数据可用性(DA) 服务的无缝集成:
- 数据可用性服务 (DA)。Movement SDK 与 DA 服务集成,使 DA 服务能够直接在 L1 上运行,或作为独立的专用 DA 服务运行,确保对交易数据的可靠访问;
- 对 Danksharding 的支持。为了匹配以太坊的发展路线图,Movement SDK 预留了与独家 DA 服务提供商合作的能力,其中包括 Celestia 和 EigenDA——由它们提供有保证的数据可用性;
- 验证器节点管理和排序器集成服务。Movement SDK 的自定义适配器还负责验证器节点的战略管理和重新配置,同时通过与 Snowman 和 Proof of Stake (PoS) 等共识机制对接,SDK 加强了区块链对女巫攻击的防御能力;
- 跨 DA 层的包容性。该自定义适配器还能够支持各种 DA 层,包括 Ethereum-4844 和几个主权 DA 解决方案,如 Celestia、EigenDA 和 Avail,确保用户可以选择最符合其应用需求的 DA 层;
总的来看,Movement SDK 提供了一套包括部署和测试智能合约的运行环境、编译器、适配器在内的综合开发套件,旨在简化开发过程,使开发者尤其是 Solidity 开发者能够更容易地构建、测试和优化基于 Move 语言的 DApp。
“M1+M2”的公链架构
也正是基于 Movement SDK,目前 Movement Labs 开发了包括 M1 和 M2 在内的公链架构。
其中 M1 被设计为一个社区为先的网络,能够实现极高的交易吞吐量和即时的最终确定性,以提供去中心化排序器网络和共识层;而 M2 则是一个基于 M1 和以太坊的 ZK-Rollup L2 解决方案(同时支持 Sui Move 和 Aptos Move),通过集成 EVM 使得与以太坊兼容的 DApp 都可以在 M2 上运行。
M1:去中心化排序器网络和共识层
M1 官方定义是一个基于 Move 的“社区优先的区块链”,可通过即时最终确定性(instant finality)、模块化定制等架构来提供尽可能高的 TPS,核心目标是通过 Move 语言的高度安全和可定制性来支持复杂的交易和智能合约功能,同时确保平台的可靠性和用户的易用性。
但根据目前的公开信息,它当下正逐步过渡为一个去中心化排序器网络,即在 Movement Labs 整个生态以及任何区块链网络中扮演“共享排序器”和“共识层”组件的角色,以便实现 Move 和其他网络之间的互操作性,支持各种应用和服务。
其中值得注意的是,由于 M1 采用了改进的 Snowman 共识机制,允许节点通过模仿社会交流的方式(即节点之间的“闲聊”)来达成共识,所以天然支持更大规模的节点参与和更快的共识速度,以实现高吞吐量和高效的交易排序。
在此基础上,M1 充当了 M2 的 PoS 排序器网络和共识层,一方面通过质押的形式来保障 M2 网络运行的安全性,另一方面使 M2 拥有一个高效的共识机制——要想成为 M1 网络中的排序器需要质押 MOVE 代币,并通过 Slash 机制来防止恶意活动,增强网络的安全性和可靠性。
同时作为 M2 的 PoS 排序器网络,M1 借助数据可用性 (DA) 服务和 Prover Marketplace,确保交易的正确性、可访问性和验证性。
M2:基于 M1 和以太坊的 ZK-Rollup L2
M2 则可以视为 Movement 生态的“主网”,它引入了基于 Move 的 ZK-Rollup 架构,由 MoveVM、Fractal 和 M1 组成,负责部署具体的 DApp 应用。
之所以说“基于 Move 的 ZK-Rollup 架构”,是因为 M2 计划使用零知识证明来增强隐私和安全性(即 zk-Move 技术),这将使 M2 不仅在处理速度和成本效益上具有优势,还在隐私保护方面具有独特的优势。
而 MoveVM、Fractal 使得它既能够执行标准的 EVM 智能合约,也支持 Move 语言编写的智能合约(Aptos Move、Sui Move);同时又通过利用 Move 语言和 Sui 并行化模型,可为 EVM 交易提供高吞吐量和低延迟服务。
这就意味着 Solidity 等语言的开发人员可以轻松启动安全、高性能和高吞吐量的 MoveVM Rollup 应用,也就是直接利用 Move 语言的原生优势。
最后所有 M2 上执行的交易会通过 M1 排序器网络,将交易数据打包发回给以太坊,通过 Prover Marketplace 的 zk-provers 网络进行有效性证明的最终性,并将 ZK 证明的结果放到以太坊主网上,并将其交易详细的数据发布到 Celestia 中,从而实现两者的数据状态同步:
借助 Blobstream 技术,可将 Celestia 的模块化数据可用性层传输到以太坊,且开发者可以如同开发智能合约一样通过集成 Blobstream 来创建高吞吐量的以太坊 L2。
说白了,M1 负责共识层和交易排序,M2 负责 Solidity-Move 的转换和交易执行,Celestia/以太坊则负责最终的数据可用性和状态安全,这种模块化的架构无疑最大限度融合了 Move 的高性能、安全性和 EVM 的用户和流量优势。
小结
技术叙事之外,能否快速从 0 开始构建一个庞大且繁荣的生态,至关重要。
而目前 Movement Labs 开发的 Movement SDK、消息传递基础设施 Hyperlane 和 Movement 共享排序器(M1)等工具套件,也都是为了向开发人员提供必要的资源,从而使其能够基于 Move 轻松地构建和部署应用程序。
且据官方披露,Movement Labs 运行环境 Move Stack 也将于今夏开始测试,作为一个执行层框架,它计划与 Optimism、Polygon 和 Arbitrum 等公司的许多 Rollup 框架兼容。
那从这个角度看,接下来 M1、M2 和 Move Stack 等套件的结合,或将催生一个涵盖 Solidity 生态和 Aptos Move、Sui Move 生态在内的泛 MoveVM 宇宙,从而实现其他非基于 Move 语言的协议对 Move 功能的利用,扩大 Move 语言的影响力。
这样任何一个开发者都能在去中心化、安全的前提下,满足未来高性能 DApp 运行的需求,解决资产转移交换等过程中的扩展性和性能问题,从而达到可商用的级别。
虽然说 Movement 发展尚处于早期,但顶级 VC 机构无疑已经看到了这种 Move-Solidity 融合的潜在机会,并开始抢先布局,以寻求终结“可扩展性瓶颈”和“高性能鬼城”这两个对立极端的全新解决方案。
如果一切顺利,这一套组合拳也不排除会为新一波的场景用例、新用户以及最终泛 Move-Solidity 生态的增长奠定基础,拭目以待。