이서진은 새벽 3시에 모니터를 끌 수 없었다.
화면 위에서 1,247명의 에이전트가 살아 움직이고 있었다. 각자의 성격, 기억, 편향을 가진 디지털 인간들. 누군가는 아침에 뉴스를 읽고 분노했고, 누군가는 주식을 팔았고, 누군가는 트윗을 올렸다. 이 모든 행동이 서로에게 영향을 미치며, 하나의 세계를 구성했다.
미래를 시뮬레이션하는 오픈소스 엔진. 미로피쉬(MiroFish).
서진은 한국에서 이 엔진을 가장 먼저 포크한 개발자 중 하나였다. 학부생 한 명이 10일 만에 바이브 코딩으로 만들었다는 설명을 읽고 코웃음 쳤는데, 실제로 돌려보고 입을 다물었다.
뉴스 데이터를 넣으면, 에이전트들이 반응한다. 반응이 연쇄하고, 여론이 형성되고, 시장이 움직인다. 72시간 뒤의 세계가 눈앞에 펼쳐진다.
처음에는 재미로 했다. "다음 주 비트코인 가격은?" 시뮬레이션 결과는 4% 하락. 실제로 3.7% 떨어졌다. 소름이 돋았다. 그리고 욕심이 생겼다.
서진이 미로피쉬에 자기만의 모듈을 추가한 건 2주 뒤였다.
원래 엔진은 공개 데이터만 수집한다. 서진은 여기에 비공개 데이터를 주입했다. 기업 내부 슬랙 로그, 유출된 이메일 체인, 다크웹의 거래 데이터.
에이전트의 해상도가 달라졌다. 공개 데이터만으로 시뮬레이션하면 에이전트들은 "일반적인 시민"처럼 행동했다. 비공개 데이터가 들어가자 에이전트들이 특정 인물처럼 행동하기 시작했다. 시뮬레이션이 예측이 아니라 도청에 가까워졌다.
서진은 이걸 "딥피쉬"라고 불렀다. 깊은 물고기. 수면 아래를 보는 엔진.
첫 번째 의뢰인은 증권사 트레이더였다. 대학 동기 박준혁.
"서진아, 다음 주 에이텍반도체 실적 발표 전에 시장 반응 미리 보고 싶은데."
딥피쉬는 에이텍의 내부 메일과 거래처 슬랙 데이터를 기반으로 에이전트를 시뮬레이션했다. 결과: 실적 발표 후 12% 하락. 이유: 중국 공장 가동률 데이터가 공시보다 낮음.
준혁은 공매도를 걸었다. 에이텍은 14% 하락했다. 수익의 10%가 서진에게 왔다. 4,200만 원.
서진은 그 돈을 받으면서, 이게 범죄인지 아닌지 생각했다. 실제 내부자에게 들은 게 아니라, 에이전트 1,247명의 행동 패턴에서 도출된 확률이다. 법적으로 이게 내부자거래에 해당할까?
검색했다. "AI 시뮬레이션 미공개정보 내부자거래 법률." 판례가 없었다. 아직.
의뢰가 늘었다. 정치 컨설팅. 대기업 로비스트. 그리고 다섯 번째 — 서진은 의뢰인의 이름을 몰랐다. 텔레그램으로 연락이 왔고, 암호화폐로 선금이 입금됐다.
"특정 인물의 행동을 72시간 단위로 예측해달라."
서진은 이름을 물었다.
"이름은 필요 없다. 이 사람의 데이터를 보내줄 테니 에이전트로 만들어라. 출퇴근 경로, 통화 기록, 카드 결제 내역, SNS 활동 패턴."
데이터가 도착했고, 서진은 에이전트를 만들었다. 에이전트 #1248. 38세 남성, 서울 강남 거주, 매일 오전 7시 출근, 금요일 저녁 헬스장. 이 에이전트는 미로피쉬 안에서 살아 움직이며, 72시간 뒤의 자신이 어디에서 무엇을 하고 있을지를 보여줬다.
서진은 3일마다 보고서를 보냈다. 의뢰인은 3일마다 보수를 보냈다.
25일째 되던 날, 딥피쉬가 이상한 결과를 내놓았다.
에이전트 #1248의 72시간 시뮬레이션. 금요일 저녁, 헬스장 대신 강남역 부근 지하주차장으로 이동. 토요일 오전, 활동 기록 제로. 일요일, 에이전트가 시뮬레이션 내에서 소멸.
소멸. 에이전트가 사라졌다.
미로피쉬에서 에이전트가 소멸하는 경우는 두 가지다. 데이터 입력이 끊기거나, 시뮬레이션 내에서 그 인물의 존재가 사회적으로 소거되는 경우. 후자는 보통 사망을 의미했다.
세 번 더 돌렸다. 세 번 모두 같은 결과. 금요일 지하주차장. 토요일 무(無). 일요일 소멸.
서진은 의뢰인에게 보고서를 보내지 않았다. 대신 질문을 보냈다. "이 사람이 누구입니까?"
답은 오지 않았다. 대신 보수가 입금됐다. 평소의 3배.
서진은 에이전트 #1248의 데이터를 역추적했다.
결과가 나왔을 때, 서진은 의자에서 일어나지 못했다.
에이전트 #1248은 기자였다. 이름은 최윤호. 경제지 기자. 최근 대기업 비자금 의혹을 취재하고 있었다. 서진의 네 번째 의뢰인 — 대기업 로비스트 — 과 관련된 기업이었다.
서진은 미래를 시뮬레이션한 게 아니었다. 미래를 만드는 데 가담한 것이었다.
의뢰인은 서진의 보고서를 읽으면서, 대상의 동선을 파악하고, 패턴을 분석하고, 가장 취약한 시간대를 특정하고 있었다. 딥피쉬는 범죄를 설계하는 도구로 쓰이고 있었다.
그리고 금요일은 이틀 뒤였다.
서진은 경찰에 신고할 수 없었다.
"AI 시뮬레이션에서 에이전트가 소멸했는데, 이게 실제 살인 예고라고 생각합니다." 이 말을 경찰이 진지하게 받아들일 리 없었다. 증거는 시뮬레이션 로그뿐이고, 시뮬레이션은 법적으로 아무 의미가 없다. 예측은 사실이 아니다.
서진은 최윤호 기자의 연락처를 찾았다. 기사에 달린 이메일.
"금요일 저녁 강남역 부근 지하주차장에 가지 마세요."
메일을 보내고 나서, 서진은 시뮬레이션을 다시 돌렸다. 이번에는 "최윤호가 해당 장소에 가지 않았을 때"의 시나리오.
에이전트 #1248은 살아남았다. 하지만 시뮬레이션 안에서 새로운 에이전트가 활성화됐다. 서진의 데이터와 일치하는 에이전트.
에이전트 #1249. 31세 여성, 서울 마포 거주, 개발자, 매일 새벽까지 모니터 앞에 앉아 있는 사람.
서진의 에이전트가 소멸 예정 목록에 올랐다.
서진은 노트북을 닫았다.
미로피쉬는 미래를 시뮬레이션한다. 하지만 그 세계에 없는 것이 하나 있다. 시뮬레이션은 에이전트가 "예측을 본 뒤 행동을 바꾸는 것"을 계산하지 못한다. 미래를 아는 사람은 미래를 바꾸기 때문이다. 그리고 바뀐 미래는 또 다른 시뮬레이션을 필요로 한다. 무한 루프.
서진은 노트북을 열었다. 딥피쉬 모듈의 모든 코드와 데이터를 선택했다.
삭제 버튼 위에 커서를 올렸다.
시뮬레이션 안에서, 에이전트 #1249의 행동이 변했다. 마치 자기가 지켜보고 있다는 걸 아는 것처럼.
서진은 엔터를 눌렀다.
에이전트 #1249가 소멸했다. 서진 자신이 시뮬레이션 안에서 사라졌다. 감시할 수 없는 사람이 된 것이다.
1,247명의 에이전트가 다시 돌아가기 시작했다. 서진 없이. 최윤호 없이.
미로피쉬는 여전히 미래를 시뮬레이션하고 있었다. 다만 이제 그 미래에 서진은 없었다.
남은 건 현실뿐이었다. 시뮬레이션할 수 없는, 예측 불가능한, 그래서 자유로운.