모든 원자적 스왑이 동등하게 만들어지는 것은 아닙니다

Zenith Network

모든 원자적 스왑이 동등하게 만들어지는 것은 아닙니다

Zenith는 EVM 애플리케이션이 Canton 네이티브 자산 및 애플리케이션과 원자적으로 결합할 수 있도록 하며, 이를 위해 진정한 합의 기반 원자성에 의존합니다: Zenith EVM은 Canton의 합의 메커니즘을 사용하여 트랜잭션을 단일하고 분리 불가능한 작업으로 조율하고 정산합니다.

이와 대조적으로, 해시 타임락 계약(HTLCs)은 많은 크로스체인 "원자적" 스왑의 기반이 되는 메커니즘으로, 본질적으로 다른 것을 제공합니다. HTLCs는 스마트 컨트랙트 레이어에서 강제되는 경제적 원자성을 제공하며, 정산은 여전히 별개의 합의 메커니즘에 의존합니다.

이 글에서는 그 차이점을 분석하고 서로 다른 맥락에서 "원자적"이 실제로 무엇을 의미하는지 명확히 설명합니다.

"원자적"의 두 가지 유형

"원자적"이라는 용어는 종종 매우 유연하게 사용되어 서로 다른 메커니즘을 설명하고, 가장 중요한 구분을 흐리게 만듭니다.

  • 해시 타임락 계약을 사용하여 구현된 경제적 원자성은 스마트 컨트랙트 레이어에서 작동합니다. 이는 스왑이 완전히 완료되거나 전혀 완료되지 않음을 보장하지만, 트랜잭션의 양쪽 다리는 여전히 각자의 체인에서 자체 합의 메커니즘을 통해 각자의 최종성 시간에 정산됩니다.

  • 합의 수준의 원자성은 프로토콜 레이어에서 작동합니다. 트랜잭션의 양쪽 다리는 동일한 단일 합의 메커니즘 내에서 처리되며, 단일하고 분리 불가능한 작업으로 커밋(또는 거부)됩니다. 결과를 강제하기 위한 타임락이나 암호화 에스크로에 대한 의존이 없습니다. 프로토콜 자체가 이를 보장합니다.

이것은 사소한 의미론적 구분이 아닙니다. 최종성, 지연 시간, 보안 및 구성 가능성에 중요한 영향을 미칩니다.

Article image

HTLCs의 작동 방식

해시 타임락 계약은 많은 크로스체인 원자적 스왑의 기반이 되는 메커니즘입니다. 이 개념은 해시락과 타임락을 조건부 결제로 결합한 초기 Bitcoin 개발자들에 의해 제안되었습니다. 이후 널리 채택되었으며, 예를 들어 Chainlink는 별개의 블록체인 네트워크 간 P2P 자산 교환을 가능하게 하는 방법에 대한 상세한 설명을 제공합니다.

다음은 일반적인 HTLC 기반 크로스체인 스왑의 작동 방식입니다:

  1. Alice(체인 A)와 Bob(체인 B)은 토큰 스왑에 합의합니다.

  2. Alice는 비밀값을 생성하고 그 암호화 해시를 계산한 뒤, 체인 A에 타임락 스마트 컨트랙트를 배포하고 자신의 토큰을 예치합니다. 컨트랙트는 해시로 잠기며, 원래의 비밀값을 아는 사람만 자금을 청구할 수 있습니다. 청구되지 않으면 설정된 타임아웃 이후 토큰은 Alice에게 반환됩니다.

  3. Bob은 Alice의 해시를 확인하고(비밀값은 알 수 없음), 체인 B에 동일한 해시를 사용하는 매칭 타임락 컨트랙트를 배포하여(Alice보다 짧은 타임락으로) 자신의 토큰을 예치합니다. 이제 양측은 각자의 체인에 있는 컨트랙트에 자산을 잠근 상태입니다.

  4. Alice는 비밀값을 공개하여 체인 B에서 Bob의 토큰을 청구합니다. 이 공개는 이제 온체인에서 확인 가능합니다.

  5. Bob은 공개된 비밀값을 사용하여 체인 A의 컨트랙트에서 Alice의 토큰을 청구합니다.

  6. 어느 한쪽이 각자의 타임락 기간 내에 예치 또는 청구를 이행하지 않으면, 컨트랙트는 되돌아가고 모든 토큰은 원래 소유자에게 반환됩니다.

해시 타임락 컨트랙트를 통한 스왑은 "원자적"이라는 표현이 적용되는 것은 경제적의미에서뿐입니다: 프로토콜이 정직하게 이행된다면, 양측 모두 토큰을 받거나 아무도 받지 못합니다. 이는 애플리케이션 레이어에서의 전부 아니면 전무 결과입니다.

하지만 이 스왑의 정산은 원자적이지 않습니다. Alice의 청구 트랜잭션은 체인 B의 합의에서 정산됩니다. Bob의 청구 트랜잭션은 체인 A의 합의에서 정산됩니다. 이 두 과정은 완전히 별개의 최종성 확정 프로세스입니다. 단일 합의 메커니즘이 작업의 두 단계를 모두 처리하는 시점은 존재하지 않습니다. "원자적" 보장은 스마트 컨트랙트 로직의 속성이지, 기반 정산의 속성이 아닙니다.

Article image

HTLC의 단점과 공격 벡터

HTLC는 크로스체인 교환에 유용한 경제적 보장을 제공하지만, 타임락·독립적 합의 메커니즘·게임 이론적 가정에 대한 의존에서 비롯된 중대한 구조적 취약점을 안고 있습니다.

Article image

최종성은 가장 느린 체인에 의해 제한됩니다

HTLC 기반 스왑의 속도는 관여된 네트워크 중 가장 느린 것에 의해 결정됩니다. 양측은 스왑이 최종 확정되기 전에 두 체인 모두에서 충분한 컨펌을 기다려야 합니다. 한 체인의 블록 생성 시간이 느리거나, 혼잡도가 높거나, 확률적 최종성을 가진 경우(특정 조건에서의 Ethereum처럼), 전체 스왑의 최종성 타임라인이 그에 맞게 늘어납니다. 이로 인해 HTLC는 엄격한 타이밍이나 신속한 정산이 요구되는 상호작용에는 적합하지 않습니다.

타임락은 비현실적인 지연을 초래합니다

타임락 기간은 네트워크 지연, 블록 시간 편차, 충분한 컨펌 확보의 필요성을 고려하여 보수적으로 설정되어야 합니다. 실제로 타임락 기간은 수 시간 단위로 측정되는 경우가 많습니다. 거래, DeFi 상호작용, 또는 빠른 응답이 필요한 워크플로우에서 이러한 지연은 HTLC 기반 스왑을 사실상 비실용적으로 만듭니다. 스왑 시작부터 완료까지의 시간은 실행이 아닌 대기에 의해 지배됩니다.

체인 재편성은 최종성 가정을 훼손합니다

확률적 최종성을 가진 체인(Ethereum 포함)에서는 블록 재편성이 트랜잭션 이력을 소급하여 변경할 수 있습니다. 확인된 것으로 보였던 청구 트랜잭션이 재편성에 의해 취소될 수 있으며, 이는 상대방이 이미 스왑이 완료되었다는 가정 하에 행동한 이후에도 발생할 수 있습니다. HTLC에는 이를 처리하는 내장 메커니즘이 없습니다. 타임락이 만료되고 비밀값이 공개된 이후에도 한 체인의 정산이 여전히 번복될 수 있습니다. 이는 어떠한 스마트 컨트랙트 로직으로도 해소할 수 없는 실질적인 정산 위험 구간을 만들어냅니다.

그리핑 공격은 비용 없이 자본을 잠급니다

HTLC에 대해 가장 많이 연구된 공격 벡터 중 하나는 그리핑 공격입니다. 악의적인 당사자가 스왑을 시작하고 상대방의 자본을 잠근 뒤, 의도적으로 자신의 이행을 거부합니다. 정직한 당사자의 토큰은 타임락이 만료될 때까지 동결된 상태로 남습니다. 공격자는 최초 트랜잭션의 가스 비용 외에는 아무것도 지불하지 않습니다.

서비스 거부 공격은 타임아웃을 유발할 수 있습니다

공격자가 네트워크 수준의 DDoS 또는 RPC 엔드포인트 플러딩을 통해 특정 당사자의 클레임 트랜잭션 제출을 방해할 경우, 타임락이 만료되어 스왑이 실패합니다. 정직한 당사자는 토큰을 잃지 않지만(되돌려지므로), 스왑 자체는 무력화됩니다. 고액 거래나 시간에 민감한 상황에서는 스왑 실패 자체만으로도 상당한 피해가 발생할 수 있습니다.

무료 옵션 문제

HTLC는 비밀을 생성한 당사자, 즉 이 예시에서 Alice에게 유리한 구조적 비대칭성을 만들어냅니다. 양 당사자가 자산을 잠근 후, Alice는 Bob의 타임락 기간 전체를 활용하여 비밀을 공개하고 스왑을 완료할지 여부를 결정할 수 있습니다. 가격이 불리하게 움직이면 Alice는 아무것도 하지 않고, 두 타임락 모두 만료되어 양측 모두 되돌려지며, Alice는 아무런 손실 없이 빠져나갑니다. 반면 이미 토큰을 잠근 Bob에게는 그러한 선택권이 없습니다. 그는 예치하는 순간부터 구속되며 오직 기다릴 수밖에 없습니다. 변동성이 큰 시장에서 이는 사실상 Bob의 희생으로 Alice에게 무료 옵션을 제공하는 것과 같습니다.

Canton과 Zenith EVM 간의 진정한 원자성

Zenith는 근본적으로 다른 접근 방식을 취합니다. Zenith는 EVM 실행을 Canton의 합의 내부에 내장하여 프로토콜 수준에서 진정한 원자적 조합 가능성을 실현합니다.

external_call() 프리미티브

Zenith EVM과 Canton 간의 스왑 및 다중 레그 DeFi 운영을 포함한 원자적 상호작용은 Zenith가 Daml로 구현한 external_call() 프리미티브를 통해 가능합니다. 이 함수는 Daml 컨트랙트가 동일한 Canton 트랜잭션 내에서 결정론적으로 EVM 실행 환경을 호출할 수 있도록 합니다.

크로스 환경 트랜잭션의 흐름은 다음과 같습니다:

  1. 제출: 사용자가 해당 Daml 작업과 함께 래핑된 EVM 트랜잭션 페이로드를 포함하는 네이티브 Canton 트랜잭션을 제출합니다.

  2. 호출: Daml 컨트랙트가 트랜잭션을 처리하고, external_call()을 호출하여 EVM 페이로드를 로컬에서 실행 중인 Reth 기반 EVM 런타임으로 전달합니다.

  3. 네이티브 EVM 실행: Canton 참여자는 Canton 노드이자 Zenith EVM 운영자로서 이중 역할을 수행합니다. EVM 트랜잭션은 Ethereum과 일관된 순차적 단일 스레드 시맨틱으로 네이티브 실행되며, 새로운 EVM 상태 루트가 생성됩니다.

  4. 결정론적 검증: Zenith는 Canton의 네이티브 2단계 검증 모델에 의존합니다.

    1. 제출자는 해석 과정에서 external_call()을 실행하고 그 결과를 트랜잭션 뷰에 포함합니다.

    2. 도메인 내 다른 모든 Canton 검증자는 동일한 호출을 독립적으로 재실행합니다.

    3. 어느 검증자라도 다른 결과를 얻으면 전체 트랜잭션이 거부됩니다.

  5. 원자적 결제:Canton 레그와 EVM 레그 모두 실행 트리의 일부이기 때문에 동일한Canton 트랜잭션은 모두 성공하거나 전체 트랜잭션이 실패합니다. 결합된 트랜잭션이 검증되면 사용자에게 최종 확정이 확인됩니다.

Article image

실제로 이것이 의미하는 바

The external_call() 프리미티브는 Canton의 네이티브 검증 모델을 따르며 추가적인 신뢰 가정을 도입하지 않습니다. 타임락이 없습니다. 한쪽 레그는 정산되었지만 다른 쪽은 그렇지 않은 구간도 존재하지 않습니다. 결과는 양 당사자가 합리적으로 또는 정직하게 행동하는지 여부에 달려 있지 않으며, 프로토콜 자체가 두 레그 모두 함께 커밋되거나 전혀 커밋되지 않음을 보장합니다.

EVM 실행은 전체 Canton 트랜잭션에 수백 밀리초의 지연만을 추가할 뿐이며, 이는 HTLC 기반 스왑의 잠재적으로 긴 타임락 구간에 비하면 무시할 수 있는 오버헤드입니다.

요약

차이점을 다음과 같이 요약할 수 있습니다:

Article image

마무리 생각

살펴본 바와 같이, 모든 원자적 스왑이 동일하게 만들어지는 것은 아닙니다. 누군가 "원자적"이라고 말할 때, 다음과 같이 물어볼 필요가 있습니다: 어느 레이어에서원자적인가?

그 답에 따라, 타임락이 적용된 규칙 내에서 양 당사자가 합리적으로 행동한다는 전제에 의존하는 약속을 받는 것인지, 아니면 트랜잭션이 완전히 실행되거나 전혀 발생하지 않는다는 진정한 프로토콜 수준의 보장을 받는 것인지가 결정됩니다.

gradient bg

Ready to build on Canton?

Let’s design your EVM environment together.

Let’s get started
Zenith Logo

© 2026 Zenith. All rights reserved. Registered Canton Super Validator.

Privacy Policy