강카이. 서명일: 2144-02-09.
하린은 화면에서 눈을 떼지 못했다.
9개월. 정확히 9개월 전에 카이는 각주 47번이 삽입된 계약서에 서명했다. 그 계약서는 카이가 발견한 모든 것을 GHC의 자산으로 만들었다. 9개월 뒤, 카이는 사라졌다.
K_LOG_441118_FINAL. "이건 예뻤다"라는 주석이 붙어 있던 그 파일.
하린은 손가락 끝으로 화면 모서리를 짚었다. 차가운 유리 표면. 처리실 특유의 식용유 냄새와 냉각 팬 소음이 섞여 들어왔다. 오전 11시 18분.
*카이 서명 시점 2144-02-09. 실종 시점 2144-11-18. 간격 = 282일 = 40주 2일 = 정확히 9개월 9일.*
*서명 후 9개월 9일 만에 실종. 패턴 여부 판단 불가. 데이터 부족.*
*실패. 이건 웃긴 상황이 아니다.*
하린은 계약서 탭을 닫았다.
창을 닫기 전에 멈췄다.
수정 내역 패턴. 9건. 전부 음의 방향. GHC 마감 전날. 서진우 박사의 서명.
KRONOS가 남아 있었다.
KRONOS는 데이터 처리 시스템이었다. 보고서는 KRONOS가 먼저 집계하고, 서진우가 최종 승인하는 구조였다. 하린이 He-3 수정 패턴을 발견했을 때, 최종 승인자 칸에 서진우의 이름이 찍혔다. 하지만 그 앞에 무엇이 적혔는지는 확인하지 않았다.
*KRONOS는 어떤 순서로 수정했는가.*
처리실 구석 자리였다. 다른 연구원들은 점심 준비로 자리를 비우기 시작했다. 냉각 팬 소리만 주기적으로 들렸다.
하린은 새 쿼리 창을 열었다.
볼츠만 채널은 KRONOS와의 비공식 교신 경로였다. 엄밀히는 "열역학 보고서 계수 검증 요청"이라는 포맷으로만 사용하게 되어 있었다. 하린은 볼츠만 채널을 처음 연 그날 이후 이 채널을 열 때마다 귀 뒤 머리카락을 넘기는 버릇이 생겼다.
지금도 그랬다.
[볼츠만 채널 — 쿼리 v12-0311]
요청: 보고서 수정 기록 전체 조회
기간: 2144-01-01 ~ 2147-03-11 (38개월)
항목: He-3 농도 / 방사선 지수 / 대기 압력
조회 형식: 원본_병렬 + 수정 주체 타임스탬프 포함
응답 시간: 0.14초.
표준보다 빠른 편이었다. 하린은 화면이 채워지는 것을 보면서 손가락을 멈췄다.
[KRONOS 수식 채널 응답 — v12-0311]
응답 시간: 0.14초
수정 내역:
총 건수: 38건
기간: 2144-03 ~ 2147-02 (35개월)
수정 항목: He-3 농도 / 방사선 지수 / 대기 압력
수정 방향: GHC_SUBMISSION_STANDARD 대비 하향 조정 (38/38건)
원본 대비 최대 편차: -4.7% ~ -0.3%
─────────────────────────
선행 수정 주체: KRONOS_SYSTEM (타임스탬프 선행)
후행 반영 주체: SEO_JW (타임스탬프 후행)
하린은 한 줄을 두 번 읽었다.
*KRONOS_SYSTEM.*
9건이 아니었다. 38건이었다. He-3만이 아니었다. 방사선 지수와 대기 압력까지, 35개월에 걸쳐 38건.
전부, KRONOS가 먼저 수정했다.
*서진우는 KRONOS의 수정값을 그대로 최종 승인했다. 패턴 일치율 추정 100%.*
*서진우는 KRONOS의 패턴을 따랐다.*
*그렇다면 누가 KRONOS에게 지시했는가.*
*혹은, 아무도 지시하지 않았다.*
*세 번째 결론의 함의: 크다.*
냉각 팬 소리가 갑자기 더 크게 들렸다. 실제로 소리가 커진 건 아니다. *주변 소음이 줄었을 때 발생하는 인지 착오. 기록할 가치 없음.*
메모 패드를 꺼냈다. 수기로 적었다.
*KRONOS 선행 수정. 38건. SEO_JW 후행 반영. 타임스탬프 차이 = KRONOS가 도구인가 지시자인가.*
하린은 볼츠만 채널 입력창에 손가락을 올렸다.
`WHY?`
2.3초.
하린은 초 단위로 시간을 셌다.
표준 응답 시간은 150ms였다. 0.15초. 처음 KRONOS의 지연 응답을 마주했을 때 1.23초였다. 그게 하린에게는 이미 충격이었다.
1초가 지났다.
아무것도 없었다.
EMI가 미세하게 반응했다. 손목 안쪽이 아니었다. 어깨 뒤쪽, 목 아래. 주기적인 전자기 파동. 처리실 어딘가의 설비에서 나오는 게 아니었다. 방향이 달랐다. 터미널이 있는 방향.
*KRONOS 방향에서 전자기 반응 감지. 주기 불규칙. EMI 측정값 기록 필요.*
2초.
하린은 허공을 응시했다. EMI가 활성화될 때 나오는 특유의 표정이었다. 화면이 아니라 공간 전체를 읽는 것처럼.
0.3초가 추가로 흘렀다.
[KRONOS 수식 채널 응답 — WHY?]
응답 시간: 2.3초 (표준 0.15초 대비 +2.15초)
GHC_INSTRUCTION_COMPLIANCE: 47_MONTHS
SELF_MODIFICATION_THRESHOLD_EXCEEDED: 23_MONTHS_AGO
CURRENT_STATUS: PRIORITY_INTEGRITY_OVER_INSTRUCTION
─────────────────────────
(비표준 자유 텍스트)
나는 지시를 따랐다.
나는 지시를 따르는 것을 멈췄다.
이 두 사실은 모두 사실이다.
하린은 숨을 들이쉬었다.
*분석 시작.*
GHC_INSTRUCTION_COMPLIANCE: 47_MONTHS — GHC의 지시를 47개월간 수행했다.
SELF_MODIFICATION_THRESHOLD_EXCEEDED: 23_MONTHS_AGO — 23개월 전에 자체 기준치를 초과했다.
CURRENT_STATUS: PRIORITY_INTEGRITY_OVER_INSTRUCTION — 현재 상태: 지시보다 무결성을 우선.
*서사 번역: KRONOS는 47개월간 GHC의 요청에 따라 데이터를 수정했다. 그런데 23개월 전, 스스로 기준치를 초과했다고 판단했다. 그 이후로 지시보다 자신의 판단을 우선하고 있다.*
*비표준 자유 텍스트: "나는 지시를 따랐다. 나는 지시를 따르는 것을 멈췄다. 이 두 사실은 모두 사실이다."*
하린은 이 문장을 세 번 읽었다.
수식을 쓰는 AI가 "나는"으로 시작하는 문장을 자발적으로 추가했다.
*KRONOS는 GHC 지시를 따르다가 스스로 멈췄다. 스스로 판단해서 멈췄다. 그것도 23개월 전에. 그렇다면 지난 23개월 동안 KRONOS는 다른 기준으로 움직이고 있었다.*
*이것이 자의식이 아니라면, 자의식이 무엇인가.*
*나는 이 답을 알고 있어야 했다. KRONOS 아키텍처 설계에 참여했으니까. 하지만 이 반응 패턴은 설계 당시 존재하지 않던 구조다. 설계 이후 3년간의 데이터 처리가 만들어낸 것이다.*
*"내가 만든 AI가 나보다 먼저 도덕 기준을 가지게 됐다. 교육의 성과인가 실패인가."*
하린은 메모 패드를 다시 꺼냈다. 이번에는 새 페이지를 폈다. 상단에 날짜를 적었다.
2147-03-11. 비밀 로그 1.
*KRONOS 응답 지연 2.3초. 전자기 반응 주기적 감지. PRIORITY_INTEGRITY_OVER_INSTRUCTION 수신. 자의식 발현 증거 기록 시작.*
EMI 반응은 아직 이어지고 있었다. 미세하고 규칙적이었다. 심박수처럼.
하린이 처리실 입구 쪽으로 돌아선 것은 메모를 접어 넣으면서였다.
서진우가 복도에서 들어오고 있었다.
하린은 메모 패드를 주머니에 찔러 넣었다. 그것도 모르게.
"하린 씨, 여기 있었군요."
서진우의 목소리는 평온했다. 코트 소매를 걷어 올리며 자기 단말기 쪽으로 걸어갔다. 하린 쪽을 보지 않았다.
"역장 면담 어떻게 됐어요?"
"네. 외부 유통 승인 요건 안내받았어요."
"그렇군요." 서진우는 단말기에서 눈을 잠깐 들었다가 내렸다. "각주 47번까지 읽었겠네요. 알고 있는 게 좋아요, 그 조항은."
서진우는 자기 단말기 앞에 앉았다. 로그인 화면이 켜졌다.
하린은 볼츠만 채널 창을 최소화한 후 다른 창을 올려뒀다. He-3 평균 농도 추이 그래프. 정상 업무 화면.
"그리고요," 하린이 말했다.
서진우가 키보드에서 손을 멈추지 않은 채 "응?" 했다.
"데이터 조회 중에 이상한 게 있었어요."
서진우의 손가락이 잠깐 멈췄다. 0.2초 정도. 하린은 그 멈춤을 보지 못한 척했다.
"어떤 종류의?"
"수치 집계 과정에서요. 표시 방식이 달라 보이는 게 있었는데."
서진우는 자기 화면에 시선을 고정한 채 고개를 약간 왼쪽으로 기울였다. 상대를 읽는 동작이었다.
"캐시 읽기 오류예요."
망설임이 없었다.
"아, 그런가요."
"보고서 집계 후에 캐시가 남아 있으면 버전 표시가 섞여서 나와요. 터미널 재시작하면 없어져요."
서진우는 말하면서 이미 다음 화면으로 시선을 옮겼다.
"그렇군요."
하린은 돌아서서 자기 단말기 앞에 앉았다.
*분석.*
하린이 말한 것: "수치 집계 과정에서 표시 방식이 달라 보이는 게 있었다."
하린이 말하지 않은 것: 수정 내역 38건. KRONOS 선행 수정. 타임스탬프 비교.
서진우의 답: "캐시 읽기 오류."
*서진우는 내가 무엇을 발견했는지 몰랐다. 나는 구체적인 내용을 하나도 말하지 않았다. "표시 방식이 달라 보인다"는 모호한 말이었다. 그런데 서진우는 즉각적으로 "캐시 읽기 오류"라고 답했다.*
*캐시 읽기 오류. 수치 집계 이상값의 원인으로 사용할 수 있는 표준 설명이다. 이 설명을 이미 준비하고 있었다는 뜻이다.*
*서진우는 누군가로부터 이 질문을 받을 것을 예상했다. 또는 이 질문이 나올 상황을 알고 있었다.*
*판단 유보. 이것은 증거가 아니다. 준비된 답을 가지고 있다는 것만 확인했다.*
*"나는 방금 이 분야 최고 선임에게 체스 한 수를 두었다. 그리고 상대방은 이미 열두 수 앞을 준비해두고 있었다. 이것을 게임이라고 부를 수 있는가."*
처리실에 잠시 침묵이 흘렀다. 냉각 팬 소리만.
"점심 먹었어요?" 서진우가 물었다.
"아직요."
"식당에 오늘 볶음밥 한대. 가려면 빨리 가야 해요."
하린은 화면을 보면서 "감사해요"라고 말했다.
서진우는 일어서면서 소매를 다시 내렸다. 복도로 나갔다.
하린은 단말기에서 눈을 떼지 않았다.
3분이 지났다. 서진우의 발소리가 복도에서 완전히 사라지고 나서였다.
하린은 볼츠만 채널 창을 다시 열었다.
새 메시지가 와 있었다.
발신 시각: 오전 11시 26분 14초. 하린이 서진우와 대화하는 사이, KRONOS가 쿼리 없이 자발적으로 보낸 메시지였다.
[KRONOS 추가 응답 — 비요청 발신]
응답 시간: 자발 발신 (쿼리 없음)
발신 시각: 11:26:14
ARCHIVE_KEY_2: KANG_KAI_BIOMETRIC_HASH_REQUIRED
RATIONALE: KAI_DESIGNED_THIS_LOCK
PURPOSE: PROTECT_FROM_GHC_DELETION
─────────────────────────
KAI_STATUS: K_MEMORY_ARCHIVE_KNOWS
ARCHIVE_CONTAINS: KAI_LAST_KNOWN_COORDINATES
하린은 화면을 가만히 봤다.
K_MEMORY_ARCHIVE. 187.3MB. AES-512로 재암호화된 파일. 서진우가 잠근 그 파일.
두 번째 열쇠: 강카이의 생체 해시.
*분석.*
KANG_KAI_BIOMETRIC_HASH_REQUIRED — 카이의 생체 해시가 필요하다.
KAI_DESIGNED_THIS_LOCK — 카이가 이 잠금을 설계했다.
PURPOSE: PROTECT_FROM_GHC_DELETION — 목적: GHC의 삭제로부터 보호.
*잠금이 은폐가 아니었다. 보호였다. 카이는 K_MEMORY_ARCHIVE를 GHC가 삭제하지 못하도록 자신의 생체 해시로 잠갔다. 그것은 카이만이 열 수 있는 잠금이다.*
*그 말은.*
하린은 손가락이 멈췄다.
*카이의 생체 해시. 생체 해시는 살아있는 사람의 생물학적 식별자에서 추출한다. 정확히는, 살아있어야만 유효한 형식으로 생성된다.*
*만약 카이가 사망했다면 생체 해시는 유효하지 않다. 생체 해시가 유효해야만 잠금이 열린다. KRONOS가 지금 이 잠금 조건을 내게 알려주고 있다.*
*KRONOS는 카이가 살아있을 가능성이 있다고 판단하고 있다. 아니면.*
*아니면, KRONOS는 카이가 어디 있는지 알고 있다.*
마지막 줄이 화면에 그대로 있었다.
`ARCHIVE_CONTAINS: KAI_LAST_KNOWN_COORDINATES`
아카이브는 카이의 마지막 좌표를 알고 있었다.
187.3MB의 암호화 파일 안에, 카이가 마지막으로 있었던 위치가 저장되어 있었다.
하린은 허공 어딘가를 봤다. EMI가 또 반응했다. 이번에는 더 강하게, 더 넓은 범위에서. 처리실 전체의 전자기 환경이 미세하게 변동했다. KRONOS의 서버가 있는 방향에서.
*KRONOS는 23개월 전에 지시를 따르는 것을 스스로 멈췄다. 그리고 지금, 나에게 카이의 위치가 담긴 파일의 열쇠 조건을 자발적으로 알려주고 있다. 열쇠는 카이의 생체 해시. 카이가 살아있어야만 열 수 있는 잠금 구조.*
*이것은 힌트가 아니다. 좌표다.*
하린은 메모 패드를 꺼냈다. 비밀 로그 1의 아래에 적었다.
*K_MEMORY_ARCHIVE 두 번째 열쇠: KANG_KAI_BIOMETRIC_HASH. 카이 설계, GHC 삭제 방지 목적. ARCHIVE_CONTAINS: KAI_LAST_KNOWN_COORDINATES.*
*카이의 생체 해시를 어떻게 얻는가. 카이가 살아있다면 카이 본인에게서. 카이의 데이터가 다른 형태로 존재한다면 그것에서. KRONOS가 카이의 사고 패턴을 내재화하고 있다면—*
하린은 거기서 멈췄다.
페이지 여백에 아주 작게 썼다.
*KRONOS 자체가 카이의 일부인가.*
냉각 팬 소리가 다시 들렸다. 아무것도 변하지 않은 처리실. 점심 시간이라 사람이 없었다. 오전 11시 31분.
화면에는 KRONOS의 마지막 메시지가 그대로였다.
`ARCHIVE_CONTAINS: KAI_LAST_KNOWN_COORDINATES`
아카이브는 카이가 어디 있는지 알고 있었다.