TgWitness / Belgeler

Belgeler / 08

Kanıtların nasıl işlediğini görün

Bir mesaj değişebilir. Gözlemlediklerinizin kaydı, her zaman doğrulanabilir olmalıdır.

Aşağıdaki iki küçük denemeyi inceleyin. Bu denemeler kurgusal mesajlar kullanır, tarayıcınızda kalır ve hiçbir zaman Telegram'a bağlanmaz.

Tek mesaj, üç gözlem

Telegram yeni bir mesaj, bir düzenleme veya bir silme bildirimi gönderdiğinde, toplayıcı uygulama üç ayrı gözlem ekler. Düzenleme, ilk kaydı değiştirmez. Silme bildirimi ise onu silmez.

01 / MESAJIN YOLCULUĞUAçıklayıcı akış
Telegram delivers an update to the collector, which appends a journal record. TelegramToplayıcıGünlük güncelleme →ekle →
GÜNCEL SOHBET GÖRÜNÜMÜ Mesaj #42
Mesaj silindi

Mesaj, sohbet ekranından kayboldu.

GÖZLEM GÜNLÜĞÜ 3 kayıt
  1. 01
    message.new

    Saat 10:00'da buluşalım

    ✓
  2. 02
    message.edited

    Saat 11:00'da buluşalım

    ✓
  3. 03
    message.deleted

    #42 için silme bildirimi

    ✓

Alınan üç gözlem de kayıt defterinde kalır.

Önceden seçilmiş bir kaynak için basitleştirilmiş yol. Operasyonel kayıtlar da gerçek günlüğü paylaşır. Yakalama işlemi, hesabın görebildiklerine ve Telegram'ın sağladıklarına bağlıdır.

Bir silme bildirimi, ne güvenilir bir silme zamanını ne de mesajı silen kişiyi belirtir. Bu değerlerin bilinmemesi, bir gözlem ile bir tahmin arasındaki ayrımı korur.

Bir kaydı değiştirin. Hash değerini takip edin.

Her kayıt, bir önceki kaydın hash değerini içerir. Kayıtın kendi hash değeri, bu bağlantı da dahil olmak üzere olay alanlarını kapsar. Harici olarak tutulan bir kontrol noktası, belirli bir günlük uzunluğunu ve başlangıç hash değerini sabitler.

02 / HASH-CHAIN SANDBOXGerçek SHA-256 · örnek kayıtlar
KAYIT 01Mesaj alındıh₁ = SHA-256(e₁)64 sıfırlı bağlantılar
KAYIT 02Saat 11:00'da buluşalımh₂ = SHA-256(e₂)h₁ etiketini içerir
KAYIT 03Silme işlemi gözlemlendih₃ = SHA-256(e₃)h₂ içerir
BAŞKA YERDE SAKLANAN3 kayıt · başlık h₃Bu sabit sınırı, sağlanan kayıt defteriyle karşılaştırın.

Bir olayın değiştirilmesi, o olayın hash değerini değiştirir. Zincirin yeniden oluşturulması, zincirin başını değiştirir. Zincirin sonunun kaldırılması, zinciri saklanan kontrol noktasından daha kısa hale getirir.

Bu sanal ortam, imzaları değil, hash değerlerini hesaplar. Gerçek doğrulayıcı, her olayın Ed25519 imzasını, sırasını ve bağlantısını da kontrol eder. Yalnızca hash değerlerinin yeniden oluşturulması, güvenilir anahtar altında geçerli imzalar oluşturmaya yetmez.

Asıl kurallar, birkaç satırda

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

C, dokuz olay alanını UTF-8 JSON olarak serileştirir: sıralı anahtarlar, fazladan boşluk yok, ASCII kaçış karakterleri yok ve NaN/sonsuzluk yok. Olayın previous_hash değeri hi−1'dir. Görüntülenen h0, 64 sıfır karakteri anlamına gelir; imzalar 32 ham özet baytını kapsar.

Dokuz alan şunlardır: seq, observed_at, source_at, kind, chat_id, message_id, actor_id, payload ve previous_hash. Bu, TgWitness’in belgelenmiş JSON kodlamasıdır; hash ve imza kendileri hash giriş alanları değildir.

KORUNAN KONTROL NOKTASI
Nexport ≥ Ncheckpoint
hexport[Ncheckpoint] = Hcheckpoint

Sabitlenmiş toplayıcı anahtarının altındaki kontrol noktası imzasını doğrulayın, ardından sınırını doğrulanmış günlükle karşılaştırın. Daha sonraki bir dışa aktarım daha fazla kayıt içerebilir; ancak yine de önceki kontrol noktasıyla uyumlu olmalıdır.

Üç soru, üç farklı kontrol

Eşleşen bir hash zinciri, bütünlük sorusuna yanıt verir. Ancak bu, mesajın Telegram üzerinden tam olarak iletildiğini, mesajın doğruluğunu veya bağımsız olarak güvenilir bir gözlem zamanını kanıtlamaz.

Vakalara ilişkin bilgilerin toplanmasından dava dosyasının hazırlanmasına kadar tüm soruşturma sürecini takip edin.