撰文:0xCygaar,Azuki 开发者
编译:隔夜的粥
或许是受到了 blur 等新兴可选版税 NFT 市场的威胁,NFT 巨头 OpenSea 刚刚宣布为新 NFT 收藏品推出了强制执行链上版税的工具。
OpenSea 刚刚宣布改变他们的版税模式,其中包括将已知的零版税市场列入黑名单。
让我们谈谈 OpenSea 是如何进行的过滤工作,他们添加的功能,以及是否仍然可规避掉过滤。
以下是 Opensea 官方公告的重点:
「今天,我们推出了一种用于链上执行新收藏品版税的工具。这个工具是我们的第一个链上执行版本。从美国东部时间 11 月 8 日星期二下午 12 点开始,OpenSea 将仅对使用诸如此类的链上执行工具的新收藏品强制执行版税。在接下来的几个月里,我们将为链上执行推出更多的工具和改进,我们将与社区合作,在此过程中获得反馈。
我们认识到这是第一步,因此我们致力于与我们的社区就现有收藏品集合的解决方案进行交流。考虑到对现有 NFT 收藏收取链上费用有多么困难,我们至少在 2022 年 12 月 8 日之前不会对现有收藏进行任何更改。为了透明起见,对 12 月 8 日之后发生的事情的考虑是完全开放的——我们正在考虑各种选项,从继续对某些集合子集强制执行链下费用,到允许可选的版税,到为创建者合作其他链上强制选项。我们认识到并非所有创作者、NFT 收藏品和社区都是相同的,我们希望创建一个反映这一点的长期政策。
针对新 NFT 集合的链上执行工具
我们最初的链上工具是一个简单的代码片段,创建者可以将其添加到未来的 NFT 合约以及现有的可升级合约中。此代码将 NFT 销售限制在强制收取版税的市场。从美国东部时间 11 月 8 日 ( 周二 ) 中午 12 点开始,OpenSea 将检查新的 NFT 收藏品,看看他们的物品是否能够在不强制版税的市场上出售。OpenSea 将对使用链上执行工具的新集合强制收取版税。对于没有实现链上执行的新集合,OpenSea 不会强制执行版税。
要将此代码添加到新合约或可升级的合约中,请遵循这里的说明。
毫无疑问,像这样的技术决策涉及权衡:在链上强制执行版税需要牺牲 NFT 的一些抗审查性和无许可性质。尽管如此,我们认为创作者应该有权建立他们想要的收藏和社区,买家和卖家应该继续自由选择他们参与和不参与的 NFT 收藏品。」
他们的代码已经开源:https://github.com/ProjectOpenSea/operator-filter-registry。
其中包含大部分过滤逻辑的文件在这里:https://github.com/ProjectOpenSea/operator-filter-registry/blob/main/src/OperatorFilterRegistry.sol。
正如我们在下面的截图中看到的,这段代码使用了与 QQL 黑名单非常相似的原理。 对于那些不熟悉的人,QQL 黑名单的工作原理是检查给定的 operator(促进转账的合约)是否已被列入黑名单。
当在链上进行传输时,调用isOperatorAllowed函数(第 56 行)以确保 operator 和 operator 的 codehash 未列入黑名单。NFT 合约需要从 OperatorFilter 类继承:https://github.com/ProjectOpenSea/operator-filter-registry/blob/main/src/example/ExampleERC721.sol#L14。
OpenSea 的方法和 QQL 的方法有两个主要区别。
第一个区别是 OpenSea 内置了订阅功能, 这允许任何合约订阅现有的黑名单。 订阅逻辑位于第 114 和 309 行。项目不会维护自己的黑名单,而是使用现有的黑名单。
OpenSea 会有自己的列表,但项目不需要使用这个列表。 但是,项目必须过滤掉特定地址才能有资格获得版税(即 blur、looksrare、x2y2 以及 Sudoswap 的地址)。
第二个区别是 OpenSea 的逻辑也会检查一个 operator 的 codehash 是否被阻止。 codehash 本质上是实际合约代码的唯一标识符。 如果有人想要绕过地址拦截,他们可以将合约部署到多个地址。
这不再可能,因为 OpenSea 的代码会检查合约本身的内容(第 70 行)。
但在理论上,仍然可以通过对代码进行小的更改来绕过此检查,以便 codehash 发生变化。
最终,几乎不可能实施一个黑名单来阻止你想要阻止的每一个合约。 有很多方法可以编写 / 部署合约来绕过这些检查。 但是,该黑名单应该能起到很大的效果。
这就是 OpenSea 过滤工作的原理。 我很想知道他们未来做出的决定,以及未来创作者版税的普遍程度。