原文作者:Azuki 開發者0xCygaar
或許是受到了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 過濾工作的原理。我很想知道他們未來做出的決定,以及未來創作者版稅的普遍程度。