지문은 무엇을 위한 것인가
암호학적 다이제스트는 파일의 바이트에서 계산된 고정 크기 지문이야. SHA-256은 어떤 입력이든 — 4 KB config이든 40 GB 텐서 샤드든 — 64개의 16진 문자로 바꿔. 중요한 성질은 avalanche야: 입력 어디서든 한 비트만 바꾸면 다이제스트가 완전히, 예측 불가능하게, 거꾸로 설계할 수 없는 방식으로 바뀌어. SHA-256이 같은 두 파일은, 이 퀘스트의 모든 실용적 목적에서, 같은 바이트야.
그러면 한 줄에 저장할 수 있는 계약이 생겨. 아티팩트 자체는 거대할 수 있어도. 그 정체성의 증명은 64 문자야. 증명을 노트북에, 이메일에, 데이터베이스에, 스티키 노트에 복사해 — 어디로든 가고 무게가 없어. 이 비대칭이 아카이브 검증의 경제 전부야: 무시할 만한 저장 비용으로 정체성 증명을 얻는 거지.
계약이 말하는 것과 말하지 않는 것
다이제스트는 정확히 하나의 질문에 답해: 이 바이트가 이 다이제스트가 계산된 그 바이트인가? 안전성에 대해서는 아무 말도 안 해(악의적인 파일도 안정적인 다이제스트를 갖지), 품질에 대해서도, 그리고 — 결정적으로 — 그 자체로는 진위에 대해서도 아무 말 없어. 다이제스트는 비교를 닻 내릴 뿐이야. 비교의 참조 쪽은 네가 신뢰하는 어딘가에서 와야 해: 허브가 그 파일에 대해 공개한 LFS 다이제스트, 메이커의 릴리스 노트, 독립 미러의 기록. 무결성은 네 사본을 참조에 묶어. 출처가 그 참조가 신뢰를 받을 자격이 있는지 결정해. 둘은 짝으로 일하고, 어느 쪽도 다른 쪽을 대신하지 않아.
이래서 소유의 네 조건(트랙 1)이 둘을 따로 놨던 거야. 다이제스트 검증은 명령으로 점검하는 조건이고, 메이커 검증은 트랙 3의 리뷰 데스크로 점검하는 조건이야.
두 명령 습관
실용 스킬은 민망할 만큼 작아: 계산하고 비교하기. 두 순간에 붙인 반사작용으로 만들어 — 수집 시점에(전송이 끝나자마자, 다른 게 주의를 흩기 전에 계산) 그리고 정지 상태에(주기적으로, 또는 저장소 이전 뒤에 언제나, 재계산해서 기록된 줄과 비교). 이 습관은 파일당 몇 초들이고, 미래의 모든 "아직도 올바른 파일이야?"를 고고학에서 산수로 바꿔.