作者:郭立芳 / 来源:白话区块链
6 月 18 日,Facebook 高调公布了 Libra 白皮书,在全球范围内引发热议,Libra 还发布了技术白皮书,详细介绍了其新开发的智能合约语言 Move 。
Move 横空出世, 尤为吸人眼球。有人评价,这才是智能合约语言应有的模样,被很多人誉为 Libra 最大的创新。
简单地讲,比特币是对货币的编程,以太坊是对应用的编程,而 Libra 是对资产的编程,Move 就是对这门资产编程的语言。
所以,要搞懂 Move,先弄清楚什么是 Libra 。
01 什么是 Libra ?
Libra 在英文中是“天秤座”的意思,天秤座象征着平衡与公正。根据 Facebook 公布的项目白皮书,Libra 是“货币”和与其对应的金融基础设施的综合体,形象地讲,可以被看作同时具有支付宝和跨境支付的功能,未来的 Libra 可能具有国内支付、跨境支付、货币、证券和金融服务等一系列功能。
Libra 白皮书的技术方案中,采用的智能合约语言就是 Move ,是为操作数字资产而生的智能合约语言。李笑来对 Facebook 的 Move 语言的评价,却与众不同:Facebook 又犯傻,用得着专门设计个 Move 语言吗?
设计 Move 语言真的是多此一举吗?
现实世界的资产数字化过程中面临着两方面的困难:稀缺性和权限控制。
所谓稀缺性就是不允许用户随意复制资源;权限控制通俗地讲,就是你只能花自己的钱,不能花别人的钱,这在已有的区块链编程语言中得不到良好的支持,一旦出现问题,对于资产将是灾难性的,需要通过创建一个新的智能合约语言来解决此类问题。
这个智能合约语言之所以叫 Move ,表示区块链上的币从一个账户转移到另一个账户时,也就是实现资产的 Move ,即移动,而不是简单的 Copy,这样做的好处是,杜绝了像以太坊之前出现的各种合约记账的错误与漏洞。
还有人联想,可能与 Facebook 的格言 Move Fast and Break Thing 对应,达到了一语双关的效果。
02 Move 语言有什么特点?
Move 语言的主要设计目标是灵活性、安全性和可验证性。
1、安全可靠
概括地说,Move 作为一种新的编程语言,作用是为 Libra 区块链提供安全可编程的基础。提交给 Libra 区块链的每个交易,都使用以 Move 编写的交易脚本进行编码。
简单来说,Move 有三大功能:发行数字货币、Token 和数字资产; 灵活处理区块链交易; 验证器管理。
区块链项目的智能合约语言,安全性是第一位的,不然,你被黑客攻击了 ,就等于把资产拱手送人,还拿走不谢,甚至会害用户家破人亡,所以,Move 设计的核心诉求就是安全性 。
在 Move 语言中,所有的合约执行路径都能在编译的时候确定,然后可以进行非常充分地分析、验证。Move 合约在运行前,都会被一个验证器进行校验,这个验证器可以检查出各种类型错误,而且合约执行的时候,还一边运行,一边被检查,所以,Move 合约相对安全。
2、记账不容易出错
传统的编程语言,包括以太坊智能合约语言中,对于数字资产的记账方式,是有可能出错的,因为它们就好比你们单位墙上的标语,人人都可以念,导致记账是有可能重复的。比如,过去几年里的各种记账漏洞搞得大家对智能合约的未来丧失信心。
而 Move 合约采用资源类型,数字资产只能被消耗,不允许复制资源,目的是防止意外重复和丢失。就像你手上的蛋糕,吃掉一块,就少一块,这样一来,数字资产就像资源一样,不能被复制,不能凭空消失。例如某个公司搞营销活动,就可以在 Libra 中通过 Move 合约产生和验证优惠券的资产,还可以使用和转让。
3、成本更低
在 Move 语言中,一个 Token 可以被想象成一个箱子,像资源一样进行传递,且不会暴露箱子内部的任何细节,这使得运行成本更低。
03 Move 和以太坊的 Solidity 语言有哪些区别?
以太坊的 Solidity 语言,功能强大并且非常灵活,具有良好的适应性和扩展性,但它的硬伤是存在安全风险。安全问题是虚拟数字货币的基本要求,也是最大的痛点。
Move 语言,主打安全牌,针对以太坊智能合约中容易出安全漏洞的语言进行了大量的修改,额外添加了一层保护,可以避免很多 Solidity 的漏洞。
Move 语言比以太坊的智能合约语言严密,可以在编译的时候发现编程的低级错误,而不是拖到运行期才爆出漏洞,这样保证智能合约在执行中不会发生低级错误。
Move 语言会阻止代表其他用户发布数据,因此用户需要确认所发布的所有内容,使他们能够完全控制选择共享的信息。
04 小结
虽然,Move 看起来还不够细腻和成熟,但 Facebook 敢于创新,独家设计出真正适合金融应用的智能合约语言,甚至可能会成为区块链的“编程范式”的一个良好的开始。
Move 让智能合约开发者拥有了更大的选择自由,在安全的前提下,未来的区块链世界将会变得更加丰富多彩,值得每一个人拭目以待。
你认为设计 Move 语言真的是多此一举吗?为什么?