Facebook最近发表了联盟链项目Libra,其中的最大亮点是Move语言。下面我们从技术视角解读一下“Move:ALanguageWithProgrammableResources”这篇白皮书,供大家参考。
为了便于理解,我们拿比特币、以太坊和Libra来做一个对比。
可编程货币、可编程应用与可编程资源
其实,单从白皮书的标题,就可以大概看出三个项目在设计目标上的差异。
比特币的目标是——可编程货币,所以白皮书标题是“Bitcoin:Apeer-to-peerelectroniccashsystem”。
以太坊的目标是——可编程的去中心化应用,在货币的基础上,扩展到更通用的领域。所以白皮书标题是:“Ethereum:anextgenerationsmartcontractanddecentralizedapplicationplatform”,黄皮书标题是:“Ethereum:Asecuredecentralizedgeneralizedtransactionledger”。
马云:阿里巴巴将和安徽在区块链等行业加强深度合作:安徽省委书记李锦斌与马云公益基金会创始人马云和阿里巴巴集团、蚂蚁金服集团有关负责人举行工作会谈。马云对安徽近年来经济社会发展取得的巨大成绩表示钦佩。他表示,阿里巴巴集团将和安徽建立定期协商联席机制,在智能制造、工业互联网、区块链、电子商务、跨境贸易、智慧旅游等行业加强深度合作,更好助力数字江淮建设,为安徽高质量发展作出更大贡献。(安徽日报)[2020/6/7]
而Libra的设计目标恰好介于二者中间——可编程资源,或者叫可编程资产。
Facebook的技术路线比较务实,没有尝试更颠覆性的创新,而是把目光聚焦在“货币”和“通用应用”之间的“资产”,围绕解决实际问题,便于工程实现而展开。从这点来看,Libra既不是区块链3
CoinBene满币巴西分站与BlockDyns达成深度战略合作 ?:CoinBene满币宣布与巴西著名机构BlockDyns达成深度战略合作,双方将围绕虚拟货币合约交易、全球市场宣发、资源对接、渠道商招募以及全方面业务拓展展开全方位合作,帮助用户有更好的合约体验。
据介绍,BlockDyns是一家巴西当地专业的区块链社群,拥有20多万社群用户,致力于帮助社区人员有更好的交易体验,共建线上共识社区。
CoinBene满币数字资产交易平台在全球180多个国家和地区拥有500多万用户,日活跃用户数超10万,日均交易额30亿美元。2019年初,平台战略布局合约衍生品市场,主要为投资者提供以BTC、USDT进行结算且安全、稳定的永续合约服务,CoinBene满币将继续深化与社区、媒体合作。
?[2020/5/22]
…………}
声音 | 丰都县委:在区块链发展大格局中找准丰都位置 深度应用到经济运行等领域:近日,丰都县“不忘初心、牢记使命”主题教育形势政策教育报告会暨县委理论学习中心组(扩大)学习会在丰都县党政大楼召开。会议要求,各级各部门要坚持站位,深入学习领会习总书记关于区块链的重要讲话精神,切实把思想统一到党中央的决策部署上来,结合辅导报告,主动加强对区块链技术的学习研究,熟悉基础知识,掌握相关政策,找准切入点、选好攻坚点,力争在区块链发展大格局中找准丰都位置。相关部门要结合区块链具有的渗透性、带动性、融合性等特点,抢占先机、积极作为,把区块链技术深度应用到经济运行、社会治理、市场监管、公共服务、政务服务等领域,推动丰都高质量发展。[2019/12/9]
以太坊是无法找到代码中多出来的一行balances=amount;的,每次send()被调用,Coin这个代币的总量都会凭空多出amount个。
声音 | 塞力斯:将与蚂蚁区块链在区块链等方面展开深度合作:据财联社5月26日消息,塞力斯发布公告称,与蚂蚁区块链科技(上海)有限公司签订《合作协议》,双方将在区块链医疗领域互为合作伙伴,在区块链技术、可信存证等方面开展全方位深度合作。[2019/5/26]
Move字节码验证器
读到这里,大家应该能够意识到,Move中最核心的组件就是字节码验证器。让我们来看看它是如何对一段Move字节码进行验证的,验证过程通常包括以下步骤:
控制流图构建:这一步会将字节码分解成代码块,并构建它们之间的跳转关系;
栈高度检查:这一步主要是防止栈的越界访问;
类型检查:这一步会通过一个“类型栈”模型来对代码进行类型检查;
资源检查:这一步主要针对资源类型进行安全性检查,防止资源被复制或消毁,并确保-资源变量被后续代码所使用。上文举的例子中的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
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。