지난 번 우리는 데이터를 전송할 때 그 누구도 추적할 수 없게 만들거나 발신자와 수신자에 대해서 알 수 없게 하는 방법과 그 문제점에 대해 간략하게 알아보았습니다. 데이터를 서로 다른 패킷으로 분할해 네트워크를 통해 각자 다른 경로로 전송하는 것은 그 첫 단계로 매우 좋은 방법이지만, 여전히 강력한 어태커가 네트워크의 익명성을 뒤흔들 수 있을 만큼의 정보를 모을 수 있습니다.
이 에피소드에서 우리는 HOPR와 같은 믹스넷 이 복잡성을 더 나은 수준으로 끌어올려 진정한 메타데이터의 프라이버시를 현실화할 수 있는지에 대해 알아볼 것입니다.
네트워크의 힘
지난 글에서 들었던 간단한 예를 보면, 우리는 네트워크를 통해 단 하나의 메시지를 라우팅 하고 데이터를 번호가 매겨진 패킷 으로 데이터를 분할 해 보안을 더욱 강화하는 것을 보았습니다. 이 예는 라우팅의 개념을 이해하기에는 쉬웠지만, 우리가 더 유리하게 이용할 수 있는 중요한 사실에 대해서는 다루지 않았습니다: 현실에서는, 많은 사람들이 동시에 우리의 네트워크를 이용할 것입니다.
이 말은, 수백 또는 수천개의 데이터 패킷이 네트워크를 동시에 통과할 것이라는 것입니다. 우리는 이 데이터의 흐름을 이용해 어태커에 대항한 혼잡성을 만들 수 있습니다.
혼합하기
각 패킷을 개별적으로 릴레이하는 대신, 각 노드가 다른 노드로 전송하기 전에 서로 다른 메시지로부터의 여러 패킷을 병합할 수 있습니다. 이 노드는 그 뒤 패킷을 나누고 다른 노드로부터 받은 패킷과 다시 병합합니다. 이 전체 프로세스를 두고 믹싱 이라고 부릅니다.
다음은 단일 노드의 관점에서 이 작업이 어떻게 보일지에 대한 예입니다:
여기, 한 HOPR 노드가 세 곳의 서로 다른 데이터 전송지로부터 패킷을 받고 있으며, 각각 노란색 파란색 그리고 남색으로 나타납니다. 패킷 그룹이 노드로 들어오며 분할되고 재병합되며, 이 새 패킷의 병합물은 목적지에 이르기 전까지 또 다른 노드로 전송됩니다.
기억할 점: 위의 애니메이션에서 독립적인 패킷이 여러분이 믹싱 과정을 이해하기 쉽도록 분류 및 분할되지만, 실제로는 각 연결에서 모두 함께 뭉쳐집니다. 외부인은 절대로 노드를 통한 한 패킷의 경로를 추적할 수 없습니다. 어떤 패킷은 노드를 출입할 때의 시점 사이에 연결 링크를 방해하기 위해 추후의 믹싱 사이클에 들어가기 전에 일시적으로 보류됩니다.
이러한 메타데이터를 더욱 모호하게 하기 위해 HOPR 믹스넷은 Sphinx 라는 패킷 형식을 사용해 이와 같은 모든 패킷 번들을 쉽게 혼합하고 구분할 수 없게 만듭니다. Sphinx 형식은 네트워크를 통과하는 모든 패킷이 동일한 크기의 바이트이며, 그러므로 크기에 따라 데이터를 추적할 수 없게 합니다.
문제가 해결되었나요?
이것으로 솔루션이 나왔다고 할 수 있을까요? 안타깝게도 그렇지 않습니다. 오히려, 이는 단지 문제의 절반만 해결한 셈이고 심지어 더 쉬운 쪽을 해결한 것입니다. 보시다시피 믹스넷은 매우 복잡한 시스템입니다. 이 모든 암호화, 믹싱, 재믹싱, 그리고 릴레이잉은 데이터를 직접 공개적으로 전송하는 것과 비교했을때 매우 계산적이며 고비용입니다. 믹스넷은 이론적으로 훌륭하지만 실제로는 누군가가 이 추가적인 노력에 대해 더 많은 투자를 해야 합니다.
이것은 인센티브화로 알려져 있으며, 단순히 노드에 돈을 보내는 것처럼 간단하지 않습니다. 데이터 전송에 대해 지불할 방법이 있어야 하며, 이는 우리가 여태 이것을 설계하며 노력해온 강력한 프라이버시 구축을 해치지 않아야 합니다. 또 우리는 실제로 데이터를 중계하지 않고 지불을 받기 위해 믹스넷이 제공하는 익명성의 장막을 악의적인 노드가 오용할 수 없도록 해야 합니다.
이것이 왜 해결하기에 더 복잡한 문제인지에 대해서는 다음 에피소드를 통해 알아보도록 하겠습니다.