Mô hình UTXO, nói một cách đơn giản, là một mô hình kế toán tài khoản đặc biệt. Trong tiếng Trung, nó có nghĩa là "Đầu ra giao dịch chưa được sử dụng" (Unspent Transaction Output). Điểm khác biệt lớn nhất giữa mô hình này và mô hình tài khoản ngân hàng truyền thống là nó chỉ ghi lại bản thân giao dịch chứ không ghi lại kết quả của giao dịch.
Ví dụ, trong mô hình tài khoản ngân hàng truyền thống, kết quả được ghi trực tiếp. Nếu tôi có 10.000 đồng trong tài khoản và chuyển cho bạn 3.000 đồng, tài khoản của tôi sẽ bị trừ 3.000 đồng, còn lại 7.000 đồng, trong khi tài khoản của bạn sẽ được cộng thêm 3.000 đồng.
Tuy nhiên, mô hình UTXO không ghi lại giao dịch theo cách này. Thay vào đó, nó ghi lại toàn bộ quá trình giao dịch. Nguyên lý hoạt động như sau: Giả sử tôi có 10.000 đồng trong tài khoản và muốn chuyển cho bạn 3.000 đồng. Khi ghi lại, mô hình UTXO sẽ ghi nhận toàn bộ 10.000 đồng được chuyển đi, sau đó ghi lại 3.000 đồng chuyển vào tài khoản của bạn và 7.000 đồng chuyển trở lại tài khoản của tôi.
Trong suốt quá trình này, nó ghi lại tất cả thông tin liên quan như số tiền trong tài khoản, địa chỉ giao dịch, số tiền chuyển đi và nguồn gốc tiền. Nhờ đó, nguồn gốc của mỗi giao dịch đều có thể được truy vết. Vì vậy, bản chất của UTXO thực chất là một hình thức kế toán sổ cái, ghi lại quá trình giao dịch.
Ưu điểm của mô hình này là nó đảm bảo mọi giao dịch đều được ghi lại rõ ràng và có thể truy vết nguồn gốc. Chính nhờ đặc điểm này, UTXO, kết hợp với cơ chế đồng thuận, có thể giải quyết vấn đề double-spending (chi tiêu đúp).
Blockchain giải quyết vấn đề double-spending loại đầu tiên bằng cách mượn phương pháp từ ngân hàng truyền thống, xử lý các giao dịch lần lượt theo thứ tự. Khi một node xử lý một giao dịch, nó sẽ kiểm tra xem số tiền giao dịch có tồn tại hay không thông qua mô hình UTXO, sau đó truy vết nguồn gốc của giao dịch. Nếu mọi thứ đều ổn, giao dịch sẽ được phát đi toàn mạng thông qua cơ chế đồng thuận và được ghi lại trên chuỗi.
Nếu ai đó cố gắng chi tiêu cùng một số tiền hai lần, mạng lưới blockchain sẽ chỉ xác nhận giao dịch đầu tiên mà nó nhận được. Đối với giao dịch sau, node sẽ phát hiện trong quá trình kiểm tra UTXO rằng số tiền đã được chi tiêu và không còn trong tài khoản, từ đó từ chối giao dịch. Nhờ đó, vấn đề double-spending loại đầu tiên được giải quyết.
Tuy nhiên, vấn đề double-spending phát sinh từ chính các quy tắc thì UTXO không thể giải quyết được. Loại double-spending này liên quan đến việc lợi dụng các quy tắc của cơ chế đồng thuận để thay đổi các giao dịch đã được ghi lại, thường thấy trong các cuộc tấn công 51%. Ví dụ, trong một blockchain sử dụng cơ chế đồng thuận Proof-of-Work (PoW), nếu mạng lưới nhỏ và một node nắm giữ 51% sức mạnh tính toán, node đó có thể thực hiện một giao dịch trước, sau đó sử dụng cơ chế đồng thuận để thay đổi bản ghi giao dịch, vô hiệu hóa giao dịch trước đó và đưa số tiền đã chi tiêu trở lại tài khoản của mình để sử dụng lại.
Vấn đề double-spending loại này chỉ có thể được giải quyết bằng cách tăng tổng sức mạnh tính toán của mạng lưới. Do đó, trong blockchain, càng có nhiều người dùng, tổng sức mạnh tính toán càng cao, và mạng lưới càng an toàn.
Tóm lại, UTXO không chỉ giúp cơ chế đồng thuận giải quyết vấn đề double-spending loại đầu tiên trong blockchain mà còn mang lại đặc điểm truy vết nguồn gốc cho blockchain. Nhờ đó, blockchain có thể đảm bảo tính xác thực và độ tin cậy của mọi giao dịch.