
- 1. Account Model là gì? Định nghĩa theo cơ chế
- 2. Cấu trúc tài khoản trong Ethereum
- 2.1. Externally Owned Account (EOA)
- 2.2. Contract Account (Tài khoản hợp đồng)
- 3. Cách hoạt động của Account Model trong Ethereum
- 3.1. Gửi giao dịch từ EOA
- 3.2. Xử lý giao dịch
- 3.3. Cập nhật World State
- 4. So sánh Account Model và UTXO Model
- 5. Ưu điểm của Account Model
- 6. Nhược điểm của Account Model
- 7. Vai trò của Account Model trong hệ sinh thái Ethereum
- 8. Ví dụ minh họa Account Model trong Ethereum
- 9. Tương lai của Account Model
- 10. Câu hỏi thường gặp về Account Model
- 11. Kết luận
Vậy Account Model là gì? Ethereum sử dụng nó như thế nào để vận hành các hợp đồng thông minh và hệ sinh thái DeFi rộng lớn? Bài viết này sẽ đi sâu vào cơ chế kỹ thuật của Account Model, cấu trúc tài khoản, cách giao dịch hoạt động, và sự so sánh với UTXO Model.
1. Account Model là gì? Định nghĩa theo cơ chế
Account Model (mô hình tài khoản) là một cách tổ chức dữ liệu blockchain, trong đó mỗi địa chỉ ví được coi là một tài khoản với các thuộc tính như số dư, nonce (số thứ tự giao dịch), và mã hợp đồng (nếu là tài khoản hợp đồng). Không giống như UTXO Model – nơi số dư là tổng các “mảnh” UTXO chưa chi tiêu – trong Account Model, số dư được lưu trực tiếp như một số nguyên trong trạng thái toàn cục (global state) của blockchain.
Khi một giao dịch xảy ra, blockchain sẽ cập nhật trạng thái của các tài khoản liên quan: trừ số dư của người gửi, cộng số dư của người nhận, và tăng nonce của người gửi. Điều này diễn ra theo cách tương tự như cách ngân hàng xử lý chuyển khoản.
Ethereum là blockchain đầu tiên và nổi tiếng nhất sử dụng Account Model. Mô hình này cho phép Ethereum dễ dàng hỗ trợ hợp đồng thông minh – các chương trình tự động chạy trên blockchain – vì hợp đồng thông minh có thể được lưu trữ như một loại tài khoản đặc biệt có mã code. Điều này khác biệt hoàn toàn so với Bitcoin, nơi UTXO Model hạn chế khả năng lập trình phức tạp.
Bạn có thể tìm hiểu thêm về khái niệm hợp đồng thông minh trong bài Smart Contract là gì?.
2. Cấu trúc tài khoản trong Ethereum
Ethereum định nghĩa hai loại tài khoản:

2.1. Externally Owned Account (EOA)
EOA (tài khoản sở hữu bên ngoài) là loại tài khoản do con người kiểm soát thông qua khóa riêng tư. Mỗi EOA bao gồm:
-
Địa chỉ (Address): Một chuỗi 20 byte (40 ký tự hex) bắt đầu bằng
0x, được tạo ra từ khóa công khai. -
Số dư (Balance): Lượng ETH mà tài khoản sở hữu, tính bằng wei (1 ETH = 10^18 wei).
-
Nonce: Số thứ tự giao dịch, dùng để chống chi tiêu gấp đôi và đảm bảo giao dịch được xử lý đúng thứ tự.
-
Không có mã code.
Người dùng tương tác với blockchain Ethereum bằng cách ký giao dịch từ EOA của mình. Ví dụ, khi bạn gửi ETH từ MetaMask, MetaMask đang sử dụng EOA của bạn.
2.2. Contract Account (Tài khoản hợp đồng)
Contract Account là tài khoản được tạo ra khi một hợp đồng thông minh được triển khai lên blockchain. Nó bao gồm:
-
Địa chỉ: Được tạo ra từ địa chỉ của người triển khai và nonce.
-
Số dư: Lượng ETH mà hợp đồng đang giữ.
-
Nonce: Số lượng hợp đồng mà tài khoản này đã tạo ra.
-
Mã code (Code Hash): Mã bytecode của hợp đồng, được lưu trữ bất biến.
-
Bộ nhớ lưu trữ (Storage): Dữ liệu trạng thái của hợp đồng (các biến lưu trữ).
Khác với EOA, Contract Account không có khóa riêng tư và không thể tự khởi tạo giao dịch. Nó chỉ có thể phản ứng khi nhận được giao dịch từ một EOA hoặc từ một hợp đồng khác.
Khi một giao dịch gọi đến Contract Account, mã code của hợp đồng sẽ được thực thi bởi Ethereum Virtual Machine (EVM). Hợp đồng có thể thay đổi trạng thái của chính nó, gửi ETH, hoặc gọi các hợp đồng khác.
Bạn có thể xem chi tiết tại Ethereum.org – Accounts.
3. Cách hoạt động của Account Model trong Ethereum
Account Model trong Ethereum hoạt động dựa trên trạng thái toàn cục (World State) – một cơ sở dữ liệu lưu trữ số dư và trạng thái của tất cả các tài khoản. Mỗi node Ethereum duy trì một bản sao của World State, và nó được cập nhật sau mỗi khối.

3.1. Gửi giao dịch từ EOA
Khi một EOA muốn gửi ETH hoặc tương tác với hợp đồng, nó phải tạo một giao dịch bao gồm:
-
Nonce: Số thứ tự giao dịch.
-
Gas Price và Gas Limit: Xác định phí giao dịch.
-
To: Địa chỉ người nhận (EOA hoặc Contract Account).
-
Value: Số ETH gửi (có thể bằng 0 nếu chỉ gọi hợp đồng).
-
Data: Dữ liệu kèm theo (thường là lệnh gọi hàm hợp đồng).
Người dùng ký giao dịch bằng khóa riêng tư, sau đó phát sóng lên mạng lưới.
3.2. Xử lý giao dịch
Khi một giao dịch được đưa vào khối, các node sẽ thực thi nó theo các bước:
-
Kiểm tra nonce có đúng thứ tự không.
-
Kiểm tra số dư của EOA có đủ trả value + phí gas không.
-
Trừ số dư của người gửi.
-
Nếu
Tolà EOA: cộngvaluevào số dư của người nhận. -
Nếu
Tolà Contract Account: nạp mã code của hợp đồng vào EVM, thực thi với input làdata, và cập nhật trạng thái theo kết quả. -
Tính phí gas thực tế (gas used * gas price), trừ từ số dư người gửi, trả cho validator.
Như vậy, số dư được cập nhật trực tiếp, không cần khái niệm “tiền thối” như UTXO. Ví dụ, nếu bạn có 10 ETH và gửi 3 ETH, số dư của bạn chỉ đơn giản giảm xuống còn 7 ETH (trừ phí). Không có UTXO bị tiêu thụ hay tạo mới.
3.3. Cập nhật World State
Sau khi tất cả giao dịch trong khối được thực thi, World State mới được lưu trữ. Mỗi node cập nhật bản sao của mình, đảm bảo đồng thuận. Bạn có thể tìm hiểu thêm về dữ liệu blockchain trong bài Blockchain Data là gì?.
4. So sánh Account Model và UTXO Model
| Tiêu chí | Account Model (Ethereum) | UTXO Model (Bitcoin) |
|---|---|---|
| Số dư | Lưu trực tiếp trong tài khoản | Tổng các UTXO chưa chi tiêu |
| Giao dịch | Chỉ cần số dư đủ, không cần tham chiếu đến từng mảnh | Phải tham chiếu đến các UTXO cụ thể làm input |
| Chi tiêu một phần | Có thể chi tiêu một phần trực tiếp | Không thể, phải tiêu thụ toàn bộ UTXO và tạo tiền thối |
| Smart contract | Hỗ trợ tốt, hợp đồng là tài khoản đặc biệt | Hỗ trợ hạn chế (Bitcoin script đơn giản) |
| Nonce | Cần thiết để chống replay và đảm bảo thứ tự | Không cần (UTXO độc lập) |
| Song song hóa | Khó hơn do trạng thái tài khoản toàn cục | Dễ hơn vì UTXO độc lập |
| Quyền riêng tư | Kém hơn (một địa chỉ dùng nhiều lần) | Tốt hơn (dùng nhiều địa chỉ) |
| Phí giao dịch | Phụ thuộc vào gas (độ phức tạp) | Phụ thuộc vào kích thước giao dịch |
Account Model linh hoạt hơn cho hợp đồng thông minh và DeFi, nhưng UTXO Model có ưu thế về bảo mật và quyền riêng tư. Bạn có thể xem chi tiết về UTXO trong bài UTXO là gì?.
5. Ưu điểm của Account Model
-
Thân thiện với nhà phát triển: Lập trình hợp đồng thông minh dễ dàng hơn nhiều so với UTXO, vì trạng thái tài khoản đơn giản và trực quan.
-
Hỗ trợ DeFi và dApp: Hầu hết các giao thức DeFi, NFT, DAO đều được xây dựng trên Account Model vì tính linh hoạt.
-
Tiết kiệm không gian: Không cần lưu trữ tập hợp UTXO riêng biệt; chỉ cần lưu số dư và nonce cho mỗi tài khoản.
-
Giao dịch đơn giản: Người dùng không cần lo lắng về việc chọn UTXO hay tiền thối.
-
Dễ dàng quản lý danh tính: Một địa chỉ có thể được sử dụng như một danh tính ổn định, thuận tiện cho quản lý tài sản.
6. Nhược điểm của Account Model
-
Rủi ro replay attack: Nếu không có nonce, kẻ tấn công có thể phát lại giao dịch. Nonce giải quyết điều này nhưng làm phức tạp hơn.
-
Khả năng song song hóa kém: Vì trạng thái toàn cục phải được cập nhật tuần tự, việc xử lý song song khó khăn hơn so với UTXO.
-
Quyền riêng tư kém: Khi dùng một địa chỉ nhiều lần, người ngoài có thể theo dõi toàn bộ hoạt động của địa chỉ đó.
-
Nguy cơ tấn công vào hợp đồng: Contract Account có mã code có thể bị khai thác nếu có lỗi, dẫn đến mất tài sản.
7. Vai trò của Account Model trong hệ sinh thái Ethereum
Account Model là nền tảng cho sự phát triển bùng nổ của Ethereum:
-
DeFi: Các giao thức như Uniswap, Aave, Compound dựa trên Account Model để quản lý số dư và tương tác hợp đồng. Xem thêm: DeFi là gì?
-
NFT: Các tiêu chuẩn ERC-721, ERC-1155 được triển khai dưới dạng Contract Account, lưu trữ quyền sở hữu và metadata.
-
DAO: Các tổ chức tự trị phi tập trung sử dụng hợp đồng thông minh để quản lý quỹ và bỏ phiếu.
-
Staking: Ethereum PoS sử dụng Account Model để theo dõi số dư validator và phần thưởng. Xem thêm: Staking là gì?
Nhờ Account Model, Ethereum đã trở thành nền tảng hợp đồng thông minh lớn nhất thế giới.
8. Ví dụ minh họa Account Model trong Ethereum
Giả sử Alice có EOA với số dư 10 ETH. Cô muốn gửi 3 ETH cho Bob (cũng là EOA).
-
Alice tạo giao dịch:
-
Nonce: 0
-
To: địa chỉ Bob
-
Value: 3 ETH
-
Gas limit: 21,000
-
Gas price: 20 gwei
-
-
Alice ký và phát sóng giao dịch.
-
Node xử lý:
-
Kiểm tra nonce 0 hợp lệ.
-
Kiểm tra số dư Alice ≥ 3 ETH + phí gas.
-
Trừ 3 ETH khỏi số dư Alice.
-
Cộng 3 ETH vào số dư Bob.
-
Trừ phí gas = 21,000 * 20 gwei = 0.00042 ETH khỏi Alice, trả cho validator.
-
Tăng nonce Alice lên 1.
-
-
World State cập nhật: Alice còn 6.99958 ETH, Bob tăng thêm 3 ETH.
Sau đó, nếu Alice muốn gọi một hợp đồng (ví dụ swap trên Uniswap), giao dịch sẽ có To là địa chỉ hợp đồng, Value có thể bằng 0, và Data chứa lệnh gọi hàm. Hợp đồng sẽ thực thi và cập nhật trạng thái của nó.
Bạn có thể xem thêm về giao dịch trong bài Transaction là gì?.
9. Tương lai của Account Model
Account Model tiếp tục được cải tiến:
-
Account Abstraction (ERC-4337): Cho phép tạo ra các “smart contract wallet” với logic tùy chỉnh, giảm phụ thuộc vào EOA, cải thiện trải nghiệm người dùng.
-
Tăng khả năng mở rộng: Các giải pháp Layer-2 (Rollup) sử dụng Account Model trên Layer-2 để tăng tốc độ và giảm phí.
-
Cải thiện quyền riêng tư: Các kỹ thuật như stealth address, zero-knowledge proofs có thể che giấu số dư và giao dịch.
-
Tương tác đa chuỗi: Account Model có thể được mở rộng để tương tác với các blockchain khác.
Bạn có thể tìm hiểu thêm về Layer-2 trong bài Layer-2 Blockchain là gì?.
10. Câu hỏi thường gặp về Account Model
- Account Model có an toàn không?
Account Model an toàn nếu người dùng bảo vệ khóa riêng tư và hợp đồng được audit kỹ. Tuy nhiên, rủi ro replay attack và lỗi hợp đồng vẫn tồn tại.
- Tại sao Ethereum chọn Account Model thay vì UTXO?
Ethereum cần hỗ trợ hợp đồng thông minh phức tạp, và Account Model dễ dàng tích hợp với máy ảo EVM hơn UTXO.
- Tôi có thể chuyển đổi giữa Account Model và UTXO không?
Không trực tiếp, vì chúng là hai blockchain khác nhau. Nhưng có các cầu nối (bridge) để chuyển tài sản giữa Bitcoin và Ethereum.
- Account Model có phải là tài khoản ngân hàng không?
Về bản chất có điểm tương đồng: số dư được lưu trực tiếp. Nhưng Account Model là phi tập trung, không ai kiểm soát tài khoản của bạn ngoài khóa riêng tư.
- Làm thế nào để tạo một Account trong Ethereum?
Bạn có thể tạo bằng cách tạo ví (như MetaMask), nó sẽ sinh ra cặp khóa và địa chỉ EOA cho bạn.
11. Kết luận
Account Model là gì? Đó là mô hình tài khoản mà Ethereum sử dụng, trong đó mỗi địa chỉ có số dư và nonce riêng, và giao dịch cập nhật trực tiếp số dư. Mô hình này cho phép Ethereum hỗ trợ hợp đồng thông minh và hệ sinh thái DeFi rộng lớn. So với UTXO Model của Bitcoin, Account Model linh hoạt và thân thiện với nhà phát triển hơn, mặc dù có một số đánh đổi về quyền riêng tư và khả năng mở rộng. Hiểu rõ Account Model giúp bạn nắm bắt cơ chế hoạt động của Ethereum và các blockchain tương tự.
Nguồn tham khảo:
Ethereum.org – Accounts | Ethereum.org – Transactions
- 1. Account Model là gì? Định nghĩa theo cơ chế
- 2. Cấu trúc tài khoản trong Ethereum
- 2.1. Externally Owned Account (EOA)
- 2.2. Contract Account (Tài khoản hợp đồng)
- 3. Cách hoạt động của Account Model trong Ethereum
- 3.1. Gửi giao dịch từ EOA
- 3.2. Xử lý giao dịch
- 3.3. Cập nhật World State
- 4. So sánh Account Model và UTXO Model
- 5. Ưu điểm của Account Model
- 6. Nhược điểm của Account Model
- 7. Vai trò của Account Model trong hệ sinh thái Ethereum
- 8. Ví dụ minh họa Account Model trong Ethereum
- 9. Tương lai của Account Model
- 10. Câu hỏi thường gặp về Account Model
- 11. Kết luận









