SieuThiBitcoin.comHiểu Bitcoin tận gốc — từ năm 2014
Thuật ngữ Bitcoin

Thuật ngữ giao dịch Bitcoin: UTXO, đầu vào, đầu ra, tiền thừa, chứng nhân

Một giao dịch Bitcoin lấy các UTXO cũ làm đầu vào, mở khoá chúng bằng chữ ký, rồi tạo các đầu ra mới cho người nhận và phần tiền thừa quay về người gửi. Phí là phần chênh lệch giữa tổng đầu vào và tổng đầu ra.

Những phong bì giấy kraft được xếp thành hàng, một số đã mở, một số còn niêm phong, trên bàn gỗ

Trong Bitcoin không có "tài khoản" với số dư như ngân hàng. Thay vào đó là các đầu ra chưa chi, gọi tắt là UTXO. Một giao dịch lấy một hoặc nhiều UTXO làm đầu vào, mở khoá chúng bằng chữ ký hợp lệ, rồi tạo ra các đầu ra mới: một cho người nhận, thường thêm một đầu ra tiền thừa quay về người gửi. Phần chênh lệch giữa tổng vào và tổng ra là phí cho thợ đào.

Bài viết là bảng thuật ngữ có giải thích cho các thành phần của một giao dịch, từ những khái niệm cơ bản tới các trường kỹ thuật hay gặp trong trình duyệt khối. Bài về mô hình UTXO đã có trên trang đi sâu vào cơ chế; ở đây chúng tôi tập trung vào từ vựng để bạn đọc tài liệu dễ hơn. Đây là kiến thức, không phải lời khuyên đầu tư.

Hình dung bằng tờ tiền giấy

Hãy tưởng tượng mỗi UTXO là một tờ tiền có mệnh giá bất kỳ. Ví của bạn là một xấp các tờ như vậy, và số dư là tổng mệnh giá của cả xấp.

Khi bạn trả tiền, bạn không thể xé một tờ ra làm đôi. Bạn đưa nguyên một hoặc vài tờ, và nhận lại tiền thối. Trong Bitcoin, các tờ bạn đưa là đầu vào, khoản trả cho người bán là đầu ra, tiền thối là đầu ra tiền thừa.

Khác biệt là tiền thối trong Bitcoin do chính bạn tạo ra trong giao dịch, gửi về một địa chỉ mới của ví bạn. Ví hiện đại làm việc này tự động.

Phép so sánh này không hoàn hảo, nhưng giúp hiểu vì sao một giao dịch có thể có nhiều đầu vào và nhiều đầu ra.

Thuật ngữ cơ bản

UTXO. Đầu ra giao dịch chưa được chi tiêu. Là đơn vị giá trị thật sự trên chuỗi.

Đầu vào (input). Tham chiếu tới một UTXO cũ kèm dữ liệu chứng minh quyền chi.

Đầu ra (output). Một lượng satoshi kèm điều kiện khoá, tạo ra UTXO mới.

Tiền thừa (change). Đầu ra trả lại phần dư cho người gửi.

Phí giao dịch. Tổng đầu vào trừ tổng đầu ra; không có trường "phí" riêng.

Mã giao dịch (txid). Hash của giao dịch, dùng để tham chiếu.

Outpoint. Cặp txid và số thứ tự đầu ra, xác định chính xác một UTXO.

Số dư ví. Tổng giá trị các UTXO mà ví kiểm soát.

Gom UTXO (consolidation). Gộp nhiều UTXO nhỏ thành một, thường làm lúc phí thấp.

Chọn đồng (coin selection). Thuật toán ví dùng để chọn UTXO nào làm đầu vào.

Giao dịch coinbase. Giao dịch đầu tiên của khối, không có đầu vào thật, tạo Bitcoin mới cho thợ đào.

Thuật ngữ về khoá và mở khoá

Script. Ngôn ngữ đơn giản mô tả điều kiện chi tiêu.

Script khoá (scriptPubKey). Điều kiện gắn với đầu ra, ví dụ "phải có chữ ký của khoá này".

Script mở khoá (scriptSig). Dữ liệu trong đầu vào đáp ứng điều kiện, kiểu cũ trước SegWit.

Chứng nhân (witness). Dữ liệu chữ ký tách riêng từ SegWit, tính trọng lượng nhẹ hơn.

Chữ ký. Bằng chứng toán học rằng người ký có khoá bí mật.

Khoá công khai. Tương ứng với khoá bí mật, dùng để kiểm chữ ký.

Hash khoá công khai. Dạng rút gọn của khoá công khai dùng trong nhiều loại địa chỉ.

Đa chữ ký. Điều kiện cần nhiều chữ ký từ nhiều khoá.

Hash script. Khoá đầu ra bằng hash của một script, script thật chỉ lộ khi chi.

Loại chữ ký (sighash). Cho biết chữ ký bao phủ phần nào của giao dịch.

Taproot. Kiểu đầu ra có thể chi bằng một khoá hoặc bằng một trong nhiều script ẩn.

Thuật ngữ về thời gian và thứ tự

Locktime. Giao dịch không hợp lệ trước một độ cao khối hoặc thời điểm nhất định.

Sequence. Trường trong mỗi đầu vào, dùng cho khoá thời gian tương đối và báo hiệu thay thế.

Khoá thời gian tương đối. UTXO chỉ chi được sau một số khối kể từ khi được tạo.

Khoá thời gian tuyệt đối trong script. Điều kiện chi chỉ đúng sau một mốc nhất định.

Giao dịch cha, con. Giao dịch con chi đầu ra của giao dịch cha.

Chuỗi giao dịch chưa xác nhận. Nhiều giao dịch nối nhau đều còn chờ trong mempool.

Độ trưởng thành coinbase. Đầu ra coinbase phải chờ 100 khối mới chi được.

Phiên bản giao dịch. Trường cho biết quy tắc áp dụng, ví dụ cho khoá thời gian tương đối.

Chi tiêu hai lần. Cố chi cùng một UTXO hai lần; mạng chỉ chấp nhận một.

Thay thế bằng phí (RBF). Gửi bản giao dịch khác chi cùng đầu vào với phí cao hơn.

Xác nhận. Khi giao dịch được đưa vào một khối trên chuỗi chính.

Một giao dịch đi từ ví tới khối

Khi bạn bấm gửi, ví chọn UTXO làm đầu vào theo thuật toán chọn đồng, tạo các đầu ra cho người nhận và tiền thừa, tính phí dựa trên kích thước dự kiến và mức sat/vB bạn chọn.

Tiếp theo, ví ký từng đầu vào bằng khoá bí mật tương ứng. Với ví phần cứng, bước ký diễn ra trên thiết bị, khoá không bao giờ rời khỏi đó.

Giao dịch đã ký được gửi tới một nút, nút kiểm tra rồi chuyển tiếp cho các peer, và giao dịch nằm trong mempool chờ thợ đào chọn.

Khi một thợ đào đưa giao dịch vào khối và khối được mạng chấp nhận, các đầu vào trở thành đã chi, còn các đầu ra trở thành UTXO mới, sẵn sàng cho giao dịch tiếp theo.

Toàn bộ vòng đời này có thể được quan sát công khai, và mỗi thuật ngữ ở trên tương ứng với một bước cụ thể trong đó.

Đọc một giao dịch thật

Mở một giao dịch bất kỳ trên trình duyệt khối, phía trái là danh sách đầu vào, mỗi dòng ghi địa chỉ và số tiền của UTXO bị chi. Phía phải là danh sách đầu ra, mỗi dòng là một địa chỉ nhận và số tiền.

Cộng tổng hai bên, bạn sẽ thấy bên trái lớn hơn bên phải một chút; đó là phí. Nếu bên phải có hai đầu ra, thường một là người nhận, một là tiền thừa, dù không phải lúc nào cũng phân biệt được.

Bấm vào phần chi tiết, bạn có thể thấy script, chứng nhân, sequence và locktime. Phần lớn người dùng không cần đọc tới đây, nhưng biết chúng tồn tại giúp hiểu vì sao có những giao dịch phức tạp hơn.

Hãy nhớ rằng mọi thông tin này công khai. Khi bạn gửi tiền cho ai, người đó có thể thấy cả tiền thừa quay về ví bạn, tức thấy một phần số dư của bạn.

Đó là lý do ví tốt luôn gửi tiền thừa về địa chỉ mới, và vì sao không nên khoe mã giao dịch của mình khi không cần.

Những hiểu lầm hay gặp

Nhiều người nghĩ gửi 0,1 BTC thì chỉ 0,1 BTC rời khỏi ví. Thực tế ví có thể lấy một UTXO 1 BTC làm đầu vào, gửi 0,1 cho người nhận và gần 0,9 về địa chỉ tiền thừa. Nếu ví cũ không xử lý tiền thừa đúng, người dùng có thể tưởng mất tiền.

Có người nghĩ phí tính theo số tiền gửi. Thực ra phí tính theo kích thước giao dịch; gửi số tiền lớn từ một UTXO có thể rẻ hơn gửi số nhỏ từ nhiều UTXO lẻ.

Có người nghĩ có thể huỷ giao dịch đã gửi. Giao dịch đã xác nhận thì không; giao dịch chưa xác nhận chỉ có thể bị thay bằng giao dịch khác phí cao hơn nếu có báo hiệu phù hợp.

Hiểu đúng thuật ngữ giúp tránh hoảng loạn khi thấy số liệu lạ, và giúp nhận ra người lợi dụng sự thiếu hiểu biết. Đây là kiến thức, không phải lời khuyên đầu tư.

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ị giá trị thật trên chuỗi. Số dư ví là tổng các UTXO mà ví kiểm soát.

Tiền thừa trong giao dịch Bitcoin là gì?

Là đầu ra trả phần dư về ví người gửi, vì UTXO phải được chi trọn vẹn như đưa nguyên tờ tiền.

Phí giao dịch nằm ở đâu?

Không có trường phí riêng. Phí bằng tổng đầu vào trừ tổng đầu ra.

Chứng nhân (witness) là gì?

Là phần dữ liệu chữ ký tách riêng từ SegWit, được tính trọng lượng nhẹ hơn nên giúp giảm phí.

Có huỷ được giao dịch đã gửi không?

Giao dịch đã xác nhận thì không. Giao dịch chưa xác nhận có thể bị thay bằng bản phí cao hơn nếu đã báo hiệu cho phép thay thế.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.