Cafe blockchain số 19. UTXO vs Account-based blockchain.

 UTXO vs Account-based blockchain.

---
Khi nói đến các trường phái trong blockchain, mọi người hay đặt PoS và PoW lên bàn cân. Cái nào hay hơn cái nào, tương lai cái nào tốt hơn.
Đó là về consensus, nhưng còn data model (mô hình tổ chức dữ liệu) thì cũng có 2 trường phái rất rõ ràng: UTXO vs Account-based.
---
UTXO: (Unspent transaction output). Nghĩa là hệ thống sẽ không lưu trữ số dư của mọi tài khoản, số dư được tính bằng cách cộng tất cả các output chưa được tiêu lại với nhau.
Đặc trưng của mô hình này, là mỗi giao dịch sẽ luôn có input và output. Trừ coinbase transaction (giao dịch thưởng coin cho thợ đào) thì tất cả các transaction khác, input của nó bắt buộc phải là output của 1 transaction nào đó đã được xác thực trước đó.
Nghĩa là, nếu bạn nhận được 10 BTC trong 1 tx, thì nếu bạn muốn tiêu 5 BTC, bạn bắt buộc phải tiêu cả 10 BTC đó.
Bạn có thể nhận lại phần thừa bằng cách chuyển cho chính mình (thêm account của mình vào output để nhận phần thừa)
Mindset này giống như 1 chiếc ví da thực thụ. Mỗi đồng tiền có 1 mệnh giá. nếu bạn có 1 tờ 500k, bạn muốn tiêu 100k thì bắt buộc bạn phải sử dụng cả 500k đó, và nhận lại phần thừa 400k vậy.
Ví của bạn có thể có rất nhiều transaction output chưa được tiêu (UTXO), giống như 1 cái ví đựng tiền, có nhiều tờ tiền vậy. Mỗi tờ tiền là 1 UTXO. Trong mỗi giao dịch, bạn có thể sử dụng 1 hoặc nhiều tờ.
Muốn biết số dư của 1 địa chỉ ví, cần lấy tất cả các tờ tiền(UTXO) và cộng chúng lại.
(Yên tâm, các ví (hoặc explorer) sẽ làm điều này cho bạn)
Nổi tiếng nhất trong trường phái này là Bitcoin.
Khi cài node Bitcoin, thường thì bạn không thể truy vấn số dư của 1 address bất kỳ, vì hệ thống thường không tổng hợp sẵn. Bạn cần theo dõi địa chỉ nào thì node mới scan và theo dõi số dư địa chỉ ví đó cho bạn, có khi mất hàng giờ đồng hồ.
-----
Account-based: Rất nhiều blockchain không sử dụng cách làm của bitcoin, mà sử dụng hệ thống cơ sở dữ liệu lưu trữ số dư của từng tài khoản.
Khi A chuyển tiền cho B, đơn giản là trừ số dư của A số tiền muốn gửi (và cả phí giao dịch), và cộng vào số dư của B 1 lượng tương ứng. Mindset này giống như cách tổ chức dữ liệu của tài khoản ngân hàng.
Điển hình của trường phái này là Ethereum.
Khi cài 1 node ethereum, bạn có thể truy vấn số dư của bất kỳ tài khoản nào, ngay lập tức.
------
Nếu bạn phát triển 1 blockchain hoàn toàn mới, bạn sẽ theo trường phái nào?

Nhận xét

Bài đăng phổ biến từ blog này

Tấn công thao túng giá trong DeFi - đơn giản, hay gặp nhưng khó nhận diện

Ai bảo bitcoin là hữu hạn

Cafe sáng blockchain - tập 1. PHI TẬP TRUNG (decentralized)

Tổng số lượt xem trang