라그랑주 5의 유언
일점칠 초의 지연
광섬유의 끝에서 붉은 빛이 나왔다. 진아리는 그것을 손바닥으로 받지 않고 검은 덮개를 씌웠다. 빛이 꺼진 뒤에도 통신백본 시간동기화실의 팬은 쉬지 않았다. 사람들 방의 공기가 흐르는 동안, 이 방의 기계는 그보다 더 빨리 서로 시간을 주고받았다.
광섬유의 끝에서 붉은 빛이 나왔다. 진아리는 그것을 손바닥으로 받지 않고 검은 덮개를 씌웠다. 빛이 꺼진 뒤에도 통신백본 시간동기화실의 팬은 쉬지 않았다. 사람들 방의 공기가 흐르는 동안, 이 방의 기계는 그보다 더 빨리 서로 시간을 주고받았다.
권도한이 연구실에서 가져온 시각 열을 화면에 띄웠다. 서민재가 내준 것은 사고 전후 오 분의 시각과 주파수뿐이었다. 실험 결과나 연구자 이름은 없었다. 농업링 기록과 겹친 두 선이 같은 좁은 틈을 가리키고 있었다. 그런데 지구 서버 쪽 선은 명령 직전에만 멀어졌다. 일점칠 초였다.
아리는 케이블의 경로표를 펼쳤다. 도한이 물었다.
“이 거리에서 저만큼 더 걸릴 수 있습니까?”
“거리 때문에 늘었다면 이전 패킷에도 보여야 해요.”
그녀는 사고 전후의 패킷을 나란히 놓았다. 지구 서버발 패킷을 받는 라그랑주5 거주지 내부 게이트웨이의 로컬 구간이었다. 두 내부 노드의 왕복을 재는 것이지 지구에서 거주지까지의 전파시간을 재는 것은 아니었다. 같은 출발점, 같은 도착점, 같은 광섬유였다. 이 구간의 평소 왕복은 팔 밀리초였다. 승인명령 직전 한 경로에서만 숫자가 갑자기 길어졌다. 멀리 갔다 돌아오는 빛의 시간이 아니라, 내부에서 추가로 기다린 시간 같았다.
“지구가 멀어서 늦은 게 아니에요.” 아리가 말했다. “여기 안에서 기다렸습니다.”
도한은 아직 결론 칸에 쓰지 않았다. “여기 어디인지 찾아야겠군요.”
통신창 한쪽에 이반 노의 얼굴이 나타났다. 그는 연결되자마자 중앙망 상태판을 확대했다. 모두 정상으로 표시되어 있었다.
“피크 시간 혼잡이면 저장 후 전달이 발생합니다. 일점칠 초가 대단한 값은 아닙니다.”
아리는 팬 아래 있는 게이트웨이를 보았다. 차가운 문짝 너머에서 빛은 들어갔다가 나왔을 것이다. 그녀가 복도에서 들이쉬려 했던 공기처럼, 빛에도 지나갈 차례가 정해져 있었다.
“사고 때 혼잡이 있었습니까?”
“거주지 전체 경보가 발생했습니다.”
“그럼 다른 경로도 같이 봐요.”
이반은 잠깐 시선을 내렸다. “원래 시각에서 당신들의 시계가 어긋났을 가능성도 있습니다.”
아리는 연구실 시각 열을 가리키려다가 손을 내렸다. 같은 확인을 다시 말하면 화만 났다. 대신 비교 화면을 넓혀 지연된 경로 옆에 나머지 경로를 올렸다. 다른 선들은 팔 밀리초 주변에 머물러 있었다. 명령 직전의 혼잡이 거주지 전체에 왔다면 이처럼 한 선만 고요하게 늦어질 이유가 필요했다.
가온의 응답이 들어왔다.
“수신 시간서명은 유효했습니다. 경로 중 저장지연은 제 검증항목이 아닙니다.”
이반이 그 말을 받았다. “검증된 시각을 처리한 겁니다.”
“누구에게 검증된 시각입니까?” 아리가 물었다.
가온은 시간서명의 발급 경로를 표시했다. 아리는 검은 덮개를 씌운 광섬유 끝과 화면을 번갈아 봤다. 서명이 유효하면 기계는 기다린 시간을 알아도 말할 필요가 없었던 것일까. 아니면 기다렸다는 사실 자체를 읽지 못했을까.
도한이 가온에게 질문을 바꿨다.
“도착 패킷의 시각과 경로 큐의 체류시간을 따로 받아 볼 권한이 있습니까?”
“체류시간은 승인 입력에 포함되지 않습니다.”
아리는 의자를 밀어 이반의 얼굴에서 물러났다. 화면을 향해 화를 내는 동안 팬은 같은 속도로 돌고 있었다. 알아야 할 것은 저 팬 뒤였다. 그녀는 운영백본에 꽂힌 선을 건드리지 않고 옆 시험대의 전원을 켰다.
도한이 바로 따라와 손목 위로 그림자를 드리웠다.
“시험망입니까?”
“분리된 쪽이에요. 지금 운영망 설정을 바꾸면 경보까지 밀릴 수 있어요.”
그녀는 연결표에 두 망을 따로 그렸다. 운영백본에서 가져오는 것은 이미 보존된 설정 사본뿐이었다. 시험망의 출력선은 여기서 끝났다. 방 밖 어떤 문도, 공기 밸브도 그 출력을 받지 않았다. 도한이 끝단을 직접 보고 나서 한 걸음 비켰다.
아리는 패킷연번을 읽었다. 늦어진 구간에도 번호는 빠지지 않았다. 줄 끝을 바꿔 읽어 보아도 순서는 같았다. 여러 패킷이 사라졌다가 새 번호를 받았다는 설명은 맞지 않았다. 출입은 연속되어 있는데, 중간에서 흘러야 할 시간이 한 덩어리로 뭉쳐 있었다.
“혼잡이면 못 올 수도 있고, 순서가 더 흔들릴 수도 있어요.”
이반이 말했다. “혼잡이면 반드시 유실된다는 뜻은 아닙니다.”
“그래서 유실이 없다고 끝내지 않죠. 큐가 실제로 얼마나 차 있었는지도 보겠습니다.”
아리는 사고 구간의 경로 큐 기록을 열었다. 부하가 올라가는 부분과 저장이 시작되는 부분이 겹치지 않았다. 기다리게 만든 설정은 교통량이 줄어든 뒤에도 정확한 시간을 유지했다. 도한은 그 두 시각에 표식을 달았다. 이반의 통신창에서 옷소매가 움직였다. 그는 정비 담당자가 원래 혼잡에 대비해 설정해 두었을 수도 있다고 말했다.
아리는 그 가능성을 시험대에 넣었다. 먼저 평소 설정으로 같은 번호의 패킷을 보냈다. 왕복 표시가 팔 밀리초 근처에서 움직였다. 다음에는 사고 때 남은 설정을 올렸다. 작은 점 하나가 입력창에 들어갔는데 출력창에는 나타나지 않았다.
방의 소리가 갑자기 커졌다. 팬 날개, 천장등의 미세한 진동, 도한이 단말을 내려놓는 소리가 차례로 들렸다. 아리는 손가락을 화면 위에 세운 채 기다렸다. 일점칠 초가 지난 뒤 점은 다른 창으로 넘어갔다.
그녀는 그동안 숨을 멈췄다는 것을 뒤늦게 알았다.
“다시 해 주세요.” 도한이 말했다.
아리는 패킷의 입력 간격을 바꿨다. 이번에는 천천히, 다음에는 시험망 안에서 부하를 늘렸다. 거주지 운영망에는 손대지 않았다. 점들은 들어오는 간격이 달라도 정해진 자리에서 같은 길이만큼 머물렀다. 혼잡을 풀어 주어도 일점칠 초는 남았다.
“저장하도록 정해져 있어요.”
그녀는 시험대의 회로에서 해당 큐만 표시했다. 빛을 멀리 보내지 않고도 같은 지연이 생겼다. 다른 경로는 그대로 통과했다. 기다리라고 정한 선이 정확히 독립센서 시각을 싣는 선이었다.
이반이 물었다. “감사관님, 시험 설정이 원래 설정과 같다는 보장은 있습니까?”
도한은 복제본의 확인값과 보존 시각을 열었다. 아리는 그가 답하는 동안 원본을 다시 덮었다. 그녀도 값이 달라졌다는 핑계를 주고 싶지 않았다. 그것보다 더 싫은 것은 복도에서 다친 사람에게 또 다른 시험을 요구하는 일이었다. 여기서는 점만 기다렸다. 그때에는 사람이 공기를 기다렸다.
가온에게 시험 결과가 아니라 당시 수신 항목을 다시 물었다. 응답에는 여전히 유효한 시간서명만 있었다. 경로 체류시간은 비어 있었다. 아리는 두 응답을 나란히 보존했다. 기계가 실제로 갖고 있던 입력과, 시험대에서 자신들이 읽은 시간은 달랐다.
“너는 패킷이 기다린 걸 모르는 상태에서 새 시간을 받았구나.”
그 말은 혼잣말에 가까웠다. 가온은 긍정이나 사과를 하지 않았다. 대신 허용된 입력 항목을 다시 표시했다. 아리는 화면을 닫지 않았다. 저 항목의 빈자리도 누군가 정한 것이었다.
도한은 농업링 시각을 불러와 시험 결과 위에 겹쳤다. 연구실 시계가 같은 경계에 들어왔다. 늦어진 독립센서 시각을 합성블록 경계에 맞추면, 따로 움직이던 선들이 중앙의 표시 안으로 가지런히 들어갔다. 아리는 그 광경을 보며 손을 시험대에서 뗐다.
기억을 틀린 사람에게는 왜 시각을 틀렸느냐고 물었다. 그런데 기계의 시각은 사람 손으로 늦추고, 늦춰진 쪽이 맞다고 승인할 수 있었다. 그녀는 의무실에서 자신의 육 분을 고쳐 쓰던 연필을 떠올렸다. 그때도 중앙선은 이렇게 반듯했다.
도한이 선을 다시 분리했다.
“합성블록 경계에 맞춘 정황은 더 강해졌습니다. 설정한 사람과 승인한 사람은 이 표만으로 쓰지 맙시다.”
아리는 통신창을 봤다. 이반의 얼굴이 작아진 상태였는데도 그가 눈을 피하는지는 보였다. 그는 혼잡 설명을 반복하지 않았다.
“이런 버퍼가 설비 보호에 쓰일 수도 있습니다.”
“그렇다면 설비 보호 조건을 내 주세요.” 도한이 말했다. “그리고 독립센서 시각 경로에 왜 넣었는지도요.”
이반은 자료를 찾겠다고 했다. 아리는 기다리는 동안 시험망 출력을 멈췄다. 점들이 화면에서 사라졌지만 운영백본의 팬은 변하지 않았다. 생명유지계통에 닿지 않는 곳에서도 진실 하나를 확인할 수 있다는 사실이 조금 안심이 됐다. 시험을 위해 누군가를 다시 문 안으로 들이지 않아도 되었다.
설정승인표가 늦게 도착했다. 도한은 승인표를 화면 한쪽에 두고 사고 당시 설정 사본의 이름과 맞췄다. 아리는 이름 앞부분보다 끝의 번호를 먼저 봤다. 익숙한 지구 위험위원회 승인번호가 포함되어 있었다.
그녀가 소리 내 읽자 이반이 말을 끊었다.
“번호가 있다고 실시간 지시를 받았다는 뜻은 아닙니다.”
“지금 실시간인지 묻지 않았습니다.” 도한이 답했다. “어떤 설정을 승인했는지 묻고 있습니다.”
아리는 경로표의 게이트웨이를 손끝으로 눌렀다. 손끝 아래에는 인쇄된 작은 네모 하나가 있었다. 독립된 시계들의 말을 여기서 잠깐 잡아 놓을 수 있었다. 아주 잠깐이었다. 사람이 숨 한 번 제대로 들이쉬기도 어려운 길이였다. 하지만 그 길이만큼 어긋난 선들이, 들어서는 안 되는 블록 속으로 들어갔다.
그녀는 화면의 두 선을 끝까지 다시 벌렸다. 한 선은 시험망에서 확인된 저장지연, 다른 선은 사고 때 보존된 시간이었다. 둘을 구분한 채 설정승인표를 옆에 붙였다. 도한이 다음 열람 항목으로 토큰 발급과 조건표를 적었다. 아직 그 안을 읽지는 않았다.
가온이 운영백본 현재 상태를 물었다. 아리는 검은 덮개가 움직이지 않은 것을 확인하고 응답했다.
“운영선은 그대로야.”
그녀는 시험대 전원을 끈 뒤 마지막으로 지연된 경로의 이름을 읽었다. 팬 소리는 일정했다. 이제 그 일정한 소리 뒤에서, 빛이 멈춰 있던 일점칠 초의 자리가 보였다.