Limit Break 发布了一种新的 NFT 解决方案,通过一种新颖的质押方案,在任何 ERC-721 合约上实现可选择的、后向兼容的、可编程的版税合约。该方案旨在让创作者能够决定如何在智能合约层面上分配版税,并为NFT带来更多应用场景,例如,创作者可以设置最低销售价格,并且可以动态调整版税的分配方式。
Limit Break 正在引入选择加入的、向后兼容的、可编程的版税合约,这些合约通过一种新颖的 staking 解决方案,可以在任何 ERC-721 合约上运行。我们最初的目标仅仅是让创作者能够决定如何在智能合约层面上分配版税,但是正如你将在下面读到的,本次发布将允许大量的应用,并有可能从根本上重塑 NFT 格局。
重要的是,这些链上版税在单个 token 层面是可执行的,这意味着每个单独的 NFT 都可以拥有自己的可编程版税。这个系统是选择加入的,所以如果一个新的或现有的 NFT 系列决定实现这个解决方案,他们的每个收藏者都保有权利决定是否“stake”并选择加入他们的 NFT(或者,有可能选择退出)。
版本 1 引入了“stake 以选择加入”和“转移白名单”模型,版本 1.1 将是可编程版税和最低价格的完整实现。请在我们的 Github 中阅读代码和文档,以获取完整的技术细节。
非同质化 Token(NFTs) 是区块链采用的一个重大突破,它促成了 Web3 生态系统的崛起,并将大量新用户引入区块链生态系统。但如果我们要诚实地说,目前大多数 NFT 都相当无聊。
当前的 NFT 市场充斥着指向 JPEG 图片的相同智能合约的简单副本。除了少数值得注意的例外,几乎所有的 NFT 都仅限于三个功能:
虽然这种简单的格式足以让 NFT 在 2021 年进入主流市场,但这对于 2023 年即将发生的事情来说是不够的。
在 NFT 艺术和“头像”市场在 2021 年爆发后,它在 2022 年经历了严重的收缩。虽然这无疑部分是由于几乎所有市场(尤其是加密货币市场)的全球性衰退,但我们认为这种建立在简单去中心化图像所有权之上的早期 NFT 市场永远无法实现广泛采用,尤其是在 NFT 游戏领域。相反,我们需要更先进的技术。
即使预计基于 NFT 的游戏内物品的玩家所有权会增加,我们仍然认为,只有通过大胆的技术变革,才能释放 NFT 技术彻底改变游戏行业的潜力。我们认识到,缺乏对游戏内物品 NFT 经济边界的控制,阻碍了游戏设计师开发出将 Web3 推向新高度所需的平衡的游戏内经济。
更加剧了这些限制的是,NFT 行业在 2022 年末经历了一种新的生存威胁,交易所——渴望流动性——在争夺流动性的战斗中转向“零版税”或“版税可选交易”。这种行业转变暴露了当前 NFT 结构中的两个根本缺陷。首先,尽管 Web3 的精神是去中心化和无需信任,但权力结构从根本上偏向少数中心化交易所,而不利于众多创作者。其次,现在正在消亡的通用创作者版税的行业标准仅仅作为一种社会契约而存在,而不是在链上可执行的。按照目前的趋势,许多创作者将直接离开这个领域,或者根本不进入这个领域。
Limit Break 决心推动 NFT 的进化,并深思熟虑地引领一场建立在区块链技术之上的游戏文艺复兴。我们努力为 NFT 社区做出贡献,同时激励其他创新者开拓新的实用性和新颖的机制,这些机制将为游戏内经济以及与其他项目的互操作性提供动力。
为此,我们宣布公开发布我们的 以创作者为中心的智能合约,一个 NFT 合约库,其中包含一个选择加入的 staking 解决方案,该解决方案将升级预先存在的 NFT,并为未来的 NFT 做好 Web3 游戏革命的准备。] (https://github.com/limitbreakinc/creator-token-contracts)。
这是最简单的场景,创作者只需要基本的 ERC-721,但想要使用白名单来确定他们的 token 可以在哪里交易。以下工作流程展示了开发、部署和配置具有转移白名单的新系列的过程。
以下代码演示了一个简单的示例,展示了如何部署一个内置转移白名单功能的新系列。
pragma solidity ^0.8.4;
import "@limitbreak/creator-token-contracts/contracts/whitelist/WhitelistedTransferERC721.sol";
/// @dev 通过继承 WhitelistedTransferERC721 并分配转移白名单注册表
/// 转移会自动限制为白名单中的调用者。
contract MyCollection is WhitelistedTransferERC721 {
constructor() ERC721("MyCollection", "MC") {}
function ownerMint(address to, uint256 tokenId) external onlyOwner {
_mint(to, tokenId);
}
function burn(uint256 tokenId) external {
require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: caller is not token owner nor approved");
_burn(tokenId);
}
function _baseURI() internal view virtual override returns (string memory) {
return "https://my.nft.com/mycollection/metadata/";
}
}
在这个场景中,创作者希望将白名单转移和其他功能添加到旧的不可变的系列中。Token 持有者通过 stake 他们的旧 NFT 来选择是否加入升级。以下工作流程展示了开发、部署和配置系列升级的过程。
当用户选择加入升级时,他们真正做的是将他们的 token stake 到一个 Creator ERC721 包装合约中,并铸造其包含升级功能的包装等价物。这是一个简单的两步过程,需要两个交易。首先,用户批准 Creator ERC721 包装合约转移他们未升级的 token。其次,用户调用 stake(uint256 tokenId) 函数。Stake 函数会铸造一个具有相同 id 的升级 token,并将之前的 token 锁定在合约中。这个过程在下面的图表中以可视化方式表示。
在设计升级合约时,创作者的一个关键决定是是否允许 stake 的 token 被取消 stake。如果开发者允许这样做,用户可以通过取消 stake、销毁升级的 token 和解锁原始 token 来降级他们的 token。通常有五种选择:
下图描述了用户的取消 stake/降级过程。
以下代码片段演示了如何扩展各种类型的 Creator ERC721 token 来升级一个系列。
pragma solidity ^0.8.4;
import "@limitbreak/creator-token-contracts/contracts/presets/PermanentCreatorERC721.sol";
import "@limitbreak/creator-token-contracts/contracts/presets/PaidUnstakeCreatorERC721.sol";
import "@limitbreak/creator-token-contracts/contracts/presets/TimeLockedUnstakeCreatorERC721.sol";
/// @dev 通过继承 PermanentCreatorERC721 并分配包装的系列
/// 地址,token 持有者可以发起永久 token 升级。
contract MyUpgradedCollection is PermanentCreatorERC721 {
constructor(address myV1Collection) CreatorERC721(myV1Collection, "MyCollection (V2)", "MC") {}
function _baseURI() internal view virtual override returns (string memory) {
return "https://my.nft.com/mycollectionv2/metadata/";
}
/// TODO: 可选地,在此处添加额外的实用程序/功能
}
/// @dev 通过继承 PaidUnstakeCreatorERC721 并分配包装的系列
/// 地址,token 持有者可以发起 token 升级。升级的 token 可以
/// 通过支付费用降级到之前的版本。
contract MyUpgradedCollection is PaidUnstakeCreatorERC721 {
constructor(uint256 unstakePrice, address myV1Collection) PaidUnstakeCreatorERC721(unstakePrice, myV1Collection, "MyCollection (V2)", "MC") {}
function _baseURI() internal view virtual override returns (string memory) {
return "https://my.nft.com/mycollectionv2/metadata/";
}
/// TODO: 可选地,在此处添加额外的实用程序/功能
}
/// @dev 通过继承 TimeLockedUnstakeCreatorERC721 并分配包装的系列
/// 地址,token 持有者可以发起 token 升级。升级的 token 可以
/// 在时间锁过期后降级到之前的版本。
contract MyUpgradedCollection is TimeLockedUnstakeCreatorERC721 {
constructor(uint256 timelockSeconds, address myV1Collection) PaidUnstakeCreatorERC721(timelockSeconds, myV1Collection, "MyCollection (V2)", "MC") {}
function _baseURI() internal view virtual override returns (string memory) {
return "https://my.nft.com/mycollectionv2/metadata/";
}
/// TODO: 可选地,在此处添加额外的实用程序/功能
}
将一个或多个可以执行转移的受信任运营商列入白名单的模式,实现了以前不可能实现的新型可组合功能。现在可以在 NFT 的转移周围构建新功能,而无需将自定义功能直接构建到 NFT 合约本身中。此外,可以通过简单地修改转移白名单来扩展或升级这些功能。围绕 NFT 转移构建的新功能可能会改变 Web3 游戏和整个 NFT 行业。在本节中,我们将介绍 Limit Break 正在版本 1.1 中使用此模式积极开发的两个新功能的案例研究。
一个专门的 最低价格运营商 合约将允许创作者在单个 token 或整个系列中定义其系列中 NFT 的最低销售价格。
声誉卓著的精英艺术家可能会避免创作 NFT 艺术品,因为他们担心如果他们的作品以低于传统艺术品的价格出售,他们的品牌会受到损害。由于传统的艺术品通常缺乏流动性,因此对于这类用户来说,强制执行最低销售价格可能会伴随流动性降低可能不会引起关注。
最低价格运营商赋予游戏开发者权力的一些例子包括,但不限于:
最低价格运营商 最令人兴奋的方面是通过使链上版税在合约层面可执行来改变 NFT 行业的力量。即使最低价格设置为零,强制市场销售的控制流和资金必须通过 最低价格运营商 合约,也可以保证使用 EIP-2981 在链上定义的市场费用和版税将以无需信任的方式得到尊重,而这正是 NFT 版税应该一直运作的方式。
过去,可以通过将版税支付路由到一个支付分配器合约来以静态方式共享版税支付,该合约必须使用预先确定的一组受益人和份额进行一次性初始化。对于将共享版税与 NFT 持有者或联盟成员结合起来的项目,支付更加中心化,需要项目在链下重建 NFT 销售环境,以便计算每个人的份额,然后主动空投给用户或建立一个可声明的股息基金。
通过以保留交易环境的方式使版税在链上可执行,最低价格运营商 合约开启了新的可能性,即智能合约可以管理一组动态变化的用户,这些用户有资格根据开发者确定最适合其自己社区的自定义规则来声明版税资金的份额,无论是在系列级别还是在单个 NFT 级别。通常,该项目将能够分配一定比例的版税给创作者、联盟成员和收藏者。
对于创作者和联盟成员,可以使用具有预定受益人和份额的支付分配器进一步细分版税。收藏者级别的版税可以通过许多有趣和动态的方式共享,包括但不限于:
将收藏者作为版税的利益相关者是创作者与其 NFT 持有者社区保持激励一致的有力方式。这为以前不可能实现的 NFT 收藏者建立了价值,并且由于智能合约,它将永久有效。
Limit Break 寻求利用技术和去中心化将 NFT 的权力掌握在创作者和收藏者手中。社区发布的 Creator Token Contracts 是朝着这个方向迈出的重要一步。DigiDaigaku 开发团队正在不断扩展该系列的功能,并在我们的智能合约平台上进行构建,这将使 Web3 游戏生态系统受益。与此同时,Limit Break 正在与交易所合作,以巩固 最低价格运营商 作为一个新的市场标准,因为它有能力改变 NFT 行业。我们迫不及待地想看看创作者将在 2023 年及以后构建什么!
我们很乐意听取你的想法。请通过 blockchain@limitbreak.com 提出建议和反馈。
Limit Break 和 DigiDaigaku 团队仍在计划他们可能如何实施这些解决方案,因此不要对这对于任何一个团队或他们的产品将如何运作做任何假设。
- 原文链接: medium.com/limit-break/i...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!