深入分析EVM合约分类背后的风险
在智能合约领域,"以太坊虚拟机 EVM" 以及其算法和数据结构就是第一性原理。
本文从合约为什么要分类出发,结合每个场景可能面对怎样的恶意攻击,最终给出一套达成相对安全的合约分类分析算法。虽然技术含量较高,但亦可作为杂谈读物,一览去中心化系统间博弈的黑暗森林。
1、合约为什么要分类?
因为太重要了,可谓是交易所、钱包、区块链浏览器、数据分析平台等等Dapp的基石!一笔交易之所以是ERC20转账,是因为他的行为符合ERC20标准,至少得有:
- 交易的状态是成功
- To地址为某个符合ERC20标准的合约
- 调用了Transfer函数,其特点是该交易CallData的前4位为0xa9059cbb
- 执行后,在该To地址上发出了transfer的事件
分类有误则交易行为会误判
以交易行为为基石,则To地址能否被准确分类则对其CallData的判断会有截然不然的结论。对Dapp而言,链上链下的信息沟通高度依赖于交易事件的监听,而同样的事件编码也只有在符合标准的合约中发出,才具有可信度。
分类有误则交易会误入黑洞
如果用户进行一笔Token转移,转入到某个合约中,如果该合约没有预设Token转出的函数方法,则资金会雷同于Burn一样被锁定,无法控制且如今大量项目开始增加内置的钱包支持,要为用户管理钱包也就不可避免的,需要时刻从链上实时分类出最新部署的合约,是否能够吻合资产标准。
拓展阅读第1段:【合约解读】CryptoPunk 世界上最早的去中心化NFT交易市场
2、分类会有怎样的风险?
链上是一个没有身份没有法治的地方,你无法制止一笔正常的交易,哪怕他是恶意的。他可以是冒充外婆的狼,做出多数符合你预期的外婆行为,但目的是进屋抢劫。声明标准,但可能实质不符合常见的分类方式是直接采用EIP-165标准,读取该地址是否支持ERC20等,当然,这是一个高效率的方法,但是毕竟合约是对方控制,所以终究是可以伪造出一份申明。165标准的查询,只是在链上有限的操作码中,用最低成本去防止资金转入黑洞的方法。这也是为什么我们之前分析NFT的时候,特地提及标准中会有一类
- 星际资讯
免责声明:投资有风险,入市须谨慎。本资讯不作为投资建议。