코인 매입
시장
현물
선물
파이낸스
이벤트
더 알아보기
신규 사용자 독점
로그인
보고서 분석 세부 정보
업계 연구

라이트닝 네트워크에서의 대체 기간 공격

게시일: 2023-12-25

비트코인 라이트닝 네트워크는 비트코인 블록체인의 확장성 문제를 해결하기 위한 레이어-2 확장 솔루션입니다. 이는 즉각적이고 저렴한 비트코인 거래를 가능하게 하여 사용자들에게 더 효율적이고 접근 가능하게 만듭니다. 비트코인 온체인 트랜잭션과 비교하면, 라이트닝 네트워크의 트랜잭션은 비공개이며, 오프체인에서 발생하고, 전체 결과만 기록됩니다.

라이트닝 네트워크의 주요 장점 중 하나는 속도와 경제성입니다. 사용자들이 비트코인 네트워크를 통해 소액 결제를 간단하고 비용 효율적으로 보내고 받을 수 있게 합니다. 사용자 간 결제 채널 네트워크를 생성함으로써, 라이트닝 네트워크는 모든 트랜잭션을 블록체인에 브로드캐스트하지 않고도 트랜잭션을 가능하게 합니다. 이는 비트코인 블록체인의 혼잡을 줄이고 트랜잭션의 확장성을 향상시킵니다.

그러나 라이트닝 네트워크가 아직 개발 중이며 특정 보안 위험과 중앙화 위험에 직면해 있다는 점을 주목해야 합니다. 올해 10월, "대체 주기 공격"이라고 불리는 취약점이 라이트닝 네트워크에서 새롭게 발견되었는데, 이는 트랜잭션 대체 메커니즘과 관련이 있으며 라이트닝 네트워크의 채널 자금 손실로 이어질 수 있습니다. 이 공격 방법의 등장은 라이트닝 네트워크의 보안에 대한 우려를 불러일으켰고, 프로토콜과 구현의 추가 연구 및 개선을 촉진했습니다.

라이트닝 네트워크 메커니즘

비트코인 라이트닝 네트워크는 멀티시그 메커니즘을 활용하여 결제 채널의 보안을 보장합니다. 참가자들은 자금을 잠그고 결제 채널을 설정해야 합니다. 참가자들은 채널 내에서 빠르고 저렴한 결제를 할 수 있으며, 매번 트랜잭션을 비트코인 블록체인에 제출할 필요가 없습니다. 결제 채널은 단지 비트코인 블록체인 외부의 참가자들 간의 관계일 뿐이며, 이는 채널 내에서 일련의 트랜잭션에 서명함으로써 달성되며, 이 트랜잭션들은 전체 비트코인 네트워크의 합의를 포함하지 않고 채널의 양 끝 사이에서만 전파됩니다.

구체적인 과정에서, 결제 채널을 열 때 참가자들은 채널의 각 당사자가 자신의 공개 키를 제공해야 하는 다중 서명 스크립트를 생성해야 하며, 필요한 서명 수를 지정해야 합니다. 예를 들어, 여러 공개 키와 서명 확인 로직을 포함하는 스크립트를 정의합니다. 다중 서명 주소를 생성할 때, 이 스크립트는 비트코인 주소로 변환되어 결제 채널의 인프라를 형성합니다.

예를 들어, 그림 1에서 볼 수 있듯이 Bob과 Alice는 먼저 온체인에서 2-of-2 다중 서명 비트코인 주소를 공동 자금으로 생성합니다. 채널 내에서 그들은 현재 자금 할당 상태를 기록하기 위해 무제한의 오프체인 커밋먼트 트랜잭션을 수행할 수 있습니다. 두 당사자는 이러한 업데이트를 전체 비트코인 네트워크에 브로드캐스트하지 않고도 새로운 커밋먼트 트랜잭션을 협상하고 서명하여 채널의 상태를 업데이트할 수 있습니다. 채널을 닫기로 결정하면, 최종 온체인 정산 트랜잭션이 마지막으로 협상된 할당에 따라 자금을 분배할 것입니다. 이 정산 트랜잭션은 Bob과 Alice 모두의 공동 서명을 필요로 하여, 자금이 최종적으로 합의된 방식으로 할당되도록 보장합니다. 이러한 방식으로 라이트닝 네트워크는 비트코인 트랜잭션의 효율성을 개선하고 비용을 절감하면서도 분산화된 특성을 유지합니다.

그림 1: 상태 채널 다이어그램

상태 채널 다이어그램

출처: https://cypherpunks-core.github.io/bitcoinbook/images/mbc2_1204.png

HTLC 메커니즘

비트코인 라이트닝 네트워크는 또한 해시 타임락 계약(HTLCs)을 기반으로 한 지불 채널을 채택하여 라우팅 가능한 다중 홉 지불 채널 시스템을 구현합니다. 구현에서 HTLC는 해시 조건과 시간 잠금 조건을 충족시키기 위해 스크립팅 언어로 정의된 복잡한 트랜잭션 스크립트를 요구합니다. 이 스크립트는 지불 채널을 열 때 초기화에 사용되며 지불 중에 트리거됩니다. 이러한 방식으로 비트코인 라이트닝 네트워크는 크로스체인 지불에 대한 효율성과 보안을 달성합니다.

HTLC (Hashed Timelock Contract)은 해시 타임락 계약으로, 블록체인에서 크로스체인 트랜잭션을 구현하기 위한 중요한 구성 요소 중 하나입니다. HTLC는 크로스체인 원자 스왑과 라이트닝 네트워크의 지불 채널이라는 두 가지 일반적인 응용 분야가 있습니다. HTLC는 전송을 잠그고 특정 시간 내에 특정 정보를 제공하는 등의 잠금 해제 조건을 설정할 수 있습니다. 이를 통해 조건이 충족될 때만 수신자가 자금을 인출할 수 있도록 보장합니다.

기술적으로, HTLC는 고유한 출력 스크립트를 가진 Commitment 트랜잭션의 추가 출력입니다. 이는 OP_HASH160, OP_EQUALVERIFY 등의 연산을 포함하는 Script 스크립트로, 자금을 잠그고 사전 이미지 값 R을 제공해야만 잠금을 해제할 수 있도록 합니다. 이 스크립트에는 두 가지 가능한 경로가 있습니다. 첫 번째 경로(OP IF에 정의됨)는 Bob이 R을 제공할 수 있는 경우 자금을 Bob에게 보냅니다. 두 번째 경로는 지급 트랜잭션에서 nLockTime을 사용하여 타임락을 적용하여 잠금이 만료된 후 Alice에게 환불할 수 있도록 합니다.

OP_IF

OP_HASH160 <Hash160 (R)> OP_EQUALVERIFY

2 <Alice2> <Bob2> OP_CHECKMULTISIG

OP_ELSE

2 <Alice1> <Bob1> OP_CHECKMULTISIG

OP_ENDIF

라우팅 예시

라이트닝 네트워크에서 Alice는 Eric에게 1 비트코인을 지불하고 싶지만, Alice와 Eric 사이에 직접적인 지급 채널이 없습니다. 따라서 Alice는 지급 채널 네트워크의 중간 노드(Bob, Carol, Diana)를 통해 지급을 라우팅하여 안전한 지급 경로를 구성하고, 간접적으로 Eric에게 1 비트코인을 지불할 수 있게 합니다. 지급 라우팅은 HTLC를 사용하며, 특정 시간 내에 올바른 "비밀"을 제공해야만 자금이 잠금 해제될 수 있어 지급 보안을 보장합니다.

이 예시에서 1단계에서 Eric은 Secret R(해답)을 생성하고 해시 값 H(퍼즐)를 계산한 다음, 해시 값 H를 Alice에게 제공합니다.

2-5단계: 앨리스, 밥, 캐롤, 다이애나, 에릭은 각각 쌍으로 HTLC를 구성하여 일정 기간 내에 R(해결책)을 제공해야 상위 당사자로부터 잠긴 자금을 회수할 수 있도록 합니다.

6-9단계: 에릭은 다이애나에게 R(해결책)을 제공하여 1 BTC를 회수합니다. 그런 다음 다이애나는 R을 사용하여 캐롤로부터 BTC를 회수하고, R은 이런 식으로 역순으로 전달되어 결국 앨리스의 1.003 BTC(이 중 0.003 BTC는 중개 노드의 서비스 수수료)가 회수됩니다.

이 예시에서 6단계에서 에릭이 정해진 시간 내에 R(해결책)을 제공하지 않으면, 시간 만료 후 2-5단계에서 잠긴 자금은 자동으로 잠금이 해제되어 반환됩니다.

그림 2: 라우팅 예시

Routing Example

출처: https://cypherpunks-core.github.io/bitcoinbook/images/mbc2_1210.png

대체 순환 공격

비트코인의 트랜잭션 대체 메커니즘은 트랜잭션이 대체 가능한 것으로 표시된 경우, 블록에 확인되기 전에 더 높은 수수료로 네트워크에서 다른 트랜잭션으로 대체될 수 있음을 의미합니다. 더 높은 절대 수수료와 더 높은 수수료율로 트랜잭션을 지불하면, 직접적으로 충돌하는 보류 중인 미확인 트랜잭션을 대체할 수 있습니다. 대체 트랜잭션을 받은 후, 노드는 mempool에서 더 낮은 수수료율의 원래 트랜잭션을 제거하고 대체 트랜잭션만 유지합니다. 트랜잭션 대체 메커니즘을 통해 트랜잭션이 확인되기 전에 수수료나 다른 매개변수를 조정할 수 있습니다. 그러나 이 메커니즘은 트랜잭션 서비스 거부 공격을 구현하는 데 사용될 수 있습니다. 예를 들어, 중요한 트랜잭션을 반복적으로 대체하여 확인에 실패하게 만들 수 있습니다. 따라서 트랜잭션 대체 메커니즘은 트랜잭션 조정에 편의성을 제공하지만, 동시에 남용의 위험도 도입합니다.

Bitcoin Core 개발자 Antoine Riard의 이메일에 따르면, 대체 주기 공격은 주로 Bitcoin Lightning Network의 결제 채널과 관련이 있습니다. 공격자는 정직한 노드의 HTLC-timeout 트랜잭션을 대체하기 위해 더 높은 절대 수수료와 수수료율로 HTLC-preimage 트랜잭션을 브로드캐스트합니다. 대체 과정에서 공격자는 추가 입력 또는 출력을 추가하여 대체 트랜잭션이 네트워크에 성공적으로 수락되도록 할 수 있습니다. 이 공격 방법은 결제 채널에서 자금의 이중 지출을 초래할 수 있습니다. 즉, 정직한 노드가 HTLC-timeout 트랜잭션을 브로드캐스트한 후 공격자가 대체를 통해 자금을 성공적으로 회수할 수 있습니다. 이를 간단한 예시로 설명할 수 있습니다. 이전 예시와 유사하게 경로가 Alice, Bob, Eric으로만 단순화되었다고 가정하고, Alice와 Eric이 공모하여 Bob의 BTC를 훔치려고 합니다.

1단계: Alice는 Bob을 통해 Eric에게 1 BTC를 지불하려고 합니다. Alice\Bob과 Bob\Eric은 각각 HTLC를 구축합니다. Eric은 1020 블록 전에 Bob에게 R(해결책)을 제공해야 합니다(현재 높이가 1000이라고 가정). 그렇지 않으면 Bob은 잠긴 1 BTC를 회수할 수 있습니다. 마찬가지로 Bob은 1080 블록 전에 Alice에게 응답해야 합니다. 그렇지 않으면 Alice는 자신의 1 BTC를 회수할 수 있습니다.

2단계: Eric은 1020 블록 전에 Bob에게 R(해결책)을 제공하지 않았습니다. Bob은 HTLC-timeout이 포함된 트랜잭션을 브로드캐스트할 것입니다. 이 트랜잭션의 자금은 Bob에게 환불됩니다.

3단계: Eric은 Bob의 HTLC-timeout 트랜잭션을 모니터링하고 더 높은 수수료율로 HTLC-preimage 트랜잭션으로 대체합니다. 그런 다음 Eric은 이전 HTLC-preimage를 mempool에서 퇴출하기 위한 또 다른 트랜잭션을 시작합니다.

4단계: Bob의 노드는 1080 블록까지 HTLC-timeout 트랜잭션을 재브로드캐스트할 것입니다. Eric은 매번 대체를 시작할 수 있습니다. 1080 블록까지, 다른 채널 당사자인 Alice의 트랜잭션이 확인되고 Alice는 잠긴 BTC를 회수합니다.

5단계: Eric은 자신의 HTLC-preimage가 확인되어 Bob이 잠근 1 BTC가 Eric에게 전송됩니다.

따라서 Bob의 1 BTC는 Eric에게 전송되었지만, 그는 Alice로부터 받아야 할 BTC도 받지 못했습니다.

요약

2023년 11월 현재, 라이트닝 네트워크에는 16,000개 이상의 라이트닝 노드와 5,000 BTC가 있습니다. 실제 대체 사이클 공격 사례가 확인되지는 않았지만, 이는 라이트닝 네트워크에 대한 지속적인 보안 연구와 개선의 필요성을 강조합니다. Antoine Riard는 또한 로컬 멤풀과 릴레이된 트랜잭션을 모니터링하고, 채굴자와 라이트닝 노드 간의 오버레이 네트워크를 구축하며, HTLC 타임아웃 트랜잭션을 적극적으로 재생하여 공격자 비용을 증가시키는 등 대체 사이클 공격을 피하거나 완화하기 위한 여러 조치를 제안했습니다. 하지만 동시에 그는 프로토콜 수준의 보안 취약점에 대한 해결책 조정을 포함하여 라이트닝 네트워크 및 그 구현 작업에 대한 참여를 중단한다고 발표했습니다.

라이트닝 네트워크가 확장됨에 따라 대체 사이클 공격의 잠재적 위협이 그 발전 경로에 장애물이 될 수 있어, 커뮤니티가 보안 연구와 개선에 더 많은 관심을 기울이도록 강요할 수 있습니다. 그러나 보안 문제를 진지하게 다루고 개선함으로써 우리는 미래에 라이트닝 네트워크가 잠재적 위험을 점진적으로 해결하고 더 건강하고 신뢰할 수 있는 생태계를 달성하는 것을 목격할 수 있을 것입니다.

CoinEx 정보

2017년에 설립된 CoinEx는 거래를 더 쉽게 만드는 데 전념하는 글로벌 암호화폐 거래소입니다. 이 플랫폼은 200개 이상의 국가 및 지역에 걸쳐 500만 명 이상의 사용자에게 현물 및 마진 거래, 선물, 스왑, 자동화된 마켓 메이킹(AMM 계정), 금융 관리 서비스 등 다양한 서비스를 제공합니다. 설립 이후 CoinEx는 "사용자 우선" 서비스 원칙을 꾸준히 고수해 왔습니다. 공정하고 존중받으며 안전한 암호화폐 거래 환경을 조성하려는 진정한 의도로, CoinEx는 사용하기 쉬운 제품과 서비스를 제공하여 사용자가 암호화폐의 세계에 쉽게 접근할 수 있도록 합니다.

참고 문헌

https://cypherpunks-core.github.io/bitcoinbook/

https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-October/022032.html

https://lightning.network/lightning-network-paper.pdf

https://github.com/ariard/mempool-research/blob/2023-10-replacement-paper/replacement-cycling.pdf

암호화폐 관련 부서의 규제 요구 사항에 따라 귀하의 IP 주소 지역의 사용자는 당사의 서비스를 더 이상 사용할 수 없습니다.