93화
며칠 후.
드디어 정우현은 완벽하게 성공했다.
소수의 법칙을 발견해 수식으로 정리를 해냈다.
“…으음.”
정우현이 깔끔하게 정립한 해당 수식을 가만히 바라봤다.
리만 가설을 입증할 때보다는 흥분이 덜했다.
실상 리만 가설을 입증하는 게, 훨씬 어려웠기 때문이다. 즉 해당 가설을 입증해 소수의 분포도를 알게 된 순간에 이미 수의 비밀이 풀린 것과 마찬가지였다.
일찍이 그가 푸앵카레 추측을 입증하며 우현의 정리로 불리는 수식을 만들었으니, 이번 소수의 법칙은 말 그대로 우현의 법칙이었다. 실상 이는 정우현을 전후로 수학의 역사가 나뉘어지는 대사건이었으나, 지금은 그런 의의를 되새기고 있을 때가 아니다.
아직 비트코인의 결점을 입증하는 작업은 끝나지 않았으니까.
모든 수학적 탐구를 마무리하고, 정우현은 다시 수학자에서 해커 어나니머스로 돌아가 컴퓨터를 켰다.
그 다음 SHA256 알고리즘에 해시 충돌을 일으키는 값을 찾는 연산 프로그램을 만들었다. 물론 정우현이 정립한 소수의 법칙을 기반으로 구동하는 프로그램이었다. 실상 정우현이 아니었다면 머나먼 미래에나 구현됐거나 영영 존재치 않을 프로그램이었다.
전생에서 미국의 한 대형 IT회사는 SHA1을 무너트리는 키를 발견했는데, 그때 컴퓨터가 수행한 연산 횟수가 무려 약 9경(9,223,372,036,854,775,808)에 달했다고 밝혔다. 그만큼 엄청난 성능의 컴퓨터를 여러 대 이용해서도 오랜 시간이 걸려 수행한 연산이었으며, IT 회사는 그 과정이 대략 2년 걸렸다고 했다.
한데 정우현의 연산 프로그램은 금방 키를 발견했다.
3분, 정확히 3분이었다.
누군가가 3분 카레를 해 먹고 컵라면을 데워 먹을 수 있는 시간에 정우현의 프로그램은 비트코인을 무너트리는 키를 발견했다.
그것도 SHA1보다 진보되어 경우의 수가 훨씬 많은 SHA2 시리즈를 대상으로 산출한 결과였다.
무작위 대입에 따른 연산이 아닌 소수의 법칙을 기반한 연산이었기에 어찌 보면 당연한 결과였다.
이로써 그는 이제 막 세상에 모습을 드러낸 비트코인을 무너트리는 법을 발견해 냈다. 정우현의 키로 인해 비트코인이 해시 충돌을 일으켜 작업증명이 불가능해지면, 얼마든지 해당 코인을 위조 및 변조하는 등 조작할 수 있기에 화폐로서의 신뢰성이 완전히 사라진다. 즉 화폐는커녕 디지털 쓰레기와 다름 아니다.
이 같은 내용을 바탕으로 정우현이 드디어 이메일을 보냈다. 그것도 사토시 나카모토의 암호화된 이메일이 아니라, 현실 생활에서 개발자가 직접 쓰고 있는 즉 신원이 드러난 이메일 주소로 보냈다.
* * *
그렇게 비트코인 개발자의 실생활 이메일에 정우현의 메일이 하나 도착했다.
한데 해당 메일은 또한, 암호화된 메일이었다. 심지어 비트코인 개발자가 사토시 나카모토라는 이름으로 사용한, 암호화된 메일보다 훨씬 기술적으로 뛰어난 메일이었다. 즉 정우현이 직접 구현한 보안망을 기반으로 하는 메일 주소였다.
단연, 비트코인 개발자 또한 엄청난 프로그래머다. 즉 역으로 정우현의 정체를 밝히지 말란 법은 없었다.
뿐만 아니라 정우현의 메일에 개발자가 어떤 반응을 보일지 정확히 예측할 수 없었기에, 정우현 또한 자신의 신분을 숨기고 이처럼 암호화된 메일을 보냈다.
정우현의 메일은 이렇게 시작됐다.
‘안녕하십니까. 저는 세계의 평화와 인류의 번영을 소망하는 해커 어나니머스입니다.’
그러고서 정우현은 곧장 본론으로 들어갔다.
‘저는 우선 귀하가 비트코인을 개발한 사토시 나카모토임을 알고 있습니다. 그래서 이렇게 당신의 신원이 드러난 이메일 주소로 메일을 보낸 것입니다. 하지만 두려워하지는 마십시오. 저는 이를 통해 어떤 협박을 하거나 이익을 취하려는 게 아닙니다. 다만 당신이 개발한 비트코인이, 장차 당신의 뜻대로 디지털 화폐로 기능하기에는 역부족이며 오히려 큰 위험성을 내포했음을 알려 드리고자 합니다.’
하고서 그는 자신이 발견한, SHA256을 무너트리는 키 하나를 메일에 첨부했다.
‘개발자님도 SHA256이 완전한 암호 체계가 아님을 알고 있을 것입니다. 다만 가까운 미래에는 해킹이 되지 않으리라 판단했겠죠. 하지만 여기 아래의 키를 사용해 값을 추출하면 해시 충돌이 일어나는 것을 확인할 수 있을 것입니다.’
물론 정우현이 이처럼 비트코인의 취약점을 발견하고서 개발자에게까지 해당 사항을 알릴 필요는 전혀 없다.
하지만 그럼에도 그가 이렇게까지 한 이유는 첫째 실제 비트코인 자체가 완전한 가상 화폐가 될 수 있는지 의문이 들었다. 둘째 비트코인과 비트코인을 개발한 사토시 나카모토라는 사람에게 그저 흥미가 생겼다.
그리고 마지막으로, 실은 이 이유가 결정적인데, 전생의 기억을 떠올리면 비트코인이 훗날 얼마나 경제적 가치를 띠게 되는지 알고 있기 때문이다. 즉 사람들이 장차 열광하게 되는 만큼 기술적으로 안전해야 한다고 생각했다.
“…아아.”
비트코인 개발자는 물론 정우현의 이메일을 읽고 놀랐다.
우선 자신이 비트코인 개발자라는 것을 알고 있다는 사실에 소스라치게 놀랐다. 그러고서 첨부된 키를 해시 값으로 추출하니 실제 SHA256 암호 시스템이 충돌을 일으키며 비트코인이 망가지는 것까지 확인했다.
즉, 개발자가 오랜 시간 구상하고 끝내 만드는 데 성공한 비트코인이 세상에 모습을 드러낸 지 얼마 되지 않아 쓸모없어져 버렸다.
‘…SHA256 암호 체계를 다른 것으로 바 꿔볼까.’
하고 개발자가 심각한 표정으로 생각했다.
실제로 전생에선 이와 비슷한 과정이 번번이 일어나는데, 이를 두고 하드 포크 및 소프트 포크라고 한다. 코인 업그레이드를 지칭하는 말이다.
하지만 이내 개발자가 고개를 설레설레 저으며 생각을 이었다.
‘…아니야, 어나니머스는, 2008년 현시점 세계에서 가장 뛰어난 암호 체계 중 하나인 SHA256을 금세 무너트린 무지막지한 해커. 다른 암호 체계로 바꿔봤자 금방 또 무너질 게 뻔하겠지….’
즉, 그를 상대로 비트코인을 방어하는 길은 없어 보였다.
“음….”
비트코인 개발자가 연신 앓는 소리를 냈다.
자신이 오랜 시간 꿈꾸던 프로젝트가 한순간 와르르 무너지게 됐다.
세상 누군가가 지금 비트코인을 무너트린 이상, 개발자로서 비트코인을 근본부터 다시 생각해야 했다.
이에 개발자가 결국은 행동에 나서기 시작했다. 언제까지 생각만 하고 있을 수는 없었다.
먼저 어나니머스의 신원을 밝혀내는 게 중요했다.
사실 개발자는 어나니머스의 메일을 받았을 때부터, 그의 정체를 누군가로 추정하고 있었다. 하지만 일단 객관적인 근거로 확실히 하는 게 좋다고 판단했다.
이에 개발자는 어나니머스가 본인의 신원을 밝혀낸 것과 똑같은 방식으로 어나니머스의 신원을 밝히려고 했다.
암호화된 메일링 주소를 해킹해, 실제 그의 IP주소를 확인하기.
하지만 불가능했다. 어나니머스가 비트코인 개발자보다 실력이 훨씬 뛰어났기 때문이다.
실상 SHA256까지 순식간에 무너트린 해커이니 어찌 보면 당연한 결과였다.
“….”
개발자는 어나니머스의 신원을 확인하려는 첫 시도부터 난관에 가로막혀 모니터를 하염없이 바라보기만 했다.
실상 애초 불리할 수밖에 없는 상태였다. 어나니머스 즉 정우현은 비트코인 개발자의 신원을 아는 가운데, 개발자는 어나니머스를 알고 있지 못하다. 단지 그저 주관적으로 추정만 하고 있을 뿐.
이는 엄청난 정보의 비대칭으로써 개발자가 당장 정우현을 상대로 할 수 있는 건 거의 없었다.
그저 암호화된 그의 이메일 주소에 답 메일을 보내는 것밖에는.
결국, 개발자는 생각 끝에 찬찬히 키보드를 눌렀다.
프로그래밍이 아닌 글을 쓰기 위한 타이핑이었다.
즉 정우현에게 답 메일을 보냈다.
* * *
정우현이 개발자의 메일을 받고 눈을 크게 떴다.
‘혹시’라는 제목으로 시작한 답 메일의 내용은 무려 ‘정우현 님인가요?’라고 쓰여 있었다.
즉, 개발자가 실제 어나니머스일 것이라 추측한 사람은 다름 아닌 정우현이었다.
그리고 이어지는 글은 더욱더 놀라웠다.
‘제 신원을 알아내고, 저의 비트코인 프로젝트를 무너트릴 수 있는 사람은, 세상에 정우현 님밖에 없다고 생각해서 이렇게 말씀드립니다.’
하고 개발자는 글을 이었다.
‘99% 아니, 100%에 가까운 확률로 정우현 님일 것 같아 이렇게 부탁드립니다. 만약 정말 이 이메일을 읽으시는 분이 제 예상대로 정우현 님이라면, 부디 보름 안에 제 집에 방문해 주십시오. 정우현 님도 아시겠지만, 저는 정우현 님과 연이 있고 한편으로 그를 신뢰합니다. 그러니 정우현 님이 직접 저의 집에 방문해 주시기를 간곡히 부탁드립니다. 이미 저의 신원을 다 알고 계실 테니 실제 주소를 찾아오는 건 쉬운 일일 것입니다. 그렇게 정우현 님과 함께, 제 프로젝트에 관해 논의하고 싶습니다.’
그러고서 개발자는 사뭇 다른 말투로 이메일을 마무리했다.
‘행여 제로에 가까운 확률로 제게 이메일을 보낸 어나니머스가 정우현 님이 아니라면, 저는 당신을 피해 보름 후에 주거지를 옮기는 등 모든 개인 정보를 변경 및 파기할 것입니다. 동시에 제가 계획한 비트코인 프로젝트 또한 완전히 파괴하고 종료할 것임을 밝힙니다. 그럼에도 제 신원을 계속 추적하신다면, 저는 세상에 스스로의 정체를 밝혀 당국에 신변 보호를 요청할 것입니다. 그러니 저를 이만 놓아주시길 바랍니다. 감사합니다.’
요컨대 어나니머스가 정우현이면 함께 따로 만나 비트코인의 방향성에 관해 논의를 하고, 정우현이 아니라면 모든 것을 포기해 평범하게 살아가겠다는 뜻을 밝히는 내용이었다.
어나니머스가 비트코인을 무너트렸기에, 더 이상의 개발은 의미가 없다고 판단했기 때문이다.
하지만 상대가 정우현이라면 다르다. 개발자가 아는 정우현이라면, 얼마든지 그와 얘기를 나눠 다른 선택지를 찾을 수 있을 것 같았다.
이것으로 정우현과 비트코인 개발자의 메일 교신은 끝이 났다.
정우현은 개발자의 답 메일에 다시 답 메일을 보내지는 않고, 어나니머스 계정의 암호화된 이메일 주소를 영구적으로 삭제하고 기록조차 완벽하게 지웠다.
* * *
열흘 후 비트코인 개발자의 집.
개발자가 어나니머스에게 답메일을 보낸 지 시간이 꽤 지났다.
즉, 상대가 정우현이면 집에 직접 방문해 달라고 부탁한 시한이 닷새밖에 남지 않았다.
긴장됐다. 물론 개발자는 여러 이유에 의해 어나니머스가 정우현이라고 거의 확신하고 있었다.
하지만 세상 일은 모르는 것. 자신의 신원과 비트코인이 이렇게나 빨리 밝혀지고 무너지리라 예상하지 못했던 것처럼, 어나니머스가 정우현이 아닐 가능성도 없지는 않았다.
그렇게 개발자는 정우현이 오기만을 기다리고 있었으나, 한편으로 다른 시나리오도 생각하고 있었다.
어나니머스가 정우현임에도, 모종의 이유에 의해 자신의 집을 방문하지 않을 수 있다.
그렇게 되면 어쨌거나 개발자가 정한 보름 안에 정우현이 오지 않은 것이 되기에, 이제까지 그가 집중한 모든 것을 포기하고 완전히 다른 곳에서 새 삶을 살아야 한다.
또 다른 시나리오는 정우현이 아닌 어나니머스가 역시 모종의 이유로 개발자를 만나기 위해 집에 오는 것.
사실 이게 개발자 입장에선 최악의 경우였다. 신원 불명의 어나니머스가 어떤 짓을 저지를지 모르기 때문이다.
그래서 개발자는 나름 특단의 조치를 해 놓았다. 집의 보안을 강화하고 총기까지 구비했다.
물론 이렇게 해도 자신의 신변이 위험해질 수 있다. 하지만 이는 비트코인이라는 어마어마한 것을 만든 채 특정인에게 신원까지 밝혀진 개발자가 마땅히 감수해야 할 위험이었다.
하지만 개발자가 판단하기에 그와 같은 위험이 발생할 가능성은 제로에 가깝다는 게 크나큰 희망이었다.
그런 마음으로 이런저런 생각을 하며 노심초사하던 어느 날 아침.
자신의 집 현관문을 누군가가 두드리는 소리가 났다.
개발자는 보안 강화 차원에서 직접 개발해 현관문에 설치한 CCTV로 얼른 밖을 살펴봤다.
역시나.
에상대로, 어나니머스는 정우현이었다.
다행이었다.
이에 개발자는 안도감을 넘어 기뻐 하며 현관문을 즉각 열었다.
그러자 정우현이 기다렸다는 듯 밝게 웃으며 개발자를 보고 말했다.
“반갑습니다.”
그러고서는 머리를 숙여 보이고 말을 이었다.
“오랜만이군요.”