비트코인 라이트닝 네트워크 개발사 ACINQ가 10월 27일 Eclair 0.14.6을 공개했다. 악의적인 노드가 확인되지 않은 채널 자금 거래를 악용할 가능성에 대응한 보안 업데이트다. 새 버전은 채널 스플라이싱에 상대방의 확인된 자금 입력을 기본적으로 요구하고, 채널 종료 과정의 정산과 자금 회수 방식도 손봤다. ACINQ는 노드 운영자들에게 가능한 한 빨리 업그레이드할 것을 권고했다. 다만 해당 취약점이 실제 환경에서 악용됐는지는 확인되지 않았다.
미확인 자금 거래, 대기 중 결제에 위험 초래할 수 있어
라이트닝 네트워크는 비트코인 결제 채널을 통해 거래를 처리해 모든 결제를 비트코인 블록체인에 기록하지 않아도 되도록 한다. 운영자는 ‘스플라이싱(splice)’을 통해 기존 채널에 유동성을 추가하거나 일부를 회수할 수 있으며, 이 과정에는 온체인 거래가 필요하다.
문제는 스플라이싱에 상대방이 제공한 미확인 자금 입력을 허용할 때 발생할 수 있다. 악의적인 노드가 스플라이싱 거래에 서명한 뒤 관련 거래를 이중 지불하면 기존 자금 배정이 무효화될 수 있고, 이에 의존하는 채널 정산에도 영향을 줄 수 있다.
이후 채널이 비트코인 블록체인에서 종료되면, 해시 시간 잠금 계약(HTLC)으로 담보된 대기 중 결제가 위험에 놓일 수 있다. 결제 정산이 무효화된 자금 거래에 의존하기 때문이다. ACINQ는 이를 잠재적인 보안 문제로 설명했으며, 실제 자금 탈취가 발생했다고 밝히지는 않았다.
스플라이싱 자금 입력에 확인 절차 기본 적용
Eclair 0.14.6은 스플라이싱에 사용되는 상대방의 자금 입력이 먼저 확인되도록 하는 보안 설정을 기본값으로 적용했다. 확인되지 않은 자금 변경을 바탕으로 추가 스플라이싱 거래를 이어서 만드는 것도 막는다. 신뢰하기 어려운 자금 상태가 누적돼 정산에 영향을 줄 위험을 줄이기 위한 조치다.
ACINQ는 이 요구사항이 기존의 이중 자금 보호 기능과는 별개라고 설명했다. 기존 보호 기능은 이제 채널 생성에만 적용되고, 스플라이싱에는 새 확인 요건이 적용된다. 신뢰할 수 없는 상대방과 스플라이싱을 진행할 때는 선택 기능인 ‘제로 피 커밋(zero-fee commitment)’을 사용하지 말라고도 운영자들에게 안내했다. 이 기능은 이전부터 기본적으로 꺼져 있었다.
강제 종료 시 확인된 자금 상태 기준으로 정산
이번 업데이트는 채널 자금 거래가 아직 확인되지 않은 상태에서 채널을 닫아야 할 때의 처리 방식도 개선했다. 새 정산 로직은 Bitcoin Core 백엔드가 자금 지원을 확인할 수 있는 커밋먼트 거래를 선택한다. 필요한 경우 최신의 확인된 자금 상태로 돌아가, 로컬 미확인 거래 풀에서 사라진 자금 거래를 기준으로 정산하는 일을 피한다.
자금 회수에 실패할 수 있는 상황도 수정했다. 과거에는 Eclair가 더 이상 우선 정산 경로로 취급하지 않는 거래라도 채굴자가 확인하는 경우가 있었다. 기존 로직은 이런 거래를 상대방 거래로 잘못 판단해 회수 가능한 자금과 대기 중 결제 출력물을 찾아오지 못할 수 있었다. 새 버전은 해당 거래를 식별하고 관련 출력물의 회수를 시도한다.
기존 채널을 닫지 않고 업그레이드 가능
ACINQ는 구버전 Eclair를 실행 중인 노드에 패치를 적용하고, 확인된 입력을 요구하는 보호 설정을 기본값으로 유지하라고 권고했다. 업그레이드하려면 소프트웨어를 중지하고 새 버전을 설치한 뒤 노드를 다시 시작해야 한다. 이 과정에서 기존 결제 채널을 닫을 필요는 없다.
이번 수정 사항은 보안 연구원 Erick Cestari가 책임 있는 방식으로 공개했다. ACINQ는 악의적인 노드가 일부 문제를 악용할 수 있다고 경고했지만, 공개된 정보에는 실제 영향받은 노드 수나 공격 발생 여부가 포함되지 않았다.