本文通过编写有漏洞的合约,来了解如何攻击并理解如何预防漏洞的发生。
本文档描述了部署新代理和实现的过程,重点在于如何初始化合约。由于代理使用delegatecall将调用转发给实现,因此合约的初始化需要特别处理。文档详细介绍了如何部署实现合约、初始化字段,以及如何部署代理并验证字段是否正确初始化。
delegatecall
本文深入探讨了“非结构化存储”代理模式,这是 OpenZeppelin Upgrades 的基础构建块。它解决了智能合约升级的挑战,通过代理合约转发交易到逻辑合约,实现逻辑合约的替换,同时确保状态的存储和访问正确。文章还讨论了存储冲突问题以及如何使用initializer函数代替constructor,保证升级的顺利进行。
本文是关于OpenZeppelin升级插件的常见问题解答,涵盖了Solidity编译器版本变更、常见错误、合约升级安全、禁用检查、使用delegatecall和selfdestruct、实现兼容性、代理管理员、实现合约、代理、immutable变量、外部库、升级函数、自定义类型以及在存储变量中使用内部函数等问题。
本文介绍了ERC-7201提案,旨在解决Solidity合约存储槽中存在的DelegateCall安全风险和升级不便等问题。ERC-7201引入命名空间概念,通过特定算法为不同逻辑组件分配独立的存储区域,实现存储隔离、升级友好、模块化支持和工具兼容等优势。文章还提供了实现示例,展示了如何在合约中使用ERC-7201。
该工具旨在检测以太坊主网上未初始化的代理合约,识别潜在的安全漏洞,特别是那些未正确初始化的可升级代理合约,这些漏洞可能导致未经授权的访问或操作。该工具包含合约收集、代理检测、初始化函数检测、存储槽分析和漏洞利用测试等多个组件,通过扫描链上合约、分析字节码模式和存储槽数据来发现未初始化的代理合约,并尝试利用这些合约。
Loom Network正式推出,标志着第一个基于其DAppChain的去中心化应用DelegateCall的上线。Loom Network提供了一个用于高可扩展性的以太坊DApps开发的SDK,并计划在未来推出更多应用,尤其是针对游戏和社交应用程序的开发。LOOM代币作为使用所有Loom Network DApp的通行证现已发售。文章详细介绍了Loom Network的功能、目标和未来计划。
本文分析了一种利用CREATE和CREATE2操作码在不同时间将不同合约部署到同一地址的攻击技术,并提供了相应的防御策略。
CREATE
CREATE2
本文探讨了在区块链上开发合约时,由于合约部署后难以更改的特性,Proxy-Implementation 架构应运而生。
动态代理的更优实现和使用注意
如何利用delegatecall进行以太坊智能合约升级
Web3实践:在Polkadot上用Solidity玩转DelegatecallWeb3浪潮席卷而来,智能合约作为区块链世界的核心驱动力,正变得越来越灵活和强大。在Polkadot这个多链生态中,Solidity依然是开发者的得力工具,而delegatecall则像是合约设
本文全面概述了Solidity中的“delegatecall”函数,详细介绍了它在一个智能合约的上下文中执行另一个智能合约中的代码的重要性。
delegatecall是Solidity中的一种低级函数调用方法,它允许一个合约以调用者(caller)的上下文(context)执行另一个合约的代码。这意味着被调用的合约中的msg.sender、msg.value和存储都会是调用合约的上下文。
信标代理“信标代理”(BeaconProxy)是一种可升级合约的代理模式,主要特点是通过一个共享的“信标”(Beacon)来统一管理逻辑合约地址,适合部署多个实例共享同一个逻辑实现并且合约可升级的场景:https://learnblockchain.cn/shawn_shaw