Pham vi: - Thời gian nghiên cứu: 4 tháng 21/02/2022 — 20/6/2022 - Đối tượng nghiên cứu: Giải pháp đánh giá hiệu suất thông qua ứng dụng phi tập trung với các công nghệ như Blockchain, To
Các thành phan trong Ethereum Blockchain [3]
Hợp đồng thông minh [5] c.ceccccccccssessessessessesesteseeseeseesessesseesees 20 2.1.6.2 Tài khoản ch HH HH TH TT HH HH ng 22 2.1.6.3 Thông điệp và giao dịch trong Ethereum .- - ‹+ ô++<+ 23 2.1.6.4 Cơ chế chuyên đổi trang thái trong Ethereum
Hợp đồng thông minh là một chương trình máy tính có khả năng tự xác minh, tự thực thi, chống giả mạo Các khái niệm cơ bản nhất về hợp đồng thông minh được đề xuất bởi Nick Szabo vào năm 1994 Nó cho phép thực thi các code mà không cần bên thứ ba Một hợp đồng thông minh cơ bản sẽ bao gồm giá trị, địa chỉ, chức năng và trạng thái Nó nhận giao dịch làm đầu vào, thực thi code tương ứng và kích hoạt các sự kiện đầu ra (Hình 2.4).
Hình 2.5 Kiến trúc co ban của một Hợp đồng thông minh
Kể từ năm 2008 khi công nghệ Blockchain ra đời thông qua tiền điện tử Bitcoin, tam quan trọng của việc tích hợp hợp đồng thông minh trở thành một lĩnh vực trọng tâm dé phát triển bởi vì nó cung cấp cho giao dịch ngang hàng và một cơ sở dữ liệu có thê được duy trì công khai một các an toàn trong một môi trường đáng tin cậy Hợp đồng thông minh có thê được theo dõi và không thé thay đổi Tat cả các thông tin giao dịch đều có trong hợp đồng thông minh và nó được thực thi hoàn toàn tự động Ngôn ngữ được sử dụng dé lập trình một Hợp đồng thông minh là Solidity Ngôn ngữ này hỗ trợ nhiều nền tảng Blockchain khác nhau.
Một số đặc điểm nổi bat của Hợp đồng thông minh có thê ké đến như:
- Hop đồng thông minh là một “machine readable code” — mã máy có thể đọc và thực thi, chạy trên nền tảng Blockchain.
- Hop đồng thông minh là một phan của chương trình ứng dụng, không phải là một ứng dụng hoàn toàn.
- Hợp đồng thông minh là một loại chương trình định hướng sự kiện.
- Hợp đồng thông minh có thé tự chạy tự động sau khi nó được tạo ra mà không cần giám sát.
- Hợp đồng thông minh có tính chất phân tán.
EVM Bytecode má EVM Bytecode
Hình 2.6 Cách hợp đồng thông minh được triển khai Hợp đồng thông minh được triển khai và thực thi là nhờ EVM EVM (Ethereum
Virtual Machine) là máy ảo Ethererum Chúng đóng vai trò trung gian trong việc thực thi Hợp đồng thông minh trên mạng lưới Ethereum Mỗi một node trong mạng Ethereum đều được trang bị một EVM riêng, điều này đảm bảo tính bảo mật và phi tập trung của mạng lưới Các EVM muốn tương tác mạng Ethereum phải tương tác theo một bộ quy tắc và xác thực các thong tin đưa vào chuỗi với giao thức là hàm băm rút gọn SHA-3-256.
Solidity hỗ trợ tương tác với hợp đồng thông minh thông qua ABI (Contract Application Binary Interface) Day là một phương thức tiêu chuẩn dé tương tác với các hợp đồng thông minh trong hệ sinh thái Ethereum, cả từ bên ngoài Blockchain hoặc tương tác giữa hợp đồng với hợp đồng.
Trong mạng Ethereum, trạng thái được tạo thành từ các đối tượng được gọi là “tài khoản”, với môi tài khoản có một địa chỉ 20-byte và việc chuyên đôi trạng thái được
22 thực hiện bằng việc chuyên trực tiếp giá trị và thông tin giữa các tài khoản Một tài khoản Ethereum có 4 trường:
1 Số nonce: là một bộ đếm được sử dụng để đảm bảo mỗi giao dịch chỉ có thể được xử lý một lần duy nhất.
2 Số dư: số dư ether hiện tai của tài khoản.
3 Mã hợp đồng nếu có.
4 Bộ nhớ của tài khoản: mặc định là trống.
“Ether” là đơn vị tiền điện tử nội bộ chính của Ethereum va được sử dụng dé thanh toán phí giao dịch Có 2 loại tài khoản:
- Tai khoản bên ngoài: được kiểm soát bởi khoá riêng tư Không có code hop đồng và có thể gửi thông điệp từ tài khoản này bang cách tạo và ký một giao dịch.
- Tai khoản hợp đồng: được kiêm soát bởi code hợp đồng của chúng Mỗi khi tài khoản hợp đồng nhận được thông điệp, code của nó sẽ được kích hoạt, cho phép đọc và ghi vào bộ nhớ trong sau đó thực hiện các công việc khác như gửi tin nhắn hoặc tạo hợp đồng.
2.1.6.3 Thông điệp và giao dịch trong Ethereum
Thuật ngữ “giao dịch” được sử dung trong Ethereum dé chi gói dữ liệu đã được ký, lưu trữ một thông điệp được gửi từ một tài khoản thuộc sở hữ bên ngoài Một giao dịch sẽ bao gồm:
- Chir ký dé xác định người gửi
- Số lượng ether dé chuyền từ người gửi đến người nhận
- Truong dữ liệu (tuỳ chon)
- Giá trị STARTGAS, đại diện cho số bước tính toán tối đa ma việc thực hiện giao dịch được phép thực hiện
- Giá trị GASPRICE, đại diện cho phí mà người gửi phải trả cho mỗi bước tính toán
Trong các trường nêu trên, 3 trường đầu tiên là các trường tiêu chuẩn trong bất kỳ loại tiền điện tử nảo Trường dữ liệu theo mặc định là khụng cú chức năng ứỡ, nhưng trong trường hợp hợp đồng cần những dit liệu đầu vào dé xử lý thêm, lúc này trường dữ liệu sẽ được sử dụng.
Các trường STARTGAS và GASPRICE rất quan trọng đối với mô hình chống DoS (Denial of Service — từ chối dịch vụ) của Ethereum Dé ngăn chặn việc lãng phí tài nguyên tính toán, mỗi giao dịch được yêu cầu đặt giới hạn cho số bước tính toán thực thi mã mà nó có thể sử dụng Đơn vị tính toán cơ bản là “gas” Thông thường, một bước tính toán tốn 1 gas, nhưng trong một số trường hợp lượng gas tiêu tốn nhiều hơn hoặc lượng dữ liệu phải lưu trữ nhiều hơn Ngoài ra còn có một khoản phí là 5 gas cho mỗi byte trong dit liệu giao dịch Mục đích của hệ thống tính phí là yêu cầu kẻ tan công phải trả một cách tương xứng cho mọi tài nguyên mà chúng sử dụng, bao gồm tài nguyên tính toán, băng thông và lưu trữ; do đó, bất kỳ giao dịch nào dẫn đến việc tiêu thụ một lượng lớn tài ngoài đều phải có mức tăng phí gas tương ứng.
2.1.6.4 Co chế chuyển đổi trạng thái trong Ethereum
Man (a v p0 52980 SN crseerecctatst es LE HINH P GxietfzTEN aLue;:
S CHARLTE © send(tx.value / 3, contract.storage[0]) a5 send(tx.value / 3, contract.storage[@]) send(tx.value / 3, contract.storage[1]) Sig: send(tx.value / 3, contract.storage[1]) send(tx.value / 3, contract.storage[2]) 30452fdedb3d send(tx.value / 3, contract.storage[2])
[ALICE, BOB, CHARLIE] #7959f2ceb8a1 [ALICE, BOB, CHARLIE]
Hình 2.7 Co chế chuyền đổi trạng thái trong Ethereum
Hàm chuyên đôi trạng thái trong Ethereum APPLY(S,TX) -> S’ có thể được mô tả như sau:
1 Kiểm tra xem giao dịch có được hình thành hợp lệ hay không (có đúng số lượng giá trị), chữ ký có hợp lệ không, và số nonce khớp với số nonce trong tài khoản người gửi, nếu không trả về lỗi.
2 Tinh phí giao dịch qua công thức STARTGAS * GASPRICE và xác định địa chỉ gửi từ chữ ký Trừ khoản phí vào số dư tài khoản của người gửi và tăng số nonce của người gửi Nếu không có đủ số dư dé chi tiêu phi giao dịch, trả về lỗi.
3 Khởi tạo GAS = STARTGAS và lay ra một lượng gas nhất định trên mỗi byte để trả cho các byte trong giao dịch.
4 Chuyên giá trị giao dịch từ tài khoản người gửi sang tài khoản nhận Nếu tài khoản nhận chưa tổn tại, tạo mới Nếu tài khoản nhận là một contract, chạy code của contract cho đến khi hoàn thành hoặc cho đến khi quá trình thực hiện tiêu tốn hết số gas.
5 Nếu việc chuyền giá trị không thành công do người gửi không có đủ tiền hoặc quá trình thực thi code gây nên hết số gas, hoàn lại tat cả các thay đổi trang thái ngoại trừ việc thanh toán phí và thêm phí vào tài khoản của miner.
6 Nếu không, hoàn lai phí của tat cả lượng gas còn lại cho người gửi và gửi phí đã trả cho số gas đã tiêu thụ cho miner.
Mô hình Ethereum và cơ chế Mining :-¿ 5¿©55z-: 25 2.2 TOK€TOIHICS Q11 90 HH ưy 27 2.2.1 Tokenomncs là gi và quan trọng ra SaO? -c++-s<+++sseesssess 27 2.2.2 Các yếu tố tạo nên một Token và Tokenoimics
S[9] APPLY S[1] APPLY S[2] APPLY S[n] Lock S_FINAL
Ethereum Blockchain có cấu trúc khá tương tự với Bitcoin Blockchain, bên cạnh đó vẫn có một vài điểm khác biệt Sự khác biệt chính giữa Ethereum và Bitcoin về kiến trúc blockchain là, không giống như Bitcoin, các khối Ethereum chứa một bản sao của cả danh sách giao dịch và trạng thái gần đây nhất Bên cạnh đó, hai giá trị khác,
25 số khối (block number) và độ khó cũng sẽ được lưu trữ trong khối Thuật toán xác thực khối cơ bản trong Ethereum như sau:
1 Kiểm tra xem khối trước đó được tham chiếu có tồn tại và hợp lệ hay không.
Kiểm tra dé đảm bảo rang timestamp của khối lớn hơn timestamp của khối tham chiếu trước đó và ít hơn 15 phút trong tương lai.
Kiêm tra xem sô khôi, độ khó, giao dịch gôc và giới hạn phí gas có hợp lệ hay không.
Kiểm tra bằng chứng công việc trên khối có hợp lệ hay không.
Gọi S[0] là trạng thái ở cuối khối trước đó.
Goi TX là danh sách giao dịch của khối, với n giao dịch Với mọi i trong khoảng 0 đến n-1, đặt S[i+1] = APPLY(S[i], TX[i]) Nếu bat kỳ phần nào trả về lỗi hoặc lượng gas vượt quá GASLIMIT, trả về lỗi. Đặt S_FINAL là S[n], nhưng thêm khối thưởng trả cho miner.
Kiểm tra gốc của Merkle Tree của trạng thái S_FINAL có bằng với gốc của trang thái cuối cùng được cung cấp trong tiêu đề khối hay không Nếu đúng, khối được xác minh là hợp lệ và ngược lại.
Thoạt nhìn, phương pháp này có vẻ không hiệu quả cao vì nó cần phải lưu trữ toàn bộ trạng thái trên mỗi khối, nhưng trên thực thế, hiệu quả được đánh giá tương đương với Bitcoin Blockchain Lý do là trạng thái được lưu trữ trong cấu trúc cây, và sau môi khôi chỉ cân thay đôi một phân nhỏ của cây Do đó, nói chung, giữa hai khôi liên ké, phần lớn cây thường sẽ giống nhau, do đó dữ liệu có thê được lưu trữ một lần và được tham chiếu 2 lần bằng cách sử dụng con trỏ (hash của cây con) Một loại cây được biệt được gọi là “Patricia Tree” được sử dụng dé thuc hién diéu nay, bao gom sửa đôi khái niệm của Merkle Tree bang cách cho phép chèn và xoá các node chứ không chi thay đổi.
2.2.1 Tokenomics là gi và quan trong ra sao?
Tokenomics là một thuật ngữ được kết hợp giữa hai từ: Token (Tiền mã hoá) và Economics (Kinh tế học) Tokenomics thé hiện ban chất mô hình kinh tế học của các tài sản Crypto trong Blockhain, chúng được xây dựng sao cho phù hợp với cơ chế vận hành của dự án Token đang đóng một vai trò rất quan trọng trong việc chuyển hoá các tài sản số trên blockchain, hình bên dưới miêu tả tốc độ phát triển cực kỳ nhanh của loại hình này Quy mô thị trường của Bitcoin và các tài san số khác vượt mức 800 triệu USD vào tháng 1 năm 2018 và mặc dù đã được điều chỉnh 85%, con số này van ở mức 130 tỷ USD kể từ ngày 2 tháng 1 năm 2019 [10]
Token market cap, USD millions 3000 1000 2000
Hình 2.9 Vốn hoá thị trường của các loại token trên blockchain Sau khi được thiết kế, các token của dự án sẽ được phân bồ đến các thành phần liên quan, trong đó có đội ngũ phát triển, các quỹ đầu tư, nhà đầu tư tương tự như việc
27 phân bé cổ phan ở một công ty, doanh nghiệp truyền thống Tokenomics phải được thiết kế một cách hợp lý dé dự án hoạt động hiệu quả, cân bằng lợi ích của các bên thông qua tỷ lệ phân bồ token và thời gian trả token.
2.2.2 Các yếu tố tạo nên một Token và Tokenomics
Nguồn cung của Token -2- 5 +5 £+££+E+E£Eerkerxerxererrs 28 2.2.2.2 Vốn hoá thị trường và vốn hoá được pha loãng
Cung tối đa (Max Supply)
Max Supply là tổng số lượng token tối đa mà dự án có thể cung cấp ra thị trường.
Total Supply là khái niệm chỉ tổng số lượng token mà dự án đã cung ra thị trường, Total Supply được tính bằng công thức số lượng Token hiện đang lưu thông công với số lượng token đang bị khoá trừ đi số token đã bi burn (đốt).
Tổng cung có các dạng như sau:
Tổng cung có định: số lượng Token được định sẵn ban dau, không thé thay đổi số lượng này.
Tổng cung không cô định: số lượng Token có thé thay đổi dựa trên cơ chế hoạt động của dự án. e Tổng cung vô hạn: số lượng Token sẽ được mint them nếu dự án hoặc mang lưới có hiệu suất hoạt động hiệu quả. e Tổng cung giảm dan: số lượng Token sẽ bi burn dé giảm thiểu tinh trạng lạm phát và tạo ra sự khan hiếm cho Token (thông qua cách gửi token vào địa chỉ dead). e Tổng cung biến động: thường gặp ở các stable coin, tong cung sẽ thay đôi liên tục dựa trên cơ chế Issue — Burn (thế chấp một tài sản để phát hành ra tài sản stablecoin tương ứng khác).
Cung lưu thông (Circulating Supply)
Cung lưu thông đề cập đến tổng số lượng Token thực tế đang được lưu hành trên thi trường, Cung lưu thông sẽ bằng Tổng cung trừ đi số Token bị khoá và số token đã bị đốt.
2.2.2.2 Vốn hoá thị trường và vốn hoá được pha loãng
Vốn hoá thị trường (Market Cap) là vốn hoá của dự án hay tông giá trị của số lượng token đang lưu thông trên thị trường tại một thời điểm Vốn hoá thị trường được tính bang cách lay giá trị token nhân với cung lưu thông.
Vốn hoá được pha loãng (Fully Dilluted Valuation - FDV) là tong giá trị của tổng số lượng token đang lưu thông và cả số token đang bị khoá.
Vôn hoá đóng vai trò định giá cho tài sản của một dự án, tác động trực tiêp đên tiêm năng tang trưởng của tài sản.
Token Governance là đặc quyền dành cho các holder token (người giữ token) của một dự án Với một sé lượng token nhat định, các holder sẽ có thé nhận được một số quyên quản trị, được tham gia vào các quyết định liên quan đến sự phát triển của dự án Có 3 loại Token Governance cơ bản:
Decentralized (Phi tập trung) là những coin/token có cơ chế quản trị do cộng động quyết định và không bị gây áp lực từ bat kỳ tô chức nào (Bitcoin, Ethereum ).
Centralized (Tập trung) là những coin/token có cơ chế quản trị do một tổ chức nắm giữ, tổ chức này có ảnh hưởng lên các tính chất của dự án mà token/coin đó đại diện.
Cơ chế này thường gặp ở các dự án Full-backed stablecoin như Tether, TrueUSD, token của các sàn giao dịch Huobi, FTX
Từ centralized đến Decentralized: coin/token được xây dựng theo cơ chế này ban đầu quyền quản trị thuộc về một tổ chức sau đó sẽ được phân quyền cho cộng đồng.
Binance coin là một ví dụ cho mô hình nay, coin nay được Binance quan tri hoàn toàn sau đó trao quyền cho người dùng kiểm soát thông qua mạng lưới Binance Smart
Chain và chương trình Validator Spotlight.
Token Allocation là lượng phân bổ token cho các thành phan tham gia dự án
Hình 2.10 Token Allocation của một số coin/token trên thi trường.
Thông thường, token của một dự án sẽ được phân bé cho các thành phan sau: Đội ngũ (Team): các thành viên nằm trong đội ngũ phát triển của dự án Bao gồm founder, developer, marketer, advisor Nếu tỷ lệ này quá thấp, đội ngũ sẽ không có động lực đề phát triển dự án lâu dài Ngược lại, cộng đồng sẽ không có động lực giữ toekn của dự án nếu tỉ lệ quá cao, gây ra sự tập trung quyền lực về một nhóm Con số lý tưởng là khoảng 20% tổng cung.
Foundation Reserve: khoản dự trữ của dự án để phát triển sản phẩm hoặc các tính năng trong tương lai Không có con số quy định cho khoản này, mỗi dự án sẽ linh động đưa ra một con số phù hợp Trên thực tế, các dự án thường dùng quanh 30%.
Liquidity Mining: Allocation này mới xuất hiện gần đây khi các dự án DeFi phát triển mạnh mẽ Đây là khoản token được mint ra thưởng cho những người dùng cung cấp thanh khoản cho các giao thức DeFi Do lượng toekn sẽ được cung ra liên tục có thé
30 dẫn đến tình trạng lạm phát, các dự án thường sẽ giảm phần thưởng này theo thời gian, ngoài ra một số dự án còn mua lại token và burn để giảm sự lạm phát cho chính dự án.
Seed / Private / Public sale: số lượng token dành cho các đợt mở bán huy động vốn dé phát triển sản phẩm với mức giá ưu đãi hơn so với khi được đưa lên các san giao dịch Thông thường, một dự án sẽ có 3 đợt mở bán đó là Seed sale, Private sale, Public sale.
Airdrop / Retroactive: hoạt động được dùng dé thu hút sự chú ý của người dùng tương tự như một cách marketing hiệu quả, chiếm khoảng 1-2% tông cung.
Token Release là kế hoạch phân phối token ra thị trường của một dự án Tương tự như Token Allocation, Token Release ảnh hưởng rất lớn đến giá trị của token và động lực giữ token của người dùng Có 2 kiêu phô biến hiện nay:
Phân phối theo lịch trình định sẵn: mỗi dự án sẽ lập ra một lịch trình phân phối khác nhau, thông thường sẽ là 1 năm, 3 — 5 năm và trên 10 năm.