SO SÁNH · 8 PHÚT ĐỌC
UTXO và Account model: cách blockchain ghi số dư
Hai cách blockchain ghi nhận số dư: UTXO và account model
Khi bạn nhìn thấy "số dư ví" trong một ứng dụng crypto, con số đó không phải lúc nào cũng được lưu giống nhau ở tầng sổ cái bên dưới. Có hai kiến trúc kế toán on-chain phổ biến, và chúng định hình cách một giao dịch được xây dựng, phí trả bao nhiêu, cũng như dấu vết bạn để lại trên blockchain.
Bitcoin dùng mô hình UTXO (Unspent Transaction Output — đầu ra giao dịch chưa tiêu). Ethereum và phần lớn các chuỗi EVM dùng account model (mô hình tài khoản). Đây là so sánh về mô hình dữ liệu của sổ cái, không phải so sánh sàn hay so sánh coin nào tốt hơn. Hiểu điểm khác biệt này giúp bạn đọc một giao dịch on-chain rõ ràng hơn và bớt bối rối khi thấy những khái niệm như "tiền thối" hay "nonce".
Mô hình UTXO của Bitcoin: số dư là tổng các đầu ra chưa tiêu
Trong mô hình UTXO, blockchain không lưu một con số "số dư" cho từng địa chỉ. Thay vào đó, sổ cái là một tập hợp các đầu ra chưa tiêu — mỗi UTXO giống như một tờ tiền mệnh giá cố định gắn với điều kiện chi tiêu (thường là "ai chứng minh được quyền sở hữu khóa tương ứng thì tiêu được").
Số dư của bạn chỉ là con số suy ra: ví quét tất cả các UTXO mà bạn có thể tiêu và cộng lại. Ví như một chiếc túi đựng nhiều tờ tiền có mệnh giá lẻ.
Giao dịch được xây thế nào
Một giao dịch UTXO gồm các đầu vào (inputs) trỏ tới những UTXO cũ, và các đầu ra (outputs) tạo ra UTXO mới. Quy tắc cốt lõi: mỗi UTXO phải được tiêu trọn vẹn — không thể tiêu một phần một tờ tiền.
Ví dụ: bạn có một UTXO trị giá 1 BTC và muốn gửi 0,3 BTC. Bạn phải "xé" cả tờ 1 BTC làm đầu vào, tạo một đầu ra 0,3 BTC cho người nhận và một đầu ra khác trả tiền thối (change) về cho chính bạn (trừ đi phí). Đây chính là lý do "change output" tồn tại — nó là cơ chế bắt buộc, không phải tùy chọn.
Một hệ quả kỹ thuật: giao dịch có thể gộp nhiều đầu vào nhỏ (như trả bằng nhiều tờ tiền lẻ), nên kích thước giao dịch và phí phụ thuộc số lượng UTXO được gộp, chứ không đơn thuần vào số tiền gửi.
Mô hình account của Ethereum: số dư như một tài khoản
Account model gần với hình dung trực giác về tài khoản ngân hàng hơn. Sổ cái lưu trực tiếp một trạng thái toàn cục (global state): mỗi tài khoản có một địa chỉ, một con số số dư rõ ràng, và (với ví thường) một nonce đếm số giao dịch đã gửi.
Khi bạn chuyển tiền, mạng lưới đơn giản trừ số dư ở tài khoản gửi và cộng vào tài khoản nhận — cập nhật trực tiếp con số, không cần "xé" đầu ra hay tạo tiền thối.
Hai loại tài khoản và vai trò của nonce
Ethereum có hai loại tài khoản: tài khoản do người dùng kiểm soát bằng khóa (EOA) và tài khoản hợp đồng (chứa mã smart contract). Chính vì trạng thái được lưu trực tiếp mà smart contract có thể đọc/ghi biến số dư và dữ liệu nội bộ một cách tự nhiên — điều khiến account model rất hợp với ứng dụng phi tập trung.
Nonce đóng vai trò chống phát lại (replay) và đảm bảo thứ tự: mỗi giao dịch từ một tài khoản phải dùng nonce tăng dần, nên cùng một giao dịch không thể bị gửi lại hai lần.
Hệ quả tới phí, quyền riêng tư và tiền thối (change)
Bảng dưới đối chiếu hai mô hình ở những khía cạnh bạn thực sự cảm nhận được khi dùng:
| Khía cạnh | UTXO (Bitcoin) | Account model (Ethereum) |
|---|---|---|
| Số dư được lưu thế nào | Không lưu; suy ra bằng cách cộng các UTXO | Lưu trực tiếp một con số cho mỗi tài khoản |
| Đơn vị cơ bản | Đầu ra chưa tiêu (như tờ tiền) | Số dư tài khoản (như tài khoản ngân hàng) |
| Tiền thối (change) | Có; phần dư quay lại ví qua change output | Không cần; chỉ trừ đúng số tiền |
| Chống phát lại / thứ tự | Mỗi UTXO chỉ tiêu một lần | Nonce tăng dần cho mỗi tài khoản |
| Yếu tố ảnh hưởng phí | Số lượng và kích thước UTXO được gộp | Độ phức tạp tính toán của giao dịch |
| Quyền riêng tư mặc định | Dễ dùng địa chỉ mới cho mỗi khoản nhận | Địa chỉ thường được tái dùng nhiều lần |
| Hợp đồng thông minh | Mô hình script hạn chế hơn | Trạng thái toàn cục thuận cho dApp |
Vài điểm đáng lưu ý:
- Phí: với UTXO, gộp nhiều UTXO lẻ làm giao dịch "nặng" hơn và phí cao hơn, kể cả khi số tiền gửi nhỏ. Với account model, phí gắn với khối lượng tính toán (gas) mà giao dịch tiêu tốn.
- Quyền riêng tư: mô hình UTXO thuận cho việc tạo địa chỉ nhận mới mỗi lần, giúp làm mờ liên kết giữa các khoản. Account model tái dùng một địa chỉ nên lịch sử hoạt động thường dễ ghép nối hơn. Đây là đặc tính mặc định của mô hình, không phải một tuyên bố tuyệt đối về mức ẩn danh.
- Tiền thối: nếu từng thấy ví Bitcoin sinh ra một giao dịch có hai đầu ra dù bạn chỉ gửi cho một người, giờ bạn hiểu đầu ra thứ hai là tiền thối trả về chính mình.
Khi nào mô hình nào phù hợp hơn
Đây không phải lựa chọn của người dùng cuối — bạn không "chọn" mô hình khi gửi coin. Nhưng ở góc thiết kế chuỗi, có thể tóm tắt:
- Nghiêng về UTXO khi ưu tiên tính chất giống tiền mặt, xác thực song song đơn giản và mô hình quyền riêng tư dựa trên nhiều địa chỉ — phù hợp với một mạng lưới thanh toán/lưu trữ giá trị.
- Nghiêng về account model khi cần trạng thái toàn cục giàu ngữ nghĩa để chạy smart contract và ứng dụng phi tập trung, nơi hợp đồng phải đọc/ghi dữ liệu liên tục.
Nhiều chuỗi hiện đại còn kết hợp hoặc biến thể hai cách tiếp cận này, nên đừng coi đây là ranh giới cứng tuyệt đối.
Vì sao hiểu điều này giúp đọc giao dịch on-chain rõ hơn
Khi mở một trình khám phá blockchain (block explorer), giao dịch Bitcoin và giao dịch Ethereum trông khác hẳn nhau — và bây giờ bạn biết vì sao. Một giao dịch Bitcoin liệt kê danh sách inputs/outputs kèm change; một giao dịch Ethereum hiển thị "from", "to", số dư thay đổi và nonce.
Nắm được mô hình kế toán bên dưới giúp bạn:
- Hiểu vì sao phí Bitcoin đôi khi cao dù gửi ít (do gộp nhiều UTXO).
- Không hoảng khi thấy giao dịch có đầu ra "gửi về chính mình" (đó là tiền thối).
- Giải thích được nonce khi giao dịch Ethereum bị "kẹt" hoặc cần thay thế.
- Đọc quyền riêng tư một cách thực tế thay vì tin vào các khẳng định tuyệt đối.
Đây là loại kiến thức nền giúp bạn đánh giá các phát biểu kỹ thuật về on-chain một cách tỉnh táo hơn, thay vì chỉ nhìn con số số dư trên bề mặt ứng dụng.
Nguồn tham khảo
- Wikipedia — Unspent transaction output — Mô hình UTXO.
- ethereum.org — Accounts — Mô hình tài khoản Ethereum.
⚠️ Miễn trừ trách nhiệm: Nội dung chỉ nhằm mục đích thông tin và giáo dục, KHÔNG phải lời khuyên đầu tư, pháp lý hay bảo mật cá nhân. Thị trường tài sản mã hoá biến động mạnh và tiềm ẩn rủi ro mất vốn. Tại Việt Nam, khung pháp lý đang thay đổi: Nghị định 284/2026/NĐ-CP có hiệu lực 1/9/2026 quy định xử phạt vi phạm hành chính về tài sản mã hoá. Hãy tự nghiên cứu (DYOR) và cân nhắc tham vấn tổ chức/chuyên gia được cấp phép trước khi ra quyết định.
Câu hỏi thường gặp
- UTXO và account model khác nhau ở điểm cốt lõi nào?
- UTXO không lưu số dư mà lưu các đầu ra chưa tiêu (như những tờ tiền), số dư được suy ra bằng cách cộng lại. Account model lưu trực tiếp một con số số dư cho mỗi tài khoản và cập nhật bằng cách cộng/trừ, gần với hình dung tài khoản ngân hàng.
- Tại sao giao dịch Bitcoin lại có tiền thối (change) còn Ethereum thì không?
- Vì mỗi UTXO của Bitcoin phải tiêu trọn vẹn, nếu gửi ít hơn giá trị đầu vào thì phần dư phải quay về ví qua một change output. Ethereum lưu số dư trực tiếp nên chỉ cần trừ đúng số tiền cần gửi, không sinh tiền thối.
- Mô hình nào riêng tư hơn?
- Về mặc định, UTXO thuận cho việc tạo địa chỉ nhận mới mỗi lần, làm mờ liên kết giữa các khoản; account model thường tái dùng một địa chỉ nên lịch sử dễ ghép nối hơn. Đây là đặc tính thiết kế, không phải khẳng định tuyệt đối về mức ẩn danh của người dùng.
Nội dung trên website chỉ mang tính thông tin, không phải lời khuyên đầu tư. Giao dịch crypto có rủi ro mất vốn rất cao.