Taproot là gì? Nâng cấp bảo mật và riêng tư cho Bitcoin

Taproot là một nâng cấp giao thức của Bitcoin, chính thức được kích hoạt trong block 709632 và là soft fork thứ ba trong lịch sử Bitcoin. Taproot thay thế cơ chế cây Merkle rườm trong SegWit bằng một cấu trúc cây Merkle duy nhất chứa cả điều kiện khóa công khai lẫn các script chi tiêu, kết hợp với chữ ký Schnorr. Bài viết này giải thích Taproot hoạt động như thế nào, vì sao nó cải thiện riêng tư và phí giao dịch, cũng như những điều người dùng ví cần lưu ý sau khi nâng cấp.

Sơ đồ cấu trúc cây Merkle của Taproot với khóa nội bộ P và các lá script tạo ra khóa gốc Q

Taproot là gì?

Taproot là đề xuất được mô tả trong BIP 341 với tên đầy đủ “Taproot: SegWit version 1 spending rules”, một loft cấp đồng thuận, tức là soft fork. Thay vì tạo ra một loại output hoàn toàn mới, Taproot dùng chính khung SegWit hiện có nhưng với witness version 1, nên các node cũ vẫn xem nó là output SegWit bình thường và không cần nâng cấp.

Điểm khác biệt nằm ở điều kiện chi tiêu. Ở SegWit v0, một output pay-to-witness-script-hash chỉ chứa hash của script, và khi chi tiêu, người dùng buộc phải công khai toàn bộ script cùng các điều kiện thỏa mãn lên blockchain. Taproot thay đổi đúng điểm đó.

Biểu đồ số lượng UTXO của Bitcoin tăng dần theo thời gian

Taproot hoạt động như thế nào?

Cấu trúc của một output Taproot gồm hai phần, và chỉ cần nhớ một hình ảnh: một khóa nội bộ cộng với một cây script.

Khóa nội bộ và cây Merkle script

Ví tạo ra một khóa công khai nội bộ, đồng thời có thể kèm nhiều script chi tiêu thay thế được sắp xếp thành cây Merkle. Gốc của cây, gọi là merkle_root, được tweak vào khóa nội bộ để tạo ra khóa công khai cuối cùng ghi vào output. Công thức tính là Q = P + hash(P || m)G, trong đó P là khóa nội bộ, m là gốc Merkle và G là điểm sinh của đường cong elliptic.

Kết quả là toàn bộ cấu trúc script bị “giấu” bên trong một khóa công khai 32 byte duy nhất, trông y hệt một địa chỉ pay-to-pubkey thông thường.

Hai đường chi tiêu

  • Chi tiêu theo khóa (key path spend): chỉ cần một chữ ký Schnorr 64 byte với khóa đã tweak. Đây là đường mặc định, rẻ và nhanh nhất.
  • Chi tiêu theo script (script path spend): khi không dùng được khóa nội bộ, người dùng chứng minh một trong các script thoả mãn, kèm control block và đường dẫn Merkle chứng minh script đó nằm trong cây.

Điểm mấu chốt: khi chi tiêu theo khóa, không ai biết output có tồn tại script thay thế hay không. Các output thuần theo khóa và output có script trở nên không phân biệt được với nhau trên blockchain.

Chữ ký Schnorr đóng góp gì?

Taproot chỉ dùng được chữ ký Schnorr (BIP 340), không phải ECDSA. Chữ ký Schnorr mang lại ba lợi ích thực tế:

  1. Khóa tổng hợp (key aggregation): nhiều khóa công khai có thể gộp thành một khóa duy nhất, hữu ích cho ví multisig với hàng chục người ký. Chữ ký tạo ra không khác gì chữ ký của một người.
  2. Xác thực theo lô (batch validation): node xác thực nhiều chữ ký cùng lúc nhanh hơn xác thực từng chữ ký một, giúp giảm thời gian xác nhận khối.
  3. Kích thước cố định: chữ ký luôn dài 64 byte bất kể khóa lớn hay nhỏ, giúp việc tính phí dễ dự đoán hơn.

Taproot cải thiện những gì?

Khía cạnh SegWit v0 Taproot
Chi tiêu thường (key path) Cần script + chữ ký ECDSA Chỉ 64 byte chữ ký Schnorr
Quyền riêng tư Lộ toàn bộ điều kiện script khi chi tiêu Chỉ lộ nhánh được dùng, nhiều khi không lộ gì
Multisig Chi phí tăng theo số người ký Gộp khóa, phí không tăng theo số người
Xác thực lô Không Có, giảm thời gian xác nhận khối
Không gian mở rộng tương lai Không có phiên bản script Mỗi lá có số phiên bản riêng

Điểm cần hiểu đúng về mức độ riêng tư: Taproot không phải công cụ trộn tiền. Nó giảm lượng thông tin công khai, không loại bỏ nó. Blockchain vẫn công khai và có thể phân tích chuỗi hoạt động. Những giải pháp như CoinJoin vẫn cần thiết cho mức ẩn danh cao hơn.

Taproot so với SegWit: nên chọn gì?

Hai địa chỉ ví cùng nhận BTC có thể khác nhau ngay từ byte đầu tiên: một địa chỉ bắt đầu bằng bc1q (native SegWit v0), địa chỉ Taproot cũng bắt đầu bằng bc1p với đuôi p. Khi nhìn thấy ký hiệu p trong địa chỉ, bạn đang nhìn một output Taproot.

Nếu bạn chủ động tạo địa chỉ Taproot khi nhận tiền, phần lớn giao dịch thường ngày sẽ nhỏ hơn và nhanh hơn so với địa chỉ SegWit cũ. Đổi lại, địa chỉ Taproot được sinh bởi ví nào thì cũng phụ thuộc vào phần mềm ví đó có hỗ trợ hay không — ví cũ có thể không đọc được địa chỉ bc1p.

Kích hoạt Taproot và ý nghĩa với người dùng

Taproot được kích hoạt khi đạt 80% tín hiệu sẵn sàng từ các hash rate tính theo phiên bản BIP8. Quá trình lịch sử diễn ra nhanh: giai đoạn signalling bắt đầu từ tháng 11 năm 2020, và đến block 709632 vào ngày 14 tháng 11 năm 2021, Taproot chính thức được kích hoạt với hơn 90% tín hiệu ủng hộ.

Với người dùng phổ thông, việc nâng cấp gần như trong suốt. Ví tự động tạo địa chỉ Taproot nếu hỗ trợ, giao dịch thường ngày rẻ hơn một chút. Điều đáng lưu ý là các sàn giao dịch, dịch vụ rút tiền và nhiều dịch vụ của bên thứ ba vẫn phát hành địa chỉ SegWit v0 vì tương thích rộng hơn, nên bạn sẽ thấy cả hai loại địa chỉ cùng tồn tại trong lịch sử giao dịch của mình.

Ảnh minh hoạ giao dịch Bitcoin, bối cảnh thị trường khi Taproot được kích hoạt

Những lưu ý quan trọng

  • Không tự tạo script phức tạp. Bạn luôn có thể chi tiêu theo khóa nội bộ, chỉ mất phí giao dịch và không có tính năng multisig. Thêm script không tự động giúp ví an toàn hơn.
  • Script thay thế vẫn là điểm yếu về riêng tư. Nếu bạn dùng nhánh script, người quan sát biết bạn dùng nhánh đó. Chỉ dùng script khi thật sự cần.
  • Cây không cân bằng làm lộ thông tin. Độ sâu của script trong cây tiết lộ độ sâu tối thiểu, qua đó có thể gợi ý phần mềm ví nào đã tạo output.
  • Schnorr không phải chữ ký đặc biệt. Chữ ký Schnorr về mặt toán học vẫn bảo mật, kể cả khi khóa công khai được công khai trước và khóa riêng có thể bị lộ sau. Không có tấn công thực tế nào khai thác điều này.
  • Ví cũ không hiển thị địa chỉ Taproot. Trước khi gửi BTC tới địa chỉ bc1p, hãy chắc chắn phần mềm ví của bạn hỗ trợ.

Nếu bạn đang tìm hiểu nền tảng kỹ thuật của Bitcoin, các bài viết về cây băm Merkle và SegWit sẽ giúp bạn hiểu phần nền tảng mà Taproot dựa trên đó.

Nguồn tham khảo: đặc tả kỹ thuật BIP 341 trong kho bitcoin/bips, bài giải thích tại Bitcoin Optech, và hồ sơ kỹ thuật trên Bitcoin Wiki.

Tôi là một lập trình viên IOS. Code chính là IOS nhưng thỉnnh thoảng vẫn đá sang Android hoặc web. Mặc dù không quá thông thạo nhưng tôi sẽ chia sẻ những kiến thức mà mình đã tìm hiểu, áp dụng qua.

Bài viết liên quan

Ordinals là gì? Ghi chú dữ liệu lên từng satoshi Bitcoin

Ordinals là gì? Ghi chú dữ liệu trực tiếp lên từng satoshi Bitcoin Ordinals là phương pháp gán số cho từng satoshi, đơn vị nhỏ nhất của Bitcoin, theo thứ…

Xem thêm

Tornado Cash là gì? Giao thức trộn tiền bảo vệ riêng tư trên Ethereum

Tornado Cash là giao thức phi tập trung mã nguồn mở dùng công nghệ zero-knowledge proof để trộn tiền crypto, giúp che giấu danh tính và nguồn của tài sản…

Xem thêm

Polkadot là gì: kiến trúc parachain và vai trò của token DOT

Polkadot là một mạng blockchain lớp 0 với kiến trúc đa chuỗi, cho phép nhiều blockchain chuyên biệt cùng chạy song song và giao tiếp với nhau trong một hệ…

Xem thêm
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất