BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI PHÂN HIỆU TẠI THÀNH PHỐ HỒ CHÍ MINH BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI NGHIÊN CỨU VÀ XÂY DỰNG SÀN GIAO DỊCH NFT Giảng viên hướng dẫn TS Nguyễn Xuâ[.]
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC GIAO THƠNG VẬN TẢI PHÂN HIỆU TẠI THÀNH PHỐ HỒ CHÍ MINH BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: NGHIÊN CỨU VÀ XÂY DỰNG SÀN GIAO DỊCH NFT Giảng viên hướng dẫn: TS Nguyễn Xuân Sâm Sinh viên thực hiện: NGUYỄN TỨ TẤN TÀI Lớp: CQ.59.CNTT Khoá: 59 TP Hồ Chí Minh, năm 2022 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI PHÂN HIỆU TẠI THÀNH PHỐ HỒ CHÍ MINH BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: NGHIÊN CỨU VÀ XÂY DỰNG SÀN GIAO DỊCH NFT Giảng viên hướng dẫn: TS Nguyễn Xuân Sâm Sinh viên thực hiện: NGUYỄN TỨ TẤN TÀI Lớp: CQ.59.CNTT Khố: 59 TP Hồ Chí Minh, năm 2022 TRƯỜNG ĐẠI HỌC GIAO THƠNG VẬN TẢI CỘNG HỊA XÃ HỘI CHỦ NGHIÃ VIỆT NAM PHÂN HIỆU TẠI THÀNH PHỐ HỒ CHÍ MINH Độc lập – Tự – Hạnh phúc NHIỆM VỤ THIẾT KẾ THỰC TẬP TỐT NGHIỆP BỘ MÔN: CÔNG NGHỆ THÔNG TIN -*** - Mã sinh viên: 5951071094 Họ tên SV: Nguyễn Tứ Tấn Tài Khóa: 59 Lớp: CQ.59.CNTT Tên đề tài NGHIÊN CỨU VÀ XÂY DỰNG SÀN GIAO DỊCH NFT Mục đích, yêu cầu a Mục đích: Trong bối cảnh bùng nổ Internet đầu kỷ 21, Web 2.0 bộc lộ yếu điểm đáp ứng yêu cầu người dùng nhanh chóng Người dùng Internet khơng cần tương tác với website mà yêu cầu giải nhu cầu nhanh chóng tiện lợi mà truy cập nhiều website Web 3.0 đời để giải vấn đề NFT số ứng dụng 3.0 phổ biến Nó xem loại tài sản thay xu hướng tương lai Đó lý mục đích đề tài nghiên cứu b Yêu cầu: - Yêu cầu cơng nghệ ● Sử dụng ngơn ngữ lập trình Javascript ● Sử dụng React Framework: Nextjs ● Sử dụng Sanity làm sở liệu ● Sử dụng TailwindCss làm giao diện hiển thị ● Sử dụng thirdweb để tạo smart contracts, giao dịch công nghệ Blockchain - Yêu cầu chức ● Đăng nhập ● Đăng xuất ● Tạo NFT ● Tìm kiếm NFT ● Xem chi tiết NFT ● Mua NFT ● Chuyển đổi NFT từ ví A sang ví B ● Tạo collection ● Liệt kê tất collection ● Liệt kê tất NFT có collection ● Liệt kê tất transaction NFT ● Liệt kê tất transaction collection ● Liệt kê tất transaction người dùng ● Liệt kê tất transaction có ● Hiển thị tổng số dư có ví ● Hiển thị thơng tin người dùng ● Tìm kiếm địa ví ● Tạo lời đề nghị ● Lọc NFT theo điều kiện ● Lọc transaction theo điều kiện Nội dung phạm vi đề tài a Nội dung: - Tổng quan Web 3.0 khái niệm NFT - Tổng quan cơng nghệ sử dụng - Lập trình xây dựng - Kết thu b Phạm vi: - Nghiên cứu Web 3.0 cách thức giao dịch công nghệ Blockchain - Các thư viện hổ trợ việc hiển thị xử lý liệu: Nextjs, Sanity, Tailwindcss, Công nghệ, công cụ ngơn ngữ lập trình - Cơng cụ Visual Studio Code - Ngơn ngữ lập trình: Javascript - Cơ sở liệu: Sanity - Thư viện framework: Nextjs, Reactjs Các kết dự kiến đạt ứng dụng - Nắm khái niệm Web 3.0 xây dựng sàn giao dịch NFT sử dụng thư viện thirdweb Giảng viên cán hướng dẫn Họ tên: Đơn vị công tác: Điện thoại: Ngày tháng Email: năm Trưởng BM Công nghệ Thông tin ThS Trần Phong Nhã Đã nhận nhiệm vụ TKTN Sinh viên: Ký tên: Điện thoại: Email: Đã giao nhiệm vụ TKTN Giảng viên hướng dẫn Đồ án tốt nghiệp LỜI CẢM ƠN Lời em xin gửi lời cảm ơn chân thành đến quý thầy, cô giáo Bộ môn Công nghệ thông tin – Phân hiệu Trường Đại học Giao thông vận tải Những người truyền dạy, trang bị cho em kho tàng kiến thức bầu trời công nghệ thông tin rộng lớn Ở đây, em không học kiến thức sách mà em học học, kỷ sống trước tạm biệt mái trường đại học thân yêu tiến biển đời mênh mông rộng lớn Đặc biệt, em xin gửi lời cảm ơn chân thành sâu sắc đến thầy TS Nguyễn Xuân Sâm làm việc Học viện CNBC Viễn thông, người đồng hành em suốt trình làm đồ án tốt nghiệp, người bỏ thời gian quý báu, chí thời gian nghỉ ngơi để hướng dẫn, để định hướng đường nước bước cho em Trong trình học tập tìm hiểu em nổ lực nhiều với mong muốn hoàn thành thực tập tốt nghiệp cách tốt nhất, có thiếu sót khơng thể tránh khỏi, với người chưa chững chạc trưởng thành em sai lầm khơng thể khơng mắc phải Em mong thầy, mơn thơng cảm cho em ý kiến, đóng góp để em hồn thành đồ án cách trọn vẹn Sau cùng, em xin kính chúc Quý Thầy Cô Bộ môn Công nghệ thông tin lời chúc sức khoẻ, hạnh phúc thành công công việc sống Em xin chân thành cảm ơn! Nguyễn Tứ Tấn Tài – CQ.59.CNTT i Đồ án tốt nghiệp NHẬN XÉT CỦA GIÁO VIÊN Tp Hồ Chí Minh, ngày … tháng … năm … Giáo viên hướng dẫn Nguyễn Tứ Tấn Tài – CQ.59.CNTT ii Đồ án tốt nghiệp MỤC LỤC LỜI CẢM ƠN i NHẬN XÉT CỦA GIÁO VIÊN ii MỤC LỤC iii MỤC HÌNH ẢNH v DANH MỤC CHỮ VIẾT TẮT vii MỞ ĐẦU 1 Lý chọn đề tài Hướng tiếp cận đề tài Mục tiêu nghiên cứu Đối tượng phạm vi nghiên cứu Phương pháp nghiên cứu CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Tổng quan công nghệ sử dụng: 1.2 Tập trung phi tập trung 1.3 Sưu tầm kiểu truyền thống sưu tầm kiểu công nghệ 4.0 1.4 Công nghệ Blockchain 1.5 Tổng quan NFT 12 1.6 Sự khác biệt NFT tiền mã hóa 14 1.7 Cách NFT hoạt động 15 1.8 Tiềm ứng dụng NFT 16 1.9 Hạn chế cuả NFT 17 1.10 Những thị trường NFT phổ biến 17 CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 19 2.1 Đặc tả toán: 19 Nguyễn Tứ Tấn Tài – CQ.59.CNTT iii Đồ án tốt nghiệp 2.2 Phân tích toán: 19 CHƯƠNG 3: XÂY DỰNG CHỨC NĂNG 35 Các chức xây dựng 35 KẾT LUẬN VÀ KIẾN NGHỊ 48 Kết đạt 48 Kiến nghị 48 PHỤ LỤC 49 Phụ lục 1: Hướng dẫn cài đặt 49 Phụ lục 2: Hướng dẫn sử dụng: 49 TÀI LIỆU THAM KHẢO 50 Nguyễn Tứ Tấn Tài – CQ.59.CNTT iv Đồ án tốt nghiệp MỤC HÌNH ẢNH Hình 1: Blockchain Game & NFT xu hướng kỳ vọng năm 2021 Nguồn: Báo cáo Thị trường tiền mã hóa 2020 Coin68 Hình 1.1: Dữ liệu tập trung phi tập trung Hình 1.2: Cơng nghệ Blockchain 10 Hình 1.3:Loại Blockchain 11 Hình 1.4: Blockchain Technology 3.0 12 Hình 1.5: Tác phẩm kết hợp 5000 họa Beeple bán với giá gần 70 triệu 14 Hình 1.6: Tweet CEO Jack Dorsey bán với giá 2.5 triệu đô la dạng NFT Ảnh: nftartwork 15 Hình 1.7: Doanh số từ dự án NFT bật tính đến cuối tháng 12/2020 Nguồn: Kyros Ventures 18 Hình 2.1: Usecase tổng quát 24 Hình 2.2: Usecase user 25 Hình 3: Usecase admin 25 Hình 2.4: Sơ đồ phân rã chức 26 Hình 2.5: Sơ đồ hoạt động tạo NFT (create a NFT) 27 Hình 2.6: Sơ đồ hoạt động đưa NFT lên sàn (listing a NFT) 28 Hình 2.7: Sơ đồ hoạt động chuyển NFT (transfer a NFT) 29 Hình 2.8: Sơ đồ hoạt động tạo offer cho NFT (make an NFT) 30 Hình 2.9: Sơ đồ hoạt động mua NFT (buy out a NFT) 31 Hình 2.10: Sơ đồ hoạt động tạo collection (create a collection) 32 Hình 2.11: Sơ đồ hoạt động admin 33 Hình 2.12: Mơ hình quan hệ - thực thể 33 Hình 2.13: Mơ hình liệu quan hệ 34 Hình 3.1: Giao diện hình 35 Hình 3.2: Màn hình kết nối ví MetaMask 35 Hình 3.3: Chức đăng xuất 36 Hình 3.4: Màn hình tạo collection 36 Hình 3.5: Màn hình My Collections 37 Nguyễn Tứ Tấn Tài – CQ.59.CNTT v Đồ án tốt nghiệp ● Đăng xuất Hình 3.3: Chức đăng xuất Tính đăng xuất để người dùng ngắt kết nối với ví ● Tạo collection Hình 3.4: Màn hình tạo collection Nguyễn Tứ Tấn Tài – CQ.59.CNTT 36 Đồ án tốt nghiệp Người dùng tạo collection riêng cho với hình ảnh đại diện, banner số thông tin bắt buộc Collection dùng để chứa NFT Marketplace hiển thị tất collection cho người dùng xem mua NFT ● Liệt kê tất collection user Hình 3.5: Màn hình My Collections Sau tạo collection thành cơng, người dùng xem tất collection chỉnh sửa thơng tin liên quan ● Tạo NFT Hình 3.6: Màn hình tạo NFT Nguyễn Tứ Tấn Tài – CQ.59.CNTT 37 Đồ án tốt nghiệp Người dùng tạo NFT cho collection marketplace, chức người dùng phải nhập đầy đủ thông tin bắt buộc kí xác nhận giao dịch ví MetaMask Dữ liệu mã hoá đưa lên mạng lưới Rinkeby Testnet với lượng phí định Người dùng xem thơng tin NFT marketplace có thao tác sau: ● Đưa NFT lên sàn mua bán Hình 3.7: Màn hình chi tiết NFT Hình 3.8: Màn hình listing NFT Nguyễn Tứ Tấn Tài – CQ.59.CNTT 38 Đồ án tốt nghiệp Chức Listing (đưa lên sàn): Sau tạo NFT người dùng giữ đưa lên sàn mua bán Để tạo listing, người dùng phải cung cấp giá muốn listing thời gian listing (1 ngày, ngày, ngày, tháng, tháng, ) Bước cuối để đưa lên sàn phải kí xác nhận ví MetaMask thơng tin bắt buộc phí giao dịch (ví phải đảm bảo số dư cho lượng phí giao dịch) ● Huỷ bỏ lệnh bán NFT Hình 3.9: Màn hình sau listing NFT Hình 3.10: Màn hình xác nhận huỷ listing NFT Nguyễn Tứ Tấn Tài – CQ.59.CNTT 39 Đồ án tốt nghiệp Sau listing NFT lên sàn, thông tin thời gian listing hết hạn hiển thị marketplace Người dùng muốn huỷ bỏ listing thơng qua chức “Cancel listing" ● Mua NFT Hình 3.11: Màn hình NFT sẵn hàng mua gửi offer Hình 3.12: Màn hình xác nhận mua NFT Sau NFT lên sàn mua bán, tất người dùng khác kết nối ví mua NFT Khi xác nhận đơn hàng (checkout), người dùng phải kiểm tra thông tin MetaMask đảm bảo số dư cho phí giao dịch Khi mua thành công, NFT chuyển quyền sở hữu cho người mua Nguyễn Tứ Tấn Tài – CQ.59.CNTT 40 Đồ án tốt nghiệp ● Tạo lời đề nghị (offer) Hình 3.13: Màn hình tạo Offer Đối với NFT đưa lên sàn mua bán, ngồi chức mua người dùng tạo offer cho NFT với mức giá họ mong muốn thời gian hết hạn offer Chủ sở hữu NFT nhận offer từ người dùng xác nhận offer hay khơng ● Chuyển NFT từ người dùng A sang người dùng B Hình 3.14: Màn hình Transfer NFT Nguyễn Tứ Tấn Tài – CQ.59.CNTT 41 Đồ án tốt nghiệp Chức Transfer (chuyển đổi) cho phép người dùng chuyển NFT cho mà không cần thông qua mua bán sàn Chức yêu cầu người dùng xác nhận giao dịch ví MetaMask với lượng phí định ● Liệt kê tất collection Hình 3.15: Màn hình hiển thị tất collection marketplace Sau tạo collection thành cơng, người dùng xem tất collection chỉnh sửa thông tin liên quan Chỉ chủ sở hữu chỉnh sửa thơng tin collection ● Liệt kê tất NFT có collection Hình 3.16: Màn hình hiển thị thơng tin collection NFT thuộc collection Nguyễn Tứ Tấn Tài – CQ.59.CNTT 42 Đồ án tốt nghiệp Một collection hiển thị NFT có số thơng tin chung như: tổng số NFT thuộc collection, số lượng người sở hữu, mức giá sàn (floor price), tổng lượng giao dịch collection (total volume) Ngồi tìm kiếm, lọc thông qua lọc hỗ trợ ● Liệt kê tất NFT người dùng sở hữu Hình 3.17: Màn hình thơng tin NFT sở hữu người dùng Các NFT người dùng tạo liệt kê phần thông tin người dùng, trang người dùng sử dụng lọc NFT thay đổi tên người dùng (username) Địa ví ngày tham gia hiển thị ● Liệt kê tất transaction NFT Hình 3.18: Màn hình transaction NFT Nguyễn Tứ Tấn Tài – CQ.59.CNTT 43 Đồ án tốt nghiệp Một NFT chưa nhiều transaction, chức hiển thị transaction thuộc NFT với thơng tin loại, giá, địa người gửi, người nhận thời gian giao dịch transaction ● Liệt kê tất transaction collection Hình 3.19: Màn hình transaction collection Người dùng xem tất transaction collection thơng qua tab hành động (activity) ● Liệt kê tất transaction người dùng Hình 3.20: Màn hình transaction người dùng Người dùng xem tất transaction riêng thao tác với NFT Những transaction tạo người dùng mua bán, trao đổi NFT ● Liệt kê tất transaction có Hình 3.21: Màn hình transaction marketplace Nguyễn Tứ Tấn Tài – CQ.59.CNTT 44 Đồ án tốt nghiệp Marketplace cho phép tất người dùng xem tồn transaction hệ thống nhằm đảm bảo tính cơng khai minh bạch ● Hiển thị tổng số dư có ví Hình 3.22: Màn hình hiển thị số dư ví Khi người dùng kết nối thành cơng với ví MetaMask, marketplace hỗ trợ xem thơng tin số dư ví Số dư hiển thị dạng token USD ● Tìm kiếm địa ví Hình 3.23: Màn hình tìm kiếm người dùng thơng qua địa ví Nguyễn Tứ Tấn Tài – CQ.59.CNTT 45 Đồ án tốt nghiệp Marketplace hỗ trợ chức tìm kiếm người dùng thơng qua địa ví họ Tại tìm kiếm thơng tin người dùng khác với NFT họ tạo hoạt động họ ● Kiểm tra giao dịch Etherscan.io Hình 3.24: Màn hình kiểm tra giao dịch Etherscan.io Tất giao dịch marketplace lên mạng lưới Blockchain cơng khai, người dùng tra cứu Etherscan để xem thông tin chi tiết transaction hoạt động địa ví ● Sanity server: Hình 3.25: Màn hình Sanity server Nguyễn Tứ Tấn Tài – CQ.59.CNTT 46 Đồ án tốt nghiệp Sanity server lưu trữ tất liệu marketplace bao gồm user, collection, NFT, transaction, listing Những liệu đưa lên mạng lười Blockchain lưu xuống server ● Thirdweb dashboard: Hình 3.26: Màn hình thirdweb dashboard Thirdweb dashboard giúp thao tác quản lý liệu đưa lên mạng lưới Blockchain Nó thư viện bên thứ ba tương tác với blockchain hệ thống Nguyễn Tứ Tấn Tài – CQ.59.CNTT 47 Đồ án tốt nghiệp KẾT LUẬN VÀ KIẾN NGHỊ Kết đạt - Về tri thức: Trong suốt khoảng thời gian thời gian làm đồ án tốt nghiệp, em học nhiều kiến thức tảng Web 3.0, công nghệ Blockchain, NFT số thư viện hỗ trợ, phương pháp tìm đọc tài liệu kiến thức lĩnh vực chuyên môn đề tài mà em theo đuổi - Về ứng dụng: Xây dựng thành công chợ mua bán NFT - Về người: Thật khoảng thời gian khoảng thời gian em gặp nhiều khó khăn mệt mỏi Từ khó khăn hồn cảnh gia đình khó khăn lúc tìm, đọc tài liệu Nhưng khơng mà em bỏ Thay nản chí, em dùng khó khăn, gian khổ ngòi nổ, nguồn động lực to lớn để tiếp tục đường cịn dang dở phía trước Giúp em có thêm nghị lực ý chí kiên cường, có khó khăn em vượt qua giá Kiến nghị Nếu có thời gian điều kiện để tiếp tục thực em cố gắng để hoàn thành ứng dụng em cách thật trọn vẹn Một số chức em dự định phát triển tiếp tương lai: • Tối ưu thời gian tạo, mua, bán NFT • Cho phép người dùng tạo Offer (lời đề nghị giá) cho NFT • Cho phép người dùng đấu giá NFT • Thêm phí quyền cho tác giả • Hỗ trợ thêm tiền mã hố cho phép tốn • Tối ưu hiệu trang web Nguyễn Tứ Tấn Tài – CQ.59.CNTT 48 Đồ án tốt nghiệp PHỤ LỤC Phụ lục 1: Hướng dẫn cài đặt Cài đặt ví MetaMask: https://metamask.io/download/ Link Github Repository: https://github.com/tai9/cargo-nft-fe Phụ lục 2: Hướng dẫn sử dụng: Bước 1: Cài đặt ví MetaMask tạo tài khoản Bước 2: Lấy ETH token https://faucets.chain.link/ Bước 3: Kết nối ví MetaMask Cargo Marketplace https://cargo-nftfe.vercel.app/ Nguyễn Tứ Tấn Tài – CQ.59.CNTT 49 Đồ án tốt nghiệp TÀI LIỆU THAM KHẢO [1] https://vietnix.vn/javascript-la-gi/, “JavaScript gì?” - truy cập ngày 01/04/2022 vào lúc 21:00 [2] https://progsoft.net/vi/software/sanity-io, “Sanity.io gì?” - truy cập ngày 01/04/2022 vào lúc 21:10 [3] https://200lab.io/blog/reactjs-la-gi/, “ReactJS gì? Những điều bạn chưa biết ReactJS” - truy cập ngày 01/04/2022 vào lúc 21:20 [4] https://mangoads.vn/learn/next-js-la-gi-va-cach-cai-dat/, “Next-JS cách cài đặt” - truy cập ngày 01/04/2022 vào lúc 21:30 [5] https://www.binance.com/vi/blog/from-cz/, “Tập trung phi tập trung” truy cập ngày 01/04/2022 vào lúc 21:40 [6] https://www.investopedia.com/terms/b/blockchain.asp, “Blockchain gì? Hoạt động Blockchain nào? Ứng dụng sao?” - truy cập ngày 22/06/2022 vào lúc 13:30 [7] https://cystack.net/vi/blog/nft-la-gi-giai-ma-suc-hut-cua-con-sot-nfts, “NFT gì? Giải mã sức hút sốt NFTs” - truy cập ngày 23/04/2022 vào lúc 10:15 [8] https://thanhnien.vn/nft-la-gi-ma-gay-sot-toan-cau-post1406470.html, “NFT mà gây sốt tồn cầu?” - truy cập ngày 09/05/2022 vào lúc 23:10 [9] https://coin68.com/nft-la-gi/, “NFT gì? Tìm hiểu điểm đặc biệt khiến NFT trở nên cực hot” - truy cập ngày 22/04/2022 vào lúc 09:10 [10] https://www.investopedia.com/web-20-web-30-5208698, “Web 2.0 and Web 3.0” - truy cập ngày 01/04/2022 vào lúc 21:00 [11] Matt Fortnow, QuHarrison Terry, “The NFT Handbook: How to Create, Sell and Buy Non-Fungible Tokens”, Wiley, 2021 [12] Jared T Ross , “The NFT Equation: How To Navigate & Profit in The NFT Space as A Beginner, Investor, Or Artist”, Wiley, 2022 Nguyễn Tứ Tấn Tài – CQ.59.CNTT 50