Đầu ra giao dịch chưa được sử dụng của Bitcoin (UTXO) là gì?

Bởi Kraken Learn team
10 phút
20 tháng 11, 2024

Hướng dẫn nhập môn về mô hình UTXO của Bitcoin 📕

Đầu ra giao dịch chưa sử dụng (UTXO) là cơ chế mà giao thức Bitcoin dùng để theo dõi số dư khi chúng di chuyển giữa các ví tiền mã hóa.

Khi cần theo dõi và quản lý từng số dư tiền mã hóa, các giao thức dựa trên blockchain thường sử dụng một trong hai mô hình kế toán khác nhau.

Một mô hình được gọi là Mô hình Tài khoản/Số dư. Các dự án như Ethereum, TezosEOS dùng mô hình này để theo dõi số dư khi người dùng blockchain thực hiện giao dịch. Mô hình còn lại được gọi là Đầu ra giao dịch chưa sử dụng (UTXO). 

Bitcoin và nhiều loại tiền mã hóa khác như Litecoin, CardanoDogecoin sử dụng mô hình UTXO. 

Vậy chính xác UTXO là gì, nó hoạt động như thế nào và ưu điểm của UTXO so với mô hình Tài khoản/Số dư là gì?

BTC icon
$78.102.00
+2,44%
24 GIỜ
btc

Tìm hiểu mô hình UTXO 💻

Lịch sử

Adam Back và cố Hal Finney là hai thành viên của nhóm mật mã học Cypherpunk mà Satoshi Nakamoto, tác giả của sách trắng Bitcoin, thường lui tới. Hai người được ghi nhận là đã phát triển mô hình UTXO một cách độc lập, lần lượt vào các năm 1997 và 2004. 

Khi Satoshi Nakamoto, nhà sáng tạo Bitcoin, ra mắt giao thức vào năm 2009, Bitcoin trở thành hệ thống tiền tệ số vận hành đầu tiên áp dụng mô hình UTXO.

Cả Hal Finney và Adam Back từ lâu đã bị nghi ngờ là Satoshi Nakamoto, dù điều này chưa bao giờ được chứng minh chắc chắn.

Tổng quan nhanh về UTXO

Khi bạn gửi bitcoin cho ai đó, một loạt bước sẽ được thực thi tự động. Một trong những bước sớm nhất của quy trình giao dịch là ví tiền điện tử của bạn quét blockchain để xác định số tiền bạn đang có. Các khoản này được gọi là đầu ra giao dịch chưa chi tiêu (UTXO).

Bạn có thể coi UTXO như tiền lẻ còn lại từ các giao dịch bitcoin trước đó.

Các khoản tiền này được coi là “chưa chi tiêu” vì chúng sẵn sàng để bạn gửi cho người khác hoặc chuyển sang một ví khác. Chúng được gọi là “đầu ra giao dịch” vì chúng được tạo ra từ các giao dịch trước đó.

Nếu bạn trả 12 đô cho bữa trưa bằng tờ 20 đô, bạn sẽ còn lại 8 đô. Trong ví dụ này, 8 đô còn lại sẽ là một đầu ra giao dịch chưa chi tiêu. Số tiền đó sẽ quay lại ví của bạn, sẵn sàng dùng để mua thứ khác.

UTXO của bitcoin hoạt động chính xác như vậy. Khi bạn thực hiện một giao dịch, các đầu ra từ những giao dịch bitcoin trước đó, tức tiền lẻ bitcoin của bạn, sẽ được dùng làm đầu vào cho các giao dịch mới.

Một điểm so sánh quan trọng khác giữa giao dịch tiền mặt và UTXO là cả hai đều phải được chi tiêu toàn bộkhông thể chia nhỏ. Nếu bạn có một UTXO 5 bitcoin và muốn gửi cho ai đó 1 BTC, bạn sẽ phải gửi toàn bộ UTXO trị giá 5 bitcoin và nhận về một UTXO mới trị giá 4 BTC sau khi trừ bất kỳ khoản phí nào. 

Giống như ví dụ ở trên, bạn đưa cả tờ 20 đô để trả cho bữa trưa 10 đô.

Khi một UTXO được chi tiêu, nó được coi là “đã tiêu thụ” và về mặt kỹ thuật bị loại khỏi lưu thông. 

Bất kỳ phần tiền thừa nào cũng sẽ được tạo thành một UTXO hoàn toàn mới. Cơ chế này trong hệ thống UTXO là cách Bitcoin giải quyết vấn đề chi tiêu kép

Cũng như bạn không thể đưa một tờ 5 đô cho người bán rồi lại đưa chính tờ 5 đô đó cho người khác, người dùng bitcoin không thể sử dụng thành công cùng một đầu ra giao dịch chưa chi tiêu trong hai giao dịch số riêng biệt.

Khi một người cố gắng chi tiêu cùng một UTXO hai lần, hai giao dịch đó sẽ đi vào mempool — một kiểu phòng chờ cho các giao dịch đang chờ xử lý. Chúng sẽ ở đó cho đến khi những thợ đào chiến thắng cuộc cạnh tranh proof-of-work gom chúng vào các block mới.

Bạn có thể tìm hiểu thêm về quy trình này trong bài viết tại Kraken Learn Center Khai thác bitcoin là gì?

Ngay cả khi cả hai giao dịch được gom vào hai block riêng và xử lý đồng thời, vì có đóng dấu thời gian, một trong hai giao dịch sẽ được xác minh trước giao dịch còn lại. Sau khi có một số lần xác nhận (các block mới được thêm vào blockchain), các nút khác sẽ gắn cờ giao dịch thứ hai là không hợp lệ và từ chối nó.

Giao dịch coinbase

Thời điểm duy nhất một giao dịch bitcoin không có đầu vào là khi BTC mới được tạo ra từ hoạt động khai thác.

Được gọi là một coinbase transaction, đây là giao dịch đầu tiên trong mỗi khối mới.

Mỗi satoshi (đơn vị nhỏ của bitcoin) đang lưu hành đều có thể được truy vết ngược trên sổ cái blockchain minh bạch tới coinbase transaction tương ứng của chúng.

Tại sao Bitcoin sử dụng mô hình UTXO?

Số dư tài khoản

Để xác định số dư của người dùng, còn gọi là tập UTXO, phần mềm ví tiền mã hóa quét blockchain để tìm tất cả UTXO liên kết với địa chỉ ví công khai tương ứng.

Tổng giá trị của tất cả UTXO phản ánh chính xác lượng crypto mà chủ ví kiểm soát.

Khi một UTXO được chi tiêu, địa chỉ ví công khai của người nhận được gán cho số tiền đó và một UTXO mới được ghi vào blockchain sau khi giao dịch được thực thi.

Lưu trữ

Các UTXO của Bitcoin được ghi lại trong nhiều giao dịch, những giao dịch này được lưu trữ trong các khối trên chuỗi khối Bitcoin. Tuy nhiên, thông tin này không được lập chỉ mục rõ ràng, vì vậy việc tìm kiếm và tổng hợp siêu dữ liệu một cách nhanh chóng có thể gặp khó khăn. 

Khi sử dụng phần mềm ví như phần mềm khách Bitcoin Core, siêu dữ liệu UTXO được lưu trữ và lập chỉ mục bằng cơ sở dữ liệu LevelDB. LevelDB là một hệ thống lưu trữ mã nguồn mở do Google tạo ra vào năm 2011 và giúp việc xác định vị trí UTXO nhanh hơn nhiều.

Phần mềm khách Bitcoin Core là một phần mềm phổ biến được dùng để kết nối với mạng lưới chuỗi khối Bitcoin. Ban đầu được Satoshi Nakamoto tạo ra, Bitcoin Core hiện được duy trì bởi một cộng đồng các nhà phát triển tình nguyện.

Các UTXO dưới nắp ca-pô 🚗

Ở cấp độ kỹ thuật hơn, một giao dịch có bốn phần chính:

  • Version: Trường này cho các nút mạng biết phiên bản phần mềm khách đang được sử dụng. Các phiên bản khác nhau áp dụng các quy tắc khác nhau để xác minh dữ liệu giao dịch.
  • Locktime: Trường locktime này là khoảng thời gian quyết định tốc độ một giao dịch được ghi vào blockchain. Trường này quy định thời điểm sớm nhất mà giao dịch có thể được các nút đào xử lý.
  • Input: Thông tin trỏ đến nguồn tiền hoặc giao dịch trước đó nơi UTXO được tạo ra. Trường input cũng chứa một thành phần gọi là “unlocking script”.
  • Output: Thông tin về giá trị được chuyển, ví mà quyền sở hữu số tiền được chuyển giao đến và các UTXO mới được hình thành. Trường output cũng chứa một “locking script”.

UTXO khác như thế nào so với tiền mặt

Điểm khác biệt chính giữa phép so sánh các tờ tiền mặt và mô hình UTXO là bitcoin và các cryptoasset dựa trên UTXO không bị ràng buộc bởi các mệnh giá cố định, tức là $5, $10, $15, v.v. Bất kỳ lượng bitcoin nào (tới 8 chữ số thập phân) đều có thể là một UTXO. 

Ví dụ, bạn có thể còn dư 0.0003847 BTC sau một giao dịch.

Số tiền này sẽ trở thành một UTXO mới, vốn phải được chi tiêu toàn bộ nếu sử dụng và không thể chia nhỏ thành các lượng nhỏ hơn.

Giả sử John có số dư ví crypto là 1 bitcoin. Số dư đó và thành phần cấu thành số dư là hai thứ khác nhau, tương tự như bạn có thể có $100 trong ví nhưng gồm bốn tờ $20, hai tờ $5 và một tờ $10.

Giả sử thành phần của số dư 1 BTC của John được tạo bởi 5 UTXO khác nhau.

  • 0.138 BTC
  • 0.1 BTC
  • 0.004 BTC
  • 0.73 BTC
  • 0.028 BTC

John muốn gửi 0.6 BTC cho Jane. Để làm điều này, phần mềm ví của John sẽ tự động nhóm lại bất kỳ số lượng UTXO nào anh ấy kiểm soát để đủ chi trả giao dịch này cùng với phí thợ đào cần thiết để xử lý.

Trong ví dụ này, giả sử phần mềm ví tự động gửi UTXO bitcoin trị giá 0.73 BTC của John cho Jane và trả lại phần còn dư sau khi trừ phí giao dịch cho John dưới dạng một UTXO mới.

Số tiền này được tự động gửi tới một change address; một địa chỉ riêng được liên kết với ví crypto của bạn.

Tập lệnh khóa và mở khóa 🔒

Khi các UTXO được tạo ra, chúng được khóa bằng địa chỉ ví công khai của người nhận. Để sử dụng UTXO đó làm đầu vào cho một giao dịch mới, trước hết nó phải được mở khóa bằng chữ ký số của người gửi.

Đây là một điểm quan trọng khác cần hiểu về các giao dịch bitcoin. Khi một giao dịch được thực hiện, bitcoin không được chuyển động số từ tài khoản này sang tài khoản khác. Thay vào đó, chúng được mở khóa, gán lại cho chủ sở hữu mới rồi lại được khóa lại.

Điều này có nghĩa là chỉ chủ sở hữu mới mới có thể mở khóa số tiền bằng chữ ký số của họ và chuyển đi nơi khác; cho người khác hoặc sang một ví khác do họ kiểm soát.

Script là một ngôn ngữ lập trình được Bitcoin sử dụng để xử lý giao dịch, bao gồm việc khóa và mở khóa UTXO. 

  • Locking script (ScriptPubKey): Khi một UTXO được khóa, locking script (được gọi là ScriptPubKey) đặt ra các điều kiện cần được đáp ứng trước khi UTXO có thể được dùng làm đầu vào. Điều này thường bao gồm việc chứng minh bạn sở hữu khóa riêng tư tương ứng với địa chỉ ví công khai đã dùng để khóa UTXO bằng cách cung cấp chữ ký số.
  • Unlocking script (ScriptSig): Để mở khóa một UTXO, bạn phải đáp ứng các điều kiện do locking script đặt ra, tức là cung cấp chữ ký số chứng minh bạn kiểm soát các khóa riêng tư tương ứng với khóa công khai đã được dùng để khóa UTXO.

Điều này ngăn không cho bất kỳ ai khác có thể truy cập và chi tiêu số tiền đó.

 

Bụi Bitcoin là gì?

Bụi Bitcoin đề cập đến các UTXO chứa những lượng satoshi cực nhỏ còn sót lại từ các giao dịch trước đó.

Nếu tách riêng, các khoản BTC nhỏ xíu này sẽ tốn phí giao dịch để xử lý còn nhiều hơn giá trị của chúng, vì thế chúng thường nằm ở các địa chỉ tiền thừa (change address) chờ được gộp chung với các UTXO khác rồi mới được chi tiêu.

Tấn công dusting là gì?

Các cuộc tấn công dusting là hành vi kẻ lừa đảo gửi dust tới hàng trăm nghìn địa chỉ ví khác nhau. Mục đích là xác định các mục tiêu tiềm năng cho các cuộc tấn công kỹ nghệ xã hội.

Kẻ lừa đảo sẽ theo dõi các địa chỉ ví chứa dust mà họ đã gửi, chờ chủ sở hữu thực hiện một giao dịch gộp các UTXO từ những địa chỉ khác nhau liên kết với ví của họ. Do các UTXO dạng dust rất nhỏ, nhiều khả năng chúng sẽ được gộp chung với những UTXO khác và dùng làm đầu vào.

Khi điều này xảy ra, kẻ lừa đảo có thể ước đoán quy mô tài sản mà một người nắm giữ. Sau đó, chúng có thể chèn các thông điệp phishing lừa đảo vào giao dịch, mời chủ sở hữu nhấp vào một liên kết để tải về phần mềm độc hại, hoặc truy cập các trang web giả mạo bắt chước trang đích hợp pháp và yêu cầu cung cấp thông tin cá nhân.

Các cuộc tấn công rải bụi đối với Bitcoin nguy hiểm đến mức nào?

Các cuộc tấn công dusting không cho kẻ lừa đảo quyền truy cập vào tài sản của bạn.

Chúng chỉ nhằm thu hẹp phạm vi các địa chỉ do một ví tiền mã hóa cụ thể kiểm soát.

Để giảm thiểu rủi ro từ các cuộc tấn công dusting, tốt nhất là không bao giờ nhấp vào liên kết hoặc truy cập các trang web được đính kèm với các giao dịch dust.

Bắt đầu mua Bitcoin

Giờ đây bạn đã nắm rõ về mô hình UTXO, bạn đã sẵn sàng tiếp tục hành trình tiền mã hóa của mình và mua bitcoin chưa?

Hãy xem hướng dẫn tại Kraken Learn Center để biết thêm thông tin về Cách mua Bitcoin (BTC)đăng ký tài khoản với Kraken ngay hôm nay.

Một số nội dung trên trang này có thể đã được dịch bằng AI