NFT去中心化交易平台DEX實戰:智能合約、前端開發及未來挑戰(含路怒症、新聞等時事提及)

2025-05-22 12:34:00 去中心化金融 author

對於區塊鏈愛好者和數位資產的玩家來說,去中心化交易所(DEX)已經不陌生。之前我們探討過 ERC-20 代幣如何透過 Uniswap 等 DEX 實現去中心化交易。現在,讓我們把焦點轉向 ERC-721 協議,也就是非同質化代幣(NFT)。面對每個 NFT 都是獨一無二的特性,如何打造一個去中心化的 NFT 交易平台呢?

目前,主流的 NFT 交易所多半採用掛單模式,這就像是把藝術品擺在虛擬藝廊的架上。買家瀏覽,覺得價格合適就帶回家。這種模式雖然直觀,但距離完全的去中心化,仍有一段路要走。讓我們深入了解 NFT 的獨特性質,以及如何利用智能合約和前端技術,打造一個更自由、更開放的 NFT 交易環境。

NFT (Non-Fungible Token) 的獨特性質

NFT,簡單來說就是「非同質化代幣」。每個 NFT 都是獨一無二的,不可替代的,遵循 ERC-721 協議。這與 ERC-20 代幣的同質化特性截然不同。想像一下,ERC-20 代幣就像是貨幣,你手中的 100 元鈔票和我手中的 100 元鈔票,本質上沒有區別。但 NFT 就像藝術品,每一幅畫、每一件雕塑都是獨一無二的,具有獨特的價值。這種獨特性,也讓 NFT 的交易方式與傳統代幣有所不同。

由於 NFT 的獨特性,無法像 ERC-20 代幣一樣,透過價格曲線來自動設定價格。畢竟,每個 Token 都是不一樣的,價值也難以量化。因此,目前比較常見的交易方式是透過訂單簿的形式,由買賣雙方自行決定價格。

訂單簿交易模式:人為定價的藝術

訂單簿模式的核心在於,商品的價格是由人為設定的,而非像 Uniswap 那樣,透過演算法自動計算。這種模式更貼近傳統的拍賣或議價模式,買賣雙方可以根據自己的判斷和需求,設定理想的價格。

訂單簿通常分為兩種交易模式:

  • 定價單: 賣家設定一個自己心目中的理想售價,等待買家上門。如果有買家覺得價格合適,就可以直接購買。
  • 求購單: 買家根據自己的需求,發出一筆求購訂單,說明自己願意支付的價格。當賣家覺得價格合適時,就可以將 NFT 出售給買家。

一般來說,求購單的價格會低於定價單的價格,因為買家希望以更優惠的價格購得商品。本文將側重於第一種定價方式,也就是賣家設定價格,買家進行購買的模式。這種模式相對簡單直接,也更符合目前主流 NFT 交易平台的運作方式。

NFT DEX 的核心功能:一個去中心化交易平台的骨架

一個功能完善的 NFT DEX,應該具備以下幾個核心功能,這些功能構成了去中心化交易平台的骨架,讓使用者可以安全、便捷地進行 NFT 的交易:

  1. 上架商品: 允許賣家將自己的 NFT,按照期望的價格上架到交易平台。
  2. 購買商品: 允許買家根據 NFT 的定價,直接購買心儀的商品。
  3. DEX 手續費: 平台可以根據成交的價格,按比例收取一定的手續費,作為運營和維護的收入來源。

上架商品

上架商品的流程看似簡單,但背後涉及到一系列的操作:

  1. 前端: 使用者需要在前端介面上,選擇自己想要出售的 NFT,並且設定一個出售價格,然後點擊「上架」按鈕。
  2. 合約: 使用者需要授權智能合約,允許合約操作自己的 NFT。這一步非常重要,因為只有獲得授權,合約才能在交易完成後,自動將 NFT 轉移給買家。

完成以上步驟,商品就算成功上架了。在智能合約中,需要維護一份上架商品價格的 Map,記錄每個 NFT 的出售價格。雖然這部分數據可以儲存在中心化的伺服器中,以減輕合約的負擔,但為了實現完全的去中心化,本文將選擇將這份 Map 數據維護在合約中。

購買商品

購買商品的流程如下:

  1. 前端: 使用者在前端介面上,選擇想要購買的 NFT,然後點擊「購買」按鈕。
  2. 合約: 前端會調用智能合約,將買家的資金轉移給 NFT 的賣家,同時將 NFT 轉移給買家。這個過程完全由智能合約自動執行,無需人工干預。

DEX 手續費

在 NFT 交易過程中,DEX 平台通常會收取一定比例的手續費。這筆手續費可以用於平台的運營和維護,也可以作為開發團隊的收入來源。手續費的收取方式通常是在交易完成後,從成交價中扣除一定比例的金額。

現在很多人開車都有路怒症,遇到交通堵塞就開始狂按喇叭,甚至還會做出一些危險的駕駛行為。如果能把這種精力放在 NFT 交易上,或許能有意想不到的收穫。最近,苗博雅 在政論節目上針對時事議題發表了獨到的見解,引發了廣泛討論。而 孔令奇 則在音樂領域持續探索,不斷推出新的作品。不知道他們對 NFT 市場有沒有興趣呢?另一方面,各國 主權基金 在投資策略上都十分謹慎,對於高風險的 NFT 市場,他們又會抱持什麼樣的態度? 說到投資,之前 王文洋包養 的新聞鬧得沸沸揚揚,讓人不禁感嘆有錢人的世界真是難以理解。而 徐培菁 在財經領域的專業分析,則為我們提供了更理性的視角。最近,劉揚偉 在一次演講中提到了台灣產業升級的重要性,引起了許多人的共鳴。希望台灣的 NFT 市場也能藉此機會,走向更成熟的發展。 想到台灣,就不得不提 蘇花公路 的安全問題,每次看到相關新聞都讓人感到憂心。最近,青鳥 行動在台灣社會引起了很大的關注,不同立場的民眾紛紛表達自己的訴求。希望政府能傾聽民意,做出正確的決策。當然,除了關心 新聞 時事,偶爾也要放鬆一下。像是 520 優惠 活動,就提供了許多吃喝玩樂的好康選擇。如果覺得生活太過壓抑,不妨考慮去 帛琉 度個假,享受一下陽光沙灘。當然,如果想一夜致富,也可以試試 威力彩,說不定下一個幸運兒就是你。 最近 wtt 的比賽非常精彩,各國好手齊聚一堂,展現高超的球技。而 白馨儒 在體育賽事中的亮眼表現,也為台灣爭光不少。說到體育,布萊頓 對 利物浦 的比賽總是充滿話題性,吸引了無數球迷的關注。當然,除了體育,生活中的小確幸也很重要。像是品嚐一杯 ocha,就能讓人感到放鬆和愉悅。最近 仁寶股價 的波動引起了投資者的關注,建議大家在投資前要做好功課,謹慎評估風險。而 plg 冠軍賽 更是吸引了無數籃球迷的目光,各隊實力相當,競爭非常激烈。 希望台灣的 NFT 市場也能像這些體育賽事一樣,充滿活力和競爭力。最後,蔡力行 在科技領域的貢獻,以及 莊宗輝 在藝術領域的創新,都值得我們學習和借鑒。當然,如果真的對現實生活感到厭倦,也可以沉浸在 fantasy life i: the girl who steals time 的虛擬世界中,體驗不一樣的人生。而 uzi 在電競領域的傳奇故事,也激勵著無數年輕人追逐自己的夢想。最近 總統府 舉辦了一系列的活動,讓民眾有機會更了解台灣的歷史和文化。另外,哮吼 在兒童族群中比較常見,家長們要多加留意。希望大家都能在各自的領域發光發熱,為台灣的未來貢獻一份力量。

現在,讓我們從理論走向實踐,一步步打造你的 NFT DEX。本章節將深入智能合約的編寫,以及前端介面的設計,讓你親身體驗一個 NFT DEX 的誕生過程。

打造你的 NFT DEX:智能合約與前端實戰

創建你的專屬 NFT:測試的基石

在開始之前,你需要一個 NFT 來進行測試。你可以使用 Remix,這是一個線上的 Solidity 開發環境,可以讓你快速創建一個 ERC-721 協議的 NFT。Remix 提供了現成的模板,可以讓你省去不少編寫程式碼的時間。當然,如果你不想自己創建 NFT,也可以直接使用我們準備好的 NFT。

合約編寫:DEX 的引擎

智能合約是 NFT DEX 的核心,它負責處理所有的交易邏輯,包括上架商品、購買商品、以及手續費的收取。我們的合約需要包含以下幾個方法:

2.1. 賣家上架 NFT

賣家需要指定要售賣的 NFT 以及對應的價格。在上架時,用戶需要簽署 NFT 的授權方法,讓我們的智能合約有權限操作這個 NFT,這樣當有買家購買之後,這筆交易可以自動成交。

所以流程應該是這樣的:

  1. 用戶選擇自己的 NFT。
  2. 設置價格,這裏的計價可以是穩定幣 USDT、USDC,也可以是 ETH。
  3. 授權 NFT 給到合約。

之後就可以調用合約的上架方法了,該方法需要做以下幾件事情:

  1. 對 NFT 的所有權進行校驗
  2. 添加上架記錄
  3. 觸發上架的事件

2.2. 買家購買 NFT

買家在購買 NFT 的時候,用戶只需要選擇自己想要的 NFT,並支付相應的代幣即可。合約層面會執行以下幾個步驟:

  1. 從「 listings 」中讀取到對應的 NFT 數據
  2. 根據 NFT 的價格,計算手續費,並從成交價中扣除這部分
  3. 轉移 NFT 到買家手中
  4. 觸發購買的事件

2.3. 取消上架

當然,賣家可能會覺得價格不合適,會選擇取消上架。可以看到我們在保存上架信息的地方,保留了一個 isActive 的字段,用於表明該商品是否有效,因此在取消上架的時候,我們只需要將這個字段設置為 false 即可。

2.4. 提取手續費

DEX 可以在每一筆的交易中收取手續費,這個手續費即可以存到合約裏,也可以轉存到另一個你自己的地址中去,本文採取存到合約裏的方式。

到此為止,我們的合約基本功能就算完整了。

DEX 前端開發:使用者體驗的關鍵

前端介面是使用者與 DEX 互動的橋樑,一個好的前端介面可以提升使用者體驗,吸引更多人使用你的 DEX。在開始之前,我們需要準備一些工具,包含如下幾個工具:

  1. Ant Design Web3:用於錢包的連接以及 NFT 卡片的展示。
  2. Wagmi:用於和錢包進行交互。
  3. Nextjs + Vercel:部署我們的項目。

我們的前端應用應該包含三個頁面,Mint、Buy 以及 Portfolio,Mint 是為了讓用戶能夠 Mint 我們的 NFT,僅僅用於演示,Buy 的話是我們的 DEX 商城,用戶可以在裏面購買我們的 NFT,Portfolio 裏面用戶可以對 NFT 進行上架和下架操作。

3.1. 連接錢包

連接用戶的錢包,使用 Ant Design Web3 實現

連接用戶的錢包的過程非常簡單,使用 Ant Design Web3 提供的連接組件即可。

首先我們在項目的外層包一個 Provider, 這樣在後續的代碼裏面我們就能用到 Ant Design Web3 的能力。另外由於我們需要連接 sepolia 測試鏈,為了速度考慮,建議使用一些節點服務來提高數據查詢的速度,我這裏使用的是 ZAN 的 endpoint,它非常適合在亞太環境下使用,速度快並且價格非常劃算,支持的鏈也很豐富。

之後在需要連接錢包的地方放置一個連接按鈕:

這樣就算是搞定了,非常的簡單。

3.2. Mint

Mint 一個 NFT,獲得測試代幣可以前往 https://zan.top/faucet/ethereum

在 Mint 頁面我們可以 Mint 測試用的 NFT。Mint 是一個寫合約的操作,這裏我們要用到 wagmi 裏面的 useWriteContract 方法。我們需要指定好合約地址、合約的 ABI 以及合約參數即可。

之後在錢包裏面進行確認就可以 Mint 成功了。

3.3. Portfolio

管理用戶的 NFT

在這裏需要展示用戶所有的 NFT。我們可以使用一些 NFT API 來獲取,這裏使用 opensea 的 API,因為支持 sepolia 測試鏈的 NFT API 並不多。

在獲取到用戶的 NFT 列表之後,需要判斷是否已經是上架了的,未上架的支持上架,已上架的支持下架。判斷的方式是通過 DEX 合約裏面「 getSellerListings 」方法裏面獲取用戶已經上架的 NFT,然後根據這些 NFT 的「 isAlive 」字段來判斷是否正在上架。

上架的時候需要調用「 listNFT 」合約方法,在取消的時候需要調用「 cancelListing 」方法。在上架之前,需要額外調用 NFT 的授權方法,將 NFT 授權給合約,這樣在後續交易成交之後,這個 NFT 就可以自動轉給買方。

3.4. Buy

在 Buy 裏面可以購買 NFT

首先我們需要對已經上架的 NFT 進行展示。類似於 Portfolio 裏面的展示用戶已有的 NFT,這裏不同點在於一個是全局的,不再是某個用戶,另一個是只需要展示 isAlive 的 NFT。

購買的時候使用「 purchaseNFT 」方法,在調用這個方法的時候,需要用 ETH 來支付售價。

這裏的這個「 value 」就是買家需要支付的 ETH。

這樣一個包含所有基礎能力的 DEX 前端頁面就完成了,我們可以將其部署在 vercel 中。

NFT DEX 的出現,無疑為數位資產的交易開闢了新的可能性。它不僅降低了交易的門檻,也賦予了使用者更大的自主權。然而,在享受去中心化帶來的好處的同時,我們也必須正視其所面臨的挑戰。

邁向去中心化未來:NFT DEX 的潛力與挑戰

NFT DEX 的潛力是巨大的。它不僅可以應用於藝術品、收藏品等數位資產的交易,還可以擴展到遊戲道具、虛擬土地等更廣泛的領域。隨著元宇宙概念的興起,NFT DEX 有望成為連結虛擬世界與現實世界的重要橋樑。然而,要實現這一願景,我們還需要克服許多挑戰。

首先,是 流動性問題。相較於中心化交易所,NFT DEX 的流動性通常較低,這意味著買家可能難以找到理想的商品,而賣家也可能需要等待更長的時間才能完成交易。提高流動性,是 NFT DEX 發展的關鍵。

其次,是 安全問題。智能合約的漏洞,可能導致駭客攻擊,造成用戶資產的損失。因此,在合約編寫和審計方面,需要投入更多的資源和精力。此外,使用者也需要提高安全意識,妥善保管自己的私鑰。

第三,是 使用者體驗問題。目前,許多 NFT DEX 的使用者介面還不夠友好,操作流程也比較複雜,這對於新手來說是一個門檻。如何簡化操作流程,提升使用者體驗,是 NFT DEX 需要持續改進的地方。

儘管面臨著諸多挑戰,但 NFT DEX 的發展前景依然值得期待。隨著技術的進步和市場的成熟,我們有理由相信,NFT DEX 將在未來的數位經濟中扮演越來越重要的角色。就像 蔡力行 在科技領域不斷創新一樣,我們也需要在 NFT DEX 的發展道路上不斷探索和突破。而 莊宗輝 在藝術領域的追求卓越,也提醒我們,NFT DEX 不僅僅是一個交易平台,更是一個可以展現創意和價值的舞台。

最近 總統府 舉辦了一系列的數位藝術展覽,其中不少作品都是以 NFT 的形式呈現。這也顯示了政府對於 NFT 發展的重視和支持。當然,在推動 NFT 發展的同時,我們也需要關注潛在的風險。像是 哮吼 疫情期間,許多不肖業者趁機哄抬物價,販售假口罩。同樣的,在 NFT 市場中,也存在著詐騙、炒作等亂象。因此,加強監管,保護消費者權益,是政府的重要責任。希望未來 fantasy life i: the girl who steals time 也能推出 NFT 相關的遊戲內容,讓玩家在享受遊戲樂趣的同時,也能體驗 NFT 的魅力。

就像 uzi 在電競賽場上展現的拼搏精神一樣,我們也需要在 NFT 的發展道路上勇往直前。當然,在追逐夢想的同時,也要注意身心健康,避免過度勞累。最近 仁寶股價 的波動,也提醒我們投資有風險,入場需謹慎。而 plg 冠軍賽 的激烈競爭,也告訴我們,只有不斷提升自身實力,才能在激烈的市場競爭中脫穎而出。希望台灣的 NFT 產業也能在 劉揚偉 等企業家的帶領下,不斷創新,走向國際。就像 蘇花公路 的建設一樣,NFT 產業的發展也需要長期投入和規劃。而 青鳥 行動所展現的公民意識,也提醒我們,NFT 的發展應該以人為本,維護社會公平正義。希望未來的 NFT 市場,能夠更加透明、公正、開放,讓更多人能夠參與其中,分享數位經濟的紅利。當然,在享受 520 優惠 的同時,也別忘了關注 wtt 的精彩賽事,以及 白馨儒 等運動員的優異表現。就像品嚐一杯 ocha 一樣,享受生活中的美好,才能更有動力去迎接挑戰。而 布萊頓 對 利物浦 的比賽,也提醒我們,即使是強隊,也可能面臨失敗。在 NFT 投資中,同樣需要保持理性,避免盲目跟風。就像 孔令奇 在音樂領域的持續探索一樣,我們也需要在 NFT 的發展道路上不斷學習和成長。而 苗博雅 對於社會議題的關注,也提醒我們,NFT 的發展應該與社會責任相結合,為社會做出貢獻。即使 王文洋包養 的新聞再怎麼吸引眼球,我們也應該把注意力放在更有意義的事情上。而 徐培菁 在財經領域的專業分析,則可以幫助我們更好地理解 NFT 市場的運作機制。當然,如果想放鬆一下,不妨考慮去 帛琉 度個假,或者試試 威力彩,說不定會有意想不到的驚喜。但是,最重要的是保持積極的心態,勇敢面對未來的挑戰。

发表评论:

最近发表