Hackit

Posted on Feb 15, 2022Read on Mirror.xyz

以太坊智能合约逆向分析与实战:(2)深入了解以太坊虚拟机

关于以太坊虚拟机的实现原理及操作码分析,我自身掌握的一些知识也比较零散,但网上有很好的资料可以学习,通过阅读一系列文章,有助于梳理自己的知识点,把一个个离散的点串成一条线,为更加深入的学习打下基础。

个人推荐这五篇文章,但由于时间紧张,我也没有工夫逐篇说明了,自己找想要的看吧。(建议前置知识:一些Solidity编程基础)

Diving Into The Ethereum Virtual Machine 系列:

有网友对以上文档制作了翻译版:

读完之后,相信你会对EVM的原理有深入的认识,或许会解答你的一些疑惑!

比如:

EVM汇编代码与 Solidity 的对应关系是什么?

答:请查阅第一部分。

为什么有些人的钱包地址会比别人节省Gas?

答:因为他们钱包地址0比较多(哈哈) 请查阅第一、第二部分。

为什么有些合约操作这么费Gas?

答:有些指令(尤其是存储)的Gas价格是很贵的。请查阅第一、第二部分。

映射、数组这两种看似不同的数据结构,在虚拟机的存储器中是怎样的存在?

答:其实数组属于是一种有着更加高级特征的映射,具体查阅第三部分。

调用合约一定要ABI吗?ABI是如何对参数进行编码的?

答:不一定。 ABI 可以将参数编码为字节序列,以进行交易的发送。详情参阅第四部分。

当一个新合约被创建时,EVM里究竟发生了什么?

答:说来话长,看第五部分吧!

注:译文(第4部分)似乎URL打不开了,可尝试到CSDN博客查看。

Recommended Reading