# 증거가 어떻게 활용되는지 확인하기

Canonical page: https://phishdestroy.github.io/TgWitness/ko/docs/concepts/

메시지는 변경될 수 있습니다. 여러분이 확인한 내용의 기록은 언제든지 검증 가능해야 합니다.

아래의 두 가지 간단한 실험을 살펴보세요. 이 실험들은 가상의 메시지를 사용하며, 브라우저 내에서만 실행되고 텔레그램에 연결되지 않습니다.

## 한 가지 메시지, 세 가지 관찰점

텔레그램에서 새 메시지, 수정 알림, 삭제 알림이 전송되면 수집기는 세 가지 별도의 기록을 추가합니다. 수정 알림은 첫 번째 기록을 대체하지 않습니다. 삭제 알림도 해당 기록을 지우지 않습니다.

01 / 메시지 이동 경로예시 순서

Telegram delivers an update to the collector, which appends a journal record. · 텔레그램 · 수집기 · 저널 · 업데이트 → · 추가 →

현재 채팅 보기 메시지 #42

메시지가 삭제되었습니다.

해당 메시지가 채팅 화면에서 사라졌습니다.

관찰 일지 3건의 기록

1. 01

   `message.new`

   10:00에 만나요

   ✓
2. 02

   `message.edited`

   11:00에 만나요

   ✓
3. 03

   `message.deleted`

   #42에 대한 삭제 공지

   ✓

수신된 세 가지 관찰 사항 모두는 기록부에 그대로 남아 있습니다.

이미 선택된 소스 하나에 대한 간소화된 경로. 운영 기록도 실제 저널을 공유합니다. 캡처 내용은 해당 계정이 볼 수 있는 내용과 텔레그램이 제공하는 내용에 따라 달라집니다.

삭제 알림에는 신뢰할 수 있는 삭제 시간이나 메시지를 삭제한 사람이 명시되지 않습니다. 이러한 정보를 알 수 없게 함으로써, ‘관찰’과 ‘추측’ 사이의 구분이 유지됩니다.

## 기록을 변경하세요. 해시를 추적하세요.

각 기록에는 이전 기록의 해시가 포함됩니다. 해당 기록의 해시는 해당 링크를 포함한 이벤트 필드 전체를 포괄합니다. 외부에 보관된 체크포인트는 특정 저널 길이와 시작 해시를 고정합니다.

02 / HASH-CHAIN SANDBOX실제 SHA-256 · 기록 예시

기록 01**메시지 수신됨**`h₁ = SHA-256(e₁)`64개의 0으로 구성된 링크

기록 02**11:00에 만나요**`h₂ = SHA-256(e₂)`h₁ 포함

기록 03**삭제 감지됨**`h₃ = SHA-256(e₃)`h₂ 포함

다른 곳에 보관됨**기록 3건 · 헤드 `h₃`**이 고정된 경계를 제공된 기록부와 비교해 보십시오.

이벤트를 변경하면 해시가 변경됩니다. 체인을 재구성하면 체인의 선단이 변경됩니다. 체인의 끝부분을 제거하면 체인의 길이가 보존된 체크포인트보다 짧아집니다.

**기록 2번 및 전체 해시값 확인**

이 예시에서 해시 처리된 정확한 UTF-8 JSON 데이터입니다. 값은 가상의 것이며, 9개의 필드와 직렬화 형식은 저널 형식과 일치합니다.

```

```

저장된 기록 2의 해시

``

기록 2의 해시 재계산

``

이 샌드박스는 서명이 아닌 해시를 계산합니다. 실제 검증기는 모든 이벤트의 Ed25519 서명, 시퀀스 및 링크도 함께 확인합니다. 해시만 재구성해서는 신뢰할 수 있는 키 하에서 유효한 서명을 생성할 수 없습니다.

## 실제 규칙을 몇 줄로 요약하면 다음과 같습니다.

해시 + 서명

h0 = 064
hi = hex(SHA-256(C(ei)))
σi = Ed25519.Sign(sk, unhex(hi))

**C**는 9개의 이벤트 필드를 UTF-8 JSON 형식으로 직렬화합니다: 정렬된 키, 여분의 공백 없음, ASCII 이스케이프 없음, NaN/무한대 없음. 이벤트의 `previous_hash`는 hi−1입니다. 표시된 h0는 64개의 0 문자를 의미하며, 서명은 32바이트의 원시 다이제스트를 포함합니다.

9개의 필드는 `seq`, `observed_at`, `source_at`, `kind`, `chat_id`, `message_id`, `actor_id`, `payload` 및 `previous_hash`입니다. 이는 TgWitness에 [문서화된 JSON 인코딩](https://phishdestroy.github.io/TgWitness/ko/docs/reference/evidence/#event-canonicalization) 방식이며, 해시 및 서명 자체는 해시 입력 필드가 아닙니다.

유지된 체크포인트

Nexport ≥ Ncheckpoint
hexport[Ncheckpoint] = Hcheckpoint

고정된 수집기 키 아래에 있는 체크포인트 서명을 확인한 다음, 그 경계를 검증된 저널과 비교하십시오. 이후에 내보낸 파일에는 더 많은 기록이 포함될 수 있으나, 이전 체크포인트에서는 여전히 일치해야 합니다.

## 세 가지 질문, 세 가지 다른 확인 절차

[01 / 무결성**이 기록이 변경되었나요?** 별도로 신뢰할 수 있는 키를 사용하여 해시값과 서명을 검증합니다.](https://phishdestroy.github.io/TgWitness/ko/docs/exports/)[02 / 연속성**이전에 어떤 내용이 유지되었나요?** 서명된 내보내기 파일을 별도의 증인이 보관한 체크포인트와 비교해 보십시오.](https://phishdestroy.github.io/TgWitness/ko/docs/witness/)[03 / 제공**이 테스트 이벤트들이 도착했나요?** 각 계정의 기록부와 전송, 수정, 삭제 작업을 대조하여 일치 여부를 확인합니다.](https://phishdestroy.github.io/TgWitness/ko/docs/cases/)

일치하는 해시 체인은 무결성 여부에 대한 의문을 해소해 줍니다. 그러나 이는 텔레그램 메시지의 완전한 전달 사실, 메시지의 진실성 또는 독립적으로 신뢰할 수 있는 관찰 시점을 입증하지는 않습니다.

정보 수집부터 사건 자료 정리까지, [계정 전체에 대한 조사](https://phishdestroy.github.io/TgWitness/ko/docs/cases/) 과정을 따라가 보세요.
