Tin mới nhất

UTxO – Đơn vị tế bào của mạng lưới Bitcoin

Tiếp theo tập 1 kiến thức cơ bản phân tích dữ liệu onchain trên CryptoQuant, chúng ta sẽ tìm hiểu một khái niệm quan trọng của hệ thống giao dịch: UTxO.

Một số khái niệm liên quan khác, bạn có thể tham khảo trực tiếp trên Hướng dẫn người dùng mới tại bài gốc của CryptoQuant tại: https://userguide.cryptoquant.com/v/vietnamese/cryptoquant-metrics/utxo

Trong phạm vi bài này, tôi chia sẻ một số khái niệm chưa rõ và giải nghĩa chi tiết hơn một số thuật ngữ.

UTxO là gì?

Bitcoin, Litecoin và Bitcoin Cash là các ví dụ về các blockchain sử dụng mô hình UTXO. Ở bài viết sẽ lấy trường hợp UTxO trên Bitcoin để thảo luận.

UTxO, viết tắt của An Unspent Transaction Output (Đầu ra giao dịch chưa chi tiêu) là mô hình quản lý giao dịch trên mạng lưới blockchain, hay có thể nói là một cách thức quản lý giao dịch trên mạng lưới blockchain Bitcoin; khi đó đầu vào là 1 hoặc nhiều UTxO có sẵn trước đó của giao dịch được xử lý và ghi nhận trên sổ cái blockchain, tạo ra các UTxO mới.

Một cách hiểu dễ hơn về UTxO là sau mỗi giao dịch thì tạo ra các UTxO mới => Các UTxO mới này sẽ chứa số lượng token/coin khác nhau, tức đầu ra đó sẽ là phiên bản thay thế cho các UTxO, và chứa số lượng token/coin gần bằng với UTxO cũ tham gia xử lý (có chi phí xử lý dẫn tới hao hụt). Quá trình giao dịch liên tục sẽ tạo ra các UTxO mới.

Có thể nói UTxO là đơn vị tế bào của mạng lưới Bitcoin. Nó phản ánh hoạt động của toàn bộ mạng lưới. Đây là một yếu tố kiến trúc nền tảng để tiếp tục phát triển mạng lưới. Bạn có thể xem thêm bài viết mô hình các dự đoán, ý tưởng về UTxO tại link này

Một ví có thể chứa nhiều UTxO, tuy nhiên đứng ở góc nhìn của người dùng thông thường chỉ cần biết trong ví có chứa bao nhiêu BTC, chứ không quan tâm là có bao nhiêu UTxO. Lý do là các nhà phát triển đã tối ưu công việc đó giúp người dùng dễ hiểu hơn. Mỗi đồng BTC (hay Satoshi) nằm trong mỗi UTxO sẽ có số lượng khác nhau, và khi cộng lại các UTxO có trên mỗi ví thì có tổng số lượng BTC ví đó đang nắm giữ.

Tại sao lại phải quan tâm tới UTxO?

Nói một cách khác, UTxO là cách thiết kế hệ thống blockchain vận hành khi xảy ra giao dịch, cụ thể hơn ở đây là giao dịch trên blockchain Bitcoin; Dễ hiểu hơn là nó quy định cách chi tiêu và phân phối từ người gửi tới người nhận. Như vậy, nó đơn thuần là một khái niệm liên quan tới yếu tố kỹ thuật hơn là yếu tố dành cho người dùng thông thường quan tâm.

Với những ý tưởng ban đầu trong whitepaper, Nakamoto Satoshi đã định danh cho mỗi 1 Satoshi, vì vậy mỗi khi di chuyển từ ví này qua ví kia đều có thể thực hiện chính xác là satoshi nào di chuyển. (1 BTC = 100.000.000 Satoshi). Vì vậy, hệ thống xử lý giao dịch của Bitcoin cho phép theo dõi chính xác đồng satoshi nào được di chuyển mà không cần dùng thêm công cụ khác. Trong khi đó, các blockchain khác, điển hình là Ethereum sử dụng hệ thống Tài khoản và Hợp đồng thông minh (Smart contract) để vận hành, các token/coin trên các blockchain thường không được định danh cụ thể (ERC20).

Như vậy, xét theo ngôn ngữ lập trình, kiến trúc của blockchain sẽ xây dựng theo các UTxO, từ đó việc thống kê số liệu onchain sẽ dựa vào UTxO. Điều này quan trọng đối với các nhà nghiên cứu, lập trình, đầu tư theo khuynh hướng phân tích dữ liệu.

Làm rõ hơn về UTxO

Hãy xem xét một ví dụ về việc giao dịch thông qua ngân hàng và thông qua ống heo để hiểu hơn:

Xét về yếu tố định dạng, hãy xem xét ví dụ 1

Nếu bạn mở một tài khoản ngân hàng và gửi 100$ (trong đó có 3 tờ 20$ và 4 tờ 10$) vào đó. Ngay lập tức, 100$ của bạn sẽ bị trộn lẫn với tất cả các loại tiền mặt khác mà ngân hàng đang giữ. Bởi bạn biết đấy, ngân hàng có hàng ngàn khách hàng. Việc lưu giữ tất cả các đồng tiền mà mỗi khách hàng gửi vào sẽ rất tốn thời gian và công sức. Đặc biệt, việc lưu trữ tiền này không có ý nghĩa gì với ngân hàng cả. Nên họ chỉ cần biết họ đang giữ của bạn 100$. Và khi bạn rút 100$ thì số lượng tờ tiền bạn nhận được có thể là 2 tờ 50$, hoặc 10 tờ 10$.

Trong khi đó, nếu bạn bỏ 100$ vào một con heo đất thì quá trình lưu trữ tiền mặt lại diễn ra hoàn toàn khác. Bạn bỏ 5 tờ 20$ thì khi bạn đập ống heo, bạn vẫn nhận được 5 tờ 20$. Bạn bỏ 10 tờ 10$ thì số lượng tiền bạn nhận lại được vẫn y nguyên như cũ.
(Nguồn: BitcoinVN)

Ở ví dụ 1 có thể hiểu như sau:

  • Việc bạn gửi và rút các đơn vị tiền trong ngân hàng có thể là khác định danh (hay nói chính xác là các ID tờ tiền khác hoặc trùng với tờ tiền ban đầu), nhưng về giá trị sử dụng thì chúng ngang nhau, bạn không cần quan tâm ID trên tờ tiền là bao nhiêu. Nó đại diện cho cách thức xử lý giao dịch chuyển token/coin là hệ thống dựa trên Tài khoản và Smart Contract của Ethereum và các blockchain theo dạng này.
  • Còn với việc rút từ con heo đất thì vẫn chính xác các đơn vị tiền với số ID tờ tiền ban đầu bạn gửi vào. Nó có thể hiểu như cách vận hành giao dịch UTxO của blockchain Bitcoin.

Xét về cách thức xử lý giao dịch, hãy xem xét ví dụ 2

Ví dụ 2
Xét trong ví dụ giao dịch onchain, bạn đang sở hữu 2 ví chứa 1 BTC và 5 BTC, tổng là 6 BTC. Lúc này, bạn cần chuyển onchain để thanh toán mua 1 món hàng hoặc mua token khác với chi phí là 5.98 BTC.

Lúc này, bạn sẽ:

– Trả cho người thu ngân (người nhận) 5.98 BTC
– Trả cho thợ đào 0.01 BTC (phí giao dịch)
– Điều đặc biệt ở đây là bạn phải gửi 6 BTC đó cho thu ngân, và thu ngân sẽ gửi lại cho bạn 0.01 BTC (điều này tạo ra 1 UTxO mới), chứ KHÔNG phải là bạn đưa chính xác 5.98 BTC và dư ở UTxO cũ số lượng 0.01 BTC.

Ở ví dụ 2, từ 2 UTxO sẵn có, bạn tạo thêm 3 UTxO mới. Ở một số trường hợp UTxO của miner tồn tại sẵn nên không tính là UTxO mới. Ở đây có một số cần chú ý:

  • UTxO có thể sử dụng để chi tiêu chung, nhưng không thể tách lẻ 1 UTxO ra thành các giá trị nhỏ lẻ mà phải thực hiện theo quy trình “hoàn tiền”, từ đó tạo ra UTxO mới (vẫn ghi nhận trên 1 ví )
  • UTxO có thể giúp người nắm giữ ví xác định giao dịch đó là để làm gì và cho ai, thời gian nào,…

Ví dụ 3: Hãy xem xét phí giao dịch khi các ví chứa số lượng và giá trị UTxO khác nhau

Cùng cần thanh toán 0.2 BTC nhưng ví ở trên chứa số BTC ở các UTxO khác nhau với số lượng 0.1 BTC ở mỗi UTxO thì phí giao dịch ít tốn kém hơn so với ví bên dưới chứa dư thừa số lượng BTC cần thanh toán. Cái này có thể giải thích với lý do là kích thước đầu vào lớn hơn nên phí giao dịch cao hơn.

Một khía cạnh khác của UTxOs, cụ thể nói về UTxOs của Bitcoin thì khi ví A chuyển BTC qua ví B thì đầu ra của ví A chính là đầu vào của ví B, mặc dù nó không đầy đủ số lượng cho phần phí giao dịch (phí đào).

Các yếu tố ảnh hưởng tới phí giao dịch UTxO

Như ví dụ 3 có nêu về sự chênh lệch trong phí giao dịch khi phải xử lý 1 lệnh chỉ 1 UTxO và 1 lệnh chứa nhiều UTxO. Tuy nhiên, các yếu tố chi tiết là gì?

Kích thước đầu vào được tính bởi số lượng UTxO. Như vậy 2 chi phí chính khi giao dịch là:

  • Số lượng UTxO càng nhiều thì dữ liệu xử lý càng nhiều, chi phí xử lý tăng lên
  • Chi phí tối thiểu mạng lưới chấp nhận giao dịch (nếu không đủ chi phí tối thiểu các thợ đào sẽ tắt máy, chuyển qua mạng lưới khác để tìm kiếm cơ hội)

Một số chỉ số cần quan tâm khi phân tích UTxO

Đối với mỗi UTxO, chúng ta thường quan tầm tới giá trị của UTxO, số lượng UTxO tạo mới, tuổi của UTxO. Điều này cho thấy mức độ, tính chất hoạt động (tần suất) của người dùng.

Đối với phân tích tổng quan UTxO, chúng ta sẽ quan tâm tới một số chỉ số mạng lưới mà CryptoQuant có theo dõi như sau:

  • Số ngày còn sống/phá huỷ của một số hoặc tất cả các UTxO thông qua chỉ số UTXO Count – Age Bands 
  • Số lượng và tỷ lệ thua lỗ/ có lời của các UTxO thông qua các chỉ số UTXOs in Profit/Loss
  • Tổng giá trị UTXO mang lại lợi nhuận/ thua lỗ bằng cách so sánh giá giữa được tạo và bị phá hủy thông qua Supply in Profit/Loss
  • Phân tích hành vi nắm giữ (ngắn hạn, trung hạn, dài hạn) thông qua UTXO Age Bands (Nhóm tuổi UTXO)
  • Phân tích quy mô vốn hoá giữa các nhóm tuổi UTXO thông qua chỉ số Realized Cap – UTXO Age Bands
  • Phân tích hành vi giao dịch giữa các nhóm tuổi UTXO theo biến động thị trường thông qua chỉ số Spent Output Age Bands

Trả lời