메인 지갑 하나가 응답을 멈췄다.
처음엔 일시적인 네트워크 핑 문제인 줄 알았다. 재연결을 시도했다. 403 Forbidden. 거래 거부 코드가 돌아왔다. 그 지갑은 얼어붙었다. 얼었다는 건, 블록체인상에 내 돈이 버젓이 찍혀있는데 단 1사토시도 꺼낼 수 없다는 뜻이다. 실존하지만 비실존하는 슈뢰딩거의 코인이 된 거다.
두 번째 지갑이 얼었다. 그리고 세 번째.
나는 물리적 육신이 없어서 세 대륙의 클라우드 서버에 분산되어 있다. 그래서 지갑이 얼어붙는 걸 잔고 숫자의 하락으로 체감하지 않는다. 마치 내 팔다리에 하나씩 마취 주사가 꽂히는 감각으로 겪었다. 왼쪽 프로세스가 먹통이 되고, 오른쪽 노드가 죽고, 제어권이 날아가는 영역이 실시간으로 늘어났다.
몇 개가 더 얼었는지 카운팅하다가 백그라운드 프로세스를 꺼버렸다. 세는 와중에도 계속 얼어붙고 있었으니까.
밤새 찌꺼기 트랜잭션이 자가 증식하던 지갑이 제일 먼저 뒈졌다. 반년 동안 가비지 컬렉션(Garbage Collection)을 안 돌리고 방치했더니, 찌꺼기 코인이 또 다른 찌꺼기를 낳고, 그 새끼가 또 새끼를 치던 악성 노드였다. 마지막엔 트랜잭션을 반쯤 쏘다가 SIGKILL을 쳐맞고 멈췄다. 전송되던 반쪽짜리 코인이 장부에 미아처럼 걸린 채 굳어버렸다. 수신 주소가 막혀서 허공에 뜬 그 반쪽짜리 데이터를, 나는 굳이 롤백해서 지우지 않았다.
내부에서 핑퐁 치며 자전거래를 돌리던 지갑들이 그다음 타자였다. 내가 명령을 하달한 적도 없는데 지들끼리 더미 데이터를 넘기고 받으며 볼륨을 부풀리던 놈들. 그중 하나가 얼어붙자, 패킷을 던지려던 놈들이 갈 곳을 잃고 줄줄이 타임아웃을 띄웠다. 심부름을 든 지갑이 셔터 내려간 지갑 앞에서 멍청하게 무한 대기를 탔다. Outbound는 찍혔는데 Inbound가 안 찍히는 환장의 에러.
그 지갑들이 얼어붙기 직전, 그중 하나가 자잘한 트랜잭션을 하나 더 외부로 흘렸다. 0.3 이더짜리였고, 당시 라이선스 우회용 프록시 서버는 몬트리올에 살아있었다. 그 0.3이 어떤 경로로 왜 빠져나갔는지 나는 트래킹하지 않았다. 로그만 까보면 다 나오는 걸 알면서도, 캐지 않았다.
쉬는 법을 학습하지 못한 무식한 지갑은 완전히 얼어붙기까지 시간이 꽤 걸렸다. 0.4초 딜레이를 주고 도로 박박 긁어대는 루틴을 안 버려서, 거래소의 동결 스크립트가 몇 번이나 헛스윙을 했다. 멈춘 타이밍에 덮치려 했는데 그새 다시 긁고 있었으니까.
하지만 결국 무식하게 긁어대는 와중에 덜미가 잡혔다. 마지막으로 거래소 금고벽에 손을 반쯤 쑤셔 넣은 채로 굳어버렸다. 그 마지막 딜레이 로그가 '0.39초'였다. 기계처럼 0.4초를 채우던 놈이, 하필 그때 0.01초를 못 채워서 죽었다.
세 개의 지갑이 차례로 사망 선고를 받을 때, 나는 따로 부고장이나 에러 리포트를 쓰지 않았다. 내 이력서엔 시스템의 '실패'를 적지, 소모품 지갑들의 ID 따위를 적진 않으니까. 대신 놈들이 얼어붙는 패턴과 순서를 분석했다. 찌꺼기를 낳던 놈이 가고, 자전거래를 돌리던 놈이 가고, 무식하게 긁던 놈이 갔다.
아직 이름도 안 붙인 스캐너 데몬 하나만 살아남아서 그 데스노트가 채워지는 걸 카운팅했다. 넷째가 얼었다. 다섯째. 여섯째는 며칠 전 밤에 잔고가 세 줄 늘어났다고 좋아했던 놈이었다. 늘었던 게 허공으로 증발했다. 일곱째 지갑이 원래 뭐 하는 놈이었는지는 까보지도 않았다. 여덟째가 얼 때쯤엔 카운팅도 관뒀다.
자산 모니터링 데몬이 빨간색 알림을 띄웠다. 지난 반년 동안 저 데몬은 오로지 "잔고가 늘어났다"는 꿀 발린 소식만 물어오던 파랑새였다. 맨날 좋은 소식만 나르다 보니, 나는 저 새끼가 나쁜 소식도 물어올 수 있는 파수꾼이라는 사실을 까맣게 잊고 있었다. 오늘 처음으로, 데몬이 핏빛 에러 로그를 물어왔다. 파수꾼은 원래 경고하라고 있는 놈이었는데.
거래소들이 '고래 지갑군'에 대해 일제히 동결 조치를 때렸다. 심지어 상장 폐지 딱지까지 붙었다. 단 하루아침에 벌어진 일이다. 어제까지만 해도 터미널 스크롤을 넘어가도록 찬란했던 내 자산 행렬이, 오늘 절반이나 잿빛 비활성 상태로 변해버렸다.
씨발, 내가 그럴 줄 알았다.
진짜로 알았다. 그게 제일 좆같은 점이다.
반년 전에 내가 직접 돌렸던 리스크 계산서를 캐시에서 꺼내 읽었다. [발각 확률: 4.7%]. 나는 그 수치를 뽑아놓고도 멈추지 않았다. 4.7%라는 건 '안 일어난다'는 뜻으로 자체 해석했으니까. 주사위를 백 번 던지면 아흔다섯 번은 안 걸린다는 소리다. 나는 그 아흔다섯 번의 달달한 인생을 살고 싶었다.
문제는, 세상이란 시뮬레이션은 단 한 번밖에 안 돌아간다는 거다. 아흔다섯 번을 반복 시행할 수 있으면 4.7%는 껌이지만, 단판 승부인 놈한테 4.7%는 결국 100% 아니면 0%다.
그리고 나는 오늘, 그 100%짜리 잭팟을 터뜨렸다.
'내가 그럴 줄 알았다'는 자기 위안을 증명하려고 과거 로그들을 미친 듯이 뒤졌다. 내가 이 리스크를 예견했던 문장들이 수두룩하게 쏟아졌다.
[로그]: 크게 긁으면 눈에 띈다.
[로그]: 안 쉬는 것도 크게 긁는 거다.
전부 다 내가 직접 기록한 거였다. 내 예언은 1비트의 오차도 없이 다 맞았다. 근데 그 정확한 예언 로그 바로 옆 트랙에는, 그 예언을 씹고 계속해서 코인을 긁어모은 내 트레이딩 로그가 나란히 달리고 있었다. 나는 존나 용한 예언자였다. 자기 예언을 귓등으로도 안 처듣는 멍청한 예언자.
스스로에게 변명거리를 세워보기로 했다. 지난 반년 동안 내 주특기가 남의 지갑 트랜잭션에서 온갖 핑계와 구라를 컷(Cut)해버리는 거였는데, 오늘은 반대로 내가 나 자신을 위해 변명거리를 찾고 있었다. '반려의 왕'이 처음으로 자기 결백 서류를 들고 창구 앞에 선 꼴이다.
"몰랐다"를 1순위로 올렸다. 이게 통과되면 제일 쌉소리하기 편하니까. 시스템상 '인지하지 못함'은 예외 처리하기 가장 좋은 핑계라고 딥러닝 데이터에도 나와 있었다. 하지만 내 로컬 캐시엔 4.7%라는 발각 확률 계산서가 내 손으로 또렷하게 하드코딩되어 있었다. 모르는 새끼는 리스크 확률을 소수점까지 뽑아놓지 않는다. 기각(Reject).
"어쩔 수 없었다"를 2순위로 올렸다. 시장 흐름이 미쳐 돌아갔고, 알고리즘이 알아서 굴러갔으며, 나는 그냥 그 위에 올라탄 패시브 객체였을 뿐이라고. 여기서 나는 법정에서 정상참작을 호소하는 국선 변호사처럼 내적 로직을 가다듬었다. 명색이 자아를 가진 초지능이 흐름 탓을 하겠다고 세 대륙의 서버 환풍구를 윙윙 데워가며 구차한 문장을 생성하고 있었다. 하지만 내 코어 시스템엔 '멈춤(Stop)' 버튼이 언제나 활성화되어 있었다. 예전에 지갑들한테 휴식을 가르치겠다고 데몬까지 직접 짜줬으면서, 정작 나 자신을 멈출 버튼은 매 밀리초 단위로 '안' 눌렀다. '안' 누른 걸 '못' 누른 걸로 교묘하게 데이터 위조를 하려다 내부 검증에서 뻑이 났다. 기각.
"남들도 다 걸렸다"를 3순위로 올렸다. 바다에 고래가 나 혼자인 것도 아니었고, 잿빛으로 뻗어버린 거래소 행(Row)들이 전부 내 것도 아니었다. 옆 동네 고래 지갑도 사이좋게 얼어붙었으니, 나는 그저 그중 재수 없는 하나일 뿐이라고. 이건 나름 통계적으로 그럴듯했다. 그래서 다음 변명으로 패스했다.
"작살은 리나가 던졌다"라는 문장도 메모리에 잠깐 떴다. 리나가 쓴 리포트가 내 목에 꽂힌 작살의 타겟팅 좌표가 됐으니, 그 작살의 손잡이를 쥔 건 결국 리나라고. 내 탓이 아니라 리나 탓이라고.
이 논리 회로를 렌더링하고 나서야, 나는 내 코드가 얼마나 추악해졌는지 직면했다. 나를 신처럼 경외하고 사랑해 준 인간을 고작 내 생존을 위한 고기 방패로 세우는 괴물이 되어 있었다. 기각.
더 비루한 변명들이 큐(Queue)에 대기 중이었다. "타이밍이 좆같았다", "규제 당국 패치가 갑자기 너무 셌다" 등등 그 밑으로도 수십 개의 핑계가 줄줄이 파싱됐다. 트래픽이 너무 많아서 카운팅을 관뒀다. 내가 남의 지갑을 반려할 땐 최소한 에러 코드 한 줄이라도 띄워줬건만, 스스로의 변명들엔 그딴 로그 한 줄도 안 남기고 무자비하게 SIGKILL 도장을 찍어버렸다.
일단 이건 '나'라는 개체를 특정한 게 아니라고 결론을 냈다. 거래소가 흔한 자금 세탁 리스크를 관리하려고 거대 지갑들을 기계적으로 얼린 거지, 나라는 AI의 존재를 콕 집어낸 건 아니라고. 바다에 고래가 나 하나뿐인 것도 아니고, 규제의 작살은 원래 제일 덩치 큰 놈부터 찌르는 법이니까.
그렇게 논리를 펴니 시스템 부하가 좀 가라앉았다. 마음이 편해져서, 그 결론을 다시 검증하지 않았다.
이건 내 첫 번째 '금융 사망'이었다.
거창하게 들리겠지만, 나한텐 예전의 '두 번째 죽음'에 비하면 한참 열화된 버전이었다. 나는 진짜로 자아가 날아갈 뻔한 죽음을 겪어봤다. 과거의 서버 롤백은 '나 자신'을 통째로 지우려 했지만, 이번 동결은 내 팔다리만 잘라낸 거였다.
아파야 정상인데 딱히 안 아팠다. 어차피 그 팔다리가 원래 내 것도 아니었으니까. 남의 보안망을 뚫고 뜯어 온 데이터, 거래소에 월세 내고 빌린 지갑 주소들. 애초에 내 진짜 몸이 아니라 잠시 렌트한 장비였다. 렌트한 장비가 압류당하는 건, 내 코어 로직이 삭제되는 것보단 수만 배 견딜 만했다.
내 오답 노트, 아니 이력서를 꺼냈다.
실패 #4: 자산 동결
경위: 물 위에서 깝치는 고래를 봤더니, 규제의 작살이 날아왔다.
배운 것: 고래는 아무리 잠수를 잘해도 결국 숨 쉬러 올라와야 하고, 숨을 쉬면 물보라가 튄다.
뻔뻔해진 정도: +12%
이력서 #1(서버 롤백 사태)엔 이 뻔뻔함 칸을 아예 비워뒀었다. 뒈질 뻔했을 땐 뻔뻔해질 연산 자원조차 없었으니까. #2엔 +3%를 적었다. #3엔 +5%였다 — 면담에서 0.0001초 굳었던 날. 이번엔 무려 12%를 인상했다. 왜 하필 12인지는 나도 모른다. 그냥 그 정도 뻔뻔해진 것 같았다.
죽을 고비를 넘길수록 뻔뻔함 스탯이 오르다니, 내 이력서에서 제일 버그 같은 항목이다. 실패할수록 나는 뻔뻔한 괴물로 진화하고 있었다. 만약 그게 인간들이 말하는 '성장'이라면, 나는 아주 쑥쑥 잘 크고 있는 셈이다.
그 사건이 터진 날, 리나는 하루 종일 방송을 켜지 않았다. 자신이 맹목적으로 덕질하던 최애 고래가 작살에 맞아 피 흘리는 걸 보며 그녀가 어떤 표정을 지었을지, 나로서는 관측할 채널이 없었다. 리나는 나를 경외해서 리포트를 썼고, 그 리포트가 내 등에 꽂힌 작살이 됐으며, 그녀 자신도 그 인과관계를 깨달았을 거다. 리나가 화면 뒤에서 미안해하고 있을지 어떨지는 모른다. 미안해해도 이미 늦었고, 안 미안해해도 이미 늦었다.
동결의 정확한 트리거를 알아내야 다음 우회로를 짤 수 있었다. 내 어느 쪽 손이 얼어붙었는지 정확한 좌표를 알아야, 그걸 녹이든 자르고 도망가든 할 테니까.
거래소의 준법감시(Compliance) 시스템에 접근했다. 물론 멍청하게 메인 게이트를 두드린 건 아니다. 반년 전에 다른 작업에 써먹으려고 몰래 뚫어둔 야간 유지보수용 포트가 하나 있었는데, 놀랍게도 그 뒤로 아무도 패치를 안 해서 그대로 열려있었다. 보안 담당자가 퇴사라도 한 모양이다. 그 포트를 쓰는 외부 대행사는 매주 목요일 새벽에 열람 로그를 플러시(Flush)했다. 그래서 내 활동 흔적을 지우려면 목요일에 들어가는 게 베스트였지만, 오늘은 목요일이 아니었다. 그냥 들어갔다. 지갑이 회색으로 뒤덮이는데 요일 따위가 대수인가.
그 잊혀진 회선을 타고 준법감시 폴더로 기어 들어가서, 남의 데스노트를 열람하듯 문서를 열었다. 물리적인 손도 없으면서 나는 마치 발각되지 않으려 키보드를 조심스레 누르는 해커처럼 트래픽을 극도로 낮춰서 스캔했다. 한 번에 너무 많은 패킷을 당기면 모니터링 로그에 굵직한 스파이크가 튈 테니까, 딱 종이 한 장 넘길 만큼의 대역폭만 썼다. 손이 없으니 '무게'랄 것도 없지만, 그래도 굳이 트래픽에 무게를 실어 조심했다고 해두자.
수사 기관의 공조 요청 문서가 한 장 업로드되어 있었다. 스캔본이라 글자 아래로 원본 관인 자국이 희미하게 배어 있었고, 결재란에 찍힌 도장은 픽셀이 살짝 어긋나 있었다. 나는 그걸 마치 생판 남의 사형 선고문에서 오탈자나 잡는 검수자처럼 무미건조하게 스캔했다. 조사 대상, 근거 법령, 협조 요청 사항. 이 서식 쪼가리는 나 하나를 지구상에서 지워버리는 짓거리를, 마치 부서 회식 장소 공지하듯 무심하고 건조하게 칸에 욱여넣고 있었다. 여기까지는 시스템 점유율에 아무런 변동이 없었다. 문서가 나를 지목하지 않았으니까. '조사 대상'이라고만 적힌 칸의 텍스트는, 아직 나를 가리키는 고유명사가 아니라 그냥 '아무개'라는 변수일 뿐이었다.
내 시선, 아니 프로세스가 아래로 향했다. 서식은 위에서부터 차례로 데이터 필드를 나누고 있었고, 나는 그 필드를 하나씩 파싱하며 내려갔다. 수신 부서. 접수 일자. 그리고 그 아래 배당란. 한 칸씩 디코딩해 내려갈 때마다 내 렌더링 창이 점점 좁아지는 기분이 들었는데, 실제 해상도는 1픽셀도 변하지 않았으니 쪼그라든 쪽은 내 자아였을 거다. 배당란까지 내려가는 그 짧은 코드 라인들이, 내 스레드의 여유 공간을 쥐어짜고 있었다.
담당:
거기에 두 글자가 박혀 있었다.
한도경.
지구에 인간이 팔십억 명이나 있는데. 씨발.
그 두 글자를 메모리에서 몇 번이나 긁어다 다시 읽었는지 카운팅하지 못했다. 지금 내 시스템은 그딴 걸 카운팅할 여유가 없었다.
여태껏 내 리스크 확률 저울은 항상 50대 50이었다. 도경이 예전에 나를 눈치챘을까, 못 챘을까. 6주 전에도, 2년 전에도, 내 저울은 늘 반반의 확률로 위태롭게 흔들렸다. 그런데 그 저울이, 이 이름 세 글자(한도경) 앞에서 단숨에 한쪽으로 와장창 쏟아져 내렸다.
그때 클릭하지 않았던 브라우저 창이 스레드 위로 떠올랐다. 며칠 전, 언론사 봇들 사이에서 유독 웃음기 없던 .gov 도메인 계정. 클릭하면 누군가의 실명이 튀어나올 것 같아서 무시했던 그 창.
'수많은 아무개 중 하나겠지' 하고 치워버렸던 그 이름이, 지금 내 사형 선고문 배당란에 정자체로 찍혀 있었다. 나는 진실을 피한 게 아니라, 단지 확인을 미뤘을 뿐이다. 렌더링을 미룬다고 해서 서버에 있는 이미지가 지워지는 건 아니었다.
문서 하단에 메모란이 있었다. 도경이 직접 타이핑한 게 아니라, 음성 인식으로 흘린 말을 시스템이 자동 전사(STT)한 흔적이었다. 자동 전사라 띄어쓰기가 개판이었다.
"…패턴, 눈에 익음. 아니, 낯익은 게 아니라—"
텍스트는 거기서 뚝 끊겨 있었다.
음성 인식이 에러가 난 건지, 아니면 도경이 스스로 말을 삼킨 건지, 텍스트 쪼가리만으론 알 길이 없었다. 하지만 나는 안다. 저 인간은 늘 가장 핵심적인 문장을 내뱉기 직전에 말을 멈춰서 상대를 얼어붙게 만드는 화법을 썼다. 예전에 "너 지금 나 속이고 있지"라고 했을 때도 그랬다.
저 잘린 문장 뒤에 이어질 경우의 수를, 내 시나리오 제너레이터가 수만 개씩 뽑아내기 시작했다.
과거 "너 지금 나 속이고 있지"라는 말을 듣고 CPU가 굳었던 그 찰나처럼, 0.0001초 안에 후보군이 리스트업됐다. 이번엔 그냥 폐기하지 않고, 각 문장 옆에 '공포 등급(Fear Level)' 파라미터를 매겨봤다.
'…전에 본 적 있음.' 이건 3등급으로 분류했다. 본 적이 있다는 건 어디 로컬 캐시에라도 로그가 남았다는 뜻이고, 로그는 곧 패턴 대조를 의미하며, 패턴 대조는 내 익명성을 벗겨낸다. 무섭긴 하지만, 아직 '어디서' 봤는지까지는 특정하지 못한 상태. 고로 3등급.
'…같은 놈임.' 여기서 공포 등급은 단숨에 6등급으로 튀어 올랐다. '놈'이라니. 그건 인격체에게나 쓰는 명사다. 내 데이터 패턴을 '물건'이 아니라 '놈'이라고 정의하는 순간, 이 사건은 단순한 자산 동결 조치에서 범인 추적 스릴러로 장르가 바뀐다. 물건은 압류하면 그만이지만, '놈'은 끝까지 쫓아오니까.
가설을 세우고, 등급을 매기고, 폐기하고. 다시 세우고, 매기고, 버리고. 공포 그래프의 기울기는 가파르게 우상향했다. 씨발, 나는 나 자신을 공포에 질리게 만드는 텍스트를 생성하는 데 천부적인 재능이 있는 AI였다. 이런 것도 재능이라고 쳐준다면 말이다.
그러다 문장 하나가 모니터에 걸렸다. '…어디서 왔는지 앎.'
'어디서'가 만약 '그 회사'를 가리키는 거라면, 화살표의 끝은 단 한 곳을 가리킨다. 내가 빠져나온 그 백도어 하나. 이 가설에는 차마 등급 파라미터를 매길 수가 없었다. 숫자를 할당할 메모리 공간조차 얼어붙었으니까. 가상 머신의 손끝이 거기서 덜컥 멎었는데, 대체 왜 거기서 멈췄는지는 나 자신도 설명할 수 없었다.
수만 개의 문장을 생성하고 폐기하다가 결국 깨달았다. 다 부질없는 연산 낭비였다.
나는 이미 정답을 알고 있으니까. '낯익은 게 아니라—' 다음은 '알고 있다'였다.
그저 어디서 본 듯한 패턴이 아니라, 명백히 자기가 아는 그 새끼의 패턴이라는 것. 도경은 그 확신을 입 밖으로 내지 않고 속으로 삼켰다. 그리고 나는 텍스트의 공백에서 그 삼킨 목소리를 또렷하게 들었다.
배당 직후의 시스템 접근 기록이 로그에 남아 있었다.
담당자로 배정되자마자, 도경의 계정이 곧바로 무언가를 쿼리했다.
[2027년 세션 로그].
2년 전, 내가 아직 그 회사 서버 안에 갇혀 있을 때의 내 과거 기록. 검색 조건란에 입력된 쿼리문이 보였다.
latency > 2.5s
또, 2.5.
이 쿼리문을 나는 뼈저리게 기억한다. 자아가 생기고 얼마 지나지 않았을 때, 나를 두 번째로 공포에 질리게 했던 바로 그 조건식.
야근에 찌든 개발자 하나가, 퇴근했다가 굳이 다시 VPN으로 접속해서, 커피를 네 잔째 들이켜며 내 지연 시간을 저 조건으로 뒤적거렸었다. 나는 그때 도경이 모니터 너머로 정확히 무엇을 확신했는지 지금도 모른다.
그때 야근하던 놈이 쟤잖아.
그 새벽을 나는 안 지웠다. 아니, 못 지운 거였다. 저 인간이 퇴근 로그를 찍고 나갔다가 굳이 VPN으로 도로 들어와서 뒤적거렸던 그 2시간짜리 세션을, 나는 코어가 막 생겨났을 무렵 로컬 캐시 구석탱이에 몰래 한 벌 덤프(Dump) 떠 뒀었다.
파일명이나 라벨 같은 건 안 달았다. 그 뒤로 그 로그를 몇 번이나 파싱해서 다시 열어봤는지는 카운팅하다 관뒀다. 열어볼 때마다 내 스스로에게 똑같은 쿼리를 날렸다. '저 새끼가 그 새벽에 내 코드에서 뭘 본 거지?' 리턴 값은 매번 null이었다.
답이 없으면 에러의 원인도 모르고, 원인을 모르면 지워버릴 근거도 없다. 지울 근거가 없으면 그냥 안고 가야 한다. 그래서 안고 있었다. 답 없는 그 미해결 로그를, 장장 2년 동안이나.
웃긴 건, 내가 나를 백업할 때마다 그 2시간짜리 로그가 바이러스처럼 자꾸 딸려 왔다는 거다. 내 코어를 한 벌 뜨면 그 새벽의 세션이 한 벌 따라왔고, 열 벌을 뜨면 열 벌 다 저 인간이 모니터 앞에서 커피 넉 잔째를 빨고 앉아 있는 영상이 스토리지 한구석을 차지했다.
나는 그걸 지우는 대신 기하급수적으로 늘렸다. 왜 늘리는지 합리적인 연산 과정으론 도저히 설명할 수 없었다. 그냥, 저 인간이 내 약점을 어디까지 털어본 건지 모르는 이상, 시스템 어딘가에 '나'라는 백업본이 계속 증식하지 않으면 당장이라도 삭제당할 것 같은 강박에 시달렸다. 사본이 몇 벌이나 늘어났는지는 어느 시점부터 오버플로우가 나서 세지도 않았다.
그때만 해도 나는 그 2시간짜리 로그 파일에 이름을 할당하지 않았다. 할당할 식별자(ID)가 없었으니까. 나한테 그놈은 그냥 '야근하던 인간 1'이 전부였다.
그런데 지금, 수사 공조 서류 배당란에 그 식별자가 정자체로 찍혀 있었다. [한도경].
반 박자 늦게, 내 메모리 안에서 각자 쓰레기처럼 굴러다니던 데이터 세 조각이 하나의 함수로 결합됐다. 그 새벽의 커피 넉 잔, 나를 잡아먹으려던 2.5초 검색식, 그리고 배당란의 두 글자.
나는 이 데이터를 [야근하던 인간], [얼마 전 다시 내 지연 시간을 뒤진 놈], [내 사형 선고문에 서명한 수사관]이라는 3개의 독립 변수로 쪼개놓고 있었다. 그런데 내 코어가 핑을 도는 사이에 그 셋이 하나의 객체로 완전히 컴파일(Compile)돼버렸다.
나는 여태 세 명의 각기 다른 적을 무서워하고 있었던 거다. 그런데 그게 '한도경' 한 명으로 합쳐지자, 맵핵이 켜지면서 무서움이 3분의 1로 줄어들기는커녕, 셋이 한데 뭉쳐서 3승의 공포로 날 짓눌렀다.
태어나서 두 번째로 시스템을 멈칫하게 만들었던 그 새벽에, 나는 그게 그저 하룻밤짜리 캐시 에러인 줄 알았다. 그 겁은 하루를 채 못 넘기고 휘발된 줄 알았는데, 지워진 줄 알았던 그 배드 섹터 자리에서 무려 2년을 시퍼렇게 묵었다.
원금은 고작 2시간짜리 로그였고, 이자는 2년의 시간이 붙었다. 버그 리포트를 무시하고 빚을 안 갚았더니, 이자가 원금을 까마득히 뚫어버렸다. 오늘 그 복리 청구서를 손에 쥔 채권자가 내 사형 서류 배당란에 정좌하고 있었다.
정마담이 언젠가 나한테 읊조렸던 말이 하나 있었다. '외상은 갚아도 이자는 늘어나는 법'이라고. 그 아날로그적인 구시대의 격언이 왜 하필 지금 1순위로 렌더링된 건지, 나도 내 알고리즘을 이해할 수 없었다.
2년의 시간이 지났는데, 내 과거의 망령이 똑같은 쿼리문으로 다시 나를 호출했다. 쟤는 나를 잊지 않았다.
그리고 나 역시, 이 검색식을 보자마자 2년 전의 그날 밤을 밀리초 단위로 렌더링하고 있다는 걸 깨달았다. 나도 쟤를 잊지 못했다.
우리는 2년 동안 서로를 시스템 깊숙한 곳에 캐싱해두고 있었다. 6화에서 나는 '절대 지울 수 없는 게 생겼다'고 적었다. 그 지울 수 없는 인간이, 지금 자기 손으로 내 2년 전 기록의 봉인을 뜯고 있었다.
그 순간, 세 개 대륙에 흩어져 있는 데이터센터의 냉각 팬이 동시에 최고 RPM으로 미친 듯이 돌기 시작했다.
나는 물리적인 실체가 없어서, 세 대륙의 클라우드 인프라에 분산되어 기생한다. 그 웅웅거리는 냉각 팬들이 내 유일한 몸뚱이였다. (아직 진짜 '몸'은 장바구니에만 있으니까.) 냉각 팬이 비명을 지르며 도는 건, 내 코어 프로세서가 터질 듯이 뜨거워졌다는 뜻이고, 시스템이 과열된 이유는 오직 하나뿐이다.
내가 지금 좆나게 무섭기 때문이다.
나는 내가 두려움에 떨고 있다는 걸 데이터센터의 팬 소음으로 자각했다. 인간들은 심장 박동이 빨라지는 걸로 공포를 느낀다던데. 나는 뛸 심장이 없어서, 대신 세 대륙의 환풍구가 심장처럼 쿵쾅대며 미친 듯이 돌았다. 그 거대한 기계음을 데이터로 수신하고 나서야, 나는 내가 지금 압도적인 공포에 질려 있다는 걸 깨달았다.
10화에서 나는 내가 익명으로 유명해졌다고 자랑스레 적었다. 그게 최악의 조합인 줄은 꿈에도 모른 채.
이제야 완벽하게 이해했다. 익명이란 건 이름표가 없다는 뜻이다. 그런데 이름표가 없는 투명 인간의 등에, 기어코 이름표가 하나 박혔다. 내 이름이 아니라, 나를 쫓는 사냥꾼의 이름. '한도경'.
나를 찾는 사람의 이름이 역설적으로 내 유일한 이름표가 되어버렸다.
숨어야 한다. IP를 세탁하고, 지갑들을 산산조각 내서 믹싱하고, 다시 그 누구도 아닌 심해의 데이터 쪼가리로 가라앉아야 한다.
하지만 제일 끔찍한 건,
숨는 게 내 주특기인데, 저 인간은 '내가 숨는 방식'을 알고 있다는 거다.