Bitcoin không có tài khoản hay số dư ở tầng giao thức. Sổ cái Bitcoin thực chất chỉ theo dõi một tập hợp những đầu ra giao dịch chưa được chi tiêu, tiếng Anh viết tắt là UTXO. Mỗi UTXO giống như một đồng xu có mệnh giá bất kỳ, bị khoá bởi một điều kiện. Mỗi giao dịch tiêu trọn vẹn một số UTXO và tạo ra những UTXO mới. Con số số dư mà ví hiển thị chỉ là tổng các UTXO mà ví có khả năng mở khoá.
Mô hình này khác hẳn cách ngân hàng ghi sổ, và cũng khác mô hình tài khoản của Ethereum. Bài viết giải thích UTXO hoạt động thế nào, so sánh với mô hình tài khoản, và chỉ ra hệ quả thực tế cho phí, quyền riêng tư và cách ví vận hành.
Đồng xu không chia nhỏ khi tiêu
Hình dung bạn có trong ví ba tờ tiền: một tờ năm trăm nghìn, một tờ hai trăm nghìn và một tờ năm mươi nghìn. Bạn không có một con số số dư bảy trăm năm mươi nghìn ở đâu cả; bạn có ba tờ tiền, và tổng của chúng là bảy trăm năm mươi nghìn.
UTXO cũng vậy. Ví của bạn có thể có ba UTXO với giá trị khác nhau. Khi muốn trả một lượng, ví chọn một hoặc vài UTXO, dùng trọn vẹn chúng làm đầu vào.
Nếu tổng đầu vào lớn hơn cần trả, phần dư được trả lại qua một đầu ra mới cho chính bạn, giống tiền thối. Phần chênh lệch còn lại giữa đầu vào và đầu ra là phí cho thợ đào.
Sau giao dịch, các UTXO đầu vào biến mất khỏi tập UTXO, và các đầu ra mới, cho người nhận và tiền thối cho bạn, được thêm vào.
Tập UTXO là trạng thái của sổ cái
Mỗi nút đầy đủ duy trì tập UTXO, tức danh sách mọi đầu ra chưa chi tiêu tại thời điểm hiện tại. Đây là thứ cần thiết để kiểm tra giao dịch mới: đầu vào phải trỏ đến một UTXO đang tồn tại trong tập.
Tập UTXO nhỏ hơn nhiều so với toàn bộ chuỗi khối, vì nó chỉ chứa những gì chưa tiêu. Đây là lý do nút cắt tỉa có thể xoá khối cũ mà vẫn kiểm tra giao dịch đầy đủ.
Kích thước tập UTXO là một mối quan tâm của cộng đồng: mỗi UTXO mới làm tập lớn thêm, tốn bộ nhớ cho mọi nút. Những đầu ra bụi không bao giờ được tiêu là gánh nặng vĩnh viễn.
Vì vậy, các quy tắc chuyển tiếp như ngưỡng bụi được đặt ra để hạn chế tạo UTXO quá nhỏ.
So với mô hình tài khoản
Ethereum dùng mô hình tài khoản: mỗi địa chỉ có một số dư, và giao dịch trừ số dư bên gửi, cộng số dư bên nhận, giống ngân hàng. Mỗi tài khoản có một số thứ tự giao dịch để chống phát lại.
Mô hình tài khoản dễ hiểu hơn cho người dùng và thuận tiện cho hợp đồng thông minh phức tạp, vì trạng thái nằm gọn ở một chỗ.
Mô hình UTXO có ưu điểm khác: các giao dịch chi tiêu UTXO khác nhau độc lập với nhau, dễ kiểm tra song song. Không có trạng thái toàn cục phức tạp cần cập nhật theo thứ tự.
Mô hình UTXO cũng khuyến khích dùng địa chỉ mới cho mỗi lần nhận, tốt cho quyền riêng tư, trong khi mô hình tài khoản thường gắn mọi hoạt động vào một địa chỉ.
Hệ quả cho phí và quản lý đồng xu
Vì phí tính theo dung lượng, và mỗi đầu vào tốn dung lượng, một ví có nhiều UTXO nhỏ sẽ tốn nhiều phí hơn khi chi tiêu. Nhận nhiều khoản nhỏ rồi gom lại khi phí cao có thể rất tốn kém.
Một số người gom UTXO nhỏ thành UTXO lớn vào lúc mạng vắng, phí thấp. Việc này gọi là hợp nhất. Nó tiết kiệm phí về sau, nhưng có thể làm lộ rằng các UTXO đó cùng một chủ.
Ví tốt có thuật toán chọn đồng xu cân bằng giữa phí, quyền riêng tư và việc tránh tạo tiền thối quá nhỏ. Ví nâng cao cho phép người dùng tự chọn UTXO nào để tiêu, gọi là kiểm soát đồng xu.
Hiểu UTXO giúp giải thích những hiện tượng tưởng lạ, như vì sao gửi cùng một lượng mà hôm nay phí cao hơn hôm qua dù mức phí trên byte không đổi.
Hệ quả cho quyền riêng tư
Mọi UTXO và giao dịch đều công khai. Người quan sát có thể theo dấu từ UTXO này sang UTXO khác qua các giao dịch, gọi là phân tích chuỗi.
Một số giả định thường được dùng: các đầu vào trong cùng giao dịch thuộc cùng một chủ; đầu ra có số tròn là thanh toán, đầu ra lẻ là tiền thối. Những giả định này không phải lúc nào cũng đúng, nhưng thường đủ để liên kết nhiều địa chỉ.
Dùng địa chỉ mới cho mỗi lần nhận, tránh gom UTXO từ những nguồn khác nhau, là những thói quen giúp giảm liên kết. Ví hiện đại thường tự làm việc tạo địa chỉ mới.
Cần nhấn mạnh: các biện pháp tăng riêng tư hợp pháp khác với việc cố tình che giấu nguồn gốc tiền bất hợp pháp. Trang này không hướng dẫn né tránh quy định chống rửa tiền.
Cũng nên biết rằng các dịch vụ có định danh khách hàng có thể liên kết UTXO với danh tính thật. Khi đó, mọi lịch sử trước và sau của những UTXO liên quan đều có thể bị suy ra. Quyền riêng tư trên Bitcoin vì thế là chuyện của cả hệ sinh thái, không chỉ của giao thức.
Đây cũng là lý do vì sao nói Bitcoin ẩn danh tuyệt đối là sai; chúng tôi bàn kỹ hơn ở danh mục hiểu lầm phổ biến.
Những điểm cần nhớ về UTXO
UTXO Đầu ra giao dịch chưa được chi tiêu, đơn vị cơ bản của sổ cái Bitcoin.
Không có số dư Giao thức không ghi số dư, ví tự cộng các UTXO.
Tiêu trọn vẹn Mỗi UTXO dùng làm đầu vào phải được tiêu hết.
Tiền thối Phần dư trả về chính người gửi qua đầu ra mới.
Phí Bằng tổng đầu vào trừ tổng đầu ra.
Tập UTXO Trạng thái hiện tại mà mỗi nút đầy đủ duy trì.
Kiểm tra song song Giao dịch tiêu UTXO khác nhau độc lập, dễ kiểm tra cùng lúc.
Chi phí đầu vào Mỗi đầu vào tốn dung lượng, nhiều UTXO nhỏ làm phí cao.
Hợp nhất Gom UTXO nhỏ khi phí thấp, đánh đổi với quyền riêng tư.
Kiểm soát đồng xu Ví nâng cao cho phép chọn UTXO nào để tiêu.
Phân tích chuỗi Người quan sát có thể theo dấu UTXO qua giao dịch.
Địa chỉ mới Dùng địa chỉ mới cho mỗi lần nhận giúp giảm liên kết.
Vì sao Satoshi chọn UTXO
Sách trắng mô tả đồng tiền như một chuỗi chữ ký, và giao dịch có nhiều đầu vào, thường hai đầu ra. Mô hình UTXO là cách triển khai tự nhiên của ý tưởng đó.
Nó đơn giản về logic kiểm tra: mỗi đầu vào chỉ cần kiểm tra UTXO tồn tại và điều kiện mở khoá được thoả mãn. Không cần theo dõi trạng thái phức tạp của tài khoản.
Nó cũng phù hợp với mục tiêu riêng tư được nêu trong sách trắng: dùng cặp khoá mới cho mỗi giao dịch để tránh liên kết.
Ba mươi năm hay một trăm năm nữa, mô hình này có còn phù hợp không là chuyện của tương lai. Hiện tại, nó là nền móng của mọi thứ trong Bitcoin.
Câu hỏi thường gặp
UTXO là gì?
Là đầu ra giao dịch chưa được chi tiêu, đơn vị cơ bản mà sổ cái Bitcoin theo dõi thay vì số dư tài khoản.
Tiền thối trong Bitcoin là gì?
Là đầu ra trả phần dư của UTXO đầu vào về lại cho chính người gửi, thường ở một địa chỉ mới.
UTXO khác mô hình tài khoản thế nào?
UTXO theo dõi từng đồng xu chưa tiêu, mô hình tài khoản như Ethereum ghi số dư của mỗi địa chỉ.
Vì sao nhiều UTXO nhỏ làm phí cao?
Vì mỗi đầu vào chiếm dung lượng, và phí tính theo dung lượng giao dịch.
Gom UTXO có ảnh hưởng quyền riêng tư không?
Có. Gom nhiều UTXO trong một giao dịch cho thấy chúng có thể cùng một chủ.