해시 시간 잠금 계약 (Hashed TimeLock Contract, HTLC)
해시 시간 잠금 계약(HTLC)은 해시 조건과 시간 조건을 결합해 조건부 지불을 구현하는 스마트 계약 방식입니다. 수신자는 정해진 기한 안에 미리 공개된 해시값에 해당하는 비밀값(해시의 원상, preimage)을 제시해야 자금을 가져갈 수 있고, 기한 안에 제시하지 못하면 자금은 발신자에게 돌아갑니다. 라이트닝 네트워크 같은 결제 채널과 서로 다른 블록체인 간의 아토믹 스왑에 쓰입니다.
HTLC의 두 가지 조건
- 해시 잠금(Hashlock): 비밀값 R을 해시 함수에 넣어 얻은 해시값 H = hash(R)를 계약에 기록합니다. 해시값만 보고 R을 알아낼 수는 없지만, 누군가 R을 제시하면 hash(R)이 H와 같은지 바로 확인할 수 있습니다. 따라서 자금을 청구할 수 있는 사람은 해시값이 아니라 그 원상인 비밀값 R을 아는 수신자입니다.
- 시간 잠금(Timelock): 계약에 기한(블록 높이 또는 시각)을 정합니다. 기한이 지나도록 R이 제시되지 않으면 발신자가 자금을 되찾을 수 있습니다.
작동 방식
- 계약 생성: 비밀값 R을 아는 쪽이 해시값 H를 상대에게 알려 주고, 발신자는 “H의 원상을 제시하면 수신자에게, 기한이 지나면 발신자에게”라는 조건으로 자금을 계약에 잠급니다.
- 자금 청구: 수신자는 기한 전에 R과 자신의 서명을 제시해 자금을 가져갑니다. 이때 R은 블록체인이나 채널 상대방에게 공개됩니다.
- 시간 초과: 수신자가 기한 내에 R을 제시하지 못하면 발신자는 자금을 되찾을 수 있습니다.
이 구조 덕분에 지불은 “전부 이루어지거나 전혀 이루어지지 않는” 방식으로 끝나며, 당사자들은 서로를 신뢰하지 않아도 됩니다.
주요 활용
- 라이트닝 네트워크: 지불이 여러 채널을 거쳐 전달될 때 경로의 모든 구간에 같은 해시값 H로 HTLC를 겁니다. 최종 수신자가 R을 공개해 대금을 받으면, 중간 노드들도 같은 R로 앞 구간의 대금을 청구할 수 있습니다. 기한은 수신자 쪽 구간으로 갈수록 짧게 잡아, 중간 노드가 자기 몫을 청구할 시간을 확보합니다.
- 아토믹 스왑: 두 사람이 서로 다른 블록체인에 같은 해시값으로 HTLC를 겁니다. 한쪽이 R을 공개해 상대 체인의 자금을 받으면, 다른 쪽도 그 R로 자기 몫을 받을 수 있습니다. 먼저 잠그는 쪽의 기한을 더 길게 정해 한쪽만 손해 보는 상황을 막습니다. 이렇게 중개 거래소 없이 서로 다른 암호화폐를 직접 교환할 수 있습니다.
HTLC의 장점
- 신뢰 최소화: 특정 조건이 충족될 때만 자금이 해제되므로 상대방을 신뢰하지 않아도 거래할 수 있습니다.
- 분쟁 해결 단순화: 내장된 타임록 메커니즘은 조건이 충족되지 않을 경우 자금이 자동으로 환불되도록 하여 당사자 간의 분쟁을 줄입니다.
- 크로스체인 교환: 중앙 집중식 중개인 없이 아토믹 스왑을 가능하게 합니다.
HTLC의 단점
- 복잡성: HTLC의 구현과 관리는 기술적으로 복잡해 전문 지식이 필요할 수 있습니다.
- 시간 민감성: 당사자가 기한 안에 온라인 상태로 청구하지 못하거나 기술적 문제가 발생하면 지불 실패로 이어질 수 있습니다.
- 체인 간 호환성: 아토믹 스왑에서는 양쪽 체인이 같은 해시 함수와 타임록 기능을 지원해야 합니다.
전반적으로: HTLC는 신뢰가 없는 당사자 사이에서 조건부 지불과 교환을 구현하는 방법이지만, 구현의 복잡성과 시간 민감성이라는 제약이 있습니다.
이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.