Home / Knowledge / BIP 324: 비트코인 피어를 보호할 수 있는 메시지 전송 프로토콜

BIP 324: 비트코인 피어를 보호할 수 있는 메시지 전송 프로토콜

BIP 324: 비트코인 피어를 보호할 수 있는 메시지 전송 프로토콜 1

BIP 324: 비트코인 피어를 보호할 수 있는 메시지 전송 프로토콜 2

10년 이상 비트코인 세계에서 살아온 경험은 비트코인 개발자들에게 앞으로 갈 길이 멀다는 것을 보여주었고, 2019년 3월에 만들어진 BIP 324는 그 길에서 다음 중요한 단계가 될 수 있습니다.

이 BIP는 스위스에 기반을 둔 비트코인 개발자이자 Shift Cryptosecurity의 공동 창립자인 요나스 슈넬리가 비트코인 피어 간에 교환되는 메시지에 대한 우려를 해결하기 위해 작성했습니다.

“비트코인: P2P 전자 현금 시스템”은 비트코인 백서의 제목이며, 이 제목이 암시하듯이 P2P 계층은 비트코인 네트워크의 주요 구성 요소이지만, 동시에 상당한 비효율성과 기존의 이론적 공격 벡터를 가지고 있습니다. 비트코인에 대한 잠재적 연구 및 업그레이드의 주요 분야 중 하나는 이 P2P 네트워크에 있으며, 이 분야에서 최근의 주요 개발은 Dandelion(BIP 156) 및 Erlay와 같은 제안들을 포함하여 많은 관심을 불러일으켰습니다.

P2P 네트워크 아키텍처란 무엇일까요? 비트코인 이전에 가장 성공적인 P2P 네트워크 구현은 파일 공유 서비스 애플리케이션에서 볼 수 있었습니다: 원래는 나프스터(중앙 서버 카탈로그에 의한 부분적 중앙화)였고, 이후 비트토렌트가 등장했습니다.

이상적인 구성에서 P2P 네트워크는 어떤 계층 구조도 없어야 하며(모든 노드는 평등), 노드는 네트워크 부하를 고르게 분담해야 합니다. 서로 연결된 노드의 기본 레이어는 비트코인이 검열 저항성을 가지도록 돕습니다. 토렌트 네트워크와 마찬가지로 정부는 검색 엔진 수준에서 이를 차단하기 위한 조치를 취했습니다. 사용자는 토렌트 검색 엔진만 차단할 수 있지만, P2P 토렌트 네트워크를 죽이는 것은 훨씬 더 어렵고 거의 불가능합니다. 이러한 네트워크에 대한 주요 질문은: 사용하기에 얼마나 개인적인가입니다?

비트코인의 P2P 계층 문제

비트코인의 현재 P2P 구현의 문제 중 하나는 메시지 전송 계층에 대한 강제 암호화의 부족입니다. 이는 비트코인을 중간자 공격(MITM)에 취약하게 만듭니다. MITM 공격은 두 피어에 비밀리에 연결하고 그들 간의 통신을 중계하여 수행되므로, 양측 모두 서로 직접 대화하고 있다고 생각하지만 실제로는 공격자가 통신을 제어하고 있습니다. MITM 공격에는 수동 및 능동 공격이 있으며, 수동 MITM 공격자는 네트워크 상태를 관찰하고 능동 공격자는 트래픽을 조작합니다.

비트코인 프로토콜에서 노드 간에 전송되는 메시지는 암호화되지 않고 일반 텍스트로 전송되므로 전체 프로토콜이 공격 벡터에 노출됩니다. 인터넷 서비스 제공업체(ISP), WiFi 제공업체 또는 기타 적대자는 MITM 공격을 수행하여 모든 수신 및 발신 연결을 읽을 수 있으며, 피어로 연결할 필요가 없습니다. 이론적으로 이는 특정 데이터, 예를 들어 제재된 엔티티와의 거래를 가로채거나 차단하는 데 활용될 수 있습니다.

비트코인에서 메시지 암호화가 부족하기 때문에 한 국가의 ISP는 비트코인 거래 패킷을 MITM으로 감지하고, 그들이 포함하고 있는 일반 데이터를 보고 이를 차단할 수 있습니다. 그들은 채굴자를 공격하고 블록 검증을 지연시킬 수 있습니다. 또는 PRISM과 같은 감시 프로그램은 MITM 공격을 통해 모든 비트코인 트래픽을 수동적으로 관찰하고, 승인하지 않는 거래를 발견하면 이를 가로채거나 차단하기 위해 작업할 수 있습니다. P2P 네트워크에서의 협조된 공격은 비트코인 네트워크를 대륙 또는 국가 수준에서 분할하는 “분할 공격”을 초래할 수 있습니다.

현재 비트코인의 프라이버시와 관련하여 가장 중요한 점은: MITM 공격이 발생하더라도 영향을 받은 피어가 이를 확인할 방법이 없다는 것입니다.

그렇다면 비트코인 커뮤니티로서 VPN이나 Tor와 같은 도구를 사용하여 트래픽을 혼란스럽게 하거나 암호화하는 것에 만족할 수 없는 이유는 무엇일까요? Tor는 암호화된 양파 라우팅 네트워크로, 거래의 끝점을 숨기기 때문에 이론적으로 ISP가 이 방식으로 활동을 추적하는 것은 불가능합니다. 그러나 Tor 암호화 P2P 서비스를 사용하는 데는 단점이 있으며, 주로 HTTP(S) 이외의 레이어에서 Tor 통합에 대한 충분한 연구 부족, 이론적 공격 가능성 및 비트코인 코어 소프트웨어와의 의존성 문제와 관련이 있습니다.

비트코인의 P2P 계층을 위한 잠재적 해결책

이러한 이유로 슈넬리는 문제를 해결하기 위해 비트코인 개선 제안(BIP) 세트를 만들었습니다. BIP 151은 노드 간의 트래픽 암호화를 다루고, BIP 150은 노드에 대한 선택적 인증을 설명하며, 이는 타원 곡선 디지털 서명 알고리즘(ECDSA) 개인/공개 키 암호화에 기반합니다.
열렬한 독자에게는 이 BIP 151 기사를 시작으로 읽기를 추천하며, 이 BIP는 P2P 계층의 프라이버시 부족에 대한 해결책을 처음으로 제안했습니다. 이 제안이 발표된 이후 일부 당사자는 다양한 비트코인 클라이언트 구현에 이 솔루션을 구현하기 시작했으며, 슈넬리는 새로운 업그레이드된 BIP 324를 선택했습니다.

BIP 324는 비트코인 피어가 MITM 공격의 피해자인지 알 수 있도록 설계되었습니다. 나쁜 행위자는 여전히 피어 A에 연결하여 피어 B인 척하고, 피어 B에 연결하여 피어 A인 척할 수 있지만, 실제 피어 A와 B는 동일한 세션 ID가 없음을 확인하고 MITM 공격자가 그들의 통신을 가로채고 있음을 알 수 있습니다. 이러한 피어는 추가 인증 메커니즘을 활용하고 싶어할 가능성이 높지만, 이는 BIP 324의 범위를 벗어납니다.

“현재 암호화되지 않은 메시지 전송으로 인해 BGP 하이재킹, 블록 지연 공격 및 메시지 변조는 저렴하게 수행될 수 있으며, 은밀하게 실행될 수 있습니다(탐지 불가능한 MITM),”라고 BIP 초록에 명시되어 있습니다. “기회적 암호화를 추가하면 공격자가 탐지될 위험이 높아집니다. 피어 운영자는 암호화 세션 ID를 비교하거나 공격을 식별하기 위해 다른 형태의 인증 체계를 사용할 수 있습니다.”

궁극적으로, 잠재적인 MITM 공격자는 비트코인 블록체인에 있는 암호화되지 않은 데이터를 여전히 읽을 수 있습니다. 이는 공개적이고 분산되어 있기 때문입니다. 따라서 실제로 이 솔루션은 특정 피어가 아닌 엔티티, 예를 들어 ISP 및 공개 WiFi 제공업체로부터 특정 거래를 필터링하고 가로채거나 차단하는 데 가장 유용할 것입니다. 물론 PRISM은 네트워크의 피어가 되어 비트코인 트래픽을 관찰할 수 있습니다. 잠재적인 공격자가 암호화되지 않은 트래픽을 듣는 것은 더 사소한 일이지만, MITM 공격을 모니터링할 수 있다면 이러한 수동 블록체인 관찰자는 P2P 메시지를 모니터링하는 것의 이점과 잡히는 것의 단점을 비교해야 할 것입니다.

그럼에도 불구하고 BIP 324는 악의적인 MITM 공격에 대한 비트코인의 P2P 계층을 강화하는 데 있어 단지 하나의 빌딩 블록일 뿐입니다. 이는 MITM 공격이 비트코인에 실제 위협이 되는지 여부를 결정하는 개발 작업에서 중요한 단계가 될 수 있으며, 그렇지 않을 수도 있습니다. 그러나 BIP 324와 같은 도구 없이는 그 데이터를 수집하기 어렵습니다.

BIP 324는 수동 MITM 공격을 완화하기 위한 도구를 제공하는 데 중점을 두고 있으며, BIP 150과의 공동 구현은 능동 MITM 공격에 대한 잠재적 도구를 제공합니다.

핸드셰이크

BIP 324에서 설명된 첫 번째 행동은 “핸드셰이크”입니다. 이는 P2P 계층에서 피어 간의 추가 통신을 위한 프로토콜을 설정하는 행위입니다.

이 핸드셰이크는 두 당사자 간에 다른 메시지가 전송되지 않은 경우 시작되어야 하며, 상대방에게 공개 키(일회성 타원 곡선 secp256k1 암호화 기능에서 파생됨)를 보내어 연락을 시작하는 방법입니다. 이러한 유형의 키 스키마의 이름(일회성)이 암시하듯이, 키는 성공적인 핸드셰이크가 수행된 후 메모리(RAM)에서 지워져야 합니다. 따라서 공격자는 이러한 키를 가로채거나 특정 연결에 대한 역사적 메시지 전송을 해독할 수 없습니다.
이 공격 벡터는 피해자의 메모리에 접근해야 하므로, 이 문제는 P2P 암호화 및 인증의 범위에서 무시할 수 있을 것입니다.

공유 비밀은 종단 간 암호화된 통신을 설정하는 데 중요하며, 공격자가 개인 키와 상대방의 공개 키를 확보해야만 계산할 수 있습니다. 후자는 공격자에게는 다소 사소하지만, 설계상 개인 키는 전송되지 않아야 하므로 이 방정식의 이 구성 요소는 공격자에게 제공되지 않습니다.

핸드셰이크의 마지막 단계는 대칭 암호화 키를 도출하는 것입니다 — 메시지를 암호화하는 데 사용되는 실제 비밀과 세션 ID를 계산하는 것입니다.

암호화

이제 당사자 간에 메시지를 주고받을 수 있으며, 그 내용이 제3자에 의해 감시될 것에 대한 두려움이 없습니다.

그렇다면 메시지가 암호화되면 실제로 어떤 일이 발생할까요? BIP 151과 유사하게, 이 제안은 ChaCha20 및 Poly1305의 암호화 원리를 최적화합니다. 암호화는 긍정적인 결과만 있는 것은 아닙니다. 일반적으로 메시지를 더 크고 계산하기 무겁게 만들어 통신 속도를 느리게 합니다. 너무 많은 세부 사항에 들어가지 않고, 새로운 제안된 메시지 구조는 암호화된 메시지를 더 작고 계산하기 빠르게 만들 수 있습니다. 이는 위에서 언급한 올바른 암호화 원리를 선택했기 때문입니다. 비교하자면, 암호화되지 않은 비트코인 코어 클라이언트는 현재 전송된 메시지의 이중 SHA-256 해시(암호화 표준) 체크섬을 사용하고 있으며(4바이트로 잘림), 이는 여전히 사토시의 원래 구현의 유물입니다.

이 제안은 비트코인을 더 개인적이고 대체 가능하게 만들기 위한 노력의 하나의 빌딩 블록일 뿐입니다. 이는 비트코인 합의 규칙에 영향을 미치지 않으며, 선택적 행동을 가정합니다. 비트코인 코어 업데이트와 마찬가지로 일부 노드는 핸드셰이크를 반환할 수 없을 수 있습니다. 요약하자면, BIP 324는 이전 버전과 호환되며, 이는 MITM 공격을 완화하는 실제 능력에서 부정적인 요소로 작용할 수 있습니다.

이 제안(BIP 150과 함께)을 비트코인 코어에 구현한 후, 우리는 MITM 공격이 줄어들거나 적어도 세션 ID를 비교하고 공격을 식별할 수 있는 도구가 마련될 것으로 기대할 수 있습니다. 또한 이 제안이 암호화 초기화 중 MITM 공격을 피하기 위한 스킴을 다루고 있지 않지만(BIP 150은 이를 포함하고 있음) 언급할 가치가 있습니다.

저자는 이 기사에 대한 슈넬리의 유용한 의견에 감사하며, 다음 출처를 인정하고 싶습니다:

  1. https://youtu.be/DKOG0BQMmmg?t=3h5m3s
  2. https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-March/016806.html
  3. https://gist.github.com/jonasschnelli/c530ea8421b8d0e80c51486325587c52
  4. https://github.com/bitcoin/bips/blob/master/bip-0151.mediawiki
  5. https://bitcoinmagazine.com/articles/bip-the-end-to-end-encryption-bitcoin-never-had-but-soon-will-1465401187
  6. https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch08.asciidoc
  7. https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-September/016355.html
  8. https://diyhpl.us/wiki/transcripts/sf-bitcoin-meetup/2017-09-04-jonas-schenlli-bip150-bip151/
  9. https://bitcoinops.org/en/newsletters/2018/08/28/
  10. https://github.com/bitcoin/bitcoin/pull/14032
  11. https://gist.github.com/jonasschnelli/c530ea8421b8d0e80c51486325587c52

관련 기사

카사, 비트코인 보유자를 겨냥한 증가하는 사회 공학 공격에 대응하기 위해 네 가지 보안 기능 출시 1

사회 공학 공격에 대응하는 카사 기능

비트코인 보안 회사 카사는 2025년 암호화폐 도난의 대부분을 차지하는 공격 벡터인 사회 공학을 겨냥한 네 가지 기능을 출시했습니다. 이 기능은

마스터카드, 디지털 자산 전략을 강화하기 위해 뉴욕 비트라이센스 확보 1

마스터카드, 비트라이센스 획득

마스터카드는 뉴욕주 금융 서비스국(NYDFS)으로부터 비트라이센스를 받았으며, 이는 이 결제 거대 기업이 미국에서 가장 엄격한 암호화 규제 프레임워크 중 하나 아래에서

크라켄, 비트코인 보관소 출시 - BTC 보유에 대한 수익 제공 1

비트코인 보관소 | 크라켄의 새로운 금융 솔루션

크라켄은 고객이 자산을 판매하지 않고도 비트코인 보유량에 대해 BTC 기준 보상을 받을 수 있는 새로운 제품인 비트코인 볼트를 크라켄 어

폴드, 비트코인 신용 카드 성장을 위한 1억 5천만 달러 유치 1

비트코인 신용 카드, Fold의 성장 동력

Fold Holdings, Inc., 최초의 상장된 비트코인 금융 서비스 회사가 Encina Lender Finance, LLC와 4년간의 고정 담보 회전 신용 시설에 진입했습니다.

DDC, 한 주에 비트코인을 두 번 구매하며 자산을 14% 증가시켜 희석 없이 재무를 성장시킵니다. 1

비트코인으로 DDC 자산 14% 증가

DDC Enterprise Limited (NYSE American: DDC)는 수요일에 131 비트코인을 구매하여 기업 비트코인 금고를 2,714 BTC로 확장했다고 발표했습니다. 뉴욕에 본사를 둔

반카 셀라, MiCA에 따라 비트코인 및 암호화 서비스에 대한 라이센스를 받은 첫 번째 이탈리아 은행이 되다. 1

Banca Sella, 첫 이탈리아 비트코인 은행 승인

Banca Sella는 유럽 연합의 암호 자산 규제(MiCA) 하에서 암호화폐 서비스를 제공할 수 있는 최초의 이탈리아 은행으로 승인받았으며, 2026년 5월 27일