探索智能合约的签名
Solidity 0.8.5 新变化
工厂设计模式是编程中相当常见的模式。这个想法很简单,不是直接创建对象,而是由对象(工厂)来创建对象。在Solidity中,一个对象就是一个智能合约,所以合约工厂可以为你部署新的合约。
本文揭示了在Solidity编译器版本0.8.3及以下中存在的内存隔离漏洞,该漏洞影响了ABI反序列化过程,可能导致恶意字节缓冲区的攻击。作者详细解释了ABI规范、序列化和编码格式,以及引入的具体漏洞和影响,并指出该漏洞已在0.8.4版本中修复。
文章详细介绍了在Solidity编译器中发现的一种代码生成漏洞,允许恶意存储字段欺骗Solidity,将不相关信息插入通过abi.encodePacked等方法生成的数组中。该漏洞已在Solidity 0.8.0版本中修复。
abi.encodePacked
Certora团队的John Toman发现了Solidity 0.7.3中的一个bug,该bug导致编译器在一些写入操作中错误地将垃圾数据写入持久存储。这一问题可能导致合同执行成本增加,但目前尚未确认其安全影响。Solidity编译器团队已在0.7.4版本中修复了该bug。
本文讨论了2019年在Solidity编译器中发现的一个内存管理漏洞,导致动态数组的长度计算溢出,并可能导致内存损坏。文章深入分析了该漏洞的原理、示例代码及其潜在影响,还探讨了如何避免及检测此类漏洞的方法。最后,作者提到应用形式化方法来提高编译器的正确性和区块链智能合约的安全性。
truffle/hardhat 单元测试如何切换不同的账号(地址)
从技术上解释事务输入数据是怎么一回事,它实质是什么,又是怎么工作的。
介绍一个自己开发的小工具 myvetools来帮助我能够比较高效地开发 TS 代码,用于智能合约的测试工作。
HDWalletProvider 升级到 1.3.x 之后,只能对以太坊网络进行比较好的支持,并且需要显式指定 chainId。对于非以太坊网络比如当下比较热门的 heco/bsc,在官方解决到相应问题之前,还是保持在 1.2.x 版本比较好。
现在可以在 VSCode 上使用 Remix 啦
一个包含Infura使用、账户的创建、测试币的领取、合约的部署、合约的调用的完整教程
Solidity的transfer() 是不安全的。
如何将你的合约升级到Solidity 0.8?
以太坊用户必备技能,熟练掌握Etherscan区块链进行智能合约交互硬核知识。
智能合约开发框架,可以帮助工程师部署和测试智能合约,来他们的工作更加轻松。本文会介绍一下当下最好的开发工具。
当使用OpenZeppelin Upgrades编写可升级合约时,有一些在编写Solidity代码时需要记住一些注意事项。
使用OpenZeppelin升级插件部署的智能合约可以通过升级来修改代码,同时保留原合约地址、状态和余额。这让帮助我们为项目添加新功能,或修复在生产中可能发现的任何错误。
虚拟机是区块链中的一个关键组件,用来执行智能合约,需要满足安全性和一致性,所谓的安全性一般是指合约代码需要在隔离的沙箱环境中运行,以免错误或恶意代码造成对区块链系统的损害。而一致性...
扫一扫 - 使用登链小程序
487 篇文章,576 学分
191 篇文章,518 学分
409 篇文章,375 学分
44 篇文章,313 学分
58 篇文章,299 学分