ERC-3754: 一种朴素的非同质化代币标准
用于表示抽象所有权的 NFT
Authors | Simon Tian (@simontianx) |
---|---|
Created | 2021-08-21 |
Discussion Link | https://github.com/ethereum/EIPs/issues/3753 |
摘要
在这个标准中,非同质化代币代表着原子性的存在,并鼓励在其上构建抽象层。非常适合表示诸如权利等概念,这是一种抽象所有权的形式。这种权利可以采取 NFT 期权、预言机成员资格、虚拟优惠券等形式,并且由于这种代币化而可以实现流动性。
动机
非同质化代币通过 ERC-721 NFT 标准普及,用于表示“对数字或物理资产的所有权”。在开发过程中,信誉良好的 NFT 项目是关于加密资产、数字收藏品等的。拟议的标准旨在挑选出一种特殊类型的 NFT,它们非常适合表示抽象所有权,例如权利。示例包括:对智能合约进行函数调用的权利、赋予所有者购买 ERC-721 NFT 的权利(但没有义务)的 NFT 期权,以及无需支付所需代币费用即可访问预言机提供的数据馈送的预付费会员资格(时间相关的权利)。然后,可以通过此标准提供链上订阅业务模型。因此,此标准提高了 NFT 的概念清晰度。
规范
interface IERC3754 {
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
function balanceOf(address owner) external view returns (uint256);
function ownerOf(uint256 tokenId) external view returns (address);
function approve(address to, uint256 tokenId) external;
function getApproved(uint256 tokenId) external view returns (address);
function setApprovalForAll(address operator, bool approved) external;
function isApprovedForAll(address owner, address operator) external view returns (bool);
function transferFrom(address from, address to, uint256 tokenId) external;
function safeTransferFrom(address from, address to, uint256 tokenId) external;
function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) external;
}
理由
ERC-721 标准中定义的 NFT 已经被广泛接受并被认为是代表数字资产的所有权,而此标准中的 NFT 旨在被接受并被认为是代表抽象所有权。这是通过允许和鼓励在其上构建抽象实用程序层来实现的。拥有此类 NFT 相当于拥有执行分配给此类代币的函数的权利。由于这种代币化,此类权利的转移也变得更加容易。为了进一步区分此标准与 ERC-721,排除了与 URI
相关的数据字段和函数。
向后兼容性
不需要进一步的向后兼容性。
参考实现
https://github.com/simontianx/ERC3754
安全性考虑
鉴于代币的铸造无需提供 URI
,因此安全性从 ERC721 得到增强。可以避免处理 URI
时的错误。
版权
版权及相关权利通过 CC0 放弃。
Citation
Please cite this document as:
Simon Tian (@simontianx), "ERC-3754: 一种朴素的非同质化代币标准 [DRAFT]," Ethereum Improvement Proposals, no. 3754, August 2021. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-3754.