Báo cáo đồ án: Xây dựng Marketplace NFT - Công nghệ nền tảng (ĐH CNTT)

Báo cáo đồ án cuối kỳ: Xây dựng Marketplace NFT sử dụng các công nghệ nền tảng. Tìm hiểu quy trình, công nghệ và kết quả dự án chi tiết.

Chuyên ngành

Các Công Nghệ Nền

Người đăng

Ẩn danh

Thể loại

Báo cáo đồ án

2022

65
3
0

Phí lưu trữ

30 Point

Tóm tắt

I. Toàn cảnh đồ án Marketplace NFT Công nghệ và mục tiêu

Đồ án xây dựng một Marketplace NFT là một báo cáo chi tiết về quá trình ứng dụng các công nghệ nền tảng để tạo ra một sàn giao dịch tài sản số phi tập trung. Mục tiêu chính của dự án là thiết lập một nền tảng cho phép người dùng thực hiện các chức năng cơ bản bao gồm tạo, mua, bán và quản lý các Non-Fungible Token (NFT). Sự bùng nổ của NFT trong các lĩnh vực như nghệ thuật, game và metaverse đã tạo ra nhu cầu cấp thiết về một môi trường giao dịch an toàn và minh bạch. Đồ án này không chỉ giải quyết nhu cầu đó ở quy mô thử nghiệm mà còn là một tài liệu học thuật giá trị, phân tích sâu về mô hình kiến trúcluồng hoạt động của một DApp (ứng dụng phi tập trung) hiện đại. Nền tảng được xây dựng tập trung vào trải nghiệm người dùng, với giao diện thân thiện và quy trình kết nối ví đơn giản thông qua ví Metamask. Các công nghệ được lựa chọn trong đồ án phản ánh xu hướng phát triển Web3, bao gồm công nghệ blockchain Polygon để giải quyết vấn đề về phí gas và tốc độ giao dịch, ngôn ngữ Solidity để phát triển hợp đồng thông minh, và lưu trữ phi tập trung với IPFS. So với các nền tảng lớn như OpenSea hay Rarible, đồ án này có quy mô nhỏ hơn nhưng tập trung vào việc làm rõ các thành phần kỹ thuật cốt lõi, từ đó cung cấp một cái nhìn tổng quan và dễ tiếp cận cho các nhà phát triển muốn tham gia vào lĩnh vực Marketplace NFT. Việc phân tích thiết kế hệ thống được thực hiện kỹ lưỡng, đảm bảo các module chức năng hoạt động một cách logic và hiệu quả.

1.1. Lý do và mục tiêu phát triển sàn giao dịch NFT

Sự phát triển mạnh mẽ của NFT (Non-fungible token) đã mở ra một nền kinh tế số hoàn toàn mới, nơi các tài sản kỹ thuật số như nghệ thuật, vật phẩm game, và video được xác thực quyền sở hữu duy nhất trên công nghệ blockchain. Điều này dẫn đến nhu cầu về một Marketplace NFT – nơi người dùng có thể tạo, mua, bán và trưng bày các tài sản này. Mục tiêu của đồ án là xây dựng một sàn giao dịch NFT với các chức năng cốt lõi: cho phép người dùng tạo NFT (minting), niêm yết NFT lên sàn, mua các NFT có sẵn và quản lý bộ sưu tập cá nhân. Dự án hướng tới việc cung cấp một nền tảng minh bạch, an toàn và dễ sử dụng, giúp người dùng tiếp cận thị trường NFT một cách thuận tiện.

1.2. Các công nghệ nền tảng được lựa chọn trong đồ án

Để hiện thực hóa mục tiêu, đồ án đã lựa chọn một bộ công cụ (tech stack) hiện đại và hiệu quả. Về phía backend và logic on-chain, ngôn ngữ Solidity được sử dụng để viết smart contract trên nền tảng Ethereum (thông qua layer 2 Polygon). Tiêu chuẩn token ERC-721 được áp dụng để đảm bảo tính độc nhất của mỗi NFT. Để lưu trữ siêu dữ liệu (metadata) của NFT một cách bền vững và phi tập trung, hệ thống tệp IPFS được tích hợp. Về phía frontend, đồ án sử dụng Next.js, một framework của ReactJS, để xây dựng giao diện người dùng có khả năng render phía máy chủ, tối ưu cho SEO và tốc độ. Thư viện Ethers.js đóng vai trò là cầu nối, cho phép ứng dụng web tương tác mượt mà với blockchain và ví Metamask của người dùng.

II. Thách thức khi xây dựng Marketplace NFT trên Blockchain

Việc xây dựng một Marketplace NFT đối mặt với nhiều thách thức kỹ thuật đặc thù của công nghệ blockchain. Một trong những rào cản lớn nhất là vấn đề về khả năng mở rộng và chi phí giao dịch, hay còn gọi là phí gas, trên các mạng lưới blockchain phổ biến như nền tảng Ethereum. Các giao dịch như mint NFT hay mua bán đều yêu cầu một khoản phí, và khoản phí này có thể tăng đột biến khi mạng lưới bị tắc nghẽn, làm giảm trải nghiệm người dùng. Thách thức thứ hai liên quan đến việc lưu trữ dữ liệu. Việc lưu trữ trực tiếp các tệp đa phương tiện (hình ảnh, video) trên blockchain là cực kỳ tốn kém và không hiệu quả. Do đó, cần có một giải pháp lưu trữ phi tập trung như IPFS để lưu trữ tài sản số, trong khi blockchain chỉ lưu trữ đường dẫn (hash) đến tài sản đó. Vấn đề bảo mật marketplace cũng là một ưu tiên hàng đầu. Các hợp đồng thông minh phải được viết một cách cẩn thận để tránh các lỗ hổng có thể bị khai thác, dẫn đến mất mát tài sản. Quá trình xác thực người dùng thông qua kết nối ví như ví Metamask tuy tiện lợi nhưng cũng đòi hỏi cơ chế xử lý lỗi và đảm bảo an toàn cho người dùng. Cuối cùng, việc đồng bộ hóa dữ liệu giữa on-chain (dữ liệu trên blockchain) và off-chain (cơ sở dữ liệu truyền thống hoặc cache) để tối ưu hóa tốc độ hiển thị cũng là một bài toán phức tạp trong phân tích thiết kế hệ thống cho một Marketplace NFT.

2.1. Vấn đề về khả năng mở rộng và phí gas trên Ethereum

Nền tảng blockchain phổ biến nhất cho NFT là Ethereum. Tuy nhiên, Ethereum gặp phải vấn đề về khả năng mở rộng, dẫn đến tốc độ giao dịch chậm và phí gas cao, đặc biệt trong thời gian cao điểm. Điều này tạo ra rào cản lớn cho người dùng mới và các giao dịch có giá trị thấp. Để giải quyết vấn đề này, đồ án đã lựa chọn Polygon (MATIC), một giải pháp layer 2 cho Ethereum. Polygon cung cấp các giao dịch nhanh hơn và chi phí thấp hơn đáng kể mà vẫn thừa hưởng được tính bảo mật từ mạng lưới Ethereum chính.

2.2. Thách thức trong việc lưu trữ siêu dữ liệu phi tập trung

Một NFT về cơ bản là một token trên blockchain trỏ đến một tệp siêu dữ liệu (metadata) chứa thông tin như tên, mô tả và hình ảnh. Lưu trữ trực tiếp tệp hình ảnh/video trên blockchain là không khả thi về mặt chi phí. Giải pháp được áp dụng là sử dụng hệ thống lưu trữ phi tập trung IPFS (InterPlanetary File System). Dữ liệu được tải lên IPFS và nhận về một mã hash duy nhất. Mã hash này sau đó được lưu trữ trong smart contract. Thách thức ở đây là đảm bảo dữ liệu trên IPFS luôn có sẵn và không bị mất, đòi hỏi các cơ chế pinning hoặc sử dụng các dịch vụ pinning chuyên dụng.

2.3. Đảm bảo bảo mật marketplace và xác thực người dùng

An toàn và bảo mật marketplace là yếu tố sống còn. Lỗ hổng trong smart contract có thể dẫn đến việc hacker đánh cắp tài sản của người dùng. Do đó, việc kiểm tra và tuân thủ các tiêu chuẩn bảo mật khi lập trình bằng Solidity là cực kỳ quan trọng, ví dụ như sử dụng các thư viện đã được kiểm chứng như OpenZeppelin. Về phía người dùng, xác thực người dùng được thực hiện thông qua việc kết nối ví non-custodial như ví Metamask. Hệ thống không lưu trữ private key của người dùng, giúp tăng cường bảo mật. Tuy nhiên, giao diện cần hướng dẫn người dùng rõ ràng về các giao dịch họ sắp ký để tránh các cuộc tấn công lừa đảo (phishing).

III. Hướng dẫn thiết kế Smart Contract cho Marketplace NFT

Trái tim của mọi Marketplace NFThợp đồng thông minh (smart contract). Đây là chương trình tự thực thi được triển khai trên blockchain, chịu trách nhiệm xử lý mọi logic nghiệp vụ một cách phi tập trung và minh bạch. Trong đồ án này, smart contract được viết bằng ngôn ngữ lập trình Solidity và tuân thủ tiêu chuẩn ERC-721, một tiêu chuẩn phổ biến cho các token không thể thay thế trên nền tảng Ethereum. Cấu trúc của hợp đồng NFTMarketplace.sol được thiết kế để quản lý ba hoạt động chính: tạo token mới, tạo mộtรายการ bán trên thị trường, và thực hiện giao dịch mua bán. Hợp đồng kế thừa từ các hợp đồng tiêu chuẩn của OpenZeppelin như ERC721URIStorage để quản lý siêu dữ liệu và Counters để tạo ID token tự động tăng. Các hàm quan trọng được triển khai bao gồm: createToken() cho phép người dùng mint NFT mới bằng cách cung cấp URI siêu dữ liệu từ IPFS và giá bán; fetchMarketItems() truy vấn tất cả các NFT đang được niêm yết NFT trên sàn; và createMarketSale() thực hiện việc chuyển quyền sở hữu NFT từ người bán sang người mua và chuyển tiền tương ứng, đồng thời xử lý các khoản phí giao dịch (phí gas). Phân tích thiết kế hệ thống cho smart contract đòi hỏi sự cân nhắc kỹ lưỡng về tối ưu hóa chi phí gas và đảm bảo tính bảo mật, tránh các lỗ hổng phổ biến như re-entrancy. Mã nguồn của hợp đồng được trình bày chi tiết trong tài liệu, cho thấy rõ luồng hoạt động on-chain của nền tảng.

3.1. Sử dụng Solidity và tiêu chuẩn ERC 721 để tạo NFT

Ngôn ngữ Solidity là lựa chọn hàng đầu để phát triển smart contract trên các nền tảng tương thích EVM như Ethereum và Polygon. Đồ án sử dụng Solidity phiên bản ^0.8.4. Tiêu chuẩn ERC-721 được áp dụng để định nghĩa giao diện chuẩn cho NFT, đảm bảo mỗi token là duy nhất và có thể được chuyển giao. Hợp đồng NFTMarketplace.sol kế thừa từ ERC721.sol của OpenZeppelin, một thư viện mã nguồn mở uy tín, giúp giảm thiểu rủi ro bảo mật và đơn giản hóa quá trình phát triển. Việc tuân thủ ERC-721 cũng đảm bảo các NFT được tạo ra trên marketplace này tương thích với các ví và sàn giao dịch khác trong hệ sinh thái.

3.2. Cấu trúc hợp đồng thông minh NFTMarketplace.sol

Mô hình kiến trúc của smart contract NFTMarketplace.sol bao gồm các biến trạng thái, sự kiện và hàm chức năng. Biến trạng thái idToMarketItem là một mapping lưu trữ thông tin của mỗi NFT được niêm yết, bao gồm tokenId, seller, owner, price và trạng thái sold. Sự kiện MarketItemCreated được phát ra mỗi khi một NFT mới được đưa lên sàn, cho phép các ứng dụng frontend lắng nghe và cập nhật giao diện. Các hàm được phân chia rõ ràng theo chức năng, từ việc quản lý giá niêm yết đến các quy trình cốt lõi của Marketplace NFT.

3.3. Các hàm chính createToken fetchMyNFTs và resellToken

Hợp đồng có ba hàm chức năng chính định hình luồng hoạt động của người dùng. Hàm createToken xử lý việc tạo NFT (minting) và niêm yết nó lần đầu, yêu cầu người dùng trả một khoản phí niêm yết. Hàm fetchMyNFTs cho phép người dùng truy vấn tất cả các NFT mà họ đã mua và đang sở hữu. Hàm resellToken cho phép chủ sở hữu hiện tại của một NFT niêm yết lại nó trên thị trường với một mức giá mới, tạo ra một thị trường thứ cấp sôi động. Mỗi hàm đều có các yêu cầu (require statements) để xác thực các điều kiện như giá phải lớn hơn 0 hoặc chỉ chủ sở hữu mới có thể bán lại, đảm bảo tính toàn vẹn của giao dịch.

IV. Cách xây dựng Frontend Marketplace NFT với Next

Giao diện người dùng (Frontend) là cầu nối quan trọng giữa người dùng và công nghệ blockchain. Đồ án đã lựa chọn Next.js, một framework ReactJS mạnh mẽ, để xây dựng một Marketplace NFT hiện đại và hiệu suất cao. Việc sử dụng Next.js mang lại lợi thế về Server-Side Rendering (SSR) và Static Site Generation (SSG), giúp cải thiện đáng kể tốc độ tải trang và tối ưu hóa cho công cụ tìm kiếm (SEO), một yếu tố thường bị xem nhẹ trong các DApp truyền thống. Để tương tác với hợp đồng thông minh đã triển khai, thư viện Ethers.js được sử dụng. Ethers.js cung cấp một bộ công cụ toàn diện để kết nối với mạng blockchain (thông qua các provider như Infura hoặc Alchemy), đọc dữ liệu từ hợp đồng và gửi các giao dịch để người dùng ký thông qua ví Metamask. Quá trình kết nối ví là bước đầu tiên và quan trọng nhất trong luồng hoạt động của người dùng. Về phần xử lý dữ liệu tài sản số, đồ án tích hợp IPFS thông qua ipfs-http-client. Khi người dùng tạo NFT, hình ảnh sẽ được tải lên mạng lưới IPFS, và URL trả về sẽ được lưu trữ dưới dạng tokenURI trong siêu dữ liệu của NFT. Cách tiếp cận lưu trữ phi tập trung này đảm bảo rằng dữ liệu của NFT không phụ thuộc vào một máy chủ tập trung nào, tăng cường tính bền vững và chống kiểm duyệt. Toàn bộ mã nguồn frontend được cấu trúc rõ ràng, tách biệt các thành phần giao diện, logic kết nối và các trang chức năng như trang chủ, trang tạo NFT, và trang quản lý NFT cá nhân.

4.1. Tích hợp Next.js để tối ưu SEO và tốc độ tải trang

Khác với các ứng dụng React thuần túy (Client-Side Rendering), Next.js cho phép pre-rendering các trang trên máy chủ. Điều này có nghĩa là khi người dùng truy cập, họ nhận được một trang HTML đã hoàn chỉnh, giúp các công cụ tìm kiếm như Google dễ dàng lập chỉ mục nội dung. Đối với một Marketplace NFT, việc hiển thị thông tin chi tiết của từng NFT một cách nhanh chóng và thân thiện với SEO là rất quan trọng để thu hút người dùng. Next.js cũng hỗ trợ tách mã tự động, chỉ tải các đoạn mã JavaScript cần thiết cho trang hiện tại, giúp cải thiện hiệu suất tổng thể.

4.2. Tương tác với blockchain qua Ethers.js và ví Metamask

Thư viện Ethers.js là công cụ chính để frontend giao tiếp với nền tảng Ethereum. Nó cung cấp các đối tượng Provider để đọc dữ liệu từ blockchain và Signer để gửi giao dịch. Khi người dùng muốn thực hiện một hành động như mua NFT, ứng dụng sẽ sử dụng Ethers.js để tạo một giao dịch, sau đó yêu cầu ví Metamask của người dùng ký và gửi giao dịch đó lên mạng lưới. Quá trình kết nối ví được thực hiện thông qua Web3Modal, một thư viện giúp đơn giản hóa việc kết nối với nhiều loại ví khác nhau, mang lại trải nghiệm liền mạch cho người dùng.

4.3. Vai trò của IPFS trong việc lưu trữ siêu dữ liệu NFT

Hệ thống tệp liên hành tinh IPFS đóng vai trò là một cơ sở dữ liệu đối tượng cho các tài sản số của Marketplace NFT. Quy trình hoạt động như sau: người dùng chọn một tệp hình ảnh, frontend sử dụng client của IPFS để tải tệp đó lên mạng lưới. Sau khi tải lên thành công, IPFS trả về một Content Identifier (CID) duy nhất. Frontend sau đó tạo một tệp JSON chứa siêu dữ liệu (tên, mô tả, và CID của hình ảnh), và tiếp tục tải tệp JSON này lên IPFS. Cuối cùng, CID của tệp JSON này sẽ được truyền vào hàm createToken của smart contract. Phương pháp này đảm bảo tính phi tập trung và bất biến cho cả tài sản và siêu dữ liệu của NFT.

V. Phân tích luồng hoạt động chính của Marketplace NFT

Việc phân tích thiết kế hệ thống của một Marketplace NFT được thể hiện rõ nhất qua các luồng hoạt động (user flows) chính. Đồ án này đã triển khai thành công các quy trình cốt lõi, từ việc người dùng tham gia hệ thống đến khi sở hữu và giao dịch tài sản. Luồng đầu tiên và cơ bản nhất là xác thực người dùng thông qua kết nối ví Metamask. Người dùng chỉ cần một cú nhấp chuột để kết nối ví của mình với DApp, không cần đăng ký tài khoản truyền thống. Luồng thứ hai là quy trình tạo NFT, hay còn gọi là 'minting'. Người dùng truy cập trang 'Sell NFT', điền các thông tin cần thiết (tên, mô tả, giá), và tải lên tệp hình ảnh. Hệ thống sẽ tự động tải hình ảnh và siêu dữ liệu lên IPFS, sau đó yêu cầu người dùng xác nhận giao dịch trên ví Metamask để gọi hàm createToken trên smart contract. Luồng thứ ba là mua một NFT. Tại trang chủ, người dùng duyệt qua các NFT đang được niêm yết NFT. Khi quyết định mua, họ nhấp vào nút 'Buy', và một cửa sổ xác nhận giao dịch từ Metamask sẽ hiện lên, hiển thị giá và phí gas ước tính. Sau khi xác nhận, hàm createMarketSale được thực thi, chuyển quyền sở hữu token và thanh toán cho người bán. Cuối cùng, luồng quản lý tài sản cho phép người dùng xem các NFT họ sở hữu trong trang 'My NFTs' và các NFT họ đã niêm yết trong 'Dashboard', cung cấp một cái nhìn tổng quan về hoạt động của họ trên Marketplace NFT.

5.1. Quy trình tạo NFT minting và niêm yết lên sàn

Quy trình tạo NFT bắt đầu tại giao diện frontend. Người dùng cung cấp tệp đa phương tiện và các thông tin mô tả. Frontend sẽ: 1. Tải tệp lên IPFS để nhận về một mã hash hình ảnh. 2. Tạo một tệp metadata dạng JSON chứa tên, mô tả và mã hash hình ảnh, sau đó tải tệp JSON này lên IPFS để nhận về một tokenURI. 3. Gọi hàm createToken trong smart contract, truyền vào tokenURI và giá niêm yết. Người dùng xác nhận giao dịch trên ví Metamask, trả phí gas để thực hiện. Sau khi giao dịch hoàn tất, một NFT mới theo tiêu chuẩn ERC-721 được tạo ra và tự động được niêm yết trên sàn.

5.2. Luồng hoạt động mua một NFT từ người dùng khác

Khi một người dùng muốn mua NFT, họ sẽ duyệt các sản phẩm trên trang chủ. Thông tin của các NFT này được frontend lấy về bằng cách gọi hàm fetchMarketItems của hợp đồng thông minh. Khi nhấn nút 'Buy', ứng dụng sẽ khởi tạo một giao dịch bằng Ethers.js, gọi đến hàm createMarketSale với tokenId của NFT và gửi kèm số Ether bằng với giá bán. Ví Metamask sẽ yêu cầu người dùng xác nhận. Nếu xác nhận, giao dịch được gửi lên blockchain. Sau khi được xác thực, quyền sở hữu NFT được chuyển cho người mua, tiền được chuyển cho người bán và hợp đồng, NFT đó sẽ được đánh dấu là đã bán.

5.3. Quản lý và bán lại NFT trong trang cá nhân My NFTs

Người dùng có thể truy cập trang 'My NFTs' để xem tất cả các tài sản số mà họ đang sở hữu. Trang này gọi hàm fetchMyNFTs từ smart contract để lọc ra các NFT có địa chỉ chủ sở hữu là địa chỉ ví của người dùng. Tại đây, mỗi NFT sẽ có tùy chọn 'List' (Niêm yết lại). Khi chọn chức năng này, người dùng sẽ được chuyển đến trang 'Resell NFT', nơi họ có thể đặt một mức giá mới. Việc bán lại sẽ gọi đến hàm resellToken, yêu cầu người dùng xác nhận một giao dịch mới để đưa NFT trở lại thị trường, sẵn sàng cho người mua tiếp theo. Luồng hoạt động này tạo ra một thị trường thứ cấp năng động.

VI. Tương lai của Marketplace NFT Kết quả và hướng đi mới

Báo cáo đồ án đã trình bày thành công việc xây dựng một Marketplace NFT với đầy đủ các chức năng cơ bản. Kết quả đạt được là một ứng dụng phi tập trung hoạt động ổn định trên mạng thử nghiệm của Polygon, cho phép người dùng tạo NFT, mua, bán và quản lý tài sản số một cách trực quan. Việc ứng dụng các công nghệ như Next.js, Ethers.js, và IPFS đã tạo ra một nền tảng có hiệu suất tốt và trải nghiệm người dùng mượt mà. Smart contract được viết bằng Solidity theo tiêu chuẩn ERC-721 đã chứng minh được tính hiệu quả trong việc quản lý logic giao dịch trên công nghệ blockchain. Tuy nhiên, đồ án cũng chỉ ra một số nhược điểm và hạn chế, chủ yếu đến từ quy mô của một dự án học thuật. Hệ thống hiện tại chưa có các tính năng nâng cao như đấu giá NFT, tạo bộ sưu tập, hay các cơ chế quản trị cộng đồng. Bảo mật marketplace mặc dù được chú trọng nhưng vẫn cần được kiểm toán (audit) chuyên nghiệp trước khi triển khai trên mạng chính. Hướng phát triển trong tương lai rất rộng mở. Nền tảng có thể được mở rộng để hỗ trợ các tiêu chuẩn token khác như ERC-1155 (cho phép tạo nhiều bản sao của một NFT, phù hợp cho vật phẩm game). Tích hợp với các blockchain khác như Solana hay Binance Smart Chain sẽ giúp thu hút thêm người dùng. Việc xây dựng các API để các nhà phát triển bên thứ ba có thể tương tác với marketplace, tương tự như API của OpenSea, cũng là một hướng đi tiềm năng để phát triển hệ sinh thái.

6.1. Đánh giá kết quả đạt được của đồ án marketplace

Đồ án đã thành công trong việc hiện thực hóa một Marketplace NFT với các chức năng cốt lõi. Giao diện người dùng thân thiện, luồng hoạt động từ kết nối ví đến giao dịch được thực hiện trơn tru. Hệ thống đã giải quyết được các bài toán cơ bản về lưu trữ phi tập trung với IPFS và tối ưu phí gas bằng cách triển khai trên Polygon. Đây là một nền tảng vững chắc và là một sản phẩm mã nguồn mở có giá trị tham khảo cao cho cộng đồng các nhà phát triển Web3.

6.2. Những hạn chế và nhược điểm còn tồn tại của hệ thống

Bên cạnh những thành công, hệ thống vẫn còn một số hạn chế. Chức năng tìm kiếm và lọc sản phẩm còn đơn giản, chưa có các bộ lọc nâng cao theo thuộc tính. Hệ thống chưa hỗ trợ cơ chế đấu giá NFT, một hình thức giao dịch rất phổ biến. Ngoài ra, việc quản lý bản quyền và xác minh tính xác thực của người tạo (creator) vẫn là một thách thức chưa được giải quyết triệt để trong khuôn khổ đồ án. Các vấn đề về giao diện trên thiết bị di động cũng cần được cải thiện thêm.

6.3. Hướng phát triển trong tương lai cho nền tảng NFT

Để trở thành một Marketplace NFT cạnh tranh, nhiều tính năng có thể được bổ sung. Trước hết là phát triển hệ thống đấu giá NFT (Auction). Tiếp theo, nền tảng có thể hỗ trợ tiêu chuẩn ERC-1155 để phục vụ cho lĩnh vực game và vật phẩm số có số lượng lớn. Mở rộng đa chuỗi (multi-chain) sang các nền tảng Ethereum Virtual Machine (EVM) khác như Binance Smart Chain hoặc các blockchain hiệu suất cao như Solana sẽ là một bước tiến quan trọng. Cuối cùng, việc xây dựng các tính năng xã hội (social features) và một mô hình quản trị phi tập trung (DAO) sẽ giúp tạo ra một cộng đồng người dùng gắn kết và bền vững.

26/09/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Lý do chọn đề tài NFT là tài sản mật mã được tạo trên công nghệ blockchain có mã nhận dạng duy nhất và siêu dữ liệu, giúp chúng có thể phân biệt, khác biệt và hoàn toàn duy nhất. NFT là tài sản kỹ thuật số đại diện cho các tài sản trong thế giới thực như nghệ thuật, âm nhạc, vật phẩm trong trò chơi và video được liên kết với bằng chứng quyền sở hữu. Vì vậy NFT Marketplace ra đời để có thể người dùng có thể tạo, mua hoặc bán NFT. Thị trường này cũng được sử dụng để lưu trữ, hiển thị hoặc hiển thị giao dịch và tạo mã thông báo NFT hoặc bất kỳ tài sản kỹ thuật số nào.

Đối với người dùng, trải nghiệm thị trường NFT thuận tiện như một sàn giao dịch tiền điện tử.2 Yêu cầu của đề tài - Nắm được các kiến thức cơ bản về smart contract, cách deploy một smart contract,. -Tạo ra một sàn giao dịch NFT có các chức năng cơ bản như:cửa sổ mua sắm, ví, đăng ký tài khoản, tìm kiếm,.1 Guest: - Khách viếng thăm - Xem thông tin sản phẩm cũng như các tin tức khác - Đăng ký để kết nối với ví Metamask 1.2 User: - Đã có tài khoản kết nối với ví Metamask - Đặt mua sản phẩm - Bán sản phẩm 1.4 Phạm vi ứng dụng Người dùng có nhu cầu tạo, thu thập, sưu tầm, mua và bán các NFT để thu lợi nhuận.5 Đặc điểm Website được thiết kế với - Giao diện hài hoà, thân thiện, giúp người dùng dễ dàng sử dụng. - Trang chủ sẽ hiển thị danh sách các sản phẩm được bán. - Khách hàng có thể dễ dàng tìm thấy thông tin chi tiết các sản phẩm mà họ quan tâm.

- Khách hàng có thể tìm kiếm sản phẩm. - Có chức năng đăng ký và liên kết với ví Metamask 5 TIEU LUAN MOI download : skknchat@gmail.M21- Các công nghệ nền | Nhóm 4 1.1 Module sản phẩm Các NFT được liệt kê trên thị trường phải hiển thị tất cả thông tin quan trọng theo cách tối ưu hóa nhất: tên, giá, mô tả, chủ sở hữu, phương thức thanh toán, v.2 Module đăng nhập Đăng nhập bằng cách liên kết với ví Metamask hiện có của khách hàng vào NFT Marketplace.3 Module tìm kiếm sản phẩm Các sản phẩm tại trang chủ có thể được tìm kiếm để hiển thị ra sản phẩm phù hợp nhất với yêu cầu khách hàng.4 Module quản lý sản phẩm Người dùng có thể cập nhật những sản phẩm mình đã mua và đã bán trong danh mục sản phẩm của mình.7 Công cụ triển khai - IDE: Visual Studio Code - Quản lý code: Github - Quản lý công việc: Excel - Trao đổi, liên lạc: Microsoft Team, Facebook 6 TIEU LUAN MOI download : skknchat@gmail.M21- Các công nghệ nền | Nhóm 4 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Tech stack: ● Programing Language - Solidity ● Blockchain Platform - Polygon (MATIC) ● NFT Standards EERC-721 ● Front-end Frameworks ● Web application framework - Next.js ● CSS framework - CSS Tailwind ● Storage Platforms - IPFS ● Ethereum Web Client Library - Ethers.1 Ngôn ngữ lập trình Solidity Solidity được biết đến là một ngôn ngữ lập trình hướng contract, được sử dụng hầu hết trong smart contract (nâng cấp và tạo lập) thuộc hệ sinh thái Ethereum. Solidity có các cú pháp và câu lệnh gần giống với các ngôn ngữ lập trình phổ biến hiện nay (Java, C++, C#. Ngôn ngữ Solidity có những ứng dụng vô cùng quan trọng đối với công nghệ Blockchain.

Một ví dụ điển hình của công nghệ Blockchain hiện nay chính là tiền điện tử. Nhờ có sự ra đời của ngôn ngữ lập trình Solidity, các nhà lập trình có thể dễ dàng ứng dụng công nghệ Blockchain này vào các lĩnh vực kinh tế và đời sống.2 Nền tảng Blockchain – Polygon (MATIC) - Polygon (MATIC) là một platform hỗ trợ phát triển cơ sở hạ tầng và giúp Ethereum mở rộng quy mô hay còn gọi là layer 2. Polygon (MATIC) hỗ trợ tất cả các công cụ Ethereum hiện có cùng với các giao dịch nhanh hơn và rẻ hơn. Polygon (MATIC) cố gắng giải quyết các vấn đề về khả năng mở rộng và khả năng sử dụng trong khi không ảnh hưởng đến phân quyền, bảo mật và tận dụng cộng đồng nhà phát triển, hệ sinh thái hiện có.

Polygon là một giải pháp mở rộng off/side chain cho các nền tảng hiện có để cung cấp khả năng mở rộng và trải nghiệm người dùng vượt trội cho DApps/ chức năng người dùng. - Tính năng chính và điểm nổi bật: - Khả năng mở rộng: giao dịch nhanh, chi phí thấp và an toàn trên các sidechain Polygon với độ chính xác đạt được trên chuỗi chính và Ethereum là layer 1 base chain tương thích đầu tiên. - Thông lượng cao: đạt được lên đến 10.000 TPS trên một single sidechain trên testnet nội bộ. Nhiều chuỗi sẽ được thêm vào để mở rộng quy mô theo chiều ngang.

7 TIEU LUAN MOI download : skknchat@gmail.M21- Các công nghệ nền | Nhóm 4 - Trải nghiệm người dùng: mượt mà và dễ sử dụng từ chain chính đến Polygon, ứng dụng di động gốc và SDK có hỗ trợ Wallet Connect. - Bảo mật: những người vận hành Polygon chain, chính họ là những người đóng vai trò quan trọng trong hệ thống PoS. - Public Sidechains: Polygon sidechain về bản chất là công khai (so với chuỗi DApp riêng lẻ), không được phép và có khả năng hỗ trợ nhiều giao thức. - Kiến trúc Polygon Gồm 4 layer có thể kết hợp: Execution layer, Polygon networks layer, Security layer, Ethereum layer.1 Kiến trúc 4 lớp của Polygon - Execution layer Layer này diễn giải và thực hiện các giao dịch đã được thỏa thuận và đưa vào các blockchain của mạng Polygon (MATIC).

Nó bao gồm hai lớp con: ● Môi trường thực thi (triển khai máy ảo có thể cắm được) ● Logic thực thi (chức năng chuyển đổi trạng thái của mạng Polygon, thường được viết dưới dạng hợp đồng thông minh Ethereum) - Polygon networks layer Một tập hợp của các mạng blockchain có chủ quyền. Mỗi mạng phục vụ cộng đồng tương ứng của nó, duy trì các chức năng như: ● Đối chiếu giao dịch ● Sự đồng thuận của nội bộ ● Sản xuất khối 8 TIEU LUAN MOI download : skknchat@gmail.M21- Các công nghệ nền | Nhóm 4 Các mạng có thể sử dụng giao thức Polygon (MATIC) để kết nối với nhau và trao đổi thông tin tùy ý. - Security layer Một layer chuyên biệt, không bắt buộc phải quản lý một tập hợp các trình xác thực và có thể kiểm tra định kỳ tính hợp lệ của bất kỳ chuỗi Polygon (MATIC) nào với một khoản phí. Lớp này có thể được triển khai như một siêu blockchain chạy song song với Ethereum, phụ trách các chức năng như: ● Quản lý trình xác thực (đăng ký/ hủy đăng ký, phần thưởng…) ● Xác thực Polygon Chain Lớp bảo mật là fully abstract và có thể có nhiều trường hợp, được thực hiện bởi các thực thể khác nhau, có các đặc điểm khác nhau.

Nó cũng có thể được thực hiện trực tiếp trên Ethereum, trong trường hợp đó, các thợ đào Ethereum thực hiện việc xác nhận. - Ethereum layer Polygon chain có thể sử dụng Ethereum, blockchain lập trình an toàn nhất trên thế giới, để lưu trữ và thực hiện bất kỳ thành phần quan trọng nào trong logic của chúng. Layer này được triển khai dưới dạng một tập hợp các hợp đồng thông minh Ethereum, phụ trách các chức năng như: ● Tính chất cuối cùng/điểm kiểm tra ● Staking ● Giải quyết tranh chấp ● Chuyển tiếp thông tin 2.3 Tiêu chuẩn ERC-721 Tiêu chuẩn non-fungible token ERC-721 được viết bằng ngôn ngữ Solidity trên chuỗi khối Ethereum và nó cho phép các nhà phát triển mã hóa quyền sở hữu bất kỳ dữ liệu tùy ý nào. Đặc biệt, tiêu chuẩn này nhằm mục đích tạo ra các mã thông báo có thể hoán đổi cho nhau.

Một ví dụ về hợp đồng ER-721 là của OpenZeppelin, cho phép các nhà phát triển theo dõi các vật phẩm trong trò chơi của họ. 9 TIEU LUAN MOI download : skknchat@gmail.M21- Các công nghệ nền | Nhóm 4 Hình 2.js là một framework dùng để phát triển các ứng dụng React. React là một framework của javascript để xây dựng frontend với nhiều ưu điểm như chia nhỏ các phần của web, module hoá css, xử lý sự kiện…Tuy nhiên, react chỉ phù hợp để render dữ liệu phía client, việc này ảnh hưởng rất lớn đến SEO của website khi mà hầu hết những data mà google đánh index đều phải được render ở server. - Phân biệt giữa Serverside Rendering và Clientside Rendering Serverside Rendering Clientside Rendering Server trả về cho browser file CSR trả về file HTML gần như trống cùng với HTML của trang đã được link tới file JS rendered Nội dung file HTML đã hoàn Đối với CSR, ta sẽ cần chờ tới khi tất cả các quá chỉnh và được hiển thị ngay khi trình xây dựng Virtual DOM và gắn các sự kiện nó được load về máy hoàn thành đến khi Virtual DOM được chuyển vào browser DOM để website có thể xem được.1 So sánh Serverside rendering và Clientside rendering 10 TIEU LUAN MOI download : skknchat@gmail.M21- Các công nghệ nền | Nhóm 4 - Để hỗ trợ việc render ở phía server cho React, các nhà phát triển đã tạo ra Next.js tích hợp nhiều tính năng như: - Pre-rendering, cả static generation (SSG) và server-side rendering (SSR), - Tách mã tự động để tải trang nhanh hơn, mỗi page chỉ load những gì cần thiết cho page đó.

Ví dụ khi render trang chủ thì những page khác sẽ không được khởi tạo, như vậy trang chủ sẽ được load nhanh cho dù website của bạn có cả 100 page - Hỗ trợ refresh page nhanh chóng ở môi trường development - Hoàn toàn có thể mở rộng 2.2 CSS Tailwind Tailwind là một CSS framework giúp ta có thể nhanh chóng xây dựng giao diện người dùng. Tailwind giúp xây dựng website một cách nhanh chóng nhất với các thuộc tính CSS đã được gán thành những class riêng và khi dùng ta chỉ việc gọi ra sử dụng.5 Ethereum Development Environment – Hardhat - Hardhat là một môi trường để biên dịch, triển khai, test và debug dapp ethereum được phát triển trên nền tảng javascript. - Một số điểm tính năng nổi bật của Hardhat - Tích hợp mạng local Hardhat, dễ dàng chạy và debug code ngay trên local. - Debug dễ dàng hơn: Với Hardhat, chúng ta có thể debug code Solidity dễ dàng hơn khi có thể console.log ra các biến (Solidity vốn ko hỗ trợ console.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ