V2 전송 프로토콜: 비트코인 P2P 트래픽 스텔스

이 기사는 기계로 번역되었습니다
원문 표시

저자: 피터 윌레

출처: https://bitcoinmagazine.com/print/the-v2-transport-bitcoin-p2p-traffic-goes-dark

거의 15년 동안 비트코인 ​​네트워크의 노드 간 모든 통신은 암호화 없이 완전히 투명하게 전송되었습니다. 하지만 2024년 BIP 324가 채택되면서 상황이 바뀌었습니다. BIP 324는 노드 간 통신을 위한 "V2" 전송 프로토콜을 도입했습니다. 이 새로운 프로토콜은 기회주의적 암호화를 구현하여 노드 간 메시지를 감시할 수 없는 공격자가 트래픽을 읽는 것을 불가능하게 만듭니다. 비트코인 ​​코어 26.0에서 이 프로토콜에 대한 지원이 추가되었고, 27.0 버전에서는 기본적으로 활성화되어 비트코인 ​​네트워크의 대부분의 P2P 트래픽에 사용되고 있습니다.

하지만 비트코인 ​​노드의 주요 기능이 본질적으로 공개 정보, 즉 블록체인 온체인 블록, 거래 풀의 거래, 그리고 다른 비트코인 ​​노드의 IP 주소를 교환하는 것이라고 가정하더라도, 이러한 정보는 비밀 정보가 아니므로 트래픽 암호화의 이점이 명확하지 않아 보일 수 있습니다. 그러나 자세히 살펴보면 비트코인 ​​트래픽과 관련된 대량의 메타데이터를 보호할 가치가 있음을 알 수 있습니다. 만약 공격자가 거래가 언제 어떤 IP 주소를 통해 전달되었는지 알 수 있다면, 어떤 노드가 전파의 근원지, 즉 거래를 시작한 주체인지 추론할 수 있습니다. 더 나아가 노드 간의 연결 관계를 파악하면 어떤 노드가 어떤 개인에게 속하는지 알 수 있어 공격자가 특정 회사나 채굴자의 노드를 표적으로 삼을 수 있습니다. 권위주의 체제하에 거주하는 사용자에게는 비트코인 ​​노드를 운영하고 있다는 사실이 드러나는 것 자체가 매우 불리할 수 있습니다.

사토시 나카모토 나카모토의 P2P 프로토콜에서 노드들은 서로 연결되어 " inv "("새로운 블록/트랜잭션이 있는데 당신이 알지 못합니다"), " addr "("다른 노드의 IP 주소") 등의 메시지를 주고받습니다. 이러한 메시지와 각 노드가 지원하는 기능들은 SPV 클라이언트 초기 지원(BIP 37), 밀집 블록 포워딩(BIP 152), Tor v3 주소 지원(BIP 155) 등 여러 면에서 크게 변화해 왔습니다. 하지만 이러한 메시지를 바이트로 인코딩하여 연결을 통해 전송하는 방식, 즉 "전송 프로토콜"은 2009년 이후로 본질적으로 변하지 않았습니다. 유일한 예외는 2010년 5월에 프로토콜에 체크섬이 도입된 것입니다. BIP 324는 그 이후 처음으로 체크섬이 도입된 버전입니다.

이것이 "비트코인 프로토콜"의 근본적인 변화로 여겨질 수 있지만, 완전히 선택 사항이라는 점에 유의하십시오. 이는 합의 메커니즘의 변경이 아니며, 어떠한 조정이나 활성화 메커니즘도 필요하지 않습니다. 이 기능은 두 노드 모두 이 기능을 지원하는 경우에만 사용되며, BIP 324를 지원하는 노드가 지원하지 않는 노드와 통신할 때는 기존 전송 프로토콜(즉, "v1")로 되돌아갑니다. 따라서 이 기능을 지원하고 기본적으로 활성화된 클라이언트가 출시된 후 2년 동안 비트코인 ​​노드 간 트래픽의 대부분은 이 암호화된 v2 전송 프로토콜을 조용히 사용했습니다.

비트코인 노드 트래픽 암호화 아이디어는 새로운 것이 아닙니다. 2016년 비트코인 ​​코어 개발자인 요나스 슈넬리는 업그레이드된 노드 간 연결을 암호화 모드로 전환할 수 있도록 하는 BIP 151을 제안했습니다. 이 제안은 큰 진전을 이루지 못했고, 두 노드 간의 초기 핸드셰이크를 숨길 수 없었기 때문에 2019년에 발표된 BIP 324는 전송 프로토콜을 완전히 개편하는 것을 목표로 했습니다. 이 새로운 접근 방식은 처음부터 암호화된 완전히 새로운 연결 방식을 도입했습니다. 2021년까지 개발이 계속되었고, 드루브 메타가 팀 러핑, 그리고 저와 함께 이 아이디어를 발전시켜 완전한 제안으로 완성했습니다. 여기에는 완전한 의사 난수 바이트 스트림, 트래픽 셰이핑 기능, 그리고 선택적 플러그인과 같은 몇 가지 새로운 기능이 추가되었습니다. 2022년에 bitcoin-dev 메일링 리스트에서 이 기능을 발표했고, 여러 의견을 받은 후 2022년과 2023년 사이에 구현했습니다. 이 기능은 2023년에 비트코인 ​​코어에 완전히 통합되었습니다. 추가 테스트를 거쳐 2024년에는 모든 연결에서 기본적으로 활성화되었습니다(피어 노드가 해당 기능을 지원하는 경우).

새로운 프로토콜이 제공하는 완전한 의사 난수 바이트 스트림 특성 덕분에 이 전송 프로토콜을 통해 전송되는 바이트에는 식별 가능한 패턴이 없습니다. 예를 들어, 보안 웹사이트("https://" 웹 페이지)와의 통신에 사용되는 TLS 프로토콜은 웹사이트 콘텐츠를 암호화하지만 TLS가 사용되고 있다는 사실이나 사이트 호스트 이름 요청은 숨기지 않습니다(적어도 2020년 암호화된 클라이언트 인사말(ECH)이 사용되기 전까지는). BIP 324가 구현되기 전의 v1 전송 프로토콜은 각 연결 시작 부분에 고정된 16바이트를 전송했는데, 이는 식별하기가 매우 쉬웠기 때문에 방화벽은 이 패턴을 사용하여 모든 연결을 쉽게 차단할 수 있었습니다. 반면 v2 전송 프로토콜에는 이러한 패턴이 전혀 없습니다. 제3자의 관점에서 각 바이트는 균일하게 무작위적이므로 완전히 예측 불가능합니다. 트래픽 패턴을 기반으로 비트코인 ​​트래픽을 차단하려는 주체는 겉보기에 무작위적인 모든 트래픽을 가로채야 하는데, 이는 비트코인과 같은 소프트웨어의 트래픽을 차단하는 것보다 정치적으로 더 어려울 수 있습니다. 전체 프로토콜을 의사 난수화하는 데 가장 어려운 부분은 핸드셰이크, 즉 암호화가 설정되기 전에 노드들이 공개 키를 교환해야 하는 과정에서 발생합니다. 이 공개 키는 무작위 바이트가 아닙니다. "Elligator"(2013)라는 새로운 암호화 기술과 그 변형인 "ElligatorSwift"(2022) 덕분에 타원 곡선 공개 키를 겉보기에는 무작위 바이트로 인코딩할 수 있게 되었고, 핸드셰이크 과정에서 식별 가능한 패턴이 나타나는 것이 가능해졌습니다.

비트코인 네트워크의 공개적인 특성으로 인해 노드 간 암호화 전송 계층이 제공하는 개인 정보 보호에는 상당한 한계가 있다는 점에 유의해야 합니다. 비트코인 ​​노드는 동료 노드를 신뢰하지 않으므로 동료 노드가 누구인지에 대해 특별히 신경 쓰지 않습니다. 또한 비트코인 ​​노드는 공개 키를 보유하지 않기 때문에 v2 전송 프로토콜에서 제공하는 암호화는 기회주의적이고 검증되지 않은 방식입니다. 양측은 각 연결마다 새로운 임시 키를 사용합니다. 이는 악의적인 공격자(예: 인터넷 서비스 제공업체)가 "중간자 공격"을 수행할 수 있음을 의미합니다. 즉, v2 전송 프로토콜을 사용하여 양쪽 노드가 연결을 시도하는 동안 한쪽에서 보낸 메시지를 복호화하고 다시 암호화하여 다른 쪽으로 전송하는 방식입니다. 다시 말해, 스파이 행위가 여전히 가능하며 정보를 변조하거나 검열하는 것도 동시에 이루어질 수 있습니다. 하지만 핵심은 이러한 대규모 중간자 공격을 감행하는 데 드는 비용이 암호화되지 않은 단일 메시지를 직접 검사하는 것(v1 전송 프로토콜에서 허용하는 방식)보다 훨씬 더 많이 든다는 점입니다. 그리고 대부분의 비트코인 ​​노드 연결은 임의로 신뢰할 수 없는 노드에 연결되기 때문에, 다른 노드를 대규모로 탐색하려는 공격자는 언제든지 대량 의 노드를 생성하고, 그 노드들에 또 다른 대량 노드를 연결하도록 할 수 있습니다. 중간자 공격과 마찬가지로, 이 방법 역시 v1 패킷을 직접 검사하는 것보다 비용이 훨씬 더 많이 듭니다.

따라서 BIP 324 자체를 개인정보 보호 강화 조치로 보기보다는, 더 큰 목표의 일환으로 보는 것이 적절합니다. 이 목표는 비트코인 ​​네트워크에 대한 대규모 감시 비용을 높이는 동시에, Tor나 I2P와 같은 대안 네트워크에 의존하지 않는 것을 지향합니다. (Tor나 I2P는 지연 시간 증가나 서비스 거부 공격 리스크 등 네트워크 내 모든 노드가 감수할 수 없는 리스크 가지고 있습니다.) BIP 324의 일부 기능, 예를 들어 암호화된 패킷의 크기를 관찰하여 전송된 거래 정보를 다른 노드가 파악하는 것을 방지하는 트래픽 셰이핑 기능은 아직 구현되지 않았습니다. 이러한 기능들이 향후 구현되기를 기대합니다.

(위에)

출처
면책조항: 상기 내용은 작자의 개인적인 의견입니다. 따라서 이는 Followin의 입장과 무관하며 Followin과 관련된 어떠한 투자 제안도 구성하지 않습니다.
라이크
즐겨찾기에 추가
코멘트