수빈의 메시지를 읽은 지 여섯 시간이 지났다.
그 사이 답장은 보냈다. 짧게. '확인 중.'
89.4초. 스톰엔드 베이스 이오에서도 잡혔다. 공식 보고서에는 없다.
하린은 데이터 처리실 단말기 앞에 앉아 그 숫자를 머릿속에서 다시 굴렸다. 폭풍이 Level 1으로 내려가면서 복도 이동은 허용됐다. 처리실에는 새벽 두 시인 지금 아무도 없었다. 천장 냉방 팬이 고르게 돌아가는 소리만 들렸다.
여섯 시간 동안 89.4초 신호 분석을 멈춘 이유는 단순했다.
다른 게 먼저 눈에 걸렸다.
원본 파일에 접근할 수 있는지 먼저 확인했다.
자신의 권한은 RESEARCHER-BETA. 아카이브 구역은 RESEARCHER-ALPHA 이상. 그런데 보고서 원본 저장소는 달랐다. 내부 연구 문서 버전 관리 시스템. 권한 정책이 달랐다. 실수인지 설계인지 모르지만, RESEARCHER-BETA로도 읽기 접근이 열려 있다.
다만 접근 로그는 남는다.
하린은 그 사실을 알면서도 열었다.
파일 이름: `atmo_he3_conc_report_JW_v2.1.4_FINAL.dat`
제출 날짜: 6주 전.
그리고 원본: `atmo_he3_conc_report_JW_v2.1.3_RAW.dat`
생성 날짜: 제출 하루 전.
두 파일을 나란히 열었다. 차이를 추출하는 스크립트는 열 줄짜리였다. 결과는 6초 만에 나왔다.
DIFF RESULT — He-3 농도 비교 (2147-03-11)
원본 v2.1.3_RAW: 0.004312%
제출 v2.1.4_FINAL: 0.004009%
차이: -0.000303%p (원본 대비 약 7% 감소)
헬륨-3 — He-3. 핵융합 연료의 원료 자원. 목성 대기권 채굴의 실질 목표. 이 농도 수치가 GHC 채굴 채산성 계산의 입력값이 된다.
0.3% 낮아졌다.
오차 범위 내였다. 표준 대기 측정 오차는 ±0.5% 수준. 이것만이라면 통계적 보정이라고 볼 수 있다.
하린은 다음 파일을 열었다.
같은 패턴이었다. 원본보다 제출본의 He-3 농도가 낮았다. 0.3%.
세 번째. 네 번째.
여섯 번째 파일을 열다가 멈췄다.
*잠깐.*
귀 뒤 머리카락 대신 단말기 화면 끝을 손으로 짚었다. 계산이 먼저였다.
6건 연속으로 같은 방향. 낮아지는 방향.
전에 봤던 패턴이 떠올랐다. 원본 로그와 공식 보고서 간 0.003% 차이. 방향이 일정했다. 그때 기록해 뒀던 문장이 있었다.
*실수는 방향이 없다.*
단말기 옆에 둔 작은 메모 패드를 꺼냈다. 수식을 손으로 쓰는 습관은 이오 기지 시절부터였다. 종이가 전원을 필요로 하지 않는다는 이유로.
"6건 모두 음의 방향. 확률 = (1/2)^6 = 1.56%."
아직 낮지만 결정적이지 않았다.
일곱 번째 파일.
여덟 번째.
아홉 번째.
총 비교 건수: 9
음의 방향(농도 하향 수정): 9
양의 방향: 0
확률 계산: (1/2)^9 = 0.195%
하린은 볼펜을 놓았다.
0.195%. 이 패턴이 무작위 오차일 확률.
99.8% 이상의 확률로 이건 우연이 아니었다.
*9건. 모두 같은 방향. 모두 0.3% 낮아졌다.*
그리고 수정 시점은 아직 확인하지 않았다.
파일 메타데이터를 뽑는 건 30초가 걸렸다.
타임스탬프 비교가 화면에 올라왔다.
패턴이 즉각적으로 보였다.
수정은 항상 GHC 분기 보고 마감 전날 이루어졌다.
9건. 9번의 GHC 보고 주기. 9번의 수정. 전부 마감 24~36시간 이내.
*He-3 농도를 낮추면 GHC의 채굴 채산성 계산이 바뀐다. 채산성이 낮으면 GHC는 추가 채굴 장비 투자를 줄인다. 반대로 농도가 높으면 투자가 늘어난다. 서진우는 GHC에 낮은 수치를 보고해왔다.*
왜?
GHC가 채굴보다 데이터 독점에 집중하도록 유도하기 위해서? 아니면 다른 이유?
하린은 잠깐 볼펜 끝을 입술에 댔다.
*모른다. 패턴이 있다. 그러나 패턴은 증거가 아니다.*
서진우가 나쁜 사람인지 여부는 이 수치로 결론 내릴 수 없었다. 구조 속에서 선택의 여지가 없었을 수도 있다. 그게 어떤 구조인지는 아직 알지 못했다.
다만 패턴은 분명했다. 그리고 패턴은 기록해 둬야 했다.
화면을 닫으려다가 계약서 탭이 눈에 들어왔다.
원본 파일을 찾다가 함께 열어 뒀던 문서. ARIA 스테이션 연구원 표준 고용 계약서. PDF 78페이지.
닫으려다 멈췄다.
계약서를 처음 받았을 때 각주까지 읽지 않았다. 22세가 78페이지 계약서의 각주를 읽는 경우는 드물었다. 이오 기지에서도 그런 훈련은 없었다.
지금은 달랐다. 데이터 소유권이 어디에 있는지가 실질적 문제가 됐다.
각주를 펼쳤다. 폰트 크기 8pt. 창 확대 배율을 200%로 올렸다.
31번. 32번.
40번부터 내용이 달라졌다.
각주 47번.
*제47조 (데이터 소유권)*
*본 스테이션에서 수행된 연구 활동 중 생성된 모든 데이터, 분석 결과, 파생 자료 및 그 원본 기록은 컨소시엄 협약 제3조 2항에 따라 GHC(Ganymede Holdings Corp.)에 귀속된다. 연구원 개인의 발견이라도 동일하게 적용된다.*
하린은 세 번 읽었다.
천천히. 단어 단위로.
*연구원 개인의 발견이라도 동일하게 적용된다.*
대적점 신호. KRONOS와의 교신 패턴. He-3 보고서 원본 비교 데이터. 수빈과 교환한 89.4초 신호 교차 분석.
전부 GHC 귀속이었다.
하린이 ARIA 스테이션에서 발견한 모든 것이 계약서 서명 순간부터 GHC의 자산이었다.
*잠깐. 그럼 내가 지금 이걸 발견한 것도?*
— 맞다. GHC 귀속이다.
*그럼 서진우의 수정 패턴을 기록한 이 노트도?*
— 종이는 데이터가 아니니 해당 안 된다. 아마.
*아마도.*
하린은 메모 패드를 닫아 주머니에 넣었다. 디지털 파일은 닫았다. 화면 캡처도 남기지 않았다. 접근 로그는 이미 남았다. 더 이상의 기록은 쌓지 않는 게 나았다.
단말기를 끄려다 알림이 떴다.
[내부 메시지 — 역장실 / 박준서]
김하린 연구원.
내일 오전 10시, 역장 집무실로 오십시오.
용건: 업무 관련 확인 사항.
발신 시각: 새벽 2시 17분.
지금 이 순간.
하린은 화면에서 눈을 뗐다. 천장 냉방 팬 소리가 계속 돌아갔다.
*업무 관련 확인 사항.*
누군가 접근 로그를 실시간으로 보고 있다. 각주 47번까지 연결해서 읽는 사람이.
아무것도 확신할 수 없었다. 그러나 새벽 두 시에 이 메시지를 받은 것만은 확실했다.
역장 집무실은 A동 5층이었다. 복도 끝. 창문이 없는 쪽.
오전 10시 정각, 하린이 문을 노크했다. 두 번.
"들어오세요."
역장 박준서는 책상 뒤에 앉아 하린을 기다렸다. 손에 서류를 들고 있었지만 하린이 들어서자 내려놓았다. 시선이 문에서 하린으로 이동했다. 그것 외에는 움직임이 없었다.
50대 초반. 회색 와이셔츠. 소매를 걷지 않고 단추까지 잠가 둔 차림이었다. 책상 위는 정돈됐고, 조명은 밝았다. 창문이 없어서인지 공기가 약간 무거웠다.
"김하린 연구원이군요."
첫 마디가 완전한 주술문이었다.
"네. 역장님."
"앉으세요."
책상 맞은편 의자. 의자는 역장 쪽보다 높이가 낮았다. 의도인지 설계인지.
박준서는 1초 정도 정지했다가 말했다.
"어제 저녁, 내부 연구 문서 아카이브에 접근 기록이 있더군요."
"확인 중인 자료가 있어서요."
"어떤 자료입니까."
"대기 He-3 농도 관련 선행 보고서를 참조했습니다."
틀린 말은 아니었다. 그러나 전부 말하지도 않았다.
박준서는 서류를 다시 들었다가 내려놓았다. 천천히.
"그렇군요." 박준서는 볼펜 끝을 서류 끝선에 나란히 맞췄다. 소리 없이. 하린은 그 손이 서류를 들 필요가 없는 순간에 들린다는 것을 알아챘다.
"각주 47번을 읽었군요."
하린은 뭔가를 말하려다 멈췄다. 이미 알고 있었다. 어떻게 알고 있는지가 문제였다. 계약서 접근 로그도 이미 들킨 셈이었다.
아무것도 확인할 수 없었다. 그러나 역장이 이 한 마디를 꺼낸 것은 확인했다는 신호였다.
"확인 중입니다."
하린의 목소리는 평평했다.
박준서는 가볍게 고개를 끄덕였다. 경고도 협박도 아니었다. 행정적 확인처럼 들렸다.
"규정상으로는, 연구원의 자료 열람 행위가 소유권 조항에 영향을 주지는 않습니다. 다만 계약 조항에 따르면, 연구 활동 중 생성된 자료의 외부 유통은 별도 승인을 요합니다."
박준서가 서류 끝을 한 번 가지런히 정렬했다.
"참고하시길 바랍니다, 김하린 연구원."
그게 전부였다.
박준서는 서류를 다시 들었다. 문 쪽으로 시선을 옮기지 않았다. 그러나 면담이 끝났다는 신호였다. 하린은 그가 서류를 읽고 있는 게 아니라는 것을 봤다. 페이지가 바뀌지 않았다.
하린은 자리에서 일어나 나왔다. 문을 닫고 복도에 섰다.
*직접 위협은 없었다.*
그런데 왜 이렇게 춥지.
집무실로 돌아가지 않고 처리실로 갔다. 오전 11시. 연구원 두 명이 각자 단말기를 보고 있었다.
하린은 구석 자리에 앉아 어제 미완성으로 남겨 둔 타임라인 파일을 열었다.
He-3 수정 9건 × GHC 제출 주기.
어제 도표를 완성했다. 각 수정 건이 GHC 보고 마감 24~36시간 전에 실행됐음을 행별로 정렬했다. 9건 전부. 예외 없이.
이걸 어떻게 써야 할지는 아직 몰랐다. 직접 증거가 아니었다. 패턴이었다. 상관관계가 있다고 인과관계를 주장할 수는 없었다.
*그래도 기록은 기록이다.*
두 번째 컬럼을 추가했다. 각 GHC 분기 보고 문서 번호. 공개 데이터베이스에서 가져올 수 있는 것들이었다.
세 번째 컬럼. 서진우의 부서 내 보고서 제출 기록. 이건 내부 문서였다. 어제 이미 접근 로그가 남았으니 더 접근하는 것은 의미가 없었다.
이미 확보한 것으로만 작업했다.
9건 × 2열 교차 표. 완성하는 데 삼십 분이 걸렸다.
완성된 표를 보면서 하린은 잠시 멈췄다.
*이건 우연이 아니다.*
그러나 동시에.
*이건 아직 증거가 아니다.*
서진우가 왜 이랬는지는 알 수 없었다. GHC와의 계약 때문이었을 수도 있었다. 아니면 서진우 나름의 이유가 있었을 수도 있었다. 카이의 실종 이후 선택의 여지가 없었다고 믿는 사람이라면 어떤 논리를 갖고 있었을까.
그 판단은 지금 내릴 수 없었다.
표를 저장하지 않고 메모 패드에 수기로 옮겼다. 이름은 쓰지 않았다. 날짜와 수치만.
파일을 닫으려는데 서명자 목록 탭이 열려 있다.
어제 계약서를 열었을 때 함께 로드됐던 페이지였다. 연구원 고용 계약서 서명자 현황. 연도별로 정렬된 이름 목록.
하린은 자기 이름을 찾는 게 아니라 닫으려 했다.
그러다 멈췄다.
목록을 스크롤하다가 이름 하나가 시야에 걸렸다.
강카이.
서명일란에 날짜가 있었다.
하린은 한 번 더 읽었다.
강카이. 서명일: 2144-02-09.
카이의 실종 날짜는 2144-11-18이었다. KRONOS 오류 코드들이 기록된 그날.
2144-02-09.
2144-11-18에서 9개월 전이었다.
카이가 이 계약서에 서명했다. 각주 47번이 들어간 이 계약서에. 사고가 나기 9개월 전에.
단말기 화면에 그 줄은 그대로였다.
*강카이. 서명일: 사고 9개월 전.*