本文介绍了灵魂绑定代币(Soulbound Tokens, SBTs)的概念及其与非同质化代币(NFTs)的区别,并探讨了其在数字身份和认证等领域的应用。文章深入介绍了ERC-5114和ERC-5484这两个与SBT相关的标准,阐明了它们的特性、用途及实现方式。
了解什么是 Soulbound Tokens(SBTs),它们与 NFTs 的区别,以及通过 ERC-5114 和 ERC-5484 深入探讨数字身份和认证等用例。
在本文结束时,你应该能清楚理解什么是 Soulbound Tokens(SBTs)、ERC-5114 和 ERC-5484,它们与非同质化代币(NFTs)之间的区别,以及它们的潜在用例。
Soulbound tokens 是绑定到个人数字身份的资产(代币),不能被交换、移动或转让。Puja Ohlhaver、Glen Weyl 和 Vitalik Buterin 最早在他们的论文 《去中心化社会:寻找 Web3 的灵魂》 中提出了这个概念。
Soulbound token 听起来像是你在《龙与地下城》的游戏中获得的某种物品,比如一个与灵魂永远相连的魔法物品。这并不远离事实。Soulbound tokens 的灵感来自流行的 MMORPG 《魔兽世界》,在该游戏中,一些物品永久地附加在角色上,无法出售。
实际上,Soulbound tokens 是一种永久绑定到一个钱包或“灵魂”的代币。技术上,“灵魂”与钱包并不相同,因为它们旨在表示一个持久的数字身份,涵盖凭证、隶属关系和社交关系。而传统钱包主要关注管理和转移数字资产。然而,到目前为止,所有以太坊改进提案(EIPs)和 Soulbound tokens 的实现都是为运行在以太坊上的常规钱包设计的。因此,在本文的其余部分,我们将重点讨论存储和管理在标准以太坊钱包内的 SBTs。
Soulbound Tokens (SBTs) 基于与非同质化代币 (NFTs) 相同的原则。它们不是可替代的,因此是独特且不可互换的。Soulbound tokens 和非同质化代币都有一个 Token URI 来存储元数据,如描述、图像和其他细节。
SBTs 和 NFTs 之间的核心区别是 可转让性。Soulbound tokens 是 不可转让的。一旦铸造到钱包中,代币就不能转移到其他帐户、出售或列为可交易资产。
由于 SBTs 和 NFTs 之间的主要区别是 不可转让性,我们可以使用标准的 ERC-721 代币创建一个 SBT,并重写转移函数。
例如:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
contract LameSBT is ERC721 {
constructor() ERC721("LameSBT", "LSBT") {}
function mint(address to, uint256 tokenId) external {
_mint(to, tokenId);
}
// 👇👇👇 这里是重写的函数 👇👇👇
function transferFrom(
address from,
address to,
uint256 tokenId
) public override {
revert("LameSBT: Tokens are non-transferable");
}
function safeTransferFrom(
address from,
address to,
uint256 tokenId,
bytes memory _data
) public override {
revert("LameSBT: Tokens are non-transferable");
}
}
去除可转让性将标准的 ERC-721 NFT 转变为 Soulbound Token。然而,这是一种不完整的实现,尤其是因为 SBTs 的许多用例需要的不仅仅是阻止代币转账。
一个大的担忧是不法分子可能在未经同意的情况下向用户钱包发行 Soulbound tokens,并永久将其绑定在上面,因此诸如放弃所有权等额外功能是可取的。让我们探索一下它的用例,以了解 Soulbound Token 可能需要哪些其他功能。
任何需要不可转让的真实性和信息存储认证的场景都是 Soulbound tokens 的潜在用例。让我们探讨一些流行的示例。
高中、大学、职业学校、认证项目和其他任何机构可以在成功完成某一学科后发行 Soulbound tokens。除了纸质证书外,学生还可以收到作为 Soulbound token 的文凭或完成证书,使学生的资质可以在全球范围内轻松验证,以满足申请另一个国家的硕士学位的任何过程或要求。
在这种情况下,SBT 合约将需要某种撤销或更新机制,以应对机构发现欺诈、不道德行为或其他取消资格事件的情况。
医生和医院可以以 SBT 的方式共享医疗记录、治疗建议和测试结果,以确保隐私、可访问性和数据所有权。SBT 合约还必须包括严格的访问控制,允许进行更新和更正,并支持时间限制的医疗专业人员访问,以促进治疗计划。
金融机构或信用机构可以发行 Soulbound tokens,以反映用户的信用历史,包括评分和还款记录。合约必须允许更新以反映信用状况的变化,并提供撤销或更正错误数据的机制。另一方面,这种类型的 SBT 可以设计为“过期”或仅在某个时间点提供数据,要求个人在需要新的信用报告时请求新的 SBT。
Soulbound Tokens 的用例众多,所有用例都需要独特的方法,以提供超出简单阻止转移的用例特定功能。
由于解决方案比单纯重写 NFT 合约的转移函数更复杂,多个 Soulbound token 标准提案已由以太坊社区提交。
以太坊社区推出了两个用于 Soulbound Tokens 的标准,以考虑以上提到的细微差别:ERC-5114 和 ERC-5484。这些标准解决不同的用例,并提供实施不可转让代币的独特功能。
ERC-5114 引入了一种“Soulbound Badge”,这是一种在铸造时永久绑定到特定 NFT 的代币。此徽章是 不可转让的,作为凭证或成就的持久标识符。该标准确保代币的元数据和 URI 不可变,非常适合数字认证等应用,在这些应用中,永久性至关重要。
该徽章设计为永久附加到现有 NFT 上,直接将其链接到持有者的身份或资产,确保其在整个生命周期内与原始 NFT 相关联。
规范
interface IERC5114 {
event Mint(uint256 indexed badgeId, address indexed nftAddress, uint256 indexed nftTokenId);
function ownerOf(uint256 badgeId) external view returns (address nftAddress, uint256 nftTokenId);
function collectionUri() external pure returns (string collectionUri);
function badgeUri(uint256 badgeId) external view returns (string badgeUri);
function metadataFormat() external pure returns (string format);
}
ERC-5484 定义了创建 SBTs 的框架,这些 SBTs 在发行之前需要相互同意,并指定不可变的销毁授权。该标准基于 ERC-721 接口,确保与现有 NFT 基础设施的兼容性。
ERC-5484 的关键特性是预定义的销毁权,这允许代币在发行时商定的条件下被销毁。例如,用户可以根据需要放弃所有权,或机构可以如果代币是通过作弊获得的则销毁该代币。这使得 ERC-5484 适合信用历史或会员记录等用例,其中代币的存在可能需要根据预定义规则被撤销或更新。
ERC-5484 Soulbound Token 规范
// SPDX-License-Identifier: CC0-1.0
pragma solidity ^0.8.0;
interface IERC5484 {
enum BurnAuth {
IssuerOnly, // 只有代币创建者可以销毁它。
OwnerOnly, // 只有所有者可以销毁它。
Both, // 所有者和发行者均可销毁它。
Neither // 一旦铸造就永远与你的灵魂相连。
}
event Issued (
address indexed from,
address indexed to,
uint256 indexed tokenId,
BurnAuth burnAuth
);
function burnAuth(uint256 tokenId) external view returns (BurnAuth);
}
该接口根据枚举的位置定义销毁授权,因此 ERC 标准在管理方式上提供了广泛的灵活性。
在本指南中,我们学习了 Soulbound 加密代币是什么,它们如何工作以及它们的用例。Soulbound Tokens 代表了区块链技术使用的重要演变,超越了金融资产。SBTs 为数字身份、认证、声誉管理等引入了新的范式。实施 ERC-5114 和 ERC-5484 等标准使开发者能够创建不可转让且本质上与用户数字身份相连的代币,而传统的 NFTs 无法实现这一点。
对于希望掌握智能合约开发和安全的开发者,包括 Uniswap 等其他高级协议,Cyfrin Updraft 提供顶尖课程,由行业专家主讲。
- 原文链接: cyfrin.io/blog/what-is-a...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!