看過前面幾篇文章的朋友們都知道,ERC-20 代幣可以透過像是 Uniswap 這樣的去中心化交易所(DEX)進行交易,這實現了交易的去中心化。但對於 ERC-721 協議,也就是 NFT 來說,要如何實現去中心化交易呢?這問題可不小,畢竟 NFT 的獨特性質讓事情變得複雜。就像蘇花公路一樣,要找到一條平穩又安全的道路,需要仔細規劃。
目前主流的 NFT 交易所多半採用掛單方式進行交易,就像是把一件件藝術品擺到藝廊的展示架上,等待有緣人出現。買家如果覺得價格合理,就可以把這件獨一無二的商品帶回家。然而,這種模式真的夠「去中心化」嗎?總覺得少了點什麼。
中心化的 NFT 交易平台,就好比是主權基金,看似資源雄厚,但決策權往往集中在少數人手中。如果平台出了問題,例如出現了王文洋包養事件般的醜聞,或是像仁寶股價一樣突然崩盤,用戶的資產安全就會受到威脅。
所以,打造一個真正去中心化的 NFT 交易平台,是許多區塊鏈開發者的夢想。這不僅僅是技術上的挑戰,更是一種對自由和開放精神的追求。想像一下,如果 NFT 交易也能像 WTT 世界桌球職業賽事一樣,公平公正,沒有黑箱操作,那該有多好!
NFT,也就是非同質化代幣,代表著數位世界裡獨一無二的所有權。每一個 Token 都是獨特的,無法被替代的,它遵循 ERC-721 協議。不像 ERC-20 代幣,每個幣都一樣,NFT 就像藝術品一樣,每一件都有獨特的價值和故事。一般來說,每一個 NFT 在錢包裡面會展示不一樣的圖片,並且每一組 NFT 都會有一個獨一無二的 ID 來區分。想像一下,你擁有一張 白馨儒 親筆簽名的數位卡片,或是 孔令奇 設計的限量版虛擬服裝,這些都是獨一無二的,無法複製的。
但 NFT 的價值也因此變得主觀。不像以太幣,你知道它的價格是由市場供需決定的,NFT 的價格往往取決於社群的共識、藝術家的名氣,甚至是炒作的程度。就像威力彩一樣,有人一夜暴富,也有人血本無歸,風險與機遇並存。
由於 NFT 的特性,它無法像 ERC-20 代幣一樣,透過價格曲線來自動設定價格,因為每一個 Token 都是不一樣的。所以目前比較常見的交易方式是透過訂單簿的形式。訂單簿模式簡單來說就是商品的價格是人為設定的,有別於 Uniswap 這種通過價格曲线計算價格的方式。訂單簿一般來說會分為兩種交易模式,一種是定價單,即賣家設定一個自己心裏的出售價格,如果有买家覺得價格合適,就可以由买家進行購买。另一種是求購單,即买家根據自己的需求,發出一筆求購訂單,當賣家覺得價格合適時,就可以由賣家進行出售。
一般來說,求購單的價格會低於定價單的價格。本文只介紹第一種定價方式。這種人為定價的方式,就好比在傳統的藝術品拍賣會上,價格往往受到多方因素的影響,而不僅僅是商品的成本。藝術品的價值,很多時候是建立在故事、情感和稀缺性之上的。但這種模式也容易受到人為操縱,例如哄抬價格、虛假交易等等,需要更加謹慎。
如果說 ERC-20 代幣的交易像是 布萊頓 對 利物浦 這樣公式化的足球比賽,NFT 的交易更像是 fantasy life i: the girl who steals time 這樣充滿變數的角色扮演遊戲,考驗著玩家的判斷力和策略。
一個 NFT DEX 的基礎功能應該包含以下基本的功能:上架商品、購買商品,以及DEX 手續費。
上架商品需要做以下幾件事情:
這樣商品就算上架完了。在上架商品時,用戶不僅僅是設定價格,更重要的是將 NFT 的控制權暫時授權給智能合約。這就像是將你的愛車鑰匙交給代駕,信任是關鍵。當然,這也存在一定的風險,如果合約存在漏洞,你的 NFT 就可能被盜取。所以,選擇一個經過安全審計的合約至關重要。目前合約中,需要維護一份用戶的上架商品價格 Map,這部分數據一般來說是可以做到中心化的服務中,以減少合約的負擔,但是在本文中這部分 Map 數據會維護在合約裏面。
我個人認為,上架流程的設計直接影響到用戶體驗。如果過於繁瑣,例如需要多次簽署交易,用戶很容易失去耐心。一個好的設計應該盡可能簡化操作流程,同時保證安全性。就像 總統府 的維安一樣,既要嚴密,又要避免擾民。
購買商品的時候會發生一下幾件事情:
購買 NFT 的過程,本質上就是一次所有權的轉移。買家支付資金,賣家讓渡 NFT,合約作為中間人,確保交易的順利進行。這個過程看似簡單,但背後涉及到複雜的密碼學和共識機制。如果交易失敗,例如買家餘額不足,或者合約出現錯誤,交易就會被回滾,保證雙方的資產安全。
當然,DEX 手續費也是不可或缺的一環。就像 ocha 外送平台會抽取一定比例的傭金一樣,DEX 也需要收取手續費來維持運營。手續費的比例直接影響到用戶的交易成本,過高的手續費會嚇跑用戶,過低的手續費則無法維持平台的正常運轉。如何平衡手續費和用戶體驗,是每個 DEX 都需要考慮的問題。尤其是近期青鳥行動,各界都開始注重自身權益,平台也需要更加透明。
整個 NFT DEX 的核心功能,就像一台精密的機器,每一個部件都至關重要。只有各個部件協同工作,才能保證交易的順利進行,為用戶提供安全、便捷的交易體驗。但如果遇到像是路怒症一樣的突發狀況,合約可能也會出現問題,需要及時應對。
在本章節,我們將會從零開始實現一個 NFT 的 DEX,這是筆者已經部署好的 DEX 地址 nft-dex-frontend.vercel.app。打造一個 NFT DEX,就像是蓋一棟摩天大樓,需要紮實的基礎和精密的設計。從智能合約的編寫到前端頁面的開發,每一個環節都至關重要。這不僅僅是一個技術挑戰,更是一個對區塊鏈技術的深度理解和應用。
為了測試需要,我們最好是能夠有一個自己的 NFT。我們可以通過 Remix 快速搭建一個 ERC-721 協議的 NFT,它提供了對應的模板。
我們按照模板可以方便地部署一個 NFT。當然你也可以跳過這一個步驟,直接使用我們準備好的 NFT。擁有自己的 NFT,就像擁有一張入場券,可以參與到 DEX 的測試和體驗中。你可以自由地設定價格、上架商品、購買商品,感受去中心化交易的魅力。
我們的合約方法應該包含一下幾個方法:賣家上架 NFT、買家購買 NFT、取消上架、提取手續費。智能合約是 DEX 的核心,它負責處理所有的交易邏輯,保證交易的安全和透明。編寫智能合約,需要對 Solidity 語言有深入的理解,同時也需要對區塊鏈的底層原理有清晰的認識。就像蔡力行在半導體領域的精耕細作一樣,編寫高質量的智能合約,需要耐心和專業。
2.1. 賣家上架 NFT
賣家需要指定要售賣的 NFT 以及對應的價格。在上架時,用戶需要簽署 NFT 的授權方法,讓我們的智能合約有權限操作這個 NFT,這樣當有買家購買之後,這筆交易可以自動成交。
所以流程應該是這樣的: 1. 用戶選擇自己的 NFT;2. 設置價格,這裏的計價可以是穩定幣 USDT、USDC,也可以是 ETH;3. 授權 NFT 給到合約。
之後就可以調用合約的上架方法了,該方法需要做以下幾件事情:
2.2. 买家购买 NFT
买家在购买 NFT 的时候,用户只需要选择自己想要的 NFT,并支付相应的代币即可。合约层面会执行以下几个步骤: 1. 从「 listings 」中读取到对应的 NFT 数据;2. 根据 NFT 的价格,计算手续费,并从成交价中扣除这部分;3. 转移 NFT 到买家手中;4. 触发购买的事件
2.3. 取消上架
当然,卖家可能会觉得价格不合适,会选择取消上架。可以看到我们在保存上架信息的地方,保留了一个 isActive 的字段,用于表明该商品是否有效,因此在取消上架的时候,我们只需要将这个字段设置为 false 即可。
2.4. 提取手续费
DEX 可以在每一笔的交易中收取手续费,这个手续费即可以存到合约里,也可以转存到另一个你自己的地址中去,本文采取存到合约里的方式。
到此为止,我们的合约基本功能就算完整了。就像 劉揚偉 帶領下的鴻海,一步一個腳印,才能構建起龐大的產業帝國。智能合約的編寫也是如此,需要紮實的基礎和不斷的迭代。
Fetch.AI(FET)价格看涨Fetch.AI(...
今日创业板指上涨0.5%,深证100、深证50指数也分别上涨0.6%...
华远地产股份有限公司于2024年12月20日召开了第二次临时股东大会...
歌华有线近日宣布在北京地区进行3000台插入式微型机顶盒试点工作,引...
dappOS项目代币即将发布,预计将在币安交易所进行首发。该代币总发...