前言
这本书专注于 Move,一种专注于安全编程本质的智能合约语言,专为数字资产而生。Move 基于以下价值观而设计:
-
默认安全: 不安全的语言对智能合约开发和主流数字资产是一个严重障碍。智能合约语言的首要任务是在设计之时防止尽可能多的潜在安全问题(例如重入、缺少访问控制检查、算术溢出等)。因此任何对 Move 语言的更改都应保留或增强其现有的安全保证。
-
自然表达: Move 必须使程序员能够编写他们能想到的任何智能合约。我们不仅关心 Move 能做什么,还关心编写 Move 的感觉如何 —— 语言应该足够丰富,以确保完成任务所需的功能是可用的,同时又足够简洁,使得选择功能时显而易见。Move工具链应成为提高生产力的助手和思考的伙伴。
-
直观易用: 智能合约只是一个有用应用的一部分。Move 语言设计时应该理解其使用的更广泛背景,并在设计时兼顾智能合约开发者和应用开发者。开发者应该能够轻松学习如何读取 Move 管理的状态、构建由 Move 驱动的交易以及编写新的 Move 代码。
Move 的核心技术要素包括:
- 通过可编程 对象 (object) 提供安全、熟悉且灵活的数字资产抽象。
- 丰富的 能力 (ability) 系统(受线性类型启发),赋予程序员极大的控制权,决定值的创建、销毁、存储、复制和转移方式。
- 具有强封装特性的 模块 (module) 系统,支持代码重用,同时保持权限控制。
- 用于创建对象之间层次关系的 动态字段 (dynamic field)。
- 可编程交易块 (PTB),支持在客户端原子性地组合Move驱动的API。
Move 于 2018 年在 Facebook 的 Libra 项目中诞生,并于 2019 年公开亮相,首个 Move 驱动的网络于 2020 年上线。截至 2024 年 4 月,已有多个 Move 驱动的链在生产中运行,还有更多链在开发中。Move 是一种嵌入式语言,具有平台无关的核心,这意味着它在使用它的每条链中都具有略微不同的特性。
创建一种新的编程语言并围绕它建立一个社区是一个雄心勃勃的长期项目。它必须在某些方面比竞争对手好一个数量级才有机会,但同时,社区的质量比技术基础更重要。Move 是一种年轻的语言,但在差异化和社区方面起步良好。一个小但是充满热情的智能合约程序员和核心贡献者团队,他们共同秉承Move的价值观,正不断拓展智能合约的潜能、它们所能激活的应用范围,以及谁能够(安全地)编写这些合约的边界。如果这激发了你的热情,不妨继续深入阅读!
—— Sam Blackshear,Move 创造者