視頻講者:Michael Blau a16z Crypto 合夥人
整理、編譯:倩雯,ChainCatcher
人們最初對 NFT 的設想十分美好:NFT 智能合約在鏈上強制執行二級版稅,因此只要創作者的 NFT 在二級市場上交易,創作者就能賺到錢。這真是太棒了,這個資產在互聯網上流通,無論何時資產的轉手、出售都會為創作者帶來了盈利。
然而,現實情況是,智能合約並不能在鏈上強制執行 NFT 版稅。關於這一話題,我會給大家介紹一些背景知識,談談NFT 版稅、它的工作原理、不同版稅標準的演變,以及我們剛剛概述的這個問題的潛在解決方案,最後,我會給大家一些建議。
版稅
從 Investopedia 上 理解,版稅是為持續使用個人或公司資產而向其支付的款項。假設你是一位藝術家,你創作了一件非常酷的藝術品,並將其出售。如果該 NFT 易手、轉手、交易或在任何市場上出售,將從銷售額和價格中抽取一定比例返還給原創作者。
Erc721 和版稅
ERC721 是一個標準,是關於鏈上 NFT 定義、代碼、狀態管理的規範。如果你真的去閱讀相關規範,你會發現實際上並不需要在鏈上執行任何付款或版稅。如圖所示,這段代碼是 Zeppelin 實現 ERC721 轉移功能的開放代碼。從本質上講,它定義了 NFT 如何從一個錢包轉移到另一個錢包的邏輯。
如果你逐行查看這段代碼中,你會發現這段代碼中沒有任何一點提到銷售價格、從銷售價格中抽取的比例等。標準的確說過,你可以通過一些方式在轉讓功能中加入費用。但即使如此,也沒有相關的標準。因此,如果一個項目想在轉讓中強制收費,就必須針對具體項目進行操作,但項目之間沒有可比性和互操作性。
挑戰
那麼,我們目前的挑戰有哪些?第一種情況是,假設你想收取一定的費用,讓我們把問題簡化,也許,我們不採用版稅百分比,而是採用一美元的方式:你隨時都可以轉讓NFT,創作者將從你這裡拿走一美元。但是,生態系統中的用戶可以隨時對 NFT 進行包裝。比方說,他們付給你一美元,但不是將NFT 發送到另一個錢包,而是將其發送到智能合約,該智能合約鎖定NFT,並向你發行一個新的NFT,這樣包裝後的NFT 完全沒有版稅限制,可以在區塊鏈生態系統中完全自由地交易。另一個問題是:如果你想把它轉給自己怎麼辦?如果你想把你的 NFT 從一個錢包轉移到另一個錢包,那麼你是不應該付費用的。第三種情況是,你在轉移功能中添加的東西越多,無論是費用還是其他規則,你基本上就限制了 NFT 的可組合性。
版稅的實際運作方式
真正的情況是,市場在幕後兌現這些版稅,所以作為創作者,你需要做的——就是你必須手動去每個市場告訴他們說這是我的版稅,告訴他們如果我的NFT 賣出去,我想收取多少版稅。
在一個崇尚可組合性和互操作性的領域裡,這種操作簡直太不切實際。我們現在知道,區塊鏈上有很多市場,任何人都可以非常容易地創建或部署一個市場,而且可能會有無限多的市場。讓一個創造者去每個市場手動要求他們,這要求太高了。所以,如果我們不能在智能合約中強制執行版稅——我們也不想去告訴每個市場我們的版稅信息。在我們討論解決問題之前,我想先談談 NFT 版稅的進化史。
版稅進化史
EIP2981 是 NFT 版稅標準。但是該標準並不強制執行版稅,雖然這是很多人的一個誤解。它所做的是收集你的版稅信息:創作者信息、他們應該得到的報酬版稅比例等,將這些信息放在鏈上,放在智能合約中。
市場需要做的僅僅是查詢你的 NFT 合約,以了解它應該做什麼。如圖所示,我這裡的一小段代碼就展示了所謂的版稅信息,你可以看到它接收銷售、價格,然後返回給你信息——誰應該得到支付以及支付多少。
這樣做的目的是,如果市場看到你的 NFT 合約在他們的市場上交易,他們就可以查詢這個函數,了解數據並兌現你的版稅。
但有一個小問題:該標準完全不向後兼容。因此,如果你在標准出現之前就已經在鏈上創建 NFT,那麼你就處於鎖定狀態,你什麼也做不了。如果你的 NFT 合同可以升級,那情況還不算很糟糕。但現實情況是,大多數人並沒有這麼做,大多數人只是在使用其他標準,比如開放式 Blend 合同或其他 erc721 合同的變體。
第二個問題是市場沒有標準可言。比如在 2981 該想法出現以前,Foundation、Zora 和 wearable 等許多市場平台都推出自己版本的標準。它們做了同樣的事情:向你返回支付版稅所需的信息,但在具體細節上不同——比如,他們稱呼版稅信息為版稅數據,也許不返回實際版稅金額,而只返回版稅百分比和基點。因此,市場真的沒有標準可循。
那麼,我們如何才能使 EIP 2981 向後兼容,同時解決這個問題呢?這就是集中版稅註冊處(manifold royalty registry) 發揮作用的地方。它是一個典型的鏈上註冊表。它有兩個作用。首先,它將所有現
標準、基礎標準、稀有變量標準和 EIP291 整合為一個標準。它將所有這些標準都包含在內,所以不管你執行的是哪一個標準都沒關係。
其次,它還能實現向後兼容。因此,即使你沒有在合同中直接實施 EIP2981,你也可以訪問這個註冊表,輸入你的版權信息,然後就可以使用該表。
下面,我們來看一個簡單的示例。如圖所示,這是版權登記網站上的一個片段,這是他們創建的用戶界面。你輸入一個智能合約地址,輸入該智能合約中的一個特定代幣 ID,然後輸入一個銷售價格,註冊處就會根據你輸入用戶界面的銷售價格,返回誰應該得到報酬,以及應該得到多少報酬。
這一表格是去中心化的,創建者可以設置它之後就不管了。他們可以在這個地方一次性上傳他們的版稅、信息,不需要做其他動作。如果他們願意,只需來註冊表查詢這一個地方,就能獲得他們需要的所有信息。這樣既方便了創作者,也方便了市場,但還是有一個小問題。問題在於,市場仍然可以忽略註冊表的權利。
操作者過濾器
上述操作只是讓版稅數據本身的信息去中心化,並不強迫市場做任何事,市場未必會尊重版稅。那麼,我們該如何做才能更接近這個目標呢?這就是操作者過濾器的作用所在。
操作員過濾器是一個高級功能。它是一個阻止列表,允許創作者阻止自己的作品在市場上銷售或與某些應用互動。它不僅適用於市場,還適用於任何應用程序。
這個想法最棒的地方在於,你可以在鏈上強制執行。這是你可以放在合約中的東西,它可以執行你的 NFT 如何與生態系統的其他部分互動。因為大多數情況下,任何 NFT 應用程序一般都要求用戶批准一個智能合約,以他們的名義傳輸一個NFT。因此,在市場的背景下,用戶可能會批准將其資產、NFT 轉讓給市場,從而將其掛在市場上。如果有匹配方,市場就會進行競價和出價,然後他們會以賣方的身份將錢轉給你,並將 NFT 從你的錢包轉入買方的錢包。這個市場實際上是作為鏈上的智能合約在運作。
你可以使用操作員過濾器阻止他們。它做了兩件很酷的事。第一件事是屏蔽特定地址。你可以把 市場視為鏈上的智能合約,它位於一個特定的地址,我可以直接封禁這個地址。但我們也知道,別人還是可以重新部署代碼,饒過你的封禁名單。一個聰明的解決方案是代碼散列(codehash),它是應用程序或市場本身源代碼的唯一數字指紋。因此,我們將獲取源代碼的唯一數字指紋,並屏蔽該指紋。因此,即使有人在鏈上複製市場 30 次,也沒關係,阻止列表仍會阻止他們。
那麼我們該如何設置過濾呢?作為創建者或項目,你有兩種選擇。第一個選擇是你可以策劃自己的屏蔽列表,你可以非常信任自己。你可以成為一個非常出色的鏈上偵探。你可以了解每一個市場和應用的最新動態。你可以去了解每一個市場和應用程序的最新動態,判斷是否要讓你的虛擬貨幣與應用程序互動,並在鏈上創建你的區塊列表。
第二個選擇是外包給別的團隊,我這裡推薦的一個團隊叫 CORI,也是一個研究機構。基本上是由生態系統中很多流行的公司和市場組成的,比如 Zora、openSea、NiftyGateway 等。我們決定把誰能加入這個市場、誰能加入那個市場,剩下的讓這個團隊完成。
這兩者之間會有一些權衡。在第一個版本中,你可以完全控制。而在另一個版本中,你可以完全控制,但你不一定同意 CORI 做出的所有決定。
小結
正如我們最初所言,我們不能在鏈上強制執行版稅,但也許我們可以在鏈上獲取版稅數據。讓我們使用集中版稅註冊處把這些信息放到鏈上,然後,如果我們就可以更接近強制執行。
如果你們想在自己的項目中使用 NFT,那麼可以使用操作者過濾器,即使你不想阻止任何人。因為部署這個過濾器幾乎不需要任何努力。你可以直接在你的智能合約中加入運算符過濾代碼,然後留下一些可能性,因為行業每天都在變化,我們不知道明天會發生什麼。
最後,版稅的相關討論每天都在變化。我今天談到的這些事情中,有些是在過去幾個月中產生的,所以我們不要做出任何倉促的決定。如果你要創建一個 NFT,請確保 NFT 是可擴展的。可拓展與可升級是完全不同的,對於任何技術人員來說,你知道你可以非常容易地創建一個可升級的智能合約。這當然是一個選項,但如果你不想這麼做,因為你不想擁有所有的控制權,在去中心化方面做得更多,你就可以讓你的 NFT 具有可擴展性。
現在的生態系統中有很多標準,也許沒有那麼流行,但它們確實存在,比如模塊化 NFT、集中 NFT 合同、集中版稅註冊處,他們的 NFT 也是可擴展的。你可以為你的 NFT 添加插件,在操作員過濾器的例子中,你需要完成很多鏈上代碼。如果我幾個月前就發布了一個集中NFT,而當時運算符過濾器還沒出現,由於合約的結構設置,對我來說,在該合約中添加插件並使用運算符過濾器就會非常簡單。所以你要給自己這種選擇性,因為我們真的不知道未來會發生什麼。