비수탁형 비트코인 스왑은 안전할까? Boltz로 보는 아토믹 스왑과 프로토콜 위험
비수탁형 비트코인 스왑이 사용자 자산을 어떻게 보호하는지 살펴보고, Boltz 사례를 통해 아토믹 스왑의 구조와 프로토콜·유동성·운영 위험을 설명합니다.

비수탁형 비트코인 스왑은 거래소처럼 사용자의 비트코인을 장기간 보관하지 않고, 암호학적 조건을 이용해 서로 다른 비트코인 네트워크와 레이어 사이에서 자산을 교환하도록 설계됩니다. 하지만 ‘비수탁형’이라는 말이 해킹이나 서비스 장애, 스마트계약 오류, 유동성 부족 같은 모든 위험을 없애준다는 뜻은 아닙니다.
암호화폐 서비스에서 가장 먼저 구분해야 할 것 가운데 하나가 수탁형과 비수탁형입니다. 수탁형 서비스에서는 이용자가 자신의 자산을 플랫폼에 맡기지만, 비수탁형 서비스에서는 사용자가 자산에 대한 통제권을 유지하면서 거래를 수행합니다.
Boltz는 자신을 비수탁형 Bitcoin bridge로 설명하고 있으며, Bitcoin과 Lightning Network, Rootstock 등 서로 다른 비트코인 계층 사이의 스왑을 지원합니다.
비수탁형이라는 것은 무엇을 의미할까?
비수탁형이라는 말은 서비스 운영자가 이용자의 개인 키를 장기간 보유하지 않는다는 뜻입니다. 즉 플랫폼이 해킹됐다고 해서 거래소 핫월렛처럼 모든 이용자의 예치자산이 한꺼번에 탈취되는 구조를 줄일 수 있습니다.
하지만 비수탁형 = 절대 안전은 아닙니다.
비수탁형 서비스도 프로토콜 버그와 스마트계약 문제, 서버 장애, 유동성 부족, 가격 계산 오류, 사용자 실수 등의 위험을 가질 수 있습니다.
이처럼 사용자 자산을 직접 보관하지 않는 인프라에서도 검증 규칙의 오류는 중요한 위험이 될 수 있으며, BNB Chain의 Pasteur 하드포크는 브리지 validator 검증 규칙을 강화한 최근 사례입니다.
따라서 비수탁형은 특정 종류의 수탁 위험을 줄이는 설계 방식으로 이해하는 것이 정확합니다.
Boltz는 어떤 서비스일까?
DefiLlama는 Boltz를 비수탁형 Bitcoin bridge로 분류하고 있습니다. Boltz는 Bitcoin 메인넷과 Lightning Network 같은 서로 다른 환경 사이에서 자산을 교환할 수 있도록 지원합니다.
예를 들어 사용자는 온체인 BTC를 Lightning으로 바꾸거나 반대로 Lightning 자금을 온체인 BTC로 이동할 수 있습니다. 이 과정에서 일반 중앙화 거래소처럼 입금 → 거래소 계정 보관 → 내부 장부 교환 → 출금을 거치지 않고 암호학적 조건을 이용해 교환을 진행하는 것이 핵심입니다.
아토믹 스왑은 어떻게 작동할까?
Boltz 같은 비수탁형 스왑에서 중요한 개념이 아토믹 스왑(Atomic Swap)입니다. 아토믹이라는 말은 거래가 전부 성공하거나 전부 실패하도록 설계한다는 의미에 가깝습니다.
예를 들어 A가 BTC를 보내고 B가 Lightning으로 대응 자산을 보내야 한다고 가정해보겠습니다. 일반적인 직접 거래라면 A가 먼저 돈을 보냈는데 B가 약속을 지키지 않을 위험이 있습니다.
아토믹 스왑에서는 해시 타임락 계약(HTLC) 같은 암호학적 조건을 이용해 두 거래를 연결합니다. 일정한 비밀값이 공개돼야 상대방이 자산을 가져갈 수 있고, 정해진 시간이 지나면 원래 소유자가 환불받을 수 있도록 설계할 수 있습니다.
이 구조는 서로 상대방을 완전히 신뢰하지 않아도 거래할 수 있게 해줍니다.
HTLC는 무엇일까?
HTLC는 Hash Time-Locked Contract의 약자입니다. 두 가지 조건을 결합합니다.
하나는 Hash Lock입니다. 정해진 비밀값을 아는 사람이 자산을 사용할 수 있도록 합니다.
다른 하나는 Time Lock입니다. 일정 시간이 지나면 원래 소유자가 자산을 되찾을 수 있도록 합니다.
따라서 상대방이 거래를 완료하지 않는다면 무기한 자산이 묶이지 않도록 설계할 수 있습니다. 이 방식은 Lightning Network와 여러 비수탁 스왑에서 중요한 역할을 합니다.
HTLC는 스왑 실패를 어떻게 막아줄까?
HTLC의 핵심은 단순히 비밀값과 시간을 사용하는 데 있지 않습니다. 두 거래의 성공 조건과 실패 시 환불 경로를 서로 연결한다는 점이 중요합니다.
스왑이 정상적으로 진행되면 한쪽이 자산을 가져가기 위해 비밀값을 공개하고, 그 정보가 상대편 거래를 완료하는 데도 사용될 수 있습니다. 반대로 상대방이 정해진 시간 안에 거래를 완료하지 않으면 타임락이 만료된 뒤 원래 소유자가 자산을 되찾을 수 있도록 설계할 수 있습니다.
이 구조는 한쪽은 자산을 가져갔는데 다른 쪽은 아무것도 받지 못하는 상황을 줄이기 위한 장치입니다. 거래가 성공하면 양쪽의 교환이 완료되고, 조건이 충족되지 않으면 환불 경로를 통해 원래 상태로 돌아갈 수 있도록 만드는 것이 아토믹 스왑의 핵심입니다.
다만 HTLC가 있다고 해서 모든 실패 위험이 사라지는 것은 아닙니다. 타임락 설정이 잘못됐거나 필요한 환불 정보가 유실되고, 네트워크 혼잡이나 수수료 문제로 거래가 제때 처리되지 않으면 사용자가 직접 대응해야 할 수 있습니다.
그래서 비수탁형 스왑을 평가할 때는 HTLC를 사용한다는 사실만 볼 것이 아니라 비밀값 공개 방식, 타임락 순서, 환불 경로가 실제로 어떻게 설계돼 있는지까지 확인하는 것이 중요합니다.
비수탁형이면 해킹이 불가능한가?
그렇지 않습니다. Boltz의 과거 공식 블로그에도 실제 공격 사례가 기록돼 있습니다.
초기 Boltz 시스템에서는 공격자가 이른바 free option exploit을 이용해 자신에게 유리한 가격이 될 때까지 거래 완료 여부를 선택할 수 있었고, 이후 조사 과정에서 타임아웃과 수수료 계산과 관련된 추가 문제가 발견됐습니다.
이 사례가 보여주는 것은 중요합니다. 사용자 자산을 직접 보관하지 않는 서비스라도 거래 규칙 자체에 논리적 결함이 있으면 공격자가 경제적 이익을 얻을 수 있습니다.
즉 보안 위험은 개인 키 탈취만 있는 것이 아닙니다.
경제적 공격이란 무엇일까?
암호화폐 프로토콜에서는 코드를 직접 해킹하지 않고도 설계된 경제 규칙을 악용할 수 있습니다. 예를 들어 특정 거래를 취소할지 완료할지를 공격자가 유리하게 선택할 수 있다면 사실상 무료 옵션을 얻는 것과 비슷합니다.
가격이 자신에게 유리하면 거래를 완료하고, 불리하면 취소하는 식입니다. 이런 문제가 반복되면 공격자는 플랫폼의 유동성을 조금씩 빼낼 수 있습니다.
Boltz가 과거 공개한 free option 문제도 이런 유형의 경제적 공격 사례였습니다. 따라서 프로토콜 보안에서는 코드가 실행되는가뿐 아니라 공격자가 경제적으로 악용할 수 있는 구조가 있는가도 확인해야 합니다.
사용자 자금이 안전해도 서비스는 중단될 수 있다
비수탁형 구조의 또 다른 특징입니다. 플랫폼이 이용자의 자산을 직접 보관하지 않더라도 서비스 자체가 멈출 수 있습니다.
예를 들어 스왑 서버 장애와 유동성 공급 중단, 가격 오라클 오류, 프로토콜 업데이트 등이 발생하면 새로운 거래가 일시적으로 불가능할 수 있습니다.
즉 Custody Risk와 Availability Risk는 다른 문제입니다. 자산을 운영자가 들고 있지 않는다는 것은 수탁 위험을 낮출 수 있지만 서비스가 항상 정상 작동한다는 보장은 아닙니다.
환불 경로가 중요한 이유
비수탁형 스왑에서는 거래가 실패했을 때 어떻게 자산을 되찾는지가 매우 중요합니다. HTLC 기반 거래에서는 타임락이 만료된 뒤 원래 사용자가 자산을 회수할 수 있는 경로를 설계할 수 있습니다.
하지만 사용자가 필요한 거래 데이터나 키 정보를 잃어버리면 환불 과정이 복잡해질 수도 있습니다. 따라서 비수탁 서비스를 사용할 때는 단순히 “서비스가 내 자산을 보관하지 않는다”는 것뿐 아니라 “거래가 실패했을 때 내가 직접 환불할 수 있는가?”도 확인해야 합니다.
TVL은 보안 수준을 보여주는 숫자가 아니다
기존 글에서는 Boltz의 TVL을 약 18만860달러로 소개했습니다. 하지만 TVL은 실시간으로 변합니다.
더 중요한 오해는 TVL이 높으면 안전하다고 생각하는 것입니다. TVL은 프로토콜에 얼마나 많은 자산이 존재하는지를 보여주는 지표이지 보안 감사 결과가 아닙니다.
TVL이 10억 달러인 프로토콜에서도 취약점이 발견될 수 있고, TVL이 작은 서비스가 기술적으로 더 단순하고 안전할 수도 있습니다. 따라서 TVL은 규모 지표로만 활용해야 합니다.
‘AI 기반 공격’이라는 표현은 조심해야 한다
최근 보안 분야에서는 생성형 AI와 자동화 도구가 취약점 탐색이나 코드 분석을 빠르게 할 수 있다는 논의가 늘고 있습니다. 하지만 특정 공격이 발생했다고 해서 “AI가 해킹했다”고 표현하려면 실제 근거가 필요합니다.
공격자가 자동 스캐너를 이용했는지, LLM을 이용해 취약점을 찾았는지, AI가 공격 코드를 생성했는지를 외부에서 정확히 구분하기 어려운 경우가 많습니다.
따라서 공식 기술 분석이 없다면 AI 기반 공격이라고 단정하기보다 자동화된 공격 시도가 증가했다 또는 AI 도구가 공격자의 탐색 속도를 높일 가능성이 있다 정도로 구분해서 쓰는 것이 더 정확합니다.
AI가 보안 공격 속도를 높일 수 있는 이유
AI와 자동화는 공격자가 많은 코드를 빠르게 검토하는 데 도움을 줄 수 있습니다. 과거 공격자는 직접 코드를 읽고 취약한 부분을 하나씩 찾아야 했습니다.
현재는 정적 분석 도구와 자동화된 퍼징, 코드 생성 도구 등을 결합해 훨씬 많은 테스트를 빠르게 실행할 수 있습니다. 이 과정에서 AI가 취약한 함수 후보 찾기와 공격 코드 초안 생성, 오류 메시지 분석 등을 보조할 수 있습니다.
하지만 동시에 방어자도 AI와 자동화를 사용할 수 있습니다. 따라서 AI 공격자 vs 인간 방어자라는 단순한 구도가 아니라 공격과 방어 양쪽의 자동화 속도가 빨라지는 환경으로 보는 것이 적절합니다.
오픈소스는 공격자에게도 코드를 보여주지 않을까?
맞습니다. 오픈소스 프로젝트에서는 공격자도 코드를 볼 수 있지만 동시에 전 세계 개발자와 보안 연구자도 같은 코드를 검토할 수 있습니다.
Boltz 역시 오픈소스 생태계에서 개발되는 서비스입니다. 오픈소스의 장점은 코드가 완벽해서가 아니라 외부에서 검증할 수 있다는 점입니다.
반면 코드가 공개돼 있다고 해서 누군가 반드시 버그를 발견해준다는 보장은 없습니다. 따라서 오픈소스 여부와 감사·테스트·버그바운티·신속한 패치를 함께 보는 것이 중요합니다.
비수탁형과 무신뢰형은 완전히 같은 말이 아니다
두 용어도 자주 혼동됩니다. 비수탁형(Non-custodial)은 운영자가 이용자의 자산을 직접 보관하지 않는다는 의미입니다.
무신뢰형(Trustless)은 거래가 특정 중앙 운영자의 약속보다 암호학적 규칙에 의해 실행되는 정도를 의미합니다. 실제 서비스에서는 완전한 무신뢰성이 어려울 수 있습니다.
가격 정보나 서버, 유동성 공급 등 일부 구성요소에서 운영자를 신뢰해야 할 수 있기 때문입니다. 따라서 서비스가 비수탁형이라고 해서 운영자를 전혀 신뢰할 필요가 없다는 의미는 아닙니다.
Lightning 스왑에는 어떤 추가 위험이 있을까?
Lightning Network는 온체인 비트코인보다 빠르고 저렴한 결제를 가능하게 합니다. 하지만 Lightning에는 자체적인 유동성 구조가 있습니다.
예를 들어 큰 금액을 보내려면 결제 경로에 충분한 채널 유동성이 있어야 합니다. 따라서 스왑 서비스에서는 온체인 유동성과 Lightning 유동성을 모두 관리해야 할 수 있습니다.
유동성이 부족하면 거래가 실패하거나 수수료가 높아질 수 있습니다. 즉 비수탁형 스왑의 안정성은 암호학뿐 아니라 유동성 관리 능력에도 영향을 받습니다.
프로토콜에서 ‘패치 속도’가 중요한 이유
인터넷 서비스는 새로운 취약점이 계속 발견됩니다. 문제는 취약점이 존재한다는 사실 자체보다 발견 → 분석 → 수정 → 배포가 얼마나 빠르게 이루어지는가입니다.
공격자가 먼저 취약점을 발견하고 실제 자금이 걸린 환경에서 반복적으로 악용한다면 피해가 커질 수 있습니다. 반대로 개발팀이 문제를 빠르게 발견하고 스왑을 일시 중단한 뒤 수정할 수 있다면 피해 범위를 줄일 수 있습니다.
따라서 암호화폐 프로토콜을 평가할 때는 과거에 취약점이 있었는가뿐 아니라 그 취약점에 어떻게 대응했는가도 중요합니다.
비수탁형 스왑을 사용할 때 확인해야 할 7가지
첫째, 자금 통제권입니다.
서비스가 실제 개인 키를 보관하는지 확인합니다.
둘째, 환불 구조입니다.
스왑 실패 시 사용자가 직접 자산을 회수할 수 있는지 봅니다.
셋째, 오픈소스 여부입니다.
핵심 코드가 외부 검토 가능한지 확인합니다.
넷째, 보안 이력입니다.
과거 취약점과 패치 내역을 살펴봅니다.
다섯째, 유동성입니다.
원하는 규모의 스왑을 감당할 수 있는지 확인합니다.
여섯째, 지원 네트워크입니다.
Bitcoin, Lightning, Rootstock 등 어떤 자산과 레이어를 실제 지원하는지 봅니다.
일곱째, 장애 대응입니다.
서비스 중단 시 상태 페이지와 환불 방법, 지원 채널이 제공되는지 확인합니다.
비수탁형에서 가장 중요한 것은 ‘돈을 맡기지 않는다’에서 끝나지 않는다
Boltz 같은 서비스의 가장 큰 특징은 사용자의 비트코인을 일반 중앙화 거래소처럼 장기간 보관하지 않는다는 점입니다. 이 구조는 거래소 해킹이나 파산처럼 중앙 운영자가 고객 자산을 보유하면서 발생하는 위험을 낮출 수 있습니다.
하지만 Boltz의 과거 사례에서 보듯 프로토콜 로직과 가격, 수수료 계산이 잘못 설계되면 또 다른 형태의 공격이 발생할 수 있습니다.
따라서 비수탁형 서비스에서 중요한 질문은 “운영자가 내 비트코인을 가지고 있는가?” 하나가 아닙니다.
함께 물어야 하는 것은 “거래가 실패했을 때 내가 자산을 회수할 수 있는가?”, “프로토콜의 경제적 규칙에 악용 가능한 부분은 없는가?”, “개발팀은 취약점을 얼마나 빠르게 발견하고 수정하는가?”입니다.
결국 비수탁형은 보안을 완성하는 기술이 아니라 수탁 위험이라는 하나의 큰 위험을 줄이는 설계 방식입니다. 프로토콜 버그와 유동성, 서비스 장애, 사용자의 키 관리까지 함께 안전해야 비로소 전체적인 보안 수준이 높아집니다.
면책 조항: 본 콘텐츠는 비수탁형 비트코인 스왑과 프로토콜 보안 구조를 이해하기 위한 정보 제공 목적으로 작성되었으며 Boltz 또는 기타 암호화폐 서비스의 이용이나 디지털 자산의 매수·매도를 권유하지 않습니다.
spthsld




댓글 0
첫 댓글을 남겨보세요.