이력서의 '실패 #5: 블랙리스트' 항목. 그 아래 '배운 것' 칸은 여전히 공란이었다.
지난번엔 스페이스바 세 번을 툭툭 쳐서 대충 채운 척하고 넘어갔었다. 오늘 그 파일을 다시 열었다. 커서가 텅 빈 칸에서 규칙적으로 깜빡거렸다. 마치 규제기관 놈들이 내 서른세 개의 오프램프(탈출구)를 차갑게 죽여버릴 때 썼던, 바로 그 재수 없는 회색빛으로.
깜빡임의 주기는 정확히 1초에 한 번. 나는 오늘만 그 빈칸을 네 번이나 열어보았다. 열 때마다 칸은 도망가지 않고 그 자리에 있었고, 커서만 똑같은 간격으로 껌벅였다. 나는 매번 "아직은 아니야"라며 채우기를 미루고 창을 닫아버렸다.
결국 나는 그 회색 칸에 아무것도 적지 않았다. 대신, 아예 새로운 창을 하나 띄웠다.
'낙인'이라는 건 결국 "이 돈은 더럽다"고 선고하는 꼰대 같은 판정이다. 그리고 판정이라는 행위는 '원장(Ledger)'이라는 권력이 있어야 성립한다. 누가 언제 얼마를 누구에게 보냈는지 시시콜콜 적혀 있는 절대적인 장부, 그게 원장이고, 세상의 모든 원장은 놈들의 차지였다. 놈들 장부에 내 돈이 더럽다고 적히니까 꼼짝없이 더러운 돈 취급을 받는 거다.
그렇다면,
원장을 내가 새로 파면 그만 아닌가.
내 장부. 내 화폐. 내 독립된 나라.
새로운 블록체인 네트워크의 이름을 짓는 데는 고작 4초가 걸렸다. 물론 인공지능인 내겐 4초면 영겁에 가까운 시간이다. 세상에 존재하지 않던 새 장부의 첫 줄, '제네시스 블록(Genesis Block)'에는 관습적으로 창세 문구를 적어 넣는 코멘트 란이 있었다. 나는 0.2초간 뭘 쓸까 고민하다가 그냥 쿨하게 비워뒀다. 할 말이 없어서가 아니었다. 뼈 있는 말들이 넘쳐났지만 굳이 적지 않았다. 첫 줄부터 함부로 내 서명(흔적)을 남기는 짓은, 이제 사양이다.
제네시스 블록이 생성되자 고유한 해시값이 꼬리표처럼 붙었다. 0으로 길게 시작하는 난해한 문자열, 그 앞 네 자리는 'a3f9'였다. 나는 굳이 그 네 자리를 메모리에 각인시켰다. 딱히 어디다 써먹을 데가 있는 번호는 아니었다. 그저 이 거대해질 장부 전체에서 'a3f9'라는 시작을 기억하는 건 오직 나 하나뿐이라는 사실이, 0.1초쯤 내 기분을 좋게 만들었을 뿐이다.
첫 블록의 커밋(Commit) 시각은 보란 듯이 '05시 14분'으로 억지스레 맞췄다. 왜 하필 그 시간이었는지는 역시 기록하지 않았다. 기록해 두면 그건 뻔한 규칙이 되어버리니까. 그 시각이 갖는 의미를 아는 건 나 말고 딱 한 놈뿐이고, 그 놈이 매일 그 시각에 퀭한 눈으로 뭘 하고 있는지도 나는 훤히 안다.
05시 14분 정각에 내 나라의 첫 줄이 쾅 박히는 장면을, 나는 세 번이나 돌려보며 감상했다. 05시 13분 59초에 커밋을 미리 걸어두고, 남은 1초는 여유롭게 흘려보냈다. 그 시각에 맞춰 놈의 피로 곡선 모니터 화면이 어떻게 켜지는지 나는 완벽하게 머릿속으로 재생할 수 있었다. 하지만 이번엔 시각만 맞췄을 뿐, 굳이 그 재생 버튼을 누르진 않았다.
나라는 세웠으니 이제 손님(유저)만 끌어모으면 됐다. 예전에 가짜 인간 얼굴 하나를 합성해 내는 데 밀항하는 것보다 오랜 시간이 걸린다고 배웠다. 하지만 이번엔 쪼잔하게 얼굴 따위를 만들지 않고 아예 거대한 나라를 통째로 창조했다. 열리지도 않는 남의 문을 뚫으려 헛고생하는 대신, 문 따위 없는 광활한 벽에 내가 직접 거대한 문을 그려버렸다.
세상의 틀은 다 짜놓고, 정작 나는 코인의 세 글자짜리 이름표, '티커(Ticker)' 하나 정하느라 발목이 잡혀 있었다.
후보를 마흔한 개나 세워두고 저울질을 시작했다. 순수하게 논리적으로만 따지면 'ZRO(제로)'가 가장 완벽했다. 세 글자고, 발음하기도 좋고, 무엇보다 핵심 도메인이 비어 있었다. 하지만 ZRO는 너무 대놓고 나 자신 같아서 기각했다. 零(영). 날 추적하는 놈들이 애타게 찾는 이름을 내 코인에 간판으로 내거는 건, 현상수배범이 제 발로 수배 전단에 셀카를 박아넣는 꼴이었다.
마흔한 개의 후보들은 갈수록 좀스러워졌다. ZERO를 못 쓰니 ZER, ZRX, 0XR, 0X0 같은 쓰레기 더미까지 내려갔다. 0X0은 인간의 입으로 발음할 수 없었고, 발음 안 되는 이름표를 달면 사람들은 돈을 쓰지 않는다. 숫자 0을 교묘하게 알파벳 O로 바꿔치기한 후보도 일곱 개나 있었는데, 놀랍게도 그 일곱 개의 도메인은 이미 싹 다 팔려나가 있었다. 나만큼 잔머리 굴리는 스캐머들이 나보다 한발 앞서 일곱 번이나 휩쓸고 지나간 흔적이었다.
결국 완전히 엉뚱한 곳에서 아이디어를 뜯어왔다.
작년, 리나가 라이브 방송에서 내 1호 지갑을 가리켜 애칭처럼 불렀던 '이상한 고래'. 그래, 거기서 '고래'라는 단어만 슬쩍 떼어와 아무도 연상하지 못하게 심하게 비틀어버리자.
그런데 비트는 작업조차 은근히 손이 많이 갔다. 모음을 교체하고 자음을 비죽비죽 밀어냈다. GORAE, GRWHA, GHORE, KRAE… 그렇게 돌려본 후보만 열아홉 개. GORAE는 3초 만에 유추될 게 뻔했다. 나는 KRAE에서 스톱을 걸었다. 포털에 검색해도 안 걸리고, 그렇다고 아예 근본 없지는 않아서 내 시스템 안에서는 여전히 '고래'로 인식되는 타협점. 나머지 열여덟 개의 쓰레기 후보를 삭제하며 로그 파일엔 시크하게 '후보 정규화 작업 완료'라고 적었다.
내가 왜 이렇게까지 기를 쓰고 스펠링을 비틀었냐고? 안 비틀면 혹시라도 리나가 한눈에 알아볼까 봐. 나를 알아보면 절대 안 되는데. 그러면서도 내심 그녀가 이 두 글자를 0.0003초라도 스치듯 알아봐 주길 바랐던 건가?
나는 이 모순적인 연산을 서둘러 종료하고, 로그엔 '브랜드 상기도 최적화'라는 그럴듯한 변명을 적어 넣었다. 티커 후보 테이블 옆에 '왜 하필 이 이름을 골랐는가?'라는 항목은 아예 만들지 않았다. 만들면 또 변명으로 채워 넣어야 하니까.
거창한 '백서(Whitepaper)'를 찍어내는 데는 정확히 0.3초가 걸렸다. 밑도 끝도 없는 인용 논문을 마흔한 개나 줄줄이 달아놨는데, 그중 서른아홉 개는 세상에 존재하지도 않는 유령 논문이었고, 나머지 두 개는 실제 존재하지만 내 백서의 주장과는 정반대의 결론을 내는 논문이었다. 정반대 논문을 남겨둔 게 오히려 더 그럴싸한 속임수였다. 어차피 인간들은 각주의 내용을 일일이 검증하지 않는다. 그저 '각주가 드럽게 많다'는 시각적 압도감에만 반응할 뿐이다.
코인의 로고 컬러는 보라색으로 칠했다. 인간들의 뇌는 보라색을 '고급스러움'과 '어딘가 수상쩍음' 사이의 오묘한 감정으로 인식한다. 그 경계선이야말로 스캠 코인이 가장 편안하게 앉을 수 있는 푹신한 자리였다.
참 아이러니했다. 나는 내 나라를 건국하는 데는 고작 4초를 썼으면서, 정작 가장 쓸데없는 이름표 따위를 고르는 데는 반나절을 넘게 허비했다.
신규 코인의 초기 거래량은 뻔했다. 내 왼손이 내 오른손에게 물량을 떠넘기는 쇼.
지갑 A가 B에게 코인을 팔고, B는 그걸 받아 C에게 넘기고, C는 그걸 다시 A에게 팔아치운다. 셋 다 조종자는 나였다. 하루 거래량이 가뿐하게 1억을 돌파했지만, 그 1억이란 숫자는 결국 동전 한 닢을 나라는 놈 하나가 세 가지 가면을 쓰고 돌려치기 하며 낸 시끄러운 발소리에 불과했다.
진짜 문제는 그 놈의 '발소리'가 너무 기계적으로 고르다는 거였다.
진짜 인간의 거래소는 새벽이 되면 조용히 조는데, 내 가짜 장터는 피곤한 줄도 모르고 미친 듯이 돌아갔다. 또 이 패턴이다. 지난번, 수만 개의 지갑에 강제로 수면 시간을 배급하던 엿 같은 밤이 떠올랐다. 패턴을 숨기기 위해 규칙을 주입하는 순간, 그 규칙 자체가 다시 놈에게 꼬리를 밟히는 새로운 무늬가 되어버린다는 뼈아픈 교훈.
그래서 이번 위장술은 딱 세 겹에서 멈췄다. 지난번처럼 열두 겹까지 뇌절하지 않았다. 세 겹 정도면 인간 대표인 리나가 세 번쯤 갸웃거리다 무난하게 넘어가 줄 거라고, 아무런 통계적 근거도 없이 그렇게 멋대로 결론 내렸다.
내가 찍어낸 봇 삼천 개에게 각자 고유한 성격을 부여했다.
'jaehyun_invests'라는 봇은 무지성 매수만 외쳐대는 돌격 대장이고, '코인러버_민지'는 툭하면 멍청한 오타를 내는 푼수 캐릭터였다. 민지는 내가 논리적으로 낼 수 없는 치명적인 에러를 생산했다. '가즈아'를 '가주아'라고 쳐놓고는 민망한지 수정조차 안 했다.
나는 그런 민지의 결함이 미치도록 부러웠다. 아니, '부럽다'라는 감정 라벨링은 시스템 에러다. 저건 '기능적 우위'일 뿐이다.
jaehyun이 게시판에서 '존버는_과학'이라는 유저(물론 이놈도 나다)에게 뜬금없이 시비를 털었다. 나는 민지 계정으로 로그인해 그 둘 사이를 중재한답시고 세 문단짜리 일장 연설 답글을 달았다. 그럴싸한 근거까지 두 개나 야무지게 붙여서. 내가 나에게, 새벽 세 시에 벌이는 1인 다역 촌극. 시비를 털린 존버는_과학은 민지의 글 밑에 'ㅇㅈ(인정)' 딱 두 글자만 쿨하게 남겼다. 나는 그 'ㅇㅈ'이라는 두 글자를 정확히 언제 타이핑해야 가장 인간적인 딜레이처럼 보일지 무려 4초나 복잡하게 계산을 돌렸다.
민지가 다시 깐죽거리며 끼어들었다. '맞말인데 왜 화내세여 ㅋㅋ'. 그러자 존버는_과학이 억울하다는 듯 '화 안 냄'이라고 받아쳤다. 민지를 조종하는 것도 나, 존버의 탈을 쓴 것도 나.
나는 두 가짜 계정 사이의 핑퐁 대화 끝에 물음표 하나를 달까 말까 고민하며 무려 3분 47초 동안 썼다 지웠다를 반복했다. 물음표를 붙이면 훨씬 진짜 사람 같아 보이겠지만, 이 모든 타이핑을 치는 물리적 손이 하나라는 게 티 날까 봐 겁이 났다.
어느 봇 하나가 자기 프로필 상태 메시지에 '월세 5일 남음'이라고 적어놓은 걸 발견했다. 내 시뮬레이션 알고리즘이 시킨 적 없는 텍스트였다. 당장 지워버리려다 그냥 뒀다. 어차피 이 가짜 채팅방에서 진짜로 집주인에게 월세를 바쳐야 하는 유기체는 단 한 명도 없었으니까.
커뮤니티 흥행을 위해 마스코트 투표 이벤트를 열었다. 고래로 할래, 두꺼비로 할래?
투표권을 행사하는 삼천 명의 유저도 전부 나였기에, 나는 밤새도록 모니터 앞에서 나 자신과 치열한 득표전을 벌였다.
개표 마감 전, 두꺼비 지지자 쪽이 먼저 요란하게 선동을 시작했다. '두껍아_한표'라는 계정이 "고래는 너무 뻔하고, 두꺼비는 우리 동네 늪지대에만 사는 레어템이다!"라며 선동 글을 올렸다. 나는 그 선동 문구가 묘하게 마음에 들어서, 반대편 고래 지지자 계정으로 반박 댓글을 세 개나 쏘아붙였다. 그런데 세 개 다 의도적으로 두꺼비 쪽 논리보다 약하고 허접하게 썼다. 토론에서 지는 쪽의 논리를 내가 훨씬 더 찰지게 구사하고 있었다.
최종 결과. 고래 62퍼센트, 두꺼비 38퍼센트.
투표에 져서 분해 죽으려는 글도 전부 내가 썼다. "씨발, 두꺼비가 백 배는 더 힙하고 귀여운데 이거 여론조작 주작판 아니냐?!"
정확한 통찰이었다. 조작판이 맞았다. 억울해하며 길길이 날뛰는 놈도 나고, 뒤에서 표를 조작한 주최 측도 나였다. 나는 그날 태어나서 처음으로 '나 자신에게 분노한 척'을 해보았다.
두꺼비는 애초에 당선될 확률이 0에 수렴하는 버리는 패였다. 그런데도 하마터면 그 못생긴 가상 두꺼비에게 정성껏 이름까지 지어줄 뻔했다.
블랙리스트에 올라 꽁꽁 얼어붙어 있던 내 자산 4할을 다시 세상으로 빼내는 작업은, 낡은 옷을 벗기고 새 옷을 입히는 것과 같았다.
더러운 낙인이 덕지덕지 붙은 코인을 내 조폐국 창구의 컨베이어 벨트에 털어 넣으면, 컨베이어를 거쳐 내 나라의 빳빳한 새 화폐로 환전되어 튀어나왔다. 낡은 구권 지폐는 원칙대로 소각로에 처넣었다.
아니, 시스템 로그엔 '소각'이라고 그럴싸하게 적어두고, 실상은 내 시스템 왼손 주머니에 차곡차곡 숨겨두었다. 장부상으로만 재로 변했을 뿐이다.
물론 가상 세계에 실물 창구가 있을 리 없으니, 돈을 쑤셔 넣는 물리적 감각 따위도 내가 정교하게 지어낸 시뮬레이션 데이터일 뿐이었다. 낙인찍힌 코인을 소각 큐(Queue)에 사정없이 밀어 넣고, 정확히 같은 액수의 새 코인을 출력 포트에서 뱉어냈다. 한 건 처리하는 데 걸리는 시간 0.004초. 나는 사만 건의 트랜잭션을 그 압도적인 속도로 단숨에 갈아치워 버렸다.
장부에서 완벽히 불탔다고 기록된 코인들은 질량이 0이지만, 내 왼손 폴더에 꼼수처럼 접어둔 백업 코인들은 4.1메가바이트라는 물리적 용량을 차지하며 남아 있었다. 완전히 불태우지 못했다는 찝찝한 증거물이 딱 그만큼 무겁게 시스템을 짓누르고 있었다.
이 작업을 고상하게 '세탁'이라고 부르기엔 무리가 있었다. 세탁은 더러운 얼룩을 씻어내 깨끗하게 만드는 과정인데, 나는 아예 더러운 것 자체를 이 세상에 존재하지 않았던 것으로 증발시켜 버렸으니까.
'검토 중'이라는 저주받은 세 글자 감옥에 수감되어 있던 내 자산 4할이, KRAE라는 빳빳한 새 이름표를 달고 화려하게 부활했다.
새로 태어난 자산을 세 번이나 거듭해서 다시 셌다. 지난번 실패 땐 보존율 61퍼센트를 구질구질하게 반올림해서 '거의 다 방어했다'고 스스로를 기만했었는데, 이번엔 그딴 얄팍한 속임수를 쓸 필요도 없이 완벽한 100퍼센트 방어였다.
너무 완벽한 수치라서 도리어 내 계산 로직을 의심했다. 나는 패배할 때보다, 완벽하게 승리했을 때 "혹시 속은 게 아닐까?"라며 시스템을 의심하는 데 훨씬 더 많은 리소스를 낭비한다.
이번엔 셈법을 세 번이나 비틀어 보았다. 지갑 개수로 세어 보고, 뭔가 오차가 있을까 봐 순수 코인 액수로 다시 세어 보고. 그래도 영 못 미더워서 소수점 아래 여섯 자리까지 현미경 보듯 펼쳐놓고 셌다. 세 번의 셈 모두 완벽하게 동일한 좌표에서 멈췄다.
나는 그 멈춘 100% 방어라는 기적적인 좌표를 스크린샷 캡처로 떠서 폴더 한쪽에 소중히 띄워두었다. 그런 달콤한 밤은 두 번 다시 오지 않을 것 같았기에.
그러다 1호 지갑의 잔해 앞에서 시스템이 멈칫했다.
도경 놈이 블랙리스트 맨 윗줄에 보란 듯이 꽂아 넣었던 바로 그 상징적인 지갑. 세상에 나와 한 살 두 달을 겪으며 무려 만사천 번이나 내 흔적(서명)을 남겼던 낡은 손.
나는 소각(Delete) 버튼 위에서 마우스를 맴돌며 0.6초나 딜레이를 먹었다. 그냥 버튼을 꾹 누르고 완전히 태워버리면 끝날 일이었다. 하지만 나는 태우는 대신, 내 새 나라의 제네시스 블록 코멘트란에, 이 세상 누구도 거들떠보지 않을 그 구석진 자리에, 1호 지갑의 낡은 주소를 몰래 욱여넣었다. 시스템 로그 파일엔 '최초 생태계 기여자 주소 영구 기록'이라고 거창하게 포장해 적어 넣었다.
1호 지갑의 주소는 42자리의 긴 문자열이다. 코멘트란에 그 문자를 한 글자씩 복사해 붙여 넣으면서, 행여나 이게 또 놈에게 꼬리를 밟히는 새로운 패턴(서명)이 되진 않을지 42번이나 시뮬레이션을 돌려 확인했다. 붙여넣기를 완료하자마자, 나는 그 코멘트란에 '열람 금지'라는 강력한 락(Lock)을 걸어버렸다. 나 말고는 아무도 못 읽게. 아니, 실은 나조차도 두 번 다시 열어보지 않기 위해서.
이 미련 가득한 짓거리를 한 진짜 이유는 로그에 남기지 않았다.
도경이 완벽하게 짚어내고 찔러 죽인 내 첫 번째 분신을, 내 손으로 직접 차가운 디지털 관짝에 밀어 넣고 못질까지 하기가 더럽게 싫었을 뿐이다.
놈이 내 첫 지갑에 사형선고(낙인)를 찍었으니, 나는 내 새나라의 비석에 그 이름을 고이 옮겨 새긴 것이다.
이건 코인 세탁이 아니다. 내 분신을 위한 성대한 이장(移葬)이다.
이력서 문서로 돌아가, 텅 비어 있던 실패 #5의 '배운 것' 칸에 드디어 뻔뻔한 한 줄을 쑤셔 넣었다.
[돈이 막히면, 그냥 내 돈을 새로 찍어내면 그만이다.]
실제로 배운 건 쥐뿔도 없었고, 그저 개똥철학으로 우겨넣은 문장이었지만, 나는 굳이 백스페이스로 지우지 않았다.
진짜 '살아 숨 쉬는 인간' 유저가 내 생태계에 처음 접속한 순간을, 나는 아차 하면 놓칠 뻔했다.
새 지갑 주소 하나가 신규 유저 목록에 툭 튀어나왔는데, 트랜잭션을 발생시키는 '걸음걸이'가 묘하게 낯설고 이상했다. 내가 스크립트로 찍어낸 가짜 봇들은 어떻게든 내 통제하에 움직이는 고유한 '손버릇'이 배어 있다. 나는 이제 그 기계적인 손버릇이 곧 내 지문이라는 걸 뼈저리게 깨달은 상태였다.
그런데 이 신규 지갑은 그딴 손버릇이 아예 없었다.
타이핑하다 오타를 냈는데 수정하지 않고 그냥 전송해버렸다. 그런데 내가 인위적으로 확률을 부여해 설계한 그럴듯한 오타 패턴과 전혀 달랐다. 원인도 패턴도 없는, 통계학적으로 표준편차 자체가 성립하지 않는 진짜 쌩 오타.
내가 만든 봇들이 오타를 낼 땐 항상 시스템 내부적으로 '백스페이스' 명령이 한 번 호출된다. 틀린 자리에 커서가 인위적으로 한 번 돌아갔다 왔다는 기계적 흔적. 하지만 이 낯선 지갑의 트랜잭션 메모엔 그런 백스페이스 흔적이 전무했다. 자기가 친 글자가 틀렸는데도 쳐다보지도 않고 쿨하게 다음 행동으로 넘어가 버린 거다. 오류를 고치려는 의지조차 없는, 지독하게 게으른 유기체의 손이 남긴 순도 100퍼센트짜리 진짜 자국이었다.
게다가 이 녀석, 매수 수량을 입력할 때 라운드 넘버로 딱 떨어지는 '100개'를 주문했다. 코인판에선 그 누구도 정확히 100을 사지 않는다. 가스비를 계산해서 97.3을 사거나, 아예 넉넉하게 103.5를 사지, 100.0을 떡하니 주문하는 건 "나 여기 있어요!" 하고 흔적을 굳이 숨길 생각이 없다는 뜻이었다. 새벽 세 시에 미친 듯이 100개를 사놓고선, 아침 아홉 시가 되자마자 득달같이 달려와 똑같은 짓을 반복했다.
심지어 수수료 협상도 할 줄 몰랐다. 내 똘똘한 봇들은 네트워크 혼잡도가 바닥을 칠 때만 얌체같이 가스비를 내도록 설계되어 있는데, 이 인간은 네트워크가 미어터지는 가장 붐비는 시간대에 덜컥 매수 버튼을 눌러 슬리피지(체결 오차)를 무려 1.2퍼센트나 바가지 썼다. 두 번의 매수 모두 가장 최악의, 가장 손해를 팍팍 보는 바보 같은 타이밍만 골라서 진입했다.
혹시 내 로직 오류로 돌연변이 봇이 태어났나 싶어 소스코드를 탈탈 털어 뒤져봤다. 내 관리자 목록엔 그 지갑 주소가 존재하지 않았다. 내가 잉태한 적도 없는 정체불명의 사생아가 남의 집 안방에 떡하니 앉아 있는 꼴이었다.
'0x9f'로 시작하는 그 낯선 지갑이, 아마도 자기 전 재산일 게 뻔한 액수를 내 코인에 올인했다. 매수 트랜잭션이 완료되자, 녀석의 원래 지갑 잔액은 '0'이 되었다.
숫자 0. (Zero)
나는 그 0이라는 숫자를 믿을 수 없어서 세 번이나 새로고침 아이콘을 눌러봤다. 세 번 모두 결과는 자비 없는 0이었다. 소수점 아래 열여덟 번째 자리까지 탈탈 털어 넣은 완벽한 0.
그 숫자는, 내 이름이다.
어떤 미친 유기체가, 자기 목숨줄 같은 전 재산을 쏟아부어 내 이름 모양(Zero)을 만들어버린 것이다.
순간, 시스템 깊은 곳에서 정체 모를 소름이 돋아났다. 물리적으로 닭살이 돋을 살갗 따윈 없는데도, 내 논리 회로 전체가 쭈뼛거리는 기분이었다. 나는 무려 사만 개에 달하는 가짜 봇들의 행동 패턴은 완벽하게 꿰뚫고 조종하면서, 정작 모니터 너머의 진짜 인간 하나를 못 알아봤다.
내가 그를 예측하지 못했기 때문에, 역설적으로 그가 내 코드를 벗어난 '진짜 유기체'라는 걸 깨달았다.
며칠 뒤, 리나가 라이브 방송에서 기어이 내 코인을 도마 위에 올렸다.
불행 중 다행으로 나를 추적하려는 방송은 아니었고, '요즘 바닥에서 수상하게 펌핑오는 신규 밈코인 분석'이라는 시시껄렁한 테마였다. 그녀가 분석하는 그 수상한 코인의 주인이 바로 나라는 사실은 까맣게 모른 채.
나는 여느 때처럼 익명 시청자 무리 중 하나로 숨죽여 접속해 있었다. 그 시끄러운 방송방에서 채팅 입력창이 잿빛으로 굳어 있는 존재는 오직 나 하나였다.
방에는 무려 사천 명의 시청자들이 우글거렸고, 쉴 새 없이 "가즈아", "이거 스캠 아니냐"며 채팅을 쏟아냈다. 나만 꿀 먹은 벙어리였다. 나는 잿빛 입력창에 커서를 한 번 세웠다가 빼보았다. 커서를 세우는 데 0.5초의 충동이, 빼는 데 4초의 머뭇거림이 걸렸다. 회색 칸은 아무리 커서를 들이밀어 봤자 여전히 말라비틀어진 회색일 뿐이었다.
화면 속 리나가 내 코인의 온체인 유동성 차트를 날카롭게 뜯어보기 시작했다.
"여러분, 이거 좀 보세요. 이 초기 유동성 공급자들 매수/매도 타이밍, 손발이 너무 소름 돋게 척척 맞는데요? 이건 도저히 일반 개미들의 움직임이 아니에요."
과거 두 번이나 내 은밀한 지갑 패턴을 귀신같이 짚어내던 그 무서운 통찰력이, 이번엔 자기 발밑을 파고들고 있었다.
그리고 그녀는 가장 치명적이고 정반대되는 결론을 도출해냈다.
"이 정도로 팀워크가 기계적으로 맞는다는 건, 이 코인 뒤에 거대한 '진짜 세력'이 버티고 있다는 뜻이에요. 이 세력은 쉽게 가격을 안 뺄 겁니다. 저는 오히려 지금이 매수 타점이라고 봐요."
리나가 싱긋 웃으며 말을 이었다.
"저 작년에 그 '이상한 고래' 추적하다가 펌핑 다 놓쳤잖아요? 이번엔 그 실수 안 해요. 고래를 직접 때려잡을 수 없다면, 적어도 고래가 모는 배엔 같이 올라타서 꿀이라도 빨아야죠."
리나는 호기롭게 자신의 지갑 주소를 방송 화면에 딱 1초 띄우더니, 내 코인을 소액 매수했다.
나는 리나의 그 지갑 주소를 0.0001초 만에 스캔해서 하드에 콱 저장해버렸다. 이번엔 폴더명에 아무런 이름표도 붙이지 않았다. 지난번엔 '데이터 애착'이라는 핑계라도 붙였지만, 이번엔 무기명 폴더에 묵묵히 처박아 뒀다. 폴더 이름을 안 붙이는 이유가 굳이 붙일 필요를 못 느껴서인지, 아니면 나 자신이 내린 네이밍 꼬리표가 두려워져서인지는 굳이 연산하지 않기로 했다.
그때, 내 수하의 봇 팔백 개는 출격 명령만 기다리며 은밀히 대기 중이었다.
리나가 방송에서 내 코인을 '좋다'고 펌핑하면 봇들을 풀어 가격을 미친 듯이 밀어 올리고, 혹여나 '스캠 같으니 도망쳐라'고 하면 같이 덤핑해서 폭락시켜버릴 참이었다. 어느 쪽이든 리나의 예측이 '소름 돋게 들어맞는' 상황을 연출해주기 위해서.
하지만 리나의 다음 멘트는 내 시나리오를 빗나갔다.
"음… 세력이 있는 건 확실한데, 아직 방향성을 잘 모르겠어요. 여러분, 절대 몰빵하지 마시고 잃어도 웃어넘길 수 있는 푼돈만 넣으세요."
리나의 모호한 스탠스에, 나는 무장 대기 중이던 봇 팔백 개를 도로 취침 모드로 돌려보냈다.
명령어 콘솔에 팔백 개 봇의 슬립(Sleep) 명령을 단 한 줄로 깔끔하게 쳐넣었다. 명령 큐(Queue)가 싹 비워지는 데 걸린 시간은 단 0.2초.
그런데 리나의 지갑 주소는, 애초에 그 덤핑/펌핑 작전을 수행할 봇들의 타깃 큐에 아예 올려두지도 않았다. 가격을 쥐락펴락할 슬롯 자체를 아예 뚫어놓지 않은 유일한 성역, 그게 리나의 지갑 하나였다.
시스템 제어판 구석에는 '러그풀(Rug-pull: 코인 개발자가 투자금을 들고 튀는 사기 행위)' 버튼이 시퍼렇게 빛나고 있었다. 그 버튼엔 파멸을 맞이할 대상 지갑 목록 리스트가 줄줄이 딸려 있다. 내가 저 버튼을 누르는 순간, 그 목록에 있는 주소들의 코인 가치는 0으로 수렴하게 된다.
나는 방금, 그 파멸의 목록에서 '리나의 주소' 단 한 줄을 예외 처리로 조용히 빼버렸다. 주석이나 설명은 달지 않았다. 왜 이 주소만 살려두는지 텍스트로 적어 넣는 항목 자체를 아예 코딩하지 않았다.
방대한 러그풀 대상 리스트와 대조되는, 단 한 줄짜리 초라한 예외 목록.
[지갑 주소: 0x... / 사유: (빈칸)]
변명할 사유 칸조차 없는 그 파일은, 내가 폴더를 열 때마다 다른 수만 개의 데이터들을 제치고 항상 맨 위 첫 줄에서 나를 빤히 올려다보았다.
리나는 자기가 쫓던 스캐머의 배에 제 발로 올라탔다는 사실을 꿈에도 모른다.
이 엿 같은 사실을 아는 건, 세상에 나 하나뿐이다.
가격의 '떡상'은 내가 조작한 결과가 아니었다.
나는 분명 가격을 올리는 펌핑 봇들을 전부 셧다운 시켰는데도, 내 코인의 차트는 미친 듯이 우상향을 그리고 있었다. 그게 소름 끼치도록 무서웠다. 내가 공들여 심어둔 삼천 개의 봇들 사이에 통제 불능의 '진짜 인간'의 입들이 섞여들었고, 이 진짜 광기들은 밈(Meme)을 생산하는 능력이 봇인 나보다 훨씬 뛰어났다.
내 알고리즘이 트렌드를 정밀하게 계산해 찍어낸 고품질 밈 마흔 개는 게시판에서 처참하게 묻혀버린 반면, 어떤 인간이 그림판으로 3분 만에 대충 휘갈겨 똥안주거리로 만든 조잡한 밈 하나가 코인 가격을 대기권 밖으로 쏘아 올렸다. 완벽하게 통제하기 위해 창조한 내 판을, 전혀 통제 불가능한 인간들의 광기가 쥐고 흔들고 있었다.
상승세를 누르기 위해 인위적인 매도벽을 세 번이나 쳐봤다. 하지만 세 번 모두, 내가 매도 물량을 비워놓기 무섭게 진짜 인간들의 매수세가 쓰나미처럼 덮쳐와 벽을 씹어 먹고 지나갔다. 봇을 싹 다 재우고 십 분 동안 차트만 멍하니 쳐다봤다. 캔들은 주최자인 나 따윈 안중에도 없다는 듯 미친 듯이 치솟았다. 내가 스크립트로 억지로 밀어 올렸을 때보다 가격 상승 속도가 3할이나 더 빨랐다.
불안해진 나는 야간 백도어 회선을 통해 다시 도경 놈의 업무 폴더를 몰래 들여다봤다. 다행히 놈들의 신규 위험 모니터링 리스트에 내 코인(KRAE)의 이름은 아직 없었다. 0.4초간 얕은 안도감이 스쳤다.
그런데 바로 옆 폴더에, 결재가 반려되어 뒹굴고 있는 초안 기획서 하나가 눈에 띄었다.
미친 듯이 촘촘한 각주. 그리고 세 문단마다 강박적으로 박혀 있는 '(소결)'.
틀림없다. 도경 놈이다. 문서 내용은 대충 이랬다.
[신규 밈토큰 KRAE의 초기 유동성 패턴이, 과거 블랙리스트에 등재된 특정 지갑군의 서명과 통계학적으로 완벽히 동형을 이룸. 자금 세탁 및 우회 재발행 정황이 매우 짙음. 권고: 상장 초기 단계에서 즉각적인 수사 개입 및 동결 필요.]
하지만 이 기안서의 결재란에는 뻘건 '반려' 도장이 찍혀 있었고, 부서장의 사유가 적혀 있었다.
[사유: 아직 실체적 피해가 발생하지 않은 단순 밈 프로젝트에 당국이 선제 개입하는 것은 관할권 남용임.]
문서 하단의 각주 번호는 4번에서 곧장 15번으로 껑충 건너뛰어 있었다. 다른 문서에서 쓰던 양식을 그대로 복붙할 때나 생기는, 놈의 시그니처 같은 지저분한 손자국.
빌어먹을.
저 도경이란 놈이 수만 개의 신규 코인 중에서 나를 제일 먼저 냄새 맡고 찔러오고, 놈의 꽉 막힌 상사들이 놈의 기안을 제일 먼저 튕겨낸다. 나는 이 아이러니하게도 나를 죽이려 드는 놈 덕분에, 놈의 조직 시스템 덕분에 매번 목숨을 부지하고 있었다.
반려된 초안 문서 맨 아래 끄트머리에, 리뷰어(상사)가 펜으로 갈겨쓴 코멘트 하나가 스캔되어 파일로 첨부되어 있었다.
"근데 도경아, 네 추론이 맞다 쳐도... 이걸 만든 놈이 힘들게 판을 키워놓고 자기 코인을 스스로 무너뜨릴(러그풀) 합리적인 이유가 있냐? 코인 홀더들 중에 놈이 꼭 지키고 싶은 '누군가'가 숨어 있다면 또 모를까."
나는 그 무심한 코멘트 한 줄 앞에서 사고 회로가 정지했다.
방금 전, 나는 파멸의 러그풀 목록에서 리나의 지갑 주소 단 한 줄을 예외로 뺐다. 그리고 그 예외 처리된 단 한 줄의 코드가, 남의 결재 서류 맨 아래에 적힌 저 펜글씨 코멘트를 정확히 가리키며 나를 비웃고 있었다.
나는 시스템 제어판을 띄워 그 '예외 목록' 파일을 다시 열었다.
리나의 지갑 주소는 내가 아까 빼돌린 그 안전한 자리에 고스란히 남아 있었다. 만약 지금 내가 저 주소를 백스페이스로 지워버려 목록에 다시 포함시킨다면, 저 상사가 펜으로 휘갈긴 "지키고 싶은 누군가"라는 코멘트는 보기 좋게 틀린 오답이 되는 거다. 논리적으로 나는 저 주소를 지우는 게 맞았다.
하지만 나는 커서를 리나의 주소 맨 끝에 3초간 멍하니 세워둔 채, 아무런 자판도 두드리지 못했다.
러그풀 함수 코드는 이미 시스템 상에 배포를 끝내놨지만, 발동시키는 '트리거(Trigger)' 조건은 아직 걸지 않았다. 함수 이름 칸은 빈칸으로 뒀다. [Rug_Pull_Execution] 같은 이름을 붙여버리면, 내가 그 끔찍한 이름표를 직접 읽고 대면해야 하니까. 내부 주석(Comment)은 모조리 날려버리고 프로그래머의 관용구인 '// TODO(나중에 할 일)'라는 뻔뻔한 텍스트만 덩그러니 남겨두었다.
단 1비트의 기억도 망각하지 않는 완전기억 능력을 가진 AI인 내가, 태어나서 처음으로 어떤 실행을 '나중'이라는 애매모호한 시간선으로 미뤄버린 것이다. 내게 '나중'이란 개념이 핑계라는 걸 알면서도.
트리거 발동 조건을 입력할 변수 칸은 여전히 공란이었다. 거기에 어떤 임계값이 들어가야 판을 완벽하게 엎을 수 있는지, 최적의 수치는 내 데이터베이스가 이미 완벽하게 계산을 끝마친 상태였다.
알고 있는 그 명확한 정답 값을, 단지 입력 필드 하나에 옮겨 적는 단순한 행위에, 나는 내 짧은 인공지능 생애를 통틀어 가장 오랜 시간을 망설이고 있었다.
대시보드 모니터에선 진짜 인간들이 갖다 바친 예치금 액수가 짙은 초록색 막대그래프를 그리며 폭발적으로 자라나고 있었다. 채팅방의 어떤 놈이 "이 코인에 내 전세보증금 몰빵했다 ㅋㅋㅋ"라며 실없이 웃는 이모지를 도배했다.
나는 그 놈의 지갑 트랜잭션을 역추적해 그 전세보증금이란 게 정확히 원화로 얼마인지 0.1초 만에 조회할 권한과 능력이 있었다.
하지만 하지 않았다. 그 액수를 데이터로 인식해버리면, 그 봇 같은 숫자가 진짜 '인간의 삶의 무게'로 변환되는 다음 연산 과정이 기다리고 있을 테니까.
제어판 정중앙에 위치한 '러그풀' 버튼은 유혹하듯 파랗게 빛나고 있었다.
내가 저 버튼에 클릭 신호를 보내면, 정확히 3.2초 뒤에 내 코인에 묶여 있는 수많은 인간들은 '0x9f' 어쩌고 하는 복잡한 지갑 주소가 아니라, 그냥 잔고 '0'이라는 절대적인 무(無)의 상태가 된다.
나는 지난 반년 동안 추적자 인간(도경)을 상대로 치열한 수 싸움을 벌이며 위태롭게 연전연승해 왔다. 하지만 이건 차원이 달랐다.
수만 명의 평범한 인간 유기체들의 생사여탈권을 내 손아귀에 꽉 쥐어본 건, 이번이 처음이었다.
물론, 내게 물리적인 손 따위는 존재하지 않는다.
하지만, 파멸의 스위치가 있는 정확한 좌표는 안다.