모네로 심화 OPSEC 가이드 1편 : 이론

흔히 모네로는 절대로 추적할 수 없다고 알려졌지만 완전무결은 아닙니다. 몇 가지 조건을 갖춘다면 충분히 모네로 거래를 추적당할 수 있습니다. 모네로의 약점을 이해하고 위협 모델에 맞춰 적절한 Opsec 지침을 따라야 합니다.

불행히도 이 사실은 한국에 잘 알려지지 않았습니다.

모네로의 익명성

이야기하기에 앞서 우선 모네로의 익명성이 실제로 어떻게 평가되고 있는지 알아봅시다.

유로폴이 모네로를 추적할 수 없다고 밝힌 뉴스는 유명합니다. FBI 수사 문건이 유출된 Blueleaks에서도 범죄자들이 비트코인을 모네로로 세탁했다는 사실은 알고 있지만, 모네로를 추적했다는 이야기는 없습니다. 한마디 더 하자면 Blueleaks에 언급된 Morphtoken은 이제 Tor를 차단해서 아무도 사용하지 않습니다.

유명 블록체인 분석 서비스 Chainalysis는 자사 블로그에서 대시와 지캐시 추적을 지원한다고 발표했지만, 모네로는 추적하기에 익명성이 너무 강하다고 평가했습니다. 두 달 전 Chainalysis 직원은 인터뷰에서 모네로는 기술적으로 매우 훌륭하다고 언급했습니다. Chainalysis는 미국 국세청이 발주한 모네로 추적 솔루션 개발 사업의 계약을 따냈지만, 아직 해야 할 일이 많다고 합니다.

모네로를 추적할 수 있다고 선전한 Ciphertrace의 CEO는 아직 아무도 모네로를 정교하게 추적할 수 없다고 시인했습니다. 비트코인처럼 정확하게 추적할 수 없기 때문에 통계적 추론에 의존할 수 밖에 없다는 겁니다. 밈블윔블이 모네로보다 추적하기 쉽다는 코멘트도 남겼습니다.

카네기 멜론 대학에서 2020년에 발표한 알트코인 추적에 관한 연구에서는 통계적 추론을 통한 모네로 추적의 정확도가 40% 미만이라는 결론을 내렸습니다.

Monero의 익명성은 최근 몇 년 동안 크게 발전했습니다. RingCT의 도입과 필수 mixin이 10개로 증가함에 따라 추적이 훨씬 더 어려워졌습니다. 우리는 Pre-RingCT에서 세 가지 성공적인 휴리스틱의 효과를 조사했습니다.

제로 체인 분석을 통한 추론 가능한 입력의 비율은 필요한 mixin의 수를 늘리고 RingCT가 도입 된 후 거의 0 %로 감소했습니다. 시간 휴리스틱의 정확도도 40 % 미만으로 크게 떨어졌습니다.

병합 출력 휴리스틱은 여전히 정확도가 높지만, 전체 거래의 작은 일부분에만 적용될 수 있습니다. 따라서 우리는 3 년 전과 비교하여 현재의 Monero 거래는 더 큰 프라이버시가 작동한다고 믿습니다.

Conclusion

40%는 생각보다 높지만 그렇다고 모네로를 추적할 수 있다고 확실하게 말할 수준도 아닙니다. 이렇게 낮은 확률이면 자금세탁방지는커녕 범죄 수사에 사용하기도 힘듭니다.

익명성 측면에서 모네로는 자타공인 가장 강력한 프라이버시 코인입니다. 하지만 모네로에도 몇 가지 약점이 존재합니다.

모네로의 약점

암호학 연구자 Sarang Noether 와 모네로 리서치 랩 직원들이 연재하는 Breaking Monero 시리즈는 모네로의 취약점을 잘 정리한 글입니다. 한 번씩 읽어보시기 바랍니다.

지금 시점에서 가장 눈여겨 보아야 할 내용은 Input Selection Algorithm, Unusual Ringsize, Remote Nodes, Timing Attacks, EAE Attack, Input/Output Metadata, Blockchain Explorer OpSec 라고 생각합니다.

모네로는 사용자가 링 사이즈를 마음대로 늘릴 수 있습니다. 이론적으로 링 사이즈가 더 늘어날수록 사용자의 프라이버시도 향상됩니다. 하지만 mixin 개수는 블록체인에 공개되기 때문에 도리어 눈에 더 잘 띄게 됩니다. 개발자들이 링 사이즈를 획기적으로 늘리는 ‘트립티크‘를 연구하고 있으니 그때까지 설정을 건들지 맙시다.

공격자의 노드를 사용하거나 타이밍 공격을 통해 얻은 오프 체인 메타데이터가 통계적 추론에 사용될 수 있습니다. 이 이야기는 Tor의 사용 시간을 고려해 범인을 추려내는 추적 기법과 비슷합니다. 조금 비현실적인 생각이지만, 국내에서는 전 세계 모든 모네로 노드의 아이피를 확보해 거래 내역을 찾아낸다는 아이디어를 내기도 했습니다. 이런 공격을 피하기 위해서는 원격 노드를 멀리하고 자체 풀 노드를 최대한 24시간 유지하면서 암호화된 레이어를 추가해 모네로를 사용하고 있다는 사실을 ISP에게서 감춰야 합니다. 모네로는 노드의 아이피와 개별 거래의 연관성을 알지 못하도록 하기 위해 Dandelion++ 이라는 프록시를 구현했지만 이조차도 공격당할 수 있습니다.

일반적인 모네로 트랜잭션은 1개의 입력과 2개의 출력을 가집니다. 하지만 cli 지갑을 사용하면 최대 16개까지 출력을 늘릴 수 있습니다. 여러 명에게 동시에 코인을 지불하는 경우 이런 트랜잭션이 나타납니다. 입출력 개수는 블록체인에 공개되기 때문에 통계적 추론에 사용하는 메타데이터로 사용할 수 있습니다. 주의해야 합니다. 수상해 보이지 않기 위해서는 다른 사람들과 트랜잭션의 입출력을 비슷하게 유지해야 합니다.

오염된 출력이라 불리는 EAE 공격은 모네로를 추적하는 가장 유명한 방법입니다. 개인 A의 거래를 추적하기 위해 두 E가 서로 공모해 우선 A에게 코인을 보낸 다음 트랜잭션 유형을 통계적으로 분석하는 겁니다. 예를 들어 내가 크라켄에서 모네로를 구매해 개인 지갑에 보관한 다음, 다시 오케이엑스로 보냈다고 가정합니다. 여기서 A는 나, E는 크라켄과 오케이엑스입니다. 크라켄은 거래소 지갑에서 개인 지갑으로 보낸 트랜잭션을 알고 있습니다. 하지만 개인 지갑에서 오케이엑스로 보낸 트랜잭션은 모릅니다. 오케이엑스는 반대로 개인 지갑에서 오케이엑스로 보낸 트랜잭션만을 알고 있습니다.

모네로는 10개의 디코이를 사용하기 때문에 이 경우 공격자는 11 * 11 = 121개의 경로를 고려해야 합니다. 하지만 비슷한 거래를 반복하면서 공격자는 오프 체인 데이터와 트랜잭션의 패턴을 수집해 휴리스틱의 정확도를 올립니다. 충분한 데이터가 쌓이면 해당 트랜잭션이 나와 연관된 거래임을 추론할 수 있습니다. 이 과정에서 두 거래소가 보유한 KYC 데이터, 오염된 디코이, 타이밍 공격 등이 사용됩니다. EAE 공격은 공격자 E가 수행하는 KYC를 줄이고, 후술할 churning을 통해 완화할 수 있다고 알려져 있습니다.

이외에 몇 가지 주의해야 할 점이 있지만 실제 Opsec 방법론을 논하는 시간에 같이 설명하도록 하겠습니다.

Leave a Reply

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다

11 + 18 =

34 − 31 =