0%

Detecting Blockchain (E)VM Flaws

BlockSec CEO周亚金教授受邀参加香港Web3学者峰会,阐述了EVM虚拟机存在的潜在安全风险以及如何通过差分测试工具解决该类问题。

参考链接:url

Detecting Blockchain (E)VM Flaws

打打广告

image-20240110161050085

目前EVM兼容的链有200+

image-20240110161224346

虚拟机是智能合约的foundation

image-20240110161402073

virtual ROM中存储的是代码,account storge是持久化存储

evm如果对同一段代码执行结果不一样,就会导致分叉,有两个重要的事件

image-20240110161551985

浅拷贝优化导致的错误

image-20240110161806004

实现篡改return data

image-20240110161835490

CVE2021 Geth及时修复了,但是其他fork geth的项目未能及时采用该patch

image-20240110162332986

如何提前发现类似问题:提前开发系统,但是存在着一下问题

image-20240110162710450

差分测试:不同种类的实现

image-20240110162923402

输入相同,执行的合约相同,理论上输出应该一样

image-20240110162913739

test case的prestate也应该相同

生成测试用例的方法

  • 用历史真实数据
  • 基于覆盖率的fuzz(提到blocksec做了很多其他的维度)

image-20240110163219770

基于种子交易mutate,生成不正常的交易

image-20240110163332043

现有的evm存在定制,neo作为layer1,基于neo的链可能定制化

剔除假阳性的方法

image-20240110163448295

blocksec目前支持的链的EVM

image-20240110163543389

image-20240110155400899

https://nvd.nist.gov/vuln/detail/CVE-2020-26241

目前zkevm的问题比较多

eos的问题:新的合约账户可能和已被销毁的合约账户连接起来

image-20240110155916090

aurora预编译合约计算gas错误,远远小于实际的gas消耗,导致dos

image-20240110160130852

image-20240110160609580