摘要:ENS 域名本身就是 ERC721 標準的代幣,得益於智能合約構建的激進市場,租賃權成爲了一直在市場上流動的可交易代幣,而使用權則作爲租金收益的通證。當域名持有人把符合 ERC 721 標準的 ENS 代幣的所有權轉移給激進域名(Radical Domain)智能合約時,他們會收到兩個 ERC 721 代幣:。

ETHLondon 黑客松上有團隊實現了 Vitalik Buterin 提出的用哈勃格稅重塑域名交易的想法,瞭解一下它的運行機制與實現方案。

原文標題:《NFT 交易的新方向:永不停歇的激進域名市場》
撰文:ENSUser

用哈勃格稅重塑域名交易是 Vitalik 去年年底提出過的腦洞,在 ETHLondon 黑客松上有團隊用這樣一個 demo 贏得了 ENS 獎勵計劃的第一名。ENS 域名本身就是 ERC721 標準的代幣,得益於智能合約構建的激進市場,租賃權成爲了一直在市場上流動的可交易代幣,而使用權則作爲租金收益的通證。這樣改造 NFT 交易市場的思路雖然還稱不上完善,但或許是許多項目可以借鑑的方向。

靈感來源

無論是 ENS 還是 DNS ,域名搶注問題都算得上沉痾痼疾。許多遭搶注的域名被掛以天價,而且通常是掮客們把持着最熱門的域名,只有當有人花大價錢收購後,域名纔會被投入使用。

這個問題的解決方案之一是哈勃格稅(Harberger tax),由 Glen Weyl 和 Eric Posner 在《激進市場》一書中提出。在這種系統下,所有的資產都總是被掛在市場中。資產當前的所有人會對資產進行估價,並根據估價按比例支付一筆預置稅款。這樣以來,商品和金錢會一直保持流動。

我們的 DApp 激進域名 設計了一套由哈勃格稅啓發的所有權模型,允許個人持有者將 ENS 域名轉入其中。我們同時借鑑了英國房地產市場中永久產權(freehold)和租賃產權(leasehold)的概念,畢竟我們的 DApp 是在 ETHLondon 開發的。

運行機制

ENS 域名的持有者可以針對自己的域名,創建並出售一個可交易的租約,並且獲取全部的租金收入。

當域名持有人把符合 ERC 721 標準的 ENS 代幣的所有權轉移給激進域名(Radical Domain)智能合約時,他們會收到兩個 ERC 721 代幣:

  • 一個永久產權(freehold) 代幣,它無法對域名進行控制操作,但是能接收未來域名產生的所有租金收入。
  • 一個租賃產權(leasehold)代幣,它能對域名發起控制操作(例如設置解析合約),但主要還是按照哈勃格稅的規則,聲明自身的售價,並且根據標價支付一定比例的租金。

單獨持哪一種代幣都無法變更相應 ENS 域名的所有權,但是任何同時持有永久產權代幣和租賃產權代幣的賬戶或合約都可以把 ENS 域名從激進域名合約中提走。

租賃產權代幣總是在市場中「掛牌出售」(向 @simondlr 致敬),任何時候都能在激進域名的網站或者 OpenSea 一類的市場中買入這個代幣。而永久產權代幣則由域名持有人決定是否要進行交易。

這樣的設計有以下好處:

  • 爲市場帶來流動性,
  • 資產能產生持續不斷的被動收入,
  • 使得急於出售的賣家能先收到一筆錢(最開始售出租賃產權代幣的貨款),同時在未來也能獲取收入(以後的租金)
  • 激勵了不囤積域名的行爲。

當然也可以設計其它的模型,例如固定條款的可交易化租約。

實現方案

整個系統非常依賴 ERC721 非同質化代幣(NFT)標準,能在代幣轉賬發生時對收款人地址調用 onERC721Received 函數。同時也有賴於 ENS 註冊器的設計,域名所有者可以指定其它地址作爲控制人(Controller)對域名進行除了轉移所有權以外的其他操作。

ENS 域名的持有人可以將自己的 ERC 721 域名代幣轉移到 RadicalManager 合約中,從而實現域名的「激進化」。這是調用了 ENS 智能合約中的 safeTransferFrom 函數,從而喚起 RadicalManager 合約的 onERC721Received 函數,接着相應地調用 RadicalLeasehold 以及 RadicalFreehold 智能合約完成代幣的鑄造工作。

我們智能合約的編寫受益於 Truffle 框架,OpenZepellin 以及 ENS 的幫助(感謝 @makoto_inoue 對我們網站的協助)。

域名進行激進化的操作中,由最初的所有者設置年租金的比例(例如 10%)以及租賃產權代幣的初始售價(例如 1 以太幣)。接下來的租賃產權代幣的持有人可以設置新的售價(例如 10 以太幣),但他必須要按照相同的租金比例支付租金(10% x 10 ETH = 1 ETH/year)。永久產權代幣的持有者則可以收到該租金,並且可以隨時提走所有的租金。

租賃產權代幣的所有者只要持有該代幣,就能一直享有該 ENS 域名的獨家控制權。

挑戰

  • Solidity 的各個版本存在較大的變化,同時把兩個 uint256 類型的值編碼成一個字節類型的參數十分困難。(Evert)
  • 團隊中的新人(Richard 以及 Kiki)感到學習曲線陡峭,知識量太大。
  • 理解 ENS 智能合約,將 ENS 的概念設計(例如 controller )與 ERC721 標準(例如 operator)區分的過程很艱難。(Rosco)
  • 在前端設計上我們切換了幾種方案,但都各自對新手或者老手有一定的困難。

我們自豪的成果

從 BUIDL 的角度看,我們可以非常自豪地表示已經實現了核心合約的大部分功能。

我們對團隊合作非常自豪,因爲成員的技術背景和層次不一,每個人都做出了獨特的貢獻。

我們很自豪以太坊社區所構建的生態,從鏈、到工具、到這場盛會。

我們學到的東西

在項目中,我們發現的最有趣的收穫在於 ENS 允許 「控制人」(controller)進行除了轉移所有權以外所有域名操作的設計。這省去了我們對合約添加追蹤調用的工作,其它 ERC721 代幣也應當借鑑這樣的設計模式,使得激進市場的思路能適用到其它項目中。

未來的工作

我們想要將這個項目繼續完善,並且期待有人能做出改進、貢獻代碼。在這個項目的工作中,團隊裏的開發新手都得到了寶貴的經驗。

構建工具

試一試

來源鏈接: devpost.com

相關文章