Cointime

扫码下载App
iOS & Android

解读最新Final的ERC-6147:极简的半强制性NFT产权分离标准

个人专家

作者: 十四菌 十四君

就在2023.3.7日,由 10K Universe 提出的以太坊改进提议 EIP-6147 已移至最终版本(Final)!

该标准是 ERC-721 的扩展,分离了 NFT 和SBT的持有权和转让权,并定义了一个新的可设置到期时间的"守卫者"角色Guard,可使得 NFT 防盗、借贷、租赁、SBT 等更具灵活。

本文将系统讲述ERC-6147的实现机制,并对比往期NFT租赁协议专案ERC-4907、ERC-5055,来综合分析点评此协议以及适合的应用场景!

1、背景

NFT已经可谓是个老生常谈的话题了,借助链上的不可篡改特性以及合约本身的自动化运作,实现了链上资产的确权与管理,笔者也从标准协议,租赁拓展协议,乃至于NFT交易市场的几种主流模式来撰写过多篇文章长文。

如果要论证NFT的优势可能可以罗列上几页纸,但要论证NFT的劣势,则千言万语汇聚成一个词:流动性!

当然各位可能要质疑的是,流动性不足的困境与实现产权分离标准有什么关系呢?

在笔者看来,事实上NFT流动性的困境更多不是源于NFT协议本身,对ID的非同质化机制和限定ID区间导致的,哪怕是近乎无穷的ERC20token难道就不缺乏流动性了吗?更重要的是,流动性本身是出于对金融产品的定价诉求而产生的话题,如何让NFT本身具有使用价值,便成了让价值有所依归而不是只依赖于市场操作的协议。

影响使用价值NFT使用价值的,也正是NFT协议本身

1.1、产权耦合,高价值NFT会倾向于安全避险

目前NFT被盗的案例很多,然而现有的NFT防盗方案,比如将NFT转入冷钱包等都会使得NFT的使用不便。

并且在目前的NFT借贷中,NFT所有者需要将NFT转移到NFT借贷合约中,NFT所有者在获得借贷期间不再拥有NFT的使用权,这边是产权耦合的问题,这其实和我们现实中购买房产再房产抵押换取流动性资金时,再非风险条件下是不用被占用房屋使用权的情况很不同。

记忆尤新的是,猴子APE空投时被攻击者用闪电贷结合NFTX进行攻击

整件事情里,唯一受损的则是质押了猴子的用户,本来是赚取微不足道的时间利差却痛失了ape的海量空投。

同样的,产权耦合的还有SBT的问题

对于SBT,目前主流观点认为SBT是不可转让的,这使得SBT与以太地址绑定。但是,当用户地址的私钥泄露或丢失时,找回SBT将成为一项复杂的工作,并且没有相应的标准。SBT本质上实现了NFT持有权和转让权的分离。当SBT所在的钱包被盗或不可用时,SBT应该是可以恢复的。

例如,如果一所大学向其毕业生颁发基于文凭的SBT,如果大学后来发现毕业生有学术不端行为或损害大学声誉,它应该有能力收回此文凭的SBT。

1.2、产权分离分案,强制性维度难以把控

过往十四也解读过若干尝试产权分离的方案,例如ERC-4907和ERC-5058,不可避免的最大的难题在于强制性程度的衡量,这并不是方案本身的问题,而是方案本身的哲学理念问题。

1.2.1、简单哲学ERC-4907,定义愿景剩下交给共识

在2022-07月,NFT 租赁市场 Double Protocol 提交的可租赁 NFT 标准“EIP-4907”通过了以太坊开发团队的最终审核,成为第 30 个 ERC 标准“Final”的状态。

代码极为简单仅有72行,使用这个标准,就是在原来的ERC721之上新增

  • 1个事件(用于通知链下应用称为事件)
  • 3个方法(用于实现链上数据管理功能)

struct UserInfo { address user;// 用户地址 uint64 expires;//用户到期时间}

归咎原理,其实4907只是新增了一个数据对象UserInfo 在所有权的概念之外增加“用户”的维度,但是毕竟其强制性有限,只要转移就能强行终止出租授权

详情可拓展阅读:

1.2.2、0信任哲学的ERC-5058,代码即法律

他本质上是对NFT的锁定状态进行管理,让项目方在继承5058实现的NFT项目中,提供锁定即转移的功能,也可以在继承中实现更多功能比如版税等

他封装提供了若干提供方法:只有用户许可以及项目方执行之后才会完全锁定

用户可调用

  • lockApprove(许可锁定单个NFT)
  • setLockApprovalForAll(许可锁定该地址下全部NFT)

项目方合约调用:

  • lockFrom(锁定用户的NFT)
  • unlockFrom(解锁用户的NFT)

锁定期的定义也极具强制性,近乎只依据设定之初的时间点

项目方(第三方)锁定 NFT 时,需要指定锁定过期的区块高度,该高度必须大于当前区块高度。锁到期后,NFT 自动释放,才可以进行转移。

项目目前还是处于草稿阶段,或许强制性过高以及用户项目方双向操作的较高成本所致

讲述完上述完全不强制4907,以及完全强制的5058,便到了本文主题:最新通过以太坊基金会审查,确定为Final的ERC-6147,虽然他原生的标题是:《Guard of NFT/SBT, an Extension of ERC-721 》,但十四君从系列的租赁研究经验来看,他更应该称是《半强制的NFT产权分离标准》

2、ERC-6147的运作机制

此协议整体代码也非常精简且高度复用,属于对ERC721的拓展标准,但是要注意,如果使用了他,则转移的操作可能与常规的721的逻辑不同,操作不当可能容易被钓鱼,具体如何咱们展开说说。

2.1、Guard是什么?谁能控制?

首先ERC-6147定义了一个名为Guard(守卫者)的角色,和4907的UserInfo很相似,

struct GuardInfo{ address guard; // 守卫者地址, uint64 expires; // 到期时间,}

而Guard只有该NFT的当前所有者地址以及有代扣权限的地址,可以通过changeGuard设置,

通过源码可以看到,在设置Guard的时候若干的细节// 防止误锁定,所以Guard不能设置为0地址

require(newGuard != address(0), "ERC6147: new guard can not be null"); // 只有Guard可以修改自己require(guard == _msgSender(), "ERC6147: only guard can change it self");// 只有nft的所有者或者获得授权者可以设置Guardrequire(_isApprovedOrOwner(_msgSender(), tokenId), "ERC6147: caller is not owner nor approved");

设置成功后,任何人都可以通过guardInfo 方法来查询某个NFTID,当前的Guard信息,同时这里也沿用了和4907一样的基于时间戳的设计,所以是到期无需二次上链交易,就可以自动失效。

那Guard的身份,谁可以去除掉呢?只有Guard自己以及时间(到期)可以。

2.2、Guard能做什么?

首先具有了强制转移权,对于设置了Guard的NFT而言,在进行transferFrom的时候,会查询交易发起方是否是守卫地址,是才能转移。

 💡 请特别注意1:

对于设置了Guard的NFT而而言,原持有者将只有持有权,并没有转移权(即使用权),其他Dapp依旧可以查询到此NFT的所有者是原用户,但原用户无法驱动其进行转移。

所以对于设置了守卫的NFT,在opensea、x2y2等交易平台上的签名是有效的(但是无法进行实际转移,因为Seaport等协议执行转移的时候,是由Seaport协议通过代扣授权来执行)

对于交易市场的运作机制可拓展阅读:

 💡 请特别注意2:

如果守卫直接进行了转移该NFT,如果是使用原生的transferFrom或者 safeTransferFrom 方法,其实守卫的设置是不会自动清除的,当然如果是守卫将NFT转给自己自然无妨,但是如果转给某用户,然后再借助守卫者的设置是可以再次进行转移的。

因此如果后续使用Guard,则更多是需要检验是否使用的是transferAndRemove 方法,此方法会在转移后直接清除守卫者信息。

并且,守卫者本质上也是一种较高的控制权力,雷同于房屋租赁,抵押的那一刻,其实本质已经属于银行,只是只有银行在满足某些社会条款的情况下(如违约)才会执行拍卖等操作,既然是某种金融抵押品的属性,则自然也可以二次转移此守卫权使用changeGuard方法即可。

对于transferRemove的设计原则是为了适应不同场景。

比如防盗中,如果NFT在热钱包,而热钱包被盗了,冷钱包依然安全,其实只要transferFrom到其他安全地址就好了。

或者租赁的时候,guard调用transferFrom转到新的租赁地址,就实现了租赁。

还有SBT的社交恢复,将SBT转移到新地址,依然不影响SBT的不可转移特性

2.3、Guard不能做什么?

从源码可以看到Guard相关的只有在授予时,是持有者和Approve授权者可以设置,但Guard是不能设置代扣的。

一方面是出于已经不需要考虑代扣授权者了,因为本质上该NFT的转移权被限制到了Guard上,另一方面是Guard也不能设置Approve,是防止在守卫者归还了转移权后,反而用approve转移走了NFT,这样违背原本意愿,用户又难以发现的场景。

3、总结

用一张充满金融属性,稍有世俗的统计来呈现如今以太坊上NFT类型的资产概览把

每天30多万笔NFT交易,20余万各类NFT合约,这样的总数都呈现出的是围绕资产确权带来的金融属性价值。

但是任何时候金融属性都需要逐渐依归,我们可以看到用NFT来确认社交关系的Lens,可以看到用NFT来做游戏资产的各种Gamefi,也可以看到围绕内容创作借助分拆众筹的Mirror等,

在以太坊问世区区8年多的时间来,围绕EIP的提案总数已经达到6500+ ,

对比于同样重磅的4907而言,6147更多是强在兼容性的优化

比如4907做租赁,user这个角色需要项目的主动认可,如果一个游戏没考虑user这个角色,只考虑owner,4907是不适用的。而6147只要认可owner就够了,并不用在意游戏项目和NFT本身是否支持租赁,现在大部分应用协议仍然是只认owner的,这也是4907问世后,还无法大幅度改变现状的原因,只有先适应时代潮流之中能逐渐发光发热。

另外6147也提出了“可管理的SBT”和“有效的SBT”概念,现在的SBT提案设计太注重Vitalik提出的“不可转移”特性了,但是却忽略NFT的潜在管理场景,比如社交恢复、收回SBT(比如学术不端,需要收回学位,或者一个DAO成员在社区作恶,需要收回它的SBT权限)

评论

所有评论

推荐阅读

  • 巴西央行计划于年底前推出多阶段加密货币监管

    巴西央行计划在年底前实施多阶段加密货币监管,这使得巴西的加密货币行业面临观望态度。巴西央行于2024年5月20日宣布,计划在今年年底前完成监管提案,这标志着之前预计的2024年6月完成日期的变化。巴西央行实行多阶段方法,这是基于2022年颁布的法律赋予巴西央行监管加密货币行业的权力。央行强调需要一个全面的框架,因此需要广泛的公众咨询,以制定具体的监管条例。

  • ELFi Protocol完成500万美元战略轮融资,将在Arbitrum上推出测试网

    ELFi Protocol宣布完成500万美元战略轮融资,IDG Capital和KuCoin Ventures领投。ELFi是一个去中心化衍生品交易平台,目前已经引入了创新的流动性池设计,提供业界首个低风险稳定币流动性池和LSD再抵押流动性池,据悉新资金将用于推动器在Arbitrum上推出测试网并正在进行Genesis NFT的公开Beta测试。

  • 环保加密货币挖矿项目SolarX通过Tenset Launchpad完成300万美元融资

    环保加密货币挖矿项目SolarX宣布通过Tenset Launchpad完成300万美元融资,并加入Tenset孵化器。据悉SolarX主要推动基于太阳能供电的去中心化挖矿模式,本次募集的新资金将推动其发布原生代币并推出相应服务和产品。

  • 印度财政部长: 加密货币监管需要全球共识

    印度财政部长Nirmala Sitharaman在周一接受Businessline采访时强调,全球需要就加密货币监管达成共识,Sitharaman强调了国际合作的重要性,尤其是在二十国集团(G20)内部,以应对加密货币监管方面的挑战。 上周,印度证券交易委员会(SEBI)向一个政府小组提供了关于加密资产监管的建议,主张由不同的监管机构来监督加密货币交易的各个方面。与此同时,印度储备银行也提交了其对加密货币的看法。该央行表达了自己的担忧,强调了与加密货币相关的宏观经济风险,并强调了与逃税和财政稳定相关的问题。

  • Vitalik:在我看来,10年后所有rollup都将是ZK

    以太坊联合创始人Vitalik Buterin在社交媒体表示,在我看来,10 年后所有的rollup都将是 ZK,并将提交带有最终状态根的区块到每个插槽的L1。 要实现这一目标,需要大量的基础设施和验证器优化,但这显然是最终目标。

  • 民主党高层反对数字资产法案FIT21,担心其削弱投资者保护措施和开启欺诈和市场操纵的大门

    民主党高层强烈反对《21世纪金融创新和技术法案》(FIT21),但不会强制议员投反对票。FIT21得到数字资产组织Coinbase等的支持,提供了一个监管框架,定义了数字资产并扩大了商品期货交易委员会的权力。众议院金融服务委员会排名委员Maxine Waters(D-Calif.)和众议院农业委员会排名委员David Scott(D-Ga.)在一封电子邮件中告知众议院民主党议员,他们“强烈反对”FIT21,因为该法案破坏了既定的法律先例并在传统证券市场中引起了不确定性。

  • 以太坊市值超过万事达和LVMH,全球资产市值排名升至第26位

    据Infinite Market Cap数据,以太坊当前市值达4430亿美元,超越万事达和LVMH等公司市值,在全球资产市值排名中位列第26位。

  • 以太坊链上DEX周交易量超98亿美元排名第一,7日增幅6.26%

    DeFiLlama数据显示,以太坊链上DEX过去7天交易量为98.72亿美元,排名第一,7日增幅为6.26%。
    Solana链上DEX 过去7天交易量为75.48亿美元,7日增幅为4.91%。
    BSC链上DEX过去7天交易量为 44.7亿美元,7日增幅为3.34%。
    Arbitrum链上DEX过去7天交易量为27.23亿美元,7日降幅为3.81%。
    Base链上DEX 过去7天交易量为24.74亿美元,7日增幅为18.04%。

  • 4月以太坊链上销毁54,640枚ETH,NFT交易额跌幅近35%

    据TheBlockPro数据显示,4月以太坊网络共销毁了54,640枚ETH,价值相当于1.79亿美元。数据显示,自2021年8月上旬实施EIP-1559以来,以太坊总计销毁了约478万枚ETH,价值约合120.2亿美元。此外以太坊链上NFT市场交易额大幅下降34.5%,降至约4.76亿美元,而以太坊质押收入进一步下降至2.57亿美元,跌幅16.9%,相比之下比特币矿工收入4月份下降至17.8亿美元,跌幅为11.3%。

  • 第133次以太坊ACDC会议:目标在7-10天内完成devnet

    以太坊开发者举行了第133次ACDC电话会议。首先,概述对以太坊协议确认规则的最新研究,然后,Pectra更新,围绕EIP-7547和CFI状态进行讨论,决定暂时搁置。对v1.5.0-alpha.1规格发布更新。关于devnet-0的实施更新,大多数团队进展顺利,但也有一些意想不到的复杂性,目标是在7-10天内完成devnet。 对EIP的复杂性、纳入过程和范围界定进行一些反思。接下来,介绍EIP-7684以减少"存款前置"现象,各团队正忙于devnet-0的实施工作,但在未来几个月中可以作为一个线程来完善特定的缓解措施,并正式提出EIP。 最后,讨论一下PeeerDAS,客户团队已在实施方面取得进展,围绕每个数据样本的监管数量和采样的同步假设("跟踪或不跟踪")的公开问题,同意在最初的PeerDAS测试网中,客户可以实施最适合他们的跟踪策略,因为这完全是当地的决定。希望在生产中就特定策略达成一致,但目前在最佳方法上似乎还存在分歧。 此外,由于客户团队忙于参加互操作活动,下一次ACDC将被取消,下一次ACDC将于5月30日22点举行。