由 @bcfh
TL; DR#
角色绑定代币是一种非可转让的 NFT,它们与角色绑定,展示了您在 Crossbell 上完成或拥有的成就和独特经历。
什么是角色绑定代币(CBTs)#
CBTs 的概念源自灵魂绑定代币(SBT)。SBTs 绑定于灵魂(人们的身份),而 CBTs 绑定于角色(用户的身份)。SBT 是一种新型的代币标准,由 Vitalik Buterin 首次引入,它适用于一种情景,即您能够为 NFT 出价多少并不重要,重要的是您所做的和您所取得的成就(例如驾驶执照、大学学位或在多人在线游戏中击败一些极难的怪物)。
CBTs 具有相同的目的。Crossbell 是一个主要用于社交活动的所有权平台,每个希望为用户参与或成就发行凭证的应用程序都应使用 CBTs 标准。例如,Crossbell.io是一个在 Crossbell 链上运行的官方应用程序,其成就 NFT 是 CBTs 如何使用的很好的例子。成就 NFT 通过向完成特定要求的角色(如拥有足够的关注者或点赞)发行 erc1155 代币,来庆祝和展示用户在 Crossbell 上的旅程。
因为crossbell.io上的社交活动是由角色作为主体发起的,所以 CBTs 是铸造给角色并与之绑定的。这些成就不能单独出售或转让,除非您将整个角色连同与之绑定的 CBTs 一起转让,这使得 CBTs 在某种程度上是不可转让的。
CBTs 如何工作#
Crossbell 是一种与以太坊或其他公共链不同的社交区块链。在以太坊上,人们常常会创建多个地址,代表不同的身份,用于各种场合。例如,人们可能会创建新地址,专门用于与 Dex 或 NFT 项目进行交互。这可能是出于资产安全的原因,但它确实带来了很多麻烦,因为您必须管理许多地址及其对应的私钥,并承诺它们不会泄露或混乱。在 Crossbell 上,您永远不需要保留多个地址和私钥,您只需要持有一个地址和一个私钥,因为您可以创建多个角色,并使用不同的角色与不同的应用程序进行交互,这为 Crossbell 支持不可转让功能带来了本地优势。
在发行时,CBTs 被铸造给角色,因此它们与角色绑定,并属于角色。转移功能受到限制,因此您无法转移 CBTs,除非您转移整个角色。
function safeTransferFrom(
address,
address,
uint256,
uint256,
bytes memory
) external virtual override {
revert("non-transferable");
}
/**
* @dev See {IERC1155-safeBatchTransferFrom}.
*/
function safeBatchTransferFrom(
address,
address,
uint256[] memory,
uint256[] memory,
bytes memory
) external virtual override {
revert("non-transferable");
}
如上所示,当调用转移功能时,它会以错误消息 "non-transferable" 回滚。
总结#
非可转让代币的概念正在流行,但在实施过程中仍有许多尚未探索的方面需要仔细考虑,但我们在 Crossbell 希望成为先驱,并在实践中逐步完善和推广这一概念。