元宇宙非小号金色财经交流群社区官网

将字节码重写器应用于合约

时间:2022-02-17 17:14:35

相反,字节码重写不受此缺陷的困扰,因为许多错误类仅需要在EVM指令级别上进行更改,从而避免了易于出错的存储布局更改。选择字节码重写的另一个原因是现有的智能合约漏洞检测工具。截至目前,他们中的大多数在EVM级别上运行,并在EVM级别上报告他们的发现。字节码重写方法可以利用这些分析工具的报告来直接生成基于EVM字节码的补丁。最后,如果使用源代码重写,则开发人员对修补合约的有效性进行彻底测试的可能性有限。

EVM的基于堆栈的体系结构在实施修补程序时需要特别注意:在将新代码插入代码地址时,必须保留或更新智能合约的代码地址空间中对任何代码或数据的所有基于地址的引用空间,这样的引用不能轻易地从字节码中恢复。为了应对这一挑战,EVMPATCH利用基于trampoline的方法将新的EVM指令添加到空白代码区域。要实施补丁,字节码重写器将处理易受攻击合约的字节码以及漏洞报告。重写基于所谓的补丁模板,该补丁模板根据漏洞类型进行选择并进行调整以与给定的合约一起使用。

所有以太坊区块链上的行动都是由各账户发送的交易激活,每次一个合约账户收到一个交易,交易自带的参数都会成为代码的输入值运行,合约代码会被以太坊虚拟机(EVM)在每一个参与网络的节点上运行,以作为它们新区快的验证

如上表所示,有两种在以太坊中自动生成补丁的可能策略:源代码或EVM字节码的静态重写。乍看之下,源代码修补似乎是一种选择,因为开发人员可以访问源代码,他们可以检查源代码更改,甚至可以在自动方法引入不希望的更改的情况下进行调整。但是,在以太坊中,应用源代码重写存在一个主要挑战:一个需要仔细保留存储布局。否则,修补后的合约将破坏其内存并失败,或者(更糟)引入危险的错误。即,即使更改不会破坏合约的逻辑,源代码中的某些更改也可能破坏合约的兼容性。

以以太坊为例,支持用户在以太坊网络中创建并调用一些复杂的逻辑。以太坊作为一个可编程区块链,其核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,通过它可以实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在EVM上运行的。实际上,EVM直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”),所以部署在区块链上的智能合约可以是字节码。

字节码重写器:通常,静态二进制重写技术非常适合在以太坊中应用补丁,因为智能合约的代码大小相对较小:通常在10KB左右。此外,EVM智能合约始终静态链接到所有库代码。合约不可能将新代码动态地引入代码地址空间。与传统的体系结构(在运行时加载动态链接的库)相比,这使得对二进制重写技术的依赖更加简单。但是,某些智能合约仍然使用类似于动态链接库的概念:专用的EVM调用指令允许合约切换到不同的代码地址空间。本文通过将字节码重写器应用于合约本身和库合约来解决这种特殊性。

重写EVM智能合约时,字节码重写器中的跳转指令和代码复制指令都需要考虑。重写智能合约的显而易见的策略是在插入新指令或删除旧指令后,修复代码中的所有常量地址以反映新地址。但是,此策略具有挑战性,因为它需要精确的控制流图恢复和数据流分析,这需要处理EVM代码的特殊性,例如内部函数调用。

标签:合约

  • 什么是比特币合约?交割合约和永续合约有什么区别?

    什么是比特币合约?交割合约和永续合约有什么区别?

    2021-12-01 13:59:34

    一.什么叫比特币期货比特币期货又被称为比特币合约,它与务必具体拥有虚拟货币才可开展的币币交易有较大不一样。比特币合约使你可以预测分析BTC的市场价格和对冲交易风险性。这类交易规则,代表着你购买的是价格趋势,在于财产自身。...

  • 币安(Binance)合约交易是什么?U货币本位合约和货币本位合约有什么区别?

    币安(Binance)合约交易是什么?U货币本位合约和货币本位合约有什么区别?

    2022-02-21 17:47:37

    什么是币安(Binance)合同交易?本文将介绍币圈(Coin Circle)最受欢迎的投资商品-合约交易。本文将分析期货与合约交易的差异,然后介绍合约交易的特点U本位与货币本位的区别,最后以币安(Binance)合约交...

  • 什么是比特币智能合约?智能合约的前世今生

    什么是比特币智能合约?智能合约的前世今生

    2021-06-22 16:37:08

    一、什么叫智能合约 智能合约是时下趋之若鹜的区块链专有名词,其火爆水平与其说定义的模糊不清水平相伴相生。PeterTodd就曾坦言:“没人了解智能合约到底是啥,大家应当必须推测机去执行它。”要了解智能合...

  • 让合约交易员来告诉你如何玩数字货币合约期权

    让合约交易员来告诉你如何玩数字货币合约期权

    2021-07-28 16:03:02

    期权是工作经验老练投资人的称手专用工具,他们以不一样的方法为不一样财产给予多元化的杠杆比率。不论是对不确定性开展对冲交易,运用杆杠敞口开展投机性,或是根据售出合同获得期权费。投资人都可以运用期权来充分发挥自...

本站分享的区块链、Web3.0元宇宙、NFT、数字藏品最新消息等相关数藏知识快讯NFR资讯新闻,与金色财经非小号巴比特星球前线Btc中国官网无关,本站资讯观点不作为投资依据,市场有风险,投资需谨慎!不提供社区论坛BBS微博微信交流群等相关币圈信息发布!
本站内容来源于互联网,如存在侵权及违规内容投诉邮箱( [email protected] )
皮卡丘 2021-2024© YangKaTie.Com All