Tóm tắt
HTLC (Hash Time-Locked Contract) là cơ chế cryptographic cho phép Lightning Network định tuyến thanh toán qua nhiều node trung gian một cách trustless — không ai trong route có thể giữ tiền mà không chuyển tiếp. Kết hợp hai primitive: hashlock (chỉ người biết preimage mới unlock được) và timelock (tự động refund sau T block nếu không claim). HTLC đảm bảo tính atomic: hoặc cả route thanh toán thành công, hoặc không ai mất tiền. Đây là lý do Lightning Network có thể hoạt động trustless qua hàng chục hop mà không cần biết hay tin tưởng các node trung gian.
1Vấn Đề Cần Giải Quyết
Hãy tưởng tượng: Alice muốn gửi 10.000 sat cho Dave qua route Alice → Bob → Carol → Dave. Alice không biết Bob và Carol — họ chỉ là các node trên Lightning Network. Làm thế nào để:
- Alice chắc chắn tiền đến được Dave (không bị Bob hay Carol giữ lại)
- Bob và Carol chắc chắn được trả phí routing nếu họ chuyển tiếp đúng
- Nếu Carol không chuyển tiếp, Alice không mất tiền
- Không cần Alice tin tưởng Bob, Carol, hay Dave
Đây là bài toán trustless multi-hop payment routing — và HTLC là giải pháp. Không có HTLC, Lightning Network không thể tồn tại theo cách trustless.
2HTLC Là Gì? Hai Thành Phần Cốt Lõi
HTLC là một dạng smart contract đặc biệt trong Bitcoin Script, kết hợp hai cơ chế khóa bổ sung nhau:
🔐 Hashlock
- Payment hash H = SHA256(preimage)
- Chỉ người biết preimage (giá trị gốc tạo ra H) mới unlock được
- Preimage do Dave tạo ra và chỉ Dave biết ban đầu
- Khi Dave reveal preimage → tiền giải phóng
⏰ Timelock
- Nếu không có ai claim trong vòng T block → tiền tự động refund về sender
- Mỗi hop trong route có timelock ngắn hơn hop trước
- Đảm bảo tiền không bị "kẹt" mãi mãi
- Dùng CLTV (CheckLockTimeVerify) trong Bitcoin Script
Kết hợp lại: HTLC là conditional payment — "Trả X sat cho ai reveal được preimage của hash H, trong vòng T block. Nếu không có ai claim sau T block, hoàn tiền về tôi." Bitcoin Script enforce điều này on-chain nếu cần.
3Hashlock – Khóa Bằng Hash Function
Dave tạo một số ngẫu nhiên bí mật gọi là preimage (R). Tính H = SHA256(R) và chia sẻ H (payment hash) công khai với Alice khi Alice muốn thanh toán. Không ai ngoài Dave biết R.
4Timelock – Khóa Bằng Thời Gian (CLTV)
Timelock giải quyết trường hợp: nếu Dave không claim (offline, từ chối), tiền của Alice không bị kẹt mãi mãi. Mỗi HTLC trong route đặt một thời hạn — nếu không có preimage được reveal trong thời hạn đó, tiền tự động refund về người tạo HTLC.
Điểm quan trọng: timelock giảm dần theo chiều route. Hop gần Alice có timelock dài hơn hop gần Dave:
| Hop | HTLC | Timelock | Lý do |
|---|---|---|---|
| Alice → Bob | HTLC_AB | T+40 block (~6.7h) | Dài nhất — Alice cần đủ thời gian để claim refund |
| Bob → Carol | HTLC_BC | T+30 block (~5h) | Bob cần claim từ Alice trước khi HTLC_AB hết hạn |
| Carol → Dave | HTLC_CD | T+20 block (~3.3h) | Carol cần claim từ Bob trước khi HTLC_BC hết hạn |
Khoảng cách giữa các timelock (delta = 10 block trong ví dụ) đủ để mỗi node có thời gian claim tiền từ hop trước khi timelock của mình hết hạn — kể cả trong điều kiện mạng chậm hoặc block thời gian bất thường.
5Flow Thanh Toán Đa Hop – Bước Từng Bước
Phase 1: HTLC được tạo từ Alice → Dave (lock tiền)
Phase 2: Dave reveal preimage R → tiền giải phóng ngược route
Toàn bộ quá trình này xảy ra off-chain — không có Bitcoin transaction nào được broadcast trong happy path. Chỉ khi có dispute hoặc route failure mới cần on-chain settlement. Đây là lý do Lightning Network có thể xử lý hàng triệu transaction mà không làm tắc nghẽn Bitcoin mainchain.
6Tại Sao HTLC "Atomic"?
Atomic có nghĩa là: toàn bộ payment hoặc thành công hoàn toàn, hoặc thất bại hoàn toàn. Không có trạng thái "nửa vời" — tiền không thể biến mất ở giữa.
- Nếu Dave reveal R: Tất cả HTLC trong route được settle — Dave nhận tiền, Bob và Carol nhận fee, Alice trả đúng số tiền cam kết. ✅
- Nếu Dave không reveal R (offline, từ chối): Tất cả HTLC hết hạn timelock theo thứ tự từ Carol ngược về Alice — mọi người nhận lại tiền của mình. ✅
- Nếu Bob biến mất giữa chừng: Alice force-close channel với Bob on-chain, HTLC được settle theo timelock. Alice không mất tiền, chỉ tốn phí on-chain và thời gian. ✅
- Không thể: Bob giữ tiền của Alice mà không chuyển cho Carol, hoặc Carol giữ tiền mà không chuyển cho Dave. HTLC không cho phép điều này về mặt cryptographic. ✅
7HTLC Trong Bitcoin Script Thực Tế
Trong thực tế Lightning, HTLC script được nhúng vào commitment transaction của mỗi channel — transaction này được ký sẵn nhưng không được broadcast, chỉ broadcast nếu cần force-close. Với Taproot, HTLC script được ẩn trong tapscript leaf, chỉ reveal khi cần thực sự.
8PTLC – Thế Hệ Tiếp Theo Của HTLC
HTLC có một điểm yếu về privacy: payment hash H giống nhau trên tất cả các hop trong route — bất kỳ node trung gian nào cũng có thể nhận ra họ đang xử lý cùng một payment nếu họ kiểm soát nhiều hop.
HTLC (hiện tại)
- Payment hash H giống nhau trên tất cả hop
- Node kiểm soát hop 1 và hop 3 có thể link payment
- Dùng SHA256 hashlock
- Tương thích với tất cả Lightning node hiện tại
PTLC (Point Time-Locked Contract)
- Dùng Schnorr signature + adaptor signature
- Mỗi hop có "secret" riêng biệt — không link được
- Privacy tốt hơn đáng kể
- Cần Taproot (đã có) + protocol upgrade Lightning
PTLC đang được nghiên cứu và phát triển trong cộng đồng Lightning. Tương thích ngược với infrastructure hiện tại nhưng cần upgrade phần mềm của toàn bộ node. Timeline không rõ ràng — có thể vài năm tới. Đọc thêm về kiến trúc Lightning Network đầy đủ tại SATS.VN.
?FAQ Về HTLC
HTLC là nền tảng, nhưng Lightning còn nhiều hơn thế: channel liquidity, watchtower, LSP, routing algorithm và giới hạn thực tế. Đọc phân tích kỹ thuật đầy đủ tại SATS.VN.
→ Đọc Phân Tích Tổng Thể Tại SATS.VN