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

Đồ án tìm hiểu blockchain và xây dựng ứng dụng nft theo trào lưu move to earn

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 (1.99 MB, 75 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

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

ĐỒ ÁN 2 – SE122.N11

ĐỀ TÀI:
TÌM HIỂU BLOCKCHAIN VÀ XÂY DỰNG ỨNG
DỤNG NFT THEO TRÀO LƯU MOVE TO EARN

Giảng viên hướng dẫn:
Cô HUỲNH HỒ THỊ MỘNG TRINH
Sinh viên thực hiện:
NGUYỄN CAO CƯỜNG – MSSV: 19521298
ĐINH VIỆT HÀO – MSSV: 19521475

Thành phố Hồ Chí Minh, tháng 12 năm 2022


LỜI MỞ ĐẦU
Token không thể thay thế (NFT) là một tài sản ảo đại diện cho các vật phẩm
trong thế giới thực như nghệ thuật, âm nhạc, vật phẩm game, và video. NFT được mua
bán trực tuyến dưới hình thức thanh tốn bằng tiền mã hóa (cryptocurrency). NFT
thường được mã hóa bằng phần mềm cơ bản giống như các loại tiền mã hóa hay cịn
gọi là tiền điện tử.
Mặc dù chỉ mới xuất hiện hồi năm 2014, NFTs hiện đang được nhiều người biết
đến bởi chúng đang ngày một trở thành cách phổ biến để mua bán các tác phẩm nghệ
thuật số. Một khoản tiền khổng lồ 174 triệu USD đã được chi cho NFT từ tháng 11/2017.
Nhờ sự phát triển của NFT ngày này, hàng loạt các trào lưu liên quan đến NFT
đã ra đời. Có thể kể đến Play To Earn, Move To Earn . Nhằm mục đích tìm hiểu về NFT


cũng như trào lưu liên quan, nhóm em đã quyết định xây dựng ứng dụng Move To earn
trên nền tảng Ethereum.
Move To Earn (Di chuyển để kiếm tiền) là hình thức giúp người dùng có thể
kiếm tiền qua các chuyển động hàng ngày như chạy bộ hoặc đi bộ bằng công nghệ cảm
biến, đo lường chuyển động của người dùng và sự kết hợp của các thiết bị điện tử như:
Smart Phone, Smart Watch hay GPS… Các thiết bị sẽ thu thập dữ liệu qua các hoạt
động của của thể từ đó quy ra số liệu đánh giá và sẽ được quy đổi thành các đồng coin
trong các ứng dụng. Trong đó NFT sẽ được ứng dụng thành những đôi giày, và người
dùng sẽ dùng những đôi giày này để kiếm thêm thu nhập cũng như cải thiện sức khoẻ
của bản thân.

~1~


LỜI CẢM ƠN
Đầu tiên, nhóm xin gửi lời cảm ơn chân thành đến tập thể quý Thầy Cô Trường
Đại học Công nghệ thông tin – Đại học Quốc gia TP.HCM và quý Thầy Cô khoa Công
nghệ phần mềm đã giúp cho nhóm em có những kiến thức cơ bản làm nền tảng để thực
hiện đề tài này.
Đặc biệt, nhóm em xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới cô Huỳnh
Hồ Thị Mộng Trinh. Cô đã trực tiếp hướng dẫn tận tình, sửa chữa và đóng góp nhiều ý
kiến q báu giúp nhóm em hồn thành tốt báo cáo mơn học của mình. Trong thời gian
một học kỳ thực hiện đề tài, nhóm em đã vận dụng những kiến thức nền tảng tích lũy
được đồng thời kết hợp với việc học hỏi và nghiên cứu những kiến thức mới. Từ đó,
nhóm em đã vận dụng tối đa những gì thu thập được để hồn thành một báo cáo đồ án
tốt nhất. Tuy nhiên, trong quá trình thực hiện, nhóm em khơng tránh khỏi những thiếu
sót. Chính vì vậy, nhóm em rất mong nhận được những sự góp ý từ phía Cơ nhằm hồn
thiện những kiến thức mà nhóm em đã học tập và là hành trang kiến thức giúp nhóm
em phát triển trong tương lai.
Sau cùng, nhóm xin kính chúc Cơ thật dồi dào sức khỏe, niềm tin để tiếp tục thực hiện

sứ mệnh cao đẹp của mình là truyền đạt kiến thức cho thế hệ mai sau.
Xin chân thành cảm ơn các quý Thầy Cô!

~2~


MỤC LỤC
LỜI MỞ ĐẦU ................................................................................................................ 1
LỜI CẢM ƠN ................................................................................................................. 2
Chương 1: TỔNG QUAN .............................................................................................. 9
1.1.

Tên đề tài ........................................................................................................... 9

1.2.

Giới thiệu đề tài ................................................................................................. 9

1.3.

Khảo sát hiện trạng ........................................................................................... 9

1.3.1

StepN ........................................................................................................ 10

1.3.2

Calo .......................................................................................................... 11


1.3.3

Genopets ................................................................................................... 13

1.4.

Mục tiêu hướng đến ........................................................................................ 14

Chương 2: CƠ SỞ LÝ THUYẾT ................................................................................. 16
2.1

Blockchain ...................................................................................................... 16

2.1.1

Giới thiệu .................................................................................................. 16

2.1.2. Các đặc điểm nổi bật.................................................................................... 17
2.1.3. Cách thức hoạt động .................................................................................... 17
2.1.4. Ứng dụng thực tiễn ...................................................................................... 20
2.2

Smart contract ................................................................................................. 21

2.2.1. Giới thiệu ..................................................................................................... 21
2.2.2. Đặc điểm ...................................................................................................... 22
2.2.3. Cách thức hoạt động .................................................................................... 22
2.3

Ethereum ......................................................................................................... 23


2.3.1. Giới thiệu ..................................................................................................... 23
2.3.2. Các thành phần trong Ethereum .................................................................. 24
2.4

Token ERC-20 ................................................................................................ 26

2.4.1

Giới thiệu về ERC-20 ............................................................................... 26

2.4.1

Ưu điểm .................................................................................................... 26

2.4.3

Nhược điểm .............................................................................................. 27

2.5

NFT – Non-fungible Token ............................................................................ 28

2.5.1

Giới thiệu về NFT .................................................................................... 28

2.5.2

Đặc điểm của NFT ................................................................................... 28


2.5.3

Ứng dụng của NFT ................................................................................... 29

2.6

Nextjs .............................................................................................................. 30

~3~


2.7

React Native .................................................................................................... 30

2.8

Solidity ............................................................................................................ 30

Chương 3: MƠ HÌNH USE-CASE .............................................................................. 32
3.1

Sơ đồ Use-case ................................................................................................ 32

3.2

Danh sách các actor......................................................................................... 32

3.3


Danh sách các Use-case .................................................................................. 32

3.4

Đặc tả Use-case ............................................................................................... 33

3.4.1

Đặc tả Use-case “Đăng nhập” .................................................................. 33

3.4.2

Đặc tả Use-case “Đăng ký” ...................................................................... 34

3.4.3

Đặc tả Use-case “Kết nối ví” ................................................................... 34

3.4.4

Đặc tả Use-case “Quản lý tài khoản” ....................................................... 35

3.4.5

Đặc tả Use-case “Tìm kiếm, bộ lọc NFT” ............................................... 36

3.4.6

Đặc tả Use-case “Mua bán, giao dịch NFT” ............................................ 36


3.4.7

Đặc tả Use-case “Xem NFT” ................................................................... 37

3.4.8

Đặc tả Use-case “Xem bộ sưu tập NFT” ................................................. 37

3.4.9

Đặc tả Use-case “Hoạt động chạy kiếm tiền” .......................................... 38

3.4.10 Đặc tả Use-case “Trả thưởng khi chạy” ................................................... 38
Chương 4: THIẾT KẾ DỮ LIỆU ................................................................................. 40
4.1

Hệ thống Smart Contract ................................................................................ 40

4.1.1

Struct “Sales” thuộc RunnMarketplace .................................................... 40

4.1.2

Struct “TokenInfo” thuộc RunnSneaker721 ............................................ 40

4.2

Bảng dữ liệu MongoDB .................................................................................. 41


4.2.1

Schema “Sales” ........................................................................................ 41

4.2.2

Schema “TokenInfo” ................................................................................ 41

4.2.3

Schema “User” ......................................................................................... 42

Chương 5: THIẾT KẾ KIẾN TRÚC ............................................................................ 43
5.1

Kiến trúc hệ thống ........................................................................................... 43

5.2

Kiến trúc Smart contract ................................................................................. 44

5.3

Công nghệ sử dụng ......................................................................................... 46

Chương 6: THIẾT KẾ GIAO DIỆN............................................................................. 48
6.1

Sơ đồ liên kết màn hình .................................................................................. 48


6.2

Danh sách các màn hình ................................................................................. 48

6.3

Mơ tả chi tiết các màn hình ............................................................................. 50

~4~


6.3.1

Màn hình “Đăng nhập ở web”.................................................................. 50

6.3.2 Màn hình “Kho hàng” ................................................................................... 51
6.3.3 Màn hình “Chi tiết NFT kho hàng” .............................................................. 52
6.3.4 Màn hình “Chấp thuận” ................................................................................ 52
6.3.5 Màn hình “Nhập giá” .................................................................................... 53
6.3.6 Màn hình “Chợ (tất cả)” ............................................................................... 54
6.3.7 Màn hình “Chợ (của tơi)” ............................................................................. 55
6.3.8 Màn hình “Chi tiết NFT chợ” ....................................................................... 56
6.3.9 Màn hình “Đăng nhập phía mobile” ............................................................. 57
6.3.10 Màn hình “Đăng ký tài khoản” ................................................................... 58
6.3.11 Màn hình “Trang chủ” ................................................................................ 59
6.3.12 Màn hình “Giày của tơi” ............................................................................. 61
6.3.13 Màn hình “Chi tiết giày”............................................................................. 62
6.3.14 Màn hình “Hồ sơ cá nhân” ......................................................................... 63
6.3.15. Màn hình “Chỉnh sửa hồ sơ” ..................................................................... 64

6.3.16. Màn hình “Thơng tin về ứng dụng” ........................................................... 65
6.3.17. Màn hình “Ví của tơi”................................................................................ 66
6.3.18. Màn hình “Running” .................................................................................. 67
6.3.19.

Màn hình “Running với bản đồ”........................................................... 68

6.3.20.

Màn hình “Trang chủ trống”................................................................. 69

6.3.21.

Màn hình “Giày của tôi trống” ............................................................. 70

Chương 7: KẾT LUẬN ................................................................................................ 72
7.1. Kết quả đạt được ................................................................................................ 72
7.2

Đánh giá .......................................................................................................... 72

7.2.1

Thuận lợi .................................................................................................. 72

7.2.2

Khó khăn .................................................................................................. 72

7.2.3


Hướng phát triển ...................................................................................... 73

TÀI LIỆU THAM KHẢO ............................................................................................ 74

~5~


DANH MỤC HÌNH ẢNH
Hình 1: Giao diện ứng dụng StepN .............................................................................. 11
Hình 2: Giao diện ứng dụng CaloRun .......................................................................... 12
Hình 3: Giao diện ứng dụng Genopets ......................................................................... 14
Hình 4: Sơ đồ Use-case tổng quát ................................................................................ 32
Hình 5: Kiến trúc hệ thống ........................................................................................... 43
Hình 6: Sơ đồ liên kết màn hình phía Web .................................................................. 48
Hình 7: Sơ đồ liên kết màn hính phía Mobile .............................................................. 48
Hình 8: Màn hình đăng nhập ở Web ............................................................................ 50
Hình 9: Màn hình kho hàng .......................................................................................... 51
Hình 10: Màn hình chi tiết NFT kho hàng ................................................................... 52
Hình 11: Màn hình chấp thuận ..................................................................................... 53
Hình 12: Màn hình nhập giá ......................................................................................... 53
Hình 13: Màn hình chợ lớn .......................................................................................... 54
Hình 14: Màn hình chợ của tơi ..................................................................................... 55
Hình 15: Màn hình chi tiết NFT chợ ............................................................................ 56
Hình 16: Màn hình đăng nhập phía mobile .................................................................. 57
Hình 17: Màn hình đăng ký tài khoản .......................................................................... 58
Hình 18: Màn hình trang chủ ........................................................................................ 59
Hình 19: Màn hình giày của tơi .................................................................................... 61
Hình 20: Màn hình chi tiết giày .................................................................................... 62
Hình 21: Màn hình hồ sơ cá nhân ................................................................................. 63

Hình 22: Màn hình chỉnh sửa hồ sơ.............................................................................. 64
Hình 23: Màn hình thơng tin về ứng dụng ................................................................... 65
Hình 24: Màn hình ví của tơi ........................................................................................ 66
Hình 25: Màn hình Running ......................................................................................... 67
Hình 26: Màn hình Running với bản đồ ....................................................................... 68
Hình 27: Màn hình trang chủ trống .............................................................................. 69
Hình 28: Màn hình giỏ giày trống ............................................................................... 70

~6~


DANH MỤC BẢNG BIỂU
Bảng 1: Danh sách các Actor ....................................................................................... 32
Bảng 2: Danh sách các Use-case .................................................................................. 33
Bảng 3: Đặc tả Use-case đăng nhập ............................................................................. 34
Bảng 4: Đặc tả Use-case đăng ký ................................................................................. 34
Bảng 5: Đặc tả Use-case kết nối ví ............................................................................... 35
Bảng 6: Đặc tả Use-case quản lý tài khoản .................................................................. 36
Bảng 7: Đặc tả Use-case tìm kiếm, bộ lọc NFT ........................................................... 36
Bảng 8: Đặc tả Use-case mua bán, giao dịch NFT ....................................................... 37
Bảng 9: Đặc tả Use-case xem NFT .............................................................................. 37
Bảng 10: Đặc tả Use-case xem bộ sưu tập NFT ........................................................... 38
Bảng 11: Đặc tả Use-case hoạt động chạy kiếm tiền ................................................... 38
Bảng 12: Đặc tả Use-case trả thưởng khi chạy ............................................................ 39
Bảng 13: Hệ thống Smart Contract .............................................................................. 40
Bảng 14: Struct Sale thuộc RunnMarketplace.............................................................. 40
Bảng 15: Bảng dữ liệu Sales......................................................................................... 41
Bảng 16: Bảng dữ liệu TokenInfo ................................................................................ 42
Bảng 17: Bảng dữ liệu người dùng............................................................................... 42
Bảng 18: Kiến trúc hệ thống ......................................................................................... 44

Bảng 19: Bảng công nghệ sử dụng ............................................................................... 47
Bảng 20: Danh sách các màn hình ............................................................................... 50
Bảng 21: Mơ tả màn hình đăng nhập ở Web ................................................................ 51
Bảng 22: Mơ tả màn hình kho hàng ............................................................................. 51
Bảng 23: Mô tả chi tết NFT kho hàng .......................................................................... 52
Bảng 24: Mơ tả màn hình chấp thuận ........................................................................... 53
Bảng 25: Mơ tả màn hình nhập giá .............................................................................. 54
Bảng 26: Mơ tả màn hình chợ lớn ................................................................................ 54
Bảng 27: Mơ tả màn hình chợ của tơi .......................................................................... 55
Bảng 28: Mơ tả màn hình chi tiết NFT chợ .................................................................. 56
Bảng 29: Mơ tả màn hình đăng nhập phía Mobile ....................................................... 58
Bảng 30: Mơ tả màn hình đăng ký tài khoản................................................................ 59

~7~


Bảng 31: Mơ tả màn hình trang chủ ............................................................................. 60
Bảng 32: Mơ tả màn hình giày của tơi ......................................................................... 62
Bảng 33: Mơ tả màn hình chi tiết giày ......................................................................... 63
Bảng 34: Mơ tả màn hình hồ sơ cá nhân ...................................................................... 64
Bảng 35: Mơ tả màn hình chỉnh sửa hồ sơ ................................................................... 65
Bảng 36: Mơ tả màn hình thơng tin về ứng dụng ......................................................... 66
Bảng 37: Mơ tả màn hình ví của tơi ............................................................................. 67
Bảng 38: Mơ tả màn hình Running .............................................................................. 68
Bảng 39: Mơ tả màn hình chạy với bản đồ................................................................... 69
Bảng 40: Mơ tả màn hình trang chủ trống .................................................................... 70
Bảng 41: Mơ tả màn hình giỏ giày trống ...................................................................... 71

~8~



Chương 1: TỔNG QUAN
1.1.

Tên đề tài
“ Tìm hiểu blockchain và xây dựng ứng dụng NFT theo trào lưu Move to earn”

1.2.

Giới thiệu đề tài

Move To Earn (Di chuyển để kiếm tiền) là hình thức giúp người dùng có thể
kiếm tiền qua các chuyển động hàng ngày như chạy bộ hoặc đi bộ bằng công nghệ cảm
biến, đo lường chuyển động của người dùng và sự kết hợp của các thiết bị điện tử như:
Smart Phone, Smart Watch hay GPS… Các thiết bị sẽ thu thập dữ liệu qua các hoạt
động của của thể từ đó quy ra số liệu đánh giá và sẽ được quy đổi thành các đồng coin
trong các ứng dụng. Trong đó NFT sẽ được ứng dụng thành những đôi giày, và người
dùng sẽ dùng những đôi giày này để kiếm thêm thu nhập cũng như cải thiện sức khoẻ
của bản thân.
RunN là một nền tảng Web3 đa sản phẩm bao gồm: Move-to-Earn, NFT
Marketplace. Đây là một nền tảng giúp bạn có thể vừa chạy bộ mà vừa có thể kiếm
được tiền.
Mục tiêu của RunN hướng tới là xây dựng một nền tảng có nhiều người dùng và
thúc đẩy mọi người hướng tới lối sống khoa học, lành mạnh hơn, cải thiện sức khoẻ và
kết nối cộng đồng.
Đây là một dự án Move-to-Earn nên để bắt đầu có thể tham gia thì bạn cần sỡ
hữu cho mình một đôi giày NFT. Sau khi đã sở hữu NFT thì bạn cần phải tải ứng dụng
của chính nền tảng này và kết nối ví đã mua NFT của mình vào để có thể bắt đầu tham
gia.
Các sản phẩm trong RunN sẽ sử dụng mã thông báo trả thưởng RMT. Điều này

sẽ giúp tăng tiện ích của mã thơng báo, do đó tăng giá trị của chúng trong q trình này.
Mã thông báo RMT được trả thưởng cho người dùng dựa vào hoạt động chạy hàng ngày
của khách hàng. Việc mua bán sử dụng RMT sẽ được cập nhật them trong những tính
năng mới sau này.
Mặc dù chỉ mới xuất hiện hồi năm 2014, NFTs hiện đang được nhiều người biết
đến bởi chúng đang ngày một trở thành cách phổ biến để mua bán các tác phẩm nghệ
thuật số. Một khoản tiền khổng lồ 174 triệu USD đã đượ11c chi cho NFT từ tháng
11/2017. Và đó cũng chính là lí do nhóm tụi em tiến hành tìm hiểu về Blockchain cũng
như xây dựng ứng dung NFT – Move To Earn.
1.3.
-

Khảo sát hiện trạng
Các ứng dụng NFT theo trào lưu Move to earn phổ biến hiện nay:

~9~


1.3.1 StepN
❖ Giới thiệu:
STEPN là một ứng dụng Web3 kết hợp giữa các yếu tố GameFi và SocialFi cho
phép người dùng Move & Earn (di chuyển và kiếm tiền).
Người dùng cần trang bị cho mình NFT Sneaker. Bằng cách đi bộ, chạy bộ hoặc
chạy ngoài trời, người dùng sẽ kiếm được token trong game.
❖ Giao diện:

~ 10 ~


Hình 1: Giao diện ứng dụng StepN


❖ Ưu điểm:
-

Giao diện bắt mắt, màu sắc hài hòa.

-

Hiển thị đầy đủ các thơng tin cần thiết về mỗi đơi giày.

-

Nhiều tính năng để người dụng lựa chọn.

-

Hướng tới lối sống lành mạnh hơn, kết nối người dung với Web3 và bảo vệ
mội trường.

❖ Nhược điểm:
-

Lạm phát xảy ra thường xuyên, chưa có cơ chế burn Token đúng cách.

-

Tình trạng gian lận vẫn hay xảy ra.

-


Trải nghiệm người dùng những lần giao dịch còn chưa được tối ưu.

1.3.2 Calo
❖ Giới thiệu:
Calo Metaverse là một nền tảng sức khỏe – lối sống với các yếu tố Gamefi và
Socialfi để giúp mọi người di chuyển nhiều hơn và vận động. Dựa trên blockchain,
bạn có thể trang bị cho mình một NFT và bắt đầu trị chơi bằng cách di chuyển.

~ 11 ~


Bằng các hoạt động hàng ngày đó, bạn có thể kiếm được nhiều token hơn để sử
dụng trong các trò chơi hoặc thậm chí rút tiền một cách dễ dàng.
Hệ thống blockchain Calo Metaverse cung cấp cho bạn cơ hội tập luyện hàng
ngày ở chế độ thử thách đơn lẻ hoặc thế giới. Ngồi ra, nó cũng ghi lại kết quả luyện
tập của bạn và chuyển động tác di chuyển của bạn thành những phần thưởng có giá
trị.
Bạn có thể giữ mã thông báo và NFT kiếm được để sử dụng trong ứng dụng hoặc
rút tiền mặt để kiếm lợi nhuận. Bạn càng thực hành nhiều, bạn càng nhận được nhiều
phần thưởng; đó là động lực thúc đẩy chúng ta tiến lên phía trước để vận động cơ
thể để có được cả sức khỏe có lợi và thu nhập thụ động.
❖ Giao diện:

Hình 2: Giao diện ứng dụng CaloRun

❖ Ưu điểm:
-

Giao diện bắt mắt, màu sắc hài hòa.


-

Hiển thị đầy đủ các thông tin cần thiết về mỗi đôi giày.

-

Hướng tới lối sống lành mạnh hơn, kết nối người dung với Web3 và bảo vệ mội
trường.

❖ Nhược điểm:
-

Lạm phát xảy ra thường xuyên, chưa có cơ chế burn Token đúng cách.

~ 12 ~


-

Tình trạng gian lận vẫn hay xảy ra.

-

Cịn ít tính năng mới lạ cho người dùng.

-

Trải nghiệm người dùng những lần giao dịch còn chưa được tối ưu.

1.3.3 Genopets

❖ Giới thiệu:
Genopets là một game NFT phát triển theo hình thức Play-to-Earn trên hệ sinh
thái Solana, cho phép người dùng tham gia nuôi dưỡng và phát triển Genopet - linh
vật mà người dùng sở hữu.
Genopets là sự kết hợp của 3 hình thức game như sau: ni dưỡng và tiến hóa
Tamagochi, trải nghiệm các kỳ huấn luyện và chiến đấu với Pokemon, thu thập và
tham gia Animal Crossing. Người chơi cần triệu hồi Genopets và tham gia vào các
Neon Genoverse, sau đó thực hiện các nhiệm vụ và nhận phần thưởng.
Một số nhiệm vụ như khai phá vũ trụ, giải mã các vương quốc ma thuật, và chiến
đấu với người dùng trên khắp thế giới.
❖ Giao diện:

~ 13 ~


Hình 3: Giao diện ứng dụng Genopets

❖ Ưu điểm:
-

Giao diện bắt mắt, màu sắc hài hòa.

-

Hướng tới lối sống lành mạnh hơn, kết nối người dung với Web3 và bảo vệ mội
trường.

❖ Nhược điểm:
-


Lạm phát xảy ra thường xuyên, chưa có cơ chế burn Token đúng cách.

-

Tình trạng gian lận vẫn hay xảy ra.

-

Cịn ít tính năng mới lạ cho người dùng.

-

Trải nghiệm người dùng những lần giao dịch còn chưa được tối ưu.

1.4.

Mục tiêu hướng đến
Mục tiêu của RunN là giúp người dùng vừa rèn luyện sức khỏe, vừa kiếm được

tiền. Để thực hiện được mục tiêu đó, dự án kết hợp công nghệ blockchain và NFT để
cung cấp cho người dùng một ứng dụng Move-to-earn và những đôi giày thể thao

~ 14 ~


NFT. Giúp người dùng có nhiều sự lựa chọn đa dạng về mẫu giày, từ đó tăng sự hứng
thú, tích cực trong việc chạy bộ.

~ 15 ~



Chương 2: CƠ SỞ LÝ THUYẾT
2.1

Blockchain
2.1.1 Giới thiệu
Blockchain là công nghệ chuỗi – khối, cho phép truyền tải dữ liệu một
cách an tồn dựa trên hệ thống mã hóa vơ cùng phức tạp, tương tự như cuốn sổ
cái kế toán của một công ty, nơi mà tiền được giám sát chặt chẽ và ghi nhận mọi
giao dịch trên mạng ngang hàng.
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.
Công nghệ Blockchain – 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

~ 16 ~


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.
2.1.2 Các đặc điểm nổi bật
• Khơng thể làm giả, khơng thể phá hủy các chuỗi Blockchain: theo như lý
thuyết thì chỉ có máy tính lượng tử mới có thể giải mã Blockchain và cơng
nghệ Blockchain biến mất khi khơng cịn Internet trên tồn cầu.
• Bất biến: dữ liệu trong Blockchain khơng thể sửa (có thể sửa nhưng sẽ để lại
dấu vết) và sẽ lưu trữ mãi mãi.
• Bảo mật: Các thơng tin, dữ liệu trong Blockchain được phân tán và an toàn
tuyệt đối.
• Minh bạch: Ai cũng có thể theo dõi dữ liệu Blockchain đi từ địa chỉ này tới
địa chỉ khác và có thể thống kê tồn bộ lịch sử trên địa chỉ đó.
• Hợp đồng thơng minh: là hợp đồng kỹ thuật số được nhúng vào đoạn code
if-this-then-that (IFTTT), cho phép chúng tự thực thi mà không cần bên thứ
ba.
2.1.3 Cách thức hoạt động
Ứng dụng được biết đến và thảo luận nhiều nhất về cơng nghệ Blockchain
chính là đồng tiền điện tử. Bitcoin là một đơn vị tiền tệ kỹ thuật số với mã là
BTC, cũng giống như đô la Mỹ bản thân nó khơng mang giá trị, nó chỉ có giá trị
bởi vì có một cộng đồng đồng ý sử dụng nó làm đơn vị giao dịch hàng hóa và
dịch vụ.

Để theo dõi số lượng Bitcoin mà mỗi người sở hữu trong các tài khoản
nhất định và theo dõi các giao dịch phát sinh từ đó thì chúng ta cần đến một cuốn
sổ kế toán, trong trường hợp này nó chính là Blockchain và đây thực tế là một
tệp kỹ thuật số theo dõi tất cả các giao dịch Bitcoin.

~ 17 ~


Tệp sổ cái này không được lưu trữ trong một máy chủ trung tâm, như
trong một ngân hàng hoặc trong một trung tâm dữ liệu mà ngược lại nó được
phân phối trên tồn thế giới thơng qua một mạng lưới các máy tính ngang hàng
với vai trị lưu trữ dữ liệu và thực thi các tính tốn. Mỗi máy tính này đại diện
cho một “nút” của mạng lưới Blockchain và mỗi nút đều có một bản sao của tệp
sổ cái này.
Ngun lý mã hóa:
Trên thực tế, cuốn sổ cái ln được duy trì bởi các máy tính trong mạng
ngang hàng được kết nối với nhau. Vì thế, nó sẽ có một số điểm khác biệt:
• Trong hệ thống ngân hàng, chúng ta chỉ biết các giao dịch và số dư tài
khoản của riêng mình thì trên Blockchain của bitcoin bạn có thể xem các
giao dịch của tất cả mọi người.
• Mạng lưới Bitcoin là mạng lưới phân tán không cần bên thứ ba đóng vai
trị trung gian xử lý giao dịch.
• Hệ thống Blockchain được thiết kế theo cách khơng yêu cầu sự tin cậy và
bảo đảm bởi độ tin cậy có được thơng qua các hàm mã hóa tốn học đặc
biệt.
Để có thể thực hiện các giao dịch trên Blockchain, bạn cần một phần mềm
sẽ cho phép bạn lưu trữ và trao đổi các đồng Bitcoin của bạn gọi là ví tiền điện
tử. Ví tiền điện tử này sẽ được bảo vệ bằng một phương pháp mã hóa đặc biệt đó
là sử dụng một cặp khóa bảo mật duy nhất: khóa riêng tư (private key) và khóa
cơng khai (public key).

Nếu một thơng điệp được mã hóa bằng một khóa cơng khai cụ thể thì chỉ
chủ sở hữu của khóa riêng tư là một cặp với khóa cơng khai này mới có thể giải
mã và đọc nội dung thơng điệp.
Khi mã hóa một yêu cầu giao dịch bằng khóa riêng tư, có nghĩa là bạn
đang tạo ra một chữ ký điện tử được các máy tính trong mạng lưới Blockchain
sử dụng để kiểm tra chủ thể gửi và tính xác thực của giao dịch. Chữ ký này là

~ 18 ~


một chuỗi văn bản và là sự kết hợp của yêu cầu giao dịch và khóa riêng tư của
bạn.
Nếu một ký tự đơn trong thông điệp yêu cầu giao dịch này bị thay đổi thì
chữ ký điện tử sẽ thay đổi theo. Vì thế, hacker khó có thể thay đổi yêu cầu giao
dịch của bạn hoặc thay đổi số lượng Bitcoin mà bạn đang gửi.
Để gửi Bitcoin (BTC), bạn cần chứng minh rằng bạn sở hữu khóa riêng
tư của một chiếc ví điện tử cụ thể bởi bạn cần sử dụng nó để mã hóa thơng điệp
u cầu giao dịch. Sau khi tin nhắn của bạn đã được gửi đi và được mã hóa thì
bạn khơng cần phải tiết lộ khóa riêng tư của bạn nữa.
Quy tắc của sổ cái
Mỗi nút trong Blockchain đều đang lưu giữ một bản sao của sổ kế toán.
Do vậy, mỗi nút đều biết số dư tài khoản của bạn là bao nhiêu. Hệ thống
Blockchain chỉ ghi lại mỗi giao dịch được yêu cầu chứ không hề theo dõi số dư
tài khoản của bạn.
Để biết số dư trên ví điện tử của mình thì bạn cần xác thực và xác nhận
tất cả các giao dịch đã diễn ra trên mạng lưới mà có liên quan tới ví điện tử của
bạn.
Việc xác minh “số dư” này được thực hiện nhờ các tính tốn dựa vào liên
kết đến các giao dịch trước đó.
Nguyên lý tạo khối

Các giao dịch sau khi được gửi lên trên mạng lưới Blockchain sẽ được
nhóm vào các khối và các giao dịch trong cùng 1 khối (block) được coi là đã xảy
ra cùng thời điểm. Các giao dịch chưa được thực hiện trong 1 khối được coi là
chưa được xác nhận.
Mỗi nút có thể nhóm các giao dịch với nhau thành một khối và gửi nó vào
mạng lưới như một hàm ý cho các khối tiếp theo được gắn vào sau đó. Bất kỳ
nút nào cũng có thể tạo ra một khối mới. Vậy, câu hỏi đặt ra là: hệ thống sẽ đồng
thuận với khối nào? khối nào sẽ là khối tiếp theo?

~ 19 ~


Để được thêm vào Blockchain, mỗi khối phải chứa một đoạn mã đóng vai
trị như một đáp án cho một vấn đề toán học phức tạp được tạo ra bằng hàm mã
hóa băm khơng thể đảo ngược.
Cách duy nhất để giải quyết vấn đề toán học như vậy là đoán các số ngẫu
nhiên, những số khi mà kết hợp với nội dung khối trước tạo ra một kết quả đã
được hệ thống định nghĩa. Điều này nhiều khi có thể mất khoảng một năm cho
một máy tính điển hình với một cấu hình cơ bản có thể đốn đúng các con số đáp
án của vấn đề toán học này.
Mạng lưới quy định mỗi khối được tạo ra sau một quãng thời gian là 10
phút một lần, bởi vì trong mạng lưới ln có một số lượng lớn các máy tính đều
tập trung vào việc đoán ra dãy số này. Nút nào giải quyết được vấn đề toán học
như vậy sẽ được quyền gắn khối tiếp theo lên trên chuỗi và gửi nó tới tồn bộ
mạng lưới.
Vậy điều gì sẽ xảy ra nếu hai nút giải quyết cùng một vấn đề cùng một
lúc và truyền các khối kết quả của chúng đồng thời lên mạng lưới? Trong trường
hợp này, cả hai khối được gửi lên mạng lưới và mỗi nút sẽ xây dựng các khối kế
tiếp trên khối mà nó nhận được trước tiên.
Tuy nhiên, hệ thống Blockchain luôn yêu cầu mỗi nút phải xây dựng trên

chuỗi khối dài nhất mà nó nhận được. Vì vậy, nếu có sự mơ hồ về việc block nào
là khối cuối cùng thì ngay sau khi khối tiếp theo được giải quyết thì mỗi nút sẽ
áp dụng vào chuỗi dài nhất.
Do xác suất việc xây dựng các block đồng thời là rất thấp nên hầu như
khơng có trường hợp nhiều khối được giải quyết cùng một lúc và nhiều lần tạo
ra các khối nối đuôi khác nhau. Do đó, tồn bộ chuỗi-khối sẽ nhanh chóng ổn
định và hợp nhất lại khi mà mọi nút đều đồng thuận.
2.1.4 Ứng dụng thực tiễn
Một số ngành công nghiệp mà cơng nghệ Blockchain có thể tác động đến
như:

~ 20 ~


• Công nghệ ô tô Automotive (Automotive)
• Chế tạo (Manufacturing)
• Cơng

nghệ,

truyền

thơng



viễn

thơng


(Tech,

media

&

Telecommunications)
• Dịch vụ tài chính (Financial Services)
• Nghệ thuật & Giải trí (Art & Recreation)
• Chăm sóc sức khỏe (Healthcare)
• Bảo hiểm (Insurance)
• Bán lẻ (Retail)
• Khu vực cơng (Public Sector)
• Bất động sản (Property)
• Nơng nghiệp (Agricultural)
• Khai thác (Mining)
• Vận tải và Logistics (Transport & Logistics)
• Cơng trình hạ tầng kỹ thuật (Utility)
2.2

Smart contract
2.2.1 Giới thiệu
Smart contract (Hợp đồng thơng minh) được tự động hóa và tự giải thích
dựa trên các điều kiện định trước được đặt trên hợp đồng. Vì blockchain là cơng
nghệ sổ lệnh phân tán (DLT) cho phép dữ liệu được lưu trữ trên toàn cầu trên
các máy chủ khác nhau, nên nó chủ yếu dựa vào các cơ sở dữ liệu này để xác
nhận giao dịch. Do đó, các smart contract đang hấp dẫn để loại bỏ chi phí quản
lý.
Smart contract đại diện cho các điều khoản và điều kiện được viết bằng
mã tự động chuyển tiền từ bên này sang bên khác sau khi các yêu cầu xác định

trước của hợp đồng được đáp ứng. Ví dụ: khi cả hai bên đồng ý về việc trao đổi
tiền điện tử, giao dịch sẽ chuyển tiếp với sổ lệnh blockchain thông qua giao thức
được ràng buộc trên smart contract.

~ 21 ~


Ngày nay, các smart contract vẫn phổ biến trong ngành công nghiệp tiền
điện tử, chủ yếu để trao đổi tiền điện tử. Nhưng nó khơng chỉ giới hạn ở tiền điện
tử và trên thực tế, nhiều công ty bảo hiểm và bất động sản đang áp dụng giao
thức tiêu chuẩn này để có khả năng mở rộng tốt hơn với mức giá rẻ hơn. Tóm
lại, smart contract là một thành phần thiết yếu cho nhiều nền tảng. Đó chính là
lý do tại sao điều quan trọng là phải hiểu rõ smart contract là gì và cách chúng
hoạt động.
2.2.2 Đặc điểm
• Quyền tự chủ: Người dùng có tồn quyền kiểm sốt thỏa thuận của họ. Bản
thân smart contract là một đảm bảo loại trừ khả năng bị can thiệp bởi bất kỳ
bên thứ ba nào khác (nhà môi giới, luật sư, cơng chứng viên, v.v.).
• Bảo mật: Mục đích thiết yếu là đảm bảo an tồn cho các giao dịch. Thơng
tin được nhập vào chuỗi khối khơng thể bị xóa hoặc sửa đổi. Ngay cả khi một
trong các bên vi phạm các điều khoản của thỏa thuận, thì thỏa thuận vẫn
nguyên vẹn.
• Tốc độ: Xử lý tài liệu mất nhiều thời gian nếu được thực hiện theo cách thủ
công và điều này làm chậm q trình hồn thành nhiệm vụ. Smart contract
giảm thiểu sự tham gia của cá nhân và tăng hiệu quả tổng thể.
• Tin cậy: Những người tham gia giao dịch không cần phải tin tưởng lẫn nhau
hoặc các bên thứ ba. Mạng phi tập trung cung cấp môi trường đảm bảo hồn
thành nhiệm vụ mà khơng gặp sự cố hoặc chậm trễ.
• Hiệu quả về chi phí: Nó có thể loại bỏ chi phí giao dịch q cao. Và có thể
do loại bỏ các trung gian khỏi quy trình và hỗ trợ thỏa thuận.

• Độ chính xác: Q trình được tự động hóa, do đó khả năng xảy ra sai sót của
con người được giảm thiểu đáng kể.
2.2.3 Cách thức hoạt động
Smart contract đề cập đến một thuật tốn máy tính được thiết kế để hình
thành, kiểm sốt và cung cấp thông tin về chủ sở hữu nội dung. Nó thực sự là
một chương trình chạy trên chuỗi khối Ethereum để tạo điều kiện thuận lợi, xác
minh hoặc thực hiện các giao dịch đáng tin cậy một cách độc lập. Để biết cách

~ 22 ~


hoạt động như thế nào, trước tiên, chúng ta phải hiểu smart contract bao gồm
những gì.
• Chữ ký. Hai hoặc nhiều bên phải đồng ý để tiếp tục với các điều khoản
và điều kiện được đề xuất.
• Xác định rõ chủ thể của hợp đồng. Chủ thể phải nằm trong bối cảnh
của mơi trường smart contract.
• Cụ thể với các điều khoản. Các điều khoản cần phải chính xác và được
mơ tả chi tiết. Ví dụ: smart contract của Ethereum dựa trên ngơn ngữ lập
trình Solidity và Serpent, do đó, thỏa thuận phải theo các thuật ngữ toán
học cụ thể tương thích với ngơn ngữ chính xác.
Khi các u cầu này được đặt ra, bạn có thể tham gia smart contract dựa
trên blockchain. Tuy nhiên, thỏa thuận này phải được đàm phán trước khi các
điều khoản được đưa vào thực tế trong blockchain.
Thông thường, một smart contract sẽ tự động kích hoạt một hành động
dựa trên thỏa thuận giữa hai người dùng duy trì trên blockchain, là khi người
bán có ý định bán BTC, smart contract sẽ điều chỉnh việc chuyển giao cho đến
khi BTC được đổi thành công từ người này sang người khác. Khi điều đó xảy
ra, tiền sẽ được giải phóng và sẽ khơng có bất kỳ thay đổi nào. Và tất cả các
thông tin về giao dịch sẽ được liệt kê và lưu trữ trong cơ sở dữ liệu công khai.

2.3

Ethereum
2.3.1 Giới thiệu
Ethereum hoạt động trên cơ sở mạng Blockchain và được cấu thành bởi
các máy tính hay cịn gọi là node. Để tham gia vào mạng lưới, các node cần cài
đặt phần mềm Ethereum Client – đồng nghĩa với việc các node sẽ phải chạy
chương trình máy ảo EVM để thực thi các Smart Contract.
Khi các nhà phát triển muốn xây dựng ứng dụng phi tập trung (dapps)
trên Ethereum, họ cần phải triển khai các Smart Contract thơng qua ngơn ngữ
lập trình Solidity. Và để kích hoạt việc thực thi các Smart Contract, mạng lưới

~ 23 ~


cần đến một lượng phí gọi là “gas”. Phí gas trong mạng Ethereum sẽ được
thanh toán bằng Ether (ETH).
Khi giao dịch được thực thi, đây là lúc cần đến việc xác nhận giao dịch
đó có hợp lệ hay khơng. Trong mạng Ethereum thành phần đảm nhiệm việc xác
nhận giao dịch này là Miner Node. Để mạng lưới vận hành độc lập, nhất quán
thì các Miner Node phải tuân theo luật đồng thuận là Consensus (cơ chế đồng
thuận). Ethereum sử dụng Consensus tên là Proof of Work (PoW) – các Miner
Node phải chứng minh được cơng việc họ đã hồn thành và thơng báo đến tồn
mạng lưới. Sau đó, các Miner Node khác trong mạng lưới sẽ xác nhận xem
bằng chứng này là có hợp lệ hay khơng. Khi bằng chứng được thông qua, dữ
liệu giao dịch sẽ được ghi vào Blockchain của Ethereum và không thể thay đổi.
2.3.2 Các thành phần trong Ethereum
Tài khoản: trạng thái của Ethereum bao gồm nhiều đối tượng nhỏ (các tài
khoản trực tuyến) có thể tương tác với nhau thông qua cơ chế truyền message.
Bất kỳ tài khoản nào cũng có một định danh duy nhất (address) là 160 bit.

Ethereum có 2 loại tài khoản:
• Tài khoản người dùng (EOA) được quản lý bởi private key và khơng có
chứa mã nguồn.
• Tài khoản hợp đồng chứa mã nguồn và được quản lý bởi mã nguồn trong
hợp đồng, tài khoản hợp đồng chỉ có address mà khơng có private key
như tài khoản người dùng.
Trạng thái của tài khoản: bao gồm 4 thành phần có trong bất kỳ tài khoản nào:
• nonce: thể hiện số lượng giao dịch đã được gửi từ tài khoản nếu tài khoản
là tài khoản người dùng, là số lượng hợp đồng được tạo nếu tài khoản là
tài khoản hợp đồng.
• balance: số lượng wei tài khoản đang có (1 ETH = 1018 wei).
• storageRoot: giá trị băm của phần gốc (root) của cây Merkle Storage. Cây
Merkle Storage chứa giá trị băm của các biến có trong Storage của tài
khoản và theo mặc định là trống.

~ 24 ~


×