Revelation_of_Turing
码龄8年
关注
提问 私信
  • 博客:207,581
    社区:6
    207,587
    总访问量
  • 125
    原创
  • 263,430
    排名
  • 441
    粉丝
  • 1
    铁粉

个人简介:想搞金融IT的区块链码手。

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2017-02-22
博客简介:

Revelation_of_Turing

博客描述:
Blockchain,因为专注,所以专业。
查看详细资料
  • 原力等级
    当前等级
    4
    当前总分
    779
    当月
    0
个人成就
  • 获得532次点赞
  • 内容获得31次评论
  • 获得614次收藏
  • 代码片获得1,235次分享
  • 博客总排名263,430名
创作历程
  • 23篇
    2024年
  • 45篇
    2023年
  • 4篇
    2021年
  • 10篇
    2020年
  • 43篇
    2019年
成就勋章
TA的专栏
  • Michael基于Foundry精读Openzeppelin
    68篇
  • Michael.W谈hyperledger Fabric
    28篇
  • pycharm
    1篇
  • python
    2篇
  • 量化交易
    2篇
  • talib
    1篇
  • Michael.W谈hyperleder Fabric
    27篇
  • Michael.W谈Docker
    5篇
  • 以太坊智能合约
    13篇
  • Michael.W谈密码学
    1篇
  • 日常装机
    6篇
  • 工作摘记
    5篇
  • 日常小技巧
    8篇
兴趣领域 设置
  • 后端
    架构
创作活动更多

王者杯·14天创作挑战营·第2期

这是一个以写作博客为目的的创作活动,旨在鼓励码龄大于4年的博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。 注: 1、参赛者可以进入活动群进行交流、分享创作心得,互相鼓励与支持(开卷),答疑及活动群请见https://bbs.csdn.net/topics/619735097 2、文章质量分查询:https://www.csdn.net/qc 我们诚挚邀请你们参加为期14天的创作挑战赛!

60人参与 去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Michael.W基于Foundry精读Openzeppelin第68期——UpgradeableBeacon.sol

UpgradeableBeacon库是信标代理模式中的信标合约的实现,与一个或多个`BeaconProxy`库实例配合使用。所有到`BeaconProxy`的调用都会被委托到本库指向的逻辑合约上。本库的owner具有更换逻辑合约地址的权限,从而实现信标代理合约的升级功能。
原创
发布博客 2024.08.13 ·
2355 阅读 ·
18 点赞 ·
0 评论 ·
19 收藏

Michael.W基于Foundry精读Openzeppelin第67期——BeaconProxy.sol

BeaconProxy库是信标代理合约的实现。与ERC1967Proxy和TransparentUpgradeableProxy两种代理合约不同,信标代理合约背后的逻辑合约地址并不是存储在代理合约内,而是存储于信标合约中。信标代理合约自身只存储信标合约的地址(基于ERC1967标准),这样就可以实现了多代理合约对一逻辑合约的信标代理模式。
原创
发布博客 2024.07.23 ·
2628 阅读 ·
30 点赞 ·
0 评论 ·
15 收藏

Michael.W基于Foundry精读Openzeppelin第66期——ProxyAdmin.sol

ProxyAdmin库是指定用于做透明代理TransparentUpgradeableProxy库admin的管理员合约。
原创
发布博客 2024.07.21 ·
2615 阅读 ·
17 点赞 ·
0 评论 ·
26 收藏

Michael.W基于Foundry精读Openzeppelin第65期——TransparentUpgradeableProxy.sol

TransparentUpgradeableProxy库是一个透明代理合约的实现,其背后的逻辑合约可由admin来升级。一般的代理合约本身需要管理函数,当这些函数同其背后的逻辑合约的函数产生selector冲突时可能会暴露潜在的漏洞。透明代理模式解决了以上问题,对代理合约的调用遵从:1.非admin的全部调用都会delegatecall到逻辑合约;2.admin只能调用代理合约的管理函数。这意味着admin只能用于触发像升级逻辑合约或改变admin这样的操作(admin无法参与任何逻辑合约的业务)。
原创
发布博客 2024.07.19 ·
2579 阅读 ·
23 点赞 ·
0 评论 ·
16 收藏

Michael.W基于Foundry精读Openzeppelin第64期——UUPSUpgradeable.sol

UUPSUpgradeable库是专为UUPS代理设计的一种合约升级机制的实现。当本合约被设置为ERC1967Proxy代理合约背后的逻辑合约后,可以对其进行合约升级操作。作为逻辑合约的父合约,本库的安全机制可保证不会因一次错误的升级而打破合约的可升级性。
原创
发布博客 2024.07.16 ·
2724 阅读 ·
20 点赞 ·
0 评论 ·
25 收藏

Michael.W基于Foundry精读Openzeppelin第63期——Initializable.sol

Initializable库用于开发可升级合约或代理合约背后的逻辑合约。由于代理合约无法执行`constructor`函数,通常是将该函数逻辑放到一个external函数中(称为initialize函数)。本库可确保initializer函数全局只能被调用一次。initializer函数具有version且每个version只能使用一次。该机制可防止重新执行原初始化步骤但又允许在合约升级时添加新的初始化步骤。
原创
发布博客 2024.07.09 ·
2799 阅读 ·
20 点赞 ·
0 评论 ·
14 收藏

Michael.W基于Foundry精读Openzeppelin第62期——ERC1967Proxy.sol

ERC1967Proxy库实现了一个基于ERC1967标准的代理合约。通过改变存储于ERC1967标准规定的_IMPLEMENTATION_SLOT号slot中的代理合约地址,代理合约便实现了合约逻辑可升级的功能。
原创
发布博客 2024.07.04 ·
3061 阅读 ·
17 点赞 ·
0 评论 ·
13 收藏

Michael.W基于Foundry精读Openzeppelin第61期——ERC1967Upgrade.sol

ERC1967Upgrade库实现了基于ERC1967标准(代理合约的slot分布)的slots读写函数,并在对应slot更新时emit出标准中相应的event。对于各种可升级合约和代理合约的实现而言,本库的作用举足轻重。
原创
发布博客 2024.07.02 ·
2461 阅读 ·
14 点赞 ·
0 评论 ·
14 收藏

Michael.W基于Foundry精读Openzeppelin第60期——Clones.sol

Clones库是最小代理合约的工厂合约实现,也称之为克隆工厂。ERC1167指定了一种将全部调用都delegatecall到一个已知固定地址的最小字节码实现,它可以以一种不可变且成本极低的方式克隆目标合约。本库分别提供了使用opcode CREATE和CREATE2部署最小代理合约的方法以及CREATE2部署合约的地址预计算工具。
原创
发布博客 2024.06.26 ·
3169 阅读 ·
17 点赞 ·
0 评论 ·
10 收藏

Michael.W基于Foundry精读Openzeppelin第59期——Proxy.sol

Proxy库对外只暴露了fallback和receive函数,是代理合约的基础实现。所有对Proxy合约的call都将被delegatecall到implement合约并且delegatecall的执行结果会原封不动地返还给Proxy合约的调用方。我们通常称implement合约为代理合约背后的逻辑合约。
原创
发布博客 2024.06.23 ·
2893 阅读 ·
30 点赞 ·
0 评论 ·
11 收藏

Michael.W基于Foundry精读Openzeppelin第58期——PullPayment.sol

PullPayment库是对Openzeppelin中Escrow库的一种封装。从安全角度看,PullPayment是一对多发送eth的最佳解决方案。它可以防止收款人阻塞发送eth的行为并消除重入问题。
原创
发布博客 2024.06.18 ·
2449 阅读 ·
15 点赞 ·
0 评论 ·
30 收藏

Michael.W基于Foundry精读Openzeppelin第57期——ReentrancyGuard.sol

ReentrancyGuard库是一个用来防御函数重入的工具库。函数被修饰器`nonReentrant`修饰可确保其无法被嵌套(重入)调用。本库的代码逻辑上只实现了一个重入锁,所以被`nonReentrant`修饰的函数之间也是无法相互调用的。
原创
发布博客 2024.06.12 ·
2699 阅读 ·
11 点赞 ·
0 评论 ·
22 收藏

Michael.W基于Foundry精读Openzeppelin第56期——VestingWallet.sol

VestingWallet库可以给指定的受益人地址按照时间线性释放锁在合约内的Eth和Erc20 token。任何转移至本合约的token都必须遵循释放模型。开发者可通过重写函数`vestedAmount(uint64 timestamp)`或`vestedAmount(address token, uint64 timestamp)`来自定义token释放模型。
原创
发布博客 2024.06.04 ·
3198 阅读 ·
27 点赞 ·
0 评论 ·
15 收藏

Michael.W基于Foundry精读Openzeppelin第55期——PaymentSplitter.sol

PaymentSplitter库可以在一组领取地址无感知的情况下,将定量eth或某ERC20 token按照shares占比释放给该组中的某地址。当eth或ERC20 token被转入该合约后,在册的领取地址就可以来领取属于自己占比的那部分。各领取人的shares数量只能在该合约部署时被设置。领取eth和ERC20 token需要通过触发release函数完成。
原创
发布博客 2024.05.31 ·
2923 阅读 ·
10 点赞 ·
0 评论 ·
26 收藏

Michael.W基于Foundry精读Openzeppelin第54期——ERC20PresetMinterPauser.sol

ERC20PresetMinterPauser库是一种带mint和pause权限管理的ERC20实现,同时支持销毁和委托销毁的功能。当合约进入paused状态后,全部token的转移功能都将被停止。权限管理功能是直接继承AccessControlEnumerable库。
原创
发布博客 2024.04.01 ·
2454 阅读 ·
8 点赞 ·
0 评论 ·
28 收藏

Michael.W基于Foundry精读Openzeppelin第53期——ERC20PresetFixedSupply.sol

ERC20PresetFixedSupply库是一种带预铸造功能的ERC20实现,即在合约部署时直接将全部流通量都铸造给某一地址且部署后无法增发。该库同时继承了ERC20Burnable库,支持销毁和委托销毁功能。ERC20Burnable库详解参见:https://learnblockchain.cn/article/7038
原创
发布博客 2024.03.27 ·
2158 阅读 ·
4 点赞 ·
0 评论 ·
10 收藏

Michael.W基于Foundry精读Openzeppelin第52期——ERC4626.sol

ERC4626库本身是一种有底层ERC20资产质押的shares且本身同样满足ERC20标准。用户可以通过deposit或mint方法来质押底层资产并增发shares,也可使用burn或redeem方法来销毁shares并赎回底层资产。需要注意的是:当底层资产接近或等于0时,可以通过事先向本合约转入少许底层资产来急速拉升shares的价格。这本质上是一种基于滑点问题的攻击手段,合约部署者可以向合约内提供一笔初始底层资产来抵御以上攻击。在赎回底层资产的过程中同样也会面临滑点问题。
原创
发布博客 2024.03.26 ·
2882 阅读 ·
16 点赞 ·
0 评论 ·
30 收藏

Michael.W基于Foundry精读Openzeppelin第51期——ERC20VotesComp.sol

ERC20VotesComp库是专门适配Compound投票和委托的ERC20拓展库。本库可对接Compound的接口,同时也存在缺点(总发行量上限为2^96^ - 1)。如果业务上确定需要兼容Compound(如:要在Compound Governor Alpha或Bravo中使用该ERC20),那必须弄清楚总发行量上限是否符合业务需求。否则可使用`ERC20Votes`库。
原创
发布博客 2024.03.19 ·
2495 阅读 ·
26 点赞 ·
0 评论 ·
24 收藏

Michael.W基于Foundry精读Openzeppelin第50期——ERC20Votes.sol

ERC20Votes库是一个具备类Compound委托投票功能的ERC20拓展库。本库的发行量上限是2^224^-1,比Compound更通用(COMP是2^96^-1)。合约内部使用快照结构Checkpoint来记录每个投票目标地址的总票数,每个token持有者可以采用直接或者离线签名两种方式委托投票给任何地址。每个目标地址得到的总票数和总发行量支持指定区块高度的快照查询。为了节约转账gas,余额计算并不包含本身被委托的票数,但是委托票数会随着用户的转账发生对应目标的转移。
原创
发布博客 2024.03.14 ·
2657 阅读 ·
16 点赞 ·
0 评论 ·
18 收藏

Michael.W基于Foundry精读Openzeppelin第49期——ERC20Wrapper.sol

ERC20Wrapper库是一种对某ERC20 token作为标的资产进行包装的wrapped ERC20 token。用户可以质押或赎回标的token,同时获得或销毁相同数量的wrapped token。该库可与其他ERC20拓展库结合使用,如:与ERC20Votes库结合,可将已有的ERC20 token包装成治理token。
原创
发布博客 2024.03.06 ·
2624 阅读 ·
21 点赞 ·
0 评论 ·
16 收藏
加载更多