Tải bản đầy đủ (.pdf) (57 trang)

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)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.85 MB, 57 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
-----🕮-----

Đồ Án 1

Tìm hiểu Blockchain
và xây dựng ứng dụng ví tiền mã hoá và 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 và cơ hội giúp đỡ nhóm em trong q trình xây dựng và hiện thực

hóa đồ án mơn học này. Trong thời gian qua nhờ sự chỉ bảo của thầy mà nhóm em đã có
được những kiến thức và định nghĩa nhất định để hoàn thành bản báo cáo một cách tốt
nhất. Tuy nhiên, trong quá trình nghiên cứu và thực hiện đồ án, với thời gian, kiến thức và
kinh nghiệm cịn hạn chế nên khó tránh khỏi những sai sót, rất mong nhận được sự góp ý
của các bạn để tích lũy bài học kinh nghiệm cho việc thực hiện đồ án được tốt hơn.
Một lần nữa nhóm em xin chân thành cảm ơn thầy.

2|Page


Mục lục
1. Giới thiệu chung

6

1.1 Thơng tin nhóm.........................................................................................................6
1.2 Tổng quan về đề tài...................................................................................................6
1.2.1

Giới thiệu về đề tài

6

1.2.2

Phạm vi nghiên cứu

6

1.2.3


Nội dung nghiên cứu

7

1.2.4

Kết quả hướng tới

7

1.3 Công cụ sử dụng .......................................................................................................7
2. Cơ sở lý thuyết và các nghiên cứu liên quan

8

2.1 Blockchain ................................................................................................................8
2.1.1

Tổng quan :

8

2.1.1.1 Blockchain là gì ?

8

2.1.1.2 Cách thức hoạt động của blockchain

8


2.1.2

Smart Contract

9

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 nhau giữa Non-Fungible Token (NFT) & Fungible Token (FT) 13

2.2 Web3 là gì ? ............................................................................................................13
2.2.1

Những đột phá

14


2.2.2

Tiềm năng

15

2.2.3

Hạn chế

15

2.3 Flutter là gì ? ...........................................................................................................16
2.3.1

Thành phần chính

16

2.3.2

Tính năng

17

2.3.3

Lý do nên sử dụng Flutter ?

18


2.3.4

Tính năng phát triển nhanh chóng các ứng dụng

18

3. Thiết kế cơ sở dữ liêu

20

3.1 Sơ đồ logic ..............................................................................................................20
3|Page


3.2 Danh sách các 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

4. Thiết kế giao diện

22

4.1 Danh sách các màn hình .........................................................................................22
4.2 Mơ tả màn 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 và riêng tư

39

4.2.16 Màn hình xác thực mật khẩu

40

4.2.17 Màn hình xem cụm từ bí mật của ví

41

4.2.18 Màn hình đổi mật khẩu

42

4.2.19 Màn hình xem private key của ví

43

4.2.20 Màn hình thơng tin về ứng dụng

44

4.2.21 Màn hình chí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

5. Cơng nghệ sử dụng, cài đặt và độ hồn thiện chức năng


54

5.1 Cơng nghệ sử dụng .................................................................................................54
5.2 Môi trường cài đặt và kiểm thử ..............................................................................54
5.3 Độ hoàn thiện chức năng ........................................................................................54
6. Kết luận

56

6.1 Tổng kết ..................................................................................................................56
6.2 Kết quả đạt được .....................................................................................................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


1. Giới thiệu chung

1.1 Thơng tin nhóm
Nhóm gồm 2 thành viên:
-

Thành viên 1
MSSV
Lớp
Email

: Nguyễn Xuân Hưng
: 19521578
: PMCL2019.2
:

-

Thành viên 2
MSSV
Lớp
Email

: Trương Hưng Huy
: 19521638
: PMCL2019.2
:

1.2 Tổng quan về đề tài
1.2.1Giới thiệu về đề tài
Blockchain là xu hướng công nghệ hiện nay và được ứng dụng nhiều nhiều lĩnh vực,
ngành nghề khác nhau. Những quốc gia hoặc doanh nghiệp lớn đều dành nhiều cơng

sức và tài chính để nghiên cứu công nghệ blockchain với mong muốn tạo ra những sản
phẩm thực tiễn và bảo mật cao.
Dựa trên nền tảng blockchain, việc bảo mật các thiết bị di động được thực hiện bằng
cách sử dụng chữ ký tiền điện tử, để đảm bảo tính chính xác và tồn vẹn của các thiết bị.
Nhờ các đặc tính trên của blockchain mà việc tạo ra ví tiền điện tử nhằm mục đích
lưu trữ, gửi, nhận và theo dõi số dư các đồng tiền điện tử như coin/token bên trong đó. Hiểu
đơn giản thì ví tiền điện tử cũng giống như một tài khoản ngân hàng. Điểm khác biệt chính
là ví này có tính bảo mật cao hơn nhờ cơ chế mã hóa thơng tin, khơng định danh người sở
hữu ví và tiền lưu trữ trong ví là tiền điện tử.

1.2.2Phạm vi nghiên cứu
Bài nghiên cứu này tập trung vào các chức năng cơ bản của ví tiền điện tử :
-

Gửi, nhận và hiển thị thơng tin tiền mã hố đang sở hữu
Gửi, nhận và hiển thị thông tin NFT đang 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 các khái niệm về blockchain, giới thiệu về ví tiền điện tử, các
khái niệm về ERC20 (Token), ERC721(NFT), cách triển khai contract trên một mạng
blockchain đơn giản.

1.2.4Kết quả hướng tới
-

Kiến thức về blockchain

Tương tác với các contract được deploy trên 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


2. Cơ sở lý thuyết và các nghiên cứu liên quan
2.1 Blockchain
2.1.1Tổng quan :
2.1.1.1 Blockchain là gì ?
Khái niệm blockchain từ lâu đã trở thành một thuật ngữ quen thuộc trong ngành
công nghệ thông tin cũng như các lĩnh vực khác của cuộc sống. Các doanh nghiệp, tập
đoàn và thậm chí cả chính phủ đều đang nỗ lực áp dụng công nghệ blockchain vào các lĩnh
vực khác nhau để thúc đẩy hiệu quả công việc.
Mỗi khối (block) đều chứa thông tin về thời gian khởi tạo và được liên kết với khối
trước đó, kèm theo đó là một mã thời gian và dữ liệu giao dịch. Dữ liệu khi đã được mạng
lưới chấp nhận thì sẽ khơng có cách nào thay đổi được. Blockchain được thiết kế để chống
lại việc gian lận, thay đổi của dữ liệu.
2.1.1.2 Cách thức hoạt động của blockchain
Blockchain là sự kêt hợp giữa 3 loại cơng nghệ :
-

Mật mã học: để đảm bảo tính minh bạch, tồn vẹn và riêng tư thì cơng nghệ

Blockchain đã sử dụng public key và hàm hash function.
Mạng ngang hàng: Mỗi một nút trong mạng được xem như một client và cũng là
server để lưu trữ bản sao ứng dụng.
Lý thuyết trò chơi: Tất cả các nút tham gia vào hệ thống đều phải tuân thủ luật chơi
đồng thuận (giao thức PoW, PoS,…) và được thúc đẩy bởi động lực kinh tế.

Hệ thơng blockchain chia thành 3 loại chính :
-

-

-

Public: Bất kỳ ai cũng có quyền đọc và ghi dữ liệu trên Blockchain. Quá trình xác
thực giao dịch trên Blockchain này địi hỏi phải có rất nhiều nút tham gia. Vì vậy,
muốn tấn cơng được vào hệ thống Blockchain này cần chi phí rất lớn và thực sự
khơng khả thi. Ví dụ: Bitcoin, Ethereum,…
Private: Người dùng chỉ được quyền đọc dữ liệu, khơng có quyền ghi vì điều này
thuộc về bên tổ chức thứ ba tuyệt đối tin cậy. Vì đây là một Private Blockchain, cho
nên thời gian xác nhận giao dịch khá nhanh vì chỉ cần một lượng nhỏ thiết bị tham
gia xác thực giao dịch. Ví dụ: Ripple là một dạng Private Blockchain, hệ thống này
cho phép 20% các nút là gian dối và chỉ cần 80% còn lại hoạt động ổn định là được.
Permissioned (hay còn gọi là Consortium): một dạng của Private nhưng bổ sung
thêm 1 số tính năng khác, đây là sự kết hợp giữa Public và Private. Ví dụ: Các ngân
hàng hay tổ chức tài chính liên doanh sẽ sử dụng Blockchain cho riêng mình.

8|Page


2.1.2Smart Contract

Smart Contract (hay Hợp đồng thông minh) là các chương trình chạy trên
blockchain. Hợp đồng thơng minh cũng giống như một hợp đồng kỹ thuật số bị bắt buộc
thực hiện bởi một bộ quy tắc cụ thể. Các quy tắc này do bộ mã máy tính xác định trước mà
tất cả các nút (node) trong mạng đều phải sao chép và thực thi các quy tắc đó.
Về bản chất, Smart Contract chỉ là một đoạn mã chạy trên một hệ thống phân tán
(blockchain), cho phép tạo ra các giao thức Permissionless (tức là khơng cần trao quyền).
Điều đó có nghĩa là:
-

Hai bên trong hợp đồng có thể đưa ra các cam kết thông qua blockchain mà không
cần phải biết về danh tính hay tin tưởng lẫn nhau.
Họ có thể đảm bảo rằng nếu các điều kiện của hợp đồng khơng được thỏa mãn, hợp
đồng sẽ khơng được thực thi.

Ngồi ra, việc sử dụng hợp đồng thông minh loại bỏ nhu cầu đối với các bên trung
gian, giúp giảm đáng kể chi phí hoạt động.

Mỗi blockchain có một phương pháp triển khai hợp đồng thơng minh khác nhau, ví
dụ trên Cosmos có WASM, Polkadot có ink!,... Trong đó nổi bật nhất vẫn là Smart Contract
chạy trên máy ảo của Ethereum (Ethereum Virtual Machine - EVM).

9|Page


2.1.3Token ERC-20 (Fungible token)
ERC20 là một tiêu chuẩn kỹ thuật được sử dụng để phát hành và triển khai token
trên mạng lưới Ethereum, một dạng Fungible Token. ERC20 cung cấp cho các nhà phát
triển danh sách các quy tắc phải tuân theo cho phép các ERC20 hoạt động liền mạch trong
nền tảng Ethereum.


Ứng dụng :
-

-

Cấu trúc contract của ERC20 bao gồm sáu chức năng bắt buộc: totalSupply,
balanceOf ,transfer, transferFrom, approve và allowance . Ngồi ra, cịn có các chức
năng tùy chọn như name, symbol và decimal.
Bằng cách kết hợp tất cả các chức năng ở trên, chúng ta đã có thể tạo ra ERC20
token. Chúng ta có thể truy vấn tổng nguồn cung, kiểm tra số dư, chuyển tiền và cấp
quyền cho các DApp khác quản lý token của mình.

Mỗi ERC20 token có thể thay thế lẫn nhau, tức là mỗi đơn vị có thể khả năng sử
dụng và giá trị tương đương. Nếu bạn nắm giữ 1 USDC, việc bạn nắm giữ token cụ thể nào
không quan trọng. Bạn có thể giao dịch, trao đổi nó với token của người khác và chúng
vẫn giống hệt nhau về mặt chức năng, giống như việc đi chợ mua thịt cá, bạn trả bằng tiền
10,000 VND nào cũng được.
Điều này rất có lợi, nếu token của bạn có mục tiêu trở thành một loại tiền tệ nào đó.
Bạn sẽ khơng muốn các đơn vị riêng lẻ có các đặc điểm khác biệt, bởi điều này khiến chúng

10 | P a g e


khơng thể thay thế được. Điều này có thể khiến một số token trở nên có giá trị hơn hoặc ít
có giá trị hơn những token khác, làm suy yếu mục đích sử dụng của chúng.
Cách thức hoạt động:
-

-


-

Nói một cách đơn giản, Smart Contract hoạt động như một chương trình tất định.
Các Smart Contract sẽ thực thi một tác vụ cụ thể trong trường hợp thỏa mãn các
điều kiện nhất định. Do đó, một hệ thống Smart Contract thường tuân theo các câu
lệnh "nếu… thì…".
Trên mạng blockchain, các Smart Contract chịu trách nhiệm thực thi và quản lý các
hoạt động diễn ra trên blockchain khi những người dùng (address) tương tác với
nhau. Bất kỳ địa chỉ nào không phải là smart contract đều được gọi là Tài khoản độc
lập (Externally Owned Account - EOA). Do đó, smart contract sẽ do máy tính kiểm
sốt và EOA do người dùng kiểm soát.
Smart Contract Ethereum bao gồm một mã hợp đồng và hai khóa cơng khai:
o Khóa cơng khai thứ nhất là khóa do người tạo hợp đồng cung cấp.
o Khóa cịn lại đại diện cho chính hợp đồng, khóa này có vai trò như một mã
định danh kỹ thuật số duy nhất cho mỗi Smart Contract.

Smart Contract được triển khai thông qua giao dịch blockchain và chúng chỉ được
kích hoạt khi một Tài khoản độc lập (EOA) hoặc các Smart Contract khác call chúng. Tuy
nhiên, kích hoạt đầu tiên ln từ phía EOA (người dùng).

2.1.4Token ERC-721 ( Non-Fungible tokens)
ERC721 là một chuẩn token NFT (Non-Fungible Token) được sử dụng phổ biến
ngày nay, nó là một chuẩn token phức tạp hơn ERC20, với nhiều phần mở rộng tùy chỉnh.

11 | P a g e


ERC-721 được tạo ra bởi bốn nhà phát triển là William Entriken, Dieter Shirley, Jacob
Evans và Nastassia Sachs vào năm 2018.
Ứng dụng :

-

Digital Art

-

Collectibles

12 | P a g e


2.1.5Sự khác nhau giữa Non-Fungible Token (NFT) & Fungible
Token (FT)
Fungible Token (FT) có thể hiểu là mỗi token là giống hệt nhau, có thể thay thế cho
nhau và có thể phân chia được. Các tài sản đáng tin cậy được sử dụng hàng ngày như đô la
Mỹ, Bitcoin, Ethereum, việt nam đồng,... đều có thể xem là các tài sản có thể thay thế được
cho nhau.

NFT mở rộng khái niệm “không thể thay thế” bằng cách tận dụng blockchain
Ethereum để đại diện cho các tài sản vật lý hoặc tài sản kỹ thuật số duy nhất. Quyền sở hữu
NFT được xác thực và theo dõi bằng cách sử dụng một blockchain cơng khai.
NFT có nhiều trường hợp sử dụng. Nó có thể là một tài sản kỹ thuật số trong một
trị chơi, một tác phẩm nghệ thuật mã hố có khả năng sưu tầm hoặc thậm chí là một vật
thể trong thế giới thực như bất động sản,...

2.2 Web3 là gì ?
Web 3.0 là thế hệ thứ ba sắp tới của Internet, nơi các trang web và ứng dụng sẽ có
thể xử lý thơng tin theo cách thơng minh giống như con người thông qua các công nghệ
như máy học (ML), Dữ liệu lớn, công nghệ sổ cái phi tập trung (DLT), v.v. Ban đầu,
Web 3.0 được nhà phát minh World Wide Web, Tim Berners-Lee, gọi là Semantic Web,

và nó nhằm mục đích trở thành một internet tự chủ, thơng minh, và cởi mở hơn.
Định nghĩa Web 3.0 có thể được mở rộng như sau: dữ liệu sẽ được kết nối với nhau
theo cách phi tập trung. Đây sẽ là một bước tiến vượt bậc so với thế hệ internet hiện tại
của chúng ta (Web 2.0), nơi dữ liệu chủ yếu được lưu trữ trong các kho lưu trữ tập trung.
Hơn nữa, người dùng và máy móc sẽ có thể tương tác với dữ liệu. Nhưng để làm
được điều này, các chương trình cần hiểu được thơng tin cả về mặt khái niệm lẫn ngữ
13 | P a g e


cảnh. Với suy nghĩ này, Web 3.0 có hai nền tảng là semantic web (mạng ngữ nghĩa) và trí
tuệ nhân tạo (AI).

2.2.1Những đột phá
Web 3.0 thừa hưởng các đặc tính tốt của Web 2.0 và có thêm những yếu tố giúp
giải quyết hạn chế của Web 2.0 bao gồm:
-

-

Verifiable: Mọi thứ đều minh bạch và có thể xác nhận on-chain.
Trustless & Permissionless: Hạn chế tối đa những yếu tố liên quan đến lịng tin
và bất kỳ ai cũng có thể tham gia.
Self-Governing: Lấy người dùng làm trọng tâm, bản thân người dùng có tồn
quyền với thơng tin và tài sản của mình.
Distributed: Quyền lực được phân phối cho người dùng và các quyết định sẽ
được đưa ra và thực hiện bởi các tổ chức tự trị phi tập trung (DAO). Tất cả đều
khơng thể bị kiểm sốt bởi một bên tổ chức tập trung nào đó.
Native built-in payments: Các ứng dụng của Web 3.0 không yêu cầu người dùng
phải cung cấp thông tin cá nhân và không thể ngăn cản việc thanh tốn, giao dịch
của người dùng


Nhìn vào các đặc điểm trên anh em có thấy tương sự tương đồng giữa những thứ
mà Web 3.0 mang lại và blockchain mang lại khơng? Khơng phải ngẫu nhiên blockchain
có thể phát triển mạnh mẽ như vậy, chúng là một phần không thể thiếu trong sự hình
thành của Web 3.0. Có thể nói nhờ blockchain mà có Web 3.0 và nhờ Web 3.0 mà
blockchain có thể phát triển.
14 | P a g e


2.2.2Tiềm năng
Những đột phá của Web 3.0 đã và đang mở ra những cánh cổng lớn giúp tạo ra
những mô hình kinh doanh và ngành nghề mà trước đây ta khó có thể tưởng tượng tới.
Minh chứng điển hình nhất vào thời điểm hiện tại chính là Crypto. Việc áp dụng
cơng nghệ blockchain với việc loại bỏ yếu tố lịng tin, loại bỏ sự cần thiết của bên thứ ba
trong giao dịch đã tạo ra những trải nghiệm và những sản phẩm thực sự tuyệt vời.
Chỉ cần một chiếc ví Non-Custodial, ta có thể gửi tiền cho bất kỳ ai ở bất kỳ đâu
trên thế giới.
-

-

-

Nhờ DeFi ta có thể gửi tiền trong ngân hàng mà không cần phải đến ngân hàng
trong khi lãi suất tốt hơn, ta có thể vay mà khơng cần nhìn mặt chủ nợ, ta có thể tối
ưu lợi nhuận bằng cách xoay vòng vốn hoặc farming.
Nhờ các game Play to Earn và NFT mà tài sản trong game của người chơi là của
người chơi và không thể bị phá hủy, đồng thời cũng tạo ra một nguồn thu nhập từ
game.
Ngồi ra cịn rất nhiều những đột phá khác đang chờ được khám phá.


2.2.3Hạn chế
Tuy có một tiềm năng rất to lớn nhưng phải thừa nhận rằng Web 3.0 vẫn còn ở
giai đoạn khá sơ khởi.
Một vài hạn chế có thể kể đến như:
-

-

-

Tính mở rộng: Vẫn còn một khoảng cách lớn giữ Web 2.0 và Web 3.0 nếu xét về
tính mở rộng, tốc độ xử lý, chi phí,...
UX: Trải nghiệm người dùng vẫn chưa thực sự tốt vì để tham gia các sản phẩm
của Web 3.0 như Crypto, người dùng cần phải học những kiến thức mới, tải những
phần mềm mới và thao tác nhiều bước khác nhau. Đây là một rào cản để tiến tới
mass-adoption.
Tính tiếp cận: Các ứng dụng hầu hết được build độc lập chứ khơng được tích hợp
với các ứng dụng phổ biến và quen thuộc của Web 2.0, làm giảm tính tiếp cận đến
với người dùng.
Chi phí: Chi phí để phát triển một dự án là rất đắt đỏ, những dapps thường gặp
khó khăn trong việc đưa code lên blockchain vì phí gas của Ethereum hay chi phí
phải bỏ ra trong việc audit cũng rất cao.

Tuy có những hạn chế nhưng tất cả đều đang được khắc phục dần. Việc còn ở giai
đoạn sớm và còn nhiều vấn đề cần giải quyết cũng đồng nghĩa với việc mở ra nhiều cơ
hội cho những con người tin tưởng vào tương lai của Web 3.0 và phát triển những sản
phẩm liên quan.
15 | P a g e



2.3 Flutter là gì ?

Như chúng ta đã đề cập đến trong phần giới thiệu, nền tảng này được dùng để phát
triển phần mềm điện thoại. Nhưng đó chưa phải là định nghĩa hoàn chỉnh về nền tảng
này. Flutter được biết đến là nền tảng hỗ trợ phát triển phần mềm, ứng dụng di động.
Những ứng dụng đa nền cho hệ điều hành IOS và Android do tập đoàn Google phát triển.
Nó được sử dụng rất phổ biến hiện nay trong giới lập trình. Nhiệm vụ của Flutter chính là
tạo ra các ứng dụng gốc dành cho Google. Đây chính là định nghĩa đầy đủ nhất giải đáp
Flutter là gì?

2.3.1Thành phần chính
Flutter gồm 2 thành phần quan trọng:
-

-

Một SDK (Software Development Kit): Một bộ sưu tập các công cụ sẽ giúp bạn
phát triển các ứng dụng của mình. Điều này bao gồm các công cụ để biên dịch mã
của bạn thành mã máy gốc (mã cho iOS và Android).
Một Framework (UI Library based on widgets): Một tập hợp các thành phần UI có
thể tái sử dụng (button, text inputs, slider, v.v.) giúp bạn có thể cá nhân hóa tùy
theo nhu cầu của riêng mình.

16 | P a g e


Đây chính là hai thành phần chính trả lời cho câu hỏi thành phần quan trọng nhất
của Flutter là gì. Hầu hết các nền tảng xây dựng web hay ứng dụng hiện nay đều có chứa
framework. Tùy theo mục đích của nền tảng và người sử dụng mà framework này có thể

thay đổi khác nhau. Tuy nhiên nhìn chung, những tính năng mà nó đem lại thật sự hiệu
quả.

2.3.2Tính năng
Sau khi đã tìm hiểu về định nghĩa cũng như thành phần của Flutter chúng tơi nghĩ
rằng tính năng cũng rất quan trọng. Các lập trình viên trước khi sử dụng nền tảng này
cũng nên biết tính năng của Flutter là gì?
Đối với các chuyên gia về lập trình, Flutter được coi như như một react
framework. Nó thật sự mạnh mẽ và tiện lợi khi sử dụng để phát triển ứng dụng nền cho
Google. Nền tảng này còn sử dụng một dạng ngơn ngữ lập trình khá dễ hiểu chính là
Dart. Ngay cả những bạn lập trình viên mới cũng có thể nắm bắt và sử dụng ngơn ngữ lập
trình này.

17 | P a g e


Khơng chỉ vậy, Flutter hỗ trợ phát triển nhanh chóng các phần mềm ứng dụng một
cách linh hoạt. Giao diện dành cho người dùng dễ hiểu và đẹp mắt. Đây cũng chính là
điểm được đánh giá cao trong các tính năng của Flutter. Ngồi ra, khi nhắc đến tính năng
của Flutter là gì. Chúng ta khơng thể khơng kể đến việc nó có thể hỗ trợ nhiều widget
khác nhau. Flutter cịn có thể được thể hiện trên một nền tảng hồn tồn khác.
Tính năng cuối cùng chúng ta phải kể đến đó chính là hiệu năng làm việc cao và
nhanh chóng. Các lập trình viên đều đánh giá cao về các tính năng này của Flutter đem
lại. Nó thật sự hữu hiệu trong mảng phát triển ứng dụng gốc cho Google và các ứng dụng
nền. Có lẽ vì những tính năng nổi bật này, mà Flutter được lựa chọn sử dụng rất nhiều bởi
các nhà lập trình.

2.3.3Lý do nên sử dụng Flutter ?
Sau khi khảo sát những lập trình viên, chúng tôi đã rút ra được rất nhiều lý do để
sử dụng Flutter. Khơng chỉ chung chung bởi vì Flutter đem lại hiệu quả. Mà hơn cả, nó

có những lý do thuyết phục các nhà lập trình sử dụng.

2.3.4Tính năng phát triển nhanh chóng các ứng dụng
Đây là một trong số những tính năng chúng tơi đã kể đến phía trên. Tuy nhiên, nó
thực sự là một lý do thuyết phục người dùng lựa chọn. Flutter có rất nhiều tính năng hot
reload. Người dùng có thể trải nghiệm nhanh chóng và dễ dàng hơn rất nhiều so với nền
18 | P a g e


tảng khác. Đây chính là lời giải đáp cho câu hỏi lý do nên sử dụng Flutter là gì? Các bạn
nên cân nhắc về điều này.

Chưa kể đến, khả năng xây dựng giao diện và sửa lỗi nhanh cho người dùng. Đây
chính là những tính năng thuyết phục để giúp người dùng phát triển ứng dụng dễ dàng.
Những trải nghiệm về việc tải lại cũng rất dễ, không làm mất đi trạng thái ở trên
emulator, simulator và device cho cả iOS và Android.

19 | P a g e


3. Thiết kế cơ sở dữ liêu
3.1 Sơ đồ logic

3.2 Danh sách các quan hệ
3.2.1Bảng wallet : Thơng tin ví tiền mã hoá
STT
1
2
3


Thực thể
address
privateKey
isImportWallet

Kiểu dữ liệu
String
String
boolean

4

balanceToken

Token

5

Index

Int

6

Avatar

ImageData

20 | P a g e


Ghi chú
Địa chỉ ví
Chuỗi khơi phục ví
Loại ví được
import
Thơng tin số tiền
hiện có của ví
Thứ tự của ví trên
app
Lưu hình ảnh đại
diện của ví


3.2.2Bảng token : Thơng tin tiền mã hố
STT
1
2
3
4

Thực thể
address
Symbol
Decimal
imageUrl

Kiểu dữ liệu
String
String
Int

String

5
6

Balance
Avatar

Double
ImageData

7

Amunt

Double

Ghi chú
Địa chỉ token
Kí hiệu token
Giá trị nhị phân
Đường dẫn hình
ảnh
Số dư của token
Lưu hình ảnh đại
diện của token
Số dư quy đổi ra
tiền tệ

3.2.3Bảng transaction : Thông tin giao dịch

STT
1

Thực thể
Hash

Kiểu dữ liệu
String

2

From

String

3
4
5

To
Timestamp
Type

String
Int
Int

Ghi chú
Chuỗi hash đại
diện của giao dịch

Chuyển từ địa chỉ

Đến địa chỉ ví
Thời gian giao dịch
Loại giao dịch

3.2.4Bảng nft : Thông tin vật phẩm
STT
1
2

Thực thể
Name
Image

Kiểu dữ liệu
String
String

3
4

Description
tokenId

String
Int

21 | P a g e


Ghi chú
Tên vật phẩm
Đường dẫn hình
ảnh đại diện
Chú thích vật phẩm
Số đại diện cho vật
phẩm


4. Thiết kế giao diện
4.1 Danh sách các màn hình
Màn hình

Chức năng

1

Màn hình đăng nhập

Đăng nhập vào ví thơng qua vân
tay (nếu có) hoặc mã pin

2

Màn hình Loading

Menu chứa các thơng tin như
address, chế độ chơi ,hướng dẫn
chơi,…


3

Màn hình Home

Màn hình hiển thị các thơng tin
chung của ví như địa chỉ ví, tên
ví, button nhận token và gửi/rút
token.

4

Màn hình chọn account

Thay đổi nhanh account hiện tại.

5

Dialog báo lỗi

Hiển thị dialog báo lỗi

6

Màn hình thêm ví từ
private key

Thêm ví từ private key

7


Màn hình ví token

Hiển thị avatar, tên ví, địa chỉ ví,
số dư hiện tại, tất cả token mà
người dùng đã thêm vào và số dư
của từng token.

8

Màn hình ví nft

Hiển thị avatar, tên ví, địa chỉ ví,
số dư hiện tại, tất cả collection
NFT mà người dùng đã thêm vào
(và đang sỡ hữu) và các NFTs
trong collection tương ứng.

9

Màn hình thêm token

Cho phép người dùng thêm token
hợp lệ vào ví

10

Màn hình chi tiết token

Hiển thị thông tin chi tiết của
token như tổng cung, số người

đang nắm, số lượng giao dịch,
địa chỉ của smart contract của
token,… trên Etherscan

11

Màn hình thêm nft
collection

Cho phép người dùng thêm NFT
collection hợp lệ vào ví

12

Màn hình lịch sử giao dịch

Hiển thị lịch sử giao dịch
(chuyển, nhận/rút, quy đổi) của
ví đang được chọn.

STT

22 | P a g e


13

Màn hình chi tiết giao dịch

Hiển thị thơng tin chi tiết của

giao dịch như tổng cung, số
người đang nắm, số lượng giao
dịch, địa chỉ của smart contract
của token,… trên Etherscan

14

Màn hình cài đặt

Hiển thị các tuỳ chọn cài đặt
người dùng có thể xem hoặc
chỉnh sửa như đăng xuất, thơng
tin app bảo mật và riêng tư, cài
đặt chung.

15

Màn hình cài đặt chung

Cho phép đổi đơn vị tiền tệ giữa
USD và VND, đổi ngơn ngữ
tiếng Anh và tiếng Việt

16

Màn hình bảo mật và riêng


Hiển thị các tuỳ chọn cho phép
người dùng xem lại cụm từ bí

mật, thay đổi mật khẩu, xem lại
private key

17

Màn hình xác thực mật
khẩu

Yêu cầu xác thực mật khẩu

18

Màn hình xem cụm từ bí
mật của ví

Xem lại cụm từ bí mật của ví

19

Màn hình đổi mật khẩu

Đổi mật khẩu

20

Màn hình xem private key
của ví

Xem lại private key của tài khoản
đang chọn


21

Màn hình thơng tin về ứng
dụng

Xem thơng tin về ứng dụng

22

Màn hình chính sách bảo
mật

Xem chính sách bảo mật

23

Màn hình điều khoản sử
dụng

Xem điều khoản sử dụng

24

Màn hình nhận token

Hiển thị mã QR để người gửi
quét và hiển thị địa chỉ ví của
người dùng cho phép copy và
share


25

Màn hình rút token (chuyển
token)

Cho phép chuyển token hoặc rút
đến địa chỉ ví khác

26

Màn hình chuyển NFT

Cho phép chuyển NFT hoặc rút
đến địa chỉ ví khác

23 | P a g e


27

Dialog cảnh báo

Hiển thị dialog cảnh báo

28

Toast báo lỗi

Hiển thị toast báo lỗi


29

Toast thành cơng

Hiển thị toast thành cơng

30

Màn hình onboarding

Dẫn đến màn hình tạo ví hoặc
nhập ví

31

Màn hình tạo ví

Tạo ví mới

32

Màn hình nhập ví từ cụm
từ bí mật

Nhập ví

33

Màn hình qt mã QR


Qt mã để chuyển token nhanh

24 | P a g e


×