읽는 데 8분
내부고발 증거: 게시하지 않고 타임스탬프를 남기는 법
봉인된 Label 309 레코드는 암호화된 증거에 타임스탬프를 남기고 선택한 단일 수신자에게 전달할 수 있습니다. 다만 익명성을 보장하지도, 법률·안전 자문을 대신하지도 않습니다. 이 레코드가 무엇을 하고 무엇을 하지 않는지 정리합니다.

봉인된 존재 증명은 파일을 게시하지 않고도 내부고발 증거를 보존할 수 있습니다. 발신자는 증거를 해시하고, 선택한 단일 수신자에게 암호화한 뒤, Cardano에 Label 309 레코드를 게시합니다. 온체인 레코드에는 해시와 래핑된 키만 담깁니다. 평문도, 수신자의 신원도 결코 담기지 않습니다. 이후 수신자는 파일을 복호화하고, 그것이 타임스탬프가 찍힌 약속과 일치하는지 확인합니다.
이로써 증거가 공개된 시점에 존재했고 특정 키 보유자에게 도달했다는 사실이 증명됩니다. 하지만 이것이 발신자를 익명으로 만들어 주지는 않으며, 안전을 지켜 주지도, 법적 보호를 부여하지도, 무언가가 법정에서 채택되리라 보장하지도 않습니다. 봉인된 레코드는 그 자체로 폭로 전략이 아니라 증명과 암호화 계층으로 다루십시오.
이것이 실제로 해결하는 문제는 무엇입니까?
증거는 취약합니다. 파일은 삭제될 수 있습니다. 문서는 편집될 수 있습니다. 스크린샷은 반박당할 수 있습니다. 데이터베이스 내보내기는 다시 생성되어 날짜가 소급될 수 있습니다. 내부고발자는 흔히 특정 파일이 폭로, 보복 주장, 감사, 소송 이전에 존재했음을 보여야 하며, 그것도 증거의 대상이 되는 조직의 선의에 의존하지 않고 보여야 합니다.
동시에, 파일을 그대로 공개하는 일은 위험하거나 불법이거나 단지 옳지 않을 수 있습니다. 무관한 사람, 영업 비밀, 의료 기록을 노출할 수 있기 때문입니다.
봉인된 Label 309 레코드는 증명을 평문에서 분리합니다. 타임라인은 공개되고 영구적일 수 있습니다. 내용은 단일 수신자만을 위해 암호화된 채 유지됩니다. 폭로의 대가를 치르지 않고도 타임스탬프를 얻습니다.
봉인된 증명은 단계별로 어떻게 작동합니까?
흐름은 해시·서명·봉인·공유에서 설명한 것과 동일하며, 민감한 자료에 적용됩니다.
- 발신자가 증거 파일, 또는 여러 파일을 기술하는 증거 매니페스트를 준비합니다.
- 소프트웨어가 평문 해시를 계산합니다.
- 내용을 수신자의 수신 주소로 암호화합니다. 콘텐츠 키는 age 스타일 봉인 봉투에서 수신자의 공개 키로 래핑됩니다.
- 암호문은 콘텐츠 주소 지정 위치(
ar://또는ipfs://)에 저장됩니다. 그곳에는 암호문만 저장되며, 평문은 결코 저장되지 않습니다. - Label 309 레코드가 Cardano에 게시되며, 여기에는 해시와 래핑된 키가 담깁니다. 평문도, 수신자의 공개 키도 담기지 않습니다.
- 이후 수신자가 암호문을 가져와 로컬에서 복호화합니다.
- 수신자가 평문 해시를 다시 계산하고 레코드와 대조합니다.
레코드는 약속이 언제 존재했는지를 증명합니다. 복호화된 파일은 그 약속이 무엇에 관한 것인지를 증명합니다. 두 절반이 모두 필요하며, 두 번째 절반은 키 보유자에게만 비공개로 남습니다.
증거를 블록체인에 직접 올리지 않는 이유는 무엇입니까?
공개 체인은 영구적이며, 일부 증거는 결코 안전하게 공개할 수 없기 때문입니다. 민감한 자료에는 개인 정보, 기밀 사업 정보, 의료 세부 사항, 영업 비밀, 자격 증명, 보안 취약점, 무관한 사람의 이름, 또는 법적으로 제한된 내용이 담길 수 있습니다. 그것이 일단 공개 원장에 올라가면 되돌릴 수 없습니다.
봉인된 증명은 발신자가 정확한 바이트를 노출하지 않고도 그에 약속하게 해 줍니다. 수신자는 내용을 비공개로 받아 검증하는 반면, 나머지 세상은 어떤 봉인된 레코드가 특정 블록 타임에 게시되었다는 사실만 봅니다. 이는 공개 파일 없는 기밀 폭로에서 다룬 것과 동일한 패턴입니다.
수신자는 누구여야 하며, 올바른 상대에게 어떻게 도달합니까?
수신자는 신중하게 고르십시오. 기자, 변호사, 규제 기관, 내부 윤리 부서, 감사인, 시민사회 단체, 또는 신뢰할 수 있는 조사관일 수 있습니다. 핵심 요건은 발신자가 의도된 수신자에게 진정으로 속하는 수신 주소를 가지고 있어야 한다는 점입니다.
수신 주소는 공개 키 문자열일 뿐입니다(age1…처럼 보입니다). 그 자체로는 누가 그것을
제어하는지에 대해 아무것도 증명하지 않습니다. Label 309는 의도적으로 어떤 디렉터리도,
신뢰할 수 있는 키 레지스트리도 명시하지 않습니다. 따라서 민감한 증거의 경우 발신자는
파일을 봉인하기 전에 수신자를 확인하기에서
설명하는 그대로, 양측이 이미 신뢰하는 채널을 통해 주소를 확인해야 합니다.
이를 잘못하면 대가는 실재합니다. 잘못된 키로 보내면 증거는 의도한 사람이 읽을 수 없게 되거나, 의도하지 않은 사람이 읽을 수 있게 됩니다.
발신자는 레코드에 서명해야 합니까?
귀속을 피하는 것이 목표라면, 대개는 아닙니다.
레코드 수준 서명은 레코드를 공개 키에 결속합니다. 이는 회사나 지명된 인물이 책임성을 원할 때 유용합니다. 발신자가 폭로를 신원에 연결하는 것을 피해야 할 때는 위험합니다.
Label 309의 작성자 서명은 언제나 선택 사항입니다. 서명되지 않은 봉인된 레코드도 증거 약속이 공개된 시점에 존재했음을 여전히 증명합니다. 다만 공개적인 작성자 주장을 하지 않으며, 온체인에서 어떤 발신자 신원도 전혀 결속하지 않습니다. 절충은 단순합니다.
- 서명된 레코드는 책임성을 더합니다.
- 서명되지 않은 레코드는 공개적이고 키로 뒷받침되는 귀속을 피합니다.
어느 쪽이 옳은지는 전적으로 법적·안전 맥락에 달려 있으며, 이는 블로그 글이 아니라 법률 자문가와 함께 내려야 할 결정입니다.
봉인된 레코드는 발신자를 익명으로 만듭니까?
아닙니다. 이것은 가장 중요한 한계이므로 단도직입적으로 말할 가치가 있습니다.
서명되지 않은 봉인된 Label 309 레코드는 평문, 수신자의 신원, 그리고 모든 발신자 서명을 체인 밖에 둡니다. 또한 전역 레코드 피드는 수신자를 드러내지 않으므로, 그 안에는 누가 복호화할 수 있는지를 가리키는 것이 전혀 없습니다. 하지만 익명성은 한 레코드의 바이트보다 훨씬 더 많은 것에 좌우됩니다. 레코드 바깥의 모든 것은 여전히 발신자를 노출할 수 있습니다.
- 네트워크 메타데이터와 IP 주소;
- 브라우저 또는 기기 핑거프린트;
- 손상된 기기;
- 결제 흔적;
- 게이트웨이 계정 활동;
- 게시 간의 타이밍 상관관계;
- 파일, 문서, 카메라 메타데이터;
- 문체;
- 운영상의 실수;
- 수신자와 대화하는 데 사용한 채널.
암호 기술은 이런 것들을 해결할 수 없습니다. 이는 전용 소스 보호 도구, 운영 보안, 그리고 법률 자문의 영역입니다. 봉인된 존재 증명을 익명성 시스템으로 다루지 마십시오. 타임스탬프와 암호화의 수단으로 다루고, 나머지 모든 것에는 알맞은 도구를 함께 쓰십시오.
수신자는 파일을 받은 뒤 무엇을 검증할 수 있습니까?
일치하는 개인 키를 가진 수신자는 클레임의 전체 사슬을 검사할 수 있습니다.
- Label 309 레코드가 Cardano에 존재한다는 것;
- 그 레코드의 블록 타임과 확인 맥락;
- 자신의 키가 봉투의 슬롯 중 하나를 열어 콘텐츠 키를 복구한다는 것;
- 다시 계산한 평문 해시가 체인에 약속된 해시와 일치한다는 것;
- 증거가 더 큰 묶음 속 하나의 리프였다면, Merkle 포함 증명;
- 발신자가 서명하기로 선택했다면, 레코드 서명.
일치하는 키가 없는 누구든, 공개 검증기를 포함해, 여전히 레코드가 존재한다는 것, 봉투가 올바른 형식이라는 것, 암호문 URI에 도달할 수 있다는 것을 확인할 수 있습니다. 그들이 할 수 없는 일은 그것을 복호화하거나 무엇에 약속하는지 알아내는 것입니다. 바로 이 분리가 핵심입니다. 체인은 약속을 증언하고, 키 보유자만이 그것이 무엇에 약속하는지를 확인합니다.
봉인된 증명이 증명하지 않는 것은 무엇입니까?
타임스탬프는 의도적으로 좁습니다. 봉인된 레코드는 다음을 증명하지는 않습니다.
- 증거가 진실이라는 것;
- 발신자가 내부고발자 보호법의 보호를 받는다는 것;
- 폭로가 합법이라는 것;
- 수신자가 신뢰할 만하거나, 평문을 기밀로 유지하리라는 것;
- 파일이 적법하게 입수되었다는 것;
- 발신자가 익명이라는 것.
그리고 수신자가 일단 내용을 복호화하면, 그것을 공유하는 일을 막을 수 있는 것은 없습니다. 암호화는 전송 중과 저장 시에 파일을 보호할 뿐, 그 이후 수신자의 재량을 보호하지는 않습니다.
봉인된 레코드가 증명하는 것은 정확하고 유용합니다. 특정 바이트에 대한 타임스탬프가 찍힌 약속이, 특정 키 보유자에게 전달되었다는 사실입니다. 이것은 법률 자문, 언론의 소스 보호 관행, 보안 통신 도구, 또는 안전 계획을 대신하지 않습니다. 이 경계에 관해 더 알아보려면 증명이 증명하지 않는 것을 참고하십시오.
단일 아카이브 대신 매니페스트를 봉인하는 이유는 무엇입니까?
증거는 대개 깔끔한 단일 파일이 아니라 묶음으로 도착합니다. 불투명한 아카이브 하나를 봉인하기보다, 발신자는 다음을 기록하는 증거 매니페스트를 만들 수 있습니다.
- 파일 이름 또는 중립적 식별자;
- 파일별 해시;
- 수집 시각;
- 출처와 보관 연속성(chain-of-custody) 메모;
- 편집(redaction) 상태;
- 수신자 정보;
- Merkle 리프와 포함 증명.
민감한 항목은 그 자체를 암호화할 수 있습니다. 매니페스트는 수신자가 무엇이 폭로되었는지 이해하고 개별 파일을 나중에 검증하는 데 도움을 줍니다. 대규모 집합의 경우, 단일 Merkle 루트가 전체 묶음에 약속하면서도 각 파일을 개별적으로 검사할 수 있게 합니다. 이는 파일 수천 개를 하나의 레코드로에서 다룬 접근법입니다.
조직은 봉인된 폭로를 받기 위해 어떻게 준비해야 합니까?
조직은 사람들에게 민감한 증거를 보내라고 권하기 전에 기초 작업을 해 두어야 합니다. 즉, 수신 주소를 신중하게 게시하고, 필요할 때 교체하거나 폐기하며, 주소 소유권을 끝에서 끝까지 확인하고, 복호화할 수 있는 수신자 시드를 보호하며, 누가 복호화하도록 허용되는지 명확히 정의하고, 봉인된 증거를 어떻게 처리하는지 문서화해야 합니다.
또한 소스에게 그 한계에 대해 정직해야 합니다. 수신 주소는 완전한 보안 제보(secure-drop) 시스템이 아니라, 접수 절차의 한 구성 요소일 뿐입니다. 진정으로 고위험인 폭로를 지원하려는 조직은 암호 기술만이 아니라, 그 주위를 감싸는 법률·보안·운영 절차가 필요합니다.
이것은 나중에 분쟁이 생겼을 때 어떻게 도움이 됩니까?
증거 타임라인을 확립합니다. 나중에 의문이 제기되면, 수신자는 다음을 보일 수 있습니다.
- Cardano 트랜잭션 참조;
- Label 309 레코드와 그 블록 타임;
- 암호화된 페이로드;
- 복호화된 증거;
- 일치하는 평문 해시;
- 묶인 파일의 경우, Merkle 포함 증명;
- 그 약속이 특정 날짜 이전에 존재했다는 사실.
이는 조사, 보고, 법률 검토, 또는 내부 책임성 절차를 뒷받침할 수 있습니다. 그리고 검증에는 트랜잭션 메타데이터, 바이트, 공개 Cardano 탐색기만 있으면 되므로, CardanoWall이 여전히 존재하는지에 의존하지 않습니다. 이것은 누가 옳은지가 아니라 존재와 무결성에 관한 증거입니다. 시간에 민감한 기업 폭로의 관련 패턴은 보안 사고 타임라인에서 다루며, 더 넓은 법정 맥락은 법적 증거와 전자증거개시에서 다룹니다.
짧게 요약하면
봉인된 Label 309 레코드는 내부고발자와 선택한 수신자가 증거를 비공개로 보존하게 해 줍니다. 약속에 타임스탬프를 찍고, 파일을 단일 수신자만을 위해 암호화하며, 그 수신자가 나중에 복호화된 바이트가 공개 레코드와 일치함을 증명할 수 있게 합니다.
이것은 익명성, 합법성, 안전, 진실을 보장하지 않으며, 수신자가 복호화한 것을 유출할 수도 있습니다. 이를 더 넓고 충분히 자문을 거친 폭로 절차 안의 신중한 한 계층으로 쓰십시오. 결코 계획 전체로 삼지 마십시오.
더 읽을거리
- 공개 파일 없는 기밀 폭로
- 파일을 봉인하기 전에 수신자를 확인하기
- 증명이 증명하지 않는 것
- Label 309 표준: label309.org
- 오픈소스 코드, CLI, SDK: github.com/cardanowall