前言

这本书专注于 Move,一种专注于安全编程本质的智能合约语言,专为数字资产而生。Move 基于以下价值观而设计:

  1. 默认安全: 不安全的语言对智能合约开发和主流数字资产是一个严重障碍。智能合约语言的首要任务是在设计之时防止尽可能多的潜在安全问题(例如重入、缺少访问控制检查、算术溢出等)。因此任何对 Move 语言的更改都应保留或增强其现有的安全保证。

  2. 自然表达: Move 必须使程序员能够编写他们能想到的任何智能合约。我们不仅关心 Move 能做什么,还关心编写 Move 的感觉如何 —— 语言应该足够丰富,以至于覆盖业务所需的功能,并且足够简洁,使选择显而易见。Move 工具链应该是生产力的提升器和思想伙伴。

  3. 直观易用: 智能合约只是一个有用应用的一部分。Move 语言设计时应该理解其使用的更广泛背景,并在设计时兼顾智能合约开发者和应用开发者。开发者应该能够轻松学习如何读取 Move 管理的状态、构建由 Move 驱动的交易以及编写新的 Move 代码。

Move 的核心技术要素包括:

  • 通过可编程 对象 (object) 提供安全、熟悉且灵活的数字资产抽象。
  • 丰富的 能力 (ability) 系统(受线性类型启发),赋予程序员极大的控制权,决定值的创建、销毁、存储、复制和转移方式。
  • 具有强封装特性的 模块 (module) 系统,支持代码重用,同时保持这种控制。
  • 用于创建对象之间层次关系的 动态字段 (dynamic field)。
  • 使得 Move 驱动的 API 能够在客户端原子组成的 可编程交易块 (PTB)。

Move 于 2018 年在 Facebook 的 Libra 项目中诞生,并于 2019 年公开亮相,首个 Move 驱动的网络于 2020 年上线。截至 2024 年 4 月,已有多个 Move 驱动的链在生产中运行,并有更多链在开发中。Move 是一种嵌入式语言,具有平台无关的核心,这意味着它在使用它的每条链中都具有略微不同的特性。

创建一种新的编程语言并围绕它建立一个社区是一个雄心勃勃的长期项目。语言必须在相关方面比替代方案好一个数量级才有机会,但即便如此,社区的质量比技术基础更重要。Move 是一种年轻的语言,但在差异化和社区方面起步良好。一小群狂热的智能合约程序员和核心贡献者,团结在 Move 的价值观之下,正在推动智能合约的边界、它们能够启用的应用以及谁可以(安全地)编写它们。如果这激励了你,请继续阅读!

—— Sam Blackshear,Move 创造者