# 해시 시간 잠금 계약 (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는 신뢰가 없는 당사자 사이에서 조건부 지불과 교환을 구현하는 방법이지만, 구현의 복잡성과 시간 민감성이라는 제약이 있습니다.

---
출처: https://achivx.kr/glossary/hashed-timelock-contract-htlc-%ED%95%B4%EC%8B%9C-%EC%8B%9C%EA%B0%84-%EC%9E%A0%EA%B8%88-%EA%B3%84%EC%95%BD-htlc/ · ACHIVX 용어 사전 · 수정일 2026-10-20
