Đặc biệt, đối với thị trường trò chơi điện tử game, NFT đã tạo nên một cuộc cách mạng trong các giao dịch và quản lý vật phẩm, tài nguyên trong game nhờ những lợi thế đáng kể của nó so v
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
2 Phan Hồng Quân MSSV: 18520239
□□ Tp Hồ Chí Minh, 10/2021 □□
Trang 2NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
……., ngày…… tháng……năm 2021
Người nhận xét
(Ký và ghi rõ họ tên)
Trang 3BẢNG PHÂN CÔNG, ĐÁNH GIÁ THÀNH VIÊN:
Bảng 1: Bảng phân công, đánh giá thành viên
Lâm Sơn Hải 18520699
- Nghiên cứu tổng quan về Blockchain, Ethereum, Smart Contracts, Unity, thư viện Web3, MetaMask
- Viết Game Design Document
- Thiết kế sơ đồ Use-case, sơ đồ hoạt động
- Triển khai Smart Contracts
- Thiết kế layout, lập trình và kiểm thử
90%
Phan Hồng Quân 18520239
- Nghiên cứu Solidity, NFT, NFT games, Truffle, giải thuật di truyền
Trang 4LỜI CẢM ƠN
Nhóm thực hiện đồ án xin chân thành cảm ơn sự giúp đỡ nhiệt tình của giảng viên hướng dẫn, cô Nguyễn Thị Thanh Trúc, trong suốt quá trình lên ý tưởng, nghiên cứu và thực hiện Nhờ có những góp ý của cô, nhóm đã có thêm nhiều động lực, ý tưởng để hiện thực hóa ý tưởng, cũng như cải thiện chất lượng đồ án
Bên cạnh đó, nhóm cũng dành lời cảm ơn cho các thầy cô của khoa Công nghệ Phần mềm nói riêng, và tất cả thầy cô trường Đại học Công nghệ Thông tin - Đại học Quốc gia TP.HCM nói chung đã giảng dạy, hỗ trợ và truyền đạt cho nhóm những kiến thức có giá trị để ứng dụng vào đồ án, báo cáo, cũng như những sản phẩm sau này
Tuy vậy, việc thực hiện đồ án chưa thể hoàn thành đúng với kỳ vọng mà nhóm
đề ra, vẫn còn nhiều điểm hạn chế, thiếu sót mà nhóm chưa thể tránh khỏi Nhóm chúng em hi vọng sẽ nhận được những lời khuyên, góp ý chân thành từ các thầy cô
để nhóm chúng em ngày càng hoàn thiện mình hơn trong tương lai
Thành phố Hồ Chí Minh, ngày 24 tháng 12 năm 2021 Nhóm thực hiện đồ án: Phan Hồng Quân - Lâm Sơn Hải
Trang 5DANH MỤC CÁC BẢNG, HÌNH ẢNH Danh mục các bảng
Bảng 1 Bảng các thuộc tính của một khối 38
Bảng 2 Bảng các thuộc tính phần tiêu đề của một khối 38
Bảng 3 Bảng so sánh NFT và các tài nguyên trên Internet 56
Bảng 4 Bảng so sánh Solidity và Vyper 65
Bảng 5 Bảng so sánh Unity và Unreal Engine 79
Bảng 6 Bảng danh sách các Actor 93
Bảng 7 Bảng danh sách Use-case 94
Bảng 8 Bảng đặc tả use-case đăng nhập 95
Bảng 9 Bảng đặc tả use-case mua 97
Bảng 10 Bảng đặc tả use-case bán 99
Bảng 11 Bảng đặc tả use-case giao phối 101
Bảng 12 Bảng đặc tả use-case tạo puppy 103
Bảng 13 Bảng đặc tả use-case nhượng quyền puppy 104
Bảng 14 Bảng danh sách các đối tượng 117
Bảng 15 Bảng mô tả chi tiết lớp Ownable 118
Bảng 16 Bảng mô tả chi tiết lớp Puppy 119
Bảng 17 Bảng mô tả chi tiết lớp Cooldown 119
Bảng 18 Bảng mô tả chi tiết lớp PuppyBase 120
Bảng 19 Bảng mô tả chi tiết lớp ERC721 121
Bảng 20 Bảng mô tả chi tiết lớp PuppyOwnership 122
Bảng 21 Bảng mô tả chi tiết lớp GeneScience 123
Bảng 22 Bảng mô tả chi tiết lớp PuppyBreeding 123
Bảng 23 Bảng mô tả chi tiết lớp PuppyMinting 124
Bảng 24 Bảng mô tả chi tiết lớp PuppyCore 125
Trang 6Danh mục hình ảnh
Hình 1 Các contract chính của CryptoKitties 27
Hình 2 Hình ảnh minh họa cho game Elemon 31
Hình 3 Hình ảnh minh họa cho game Happy Land 33
Hình 4 Hình ảnh cấu trúc của một khối 39
Hình 5 Hình ảnh minh họa cho SHA-256 39
Hình 6 Hình ảnh minh họa cho Merkle Root 40
Hình 7 Hình ảnh minh họa cho Difficult Targer 41
Hình 8 Hình ảnh minh họa cho Nonce 42
Hình 9 Hình ảnh minh họa cho Chain (chuỗi) 42
Hình 10 Hình ảnh minh họa cho sổ cái phân tán 43
Hình 11 Hình ảnh minh họa cho cơ chế đồng thuận 45
Hình 12 Hình ảnh minh họa cho máy ảo Ethereum (EVM) 51
Hình 13 Hình ảnh minh họa cho ERC20 Token 52
Hình 14 Hình ảnh minh họa cho Smart Contract 53
Hình 15 Hình ảnh minh họa cơ chế hoạt động của Blockchain 54
Hình 16 Hình ảnh minh họa Solidity 63
Hình 17 Hình ảnh minh họa cho giao diện Unity 67
Hình 18 Hình ảnh minh họa asset trong Unity 69
Hình 19 Hình ảnh minh họa scene trong Unity 70
Hình 20 Hình ảnh minh họa Game object trong Unity 71
Hình 21 Hình ảnh minh họa cho Component trong Unity 71
Hình 22 Hình ảnh minh họa Scripting trong Unity 72
Hình 23 Hình ảnh minh họa Prefab trong Unity 73
Hình 24 Hình ảnh minh họa Graphic trong Unity 74
Hình 25 Hình ảnh minh họa Animation trong Unity 75
Trang 7Hình 26 Hình ảnh minh họa Physic trong Unity 76
Hình 27 Hình ảnh minh họa Path trong Unity 77
Hình 28 Hình ảnh minh họa Audio trong Unity 77
Hình 29 Hình ảnh minh họa cho chức năng swap trong metamask 80
Hình 30 Hình ảnh minh họa cho không gian tìm kiếm (search space) 90
Hình 31 Hình ảnh minh họa cho toán tử giao 91
Hình 32 Hình ảnh minh họa cho toán tử đột biến 91
Hình 33 Sơ đồ Use-case 92
Hình 34 Sơ đồ hoạt động chức năng đăng nhập 105
Hình 35 Sơ đồ hoạt động chức năng mua puppy 106
Hình 36 Sơ đồ hoạt động chức năng bán puppy 107
Hình 37 Sơ đồ hoạt động chức năng giao phối puppy 108
Hình 38 Sơ đồ hoạt động chức năng tạo puppy 109
Hình 39 Sơ đồ hoạt động chức năng nhượng quyền puppy 110
Hình 40 Sơ đồ trạng thái chức năng đăng nhập 111
Hình 41 Sơ đồ trạng thái chức năng xem puppy 112
Hình 42 Sơ đồ trạng thái chức năng phối giống puppy 113
Hình 43 Sơ đồ trạng thái chức năng chuyển nhượng puppy 114
Hình 44 Sơ đồ lớp My puppy 115
Hình 45 Hình ảnh UI Flow 126
Hình 46 Giao diện phác thảo Marketplace 127
Hình 47 Giao diện phác thảo My Puppy 128
Hình 48 Giao diện phác thảo Puppy Detail 129
Hình 49 Giao diện phác thảo Puppy Breeding 130
Hình 50 Màn hình giao diện home 131
Hình 51 Màn hình giao diện My Puppies 131
Hình 52 Màn hình giao diện Marketplace 132
Trang 8Hình 53 Màn hình giao diện chi tiết Puppy 132 Hình 54 Màn hình giao diện Breeding 133
Trang 9MỤC LỤC
CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI 14
1.1 Đặt vấn đề: 14
1.2 Giải pháp: 15
1.3 Mục tiêu đề tài: 15
1.4 Phạm vi đề tài: 16
1.5 Công cụ sử dụng: 16
CHƯƠNG 2 KHẢO SÁT HIỆN TRẠNG 18
2.1 Tổng quan về NFT games: 18
2.2 Một số NFT games điển hình: 19
2.2.1 CryptoKitties: 19
2.2.2 Elemon: 30
2.2.3 Happy Land: 32
CHƯƠNG 3 CƠ SỞ LÝ THUYẾT 36
3.1 Blockchain: 36
3.1.1 Lược sử Blockchain: 36
3.1.2 Cấu trúc dữ liệu Blockchain 37
3.1.3 Cấu trúc mạng Blockchain: 43
3.1.4 Phân loại hệ thống Blockchain: 46
3.2 Ethereum: 48
3.2.1 Tổng quan về Ethereum: 48
3.2.2 Smart Contract: 52
Trang 103.2.3 Cơ chế hoạt động: 53
3.3 NFT 55
3.3.1 Định nghĩa: 55
3.3.2 NFTs hoạt động như thế nào? 57
3.3.3 Các tiêu chuẩn phổ biến của NFTs (NFT Standards): 58
3.4 Solidity: 60
3.4.1 Giới thiệu về Solidity: 60
3.4.2 Solidity Smart Contracts: 61
3.4.3 So sánh Solidity và Vyper: 63
3.5 Unity: 65
3.5.1 Tổng quan về Unity: 65
3.5.2 Giao diện Unity: 67
3.5.3 Các thành phần trong Unity: 68
3.5.4 Các tính năng trong Unity: 73
3.5.5 Unity & Unreal Engine: 78
3.6 MetaMask: 79
3.6.1 MetaMask là gì? 79
3.6.2 Tính năng của MetaMask: 79
3.7 Truffle: 82
3.7.1 Tổng quan: 82
3.7.2 Các thành phần của Truffle: 84
3.8 Thư viện web3.js: 85
Trang 113.9 Giải thuật di truyền (genetic algorithm): 87
3.9.1 Tổng quan về giải thuật di truyền: 87
3.9.2 Một số khái niệm trong giải thuật di truyền: 89
CHƯƠNG 4 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 92
4.1 Sơ đồ Use-case: 92
4.1.1 Sơ đồ Use-case: 92
4.1.2 Danh sách các Actor: 93
4.1.3 Danh sách các Use-case: 93
4.1.4 Đặc tả Use-case: 94
4.2 Sơ đồ hoạt động: 105
4.2.1 Đăng nhập: 105
4.2.2 Mua Puppy: 106
4.2.3 Bán Puppy: 107
4.2.4 Cho Puppy giao phối: 108
4.2.5 Tạo Puppy: 109
4.2.6 Nhượng quyền Puppy: 110
4.3 Sơ đồ trạng thái: 111
4.3.1 Đăng nhập: 111
4.3.2 Xem tất cả Puppies: 112
4.3.3 Phối giống: 113
4.3.4 Chuyển nhượng: 114
4.4 Sơ đồ lớp: 115
Trang 124.4.1 Sơ đồ lớp hoàn chỉnh: 115
4.4.2 Danh sách các lớp đối tượng: 116
4.4.3 Mô tả chi tiết các lớp đối tượng: 117
CHƯƠNG 5 THIẾT KẾ GIAO DIỆN 126
5.1 UI Flow: 126
5.2 Xây dựng mẫu phác thảo giao diện: 126
5.2.1 Màn hình Marketplace: 127
5.2.2 Màn hình My Puppy: 128
5.2.3 Màn hình Puppy Detail: 129
5.2.4 Màn hình Breeding: 130
5.3 Giao diện hoàn chỉnh: 131
5.3.1 Màn hình trang chủ: 131
5.3.2 Màn hình My Puppies 131
5.3.3 Màn hình Marketplace: 132
5.3.4 Màn hình chi tiết Puppy: 132
5.3.5 Màn hình Breeding: 133
CHƯƠNG 7 KẾT LUẬN 134
7.1 Kết quả đạt được: 134
7.2 Phân tích ưu - nhược điểm: 134
7.2.1 Ưu điểm: 134
7.2.2 Nhược điểm: 134
7.3 Hướng phát triển: 134
Trang 13TÀI LIỆU THAM KHẢO 137
Trang 14CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI
1.1 Đặt vấn đề:
Non-fungible tokens (NFTs) có thể được coi như là quyền sở hữu tài nguyên điện
tử (chẳng hạn bản vẽ, vật phẩm trong trò chơi, âm nhạc hay vật phẩm kỷ niệm) Đây
là một trong những xu hướng mới trong sự phát triển của công nghệ chuỗi khối (blockchain) ở những năm gần đây Cùng với sự bùng nổ của công nghệ blockchain, thị trường NFT đã phát triển mạnh mẽ, đặc biệt là từ khoảng thời gian đầu năm 2021 Đặc biệt, đối với thị trường trò chơi điện tử (game), NFT đã tạo nên một cuộc cách mạng trong các giao dịch và quản lý vật phẩm, tài nguyên trong game nhờ những lợi thế đáng kể của nó so với cách tiếp cận truyền thống (giao dịch thông qua thẻ, ví điện tử, v.v.)
Với sự phát triển của công nghệ blockchain và NFT, nhu cầu đấu giá, mua bán, sưu tập quyền sở hữu các vật phẩm điện tử ngày càng được nâng cao Nổi bật, có những trường hợp NFT được định giá lên đến hàng triệu đô la Mỹ, chẳng hạn bài tweet đầu tiên của CEO Twitter và Square - Jack Dorsey, đã được bán với giá $2.9 triệu trong năm 2021 (Taylor L., 2021) Không chỉ vậy, quyền sở hữu các nhân vật trong trò chơi như CryptoKitties, Axie Infinity, v.v cũng ngày càng được ưa chuộng Nhận thấy tiềm năng của công nghệ blockchain (đặc biệt là NFT) trong sự phát triển của ngành công nghiệp trò chơi điện tử, nhóm quyết định phát triển đề tài “Xây dựng game nuôi thú ảo ứng dụng công nghệ blockchain” với trò chơi My Puppies Trò chơi My Puppies là một trò chơi mô phỏng thuật toán mã gen (genetic algorithm) của G Mendel, trong đó, người chơi được phép phối giống động vật trong phạm vi trò chơi để hình thành nên những thế hệ mới, tạo bộ sưu tập thú ảo của riêng mình Đây không phải cách tiếp cận mới, tuy nhiên, với công nghệ blockchain, người chơi có thể chứng minh được quyền sở hữu của mình đối với những con vật trong
Trang 15trò chơi, thực hiện giao dịch mua bán (kể cả ở bên ngoài phạm vi trò chơi) Nhờ đó, người chơi sẽ có thêm sự linh động trong việc sở hữu và sưu tập thú ảo
1.2 Giải pháp:
Để hiện thực hoá đề tài, nhóm sẽ phải tiến hành những bước như sau:
● Tập trung vào nghiên cứu những khía cạnh chính liên quan đến cách thức hoạt động của blockchain, NFT dựa trên những nền tảng cơ bản
● Nghiên cứu những trò chơi dựa trên nền tảng NFT hiện có trên thị trường cũng như cách thức chúng hoạt động và nhu cầu của người chơi đối với những trò chơi đó
● Thiết kế, xây dựng mô hình, cách thức hoạt động và giao tiếp giữa các thành phần trong trò chơi My Puppies
● Tập trung phát triển, hoàn thiện trò chơi
1.3 Mục tiêu đề tài:
Đề tài được thực hiện nhằm giúp nhóm có cơ hội tìm hiểu về những công nghệ nổi bật hiện nay như blockchain, NFT, smart contracts Bên cạnh đó, nhóm cũng mong muốn ứng dụng những kiến thức đã biết trong những môn học trước đây, kết hợp những kiến thức tự tìm hiểu để xây dựng trò chơi nuôi thú ảo hoàn thiện cả về giao diện lẫn trải nghiệm khi tham gia vào trò chơi
Cụ thể, đề tài “Xây dựng game nuôi thú ảo ứng dụng công nghệ blockchain” sẽ được thực hiện để đáp ứng những mục tiêu cơ bản dưới đây:
● Nghiên cứu về blockchain, cách hoạt động, công nghệ đằng sau và tính ứng dụng
Trang 16● Nghiên cứu về Ethereum và smart contracts, cách hoạt động và ý nghĩa của chúng
● Nghiên cứu về NFT, cách hoạt động và tính ứng dụng
● Nghiên cứu, xây dựng smart contracts sử dụng Solidity và thiết lập kết nối giữa back-end server và mạng Ethereum
● Thiết kế trò chơi My Puppies sử dụng Unity để giúp người chơi:
o Xem, tra cứu thông tin của thú nuôi; kiểm tra tính trạng (gen) của thú nuôi
o Lai giống giữa các thú nuôi
o Thực hiện mua/bán, cho (tặng) thú nuôi
o Sưu tập thú nuôi
1.4 Phạm vi đề tài:
Vì trước khi thực hiện đề tài, nhóm chưa có nhiều kiến thức về công nghệ blockchain cũng như những ứng dụng liên quan, phạm vi đề tài này được giới hạn trong khuôn khổ tìm hiểu, nghiên cứu và so sánh giữa các công nghệ để ứng dụng vào xây dựng chức năng cơ bản của một trò chơi nuôi thú ảo Bên cạnh đó, do thời gian thực hiện đề tài có giới hạn, vấn đề hiệu năng và độ ổn định của các kết nối có thể chưa được tối ưu
1.5 Công cụ sử dụng:
● Thiết kế bản mẫu (prototype) giao diện trò chơi: Figma
● Xây dựng smart contracts, triển khai (deploy) lên mạng lưới blockchain: Solidity
Trang 17● Xây dựng back-end server: Firebase
● Thiết kế và xây dựng game ở phía máy khách (client): Unity 3D
Trang 18CHƯƠNG 2 KHẢO SÁT HIỆN TRẠNG
2.1 Tổng quan về NFT games:
Thông thường, khi nhắc tới blockchain, nhiều người cho rằng nó mở ra một kỷ nguyên mới cho công nghệ trao đổi thông tin và lập trình ứng dụng Bên cạnh những ứng dụng đó, công nghệ blockchain cũng đưa ngành công nghiệp game sang một trang mới Những trò chơi được xây dựng dựa trên nền tảng blockchain có thể có cơ hội rộng mở trong tương lai, nhất là khi những trò chơi blockchain đầu tiên đã thể hiện rõ tiềm năng của chúng
Những nền tảng trò chơi truyền thống có vòng phát triển đóng (closed loops), nghĩa là không ai có thể xây dựng phiên bản khác của nó từ bên ngoài, xem logic bên trong hoặc sử dụng những dữ liệu (assets) có sẵn Trong blockchain, phần lớn logic và dữ liệu (assets) được quản lý bởi smart contracts, có thể được phân tích và tái sử dụng (G Agrawal, 2019)
Blockchain games được tổ chức phi tập trung (decentralized) Nghĩa là thay vì được tập hợp ở một server trung tâm, các tài nguyên (assets) trong blockchain games (vật phẩm điện tử - digital goods) được phân tán giữa những người chơi Các trò chơi blockchain có thể xây dựng token riêng của mình, hoặc sử dụng token có sẵn (chẳng hạn Ether nếu dùng Ethereum) (G Agrawal, 2019)
Trong các trò chơi NFT (NFT games), các token là độc nhất, đại diện cho một loại tài nguyên (asset) và không thể trao đổi (G Agrawal, 2019) Nguyên nhân là vì tính chất của NFT, và mỗi NFT có giá trị khác nhau Chẳng hạn, những chú mèo trong trò chơi Cryptokitties (một trò chơi được xây dựng dựa trên các NFT tokens)
là hoàn toàn khác nhau Người chơi có thể lai giống, cho mèo sinh sản và giao dịch trên các sàn giao dịch trực tuyến (G Agrawal, 2019)
Trang 19Cơn sóng NFT games lớn đến mức nhiều công ty game, trong đó có SEGA, đã tuyên bố sẽ bắt tay vào kinh doanh NFTs cho cả những game cũ cũng như các dự án mới trong tương lai (R Craddock, 2021) Điều đó cũng đồng nghĩa, có khả năng SEGA sẽ lấy những tài nguyên (assets) bao gồm nhân vật, âm thanh, SFX, v.v trong các trò chơi cũ để kinh doanh NFTs (J Mirsch, 2021)
Trong một thời gian dài, các công ty game đã dần dần thuyết phục được người chơi chi tiền để mua các vật phẩm trong game Bên cạnh đó, nhiều NFT games đã đạt được những thành công ngoài mong đợi khi số lượng người chơi mua vật phẩm tăng lên đáng kể Chẳng hạn, Axie Infinity, theo số liệu từ CoinGecko, đang có giá trị vốn hoá thị trường (market cap) tính đến đầu tháng 10 năm 2021 là
$7,615,020,981 Tuy nhiên, tính hiệu quả trong sự kết hợp giữa NFTs và trò chơi điện tử vẫn cần thêm thời gian để chứng minh Ngoài ra, việc đặt ra ranh giới trong việc mua bán và phân phối NFTs vẫn còn là vấn đề cần được giải quyết trong tương lai
CryptoKitties hoạt động trên mạng của Ethereum blockchain Trong đó, mỗi CryptoKitty là một NFT (non-fungible token) độc nhất và được sở hữu bởi người dùng, xác thực thông qua blockchain Mỗi CryptoKitty có những đặc điểm riêng (gọi
Trang 20là Cattributes) Giá trị của NFT được quyết định bởi thị trường, không thể sao chép
và không ai có quyền chuyển nhượng CryptoKitty, kể cả nhà phát triển game Khi lai giống hai Kitties, Kitty mới được tạo ra sẽ là sự pha trộn giữa các Cattributes của
bố mẹ (CryptoKitties tutorials, n.d.-a)
Mỗi lần lai giống, người chơi sẽ phải chi một khoản phí nhỏ (thường là 0.008 Ether) Đây là chi phí để thực hiện giao dịch khi dữ liệu được cập nhật trong blockchain, giống với khi triển khai smart contracts hay thực hiện những giao dịch khác trên blockchain Ngay sau đó, người chơi sẽ có một quả trứng nở ra một CryptoKitty mới CryptoKitties bố và mẹ sẽ mất một thời gian nghỉ ngơi để có thể tiếp tục lai giống Một Kitty có càng nhiều con, thời gian để nó phục hồi (cooldown) ngày càng dài (CryptoKitties tutorials, n.d.-a)
2.2.1.1.1 Những loại mèo trong CryptoKitties:
Trong trò chơi CryptoKitties, có 4 loại mèo (CryptoKitty), bao gồm:
● Normal Cats: còn có thể được gọi là “mèo thường”, có ngoại hình được quyết định hoàn toàn bởi những thuộc tính gọi là Cattributes
● Fancy Cats: ngoại hình đặc biệt với những hoạ tiết độc đáo, được tạo ra nhờ những tổ hợp gene đặc biệt (dù trên thực tế, ngoại hình của Fancy Cats không thể hiện chính xác Cattributes trên block của chúng)
● Special Edition Cats: được đấu giá trong những sự kiện đặc biệt của trò chơi
● Exclusive Cats: là loại mèo hiếm nhất, chỉ ra mắt trong những sự kiện đặc biệt hành dành cho các thành viên nhất định trong cộng đồng
Mỗi CryptoKitty đều có các tính trạng “hữu hình” sau:
● Hình dáng/mẫu (pattern)
Trang 21● Màu nền (highlight color)
● Màu mắt (eye color)
● Hình dạng mắt (eye shape)
● Màu cơ bản (base color)
● Màu nhấn (accent color)
Purrstige Trails là một loại Cattribute đặc biệt, rất khó có được khi lai giống hay
mở khoá CryptoKitty Purrstige Trails thường chỉ có thể lai giống được trong một khoảng thời gian giới hạn Mặt khác, nó còn đòi hỏi những “công thức” đặc biệt cần
cả sự kết hợp Cattributes nhất định lẫn sự xuất hiện của những gen lặn khác Nói cách khác, người chơi cần tổ hợp đúng bố mẹ với Cattributes và gen lặn, cùng thời điểm thích hợp để sinh ra mèo con với Purrstige Trails
Việc lai giống Purrstige Trails chỉ diễn ra trong một khoảng thời gian giới hạn cùng nhiều điều kiện nhất định khác Bên cạnh đó, vẻ ngoài của những chú mèo sở hữu các thuộc tính này cũng đặc biệt, đẹp và độc đáo Do đó, chúng sẽ trở nên rất hiếm, giá trị sở hữu cũng tương đối cao
Trang 222.2.1.1.1.2 Fancy Cats:
Fancy Cats là những con mèo đặc biệt với hình vẽ (artworks) và huy hiệu (badges) độc đáo Chúng được tạo ra khi người chơi lai giống mèo với những cặp tính trạng phù hợp
Ngoài những tính trạng cơ bản, Fancy Cats còn có thể có những tính trạng mà không nhiều CryptoKitties có Bao gồm những thành phần hoang dã (wild elements) như sừng, cánh, râu, hay thành phần môi trường (environmental elements) như rêu, cầu vồng
Bên cạnh đó, Fancy Cats cũng có thể sở hữu Purrstige Trails (được trình bày ở trên) Chúng được tạo thành từ tổ hợp các tính trạng nhất định, thông thường là 4 đến 5 tính trạng
Về khía cạnh kỹ thuật, trên blockchain, Fancy Cats về cơ bản giống với các anh chị (có cùng bố mẹ của mình) Hình ảnh trên website của CryptoKitties là điểm khác biệt đáng kể duy nhất giữa chúng Điều này đảm bảo tính linh động cho trò chơi trong việc phát hành Fancy Cats trong tương lai (mà không cần can thiệp hay chỉnh sửa smart contracts)
2.2.1.1.1.3 Exclusive Cats:
Exclusive Cats, về cơ bản, giống với Fancy Cats nhưng hiếm hơn Khác với Fancy Cats, chỉ đơn thuần là những chú mèo duy nhất trong thể loại của chúng, Exclusive Cats thường được dùng để kỉ niệm một sự kiện nào đóm, hoặc phục vụ cho một mục đích nhất định Do đó, chúng không thể được lai giống thông qua những loại mèo khác mà được giới thiệu vào trò chơi bởi nhà phát hành
2.2.1.1.1.4 Special Edition Cats:
Special Edition Cats là loại mèo có hình vẽ đặc biệt, được bán với số lượng giới hạn
Trang 23Nhìn chung, Special Edition Cats giống Exclusive Cats ở chỗ thiết kế của chúng
là độc nhất Mặc dù vậy, Special Edition Cats được bán ra với số lượng lớn hơn Thậm chí, một số Special Edition Kitties còn có thể được dùng để lai giống (vì chúng
Tính trạng gốc là những tính trạng xuất hiện trong những dòng mèo đầu tiên - gen-0 (generation 0 kitties) Trong khi đó, gen lặn (hidden gene) xuất hiện trong chuỗi gen của mọi con mèo, tuy nhiên chúng bị ẩn đi Mặc dù vậy, khi được mang
đi phối giống, những gen lặn này vẫn có khả năng tác động lên ngoại hình của thế
hệ sau
Ngoài ra, Cattributes còn có thể là các tính trạng đột biến (mutation traits) Đây
là những Cattributes được tạo thành từ sự kết hợp các tính trạng của bố mẹ, nhưng không xuất hiện ở cả bố và mẹ Trong trường hợp đặc biệt, những tính trạng này thậm chí chưa từng xuất hiện trên những con mèo đời đầu (gen-0 kitties) Đột biến gen yêu cầu những cặp giống nhất định (và cả may mắn) Những chủng mèo đột biến đầu tiên thường sẽ trở nên quý hiếm hơn Các gen đột biến này còn có thể kết hợp với nhau để tạo ra một gen đột biến mới Quá trình (tiến trình) đột biến đi từ gene gốc (base genes), M1 genes, M2 genes và M4 genes từ một tính trạng
Trang 242.2.1.1.2.2 Cooldown Speed (Tốc độ phục hồi):
Giống như ngoài đời thật, mỗi đợt giao phối tốn của mèo rất nhiều sức lực Khi càng già đi (có nhiều lứa con), mèo sẽ càng cần nhiều thời gian hồi phục sau mỗi đợt giao phối hơn Thời gian chờ đợi (hay nghỉ) trước lần giao phối tiếp theo của CryptoKitties được gọi là Cooldown Speed Ngoài ra, thế hệ của CryptoKitty cũng quyết định đến thời gian hồi phục mà chúng cần Trái lại, gene không có tác động nào đến thời gian hồi phục của CryptoKitties
Bộ gen của CryptoKitties được làm từ một chuỗi các khối (blocks), mỗi khối có
4 genes Mỗi block trong đó sẽ quy định một tính trạng: mắt, hình dáng, lông, màu
cơ thể, v.v
Cụ thể, mỗi khối bao gồm 1 gen trội và 3 gen lặn Trong đó, gen trội là gen được biểu hiện trong ngoại hình của mèo, và gen lặn tuy không được biểu hiện trên cơ thể mèo, nhưng vẫn có thể được di truyền cho (và biểu hiện trên) những thế hệ sau Đối với CryptoKitties, gen trội có 75% tỷ lệ di truyền, còn gen lặn chỉ có tỷ lệ di truyền
1 trong 3 là 25%
2.2.1.1.2.4 Đột biến (Mutations):
Khi sinh sản, có khả năng mèo con sẽ chứa những tính trạng không xuất hiện trên
cả bố và mẹ, trường hợp này gọi là đột biến Cụ thể, với mỗi Cattribute, Kitty có 4 genes: 1 gen trội và 3 gen lặn Do đó, khi giao phối, dù các gen trội có tỷ lệ di truyền cao hơn, vẫn có khả năng mèo con kế thừa những gen lặn
Trang 25CryptoKitties được phân phối tự động, thông qua smart contract, mỗi 15 phút (672 lần mỗi tuần) trong suốt 1 năm Mỗi “chú mèo” CryptoKitty có ngoại hình (phenotype) được xác định bởi genes không đổi (genotype) được lưu trữ trong smart contract Bên cạnh đó, trong mỗi lần giao phối, một CryptoKitty đóng vai trò con đực cần một khoảng thời gian phục hồi (tăng sau mỗi lần giao phối) trước khi tiến hành lượt giao phối tiếp theo CryptoKitty còn lại sẽ ấp (incubate) mèo con, trong giai đoạn đó, CryptoKitty cũng không được tham gia vào cuộc giao phối nào khác (CryptoKitties, n.d.-b)
Trang 26● Theo dõi quyền sở hữu và thay đổi quyền sở hữu của mọi CryptoKitties (kể
cả những con mèo mới sinh)
● Theo dõi các cuộc chuyển nhượng và giống được chấp nhận
● Cung cấp cơ chế chuyển giao mọi thông tin đến Core Contract phiên bản tiếp theo trong tương lai (nếu phiên bản hiện tại gặp vấn đề nghiêm trọng)
● Bảo trì các con trỏ đến các phiên bản mới nhất của các library contracts (tự động cập nhật)
Bên cạnh đó, các tính năng của library contracts tối thiểu cần có (CryptoKitties, n.d.-b):
● Theo dõi genes của các gen-0 CryptoKitties
● Đưa genes của gen-0 CryptoKitties vào Core Contract
● Tiến hành đấu giá cho gen-0 CryptoKitties (bao gồm xác minh giá)
● Tổ hợp hai loại genes của CryptoKitties bố mẹ để xác định loại gen của CryptoKitty con
● Quản lý việc đấu giá CryptoKitty (cả gen-0 CryptoKitties được đấu giá và các cuộc đấu giá giữa người chơi) và cả mã giống (siring tokens)
● Quản lý đấu giá giống (siring auctions), bao gồm tiến hành giao phối khi thành công
Các smart contracts của CryptoKitties bao gồm 6 contracts chính: KittyAccessControl, KittyBase, KittyOwnership, KittyBreeding, KittyAuction, KittyCore
Trang 27Hình 1 Các contract chính của CryptoKitties
Trong đó, KittyAccessControl contract chứa các địa chỉ và ràng buộc đối với các hành động thực thi bởi những vai trò đặc biệt (CEO, CFO và COO) Các thành phần trong contract này không liên quan đến cơ chế game (game mechanics) mà phục vụ cho việc quản lý Contract này chứa các phương thức “setters” phục vụ cho những vai trò đặc biệt kể trên trong việc phân quyền và điều khiển
KittyBase contract định nghĩa những thành phần cơ bản nhất được sử dụng xuyên suốt những tính năng chính của trò chơi, bao gồm cơ sở dữ liệu chính, các hàm, kiểu
dữ liệu, và hàm phục vụ cho việc quản lý chúng Nói cách khác, gần như những dữ
Trang 28liệu quan trọng nhất của trò chơi được lưu giữ ở đây Chẳng hạn, kiểu dữ liệu Kitty bao gồm genes (mã gen của mèo), birthTime (là timestamp thể hiện thời gian mèo sinh ra), cooldownEndBlock (thời gian tối thiểu để mèo tiếp tục sinh, được tính bằng timestamp), matronId (ID của CryptoKitty mẹ), sireId (ID của CryptoKitty mẹ), siringWithId (dùng để kiểm tra xem mèo có đang mang thai hay không, và lưu giữ
Id của mèo giao phối cùng, hoặc 0 trong trường hợp không mang thai), cooldownIndex (dùng để xác định thời gian cần thiết để hồi phục trong mảng cooldown) và generation (số thế hệ của mèo, bắt đầu từ 0) Bên cạnh việc định nghĩa kiểu dữ liệu Kitty, KittyBase cũng giữ dữ liệu của tất cả CryptoKitties trong trò chơi (trong mảng “kitties”) với chỉ số (index) là ID của mèo Mặt khác, KittyBase cũng chứa nhiều phương thức mapping (key-value) để dễ dàng trích xuất dữ liệu (chẳng hạn lấy địa chỉ chủ sở hữu của một con mèo bất kì thông qua ID)
Ngoài ra, phương thức được dùng để tạo Kitty mới cũng được định nghĩa trong KittyBase với tên gọi createKitty() Đây là một phương thức tương đối nặng, do đó, các điều kiện liên quan đến Id bố mẹ và generation đều phải được thỏa mãn để tạo Kitty mới Trong trò chơi CryptoKitties, cooldownIndex được xác định là giá trị generation của Kitty chia 2 Sau đó, Kitty mới sẽ được tạo và thêm vào tập hợp các Kitties (“kitties” collection), sự kiện Birth() được gọi và mèo được chuyển đến chủ của nó thông qua phương thức _transfer()
Như đã trình bày ở trên, các NFT trong CryptoKitties thỏa mãn tiêu chuẩn ERC721, có nghĩa là smart contract quản lý việc chuyển nhượng hay sở hữu NFTs đều phải tuân thủ theo ERC721 interface (hay contract) Trong ERC721 có định nghĩa những phương thức phục vụ việc chuyển nhượng NFTs như totalSupply(), balanceOf(), ownerOf(), approve(), transfer(), transferFrom() và sự kiện (events) như Transfer() và Approval() Nhờ tuân thủ theo ERC721, các NFTs của
Trang 29CryptoKitties cũng có thể tương tác (theo cách tiêu chuẩn) với những ERC721 tokens khác
KittyBreeding contract chứa các phương thức cần thiết để giao phối mèo, bao gồm: theo dõi đề nghị giao phối (siring offers) và dựa vào các contract tổ hợp gen khác (external genetic combination contract) như geneScience (có thể được sử dụng trong hàm giveBirth() để xác định DNA của mèo mới) Đặc biệt, geneScience được lưu giữ ở một địa chỉ khác và có thể được thay đổi (vì nó chứa các thông tin quan trọng liên quan đến giải thuật di truyền (genetic algorithm) KittyBreeding cũng đồng thời định nghĩa phương thức thiết lập địa chỉ này Hàm thiết yếu nhất trong KittyBreeding là giveBirth() Nó nhận vào ID của mẹ để lấy giá trị CryptoKitty mẹ
và kiểm tra Sau đó, hàm này cũng lấy giá trị CryptoKitty cha (thông qua thuộc tính siringWithId từ mèo mẹ) Giá trị generation của CryptoKitty con sẽ là giá trị liền sau của giá trị lớn nhất trong hai generation của mèo bố mẹ Hàm mixGenes() trong geneScience sau đó được gọi để lấy mã gen của con Đây có thể được coi như là
“hộp đen” của trò chơi, nơi thuật toán quyết định mã gene được giữ bí mật tuyệt đối Cuối cùng, chú mèo mới được tạo, thêm vào cơ sở dữ liệu và trả về ID của mèo con KittyAuction contract chứa những phương thức công khai (public) phục vụ việc đấu giá mèo hoặc dịch vụ phối giống Chức năng đấu giá được triển khai trong hai contracts đồng thời (buôn bán - sales và phối giống - siring) Việc tạo đấu giá và đấu giá đa phần được thực thi thông qua trung gian là KittyCore contract Cụ thể, KittyAuction chứa các phương thức thiết lập địa chỉ đấu giá bán (sale auction address), đấu giá phối giống (siring auction address) và geneScience contract (gene science address) được thực hiện bởi CEO
Trong CryptoKitties, KittyCore contract còn được gọi là contract chính, hay “the master contract” Đây là contract chính trong CryptoKitties, tập hợp mọi thứ (các contracts khác) lại với nhau bởi nó kế thừa từ tất cả các contracts trước Cùng với
Trang 30đó, những phương thức cuối cùng cũng được thêm vào contract này, chẳng hạn lấy thông tin CryptoKitty thông qua ID (getKitty())
Ngoài ra, CryptoKitties còn có KittyMinting, có thể được coi là “nhà máy” sản xuất mèo gen-0 Những hàm sử dụng để tạo mèo gen-0 đều được định nghĩa ở đây
Nó có thể được sử dụng để tạo mèo quảng bá (promo cats) và tặng cho người chơi, hoặc tạo và đặt lên đấu giá với mức giá khởi điểm được tính bằng thuật toán Tuy nhiên, số lượng mèo gen-0 tối đa cũng được định nghĩa (ở mức 50,000 con) trong code
2.2.2 Elemon:
2.2.2.1 Tổng quan:
Elemon là một game nhập vai được xây dựng và phát triển trên nền tảng Binance Smart Chain (BSC) Người chơi sẽ triệu hồi các Elemons, dẫn dắt các Elemons tham chiến đấu và nhận lại phần thưởng Ngoài ra, người chơi có thể đặt cược Elemon (ELMON) để kiếm thêm lợi nhuận Game được ra mắt vào quý 4 năm 2021
Elemon được tạo và phát triển theo hướng chơi Play to Earn (P2E)
Trang 31Hình 2 Hình ảnh minh họa cho game Elemon
2.2.2.2 Tính năng:
Một số tính năng chính của game có thể kể đến như:
- Battle: Người chơi xây dựng căn cứ trên một hòn đảo Người chơi có thể đặt cược các Elemons để tự vệ hoặc chinh phục các hòn đảo khác để mang về chiến lợi phẩm cũng như tài nguyên cho mình
- Triệu hồi: game có nhiều cách để triệu hồi Elemon mới (đập trứng)
- Ranking: đua top, đánh ải, cùng những người chơi khác để thăng hạng và nhận những phần thưởng giá trị
- Trang bị: có thể thêm trang bị để tăng chỉ số sức mạnh cho Elemon Mỗi loại Elemon có tổng cộng 6 loại trang bị tương ứng với các chỉ số HP, P.ATK, M.ATK, P.DEF và Speed
- Nhiệm vụ: game tự động giao nhiệm vụ cho người chơi bao gồm nhiệm vụ hằng hảng, nhiệm vụ theo chuỗi cho từng tuần và tháng Phần thưởng sẽ tương
Trang 32ứng với level của nhiệm vụ, level nhiệm vụ càng cao thì phần thưởng càng lớn
- Cửa hàng: bán những tài nguyên có thể nâng cấp Elemon cũng như các thiết
bị khác
- Nhân giống: Khi các Elemon đạt đến cấp độ nhất định, người chơi có thể tiến hành giao phối, lai tạo giữa các Elemon để tiến hóa thành Elemon hoàn toàn mới về ngoại hình và các chỉ số đều vượt trội so với Elemon cũ
- Sự kiện: dựa trên xếp hạng cấp độ người chơi, cấp độ Elemon và sức mạnh chiến đấu, Elemon Game sẽ tổ chức các sự kiện đua top với giải thưởng lớn
2.2.2.3 ELMON token:
ELMON là token của game được phát triển trên mạng lưới Binance Smart Chain (BSC) theo tiêu chuẩn BEP20
ELMON được sử dụng cho:
- Farming: sử dụng để farming điểm mà người chơi có thể sử dụng để đôi NFT
- Payment: sử dụng làm tiền tệ thanh toán trong game
2.2.3 Happy Land:
2.2.3.1 Tổng quan:
Happy Land là một nền tảng game Blockchain lấy cảm hứng từ vùng nông thôn Texas Hoa Kỳ Trong Happy Land, người chơi sẽ hóa thân vào vai một người chủ quản lý, chăm sóc trang trại của mình Game sẽ được ra mắt vào quý 1 năm 2022
Trang 33Hình 3 Hình ảnh minh họa cho game Happy Land
2.2.3.2 Tính năng:
Để bắt đầu game, người chơi cần tạo tài khoản liên kết với ví Metamask, dữ liệu người chơi sẽ được lưu trữ trong hệ thống của Happy Land
Khi vào game, người chơi sẽ có một ngôi nhà và một nhà kho
Các mảnh đất có thể được mua thông qua cửa hàng của Happy Land hoặc giao dịch với những người chơi khác tại Happy Land Marketplace (những mảnh đất này được sử dụng để trồng cây)
2.2.3.2.1 Vòng đời hạt giống - Trái cây:
Hạt giống có thể được mua bằng token trong game (HPL) để trồng trọt Sản lượng hạt giống khác nhau tùy thuộc vào các loại hạt khác nhau Quy trình canh tác và mức
độ quý hiếm của đất, mỗi loại hạt có thời gian thu hoạch khác nhau
Trang 342.2.3.2.2 Vòng đời hạt giống - cây lâm nghiệp:
Ban đầu, các cây lâm nghiệp có sẵn trên bản đồ có thể được lấy bằng thời gian
và token, chúng sẽ tạo ra kinh nghiệm và các loại gỗ ngẫu nhiên với các mức độ quý hiếm khác nhau
Có thể thu hoạch tối đa 5 cây lâm nghiệp mỗi ngày khi chúng xuất hiện trở lại bản đồ
Những loại cây này sẽ được dùng để: Xây nhà, nâng cấp công trình,
2.2.3.2.3 Nhà máy sản xuất:
Tính năng xuất xưởng sẽ bị khóa cho đến khi người chơi đạt cấp độ nhất định Xây dựng nhà xưởng cần nhiều thời gian và lượng thời gian sẽ khác nhau tùy theo mức độ và loại công trình
Token (HPL) có thể được sử dụng để giảm thời gian xây dựng
Nhà máy cho phép người chơi tạo thành phẩm cây nông nghiệp Những sản phẩm này có thể dùng để làm nhiệm vụ hàng ngày hoặc buôn bán,
Các nhà máy sản xuất được sử dụng để sản xuất tất cả các sản phẩm khác nhau
có sẵn trong game Mỗi sản phẩm đều có công thức chế tạo riêng yêu cầu người chơi phải sở hữu nhà máy tương ứng
2.2.3.2.4 Techlab:
Techlab là nơi người chơi có thể lai tạo các loại cây nông nghiệp, động vật, đất
để tạo ra một phiên bản tốt hơn với độ hiếm cao và giá trị hơn
2.2.3.2.5 Vật nuôi và gia súc:
Ngoài việc trồng trọt và thu hoạch, người chơi tham gia Happy Land còn có hệ thống vật nuôi, gia súc, gia cầm đa dạng, phong phú như gà, vịt, mèo,
Trang 352.2.3.2.6 Mùa màng:
Trong Happy Land, mỗi mùa sẽ kéo dài một tuần theo thời gian thực
Thời tiết giao mùa sẽ ảnh hưởng trực tiếp đến sản lượng nông nghiệp của cây
Người chơi đạt cấp độ càng cao, thời gian và sản phẩm càng đa dạng, điều này
sẽ tạo ra nhiều điểm kinh nghiệm và token hơn
2.2.3.2.8 Xây dựng và trang trí:
Đồ trang trí là những vật phẩm mà người chơi có thể đặt trên trang trại hoặc thị trấn của họ mà không chỉ cho mục đích trang trí mà còn cho mục đích chăn nuôi và trồng trọt
Công trình trang trí có độ quý hiếm cao đóng vai trò quan trọng trong việc tăng
cả sản lượng và tỷ lệ thành công của việc nhân giống vật nuôi, cây trồng và đất đai Việc nhân giống có thể giúp mở khóa các tòa nhà khá nhau với độ hiếm cao hơn
Đồ trang trí có sẵn trong gói xây dựng Người chơi cũng có thể mua các tác phẩm trang trí cơ bản trong trò chơi
2.2.3.3 HPL token
Happy Land (HPL) là token được sử dụng để quản trị, staking, nâng cấp trang trại, thanh toán NFT trong game
Trang 36CHƯƠNG 3 CƠ SỞ LÝ THUYẾT
3.1 Blockchain:
3.1.1 Lược sử Blockchain:
Blockchain là một công nghệ làm nền tảng như một sổ cái (ledger) được chia sẻ, bất biến, tạo điều kiện thuận lợi cho quá trình ghi lại các giao dịch và theo dõi tài sản trong một mạng lưới kinh doanh Một tài sản có thể là hữu hình (nhà, xe hơi, tiền mặt, đất đai) hoặc vô hình (sở hữu trí tuệ, bằng sáng chế, bản quyền, thương hiệu) Hầu như bất kỳ thứ gì có giá trị đều có thể được theo dõi và giao dịch trên mạng Blockchain, giảm rủi ro và cắt giảm chi phí cho tất cả những người tham gia (IBM, 2021)
Blockchain là công nghệ khá mới, tính đến nay chỉ tồn tại một khoảng thời gian ngắn trên Internet, tuy nhiên, các chuyên gia đã chia Blockchain ra thành ba giai đoạn phát triển chính (Nathan Reiff, 2021):
- Giai đoạn 1: Bitcoin và tiền điện tử (Digital currencies)
- Giai đoạn 2: Hợp đồng thông minh (Smart contracts)
- Giai đoạn 3: Tương lai
Trong giai đoạn 1: Đánh dấu cho giai đoạn này là sự kiện Satoshi Nakamoto công
bố bản phác thảo về Bitcoin vào năm 2008 Trong giai đoạn này, blockchain tạo tiền
đề cho một sổ cái công khai được chia sẻ, hỗ trợ cho mạng lưới tiền điện tử Ý tưởng ban đầu về blockchain của Satoshi Nakamoto là sử dụng các khối thông tin 1 megabyte (MB) trong các giao dịch Bitcoin, các khối được liên kết với nhau thông qua quá trình xác minh mật mã phức tạp để tạo thành chuỗi bất biến Những tính năng cốt lõi đó của blockchain phần lớn không thay đổi so với hiện tại
Trang 37Trong giai đoạn 2: Khoảng thời gian tiếp theo, các nhà phát triển bắt đầu tin rằng blockchain không chỉ đơn thuần thực hiện các giao dịch tiền điện tử mà còn có thể giao dịch tài liệu, cũng như mở ra nhiều khả năng ứng dụng khác Cụ thể, những nhà sáng lập Ethereum đã có ý tưởng rằng tài sản và các hợp đồng ủy thác cũng có thể thực hiện được thông qua blockchain Trên cơ sở đó, hợp đồng thông minh ra đời, đánh dấu cho giai đoạn thứ 2 Hợp đồng thông minh là hợp đồng tự quản lý giao dịch trên blockchain mà không cần sự có mặt của bên thứ ba Cho đến hiện tại, tiềm năng của hợp đồng thông minh vẫn còn được khai thác
Trong giai đoạn 3: Một trong những vấn đề chính mà blockchain đối mặt là mở rộng quy mô Bitcoin vẫn gặp khó khăn bởi thời gian xử lý giao dịch và đôi khi vẫn gặp trường hợp tắc nghẽn Nhiều loại tiền điện tử mới cố gắng khắc phục những vấn
đề này nhưng mức độ thành công của chúng cũng khác nhau Trong tương lai, một trong những bước tiếp theo trong quá trình phát triển của blockchain được cho là có thể sẽ liên quan đến khả năng mở rộng Ngoài ra, những ứng dụng của blockchain đang được ứng dụng triển khai ở nhiều nơi và nhiều lĩnh vực, điều đó cho thấy tiềm năng của công nghệ này có thể sẽ bùng nổ, phát triển mạnh trong thời gian tới
3.1.2 Cấu trúc dữ liệu Blockchain
3.1.2.1 Block:
Blockchain được xây dựng theo cấu trúc chuỗi (chain), có đơn vị là khối (block) Cấu trúc của khối trên các mạng khác nhau sẽ khác nhau, nhưng cơ bản có một số điểm chung Lấy Bitcoin là ví dụ, mỗi khối trong Bitcoin sẽ có hai phần chính là tiêu
đề (header) và nội dung khối (body) Phần nội dung chứa thông tin các giao dịch diễn ra được lưu trong khối đó Phần tiêu để chứa một số trường cần thiết
Trang 384 bytes Block Size Kích thước của khối
80 bytes Block Header Một số trường trong header
1 – 9 bytes (Tùy biến
thể)
Transaction Counter
Số lượng giao dịch trong
khối
Variable Transactions Thông tin giao dịch trong
khối
Bảng 1 Bảng các thuộc tính của một khối
Cụ thể, Phần tiêu đề chứa version number, timestamp, hash của khối trước đó (Previous Block Hash), random number (Nonce), hash của Merkle Root (Merkle Root), độ khó đạt được của khối (Difficult Target)
4 bytes Version Số phiên bản để theo dõi việc nâng cấp
phần mềm/ giao thức
32
bytes
Previous Block Hash
Tham chiếu đến hash của khối trước đó
32
bytes
Merkle Root Hash gốc của cây merkle trong các giao
dịch của khối này
4 bytes Timestamp Thời gian khối được tạo
4 bytes Difficult Target Độ khó target của thuật toán PoW cho khối
này
4 bytes Nonce Chỉ số sử dụng cho thuật toán PoW
Bảng 2 Bảng các thuộc tính phần tiêu đề của một khối
Trang 39Hình 4 Hình ảnh cấu trúc của một khối
3.1.2.2 SHA-256:
SHA (Secure Hash Algorithm) bao gồm 5 thuật toán được chấp nhận bởi FIPS – Tiêu chuẩn Xử lý Thông tin Liên bang, dùng để mã hóa dữ liệu nhất định thành một đoạn dữ liệu có chiều dài không đổi với xác suất khác biệt cao 5 thuật toán đó bao gồm: SHA-1 (trả lại kết quả dài 160 bit), SHA-224 (trả lại kết quả dài 224 bit), SHA-
256 (trả lại kết quả dài 256 bit), SHA-384 (trả lại kết quả dài 384 bit), SHA-512 (trả lại kết quả dài 512 bit)
Trong đó, SHA-256 (Secure Hash Algorithm) được dùng phổ biến trong mạng Blockchain, dùng để tạo ra các hàm băm không thể đảo ngược và duy nhất
Hình 5 Hình ảnh minh họa cho SHA-256
Trang 403.1.2.3 Merkle Root:
Merkle tree lần đầu được đề xuất bởi Ralph Merkle năm 1979, trong một bài báo học thuật “A Certified Digital Signature” với nội dung là bản thiết kế một quy trình xác minh dữ liệu cho phép máy tính thực hiện công việc của mình nhanh hơn nhiều
so với trước đây Trong mạng Blockchain, Bitcoin sử dụng cây Merkle nhị phân đơn giản nhất Mỗi node trong cây lưu trữ giá trị băm (thông qua thuật toán SHA-256) của dữ liệu giao dịch
Hình 6 Hình ảnh minh họa cho Merkle Root
Trong ví dụ trên, khối tiếp nhận lưu trữ 4 giao dịch TX1, TX2, TX3, TX4 Các giao dịch sẽ được băm ra (theo giải thuật SHA-256) và lưu trữ trong các node lá H1, H2, H3, H4 Các node H1, H2 (tương tự H3 và H4) sẽ được gộp lại và băm ra một lần nữa được lưu trữ trong node cha H1,2 (H3,4) Cuối cùng hai node H1,2 và H3,4
sẽ gộp lại và băm lần cuối, giá trị được lưu trong H1,2,3,4 - đây cũng là Merkle root,
là giá trị đại diện cho tính toàn vẹn của các giao dịch bên trong