区块链:深度:Libra Move硬核解读

Facebook最近发表了联盟链项目Libra,其中的最大亮点是Move语言。下面我们从技术视角解读一下“Move:ALanguageWithProgrammableResources”这篇白皮书,供大家参考。

为了便于理解,我们拿比特币、以太坊和Libra来做一个对比。

可编程货币、可编程应用与可编程资源

其实,单从白皮书的标题,就可以大概看出三个项目在设计目标上的差异。

比特币的目标是——可编程货币,所以白皮书标题是“Bitcoin:Apeer-to-peerelectroniccashsystem”。

以太坊的目标是——可编程的去中心化应用,在货币的基础上,扩展到更通用的领域。所以白皮书标题是:“Ethereum:anextgenerationsmartcontractanddecentralizedapplicationplatform”,黄皮书标题是:“Ethereum:Asecuredecentralizedgeneralizedtransactionledger”。

加密交易所的身份检查因AI深度造假的发展而面临风险:金色财经报道,人工智能(AI)的兴起引发了人们对加密货币交易所身份验证工具日益增长的担忧。随着人工智能技术的快速发展,创建深度伪造身份证明的过程变得比以往任何时候都容易。对加密货币中人工智能风险的担忧已引发一些知名行业高管就此事发表讲话。全球主要交易所币安的首席执行官兼创始人赵长鹏于8月9日在Twitter上对不良行为者在加密货币中使用人工智能发出警报。赵长鹏写道,“从视频验证的角度来看,这非常可怕。即使他们给你发了视频,也不要给他们送钱。”[2023/8/9 21:34:50]

而Libra的设计目标恰好介于二者中间——可编程资源,或者叫可编程资产。

Facebook的技术路线比较务实,没有尝试更颠覆性的创新,而是把目光聚焦在“货币”和“通用应用”之间的“资产”,围绕解决实际问题,便于工程实现而展开。从这点来看,Libra既不是区块链3

交通部副部长:推动区块链等新技术与交通深度融合:12月31日消息,交通运输部党组成员、副部长汪洋在人民网主办的“2021 人民财经高峰论坛”上表示,深入推进创新驱动发展,要推动大数据、互联网、人工智能、区块链等新技术与交通深度融合。[2021/12/31 8:17:03]

…………}

以太坊是无法找到代码中多出来的一行balances=amount;的,每次send()被调用,Coin这个代币的总量都会凭空多出amount个。

Move字节码验证器

读到这里,大家应该能够意识到,Move中最核心的组件就是字节码验证器。让我们来看看它是如何对一段Move字节码进行验证的,验证过程通常包括以下步骤:

中共中央:推动数字经济和实体经济深度融合 打造具有国际竞争力的数字产业集群:11月3日,《中共中央关于制定国民经济和社会发展第十四个五年规划和二〇三五年远景目标的建议》提出,加快数字化发展。发展数字经济,推进数字产业化和产业数字化,推动数字经济和实体经济深度融合,打造具有国际竞争力的数字产业集群。加强数字社会、数字政府建设,提升公共服务、社会治理等数字化智能化水平。建立数据资源产权、交易流通、跨境传输和安全保护等基础制度和标准规范,推动数据资源开发利用。扩大基础公共信息数据有序开放,建设国家数据统一共享开放平台。保障国家数据安全,加强个人信息保护。提升全民数字技能,实现信息服务全覆盖。积极参与数字领域国际规则和标准制定。(财联社)[2020/11/3 11:33:28]

控制流图构建:这一步会将字节码分解成代码块,并构建它们之间的跳转关系;

声音 | 人民日报:企业应加强基础研究,推动区块链和实体经济深度融合:11月27日,人民日报刊文《靠区块链发横财?你想多了》。文章表示,即使是最具代表性的虚拟货币“比特币”,也不是哪国的法定流通货币,本质仍是一种投资风险极高的虚拟商品。任何创新都应以合法合规为前提。目前,区块链技术应用已延伸到数字金融、物联网、智能制造等领域。对企业而言,应加强基础研究,推动区块链和实体经济深度融合,利用区块链技术解决融资难、风控难等问题,让区块链成为服务实体、促进经济发展的新利器;对投资者而言,应尽快放弃“天上掉馅饼”的幻想,增强风险防范意识,谨防上当受,不给非法金融活动提供生存土壤。[2019/11/27]

栈高度检查:这一步主要是防止栈的越界访问;

类型检查:这一步会通过一个“类型栈”模型来对代码进行类型检查;

资源检查:这一步主要针对资源类型进行安全性检查,防止资源被复制或消毁,并确保-资源变量被后续代码所使用。上文举的例子中的bug,就是在这一步被发现的;

引用检查:这一步参考了Rust的类型系统,对引用进行静态和动态检查。检查是在字节码级别进行的,确保没有悬空的引用,以及引用的读写权限是安全的;

全局状态链接:这一步主要检查结构体类型和过程的签名,确保模块的私有过程不会被调用,以及调用的参数列表符合过程的声明。

Move虚拟机

Move的虚拟机,和EVM相似的地方比较多。它也是一个基于栈的虚拟机。指令集包含6类指令:数据加载和移动、栈操作/代数运算/逻辑运算、模块成员及资源操作、引用相关操作、控制流操作、区块链相关操作。

与EVM类似,每一条指令都会计算一个gas,耗光gas后代码会停机。Move中,一个交易的代码执行符合原子性,要么全部执行成功,要么一条也不执行。有趣的是,虽然Libra是一个标准的区块链账本结构,所有交易都是全局有序的,但Move语言本身支持并行执行,这意味着,也许以后Libra可以改进成类似Vite的DAG账本,提高交易并行处理的效率。

未来工作

当前Move还处于一个比较早起的开发阶段,后续工作包括:

实现Libra链的基本功能,包括账户、Libra代币、准备金管理、验证节点的加入和移除、交易手续费管理、冷钱包等;

新的语言功能,包括范型、容器、事件、合约升级等;

提高开发者体验,包括设计一个人性化的高级语言等;

形式化建模和验证工具;

支持第三方Move模块。

本文如有错误,请读者不吝指正。想获取更多的细节,可以阅读白皮书或开源代码。顺便说一句,这篇白皮书写的相当不错,概念准确,而且通俗易懂,没有使用特别形式化的描述或者复杂的数学知识,一个对区块链技术有所了解的读者完全可以一次读懂。这也从侧面反映出Facebook团队专业和务实的风格。

本文作者:刘春明,ViteLabs创始人,区块链技术专家,中国区块链应用研究中心常务理事。转载请注明出处。

请通过Vite官方渠道了解最新动态:

官网:https://www.vite.org/

ViteAPP下载:https://app.vite.net/

论坛:https://forum.vite.net

官方微博:http://m.weibo.cn/u/6572727462

Discord:https://discordapp.com/invite/CsVY76q

Telegram:https://t.me/vite_zh

Twitter:https://twitter.com/vitelabs

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

[0:31ms0-0:515ms