本章内容【合约升级漏洞】
我们通过delegatecall这一方式实现了合约升级,同时通过对合约状态存储的理解明白了为什么会存在存储冲突并采用继承的方式进行规避,最后我们的升级是建立在代理合约的fallback函数之上的,这个函数没有返回值,我们通过Solidity Assembly的方式进行数据返回。合约升级在技术上是不可或缺的手段,较好的使用可以帮助我们修复合约漏洞,对合约进行功能迭代,但如果使用不当则会造成较坏的影响,所以合约升级应该配合有效的升级治理方案。
Dapp全栈开发:合约升级
使用非代理模式实现合约升级
合约升级方案
已下架已下架
关于智能合约升级,也许原来的认知是错的
Foundry高级实战:实现一个可升级的工厂合约
随着其自身发展,智能合约已经远非一个基础的“合约”而已了。 现在我们用智能合约创造了一整个生态!但是无论我们编码如何小心,测试如何细致,如果我们的系统变得复杂起来,就免不了更新逻辑去打补丁修bug,抵御恶意攻击或者增加必要的特性。有时,我们甚至需要升级合约去应对EVM的改变或者新发现的漏洞。
可初始化的智能合约设计模式
Beacon Proxy Pattern
一、理解代理模式代理模式在智能合约开发中是一种使智能合约可升级的设计模式。本质上,它允许智能合约的逻辑部分在不更改合约地址或其存储状态的情况下进行修改和升级。这种模式解决了智能合约一旦部署就不能更改的限制,为修复漏洞、添加功能或优化合约逻辑提供了可能。1.1代理模式的工作原理代理模式涉及至少
智能合约从技术角度实现了"codeislaw",在智能合约的世界里,代码本身就是法律规则的体现。这一理念的核心是,智能合约是自执行的协议,由编写好的代码直接控制,无需中介或第三方干预。
本文将从智能合约升级的原理、多种代理模式全面讲解智能合约升级。理解合约升级的设计模式。
关于openzepplin智能合约可升级代理的安全问题与防御措施。