本文由币乎社区(bihu.com)内容支持计划奖励。

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我们以及互动。

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

致谢

我们热烈地感谢IOHK对IELE和KEVM的慷慨资助。 尤其是IELE,如果没有IOHK的支持,它的持续研究会议,以及与研究团队的激烈技术讨论,IELE将是不可能会实现的。

我们同样感谢 K 团队,他们定义了KEVM语义(参见技术报告)并验证了ERC20合规性的智能合约。他们在EVM层面的努力和不平凡的证明引导了寻求新的虚拟机,能够更好地支持智能合同验证的新虚拟机。

翻译作者: 许莉
原文地址: IELE: A New Virtual Machine for the Blockchain

作者:Lilymoana
链接:https://www.jianshu.com/p/b0a9a54c0f07
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

IELE:区块链的一个新虚拟机相关推荐

  1. 一文读懂区块链以及一个区块链的实现

    区块链这个技术在2017年是比较火的,基于区块链技术的比特币的价格也是高的惊人,于是我就想对区块链技术做个深入了解.在网上看了大量文章后,发现大多数文章要么只讲理论,要么就只贴代码,都不太满意.于是我 ...

  2. 从技术原理解析区块链为何列入新基建

    来源 | 腾讯开发者 封图 | CSDN 付费下载于视觉中国 4月20日,国家发改委首次明确了"新基建"的具体范围,其中,区块链与人工智能.云计算等被列为信息基础设施的代表.作为新 ...

  3. 新商业模式:在区块链上寻找新机会

    Airbnb是在2008年金融市场崩溃前的一个月成立的,现在已经成为一个价值250亿美元的平台.它以 市值和房源计算都是世界上最大的房源供应商.不过,房子的实际拥有者们只收到了他们所创造价值的一部分. ...

  4. 新华社客户端文章:区块链金融:新蓝海还是新挑战

    新华社客户端6月5日发表特华博士后科研工作站文章:<区块链金融:新蓝海还是新挑战文>(作者:刘绪光.杨帅)全文如下: 有报告显示,截止2017年4月底,全球总共455家区块链公司累计获得融 ...

  5. 财路网每日原创推送:一种基于区块链技术的新融资模式——STO

    财路网(www.cailuw.com) 一种基于区块链技术的新融资模式--STO 2008年经济大衰退之后,比特币因经济体系的失败而受挫.从那时起,加密货币已经用了10年的时间来证明其概念.发展.多样 ...

  6. 论文阅读:基于区块链的一个车联网轻量级安全V2V通信特点:利用无线网络传输在V2V通信中的信道特性,生成特殊的LF(链路指纹)用于标识每个信道,区块链技术用于生成区块

    论文阅读:基于区块链的一个车联网轻量级安全V2V通信特点:利用无线网络传输在V2V通信中的信道特性,生成特殊的LF(链路指纹)用于标识每个信道,区块链技术用于生成区块. 系统模型: 汽车使用MICAz ...

  7. 《区块链革命》读书笔记3 新商业模式:在区块链上寻找新机会

    2-3 新商业模式:在区块链上寻找新机会 文章举了虚拟的区块链公司BAribnb与Airbnb对标比较,由于我们需要区块链为我们提供的声誉度.身份验证.隐私保护.风险降低.保险.支付结算等服务,所以B ...

  8. 区块链革命 - 第2篇 转型 - 第5章 新商业模式:在区块链上寻找新机会

    第5章 新商业模式:在区块链上寻找新机会 5.1 BAirbnb VS Airbnb BAirbnb是一款分布式应用程序(Dapp),它是由一个在(用于登记房源列表的)区块链上存储数据的一组智能合约组 ...

  9. 浙江大学区块链协会纳新 | 加入我们,“链”接未来

    2022年春季纳新 2 ND 13 TH  March. 2022 引言 随着互联网巨头Facebook宣布将公司更名为Meta,"元宇宙"的概念快速破圈.元宇宙是整合" ...

最新文章

  1. Java报表工具FineReport导出EXCEL的四种API
  2. Django 流式响应中文csv样例
  3. python手机版iphone-Python编程狮下载
  4. Windows Security——获取Windows已经保存的WiFi网络密码
  5. 电脑卡顿不流畅怎么解决_电脑卡顿是什么原因,电脑卡顿严重解决方法【详解】...
  6. 哈希表 哈希函数 时间_您需要了解的哈希函数
  7. VS2013 配置全局 VC++目录
  8. 构建高性能WEB站点笔记三
  9. dwz 之 IE下 页面加载完了却一直提示数据加载中,请稍等...
  10. CA证书无法与服务器连接,湖北国税常见CA登陆问题的解决办法
  11. Mysql 2018国家统计局区划和城乡划分数据库(包含经纬度数据,以及数据来源,提供大家参考)
  12. WIN10系统微软拼音输入法无法输入中文
  13. SQL查询语句精华大全
  14. 桥梁防撞主动预警系统解决方案-广州泛尔维
  15. Hankson 的趣味题
  16. 移动最快apn服务器,中国移动修改APN为CMTDS提高4G网速
  17. Java Swing扫雷游戏demo分享
  18. c语言long long是什么意思,long是什么意思_long在线翻译_英语_读音_用法_例句_海词词典...
  19. java程序员在交接别人的工作时如何保证顺利交接?
  20. 关于csdn写的博文未显示,待审核状态

热门文章

  1. 一个return引发的血案 - 自己动手实现allocator
  2. 【转】十分有用的linux shell学习总结
  3. vaniglia 源码学习 (六)
  4. GridView 自写分页 存储过程
  5. 深度神经网络模型压缩方法总结
  6. 【Python】一种超简单的二维列表降维方法
  7. 科大星云诗社动态20210407
  8. 科大星云诗社动态20210826
  9. syslinux引导GRUB4DOS
  10. JS判断页面控件是否可用