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ư
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
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
Trang 2LỜ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ẩmtrong thế giới thực như nghệ thuật, âm nhạc, vật phẩm game, và video NFT được muabán trực tuyến dưới hình thức thanh toán bằng tiền mã hóa (cryptocurrency) NFTthườ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òngọ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ườibiế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ẩmnghệ thuật số Một khoản tiền khổng lồ 174 triệu USD đã được chi cho NFT từ tháng11/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áchoạt động của của thể từ đó quy ra số liệu đánh giá và sẽ được quy đổi thành các đồngcoin 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ứckhoẻ của bản thân
Trang 3LỜ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ô khoaCô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ópnhiều ý kiến quý báu giúp nhóm em hoàn thành tốt báo cáo môn học của mình Trongthờ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ảngtí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 để hoàn thành một báocá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ỏinhữ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 hoàn thiện những kiến thức mà nhóm em đã học tập và là hành trang kiếnthứ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ô!
Trang 4MỤ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
Trang 52.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
Trang 66.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
Trang 7DANH 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
Trang 8Bả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
Bảng 31: Mô tả màn hình trang chủ 60
Trang 9Bả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
Trang 10Chương 1: TỔNG QUAN1.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áchoạt động của của thể từ đó quy ra số liệu đánh giá và sẽ được quy đổi thành các đồngcoin 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ứckhoẻ 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, NFTMarketplace Đâ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ụngcủ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 thamgia
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 quá trìnhnày Mã thông báo RMT được trả thưởng cho người dùng dựa vào hoạt động chạyhà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 trongnhữ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ườibiế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ẩmnghệ 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:
Trang 12Hì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
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
Trang 13Bằ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àngngày ở chế độ thử thách đơn lẻ hoặc thế giới Ngoà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ụnghoặ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
Trang 14- 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
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ệ sinhthái Solana, cho phép người dùng tham gia nuôi dưỡng và phát triển Genopet - linhvậ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: nuôi dưỡng và tiến hóaTamagochi, 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ácNeon 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:
Trang 15Hì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 đượctiền Để thực hiện được mục tiêu đó, dự án kết hợp công nghệ blockchain và NFT để
Trang 16NFT 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ộ.
Trang 17Chương 2: CƠ SỞ LÝ THUYẾT2.1 Blockchain
Blockchain là công nghệ chuỗi – khối, cho phép truyền tải dữ liệu mộtcách an toà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ậnmọ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ênkế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, toà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 độnglự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úttham gia Vì vậy, muốn tấn công được vào hệ thống Blockchain này cần chiphí 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 PrivateBlockchain, cho nên thời gian xác nhận giao dịch khá nhanh vì chỉ cần mộtlượng nhỏ thiết bị tham gia xác thực giao dịch Ví dụ: Ripple là một dạng
Trang 18Private 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ụngBlockchain cho riêng mình
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 toà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ê toà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
Ứ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ịchhà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ảnnhất định và theo dõi các giao dịch phát sinh từ đó thì chúng ta cần đến mộtcuố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
Trang 19Tệ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ó đượcphân phối trên toàn thế giới thông qua một mạng lưới các máy tính ngang hàngvới vai trò lưu trữ dữ liệu và thực thi các tính toán Mỗi máy tính này đại diệncho một “nút” của mạng lưới Blockchain và mỗi nút đều có một bản sao củatệp sổ cái này.
Mạng lưới Bitcoin là mạng lưới phân tán không cần bên thứ ba đóng vaitrò 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 toá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ầnmề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 đặcbiệ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à
Trang 20mộ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ủabạn.
Nếu một ký tự đơn trong thông điệp yêu cầu giao dịch này bị thay đổithì chữ ký điện tử sẽ thay đổi theo Vì thế, hacker khó có thể thay đổi yêu cầugiao 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ệpyê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ốngBlockchain 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ậntấ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ủabạn
Việc xác minh “số dư” này được thực hiện nhờ các tính toán dựa vàoliê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ẽ đượcnhó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 đượccoi 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?
Trang 21Để được thêm vào Blockchain, mỗi khối phải chứa một đoạn mã đóngvai 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ếtquả đã được hệ thống định nghĩa Điều này nhiều khi có thể mất khoảng mộtnă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ể đoán đúng cáccon 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à 10phút một lần, bởi vì trong mạng lưới luôn 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ánhọ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 toà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ộtlúc và truyền các khối kết quả của chúng đồng thời lên mạng lưới? Trongtrườ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áckhố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ựngtrê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ệcblock 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 đó, toà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
Một số ngành công nghiệp mà công nghệ Blockchain có thể tác động đến như:
Trang 22 Công nghệ ô tô Automotive (Automotive)
Chế tạo (Manufacturing)
Công nghệ, truyền thông và 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)
Vận tải và Logistics (Transport & Logistics)
Công trình hạ tầng kỹ thuật (Utility)
2.2 Smart contract
Smart contract (Hợp đồng thông minh) được tự động hóa và tự giải thíchdự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ầutrê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 địnhtrước của hợp đồng được đáp ứng Ví dụ: khi cả hai bên đồng ý về việc trao đổitiền điện tử, giao dịch sẽ chuyển tiếp với sổ lệnh blockchain thông qua giaothức được ràng buộc trên smart contract
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
Trang 23đ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ụnggiao 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.
Quyền tự chủ: Người dùng có toàn quyền kiểm soá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ởibấ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 toà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ả khimộ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ậnvẫ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 quá trình hoàn thành nhiệm vụ Smart contractgiả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ảohoà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 quá 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: Quá 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ể
Smart contract đề cập đến một thuật toán máy tính được thiết kế để hình thành, kiểm soá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ácminh 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 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ì
Trang 24 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ậptrì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 yê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
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 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)
Trang 25Khi 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ácnhậ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ọ đã hoàn thành và thông báo đến toànmạ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
Tài khoản: trạng thái của Ethereum bao gồm nhiều đối tượng nhỏ (cáctài khoản trực tuyến) có thể tương tác với nhau thông qua cơ chế truyềnmessage Bất kỳ tài khoản nào cũng có một định danh duy nhất (address) là 160bit 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ồntrong hợp đồng, tài khoản hợp đồng chỉ có address mà không có privatekey 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àikhoản là tài khoản người dùng, là số lượng hợp đồng được tạo nếu tàikhoả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ủatài khoản và theo mặc định là trống
codeHash: giá trị băm của mã hợp đồng ở dạng bytecode trong EVM.Đối với các tài khoản người dùng thì trường codeHash là chuỗi trống
Trang 26Trạng thái toàn cục của Ethereum: bao gồm ánh xạ giữa các address vàtrạng thái tài khoản Ánh xạ này được lưu trữ trong một cấu trúc dữ liệu đượcgọi là cây Merkle.
Gas và phí giao dịch: mọi tính toán xảy ra trên mạng Ethereum đều phảitrả phí, khoản phí này được trả theo mệnh giá gọi là “gas” Gas là đơn vị được
sử dụng đề đo lường các khoản phí cần thiết cho một tính toán cụ thể GasPrice là lượng ETH bạn sẵn sàng chi cho mỗi đơn vị gas Với mỗi giao dịch,người gửi đặt Gas Limit và Gas Price 2 thông số này thể hiện số lượng gas màngười dùng sẵn sàng chi trả tối đa cho một giao dịch
Giao dịch: các giao dịch xảy ra giữa các tài khoản khác nhau là lúc trạngthái toàn cục của Ethereum được chuyển từ trạng thái này sang trạng thái khác
Có 2 loại giao dịch là message calls và contract creator Tất cả các giao dịch cóchứa các thành phần sau:
nonce: số lượng giao dịch đã được gửi bởi người gửi (giao dịch hợp lệ)
gasPrice: số wei phải trả cho 1 gas
gasLimit: số gas tối đa mà người gửi sẵn sàng trả cho giao dịch
to: địa chỉ tài khoản nhận giao dịch
value: số wei mà tài khoản người gửi gửi cho tài khoản nhận
v, r, s: các thông số được tạo ra từ thuật toán ECDSA giúp cho các nodetrong mạng có thể xác thực chữ ký số của người gửi
init (chỉ có trong giao dịch tạo hợp đồng): một đoạn mã EVM được sửdụng để khởi tạo tài khoản hợp đồng mới init chỉ được chạy 1 lần vàsau đó bị loại bỏ
data: dữ liệu đầu vào (tham số) của message calls
Block: tất cả các giao dịch được nhóm lại với nhau thành các block trênmạng Một Blockchain chứa một chuỗi các block như vậy được nối với nhau.Trong Ethereum, một block bao gồm:
Trang 27Block header: bao gồm parentHash, ommersHash, beneficiary,stateRoot, transactionRoot, receipts, logsBloom, difficulty, number, gasLimit,gasUsed, timestamp, extraData, mixHash và nonce
Thông tin về tất cả các giao dịch được gom trong block đó
gasLimit phải bằng hoặc lớn hơn intrinsic gas (lượng gas mà giao dịch
sử dụng trước khi chạy bất cứ đoạn mã nào) được sử dụng trong giaodịch
2.4 Token ERC-20
ERC20 là viết tắt của cụm từ Tiếng Anh “Ethereum Request for Comment” Đây là tên gọi của một bộ các tiêu chuẩn mà những Token được phát triển trên nền tảng Blockchain của Ethereum phải tuân thủ Trên nền tảng Ethereum, để tạo ra các Token bạn phải thiết lập hợp đồng thông minh (Smart Contract) lập trình theo tiêu chuẩn ERC20
Ngày 19 tháng 11 năm 2015, tiêu chuẩn ERC20 được đề xuất phát triển bởi Fabian Vogelsteller Trong đó, một danh sách chung các quy tắc mà 1 Token Ethereum phải thực hiện được thiết lập nhằm giúp các nhà phát triển có thể lập trình các Token mới để hoạt động trong hệ sinh thái của Ethereum Vào năm 2017, Token ERC20 trở nên phổ biến hơn khi các công ty Startup huy động vốn thông qua ICO (phát hành Coin lần đầu)
Trang 28Các Token ERC20 có tính Fungible – mỗi đơn vị có thể hoán đổi cho nhau Nếu bạn sở hữu một BinanceAcademyToken, không quan trọng Token đó của bạn là loại nào, bạn vẫn có thể trao đổi chúng một cách thoải mái với các Token của người khác mà không làm thay đổi giá trị, chức năngcủa Token, chức năng của chúng tương tự như tiền mặt và vàng.
Điều này trở thành điểm cộng nếu Token của bạn hướng đến mục tiêu trở thành một loại tiền tệ Với đặc tính Fungible của ERC20, các Tokenriêng lẻ có thể hoán đổi cho nhau, không làm hỏng đi mục đích sử dụng làmtiền tệ của chúng
Tính linh hoạt:
Các Token ERC20 có khả năng tùy biến cao và dễ dàng điều chỉnh trên nhiều ứng dụng khác nhau Ví dụ như bạn có thể sử dụng chúng làm đơn vị tiền tệ trong game, điểm thưởng tại các chương trình khách hàng trung thành, dưới dạng những vật phẩm sưu tầm kỹ thuật số (NFT) hoặc thậm chí là đại diện cho tác phẩm nghệ thuật và quyền sở hữu
Tính phổ biến:
Trong ngành công nghệ tiền mã hóa, ERC20 vô cùng phổ biến và có thể sử dụng như một kế hoạch chi tiết Nhờ đó, các Token mới có thể lên sàn và được ví điện tử hỗ trợ một cachs tự động, không phải xây dựng nền tảng phù hợp với từng Token Bên cạnh đó, ERC20 còn giúp cho việc tạo racác Token mới trở nên dễ dàng và cũng là lý do tại sao Ethereum trở thành nền tảng phổ biến nhất cho các chiến dịch ICO
Token ERC20 có mặt trên hầu hết các sàn giao dịch tiền điện tử sở hữu tính thanh khoản cao, người dùng có thể sử dụng mua, bán, trao đổi bất
Trang 29 Nguy cơ lừa đảo cao, dễ bị mạo danh
Token ERC20 được tạo ra rất đơn giản nên điều này dễ khiến cho nhiều kẻ gian lợi dụng nhằm tạo ra các Token không có giá trị, mạo danh đểlừa đảo nhiều nhà đầu tư khác Do đó, bạn nên kiểm tra thật kỹ địa chỉ hợp đồng thông minh của Token để tránh mua nhầm Token giả
Bên cạnh đó, một số Token ERC20 dễ bị phá hủy khi đang giao dịch cho một hợp đồng thông minh thay vì sử dụng đồng ETH Ước tính đã có 3 triệu USD bị tổn thất vì tình trạng này
2.5 NFT – Non-fungible Token
NFT là viết tắt của Non-Fungible Token, nghĩa là các Token có tính độcnhất và không thể thay thế Mỗi NFT có thể hoạt động như là “bằng chứng xác thực” và “quyền sở hữu” trong các lĩnh vực liên quan đến kỹ thuật số Tính ưu việt này có được là nhờ ứng dụng công nghệ Blockchain, trong đó mỗi đơn vị
dữ liệu mã hóa được lưu trữ trên Blockchain giúp đại diện cho một tài sản nhất định Những tài sản này có thể là “tài sản ảo” nhưng đồng thời cũng có thể là
“phiên bản mã hóa” của một tài sản nào đó trong thế giới thực
Để dễ hình dung hơn, thông thường đối với các Fungible Token, chúng
ta có thể hoàn toàn dễ dàng trao đổi với người khác vì giá trị của chúng là tương đương nhau Tuy nhiên với NFT, mỗi tài sản như bức tranh, nhân vật game, … là duy nhất và không thể thay thế được, do đó tạo giá trị độc nhất cho các tài sản này
Tính độc nhất: Mỗi NFT là độc nhất và hoàn toàn có thể phân biệt so với
các NFT khác dù có bị sao y hệt
Tính vĩnh cửu: Các NFT có thể tồn tại vĩnh viễn cùng với các thông tin
liên quan đến NFT đó như thời điểm phát hành, hình ảnh, âm thanh của NFT, …
Trang 30 Có thể được lập trình: Hiểu đơn giản NFT là dòng code trên nền tảng
Blockchain Do đó, chúng ta luôn luôn có thể xác minh được tác giả cũng như thông tin của NFT
Tính sở hữu: Những người sở hữu NFT có thể toàn quyền quyết định sở
hữu và sử dụng NFT đó
Nhờ những tính chất đặc biệt trên mà NFT đã và đang được ứng dụng rất đa dạng vào nhiều lĩnh vực như tác phẩm nghệ thuật kỹ thuật số, đồ sưu tầm, vật phẩm trong trò chơi, NFT thể thao,…
Nghệ thuật: Với NFT, các tác phẩm nghệ thuật có thể được chuyển
thành tệp tài sản số và gắn với Token trên nền tảng Blockchain, giúp chohoạt động mua bán các tác phẩm này có thể diễn ra một cách dễ dàng, tin cậy Điều này đang tạo một cuộc cách mạng trong ngành nghệ thuật
vì nó giúp ích các nghệ sĩ bảo vệ bản quyền cho các tác phẩm của mình, điều mà trước giờ vẫn luôn gây tranh cãi trong thế giới thực
Gaming: NFT được ứng dụng giúp người chơi có thể thực sự sở hữu
các vật phẩm, nhân vật trong game, đồng thời trao đổi mua bán với ít rủi
ro hơn Đối với các trò chơi truyền thống, nhà phát hành cung cấp và bán các vật phẩm trong game Để sở hữu các vật phẩm, người chơi cần nạp tiền vào để mua chúng nhưng quyền sở hữu thực tế là của nhà phát hành (vật phẩm ảo) Đối với các game trên Blockchain có ứng dụng NFT, vật phẩm của người chơi được gắn với một mã dữ liệu, có thể dễ dàng trao đổi cho bất cứ ai để thu tiền
Số hoá tài sản thật: Trong tương lai, NFT được kỳ vọng có thể ứng
dụng rộng rãi vào tất cả các lĩnh vực đời sống, mã hóa tất cả tài sản, quyền sở hữu trí tuệ, … Các tài sản như đất đai có thể được đưa lên Blockchain, mã hóa quyền sở hữu dưới dạng NFT, giúp giải quyết vấn
đề số đỏ giả trong bất động sản Các vé tham gia sự kiện có thể được mãhóa để không bị làm giả Các tài sản khác có giá trị cao cũng có thể được Token hóa để làm bằng chứng quyền sở hữu, …
Trang 31 Phát triển nội dung số: Với sự bùng nổ của các nội dung số hóa như
hiện nay, NFT có thể được ứng dụng để giúp mã hóa cho các sản phẩm như âm nhạc, các icons và memes, … Từ đó nâng cao được giá trị của các tài sản số này thông qua việc xác thực quyền sở hữu Một ví dụ điển hình cho ứng dụng này đó là Tweet đầu tiên của người sáng lập Twitter
đã được bán với giá 2.5 triệu đô
2.6 Nextjs
NextJs được hiểu là một framework (hay còn gọi là khung phần mềm) dùng để phát triển các ứng dụng React, và nó được phát triển bởi Zeit Nhờ có NextJs mà các lập trình viên mới có thể dễ dàng tạo ra được một ứng dụng React theo tư tưởng Isomorphic, có bao gồm chức năng Server Side Redering (SSR)
NextJs được xây dựng dựa trên thư viện React, điều đó có nghĩa là các ứng dụng NextJs sử dụng core của React và chỉ đưa thêm các tính năng bổ sung Và việc ứng dụng SSR được triển khai đã cho phép máy chủ có quyền truy cập tất cả các dữ liệu được yêu cầu và xử lý JavaScript cùng nhau để có thể hiển thị trang Sau đó, trang
sẽ được gửi lại toàn bộ cho trình duyệt và ngay lập tức nó được hiển thị SSR chỉ cho phép các trang web load trong thời gian rất ngắn và đặc biệt là tăng trải nghiệm người dùng với khả năng phản hồi nhanh hơn
2.7 React Native
React Native là các đoạn code đã được viết sẵn (framework) do công ty công nghệ Facebook phát triển Các lập trình viên React Native là người sử dụng những framework này để phát triển nên các hệ thống, nền tảng ứng dụng trên các hệ điều hành như IOS và Android Ngôn ngữ lập trình được sử dụng nhiều nhất là Javascript
Sự ra đời của React Native đã giải quyết được bài toán về hiệu năng và sự phứctạp khi trước đó người ta phải dùng nhiều loại ngôn ngữ native cho mỗi nền tảng di động Chính vì thế lập trình React Native sẽ giúp tiết kiệm được phần lớn thời gian và công sức khi thiết kế và xây dựng nên một ứng dụng đa nền tảng Javascript phù hợp với rất nhiều nền tảng khác nhau
Trang 32Solidity là một ngôn ngữ lập trình để tạo nên các smart contract (hợp đồngthông minh) trên nền tảng Ethereum Đây được xem là một nền tảng hợp đồng thôngminh phi tập trung hàng đầu trong lĩnh vực crypto Cơ bản có thể xây dựng NFTmarketplace (chợ nghệ thuật kỹ thuật số), Metaverse, sàn giao dịch phi tập trung(DEX), sàn tài chính phi tập trung (DeFi) trên Ethereum.
Sau khi được đề xuất bởi Gavin Wood (đồng sáng lập Ethereum) vào năm
2014 Ngôn ngữ này được những người ở dự án Ethereum phát triển
Solidity là một ngôn ngữ lập trình cấp cao, đối tượng sử dụng của ngôn ngữSolidity là những lập trình viên muốn phát triển các ứng dụng trên Ethereum Bằngcách sử dụng sự kết hợp lý giữa chữ cái và số Solidity giúp các developer viết chươngtrình dễ dàng hơn
Đây là ngôn ngữ lập trình hướng contract thuộc hệ sinh thái của Ethereum.Nhưng với câu lệnh và cú pháp gần giống như trên các ngôn ngữ lập trình cơ bản phổbiến (C#, Java, PHP…)
Solidity được sử dụng để tạo hợp đồng thông minh trên Ethereum, nó cho phépnhiều trường hợp sử dụng khác nhau như:
Mint các Fungible, Non-Fungible token
Tạo ra các thị trường cho vay phi tập trung cho các Fungible token
Tạo ra các thị trường trao đổi Non-Fungible token
Sau khi các developer viết ra các chương trình, một trong những thành phầnquan trọng giúp thực thi Solidity Code là EVM Nó được mô tả giống như một máytính ảo trên blockchain, nó giúp biến solidity code của các nhà phát triển thành cácứng dụng chạy trên Ethereum
Ở cấp độ cao hơn, Solidity cho phép nhà phát triển ra các "machine level" code
có thể thực thi được trên EVM Sau đó, trình biên dịch chia nhỏ các dòng code mà lậptrình viên viết, sẽ biến thành các lệnh mà bộ xử lý có thể hiểu được và thực thi nó
Trang 34Chương 3: MÔ HÌNH USE-CASE3.1 Sơ đồ Use-case
Hình 4: Sơ đồ Use-case tổng quát
3.2 Danh sách các actor
Người chủ sở hữu các giày NFT
Người có nhu cầu bán NFT của mình
Người có nhu cầu mua các giày NFT đang được đăng trên sàn
Người thực hiện hoạt động chạy kiếm tiền từ ứng dụng
2 Admin Người quản lý, nắm các quyền, deploy các SmartContract.
Bảng 1: Danh sách các Actor
3.3 Danh sách các Use-case
Trang 351 Đăng nhập Người dùng đăng nhập vào ứng dụng.
2 Đăng ký Người dùng đăng ký tài khoản
3 Kết nối ví Người dùng tiến hành kết nối ví
4 Quản lý tàikhoản Người dùng có thể thay đổi tên, email, ảnh đại diện, mật khẩu.
5 Tìm kiếm, bộlọc NFT Người dùng tìm kiếm NFT và có thể lọc cũng như sắp xếpNFT.
7 Xem NFT Người dùng có thể xem các thông tin chi tiết của NFT
8 Xem bộ sưu tậpNFT của bản
thân Người dùng có thể xem giày NFT đang sở hữu.
9 Hoạt động chạykiếm tiền Người dùng chọn giày để tiến hành hoạt động chạy
10 Trả thưởng khichạy Người dùng được hệ thống trả thưởng token RMT
Trang 36Trạng thái hệ thống trước
khi thực hiện use-case Khởi động ứng dụng.
Trạng thái hệ thống sau khi
thực hiện use-case Chuyển tới màn hình trang chủ.
khi thực hiện use-case Màn hình đăng nhập.
Trạng thái hệ thống sau khi
thực hiện use-case Màn hình đăng nhập.
Trang 37Dòng sự kiện khác Không có.
Yêu cầu đặc biệt Ví Metamask được tải
Trạng thái hệ thống trước
khi thực hiện use-case Màn hình ví của tôi.
Trạng thái hệ thống sau khi
thực hiện use-case Màn hình trang chủ.
Điểm mở rộng Cần mở rộng them nhiều ví
Bảng 5: Đặc tả Use-case kết nối ví
Tên chức năng Quản lý tài khoản
Tóm tắt Người dùng xem lại thông tin tài khoản và
chỉnh sửa khi cần thiết
khi thực hiện use-case Đăng nhập thành công.
Trạng thái hệ thống sau khi
thực hiện use-case Thông tin người dùng được cập nhật.
Điểm mở rộng Không có
Bảng 6: Đặc tả Use-case quản lý tài khoản
Trang 383.4.5 Đặc tả Use-case “Tìm kiếm, bộ lọc NFT”
Tên chức năng Tìm kiếm, bộ lọc NFT
Tóm tắt Người dùng tìm kiếm NFT theo từ khóa và lọc
theo các thuộc tính của NFT
Dòng sự kiện chính
Người dùng nhập từ khóa vào thanh tìm kiếm
và lựa chọn các thuộc tính để lọc NFT
Hệ thống sẽ hiển thị những vật phẩm NFT phùhợp với từ khoá tìm kiếm
Dòng sự kiện khác Không có
Yêu cầu đặc biệt Đăng nhập thành công
Trạng thái hệ thống trước
khi thực hiện use-case Đăng nhập thành công.
Trạng thái hệ thống sau khi
Tên chức năng Mua bán, giao dịch NFT
Tóm tắt Người dùng tìm kiếm NFT theo từ khóa và lọc
theo các thuộc tính của NFT
Dòng sự kiện chính
Người dùng nhập từ khóa vào thanh tìm kiếm
và lựa chọn các thuộc tính để lọc NFT
Hệ thống sẽ hiển thị những vật phẩm NFT phùhợp với từ khoá tìm kiếm
Dòng sự kiện khác Không có
Yêu cầu đặc biệt Đăng nhập thành công
Trạng thái hệ thống trước
khi thực hiện use-case Đăng nhập thành công.
Trạng thái hệ thống sau khi
thực hiện use-case
Hiển thị danh sách NFT phù hợp với điều kiệnđưa ra
Điểm mở rộng Không có