在所有 Libra 公布的技术文档中,最吸引人的要数其采用的一种被称为 “ Move ” 的全新编程语言,这一编程语言据开发团队称“可以在Libra区块链中实现自定义交易逻辑和‘智能合约’”。在看过了 Move 编程语言的相关文档后,我们认为Move语言是一种专为数字资产设计的编程语言,根据技术文档,这种语言有三种用处,即发行数字货币等数字资产、处理区块链上交易及管理验证节点。
Move 是一种静态类型语言,而从本质上来说这其实是一种编程逻辑上的约束,因此要比以太坊的智能合约语言要严格得多。类似 Rust、Golang、Typescript、Haskell 或 Scala 等现代编程语言均为静态类型语言,因为许多简单的程序 Bug 可以在编译的过程中就被检测出而不是等到执行程序的时候才被发现。
Move 语言中的另一个特色是技术文档中提到的 “First-class Resources” ,即“一等资源”,这里的“资源”和以太坊编程语言中的 “Value”(值)是对应的概念,不同点在于“值”可以被随意复制,而“资源”则只能被消耗。打个比方说,“资源”就像瓶中的水会随着我们的饮用而变少,而“值”就像笔记本上的句子,我们可以在脑中记住它们但它们却永远不会消失。Move语言编写的智能合约将“资源类型”与传统的线性逻辑结合起来,因此 Libra 区块链上的数字资产的“资源类型”也符合线性逻辑的一些特征,如数字资产无法被复制也无法凭空消失。
Move 语言的“一等资源”概念还包含一个基本原则,即“数字资产为一等公民”,因此我们说 Move 语言是一种专为数字资产设计的编程语言。实际上数字资产在智能合约中可以作为变量被存储和分配,也可以作为函数和流程的参数或返回值,而Move 语言的静态类型使得编译器在编译期间和智能合约部署之前就能检查出“资源”的大多数错误,因此增强了智能合约的安全性。
目前,Move 语言仅能在内置的智能合约使用,如发行Libra、处理与Libra相关的交易及管理验证节点等,“预计将在一段时间后向开发者开放创建合约的权限”。
有疑问加站长微信联系(非本文作者)