项目方跑路仿佛在任何行业中都不免出现,有痛点就是有机会,那么在web3区块链行业中,基于密码学以及公开规则合约的信任,能否从ERC721的协议上做优化,从而规避这种情况呢?
5月新出的EIP5058想实现的ERC721L就是为此设计的,是将所有权和转移权分离的NFT拓展协议。
本文目录:
首先,为小白科普,EIP和ERC是什么关系?
其次,简述核心点:
a:EIP5058的愿景与实现方式,
b:ERC721存在的问题,以无聊猿抵押所有权导致APE空投被闪电贷攻击为例。
最后,穿插分析此EIP的可行性。
常说的EIP和ERC是什么关系?
EIP是什么?
全称EthereumImporvementProposals(以太坊改进建议),是以太坊开发者社区提出的改进建议,是一系列以编号排定的文件,EIP可以是Ethereum生态中任意领域的改进,比如新特性、ERC、协议改进、编程工具等等。
入口:https://eips.ethereum.org/all
ERC是什么?
全称EthereumRequestForComment(以太坊意见征求稿),用以记录以太坊上应用级的各种开发标准和协议(application-levelstandardsandconventions)。如典型的Token标准(ERC20,ERC721)、名字注册(ERC26,ERC13),URI范式(ERC67),Library/Package格式(EIP82),钱包格式(EIP75,EIP85)。
以太坊核心开发者会议:讨论EIP-4844和L2 EIP,预计接下来会议确定坎昆升级范围:5月12日消息,以太坊核心开发者 Tim Beiko 发推总结最新一次的执行层会议讨论内容,本次会议讨论大部分都集中在 EIP-4844 上,并对 L2 EIP 进行了一些简要讨论,以及 Cancun 整体计划。
MarioVega.eth 提出了一个关于区块有效性条件的问题,该条件由某些客户端隐式实现,但不是全部。我们同意将此作为明确的有效性条件。此外,Geth 团队正在增加对 c-kzg 和 go-kzg 的支持,以允许用户在遇到错误时轻松切换。会议还讨论了两个 EIP,其中一个包括 EIP-6969(在以太坊 L2 上引入 / 标准化 CSR 的提议)。Tim Beiko表示,希望在接下来的一两次会议中可以最终确定升级的范围。[2023/5/12 14:58:42]
入口:https://eips.ethereum.org/erc
小结
ERC协议标准是影响以太坊发展的重要因素,像ERC20,ERC223,ERC721,ERC777等,都是对以太坊生态产生了很大影响。EIP则可以进一步先观察到行业内的动态,了解什么痛点是当前的瓶颈。因此我每周都在刷最新的EIP,从问题出发去寻找趋势。
0x推出用于链上治理的新智能合约系统ZEIP:2月21日消息,去中心化交易基础设施0x将推出用于完全链上绑定治理的新智能合约系统ZEIP。ZEIP可以完全控制0x协议、金库和治理,并计划推出在0x协议治理中激励积极的链上投票参与(单独和委托)的正式计划。
此外还将推出0x协议安全理事会,并计划推出0x协议Grants,更新并扩大0x协议的成功实验,以帮助管理社区拥有的金库,旨在使0x协议成为全球价值交换的标准结算层。[2023/2/21 12:18:31]
总之,虽然两者并不重叠,但是所有的ERC都是EIP,反之则未必。
EIP-5058想解决什么?
入口:https://github.com/ethereum/EIPs/pull/5058/files
本质上他是ERC721的拓展,让项目方可以对NFT资产,执行锁定而不是转移,他新增函数setLockApprovalForAll()以及lockApprove(),这样一来在锁定期结束之前被锁定的NFT不能转移。
对用户而言,资产还在我的账户内,而且到期了或者项目方出问题了,资产也不会损失。
对官方而言,不是恶意黑用户资产的,那就坦坦荡荡的只是锁定防止用户的问题,而不是要求必须转移。
以太坊开发者提出EIP-3382提案以固定区块gas限制,而不受受矿工制约:以太坊开发者Philippe Castonguay提出EIP-3382提案,提议将区块Gas限制硬编码为每区块12,500,000 gas。更新块验证规则,如果Gas限制header字段不等于12,500,000,则区块无效。Philippe Castonguay表示,对区块气Gas限制进行硬编码,因为它是一个关键参数,需要网络达成共识,并且不受矿工的制约。Philippe Castonguay认为,以太坊的PoW和PoS设计都假设区块生产商(矿工)在财务上是理性的,但并没有假设矿工是仁慈的。但是,有一个例外,那就是矿工选择区块的Gas限制时,假定矿工关心链的长期健康和去中心化。实际上,区块gas限制是以太坊中唯一不是由节点一致性决定,而是由矿工选择的参数。这一决定最初是为了在必要时允许紧急改变区块Gas限制。大幅增加或减少这一参数都可能会产生严重的后果,这可能是不希望的。因此,这是一个关键参数,需要节点一致性,以避免少数参与者对网络其余部分施加任何突然的有害变化。[2021/3/16 18:49:37]
授权对象:可以是第三方,犹如引入监管机构可以一键冻结账户。
这样一来,形成的博弈是让用户即有持有权的同时去发挥其使用权的价值,而项目方也可以以更安全的资产保护来做清白自证。其流动性也可以通过boundNFT来提升
BKEX Global宣布即将参与Deipool聚合流动性挖矿:据官方消息,交易平台BKEX Global正式宣布在Deipool智能合约上线后将参与聚合流动性挖矿,Deipool合约代码经过Certik安全审计后,即将正式上线。
Deipool是基于DAO机制的社区治理智能合约平台,打造去中心化钱包、借贷、融资、交易、预言、资管经纪人等DeFi技术设施为一体、跨链的金融科技服务生态。
BKEX Global是必客集团旗下由区块链行业资深从业团队联合全球顶尖风控人才打造的区块链资产申购和交易平台,采用行业领先的安全技术,致力于最大化聚合全球优质区块链资产。成功投资过多个DeFi项目,如yfi、crv、uni、moon等等。[2020/9/26]
EIP-5058提案目前会怎样实现?
本质上是对NFT的锁定状态进行管理,让项目方在继承5058实现的NFT项目中,提供锁定即转移的功能,也可以在继承中实现更多功能比如版税等
目前的提案里他封装提供了若干提供方法:
用户授权项目方:lockApprove,setLockApprovalForAll
项目方合约调用:lockFrom,unlockFrom(解锁用户的NFT
设定锁定期:
声音 | 开发人员:实施EIP-1884属于故意“打破”智能合约 但会在硬分叉中予以修复:Parity Tech的Rust开发人员Wei Tang发推称,继DAO和EIP-999之后,伊斯坦布尔升级将成为以太坊的第三个决定性时刻。伊斯坦布尔升级中一个变更——EIP-1884将是一个向后不兼容的变更,我们故意打破正常的(非攻击)智能合约,并承诺使用未来的硬分叉来修复它们,这对于以太坊网络来说尚属首次。随后Tang在回复网友问题时补充道,不过,这并不是我们第一次引入向后不兼容的变更。应该已经有几十个了。第一个可能是EIP-150,当时我们增加了一些gas成本来修复网络攻击。[2019/9/7]
????项目方锁定NFT时,
????需要指定锁定过期的区块高度,该高度必须大于当前区块高度。
????锁到期后,NFT自动释放,才可以进行转移。
5058本身的安保措施上也有诸多考虑,执行lock锁定的时候会审计
防止自己误锁定自己:"ERC5058:?lock?caller?is?not?owner?nor?approved”
防止恶意锁定别人的:"ERC5058:?lock?from?incorrect?owner”?
过期时间要大于块号:"ERC5058:?lock?caller?is?not?owner?nor?approved”
从eip讨论过程的记录中可以回顾到,早期作者使用时间戳来代表过期,被官方建议驳回了,因为这可能产生更多安全风险,永远不要相信矿工。
至于如何完成锁定,
他通过一系列协议,来管理该NFT的锁定状态,解锁方法等,并且定义了两个虚函数,让后续继承此5058代码的合约可以改动此部分。
_beforeTokenLock(operator,?from,?tokenId,?expired);
_afterTokenLock(operator,?from,?tokenId,?expired);
给了一定程度上项目方合约处理的自主性。
流动性问题如何解决?
提案中则使用BoundNFT来解决流动性问题,相当于把未到期的定期锁定的NFT债券化流通,NFT锁定则创建出boundNFT用于流动,当NFT解锁则boundNFT销毁,而boundNFT就代表特定时段内NFT冻结的ownership变更权,这样可以在不转移原始NFT的前提下将boundNFT质押到各种项目合约来行使某些权利,同时可以规避各类项目合约风险、避免拥有者损失NFT的效用或因NFT转移到项目合约而失去空投机会等。
ERC721有怎样的问题呢?
确实,ERC721在这两年迎来巨大的爆发,但其问题首当其冲的就是拓展性和安全性和流动性,又是一个不可能三角之间的博弈。?当然目前百花齐放的NFT提案已经走在打破三角的路上了。
我们来看看具体的产权分离导致的攻击案例。
安全性&流动性的矛盾-APE事件
在3月份,APE空投时候,项目方是按无聊猿NFT持有即可获取APE代币,https://apecoin.com/about,但是之前作为顶流高价值的无聊猿,不少持有者会将其放在NFTX中,即碎片化转成erc20的token,从而产生细粒度的代币让其易于转移,获得了高流动性。
而APE代币,也称之为是“猿币”,持有则可以加入ApeCoinDAO,具有一定的治理权
分发模式:是首个依据地址持有NFT,来空投ERC20的模式。
活动规则:用钱包访问他,他识别到有下列nft则可兑换定量代币
由于是首次NFT持有空投代币,所以出现了一种科学家攻击手法,能那么“快”的进行程序化攻击,只能盲猜,不是科学家太牛逼,就是有内鬼泄题。
被攻击的整体流程
闪电贷-》sushiswap-》vToken≤=>NFT-》领空投-》再还债
大致步骤是
1:套利者先是闪电贷贷到一笔资金,
2:用这个资金在sushiswap上买到vToken,
3:然后在nftx.io平台上将nft换了出来,
4:拿到nft之后去领取空投代币APE,
5:最后再讲nft质押回nftx.io换回vToken,
6:还回去闪电贷
攻击痕迹如下:
https://etherscan.io/tx/0xeb8c3bebed11e2e4fcd30cbfc2fb3c55c4ca166003c7f7d319e78eaab9747098
下图是将闪电贷款到的ETH,转成wETH
下图是1600号无聊猿NFT当时的最后交易价格是,85.5个ETH,约23W美金
其中之一就是这个头像
从1060这图中可以看到,他从NFTX.io的合约地址中被取出,然后3个块后即被转回。
而查阅攻击者地址
https://etherscan.io/address/0x29b8d7588674fafbd6b5e3fee2b86a6c927156b0
会发现,收益的399个ETH,依旧躺在这个钱包里。
谁亏了
整个过程中,无聊猿玩家为了流动性,而失去的资产所有权所带来的APE代币收入。
总结-理性很美好,现实还很远:
其实产权分离确有一定程度的现实意义,但距离其被纳入到标准协议还有很漫长的道路要走,至于项目方提桶跑路的风险,作为当前还没有选择的用户而言,没普及就没意义。
其实,更多NFT的风险在于归零而不是被项目方回收走,APE代币事件只是描述产权分离导致收益被掠夺的一种相对极端的案例。
当然,我关注最新的EIP,并不是单纯寻找可以用的协议代码,更多是关注痛点的趋势变化。
话说,还有不少NFT协议标准提案,你想听哪些??
ERC2981NFT版税标准?
EIP4907可租用的NFT?
EIP2309可并行创建转移销毁的NFT?
ERC721A,由Azuki发布,为降低批量mintgas而定制?
ERC721Psi,从721A基础演变,进一步优化gas消耗?
。。。
前文回顾
《当奈飞的NFT忘记了web2的业务安全》
《当我们在看Etherscan的时候,到底在看什么?》
欢迎各位同学从后台提交有趣的合约或交易哈希。
关注十四,用技术的眼光发现价值。
看到这里,帅气的你不点个赞吗?
来源:金色财经
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。