UTXO - khái niệm quan trọng trong thế giới blockchain

Đầu ra giao dịch chưa chi tiêu (unspent transaction output), hay còn gọi là UTXO, là một khái niệm quan trọng trong thế giới blockchain. Cái tên có vẻ hơi khó hiểu nhưng bản thân khái niệm này không khó hiểu. Bài viết này sẽ giải thích mọi thứ bạn cần biết về UTXO.

UTXO và một ví dụ thực tế đơn giản

Đầu ra giao dịch chưa chi tiêu - UTXO là đầu ra của một giao dịch mà người dùng nhận được và có thể chi tiêu trong tương lai. Điều này đúng bởi vì cái tên đã nói lên điều đó, nó là đầu ra chưa chi tiêu của một giao dịch. Điều này có nghĩa là gì? Hãy xem xét một ví dụ thực tế để việc giải thích UTXO được rõ ràng hơn trong trường hợp này.

Thực tế đơn giản về UTXO

Thực tế đơn giản về UTXO

Mỗi UTXO giống như một đồng tiền xu hoặc một tờ tiền mặt riêng lẻ. Nếu bạn có 45 đô la tiền mặt, bạn phải có nhiều hơn một tờ tiền vì không có thứ gì gọi là tờ tiền bốn mươi lăm đô la ở thực tế. Khi bạn có 45 đô la trong ví của mình, bạn có thể có bất kỳ sự kết hợp số lượng tờ tiền - UTXO - hiện có trong ví của bạn.

Trong ví dụ đơn giản này, bạn có thể có bất kỳ kết hợp tờ tiền mặt nào sau đây:

  • Bốn mươi lăm tờ 1 đô la
  • Chín tờ 5 đô la
  • Bốn tờ 10 đô la và một tờ 5 đô la
  • Hai tờ 20 đô và năm tờ 1 đô
  • v.v…

Có rất nhiều sự kết hợp tờ tiền mà tổng là 45 đô la. Trong mỗi trường hợp, bạn có chính xác 45 đô la mặc dù thực tế là bạn có số lượng tờ khác nhau trong mỗi kịch bản.

Điều tương tự cũng đúng với UTXO. Mặc dù bạn thấy một số dư duy nhất khi bạn đăng nhập vào ví tiền mã hóa (tiền điện tử) của mình, bạn có thể có một hoặc nhiều UTXO đang hiện hữu trong ví của mình. Các UTXO này có kích thước khác nhau nhưng khi được cộng lại, tổng bằng tổng số dư của ví của bạn.

Khi bạn mua một mặt hàng bằng tiền mặt, bạn có thể không thể cung cấp chính xác số tiền cần thiết để trả cho nó. Giả sử bạn mua một tách cà phê với giá 3,5 đô la. Bạn có 45 đô la trong ví của mình, nhưng rất có thể, bạn không có chính xác 3,5 đô la để trả tiền cho cà phê. Thay vào đó, bạn cần phải trả nhiều hơn một (hoặc một vài) tờ tiền và sau đó nhận lại một ít tiền thối. Bạn có thể trả tiền cho cà phê với bốn tờ 1 đô la, trong trường hợp đó bạn sẽ nhận được hai xu 25 cent thối lại. Hoặc bạn có thể trả tiền cho cà phê với tờ 20 đô la, trong trường hợp đó bạn sẽ nhận lại một 10 đô la, một tờ 5 đô la, một tờ 1 đô la và đồng xu hai đồng xu 25 cent. Bây giờ chắc bạn đã hiểu được phần nào.

Điều tương tự xảy ra khi bạn gửi tiền mã hóa (tiền điện tử). Giả sử bạn có tổng cộng 740 LTC. Hãy tưởng tượng rằng số dư của bạn ở dạng 3 UTXO: với số tiền tương ứng là 320 LTC, một giây là 215 LTC và một phần ba là 205 LTC.

Nếu bạn muốn gửi số lượng LTC nhỏ hơn đến một địa chỉ khác, ví của bạn phải gửi ít nhất một UTXO để hoàn thành giao dịch. Giống như bạn không thể thanh toán cho một món hàng 5 đô la bằng cách xé một tờ 10 đô la làm 2 phần và giao một nửa cho nhân viên thu ngân, bạn không thể gửi một nửa số UTXO để hoàn thành giao dịch tiền mã hóa (tiền điện tử). Bạn phải gửi toàn bộ UTXO và sau đó nhận lại sự thay đổi.

Hãy tưởng tượng bạn muốn gửi 30 LTC cho bạn bè. Bạn sẽ phải gửi một trong các UTXO của mình (10, 20 hoặc 50 LTC) để hoàn tất giao dịch. Bạn của bạn sẽ nhận được một UTXO duy nhất là 30 LTC. Bạn sẽ nhận được một UTXO mới, nhỏ hơn với số tiền là 290, 185 hoặc 175 LTC, tùy thuộc vào UTXO nào được gửi.

Điều gì xảy ra nếu bạn muốn gửi cho bạn bè của mình 350 LTC? Về cơ bản điều tương tự sẽ diễn ra, ngoại trừ lần này bạn sẽ cần gửi hai UTXO đầy đủ để hoàn tất giao dịch. Bạn của bạn vẫn sẽ nhận được 350 đô la LTC của mình và bạn sẽ nhận lại UTXO mới (70, 175 hoặc 185 LTC, tùy thuộc vào việc hai UTXO nào đã được gửi để thực hiện thanh toán).

Sự khác nhau giữa những tờ tiền và UTXO

Ví dụ thực tế ở trên đủ chính xác để cung cấp cho bạn một sự hiểu biết vững chắc về khái niệm UTXO nhưng nó không hoàn hảo. Thực tế khác với blockchain theo nhiều cách khác nhau.

Đầu tiên, các ví dụ trên không chính xác vì bạn sẽ phải trả phí giao dịch để thực hiện giao dịch của mình. Khi bạn gửi một khoản tiền nhất định đến một địa chỉ khác, UTXO mới mà bạn nhận được sẽ là số tiền UTXO ban đầu trừ đi cả số tiền bạn gửi đi và phí giao dịch trên blockchain bạn phải trả.

UTXO mới = (tổng số UTXO ban đầu) - (tổng số tiền được gửi đến một địa chỉ khác) - (phí giao dịch cho blockchain cụ thể đó)

Phí giao dịch thay đổi từ blockchain sang blockchain và thậm chí có thể thay đổi trên cùng một blockchain vào các thời điểm khác nhau.

Thứ hai ví dụ thực tế không giống UTXO là các tờ tiền mặt được cố định về giá mệnh giá. Nói cách khác, tờ tiền mặt bị giới hạn ở giá trị mà chính phủ chọn in.

Ở Mỹ, các mệnh giá tờ tiền tồn tại là: $1, $5, $10, $20, $50 và $100. Ở các quốc gia sử dụng đồng Euro, mệnh giá tờ tiền là: €5, €10, €20, €50, €100, €200 và €500. Các mệnh giá này không nhắc đến tiền xu nhưng điều muốn nói ở đây là: bạn không thể tạo tờ tiền mặt với bất kỳ số tiền nào bạn muốn. Giá trị của mỗi tờ tiền được xác định trước.

Điều này không đúng với UTXO. Một UTXO có thể có bất kỳ số lượng nào. Trong thực tế, điều này mang lại một số lợi ích quan trọng. Đó là, nó tạo sự linh hoạt hơn rất nhiều so với tiền mặt. Nó có thể có 1 triệu đô LTC trong một UTXO duy nhất, thay vì hàng ngàn tờ tiền mặt với mỗi loại mệnh giá khác nhau.

Các lập trình viên blockchain có cơ hội viết mã để tối ưu hóa cách thức các mệnh giá nhỏ của tiền điện tử được đóng gói vào các “tờ” UTXO. Điều này có nghĩa là các lập trình viên có thể làm việc cùng nhau để giữ dung lượng dữ liệu của blockchain có thể quản lý được. Các lập trình viên ví kỹ thuật số càng giỏi thì kích thước UTXO được tạo càng hiệu quả. Tạo UTXO hiệu quả hơn có nghĩa là dung lượng dữ liệu tối thiểu và tốc độ xử lý được tối ưu.

Tuy nhiên, công nghệ blockchain có một hạn chế khi so sánh với tiền mặt: số và lượng UTXO trong mỗi ví kỹ thuật số phải được ghi lại. Do kết quả của hầu hết các giao thức của blockchain, yêu cầu tất cả các giao dịch diễn ra trên sổ cái công khai, lần duy nhất UTXO có thể được lắp hoặc tách thành các kích thước lớn hơn hoặc nhỏ hơn là tại thời điểm bạn tham gia vào giao dịch trên blockchain công khai. Nếu bạn không gửi hoặc nhận tiền, số lượng và tổng UTXO bạn giữ trong ví của bạn không thể được điều chỉnh.

Trong thực tế, đây chỉ là một nhược điểm nhỏ. Số lượng và kích cỡ UTXO trong ví của bạn sẽ tự nhiên thay đổi theo thời gian. Bạn có thể có nhiều UTXO nhỏ hơn tạo nên số dư đầy đủ của mình hoặc đôi khi bạn có thể có một UTXO lớn bao gồm tất cả số dư tài khoản.

Từ quan điểm của người dùng cuối, thông thường không cần thiết phải hiểu khái niệm về UTXO. Số dư bạn thấy trong ví tiền điện tử của bạn là lượng tiền bạn có, bất kể số lượng và giá trị của UTXO tạo nên số tiền đó.

Điều này có thể khiến bạn tự hỏi: tại sao UTXO lại quan trọng? Một câu hỏi tuyệt vời! Phần tiếp theo sẽ giải thích.

Tại sao UTXO quan trọng?

Ý tưởng về UTXO là rất quan trọng để hiểu hai công nghệ quan trọng nhất hiện nay là: hợp đồng thông minh dựa trên UTXO và atomic swap.

Đầu tiên, các lập trình viên đã tìm ra cách phát triển hợp đồng thông minh dựa trên UTXO. Đây là một bước đột phá lớn vì nó làm cho các đồng tiền giao thức Bitcoin có khả năng hỗ trợ Turing hoàn thành các hợp đồng thông minh và các ứng dụng phi tập trung. Các hợp đồng thông minh dựa trên UTXO này là không phụ thuộc về ngôn ngữ và cho phép mọi UTXO có một cơ chế đồng thuận duy nhất. Nó là một sự phát triển thực sự mang tính cách mạng.

Thứ hai, UTXO rất quan trọng đối với trao đổi phi tập trung dựa trên atomic swap.

Đối với những người có thể không quen thuộc, atomic swap là giao dịch tiền điện tử ngang hàng không yêu cầu trung gian hoặc bên thứ ba. Không có dịch vụ ký quỹ, mã proxy hoặc tài khoản tập trung khác. Thay vào đó, atomic swap là giao dịch tiền điện tử trực tiếp giữa ví những người dùng, từ blockchain sang blockchain.

Điều quan trọng là phải hiểu UTXO trước khi hiểu cách thức atomic swap làm việc vì người dùng phải có ít nhất 2 UTXO mỗi lần để hoàn thành trao đổi atomic swap.

Theo: komodoplatform