往期“智能合约执行引擎的前世今生”、“熟悉的新朋友-链上JVM”中,我们介绍了智能合约的起源,以及自研的可以执行Java智能合约的执行引擎HVM。虽然HVM相比于EVM,性能已经有了很大的提升,但是由于其字节码数量很大,在解释执行的场景下执行性能十分受限。另一方面,合约漏洞(不考虑业务逻辑漏洞)引发的安全问题,每年都在发生,所造成的经济损失都十分严重,那么有没有一种方案能让使用者抛开个人因素,尽量写出安全的合约?
为了解决这两个迫切的问题,我们引入了wasm虚拟机FVM,以及Rust合约编写框架。下面本文将详细介绍这两个部分在智能合约领域的应用。
众所周知,solidity语法在更新时出于一些考量并没有做好兼容工作,导致不同版本的语法差异很大,开发人员在不同版本的语法之间来回切换,着实浪费精力。另外,由于区块链区别于传统的互联网技术有着“不可篡改”的特性,一旦产品发布,无法以补丁的形式修复现存在的问题,也无法在原有的基础上进行版本迭代。这就需要合约开发者能一次就写出没有任何问题的合约,否则容易造成巨额的经济损失。然而事情一旦过度依赖于"人",往往会带来量子学的色彩,最好是有另外一套机制来确保合约的正确性。
纽约众议员呼吁SEC集中精力打击犯罪分子,而非施加监管压力:7月19日消息,美国纽约州民主党众议员Ritchie Torres在上周Ripple Labs与SEC之间的持续争议中,一位法官做出了分裂的判决后,呼吁证交会重新集中精力打击加密货币行业的不良分子。
托雷斯在周二致信SEC主席Gary Gensler,表示期待该机构计划如何在判决后“重新评估对加密资产的监管攻势”。托雷斯是负责监督SEC的众议院金融服务委员会的成员。
Torres表示,我希望SEC对法院判决感到受挫,以便将委员会的执法能量集中在真正的不良分子身上,这些不良分子进行严重违规行为,如欺诈、市场操纵和挪用客户资金。[2023/7/19 11:03:51]
Rust作为高效、可靠的通用语言毫无疑问是现有的最好解决方案。
Rust语言的可靠性依托于丰富的类型系统和所有权模型,以及强大的编译器,在编译期就能捕获经典错误。这迫使开发者在编写合约过程中,思考自己所写的每行代码是否准确,并通过编译器来确认,保证通过编译器检查的合约代码一定是安全的,极大的提高了合约的安全性以及可靠性。
POL供应量将突破MATIC原有100亿枚上限,还将以特定的速率逐年增发:7月13日消息,POL白皮书显示,为了保证对验证者的奖励及对生态系统的支持,POL在100亿枚的初始供应之外(全部由MATIC转换而来),还将以特定的速率逐年增发。
具体而言,验证者奖励方面,Polygon建议将用于此途径的POL年发行率设定为供应量的1%,在最初的10年内,该速率无法更改,之后社区可以通过治理框架来决定具体数值,但发行率永远不会超过1%;生态系统支持方面,Polygon也建议将此用于此途径的POL年发行率设定为供应量的1%。与验证者奖励发行一样,该数值可在10年后通过治理框架进行降低,但永远不会超过1%。[2023/7/13 10:53:03]
此外,我们自研的合约框架提供了一个运行时的测试框架,让开发者能模拟合约运行,无需部署就能在链下找到合约中存在的问题。这无疑是给上链的合约增加了一重保险。
另外,我们的合约框架利用rust的宏展开技术,将操作放在宏注解里面。这样能让开发者在使用过程中更多的关注自己合约的业务逻辑,从某种程度上保证了合约逻辑安全,毕竟只需要专注一个部分而没有其他因素的干扰,能让开发者更加投入的去打磨逻辑的细节。
索尼推出用于运动追踪的元宇宙可穿戴设备 Mocopi:金色财经报道,索尼公司宣布推出其最新的元宇宙发明,即名为Mocopi的可穿戴运动追踪系统。据悉,该新系统由六个彩色传感器组成,可被放置在身体的各个部位,包括脚踝,手腕,头部和臀部,以实时捕捉人类运动,并将它们与化身联系起来,允许用户使用全身动作为其化身创建视频。预购销售定于12月中旬开始,售价为49,500日元(约358美元)。从12月15日起,索尼还将推出一个将运动数据与元宇宙数据服务联系起来的软件开发工具包。(CoinDesk)[2022/11/30 21:11:38]
EVM在本质上是脚本程序,是基于栈的虚拟机,需要由编译程序翻译成指令后执行,即解释执行,这导致EVM的执行效率非常低。与之相对,wasm使用了编译执行的方式,采用了虚拟机/字节码技术,并定义了紧凑的二进制格式,拥有更高更快的智能合约执行速度。因此我们引入wasm极大的提高了整个合约的运行效率。
WASM(WebAssembly)按照字面意思就是web汇编,是为web浏览器定制的汇编语言。这里虽然说是定制,但随着灵性的发展,它不仅仅只适用于web,其《核心规范》更是与平台无关。既然号称汇编,那它显然具有汇编语言的特点:
“变异猿”Mutant Ape Yacht Club交易额突破15亿美元:金色财经报道,据最新数据显示,过去24小时,“变异猿”Mutant Ape Yacht Club交易额达到5,476,224.41美元,交易总额已突破15亿美元,本文撰写时为1,503,108,279美元,交易量达到38,172笔。不过,Mutant Ape Yacht Club的地板价却下跌至19.48 ETH,24小时跌幅达到21.49%。目前交易额排名前三的“变异猿”Mutant Ape Yacht Club NFT分别是:#4849(350 WETH)、#1796(335 ETH)、#6957(250 ETH)。[2022/5/12 3:08:52]
1)层次低,接近于机器语言,提高运行效率;
2)适合作为目标代码,由其他高级语言(C/C++/Rust/Go等)编译器生成,扩大适用性;
微众银行:区块链未来的新使命是为全社会构筑一个ESG可信基础设施:4月27日下午,微众银行副行长马智涛在微众区块链品牌全新发布会上表示,在ESG领域,随着未来社会高质量发展,提出了一些新的诉求,对于ESG如何落地起到非常关键的作用。未来区块链的新使命应该是为全社会构筑一个ESG可信基础设施,来促进公平与可持续发展,微众银行在这个领域也一直持续投入。
公开资料显示,微众银行从2015年开始布局区块链,并于2016年牵头发起国内第一家金融行业的区块链联盟“金链盟”。2017年,微众银行实现了区块链技术的自主安全可控,并将牵头研发的区块链底层平台FISCO BCOS完全开源。(界面新闻)[2022/4/28 2:36:06]
另外模块是wasm程序编译、传输和加载的单位。wasm定义了两种模块格式:
二进制格式:是wasm模块的主要编码格式,文件以.wasm为后缀。由于其格式设计的非常紧凑,可以缩小二进制体积,拥有更快的传输和执行效率。
文本格式:文件以.wat为后缀,此处不详细展开。
模块的划分使得wasm的组织结构更加清晰,解析更为方便,极大地提升了解析的效率。
那么除了使用Rust来编写合约,以及将合约编译成wasm字节码,真正要将合约运行起来,依然需要为wasm提供一个运行环境,也就是FVM做的事。
从语义上讲,一个wasm模块从二进制格式到最终被执行可以分为3个阶段:解码,验证,执行。解码阶段把二进制模块解码为内存格式;验证阶段对模块进行静态分析,确保模块的结构满足规范要求,且函数的字节码没有不良行为;执行阶段又可以分为实例化和函数调用两个部分。
FVM组成
显然,FVM完整的功能应当是包含上面提及到的解码、验证、实例化以及函数调用等部分。我们按照整个流程实现了FVM,但是在实际运行中,发现执行过程会消耗大量的性能在内存的读写及分配上。为了进一步提高FVM的执行性能,我们新增了一层编译模块,将wasm的栈式内存转为基于寄存器式内存,对内存进行标记并加以重复利用,避免了频繁的分配内存,极大的提升了整体执行效率。
FVM与平台的账本交互
在rust智能合约中,我们对数据是否上链做了明确的区分,只有标定特定宏注解的字段数据才会上链交互。在合约部署时,对于初始化的字段写入账本;在调用合约方法时,如果使用到合约的持久化字段,合约执行引擎会调用账本读取的方法从账本中获取其数据。对于存在有数据写入操作(即更新)的字段,待合约执行结束后,若账本还未存在此字段则将其写入账本,若此字段已存在,则对相应的账本数据进行更新。
整体流程
整个介绍下来,相信大家对Rust智能合约的使用有了个大概的印象。这里对整个流程做个梳理:
step1:用户通过Rust合约框架编写智能合约(一定要测试)
step2:编译合约为wasm文件
step3:将wasm合约文件部署到FVM
完成以上步骤你就成功的运行了一个合约?。
目前的合约都只是针对相对简单的业务,在我们的规划中,FVM既能应用在现有的合约场景,又能应用在业务复杂以及对合约执行速度有较高要求的场景。同时给了非区块链行业技术人员一种“零学习成本”的上链方法——使用他们熟悉的编程语言来编写合约。扩大了区块链技术的应用场景以及影响范围,以便探寻更多的区块链技术落地方案。
目前FVM在性能上的表现已经很好的达到了预期,但是我们不会满足于眼前的现状停滞不前。在后续的规划中,我们将继续探寻一些优化方案,比如:
1)虚拟机缓存的优化;
2)引入AOT(Ahead-of-Time),即预先编译的方式,替换现有的字节码解释执行,将wasm模块直接编译成go代码,利用go的插件机制直接加载运行,得到极致的性能体验。
技术在不断的推陈出新,优化工作将一直持续下去,“保持先进”是我们的目标。
本文从「安全性」以及「效率的提升」两个角度,引出了对rust智能合约支持的FVM,探讨了rust与wasm在智能合约上为什么会有如此表现,以及我们使用FVM的意义。接下来我们还会对支持区块链上SQL执行的KVSQL进行详细介绍,敬请期待!
作者简介
李凯
趣链科技基础平台部区块链虚拟机研究小组
参考文献
rust程序设计语言
《WebAssembly原理与核心技术》
电子竞技和Crypto行业是两个不断需要交叉突破的行业。除了在AxieInfinity等公司的引领下,传统的电子竞技和游戏正在寻找新的合作方式.
1900/1/1 0:00:00区块链的核心优势在于缺乏中心枢纽。分布式账本的透明度与不可变数据链的加密安全性相结合,使该技术成为企业交换和验证信息的理想工具。它不是一个单一的系统,而是一种基线技术,可以通过不同的方式进行配置以适应不同的目的和商业模式.
1900/1/1 0:00:00撰文:Simon/img/20230515022528654817/0.jpg "/>各公链TVL堆积图,数据来源:FootprintAnalytics自从5月区块链暴跌后,DeFi经历了短暂的消沉.
1900/1/1 0:00:00关于NEAR最近有一则大新闻~~~相信很多的小伙伴也有关注。 是什么呢? 10月25日,NEAR宣布推出8亿美元生态发展捐赠计划.
1900/1/1 0:00:003个月以来OpenSea一直都是NFT爱好者攀登各种NFT高峰的活跃之地,它保持着旺盛的活跃度,即便在一周前的NFT“凉凉”风下,他的生命力此后依然复燃.
1900/1/1 0:00:00现在,有许多各个领域的项目都在使用区块链技术。比如最近出现在新闻中的基于区块链技术的项目之一——欧洲区块链服务基础设施。欧盟委员会通过创建FBSI区块链服务基础设施,旨在供一系列跨境数字公共服务,“造福于公民、社会和经济”.
1900/1/1 0:00:00