요약

  • 10월 27일자 개인 인터넷 초안은 서비스 약관과 정책의 모든 버전에 문서명, 버전, URL, 일반 텍스트의 SHA-256을 담은 봉인 기록을 남기고, 과거 파일을 그 URL에서 계속 제공하자고 한다.
  • 기업과 에이전트의 서명 키를 도메인에 묶고 키 이력을 공개하며, 감시자가 서명된 Merkle 트리 검증 지점을 따로 보관한다. 이 기록은 누가 언제 발언했는지 밝힌다. 발언이 사실인지 판단하는 일은 따로 남는다.

현재 페이지는 과거의 증인이 아니다

고객이 한 달 전 거래의 조건을 묻는다. 서비스는 지금 열리는 약관 링크를 보낸다. 링크 자체에는 문제가 없다. 날짜가 틀렸을 뿐이다. 고객에게는 화면 캡처가 있을 수 있고 회사에는 내부 보관본이 있을 수 있다. 그때부터 양쪽은 문구의 내용뿐 아니라 누가 어떤 버전을 언제 보관했는지까지 다투게 된다. 웹사이트의 관리자는 이 싸움에서 보관함을 가장 많이 갖고 있다.

Furkan Yanteri가 2026년 10월 27일 제출한 개인 초안은 4.2절에서 구체적인 보관 규칙을 제시한다. 서비스 약관과 정책의 각 버전마다 문서명, 버전 식별자, 해당 버전의 URL, 일반 텍스트의 SHA-256을 담은 봉인을 남긴다. 봉인된 모든 버전은 나중에도 그 URL에서 제공해야 한다. 새 약관을 게시할 권한은 그대로다. 이전 파일을 같은 주소에서 다른 내용으로 바꾸면 해시가 어긋나고, 파일을 지우면 기록이 가리키는 원문이 사라졌다는 사실이 드러난다.

해시는 과거 문장을 저장해 주는 마법 상자가 아니다. 옛 파일이 있어야 다시 계산해 비교할 수 있다. URL은 파일을 가져올 위치를 제공한다. 공개 로그는 버전과 해시의 연결이 그 시점에 존재했다는 기록을 제공한다. 해시만 남고 파일이 없으면 조항을 읽을 수 없다. 파일만 있고 당시의 공개 기록이 없으면 뒤늦게 만든 문서라는 반론을 피하기 어렵다. 회사가 직접 작성한 개정 요약은 설명 자료일 수 있어도 이 세 가지 증거를 대신하지 못한다.

IETF Datatracker는 이 문서를 I-D Exists 상태의 개인 인터넷 초안으로 표시한다. 이 공식 자료는 IETF 표준 채택이나 이름이 나온 서비스의 실제 분쟁을 입증하지 않는다. 초안이 제안하는 것은 분쟁이 생기기 전부터 과거의 문구를 누가 검증할 수 있게 할지에 대한 설계다.

서명 키의 명함에도 유효 기간이 있다

서명할 대상이 기기마다 달라지면 검증은 시작부터 흔들린다. 초안 3.1절은 RFC 8785를 바탕으로 제한된 정규 JSON을 사용한다. 키를 재귀적으로 정렬하고 불필요한 공백을 없애며 값의 종류를 제한한다. 3.2절은 그 정해진 바이트에 Ed25519 서명을 붙인다. RFC 8032가 서명 방식의 원형이다. 두 검증자가 같은 바이트를 보게 하는 절차이지, 틀린 문장을 참으로 만드는 절차는 아니다.

공개 키만 보면 그 키가 어느 기관의 목소리인지 알 수 없다. 초안은 기업 또는 에이전트의 키를 _humancollab DNS TXT 레코드로 도메인에 연결한다. 첫 연결에는 HTTPS 파일도 사용할 수 있지만 기존 키를 바꿀 때는 DNS 증명이 필요하다. 옛 키는 다른 도메인에 재사용할 수 없고, 공개 이력에는 각 키가 처음 서명한 로그 항목의 번호가 남는다. 도메인의 통제권이 바뀌었는데도 화면에 같은 ‘검증됨’ 딱지만 보이는 상황을 피하기 위한 시간표다.

DNS를 통제하는 사람은 이 제안에서 발언할 키를 지정할 수 있다. 그 사실만으로 직원이 회사를 법적으로 구속할 권한이 있는지, 에이전트가 고객 대신 거래할 수 있는지, 서명한 내용이 정확한지는 결정되지 않는다. 초안 6절의 표도 선을 분명히 긋는다. 유효한 서명과 도메인 연결은 발언 주체를 가리킨다. 감시자가 본 검증 지점에 포함됐다는 증거는 공개 기록에 나타난 시점을 가리킨다. 다른 독립 자료와 충돌하면 그 발언자를 추궁할 근거가 생긴다. 기록은 책임의 주소를 남긴다.

같은 회사가 보관한 두 개의 거울

초안 4.3절의 로그는 RFC 9162에 맞춘 해시 규칙을 쓰는 Merkle 트리다. 포함 증명과 일관성 증명을 제공하고, 트리의 검증 지점에 서명하며, 공개한 루트의 시간을 OpenTimestamps로 고정한다. 감시자는 새 검증 지점을 이전에 본 것과 대조하고 자기 사본을 보관한다. 운영자는 서비스 기반 시설 밖에서 감시자 하나를 운영해야 하고 다른 사람도 감시자를 운영할 수 있다.

‘밖에서 보관한다’는 조건이 핵심이다. 회사가 웹사이트, 옛 약관 파일, 로그 화면, 모든 검증 지점을 한 관리자 계정 아래 두면 투명성 화면도 회사가 관리하는 또 하나의 과거가 된다. 트리 크기가 같은데 루트가 다른 두 개의 유효한 검증 지점은 로그가 서로 양립할 수 없는 역사를 보여 줬다는 증거다. 하지만 둘을 각각 보관한 사람이 있어야 발견할 수 있다. 독립 감시자는 개통식 사진을 찍으러 오는 손님이 아니라 분쟁 때 과거의 영수증을 꺼낼 보관인이다.

특정 거래의 약관을 따질 때는 네 자료가 이어져야 한다. 당시의 일반 텍스트, 버전과 URL과 해시가 있는 봉인, 외부 감시자가 보관한 검증 지점에 대한 포함 증명, 그리고 발언 당시 도메인과 키의 이력이다. 이 네 가지는 어떤 문구가 언제 누구 이름으로 공개됐는지 확인하게 한다. 고객이 그 문구를 실제로 읽었는지, 에이전트에게 위임이 있었는지, 조항이 해당 거래에 어떤 효력을 갖는지는 별도의 사실과 판단을 요구한다. 적어도 그 판단을 오늘의 문구로 시작하는 오류는 막을 수 있다.

서비스 운영자가 새 규칙을 만드는 것은 일상이다. 논쟁의 대상은 새 규칙을 만들면서 옛 규칙의 유일한 보관인까지 계속 맡아야 하느냐다. 옛 문구를 외부에서 검증할 수 있으면 고객은 기억을 부탁하지 않고 기록을 요구할 수 있다.

출처