Move 语言中文白皮书 (七)---- Move 的未来计划

7. Move 的未来计划

到目前为止,我们已经设计并实现了 Move 的以下组件:

  • 适用于区块链执行的编程模型。
  • 适合这种可编程模型的字节码语言。
  • 用于实现具有强大数据抽象和访问控制的库的模块系统。
  • 由序列化器/反序列化器、字节码验证器和字节码解释器组成的虚拟机。

尽管取得了这些进展,但前面还有很长的路要走。最后,我们讨论了一些近期的下一步措施和 Move 的长期计划。

实现核心 Libra 区块链功能。我们将使用 Move 来实现 Libra 区块链中的核心功能:账户、Libra 币、Libra 储备管理、验证节点添加和删除、收取和分配交易费用、冷钱包等。这项工作已经在进行中。

新的语言功能。我们将为 Move 语言添加参数多态性(泛型)、集合和事件。参数多态性不会破坏 Move 现有的安全性和可验证性保证。我们的设计以类似于 [25] 的方式将具有种类(即resouce或unrestricted)约束的类型参数添加到过程和结构中。

此外,我们将开发一个可信的机制,用于版本控制和更新 Move 模块、交易脚本和已发布的resouce。

改善开发人员的体验。 Move IR 是作为 Move 字节码验证器和虚拟机的测试工具而开发的。为了运行这些组件,IR 编译器必须故意生成将(例如)被字节码验证器拒绝的错误字节码。这意味着虽然 IR 适合于制作 Move 程序的原型,但它并不是特别用户友好。为了让 Move 对第三方开发更具吸引力,我们将改进 IR 并努力开发符合人体工程学的 Move 源语言。

标准的规范和验证。我们将创建一种逻辑规范语言和自动形式验证工具,以利用 Move 的验证友好设计(参见第 3.4 节)。验证工具链将检查程序特定的功能正确性属性,这些属性超出了 Move 字节码验证器(第 5.2 节)强制执行的安全保证。我们最初的重点是指定和验证实现 Libra 区块链核心功能的模块。

我们的长期目标是促进一种正确的文化,在这种文化中,用户将通过模块的正式规范来了解其功能。理想情况下,除非模块具有全面的标准规范并且已被验证符合该规范,否则没有 Move 程序员愿意与模块进行交互。然而,实现这一目标将带来一些技术和社会挑战。验证工具应该是精确和直观的。规范必须是模块化的和可重用的,但具有足够的可读性,可以作为模块行为的有用文档。

支持第三方Move模块。我们将开发第三方模块发布的路径。为 Libra 用户和第三方开发者创造良好的体验是一项重大挑战。首先,向通用应用敞开大门,不得影响系统对核心支付场景和相关金融应用的可用性。其次,我们希望避免诈骗、投机和有缺陷的软件带来的声誉风险。在鼓励高质量软件的同时构建开放系统是一个难题。诸如为高保证模块创建市场和提供验证 Move 代码的有效工具等步骤将有所帮助。