Giao dịch bí mật (confidential transactions) là gì

Triều Tô6 phút đọc
Nội dung bài8 phần
  1. Vấn đề CT giải quyết
  2. Cam kết Pedersen
  3. Ví dụ số: kiểm tra cân bằng
  4. Vì sao cần range proof
  5. Kích thước và tốc độ
  6. CT giấu gì và không giấu gì
  7. Học tiếp trong khoá Crypto
  8. Câu hỏi thường gặp

Độ khó: Nâng cao

Trên Bitcoin, ai cũng thấy mỗi giao dịch chuyển bao nhiêu coin từ địa chỉ nào sang địa chỉ nào. Giao dịch bí mật (confidential transactions, CT) giấu con số đó khỏi người ngoài, nhưng vẫn để mọi node kiểm tra được rằng đầu vào bằng đầu ra, tức là không có coin nào tự sinh ra.

Nội dung chỉ nhằm giải thích kiến thức, không phải khuyến nghị đầu tư.

Điểm chính

  • CT giấu số tiền (và loại tài sản trên Liquid), không giấu địa chỉ hay đồ thị giao dịch.
  • Cốt lõi là cam kết Pedersen: một giá trị "khóa kín" mà vẫn cộng trừ được với nhau.
  • Cần thêm range proof (bằng chứng phạm vi) để chặn số âm và tràn số.
  • Bulletproofs thu nhỏ range proof 64 bit còn 674 byte, so với khoảng 2,5 KiB của cách cũ cho 32 bit.

Vấn đề CT giải quyết

Số tiền công khai giúp ai cũng kiểm toán được nguồn cung. Nhưng nó cũng làm lộ lương, doanh thu và số dư. Ví dụ: một doanh nghiệp trả nhà cung cấp bằng crypto, đối thủ xem blockchain là biết giá.

Adam Back nêu ý tưởng dùng giá trị đồng hình để giấu số tiền trong một bài đăng Bitcointalk năm 2013. Gregory Maxwell, Andrew Poelstra và Pieter Wuille phát triển nó tiếp tại Blockstream, rồi CT được đưa vào dự án Elements và sau đó vào Liquid, ra mắt năm 2018.

Cam kết Pedersen

Một cam kết che số tiền a bằng một số ngẫu nhiên x, gọi là hệ số che:

C = x·G + a·H

G là điểm sinh của đường cong elliptic. H là điểm thứ hai, được chọn để không ai biết quan hệ logarit rời rạc giữa G và H. Nhờ đó nhìn vào C không đoán ra được a, và không ai đổi được giá trị a sau khi đã cam kết.

Tính chất quan trọng nhất: cộng hai cam kết ra cam kết của tổng, với hệ số che cũng được cộng lại. Mạng không cần thấy số tiền, chỉ cần kiểm tra đầu vào trừ đầu ra bằng một cam kết tới số 0.

Ví dụ số: kiểm tra cân bằng

Ví dụ mượn tinh thần ví dụ của dự án Elements, dùng số nhỏ. Alice chi một đầu vào 5 coin cho hai đầu ra, 3 coin cho Bình và 2 coin trả lại mình. Phí được ghi công khai là 0 để dễ tính.

Số tiền (ẩn)

Hệ số che (ẩn)

Đầu vào

5

7

Đầu ra 1 (Bình)

3

4

Đầu ra 2 (Alice, tiền thừa)

2

3

Đầu vào − tổng đầu ra

5 − (3 + 2) = 0

7 − (4 + 3) = 0

Kiểm tra cân bằng giao dịch bí mật mà không thấy số tiền
Số tiền và hệ số che của đầu vào trừ đầu ra đều bằng 0 nên mạng chấp nhận mà không thấy số

Ví dụ trong trang của Elements dùng số tiền {1, 1, 2} với hệ số che {5, 10, 15}, đẳng thức là C(5,1) + C(10,1) − C(15,2) = 0. Điều kiện giống nhau: cả số tiền và hệ số che đều phải triệt tiêu. Người gửi chọn hệ số che sao cho chúng cộng đúng, mạng chỉ thấy các cam kết và kết quả bằng 0.

Phí giao dịch phải để lộ công khai. Elements ghi rõ phí được cộng vào phép kiểm tra dưới dạng phí × H.

Vì sao cần range proof

Các phép tính diễn ra trong một nhóm số có vòng lặp, giống đồng hồ 12 giờ: vượt quá thì quay về đầu. Vì thế số âm và số rất lớn có thể làm phép cộng "đúng" nhưng sai về ý nghĩa.

Ví dụ trong chính trang Elements: (1 + 1) − (−5 + 7) = 0 nghe cân bằng, nhưng đầu ra −5 là số âm và đầu ra 7 sinh ra 5 coin từ không khí. Muốn chặn, mỗi đầu ra phải kèm range proof, chứng minh số tiền nằm trong khoảng hợp lệ, ví dụ từ 0 đến 2⁶⁴, mà không tiết lộ số đó.

Cách làm đơn giản nhất để hiểu: để chứng minh một số nằm trong [0, 32), người chứng minh cam kết riêng từng bit tương ứng với 1, 2, 4, 8, 16, chứng minh mỗi bit là 0 hoặc chính lũy thừa của 2, và các cam kết cộng lại ra đúng giá trị đã cam kết. Một số 5 bit thì chắc chắn nhỏ hơn 32.

Kích thước và tốc độ

Range proof từng là phần chiếm nhiều dữ liệu nhất của giao dịch CT.

Loại range proof

Phạm vi

Kích thước

Cách cũ (Borromean ring signature)

32 bit

2.564 byte (khoảng 2,5 KiB)

Bulletproofs

32 bit

610 byte

Bulletproofs

64 bit

674 byte

So sánh kích thước range proof cách cũ với Bulletproofs
Bulletproofs thu nhỏ range proof từ 2.564 byte xuống 610 byte cho 32 bit

Theo Poelstra, Bulletproofs còn gộp được nhiều bằng chứng: 8 range proof 64 bit gộp lại dài 866 byte, trong khi 8 bằng chứng cách cũ cộng lại hơn 40.000 byte. Số liệu tốc độ đo trên một lõi CPU Intel i7-6820HQ, nên chỉ mang tính tham khảo.

CT giấu gì và không giấu gì

Thông tin

Bị giấu?

Số tiền

Có, với người ngoài giao dịch

Loại tài sản (trên Liquid)

Có

Địa chỉ gửi và nhận

Không. Ai cũng thấy giao dịch xảy ra và địa chỉ nào liên quan

Danh tính chủ địa chỉ

Không giấu bằng CT, chỉ là bút danh

Giao dịch bí mật giấu gì và để lộ gì
CT giấu số tiền và loại tài sản nhưng địa chỉ và phí vẫn công khai

Người gửi và người nhận cùng giữ khóa mở (unblinding key), nên một trong hai có thể tự công bố số tiền cho bên thứ ba, ví dụ để kiểm toán. Với số tiền rất lớn vượt giới hạn độ chính xác 52 bit (mặc định), phần độ lớn và một vài chữ số thấp vẫn lộ.

Vì địa chỉ không bị giấu, CT không thay thế các kỹ thuật làm rối dấu vết như coin mixing và CoinJoin. Một số kiểu tấn công như dusting dựa vào việc theo dõi địa chỉ, nên CT không tự giải quyết được chúng.

Về mặt mật mã, CT dùng tính cộng đồng hình của cam kết, họ hàng gần của khái niệm trong bài mã hóa đồng hình hoàn toàn (FHE). Bức tranh chung về độ tin cậy của sổ cái nằm ở blockchain bảo mật nhờ đâu.

Học tiếp trong khoá Crypto

Các bài học liên quan trong Khoá học Crypto của HODL.VN:

Câu hỏi thường gặp

CT có biến Bitcoin thành đồng tiền ẩn danh không?

Không. CT chỉ giấu số tiền. Địa chỉ vẫn hiển thị. Theo các nguồn đã tra, CT được triển khai trên Elements và Liquid.

Nếu số tiền bị giấu, làm sao biết không có coin bị in thêm?

Nhờ tính cộng của cam kết Pedersen và range proof: mạng kiểm tra tổng đầu vào bằng tổng đầu ra mà không cần biết từng số.

Ai thấy được số tiền?

Theo mô tả của Liquid, chỉ người gửi và người nhận giữ khóa mở. Họ có thể tự công bố số tiền cho người khác.

Vì sao đầu ra ví dụ có hệ số che?

Nếu không có số ngẫu nhiên, ai cũng có thể đoán số tiền rồi tính lại cam kết để so khớp. Hệ số che làm cam kết trông giống nhau với mọi số tiền.

Duyệt bởi Ban biên tập HODL.VN · Cập nhật 09/11/2026

Ứng dụng HODL

Tải app HODL

Bảng giá, cảnh báo giá và bài phân tích ngay trên điện thoại.

Watchlist

Đang tải…