当前位置:首页 > 物联网 > 区块链
[导读] Runtime VerificaTIon (RV)很自豪的发布了他们第一个版本的IELE,区块链的一个新虚拟机。 什么是IELE? IELE是 LLVM 的一个变种,专

Runtime VerificaTIon (RV)很自豪的发布了他们第一个版本的IELE,区块链的一个新虚拟机。

什么是IELE?

IELE是 LLVM 的一个变种,专门用于在区块链上执行智能合约。它的设计、定义以及实现都是在最高的数学标准下完成的,遵循语义优先的方式,以验证智能合约为主要目标。具体来说,我们使用 K 架构定义了IELE正式的语法和语义,这不仅给我们提供了一系列的程序分析工具包括程序验证器,还提供了一个可执行的参考模型。K 是由我们的团队在过去15年中创建出来的,它将语言设计,语义和形式化方法融入了现代艺术。 IELE的设计是建立一定的经验之上的,该经验就是我们用 K 正式定义了几十种语言,特别是用 K 语言正式定义了两种其他虚拟机的近期经验,即:

KEVM,我们 EVM 的语义

KLLVM,我们 LLVM 的语义;LLVM语义的最新版本会在LLVM完成并发布后公布,不过早期版本在这里可获取

与基于栈的EVM不同,IELE是基于寄存器的机器,就像LLVM。它支持无限的寄存器以及无界整数。为了感受一下IELE程序看起来是什么样子的,这里有两个程序(这些还没有被验证,可能会改变):

erc20.iele — 一个ERC20代币 IELE的实现

forwardingWallet.iele — 一个可以创建和调用其他合约的钱包实现

设计原理

以下是推动 IELE设计的因素:

想成为将高级语言的智能合约翻译并执行的统一、低级平台。合约可以使用ABI的方法进行交互。ABI是IELE的核心元素,而不仅仅只是个公约。无界整数和无限的寄存器应该可以让高级语言的编译更加的直接和优雅,并且看看LLVM的成功,从长远来看更加的高效。事实上,LLVM的很多优化将会继续下去。因此,IELE会尽可能的跟随LLVM的设计选择和表现。团队还包括了来自Illinois大学(LLVM的创造地)的LLVM专家。

为所有语言提供一个统一的gas模型。IELE中gas计算的一般思想是“没有限制,但是你消耗多少就需要支付多少”。例如,一个IELE程序使用的寄存器越多,gas消耗的也会越多。或者在运行期计算的数字越大,消耗的gas越多。使用的内存越多,根据位置和存储在位置上数据的大小,消耗的gas也越多,等等。

为了让编写安全的智能合约更加的简单。这包括编写智能合约必须要遵守的需求规范,同样也使得开发自动化技术更加的容易,该自动化技术以数学方式验证/证明智能合约就此类规范是正确的。例如,在当前智能合约的规范下,将一个可能计算的数字压入栈中,然后跳转到它的地址,这样让验证变得非常的困难,从而也使得安全性变弱。IELE和LLVM一样,命名了标签,跳转语句只能跳转到这些标签。而且,它还避免了使用有界的堆栈,因此就不用担心堆栈和算术溢出问题,这让智能合约的规范和验证变得容易了很多。

就像 KEVM 一样,我们之前定义的EVM的正式语义,是使用 K 架构进行验证和评估的,IELE的设计也同样使用 K 架构且基于语义的风格。加上目前还在开发的快速执行 K 后端,预计从IELE语义中自动获得的解释器将会成为IELE实现的有效参考。

下一步是什么?

为了充分发挥 IELE的潜力,我们计划下一步该做的事情:

K 的高效后端。然后是 K 的语义,包括IELE,都可以在一个可接收的性能下被执行。正如我们在KEVM白皮书讨论的那样,当前版本的 K 可以执行EVM的语义,性能与C++实现的EVM参考的性能在一个数量级之内。如果能做到的话,那么就没有动机以特殊的方式来实现IELE:K 可执行的IELE语义也会成为它的实现,所以它的构建是正确的,因此VM本身的实现缺点就不能被利用了。并且,IELE本身会更容易维护一点,未来版本也更容易部署一点。

从Solidity和Plutus到IELE的编译器/翻译器。直接在IELE中编写智能合约比直接在EVM中编写智能合约的可行性要稍微高一点,因为 IELE是跟随LLVM IR的,LLVM IR的设计是人类可读的,但是 IELE 的代码仍然是低级语言的,因此容易出错。为了正确的测试IELE并获得对其整体设计和功能的信心,我们将会实现一个从Solidity到IELE的编译器/翻译器,也是使用K。因为Plutus在智能合约的函数式编程语言中成为明星,而且我们也定义了Plutus正式语义,所以Plutus到IELE 的编译器会在Solidity之后立即开发。

基于语义的编译。除了提升 K 的性能之外,我们还计划实现一个工具,该工具建立在 K 之上,我们称它为基于语义的编译器。请看我们前一篇博客文章了解更多细节。它的思想就是使用一个编程语言语义L和用L编程的程序P,然后生成(使用大量符号执行)一个新的语言语义L’,L‘就是P的专用L。我们预期性能至少有一个数量级的增加。更重要的是,这会让我们拥有一个统一的机制将任何拥有K语义的程序语言的任何程序翻译成IELE,因此让IELE和 K 成为使用任何语言执行智能合约的通用平台。

在Cardano区块链上部署IELE。

技术细节和下载

IELE拥有UIUC许可证(类似MIT许可证),它可以自由评论以及在Github上可以免费获取:

Github上IELE的仓库

除了上面提到的两个IELE程序 erc20.iele和forwardingWallet.iele可以显示IELE代码是人类可读的之外,下面github仓库的链接也可以让你感受一下什么是IELE以及它与EVM和LLVM的区别:

iele-syntax.md—IELE语言完整的正式语义

iele.md—IELE语言完整的正式可执行语义

Design.md—IELE设计原理,也是与LLVM和EVM比较的细节

iele-gas.md—IELE的当前gas模型(在我们开发IELE编译器的时候仍然需要调整)

进行参与

本着开源、社区主导的发展精神,我们将会在我们的渠道上进行所有的IELE讨论:

#IELE:matrix.org on Riot

runTImeverificaTIon/iele-semanTIcs on Gitter

我们鼓励任何感兴趣的人来找我们,提出问题、贡献代码或使用我们的工具进行熟悉。我们也一直在寻找能够处理文档的贡献者,为新开发人员提供有效的安装/快速启动过程,以及更多的示例和测试。 我们正在招聘,并将保持对有帮助的贡献者的留意。

我们也将会在我们新的Twitter页@rv_inc发表我们的更新,希望任何感兴趣的开发者follow我们以及互动。

让我们一起为所有人建立一个更加安全的智能合约。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭