1. Trang chủ
  2. » Cao đẳng - Đại học

Tìm hiểu blockchain và xây dựng ứng dụng ví tiền mã hoá và NFT (báo cáo cuối kì đồ án 1)

57 10 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 57
Dung lượng 2,85 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ìm hiểu Blockchain xây dựng ứng dụng ví tiền mã hoá NFT Giảng viên: ThS.Huỳnh Tuấn Anh Sinh viên: 19521578 – Nguyễn Xuân Hưng 19521638 – Trương Hưng Huy TPHCM, 06 – 2022 Đánh giá 1|Page LỜI CẢM ƠN Xin gửi lời cảm ơn đến Thầy Huỳnh Tuấn Anh, Giảng viên Khoa Công nghệ Phần mềm tạo điều kiện hội giúp đỡ nhóm em trình xây dựng thực hóa đồ án mơn học Trong thời gian qua nhờ bảo thầy mà nhóm em có kiến thức định nghĩa định để hoàn thành báo cáo cách tốt Tuy nhiên, trình nghiên cứu thực đồ án, với thời gian, kiến thức kinh nghiệm hạn chế nên khó tránh khỏi sai sót, mong nhận góp ý bạn để tích lũy học kinh nghiệm cho việc thực đồ án tốt Một lần nhóm em xin chân thành cảm ơn thầy 2|Page Mục lục Giới thiệu chung 1.1 Thơng tin nhóm .6 1.2 Tổng quan đề tài 1.2.1 Giới thiệu đề tài 1.2.2 Phạm vi nghiên cứu 1.2.3 Nội dung nghiên cứu 1.2.4 Kết hướng tới 1.3 Công cụ sử dụng .7 Cơ sở lý thuyết nghiên cứu liên quan 2.1 Blockchain 2.1.1 Tổng quan : 2.1.1.1 Blockchain ? 2.1.1.2 Cách thức hoạt động blockchain 2.1.2 Smart Contract 2.1.3 Token ERC-20 (Fungible token) 10 2.1.4 Token ERC-721 ( Non-Fungible tokens) 11 2.1.5 Sự khác Non-Fungible Token (NFT) & Fungible Token (FT) 13 2.2 Web3 ? 13 2.2.1 Những đột phá 14 2.2.2 Tiềm 15 2.2.3 Hạn chế 15 2.3 Flutter ? 16 2.3.1 Thành phần 16 2.3.2 Tính 17 2.3.3 Lý nên sử dụng Flutter ? 18 2.3.4 Tính phát triển nhanh chóng ứng dụng 18 Thiết kế sở liêu 20 3.1 Sơ đồ logic 20 3|Page 3.2 Danh sách quan hệ 20 3.2.1 Bảng wallet : Thơng tin ví tiền mã hố 20 3.2.2 Bảng token : Thơng tin tiền mã hố 21 3.2.3 Bảng transaction : Thơng tin giao dịch 21 3.2.4 Bảng nft : Thông tin vật phẩm 21 Thiết kế giao diện 22 4.1 Danh sách hình 22 4.2 Mô tả hình .25 4.2.1 Màn hình đăng nhập 25 4.2.2 Màn hình Loading 26 4.2.3 Màn hình Home 27 4.2.4 Màn hình Chọn account 28 4.2.5 Màn hình thêm ví từ private key 29 4.2.6 Màn hình ví token 30 4.2.7 Màn hình ví nft 31 4.2.8 Màn hình thêm token 32 4.2.9 Màn hình chi tiết token 33 4.2.10 Màn hình thêm nft collection 34 4.2.11 Màn hình lịch sử giao dịch 35 4.2.12 Màn hình chi tiết giao dịch 36 4.2.13 Màn hình cài đặt 37 4.2.14 Màn hình cài đặt chung 38 4.2.15 Màn hình bảo mật riêng tư 39 4.2.16 Màn hình xác thực mật 40 4.2.17 Màn hình xem cụm từ bí mật ví 41 4.2.18 Màn hình đổi mật 42 4.2.19 Màn hình xem private key ví 43 4.2.20 Màn hình thơng tin ứng dụng 44 4.2.21 Màn hình sách bảo mật 45 4|Page 4.2.22 Màn hình điều khoản sử dụng 46 4.2.23 Màn hình nhận token 47 4.2.24 Màn hình rút token (chuyển token) 48 4.2.25 Màn hình chuyển NFT 50 4.2.26 Màn hình onboarding 51 4.2.27 Màn hình tạo ví 52 4.2.28 Màn hình nhập ví từ cụm từ bí mật 53 Cơng nghệ sử dụng, cài đặt độ hoàn thiện chức 54 5.1 Công nghệ sử dụng 54 5.2 Môi trường cài đặt kiểm thử 54 5.3 Độ hoàn thiện chức 54 Kết luận 56 6.1 Tổng kết 56 6.2 Kết đạt .56 6.2.1 Ưu điểm 56 6.2.2 Nhược điểm 56 6.3 Hướng phát triển .56 5|Page Giới thiệu chung 1.1 Thơng tin nhóm Nhóm gồm thành viên: - Thành viên MSSV Lớp Email : Nguyễn Xuân Hưng : 19521578 : PMCL2019.2 : 19521578@gm.uit.edu.vn - Thành viên MSSV Lớp Email : Trương Hưng Huy : 19521638 : PMCL2019.2 : 19521638@gm.uit.edu.vn 1.2 Tổng quan đề tài 1.2.1Giới thiệu đề tài Blockchain xu hướng công nghệ ứng dụng nhiều nhiều lĩnh vực, ngành nghề khác Những quốc gia doanh nghiệp lớn dành nhiều cơng sức tài để nghiên cứu cơng nghệ blockchain với mong muốn tạo sản phẩm thực tiễn bảo mật cao Dựa tảng blockchain, việc bảo mật thiết bị di động thực cách sử dụng chữ ký tiền điện tử, để đảm bảo tính xác tồn vẹn thiết bị Nhờ đặc tính blockchain mà việc tạo ví tiền điện tử nhằm mục đích lưu trữ, gửi, nhận theo dõi số dư đồng tiền điện tử coin/token bên Hiểu đơn giản ví tiền điện tử giống tài khoản ngân hàng Điểm khác biệt ví có tính bảo mật cao nhờ chế mã hóa thơng tin, khơng định danh người sở hữu ví tiền lưu trữ ví tiền điện tử 1.2.2Phạm vi nghiên cứu Bài nghiên cứu tập trung vào chức ví tiền điện tử : - Gửi, nhận hiển thị thơng tin tiền mã hố sở hữu Gửi, nhận hiển thị thông tin NFT sở hữu Hiển thị lịch sử giao dịch 6|Page 1.2.3Nội dung nghiên cứu Nghiên cứu bao gồm khái niệm blockchain, giới thiệu ví tiền điện tử, khái niệm ERC20 (Token), ERC721(NFT), cách triển khai contract mạng blockchain đơn giản 1.2.4Kết hướng tới - Kiến thức blockchain Tương tác với contract deploy mạng blockchain Xây dựng thành cơng ví tiền điện tử 1.3 Công cụ sử dụng - Github IDE Visual Code Studio Notion 7|Page Cơ sở lý thuyết nghiên cứu liên quan 2.1 Blockchain 2.1.1Tổng quan : 2.1.1.1 Blockchain ? Khái niệm blockchain từ lâu trở thành thuật ngữ quen thuộc ngành công nghệ thông tin lĩnh vực khác sống Các doanh nghiệp, tập đoàn chí phủ nỗ lực áp dụng công nghệ blockchain vào lĩnh vực khác để thúc đẩy hiệu công việc Mỗi khối (block) chứa thông tin thời gian khởi tạo liên kết với khối trước đó, kèm theo mã thời gian liệu giao dịch Dữ liệu mạng lưới chấp nhận khơng có cách thay đổi Blockchain thiết kế để chống lại việc gian lận, thay đổi liệu 2.1.1.2 Cách thức hoạt động blockchain Blockchain kêt hợp loại công nghệ : - Mật mã học: để đảm bảo tính minh bạch, tồn vẹn riêng tư cơng nghệ Blockchain sử dụng public key hàm hash function Mạng ngang hàng: Mỗi nút mạng xem client server để lưu trữ ứng dụng Lý thuyết trò chơi: Tất nút tham gia vào hệ thống phải tuân thủ luật chơi đồng thuận (giao thức PoW, PoS,…) thúc đẩy động lực kinh tế Hệ thông blockchain chia thành loại : - - - Public: Bất kỳ có quyền đọc ghi liệu Blockchain Quá trình xác thực giao dịch Blockchain địi hỏi phải có nhiều nút tham gia Vì vậy, muốn cơng vào hệ thống Blockchain cần chi phí lớn thực khơng khả thi Ví dụ: Bitcoin, Ethereum,… Private: Người dùng quyền đọc liệu, khơng có quyền ghi điều thuộc bên tổ chức thứ ba tuyệt đối tin cậy Vì Private Blockchain, thời gian xác nhận giao dịch nhanh cần lượng nhỏ thiết bị tham gia xác thực giao dịch Ví dụ: Ripple dạng Private Blockchain, hệ thống cho phép 20% nút gian dối cần 80% lại hoạt động ổn định Permissioned (hay gọi Consortium): dạng Private bổ sung thêm số tính khác, kết hợp Public Private Ví dụ: Các ngân hàng hay tổ chức tài liên doanh sử dụng Blockchain cho riêng 8|Page 2.1.2Smart Contract Smart Contract (hay Hợp đồng thơng minh) chương trình chạy blockchain Hợp đồng thông minh giống hợp đồng kỹ thuật số bị bắt buộc thực quy tắc cụ thể Các quy tắc mã máy tính xác định trước mà tất nút (node) mạng phải chép thực thi quy tắc Về chất, Smart Contract đoạn mã chạy hệ thống phân tán (blockchain), cho phép tạo giao thức Permissionless (tức khơng cần trao quyền) Điều có nghĩa là: - Hai bên hợp đồng đưa cam kết thông qua blockchain mà không cần phải biết danh tính hay tin tưởng lẫn Họ đảm bảo điều kiện hợp đồng không thỏa mãn, hợp đồng khơng thực thi Ngồi ra, việc sử dụng hợp đồng thông minh loại bỏ nhu cầu bên trung gian, giúp giảm đáng kể chi phí hoạt động Mỗi blockchain có phương pháp triển khai hợp đồng thơng minh khác nhau, ví dụ Cosmos có WASM, Polkadot có ink!, Trong bật Smart Contract chạy máy ảo Ethereum (Ethereum Virtual Machine - EVM) 9|Page 4.2.18 Màn hình đổi mật • Mơ tả chung xử lí kiện hình: Màn hình đổi mật gồm: - 42 | P a g e Textfield nhập mật Textfield nhập lại mật Checkbox miễn trừ trách nhiệm Button “Change Password” 4.2.19 Màn hình xem private key ví • Mơ tả chung xử lí kiện hình: Màn hình xem private key ví gồm: - Private key button “Done” để back hình setting 43 | P a g e 4.2.20 Màn hình thơng tin ứng dụng • Mơ tả chung xử lí kiện hình: Màn hình thơng tin ứng dụng gồm: Button “Privacy Policy” click navigate sang hình sách bảo mật Button “Terms of Use” click navigate sang hình điều khoản sử dụng 44 | P a g e 4.2.21 Màn hình sách bảo mật • Mơ tả chung xử lí kiện hình: Màn hình sách bảo mật hiển thị sách bảo bật ứng dụng 45 | P a g e 4.2.22 Màn hình điều khoản sử dụng • Mơ tả chung xử lí kiện hình: - Màn hình điều khoản sử dụng hiển thị điều khoản sử dụng ứng dụng 46 | P a g e 4.2.23 Màn hình nhận token • Mơ tả chung xử lí kiện hình: Màn hình nhận token gồm: - Mã QR địa ví - Địa ví tại, click vào để copy - Button share để share địa ví 47 | P a g e 4.2.24 Màn hình rút token (chuyển token) 48 | P a g e - • Mơ tả chung xử lí kiện hình: Màn hình rút token (chuyển token) gồm: Textfield nhập địa ví người nhận Dropdown để chọn token Button max để chọn số lượng tối đa token chọn Textfield hiển thị số lượng muốn chuyển 49 | P a g e 4.2.25 Màn hình chuyển NFT • Mơ tả chung xử lí kiện hình: Màn hình chuyển NFT gồm: - Ảnh NFT - Tên NFT - Hiển thị địa ví người chuyển - Textfield dùng để nhập địa ví người nhận, địa hợp lệ có button chuyển 50 | P a g e 4.2.26 Màn hình onboarding • Mơ tả chung xử lí kiện hình: Màn hình onboarding gồm: Button “Create Wallet” click navigate sang hình tạo ví Button “Import Wallet” click navigate sang hình nhập ví từ cụm từ bí mật 51 | P a g e 4.2.27 - Màn hình tạo ví • Mơ tả chung xử lí kiện hình: Màn hình tạo ví gồm: Text field để nhập password xác nhận lại Button “Create password” click chuyển sang step 2, hiển thị cụm từ bí mật Button “Get started” click navigate sang home screen 52 | P a g e 4.2.28 Màn hình nhập ví từ cụm từ bí mật • Mơ tả chung xử lí kiện hình: Màn hình nhập ví từ cụm từ bí mật gồm: - Text field để nhập cụm từ bí mật - Text field để nhập password xác nhận lại - Button “Import Wallet” click xác nhận cụm từ hợp lệ hay không, hợp lệ navigate sang trang home, khơng báo lỗi0 53 | P a g e Công nghệ sử dụng, cài đặt độ hồn thiện chức 5.1 Cơng nghệ sử dụng - Công nghệ Flutter dựa ngôn ngữ Dart Sử dụng design pattern Singleton, Facade, Observer, Factory Method, Prototype, Composite, State Backend: NodeJS, TypeScript, Express, PosgreSQL 5.2 Môi trường cài đặt kiểm thử APK: https://tinyurl.com/25ec5s6o Thiết bị cài đặt: Thiết bị di động cài đặt Android 8.0 trở lên 5.3 Độ hồn thiện chức STT Màn hình Mức độ hồn thành Người đảm nhiệm Màn hình đăng nhập 100% Hưng Màn hình Loading 100% Huy Màn hình Home 100% Huy Màn hình chọn account 100% Huy Dialog báo lỗi 100% Huy, Hưng Màn hình thêm ví từ private key 100% Huy Màn hình ví token 100% Hưng Màn hình ví nft 100% Hưng Màn hình thêm token 100% Hưng 10 Màn hình chi tiết token 100% Huy 11 Màn hình thêm nft collection 100% Hưng 12 Màn hình lịch sử giao dịch 100% Huy 13 Màn hình chi tiết giao dịch 100% Huy 54 | P a g e 14 Màn hình cài đặt 100% Huy, Hưng 15 Màn hình cài đặt chung 100% Huy, Hưng 16 Màn hình bảo mật riêng tư 100% Huy 17 Màn hình xác thực mật 100% Huy 18 Màn hình xem cụm từ bí mật ví 100% Huy 19 Màn hình đổi mật 100% Huy 20 Màn hình xem private key ví 100% Huy 21 Màn hình thông tin ứng dụng 100% Hưng, Huy 22 Màn hình sách bảo mật 100% Hưng 23 Màn hình điều khoản sử dụng 100% Huy 24 Màn hình nhận token 100% Hưng 25 Màn hình rút token (chuyển token) 100% Hưng 26 Màn hình chuyển NFT 100% Hưng 27 Dialog cảnh báo 100% Huy 28 Toast báo lỗi 100% Huy 29 Toast thành cơng 100% Huy 30 Màn hình onboarding 100% Hưng 31 Màn hình tạo ví 100% Huy 32 Màn hình nhập ví từ cụm từ bí mật 100% Huy 33 Màn hình quét mã QR 100% Huy 55 | P a g e Kết luận 6.1 Tổng kết • Điều quan trọng làm ví tiền mã hố phải đảm bảo tính bảo mật thơng tin ví, ngồi cịn phải đảm bảo minh bạch rõ ràng thực chuyển giao toke, NFT ví Ngồi giao diện phải bắt mắt, dễ sử dụng, trải nghiệm người dùng phải tốt.Khơng cịn phải đảm xử lý lỗi, lỗ hổng người dùng gặp vấn đề kết nối, lỗi giao dịch,… • Cần phân tích kỹ xác định tính trước thực code, thiết kế giao diện, thiết kế sở liệu • Cần xếp thời gian code cho chức cách hợp lý hơn, không nên tốn nhiều thời gian cho phần 6.2 Kết đạt 6.2.1 Ưu điểm - Hiểu cách thức lập trình dựa cơng nghệ Flutter ngơn ngữ Dart Cơ sở liệu tổ chức server thơng qua việc lập trình back-end Đáp ứng chức ứng dụng ví tiền mã hố, đặc biệt tính đơn giản, dễ sử dụng, tiện lợi, bảo mật, minh bạch Xây dựng luồng chức dễ hiểu, dễ sử dụng Hiểu thêm ETH, ERC721, ERC20, Blockchain, sở liệu phân tán Có phiên dành cho iOS 6.2.2 Nhược điểm - Thiếu chức chuyển mạng blockchain Chưa hỗ trợ quy đổi token 6.3 Hướng phát triển - Tái cấu trúc lại sở liệu để cung cấp nhiều chức năng, linh động dịch vụ cung cấp cho người dùng - Tối ưu hóa code - Đầu tư thiết kế giao diện - Nâng cấp thêm tính tiện ích hỗ trợ người dùng 56 | P a g e ... dư đồng tiền điện tử coin/token bên Hiểu đơn giản ví tiền điện tử giống tài khoản ngân hàng Điểm khác biệt ví có tính bảo mật cao nhờ chế mã hóa thơng tin, khơng định danh người sở hữu ví tiền. .. ImageData 20 | P a g e Ghi Địa ví Chuỗi khơi phục ví Loại ví import Thơng tin số tiền có ví Thứ tự ví app Lưu hình ảnh đại diện ví 3.2.2Bảng token : Thơng tin tiền mã hố STT Thực thể address Symbol... thêm ví từ private key Thêm ví từ private key Màn hình ví token Hiển thị avatar, tên ví, địa ví, số dư tại, tất token mà người dùng thêm vào số dư token Màn hình ví nft Hiển thị avatar, tên ví,

Ngày đăng: 16/06/2022, 20:31

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w