通过EIP-5114了解「灵魂绑定Token」的概念

原文作者:隔夜的粥

今年一月份,以太坊联合创始人 vitalik 发表了一篇题为《Soulbound》的文章,里面提到了灵魂绑定这一概念的出处——《魔兽世界》,以及由此联想到的不可转让的「灵魂绑定 NFT」的概念。

到了 5 月份,E. Glen Weyl、Puja Ohlhaver 以及 vitalik 又联合撰写了一篇题为《去中心化社会:找寻 Web3 的灵魂》的论文,谈及了灵魂绑定 NFT(又称 SBT)的多种使用场景,其中包括无抵押借贷、社交恢复钱包、灵魂空投、DAO 防御等。

那么「灵魂绑定」到底意味着什么,以及相关的 Token 标准讲了一些啥?

本文先通过《魔兽世界》的规则来解释灵魂绑定这个概念,再通过 Micah Zoltu 撰写的《EIP-5114:灵魂绑定 Token》标准草案来帮助大家进一步认识灵魂绑定 NFT(SBT)的意义。

魔兽世界里的「灵魂绑定」

在《魔兽世界》这个游戏当中,很多顶级装备或游戏道具都是存在「Soulbound」这个设定的,简单理解就是玩家在拾取后,这些物品就会和游戏角色进行绑定,无法在交易市场进行流通。

通过EIP-5114了解「灵魂绑定Token」的概念

(例如,玩家组团杀死黑暗神殿中的最终 BOSS 伊利丹之后,就有极小的机率获得外表酷炫的橙色武器埃辛诺斯战刃。)

相比那些由玩家锻造出来、可交易的武器装备,同等级的灵魂绑定装备属性要更好,也更难以获得。

那么「灵魂绑定」物品真的就是不可交易的吗?

并非如此,实际上,聪明的玩家们早就通过两种方式绕过了这种绑定。

第一种是所谓的「G 团」服务,简单说就是组织者(团长)组建一只专业过游戏副本的团队,并空出几个位置留给对「灵魂绑定」物品有需求的消费型游戏玩家,一旦出现了他们需要的「灵魂绑定」物品,就可以进行拍卖活动,而消费者支付的费用,最后需要在「G 团」内部进行分配,通过这种方式,「灵魂绑定」变相实现了可交易,但仅限于绑定前。

除此之外,即便是「灵魂绑定」后的装备、物品或坐骑,也可以通过账户交易的方式进行转移,也就是说,魔兽世界里的「灵魂绑定」概念,并不是指完全不可转移的意思,它只是和游戏角色进行了绑定。

通过EIP-5114了解「灵魂绑定Token」的概念

(注:图片来自某第三方交易平台)

那 vitalik 等人提出的灵魂绑定 NFT(SBT)的概念又是什么样的呢?我们可以通过 EIP 5114 这个 Token 标准草案来进行了解。

(注意,该 EIP 目前还是 Draft 阶段,因此后期可能会出现一些更改,此外,Tim Daubenschtz 等人也撰写了一个类似的 EIP-4973 Token 标准,因此哪个标准最终会被社区广泛接受,目前还存在较大的不确定性)。

EIP 5114:灵魂绑定 Token(Soulbound Token)标准

描述:在铸造时附着在「灵魂」之上的 Token,此后无法转移这种 Token。 

作者:Micah Zoltu (@MicahZoltu) 

状态:草案阶段(Draft) 

类别:ERC 

创建时间:2022-05-30 

要求:EIP 721

摘要

灵魂绑定 Token 是指在铸造时绑定到另一个非同质化 Token(NFT,例如一个 EIP-721 Token)的 Token,并且在铸造后不能进行转移。

规范

```solidity 

interface IERC5114 { 

//在创建这类 Token 的新实例时激发 

//此事件 ** 不能 ** 为同一个 `tokenId` 激发两次 

event Mint (uint256 indexed tokenId, address indexed nftAddress, uint256 indexed nftTokenId); 

//返回拥有该 token 的 NFT token 

//如果 token 还没有被铸造,这个函数 ** 必须 ** throw 

//此函数 ** 必须 ** 在每次生成后调用时始终返回相同的结果 

//此函数 ** 必须 ** 返回与原始 `Mint` 事件中为 token 找到的值相同的值 

function ownerOf (uint256 index) external view returns (address nftAddress, uint256 nftTokenId); 

//返回一个抗审查的 URI,其中包含有关此 token 集合的详细信息; //由此返回的元数据与通过 `tokenUri(uint256)` 返回的元数据合并 

//collectionUri** 必须 ** 不可变且内容可寻址(例如,IPF://) 

//collectionUri** 不能 ** 指向可变/可审查的内容(例如 https://) 

//来自「tokenUri」的数据优先于此方法返回的数据 

//`collectionUri` 中的内容引用的任何外部链接也必须 ** 遵守上述所有规则 

function collectionUri () external view returns (string collectionUri); 

//返回一个抗审查的 URI,其中包含有关此 token 实例的详细信息 

//tokenUri ** 必须 ** 是不可变的并且内容可寻址(例如,ipfs://) 

//tokenUri ** 不能 ** 指向可变/可审查的内容(例如,https://) 

//来自此的数据优先于 `collectionUri` 返回的数据 

//`tokenUri` 中的内容引用的任何外部链接也必须 ** 遵守上述所有规则 

function tokenUri (uint256 tokenId) external view returns (string tokenUri);

基本原理

1、不变性 

通过要求 token 永久不可移动,我们既保证绑定到单个 NFT 的灵魂绑定 token 集合之间的不可分离性和不可合并性,同时允许用户积极缓存结果。

2、需要 URI 内容可寻址 

灵魂绑定 token 是附加到一个角色上的永久徽章/指示器。 这意味着不仅用户不能转让所有权,而且铸造者本身也不能撤回、转让或更改所有权。 这包括了转换或删除任何远程内容,作为审查或操纵特定用户的手段。

3、 tokenUri 数据格式 

「collectionUri()」和「tokenUri(uint256)」指向的数据格式被有意排除在本标准之外,以支持将来可以迭代的单独标准。 无论数据格式的细节如何,不变性约束是唯一定义的东西,以确保维护这个 token 的精神。

向后兼容性

这是一种新的 token 类型,并不意味着向后兼容除现有可行灵魂(如 EIP-721 Token)之外的任何现有 Token。

安全注意事项

一些项目方可能会声称实施了这个 EIP,而对于用户而言,我们需要验证他们是否如实做到了这一点。 

Token 作者可以创建一个 token,当我们在对其 API 表面进行初始探测时,它可能看起来遵循了规则,但实际上并非如此。 

例如,合约可允许通过某种机制进行转账,而只是最初不使用它们。 

还应该明确的是,灵魂绑定 Token 并不是绑定的人类,而是绑定到了一个角色。 

而角色是指随着时间的推移,收集多个灵魂绑定 Token 以建立徽章集合的任何参与者(甚至可以是一群人)。 

这个人物角色可能会转移给另一个人或另一组人,并且与角色交互的任何人,都不应假设该角色背后有一个永久不变的人。 

此外,一个灵魂绑定 Token 可以绑定到另一个灵魂绑定 Token。 

理论上,如果链中的所有 Token 同时创建,它们可能会形成一个 loop 循环。如果检测到循环,尝试走这样一条链的软件应该注意制定退出策略。

版权

通过 [CC0](../LICENSE.md) 放弃版权和相关权利。

关于灵魂绑定 NFT 的一点看法

相比魔兽世界这类游戏,区块链账户的可转让性会更低,因为私钥与用户地址是绑定的,这意味着即便某个区块链账户存在着较大的价值,用户之间也无法有效通过第三方平台或私下的方式进行账户交易(存在着巨大的风险)。

尽管如此,我们依旧不能简单假设「灵魂绑定 NFT」就是与用户本身进行了绑定,而是需要考虑「灵魂交易」的可能性,因此,对于无抵押借贷用例而言,可能仅仅依靠链上信用值是不够的,而其他的一些灵魂绑定 NFT 用例,或多或少都会存在这样的问题。

在笔者看来,「灵魂空投」可能会是和大家最息息相关的一个点,就目前而言,web3 项目方为了更好地建立社区,会选择给早期活跃用户空投免费的 Token,而这自然鼓励了女巫攻击行为(即一个用户使用多个地址进行交互),结果是,项目方想法设法去拉黑女巫账户,而用户则在想法设法躲避反女巫措施,这对双方而言都是不利的。

而「灵魂空投」的方式,可以让项目方更准确地瞄准目标空投用户,这反过来也鼓励用户精心培养自己的「灵魂」,而不是将时间与精力放到女巫攻击上面。

总的来说,「灵魂绑定 NFT」作为 vitalik 等人提出的去中心化社会的核心概念,它依旧处于非常早期的发展阶段,另一方面,对于用户来说,想办法让自己的「灵魂」变得有趣,可能会是非常有价值的。

相关资料:

1、https://vitalik.ca/general/2022/01/26/soulbound.html

2、https://www.defidaonews.com/article/6750230

3、https://github.com/ethereum/EIPs/pull/5114/files

原文链接

如有疑问联系邮箱:微信:ETH_88889
*本文转载自网络转载,版权归原作者所有。本站只是转载分享,不代表赞同其中观点。请自行判断风险,本文不构成投资建议。*