NFT 开发者:谈谈我对 ERC-4907 的三点疑问
昨天,我被朋友圈里铺天盖地的 ERC-4907 和 Double Protocol 刷屏了。
作为一个从事 NFT 相关开发工作的 以太坊 社区开发者,笔者非常关注 NFT 生态相关的最新发展,因此在获取到该消息的第一时间,在好奇的驱动下,便对其定义的标准和具体实现进行了一番研究。然而,笔者在深入探究的过程中,碰到了几点疑惑。
首先,什么是 Double Protocol 和 ERC-4907
Double Protocol 是一个基于以太坊的 NFT 租赁协议,NFT 的所有者可以通过该协议授权自己的 NFT 给租赁者使用,而 NFT 本身无需被转让。由于这种特性,Double Protocol 可以实现无抵押的 NFT 租赁。该协议可以支持所有 ERC-721 NFT,支持分租等具体 NFT 租赁场景。
NFT 租赁,这是一个真命题吗?
随着 GameFi 和 NFT 的发展,NFT 被用于越来越多的场景,被赋予了更多的用例。我们看到 NFT 从单纯的头像小图片,发展到承载更多的接近于现实世界的功能与用途,也就是所谓的“Utility NFT(功能性 NFT)”,这就好比汽车可以开,房子可以住。NFT 越来越接近于现实世界的”商品或服务“。而一个商品除了可以买卖(发生物权转移)以外,当然也可以通过租赁来实现使用价值的转移。所以笔者认为,NFT 租赁这一场景不但站得住脚,而且未来将会越来越扩大,并且场景会越来越具体,就好比我们时间线中的租车、共享汽车、短租房等等。
然而,在详细阅读 Double Protocol 以及 EIP-4907 文档的过程中,笔者发现了几个问题,并且不禁对于该协议的原创性,可使用性和可靠性,产生了一些疑问。本文仅提出笔者发现的疑问,并欢迎整个加密社区对此进行更广泛的讨论:
疑问一:ERC-4907 协议是否不完备
ERC-4907 在 ERC-721 的基础上增加了名为 user 的用户权限,该权限具有一段有效期,NFT 的持有人和被授权的人都可以在任意时刻对 NFT 的 user 进行设置。不难理解,ERC-4907 拓展了一个新角色并以此来记录 NFT 的租赁人信息,但租赁人本身不具有任何权限,其权限由支持该 NFT 的应用自行赋予和定义。
这是一个思路上比较灵活的方案,但以此来实现租赁的功能,依然存在非常多的问题。在 ERC-4907 的实现里,User 的信息会在每一次 transfer 时被重置,且 User 随时可以被 NFT 的持有者或者已授权的人设置或更新。如果我们把设置 user 的行为视作租约的签订,那么随时可以更新 user 的行为就意味着这一租约是可以随时被破坏的,这显然侵犯了租赁人该有的权益,并且为整个租赁关系带来很大的不确定性。在这样的前提下,即租赁合约随时可以被改动的情况下,租赁期限(expires)已经毫无存在的必要性。
对于这一问题,社区中也有人提出。对此,ERC-4907 的发起人回应道,真正的租赁功能需要再通过一个租赁合约来实现。
也就是说,ERC-4907 协议本身不实现租赁功能,在进行租赁时,还需要引入一个应用级别的租赁合约。如此,笔者对 ERC-4907 协议本身的完备性提出质疑。如果这套协议本身不是一个完备的协议,无法在用户和应用之间直接实现租赁功能,必须再有一个应用级别的合约介入,则这套协议不能称为真正意义上的协议。此外,即使在这种情况下,expires 依然是一个无存在必要的信息,看起来这更像是以一种强耦合的方式,把一个应用级产品可以实现的字段信息,记录在了协议里。
疑问二:以太坊社区中已有人提出高度类似的提案
为了解决上述疑惑,笔者对此进行了一番搜索。在寻找资料的过程中,笔者发现两个与 EIP-4907 设计思路高度相似的提案。第一个是 AFKDAO 项目的 ERC-4610。该提案提出在 ERC-721 的基础上拓展一层名为 delegator 的角色,并通过租赁合约最终实现完整的租赁功能。据信目前有超过 30 个游戏项目采用该协议。
图为 ERC-4610 技术文档基于游戏用例给出的技术示意
在 AFKDAO 项目中,笔者也找到了符合 Double Protocol 描述的特性“与 ERC-721 完全适配,无抵押,可分租”的应用实例,这就是 AFKDAO 中采用 ERC-4610 协议的 Aggregator。
Aggregator 的用途主要是允许游戏 NFT 的所有者将 NFT 以无抵押的方式授权给租赁者,并且可以直接获得游戏 P2 E 收益的分成。该应用于 2022 年 3 月上线,根据链上记录已有相当数量的交易完成。
EIP-4907 提案实现租赁功能的方式,以及用 WNFT 向前兼容的方案都与 EIP-4610 提出的方案如出一辙。这让笔者好奇二者之间是否存在某种借鉴?对比二者提出时间,EIP-4907 在 22 年 3 月提出,EIP-4610 在 21 年 12 月提出(读者可自行查阅:https://GitHub.com/AFKDAO/EIPs/blob/master/EIPS/eip-4610.md)。
关于这个问题,笔者在一篇文章中找到了相关的说明:
Double Protocol is not the first of its kind to utilize the Dual-Role model to separate the usage and ownership of NFTs. Nevertheless, the team noticed a lack of consensus on naming and implementing the Dual-Role mechanism, which makes collaboration difficult. This is why Double Protocol proposed EIP-4907.
由此可见,ERC-4907 的提出者借鉴过其他同类型协议的设计,但因为名字的命名不同,选择自行提出了 EIP-4901 提案。
第二个是 EnterDAO 的 EIP-4400,协议的核心思想与 ERC-4907 一致,于 21 年 10 月提出。EnterDAO 提出了两款产品:LandWorks 和 MetaPortal。值得一提的是 LandWorks 与 Double Protocol 一样,选择了从 Decentraland 租赁开始入手。并且也有一个与 Double Protocol 相同的土地地块 P2 P 租赁市场。
同时 EIP-4400 也是目前笔者能找到的最早提出以权限拓展的方式实现租赁的提案,也是目前以太坊开发社区中讨论活跃度最高的。
疑惑三:提案讨论是否充分
对于 ERC-4907 协议完备性及其实现存在诸多考虑不周的问题,笔者也尝试在社区中寻找相关的讨论。但结果出乎意料,关于 ERC-4907 的讨论非常少,笔者也在这个过程中注意到另一问题:EIP-4907 提案从提出到审核通过进入 final 状态,仅仅用时三个月。
熟悉以太坊社区工作效率的朋友都知道,这个时间快得有些不符合常态。举几个例子,ERC-1155 从提出到进入 final 用了 12 个月,ERC-777 用了 18 个月,ERC-820 则花了 15 个月。
对此,笔者感到甚是疑惑。在提案通过前,社区中就有人对这一提案提出了包括关于 user 的命名是否足够清晰等等问题,但没有得到回复和响应。整个提案似乎是在一种没有充分讨论和验证的情况下进入 final 状态的,这多少显得有些匆忙了,不太符合对于以太坊提案需要社区反复讨论、battle、修改的一贯认知。
笔者认为,EIP 协议讨论沟通的过程是与社区建立广泛共识的过程。广义上来,协议总是建立在共识而非提案状态的基础上。而像 ERC-4907 这类如此仓促通过的提案能否建立起广泛共识还有待考察。
结语
NFT 租赁无疑是未来 NFT-DeFi 的重要组成部分。就协议而言,EnterDAO,AFKDAO,Double Protocol 都是这一领域的先行者。但就开发者层面而言,实现互操作性的前提是协议的一致性。如同 ERC-721 和 1155 这样高开发者共识的协议开启了 NFT 的大规模应用一般,笔者希望这三个项目的开发者可以达成某种程度的协同,完善出一个统一的、高可采用性的 NFT 租赁协议,而不是各自为战,让 NFT DeFi 又回到当前 GameFi 项目那样“一个项目一标准”的老路上。