1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Sàn giao dịch NFT trên nền tảng ethereum

67 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 67
Dung lượng 2,26 MB

Nội dung

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM ĐỒ ÁN ĐỀ TÀI: XÂY DỰNG SÀN GIAO DỊCH NFT TRÊN NỀN TẢNG ETHEREUM Giảng viên hướng dẫn: Nguyễn Tấn Toàn Sinh viên thực hiện: Nguyễn Minh Tân – 18520150 Lớp: SE122.M11 Tp.HCM, ngày 21, tháng 12, năm 2021 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN ., ngày tháng năm 2021 Người nhận xét (Ký tên ghi rõ họ tên) LỜI MỞ ĐẦU NFT loại tài sản số diện blockchain Không giống với vật thể số tái sản xuất vơ hạn khác, NFT có chữ kí số riêng biệt, đánh dấu tính độc Chúng thường giao dịch mạng blockchain đồng tiền mã hoá đồng USD Mặc dù xem tài sản NFT, người mua có quyền sở hữu thức Nhờ tính chất độc đáo mà NFT ứng dụng đa dạng vào nhiều lĩnh vực, bật lĩnh vực: tác phẩm nghệ thuật kỹ thuật số, đồ sưu tầm, vật phẩm trò chơi, NFT thể thao NFT giao dịch từ khoảng năm 2017 Nó bắt đầu thu hút ý từ đầu năm 2021 trước bùng nổ vào khoảng tháng 8/2021 Theo Nasdaq, khối lượng giao dịch NFT tháng 10/2021 vừa qua đạt 15 tỷ USD Cùng với phát triển thị trường giao dịch NFT, nhu cầu sử dụng sàn giao dịch chuyên dụng dành cho NFT quan tâm, nhiều sàn giao dịch lớn đời để phục vụ nhu cầu mua bán tài sản kỹ thuật số Nắm bắt nhu cầu này, em định tìm hiểu công nghệ NFT áp dụng vào việc xây dựng “Sàn giao dịch NFT tảng Ethereum” LỜI CẢM ƠN Trên thực tế khơng có thành công mà không gắn liền với hỗ trợ, giúp đỡ dù hay nhiều, dù trực tiếp hay gián tiếp người khác Trong suốt thời gian từ bắt đầu học tập giảng đường đại học đến nay, em nhận nhiều quan tâm, giúp đỡ quý Thầy Cô, gia đình bạn bè Em xin chân thành cảm ơn thầy Nguyễn Tấn Tồn - người tận tình hướng dẫn tạo điều kiện tốt cho em trình tìm hiểu, nghiên cứu thực đề tài Nếu khơng có lời hướng dẫn, dạy bảo Thầy chúng em nghĩ đồ án em khó hồn thiện Một lần nữa, chúng em xin chân thành cảm ơn Thầy Đồ án thực khoảng thời gian gần tháng Bước đầu vào thực tế, tìm hiểu lĩnh vực này, kiến thức chúng em hạn chế nhiều bỡ ngỡ Do vậy, khơng tránh khỏi thiếu sót điều chắn, em mong nhận ý kiến đóng góp quý báu Thầy bạn học lớp để kiến thức chúng em lĩnh vực hồn thiện Sau cùng, nhóm xin kính chúc Thầy thật dồi sức khỏe, niềm tin để tiếp tục thực sứ mệnh cao đẹp truyền đạt kiến thức cho hệ mai sau Em xin chân thành cảm ơn! MỤC LỤC LỜI MỞ ĐẦU LỜI CẢM ƠN Chương TỔNG QUAN ĐỀ TÀI 11 1.1 Tên đề tài 11 1.2 Giới thiệu đề tài 11 1.3 Khảo sát trạng 11 1.4 Mục tiêu đề tài 14 Chương KIẾN THỨC NỀN TẢNG 15 2.1 Blockchain 15 2.1.1 Giới thiệu 15 2.1.2 Tính chất blockchain 16 2.1.3 Ứng dụng blockchain 18 2.2 Smart Contract 19 2.2.1 Giới thiệu 19 2.2.2 Cơ chế hoạt đồng Smart Contract 20 2.2.3 Tính chất Smart Contract 21 2.3 Nền tảng Ethereum 22 2.3.1 Giới thiệu 22 2.3.2 Các thành phần Ethereum 23 2.4 NFT 26 2.4.1 NFT 26 2.4.2 Tính chất NFT 26 2.5 IPFS 27 2.5.1 Giới thiệu 27 2.5.2 Đặc điểm bật 27 2.6 ReactJS 28 2.7 Solidity 29 Chương PHÂN TÍCH THIẾT KẾ HỆ THỐNG 30 3.1 Đặt tả yêu cầu 30 3.1.1 Mục đích xây dựng hệ thống 30 3.2 Phạm vi hệ thống 30 3.3 Kiến trúc hệ thống 31 3.4 Sơ đồ use-case 32 3.4.1 Danh sách actor 32 3.4.2 Danh sách use-case 33 3.4.3 Đặc tả use-case “Đăng nhập” 34 3.4.4 Đặc tả use-case “Cập nhật thông tin tài khoản” 35 3.4.5 Đặc tả use-case “Xem thông tin tài khoản” 36 3.4.6 Đặc tả use-case “Tạo sưu tập NFT” 37 3.4.7 Đặc tả use-case “Tạo vật phẩm NFT” 38 3.4.8 Đặc tả use-case “Bán vật phẩm NFT” 39 3.4.9 Đặc tả use-case “Mua vật phẩm NFT” 40 3.4.10 Đặc tả use-case “Tìm kiếm vật phẩm NFT” 41 3.5 Sơ đồ 42 3.5.1 Sơ đồ “Đăng nhập” 42 3.5.2 Sơ đồ “Cập nhật thông tin tài khoản” 42 3.5.3 Sơ đồ “Xem thông tin tài khoản” 43 3.5.4 Sơ đồ “Tìm kiếm vật phẩm NFT” 44 3.5.5 Sơ đồ “Tạo sưu tập NFT mới” 44 3.5.6 Sơ đồ “Tạo vật phẩm NFT mới” 45 3.5.7 Sơ đồ “Bán vật phẩm NFT” 46 3.5.8 Sơ đồ “Mua vật phẩm NFT” 47 3.6 Thiết kế liệu 48 3.6.1 Hệ thống Smart Contract 48 3.6.2 Bảng “MintData” thuộc FunNFT 48 3.6.3 Bảng “Order” thuộc Exchange 49 3.7 Thiết kế giao diện 50 3.7.1 Danh sách hình 50 3.7.2 Mô tả chi tiết hình 51 Chương TỔNG KẾT 64 4.1 Về nội dung nghiên cứu 64 4.2 Về chương trình ứng dụng 64 4.3 Đánh giá 65 4.3.1 Thuận lợi 65 4.3.2 Khó khăn 65 4.4 Hướng phát triển 65 4.5 Kết luận 66 TÀI LIỆU THAM KHẢO 67 DANH MỤC HÌNH ẢNH Hình 1.1 Giao diện OpenSea 12 Hình 1.2 Giao diện Rarible 13 Hình 1.3 Giao diện SuperRare 14 Hình 2.1 Thuật toán Blockchain 16 Hình 2.2 Cách Blockchain hoạt động 17 Hình 2.3 Các ứng dụng Blockchain 19 Hình 2.4 Tổng quan Smart Contract 20 Hình 2.5 Cách Smart Contract hoạt động 21 Hình 2.6 Mơ hình hoạt động Ethereum 22 Hình 2.7 Trạng thái tài khoản Ethereum 23 Hình 2.8 Cây Merkle Ethereum 24 Hình 2.9 Phí giao dịch Ethereum 24 Hình 2.10 Block Ethereum 25 Hình 2.11 Cách thức lưu trữ HTTP IPFS 27 Hình 3.1 Kiến trúc tổng quan hệ thống 31 Hình 3.2 Sơ đồ use-case 32 Hình 3.3 Sơ đồ “Đăng nhập” 42 Hình 3.4 Sơ đồ “Cập nhật thông tin tài khoản” 42 Hình 3.5 Sơ đồ “Xem thông tin tài khoản” 43 Hình 3.6 Sơ đồ “Tìm kiếm vật phẩm NFT” 44 Hình 3.7 Sơ đồ “Tạo sưu tập NFT mới” 44 Hình 3.8 Sơ đồ “Tạo vật phẩm NFT mới” 45 Hình 3.9 Sơ đồ “Bán vật phẩm NFT” 46 Hình 3.10 Sơ đồ “Mua vật phẩm NFT” 47 Hình 3.11 Màn hình "Wallet" 51 Hình 3.12 Màn hình "Home" 52 Hình 3.13 Màn hình "Explore" 54 Hình 3.14 Màn hình "Item Detail" 55 Hình 3.15 Màn hình "Collection" 57 Hình 3.16 Màn hình "Author" 59 Hình 3.17 Màn hình "Profile" 61 Hình 3.18 Màn hình "Create" - tạo vật phẩm 62 DANH MỤC BẢNG Bảng 3.1 Danh sách actor 32 Bảng 3.2 Danh sách use-case 33 Bảng 3.3 Đặc tả use-case “Đăng nhập” 34 Bảng 3.4 Đặc tả use-case “Cập nhật thông tin tài khoản” 35 Bảng 3.5 Đặc tả use-case “Xem thông tin tài khoản” 36 Bảng 3.6 Đặc tả use-case “Tạo sưu tập NFT” 37 Bảng 3.7 Đặc tả use-case “Tạo vật phẩm NFT” 38 Bảng 3.8 Đặc tả use-case “Bán vật phẩm NFT” 39 Bảng 3.9 Đặc tả use-case “Mua vật phẩm NFT” 40 Bảng 3.10 Đặc tả use-case “Tìm kiếm vật phẩm NFT” 41 Bảng 3.11 Hệ thống Smart Contract 48 Bảng 3.12 Bảng “MintData” thuộc FunNFT 49 Bảng 3.13 Bảng “Order” thuộc Exchange 50 Bảng 3.14 Danh sách hình 51 Bảng 3.15 Mô tả hình "Wallet" 51 Bảng 3.16 Mơ tả hình "Home" 53 Bảng 3.17 Mơ tả hình "Explore" 55 Bảng 3.18 Mơ tả hình "Item Detail" 56 Bảng 3.19 Mơ tả hình "Collection" 58 Bảng 3.20 Mô tả hình "Author" 60 Bảng 3.21 Mô tả hình "Profile" 61 Bảng 3.22 Mơ tả hình "Create" - tạo vật phẩm 63 Bảng 3.23 Màn hình "Create" - tạo sưu tập 63 Bảng 3.24 Mơ tả hình "Create" - tạo sưu tập 63 Mơ tả hình STT Tên đối tượng Search Textbox Home Button Chức Nhập từ khố tìm kiếm Chuyển hướng đến trang chủ (Home) Navbar Explore Button Chuyển hướng đến trang tìm kiếm (Explore) Button Chuyển hướng đến trang tạo (Create) Navbar Create Navbar User Dropdown Hiển thị số thông tin người dùng : Navbar • Ảnh đại diện • Tên người dùng • Địa cí • Số dư tài khoản Và số chức khác: • My Profile: Chuyển hướng đến trang thơng tin tài khoản • Edit profile: Chuyển hướng đến trang cập nhật thông tin tài khoản • Logout: Đăng xuất Connect Wallet Button Chỉ hiển thị người dùng chưa đăng nhập vào Navbar hệ thống Khi nhấn vào chuyển đến trang Wallet Bảng 3.16 Mơ tả hình "Home" 3.7.2.3 Màn hình “Explore” Hình 3.13 Màn hình "Explore" Mơ tả hình STT Tên đối tượng Chức Search Textbox Nhập từ khố tìm kiếm NFT Card Hiển thị số thông tin NFT Author Image NFT Ảnh đại diện người sáng tạo, click vào Card chuyển đến trang thông tin tài khoản người tạo NFT Owner Image NFT Ảnh đại diện người sở hữu, click vào Card chuyển đến trang thông tin tài khoản ngườu Title Text Hiển thị tên vật phẩm NFT, click vào chuyển đến trang chi tiết vật phẩm Price Text Hiển thị giá vật phẩm NFT đơn vị ETH NFT Image Hiển thị hình ảnh NFT Bảng 3.17 Mơ tả hình "Explore" 3.7.2.4 Màn hình “Item Detail” Hình 3.14 Màn hình "Item Detail" Mơ tả hình STT Tên đối tượng Chức NFT Image Hiển thị hình ảnh NFT Collection Image Hiển thị số thông tin NFT Author Image Ảnh đại diện người sáng tạo, click vào chuyển đến trang thông tin tài khoản người tạo NFT Ảnh đại diện người sở hữu, click vào Owner Image chuyển đến trang thông tin tài khoản ngườu Title Text Hiển thị tên vật phẩm NFT Price Text Hiển thị giá vật phẩm NFT đơn vị ETH Description Text Hiển thị mô tả vật phẩm NFT Remove Sale Huỷ đơn bán bán vật phẩm, hiển thị người From Button xem chủ sở hữu vật phẩm bán Put On Sale Button Tạo đơn bán mới, hiển thị người xem chủ sở hữu vật phẩm vật phẩm chưa đăng bán 10 Buy Button Mua vật phẩm, hiển thị vật phẩm đăng bán người xem chủ sở hữu Bảng 3.18 Mơ tả hình "Item Detail" 3.7.2.5 Màn hình “Collection” Hình 3.15 Màn hình "Collection" Mơ tả hình STT Tên đối tượng Chức Collection Image Ảnh đại diện sưu tập Title Text Tên sưu tập Address Text Địa sưu tập Copy Button Sao chép địa sưu tập Author Text Tên người sáng tạo sưu tập, click vào chuyển đến trang chi tiết tài khoản Hiển thị số thơng tin NFT NFT Card Author Image NFT Ảnh đại diện người sáng tạo, click vào Card chuyển đến trang thông tin tài khoản người tạo NFT Owner Image NFT Ảnh đại diện người sở hữu, click vào Card chuyển đến trang thông tin tài khoản ngườu Title Text Hiển thị tên vật phẩm NFT, click vào chuyển đến trang chi tiết vật phẩm 10 Price Text Hiển thị giá vật phẩm NFT đơn vị ETH 11 NFT Image Hiển thị hình ảnh NFT Bảng 3.19 Mơ tả hình "Collection" 3.7.2.6 Màn hình “Author” Hình 3.16 Màn hình "Author" Mơ tả hình STT Tên đối tượng Chức năg Author Image Ảnh đại diện người dùng Banner Image Ảnh người dùng Name Text Tên người dùng Address Text Địa sưu tập Copy Button Sao chép địa sưu tập Author Text Tên người sáng tạo sưu tập, click vào chuyển đến trang chi tiết tài khoản On Sale Tab Hiển thị NFT mà người dùng đăng bán Owned Tab Hiển thị NFT mà người dùng sở hữu Created Tab Hiển thị NFT mà người dùng tạo 10 NFT Card Hiển thị số thông tin NFT 11 Author Image NFT Ảnh đại diện người sáng tạo, click vào Card chuyển đến trang thông tin tài khoản người tạo NFT 12 Owner Image NFT Ảnh đại diện người sở hữu, click vào Card chuyển đến trang thông tin tài khoản ngườu 13 Title Text Hiển thị tên vật phẩm NFT, click vào chuyển đến trang chi tiết vật phẩm 14 Price Text Hiển thị giá vật phẩm NFT đơn vị ETH 15 NFT Image Hiển thị hình ảnh NFT Bảng 3.20 Mơ tả hình "Author" 3.7.2.7 Màn hình “Profile” Hình 3.17 Màn hình "Profile" Mơ tả hình STT Tên đối tượng Chức năg Username Textbox Nhập tên muốn thay đổi Email Textbox Nhập email muốn thay đổi Twitter Textbox Nhập username Twitter muốn cập nhật Facebook Textbox Nhập link Facebook muốn cập nhật Avatar Image Chọn hình ảnh đại diện muốn thay đổi Banner Image Chọn ảnh muốn thay đổi Upload Button Submit thơng tin điền Bảng 3.21 Mơ tả hình "Profile" 3.7.2.8 Màn hình “Create” a) Màn hình tạo vật phẩm Hình 3.18 Màn hình "Create" - tạo vật phẩm Mơ tả hình STT Tên đối tượng Chức năg Upload Button Upload hình ảnh NFT Collection Select Hiển thị danh sách sưu tập mà người dùng sử dụng để tạo vật phẩm NFT New Button Mở form “New Collection” để tạo sưu tập Title Textbox Nhập tên vật phẩm NFT Description Textbox Nhập mô tả vật phẩm NFT Price Textbox Nhập giá vật phẩm NFT Royalty Textbox Nhập phí quyền vật phẩm NFT NFT Review Card Hiển thị hình ảnh NFT để người dùng xem trước Xác nhận tạo NFT Create Button Bảng 3.22 Mô tả hình "Create" - tạo vật phẩm b) Màn hình tạo sưu tập Bảng 3.23 Màn hình "Create" - tạo sưu tập Mơ tả hình STT Tên đối tượng Chức năg Upload Button Upload hình ảnh sưu tập Name Textbox Nhập tên sưu tập Symbol Textbox Nhập ký hiệu sưu tập Close Button Đóng form mà khơng thực thao tác tạo Create Button Xác nhận tạo sưu tập Bảng 3.24 Mô tả hình "Create" - tạo sưu tập Chương TỔNG KẾT 4.1 Về nội dung nghiên cứu Đã nghiên cứu áp dụng thành công công nghệ blockchain để xây dựng sàn giao dịch NFT tảng Ethereum Xây dựng Smart Contract Truffle Framework sử dụng ReactJS, Web3JS để xây dựng giao diện người dùng Kết hợp với thuật toán lưu trữ IPFS (thuật toán lưu trữ phân tán) giúp liệu lưu trữ vĩnh viễn cách công khai, minh bạch 4.2 Về chương trình ứng dụng Đã xây dụng thành cơng sàn giao dịch NFT mạng lưới Ethereum với đầy đủ tính nằng cần thiết đặt lúc ban đầu: • Đăng nhập: Dùng ví điện tử Metamask đăng nhập vào hệ thống • Cập nhập thơng tin cá nhân • Xem thơng tin tài khoản: Có thể xem thông tin NFT tạo, NFT sở hữu bán • Tạo sưu tập NFT: Tạo sưu tập NFT thuộc toàn quyền sở hữu người tạo • Tạo vật phẩm NFT: Người dùng tạo vật phẩm NFT thuộc sưu tập cá nhân sử dụng sưu tập mặc định website • Bán vật phẩm NFT: Người dùng bán NFT thuộc quyền sở hữu • Mua vật phẩm NFT: Người dùng mua NFT rao bán website • Tìm kiếm vật phẩm NFT: Người dùng tìm kiếm NFT theo tên vật phẩm, tên sưu tập theo tên tác giả 4.3 Đánh giá 4.3.1 Thuận lợi Giảng viên hướng dẫn tận tình hỗ trợ định hướng nhóm nghiên cứu thực đề tài Các tài liệu ngôn ngữ, công cụ thực chia sẻ nhiều mạng Vận dụng kiến thức, quy trình phát triển học 4.3.2 Khó khăn Tìm hiểu áp dụng Truffle framework gặp nhiều khó khăn config tảng Ethereum Fontend Viết SmartContract ngôn ngữ Solidity tốn nhiều thời gian cho việc tìm hiểu tài liệu, nghiên cứu build Smart Contract server thật Ropsten Tìm hiểu business model sàn giao dịch NFT, đặc biệt công nghệ blockchain NFT giới nên nhiều thời gian để tìm hiểu xây dựng hệ thống 4.4 Hướng phát triển Hoàn thiện đầy đủ chức tại, nâng cấp giao diện thân thiện, dễ sử dụng Có thể giảm bớt thao tác giao diện để tăng trải nghiệm người dùng Áp dụng hệ thống lưu trữ tập trung để lưu trữ sẵn thông tin cần thiết, tăng hiệu suất tốc độ ứng dụng Thêm vào số chức đấu giá, giới hạn thời gian, hỗ trợ phát hành token chuẩn ERC1155,… Lưu trữ thông tin off-chain để tiết kiệm chi phí nâng cao hiệu suất Cải thiện tính bảo mật Smart Contract Triển khai Smart Contract lên số blockchain network Polygon, Binance Smart Chain,… để tăng tốc độ xử lý giảm thiểu chi phí 4.5 Kết luận Trong thời gian thực đề tài, em áp dụng kiến thức học với hướng dẫn, dạy thầy vào trình phát triển xây dựng dự án cho đề tài Trong trình làm việc, em trau dồi thêm nhiều kinh nghiệm học hỏi thêm nhiều kiến thức Thơng qua để hồn thành đề tài nội dung nghiên cứu Tuy đạt thành bên cạnh cịn gặp nhiều khó khăn hạn chế Trong thời gian tới, em tiếp tục phát triển để khắc phục mặt hạn chế trau dồi thêm kỹ thân cho dự định tương lai TÀI LIỆU THAM KHẢO [1] OpenZepplin Docs Available: https://docs.openzeppelin.com/contracts/4.x/ [2] Truffle Suite Docs Available: http://trufflesuite.com/docs/truffle/ [3] Web3.js Docs Available: https://web3js.readthedocs.io/en/v1.2.11/index.html [4] Rarible protocal-contracts Github Available: https://github.com/rarible/protocolcontracts [5] A Beginner’s Guide to IPFS Available: https://hackernoon.com/abeginners-guideto-ipfs-20673fedd3f [6] Building a Full Stack NFT Marketplace on Ethereum with Polygon Available: https://dev.to/dabit3/building-scalable-full-stack-apps-on-ethereum-with-polygon2cfb [7] Uploading Files to IPFS from a Web Application Available: https://dev.to/dabit3/uploading-files-to-ipfs-from-a-web-application-50a [8] NFT Trading Volume Tops $15 Billion in October Available: https://www.nasdaq.com/articles/nft-trading-volume-tops-%2415-billion-inoctober-2021-10-27 ... Metaverse, nhắc đến NFT phần quan trọng việc xây dựng vũ trụ ảo Cùng với phát triển thị trường giao dịch NFT, nhu cầu sử dụng sàn giao dịch chuyên dụng dành cho NFT quan tâm, nhiều sàn giao dịch lớn đời... Đặc thù giao dịch NFT thực không gian mạng blockchain nơi thứ gần ẩn danh, nên cần có hệ thống chịu trách nhiệm trung gian đảm bảo cho giao dịch đó, sàn giao dịch NFT với hệ thống giao dịch xây... Có hai loại giao dịch: mesage calls contract creator (nghĩa giao dịch tạo hợp đồng Ethereum mới) Tất giao dịch có chứa thành phần sau: nonce: Số lượng giao dịch gửi người gửi (giao dịch hợp lệ)

Ngày đăng: 08/03/2022, 21:37

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w