플라스틱 의자가 피부에 달라붙는 감촉은 언제나 불쾌했다. 남자는 맞은편 노인의 손등에 난 검버섯을 보며 자신의 차례를 기다렸다. 노인의 손등 위로 홀로그램 숫자가 떠 있었다. 82. 그의 발병일이었다. 노인은 담담한 표정으로 생애 마지막 대출 상품의 금리를 듣고 있었다. 창구 직원의 목소리는 녹음된 음성처럼 단조로웠다.
“고객님의 잔여 생애 가치는 14개월로 산정되었습니다. 이 상품은 고객님의 모든 자산을 담보로, 발병일 이후의 존엄 관리 비용을 선지급하는…”
이현은 고개를 돌렸다. 통합 생애 관리 센터의 공기는 언제나 서늘하고 건조했다. 발병일을 통보받은 사람들이 자신의 남은 시간을 금융 상품으로 교환하는 곳. 그는 이곳의 시스템 점검을 위해 파견된 데이터 기술자였다. 그의 일은 창구 직원이나 상담사가 아니었다. 그는 이 모든 거래를 가능하게 하는 데이터 파이프라인의 말단을 확인하러 온 것이었다.
그는 노인이 앉은 창구 뒤편의 벽에 붙은 단자함으로 다가갔다. 케이블의 연결 상태를 확인하고, 휴대용 단말기로 신호 강도를 측정했다. 녹색 불이 들어왔다. 정상. 모든 것이 프로토콜대로 움직이고 있었다. 단말기 화면에 자신의 정보가 짧게 떴다.
[강이현. 소속: 생애주기예측(LCP) 컨소시엄, 데이터 무결성 3팀. 발병일: 41세. 잔여 기간: 1년 7개월 4일.]
그는 화면을 껐다. 41이라는 숫자는 태어날 때부터 그를 따라다녔다. 초등학교 입학 통지서에도, 첫 직장의 근로 계약서에도, 주택 담보 대출 심사 서류에도 그 숫자는 명시되어 있었다. 사회는 그 숫자를 기준으로 개인의 가치를 매기고, 기회를 분배하고, 위험을 관리했다. 인류가 수십만 마리의 실험쥐를 유전적으로 분석해 얻어낸 완벽한 예언. 아무도 그 예언을 의심하지 않았다.
사무실로 돌아온 이현은 그 예언의 근원이 되는 데이터베이스에 접속했다. 그의 진짜 업무는 이곳, ‘뮤린 연대기 아카이브(Murine Chronology Archive)’에서 시작됐다. 수십 세대에 걸친 실험쥐들의 유전자 염기서열, 발병 기록, 사망 원인이 기록된 거대한 데이터의 무덤. 모든 신생아의 운명을 결정하는 오라클의 원천이었다. 그의 임무는 낡은 아카이브의 데이터를 최신 클라우드 시스템으로 이전하는 작업의 무결성을 검증하는 것이었다.
대부분은 기계적인 작업이었다. 데이터 블록을 하나씩 불러와 해시값을 비교하고, 검증이 끝나면 다음 블록으로 넘어갔다. 지루하고 반복적인 일. 그는 커피가 식어가는 것도 잊은 채 화면의 숫자들이 바뀌는 것을 보고 있었다. 그러다 하나의 파일이 눈에 걸렸다.
[오류: 블록 M-PNS-734. 체크섬 불일치. 동기화 실패.]
드문 일이었다. 데이터는 물리적으로 분리된 3개의 서버에 삼중으로 보관되었다. 단순한 디스크 오류일 가능성은 거의 없었다. 이현은 수동으로 해당 블록의 원본 기록을 열었다. 1970년대에 운영된 ‘평산 생명과학 연구소’의 기록. 특정 유전자 변이를 가진 실험쥐 500마리의 생애 주기 데이터였다.
그는 원본 데이터와 백업 데이터를 나란히 화면에 띄웠다. 대부분의 수치는 일치했다. 하지만 몇몇 개체의 발병 시점 기록이 미세하게 달랐다. 백업 서버 중 하나에 기록된 발병일이 다른 두 서버의 기록보다 늦었다. 차이는 며칠에서 몇 주 사이. 누군가 데이터를 수정한 흔적은 없었다. 로그에는 시스템이 자동으로 동기화하며 발생한 사소한 충돌로 기록되어 있었다.
이현은 프로토콜에 따라 주 서버의 데이터를 기준으로 백업 서버의 기록을 덮어쓰려 했다. 그게 그의 임무였다. 데이터의 일관성을 유지하는 것. 하지만 그는 잠시 손을 멈췄다. 무언가 이상했다. 그는 오류가 난 다른 블록들을 검색했다. 지난 3개월간 그가 처리한 수백만 개의 블록 중 체크섬 불일치 오류는 총 12건. 그리고 12건 모두 평산 연구소의 데이터 블록에서 발생했다.
심장이 조금 빨리 뛰기 시작했다. 우연이라고 하기에는 기묘한 집중성이었다. 그는 12개 블록의 원본 데이터를 모두 추출해 하나의 표로 합쳤다. 그리고 발병일이 불일치하는 개체들의 유전 정보를 교차 분석했다. 패턴이 보였다. 특정 유전자 마커, ‘GRK-7’을 보유한 개체들에게서만 오류가 발생했다.
그는 손가락 끝이 차가워지는 것을 느끼며 키보드를 두드렸다. 평산 연구소의 운영 기록을 파헤쳤다. 수십 년 된 스캔 문서와 빛바랜 보고서들이 화면을 채웠다. 그리고 한 문장을 발견했다. ‘GRK-7 변이 계열은 LCP 컨소시엄 창립 가문의 유전 특성과 99.8% 일치하여 특별 관리 대상으로 지정함. ’
이현은 의자 등받이에 몸을 기댔다. 관자놀이가 지끈거렸다. 컨소시엄의 창립 가문들. 이 사회의 정점에 있는 사람들. 그들의 조상과 유전적 특성이 같은 실험쥐들의 데이터에서만, 그것도 발병일을 늦추는 방향으로만 데이터 불일치가 발생하고 있었다. 이것은 오류가 아니었다.
다음 날부터 이현의 일상은 둘로 나뉘었다. 낮에는 정해진 스크립트에 따라 데이터 이전 작업을 계속했다. 밤이 되면 그는 시스템의 가장 깊은 곳, 접근 권한이 거의 필요 없는 원시 로그 저장소로 숨어들었다. 그는 자신의 흔적을 지우기 위해 임시 노드를 경유하고 IP를 세탁하는 법을 독학했다. 평생을 시스템의 부품으로 살아온 그에게는 낯선 일탈이었다.
그는 평산 연구소의 데이터가 처음 디지털화되던 시점의 로그를 찾아냈다. 35년 전의 기록이었다. 그는 데이터의 흐름을 역추적했다. 물리적 테이프에서 디지털 파일로, 구형 서버에서 신형 서버로, 데이터가 옮겨질 때마다 누군가의 손길이 스쳐 지나간 흔적을 발견했다.
수정은 교묘했다. 한 번에 모든 것을 바꾸지 않았다. 데이터 이전 과정에서 발생하는 수많은 노이즈 속에, 발병일을 몇 주씩 늦추는 작은 변조를 심었다. 수십 년에 걸쳐 수십 번의 시스템 업그레이드를 거치며, 그 작은 변조들이 쌓이고 쌓여 거대한 차이를 만들어냈다. 마치 퇴적층처럼, 거짓이 시간의 지층 속에 단단하게 굳어 있었다.
이현은 변조된 데이터와 원본 데이터를 비교하는 시뮬레이션을 실행했다. 원본 데이터에 따르면, GRK-7 변이를 가진 실험쥐들의 평균 발병 시점은 예측 모델의 결과보다 15년에서 20년은 빨랐다. 컨소시엄 창립 가문 사람들의 발병일은, 조작된 데이터 위에서 다시 계산된 결과물이었다.
그들의 삶은 훔친 시간 위에서 세워진 성이었다.
화면의 코드가 희미하게 떨렸다. 이현은 자신의 손이 떨리고 있다는 것을 알아차렸다. 그는 자신의 유전자 정보를 시스템에 입력했다. 화면에 그의 발병일이 다시 나타났다. 41세. 그는 자신의 유전자 마커 목록에서 GRK-7을 찾아봤다. 없었다. 그는 창립 가문이 아니었다. 그의 발병일은 진짜였다. 아마도.
그때, 등 뒤에서 목소리가 들렸다.
“강이현 씨.”
이현은 심장이 멎는 것 같았다. 천천히 고개를 돌렸다. 데이터 무결성 부서의 총괄 책임자, 선우가 서 있었다. 그는 늘 부드러운 미소를 짓고 있었지만, 그 눈은 아무것도 비추지 않는 유리구슬 같았다.
“요즘 아카이브의 오래된 기록에 관심이 많으신 것 같아서요.”
선우는 이현의 모니터를 보지 않았다. 그저 이현의 얼굴을 보고 있었다. 사무실의 공기가 갑자기 무거워졌다.
“혹시… 업무에 방해가 될 만한 변칙성이라도 발견했습니까?”
이현은 반사적으로 화면을 끄려 했다. 하지만 손가락이 움직이기 전에, 이성적인 판단이 먼저 그의 충동을 가로막았다. 이미 늦었다. 선우는 이현이 무엇을 보고 있었는지 정확히 몰라도, 그가 무언가 ‘발견’했다는 사실은 이미 확신하고 있을 터였다. 여기서 증거를 인멸하려는 듯한 움직임은 의심을 확신으로 바꿔줄 뿐이다.
“네, 부장님.”
이현은 천천히 의자를 돌려 선우를 마주했다. 심장은 발소리를 죽인 암살자처럼 조용히, 그러나 미친 듯이 날뛰고 있었다. 그는 최대한 평온한 표정을 지으려 애썼다. 평생을 시스템의 규칙 안에서 살아온 모범생의 얼굴. 그는 그 가면 뒤에 숨었다.
“오래된 아카이브를 이전하다 보니, 과거 데이터 포맷에서 종종 발생하는 사소한 오류들이 보여서요. 특히 평산 연구소 쪽 데이터에 노이즈가 좀 많은 것 같습니다. 무결성 검증 프로토콜을 좀 더 강화해야 할지 검토 중이었습니다.”
거짓말이었다. 매끄럽고, 논리적이며, 그의 직무에 완벽하게 부합하는 거짓말. 그는 데이터의 ‘노이즈’라는 단어에 힘을 주어 말했다. 거대한 사기극을 사소한 기술적 결함으로 축소하려는 필사적인 시도였다.
선우는 여전히 미소를 띤 채 이현의 책상으로 다가왔다. 그는 모니터를 흘깃 보는 척했지만, 시선은 이현의 눈에 고정되어 있었다. 유리구슬 같은 눈이 이현의 동공에 맺힌 미세한 흔들림을 읽어내려는 듯했다.
“강이현 씨는 역시 우리 팀의 에이스답군. 그런 사소한 변칙성까지 놓치지 않으니까.”
선우는 ‘사소한’이라는 단어를 나른하게 늘이며 말했다. 그는 이현의 어깨를 가볍게 두드렸다. 그 손길은 격려라기보다는 소유권을 주장하는 낙인처럼 차갑고 무거웠다.
“하지만 그건 우리가 신경 쓸 일이 아니야. 평산 연구소 데이터는 이미 수십 년 전에 검증이 끝난 레거시(legacy)일 뿐. 우리의 임무는 과거를 파헤치는 게 아니라, 현재의 데이터를 안전하게 옮기는 거지. 안 그런가?”
“……네, 맞습니다.”
“불필요한 호기심은 시스템의 효율만 떨어뜨릴 뿐이야. 강이현 씨의 발병일까지는 아직 시간이 좀 남았잖나. 그런 소모적인 일에 귀한 시간을 낭비할 필요는 없지.”
협박이었다. 부드러운 목소리로 포장된, 날카로운 칼날 같은 협박. 너의 남은 시간은 우리가 쥐고 있다. 시스템에 순응한다면 1년 7개월 4일을 보장하지만, 거스른다면 그 시간조차 온전하지 못할 것이다. 이현은 등줄기에 식은땀이 흐르는 것을 느꼈다.
선우는 만족스러운 듯 고개를 끄덕였다. 그는 돌아서서 몇 걸음 걷다가, 무언가 생각났다는 듯이 다시 이현을 돌아보았다.
“아, 마침 잘됐군. 자네의 그 성실함을 높이 사서, 새로운 프로젝트를 맡길까 하는데.”
이현은 아무 대답도 하지 못했다. 올 것이 왔다는 예감이 들었다.
“뮤린 아카이브의 실물 데이터, 그러니까 1세대 원본 테이프들이 지하 7층 특수 보관소에 보관되어 있네. 대부분 디지털화되었지만, 극히 일부 민감한 데이터는 여전히 아날로그 상태로만 존재하지. 컨소시엄 상층부에서 그 원본 데이터의 물리적 상태를 직접 점검하라는 지시가 내려왔어. 자네처럼 꼼꼼하고 믿을 만한 사람이 적임자일 것 같군.”
지하 7층. LCP 컨소시엄에서도 극소수의 인원만 출입할 수 있는 데이터의 성역. 이현은 그곳에 대해 소문으로만 들었을 뿐이었다. 그곳은 감옥이었다. 외부와 완벽하게 차단된, 모든 통신이 감시되고 모든 움직임이 기록되는 데이터의 무덤. 선우는 이현에게 감시와 통제가 용이한 독방을 ‘프로젝트’라는 이름으로 제안하고 있었다.
“영광입니다.”
이현은 입술을 움직여 기계처럼 대답했다.
“언제부터 시작하면 되겠습니까?”
“내일부터. 필요한 보안 등급 상향 조정과 장비는 오늘 중으로 처리해 주지. 이제 그만 퇴근하고 푹 쉬게. 내일부터는 바빠질 테니.”
선우는 다시 한번 의미를 알 수 없는 미소를 지어 보이고는 사무실을 나갔다. 자동문이 닫히는 소리가 사형 집행실의 문이 닫히는 소리처럼 무겁게 울렸다. 이현은 한참 동안이나 굳은 채 앉아 있었다. 사무실의 서늘한 공기가 폐부를 찌르는 것 같았다. 그는 방금 자신의 남은 생애를 담보로 한 새로운 계약을 맺은 셈이었다.
퇴근길의 공기는 눅눅하고 무거웠다. 자기부상열차의 창문에 기댄 이현은 빠르게 스쳐 지나가는 도시의 불빛을 무감각하게 바라보았다. 사람들의 머리 위로, 손목 위로, 혹은 그들이 들고 있는 단말기 위로 저마다의 숫자들이 빛나고 있었다. 27, 58, 81, 35… 한때는 그저 통계적 사실로 보였던 숫자들 위로 이제는 거대한 기만의 그림자가 어른거렸다. 저 숫자들 중 진짜는 얼마나 될까. 얼마나 많은 사람들이 조작된 예언 속에서 자신의 삶을 저당 잡힌 채 살아가고 있을까.
그는 자신의 손목을 내려다보았다. 피부 아래 이식된 인식 칩이 희미한 녹색 빛을 뿜고 있었다. 그곳에도 그의 정보가 담겨 있었다. 강이현. 발병일: 41세. 잔여 기간: 1년 7개월 3일. 하루가 또 지나갔다. 선우의 말처럼, 그의 시간은 유한했다. 하지만 이제 그 시간의 의미가 완전히 달라졌다. 이전까지는 주어진 운명을 받아들이는 카운트다운이었다면, 이제는 진실을 파헤치기 위해 싸워야 할 제한 시간이었다.
집에 도착한 이현은 현관에 들어서자마자 곧장 자신의 작업실로 향했다. 그는 낡은 개인용 서버의 전원을 켰다. LCP 컨소시엄의 감시망을 우회하기 위해 수년 전부터 개인적으로 구축해 온 작은 피난처였다. 그는 자신이 발견한 데이터 불일치 패턴과 평산 연구소의 기록, 그리고 GRK-7 유전자 마커에 대한 정보를 암호화하여 서버 깊숙한 곳에 저장했다. 자신이 사라지더라도 누군가는 발견할 수 있도록, 디지털 세상에 남기는 유서이자 증거였다.
작업을 마친 그는 잠시 숨을 골랐다. 이제 어떻게 해야 하는가. 지하 7층으로 들어가는 것은 호랑이 굴로 제 발로 걸어 들어가는 셈이다. 하지만 동시에 기회이기도 했다. 선우가 말한 ‘아날로그 상태로만 존재하는 민감한 데이터’. 어쩌면 그곳에 모든 조작의 시작점, 누구도 감히 디지털화하지 못했던 최초의 원죄가 잠들어 있을지도 모른다.
그때, 암호화된 개인 서버의 터미널 화면에 작은 알림창이 하나 깜빡였다. 외부로부터의 접속 시도. 이현의 심장이 다시 한번 바닥으로 곤두박질쳤다. 벌써 추적당한 것인가? 하지만 알림의 종류가 달랐다. 일반적인 해킹 시도가 아니었다. 마치 비밀번호를 정확히 알고 문을 두드리는 손님처럼, 정해진 프로토콜을 통해 들어온 익명의 메시지였다.
그는 떨리는 손으로 메시지를 열었다. 단 한 줄의 문장이 적혀 있었다.
[쥐들의 연대기는 평산에서 끝나지 않았다.]
익명의 메시지는 이현의 뇌리에 박힌 파편처럼 밤새 그를 괴롭혔다. [쥐들의 연대기는 평산에서 끝나지 않았다.] 다음 날, 지하 7층으로 향하는 엘리베이터의 하강감은 관 속으로 들어가는 것처럼 서늘했다. 특수 보관소의 문이 열리자, 압축된 시간의 냄새가 그를 덮쳤다. 먼지와 오존, 그리고 낡은 자기 테이프의 향. 이곳은 모든 예언이 태어난 자궁이자, 무수한 진실이 묻힌 무덤이었다.
그는 선우가 지시한 대로 1세대 원본 테이프의 물리적 상태를 점검하기 시작했다. 하지만 그의 눈은 공식적인 목록 너머를 훑고 있었다. ‘평산 이후. ’ 실패했거나, 폐기되었거나, 혹은 의도적으로 잊힌 프로젝트. 그는 며칠 밤낮으로 시스템의 구조를 파헤치며 찾아낸, 공식 역사에는 기록되지 않은 프로젝트의 이름을 떠올렸다. ‘화성(Hwaseong) 프로젝트’.
보관소 가장 깊은 곳, ‘자료 가치 불분명’ 라벨이 붙은 캐비닛 안에서 그는 먼지 쌓인 테이프 릴 몇 개를 발견했다. 라벨은 빛이 바래 있었지만, 희미하게 ‘HW-07’이라는 글자가 보였다. 화성 프로젝트. 그는 떨리는 손으로 테이프 하나를 낡은 아날로그 리더기에 걸었다. 모터가 기이한 소음을 내며 돌기 시작했다.
화면을 채운 것은 쥐의 데이터가 아니었다. 인간의 것이었다. LCP 컨소시엄 창립 초기에 ‘익명의 기증자’라는 명목으로 진행된 불법 임상시험의 원본 기록. 그리고 그 중심에는 GRK-7 유전자 마커를 보유한 인간들의 데이터가 있었다. 그들의 진짜 발병일. 38세, 42세, 39세… 예측 모델은 단 하나의 숫자를 가리키고 있었다. 평균 41세.
이현은 숨을 멈췄다. 41년. 그를 평생 옭아맨 숫자. 컨소시엄의 창립 가문들은 자신들의 유전자에 새겨진 ‘41년의 저주’를 발견했다. 그리고 그것을 덮기 위해 시스템을 만들었다. 그들은 자신들의 저주를 평범한 사람들의 통계 속에 희석시키고, 훔친 시간을 자신들의 왕관으로 삼았다. 그의 손가락이 허공에 41을 덧그렸다. 자신과 무관한 저주가 멋대로 새겨놓은 숫자였다.
그는 이 데이터를 외부로 전송할 방법을 찾기 시작했다. 이 낡은 리더기는 중앙 감시망의 사각지대에 있었다. 그는 자신의 모든 지식을 동원해, 이 구식 장비를 컨소시엄의 공공 데이터 방송 시스템에 연결할 비상 루트를 구축했다. 단 한 번의 기회. 모든 것을 되돌릴 수 있는, 혹은 모든 것을 파괴할 수 있는.
“결국 찾아냈군.”
등 뒤에서 선우의 목소리가 들렸다. 그는 언제부터 서 있었는지 모를 그림자처럼 고요했다. 그의 손에는 작은 신경 마비기가 들려 있었다. 선우의 손에 들린 신경 마비기가 차가운 금속성을 빛내며 이현의 선택을 재촉하고 있었다.
“자네에게도 기회를 주지. 강이현. 이 진실을 묻는다면, 자네의 숫자도 바꿔줄 수 있네. 41이 아니라, 82로. 조작된 평온함 속에서 긴 삶을 누리게. 진실은 고통스럽고, 혼란스러울 뿐이야.”
이현은 선우를 돌아보지 않았다. 그의 눈은 화면의 실행(EXECUTE) 프롬프트에 고정되어 있었다. 그는 평생을 시스템이 정해준 숫자 안에서, 예언된 죽음을 향해 걸어왔다. 선우가 제안한 82년의 삶 너머로, 그는 시스템에 갇힌 수억 개의 진짜 시간을 보았다. 그는 선우의 제안이 얼마나 달콤한지 알고 있었다. 하지만 그 단맛의 끝에는 수억 명의 삶을 짓밟은 거짓의 쓴맛이 배어 있었다.
“모든 사람은… 자신의 진짜 시간을 살아야 합니다.”
이현은 엔터 키를 눌렀다. 데이터 업로드가 시작되었다. 수십 년간 잠들어 있던 진실이 빛의 속도로 시스템의 심장을 향해 흘러 들어갔다. 낡은 리더기 헤드가 자기 테이프 위를 긁는, 날카로운 파열음이 울렸다.
선우의 얼굴에서 처음으로 미소가 사라졌다.
“어리석은…!”
보관소 전체에 날카로운 경보음이 울려 퍼졌다. 육중한 방화벽이 내려오기 시작했다. 이현은 통유리 너머의 중앙 관제실을 보았다. 도시 전역의 생애 데이터를 시각화한 거대한 홀로그램 지도. 안정적인 녹색 빛을 뿜어내던 수십억 개의 점들이 미친 듯이 깜빡이기 시작했다. 82가 45로, 67이 38로. 거대한 건물의 외벽에 떠 있던 광고판의 모델, 그의 손목 위로 빛나던 숫자 ‘91’이 ‘43’으로 바뀌는 순간, 도시 전체가 정전된 것처럼 암전했다. 광장의 홀로그램 광고판들은 일제히 꺼졌다가, 무의미한 에러 코드만을 무한히 깜빡이기 시작했다.
이현은 옆구리에 얼음송곳이 박히는 듯한 차가운 충격을 느꼈다. 선우가 쏜 마비기였다. 다리에 힘이 풀리며 그는 차가운 바닥으로 쓰러졌다. 시야가 흐려지고, 모든 소리가 멀어졌다. 그는 마지막 남은 힘을 다해 자신의 손목을 들어 올렸다. 피부 아래 이식된 인식 칩의 녹색 불빛이 깜빡이고 있었다.
[잔여 기간: 1년 7개월 2일.]
숫자들이 흐릿하게 녹아내렸다. 잠시 후, 그 자리에서 새로운 숫자가 희미하게 떠오르기 시작했다. 이현은 그것이 어떤 숫자인지 끝내 확인하지 못했다. 멀어지는 경보음 너머로, 그는 자신의 느려지는 심장 박동 소리를 들었다. 뺨에 닿은 바닥은 단단하고, 차가웠다.