# ببینید مدرک چگونه کار می‌کند

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

یک پیام می‌تواند تغییر کند. ثبت آنچه مشاهده کرده‌اید باید قابل بررسی باقی بماند.

در ادامه دو آزمایش کوچک را بررسی کنید. این آزمایش‌ها از پیام‌های ساختگی استفاده می‌کنند، در مرورگر شما باقی می‌مانند و هرگز به تلگرام متصل نمی‌شوند.

## یک پیام، سه مشاهده

وقتی تلگرام یک پیام جدید، یک ویرایش و یک اطلاعیه حذف را ارسال می‌کند، ابزار جمع‌آوری سه مشاهدهٔ جداگانه را اضافه می‌کند. ویرایش، رکورد اول را جایگزین نمی‌کند. اطلاعیه حذف نیز آن را پاک نمی‌کند.

۰۱ / مسیر پیامسکانس نمایشی

Telegram delivers an update to the collector, which appends a journal record. · تلگرام · مجموعه‌کننده · مجله · به‌روزرسانی → · ضمیمه →

نمای گفتگو کنونی پیام شمارهٔ ۴۲

پیام حذف شد

پیام از نمای چت ناپدید شده است.

دفترچهٔ مشاهدات ۳ رکورد

1. 01

   `message.new`

   ساعت ۱۰:۰۰ ملاقات کنید

   ✓
2. 02

   `message.edited`

   ساعت ۱۱:۰۰ ملاقات کنید

   ✓
3. 03

   `message.deleted`

   اطلاعیه حذف برای #۴۲

   ✓

تمام سه مشاهده دریافت‌شده در دفترچه شواهد باقی می‌مانند.

مسیر ساده‌شده برای یک منبع از پیش انتخاب‌شده. سوابق عملیاتی نیز دفترچه واقعی را به اشتراک می‌گذارند. ضبط بستگی به آنچه حساب کاربری می‌تواند ببیند و آنچه تلگرام ارائه می‌دهد دارد.

یک اطلاعیهٔ حذف نه زمان حذف قابل‌اعتماد را ارائه می‌دهد و نه شخص حذف‌کنندهٔ پیام را. ناشناخته نگه‌داشتن این مقادیر تمایز بین مشاهده و حدس را حفظ می‌کند.

## یک رکورد را تغییر دهید. هش را دنبال کنید.

هر رکورد حاوی هش رکورد قبلی است. هش خود رکورد، فیلدهای رویداد از جمله آن لینک را پوشش می‌دهد. یک نقطهٔ کنترل خارجی، طول مشخصی از مجله و هش سرآغاز آن را تثبیت می‌کند.

۰۲ / محوطهٔ آزمایشی زنجیرهٔ هشSHA-256 واقعی · سوابق نمونه

ثبت ۰۱**پیام دریافت شد**`h₁ = SHA-256(e₁)`پیوندها به ۶۴ صفر

ثبت ۰۲**ساعت ۱۱:۰۰ ملاقات کنید**`h₂ = SHA-256(e₂)`شامل h₁

ثبت ۰۳**حذف مشاهده شد**`h₃ = SHA-256(e₃)`شامل h₂

در جای دیگری نگهداری می‌شود**۳ رکورد · سر `h₃`**این مرز ثابت را با دفترچهٔ ارائه‌شده مقایسه کنید.

تغییر یک رویداد، هَش آن را تغییر می‌دهد. بازسازی زنجیره، سر آن را تغییر می‌دهد. حذف انتها، آن را کوتاه‌تر از نقطهٔ کنترل باقی‌مانده می‌کند.

**رکورد ۲ و هش‌های کامل را بررسی کنید.**

این دقیقاً همان JSON با هش UTF-8 است که در این مثال آمده است. مقادیر فرضی هستند؛ نه فیلد و سریال‌سازی با فرمت دفترچه شواهد مطابقت دارد.

```

```

هَش دوم رکورد ذخیره شده

``

هاش رکورد ۲ مجدداً محاسبه شد

``

این sandbox هش‌ها را محاسبه می‌کند، نه امضاها را. اعتبارسنج واقعی همچنین امضای Ed25519، توالی و لینک هر رویداد را بررسی می‌کند. بازسازی صرف هش‌ها نمی‌تواند امضاهای معتبری تحت کلید مورد اعتماد ایجاد کند.

## قوانین واقعی، در چند خط

هَش + امضا

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

**C** نُه فیلد رویداد را به‌عنوان JSON با کدگذاری UTF-8 سریالی می‌کند: کلیدهای مرتب‌شده، بدون فضای خالی اضافی، بدون فرار ASCII و بدون NaN/infinity. `previous_hash` رویداد برابر hi−1 است. h0 نمایش‌داده‌شده به معنای ۶۴ کاراکتر صفر است؛ امضاها ۳۲ بایت خام هش را پوشش می‌دهند.

نه فیلد عبارتند از `seq`، `observed_at`، `source_at`، `kind`، `chat_id`، `message_id`، `actor_id`، `payload` و `previous_hash`. این [رمزگذاری JSON مستندشده](https://phishdestroy.github.io/TgWitness/fa/docs/reference/evidence/#event-canonicalization) TgWitness است؛ خود هش و امضا فیلدهای ورودی هش نیستند.

نقطه کنترل حفظ‌شده

Nexport ≥ Ncheckpoint
hexport[Ncheckpoint] = Hcheckpoint

امضای نقطهٔ کنترل را زیر کلید جمع‌آورندهٔ سنجاق‌شده تأیید کنید، سپس مرز آن را با دفترچهٔ تأییدشده مقایسه کنید. خروجی بعدی ممکن است رکوردهای بیشتری داشته باشد؛ اما همچنان باید با نقطهٔ کنترل قبلی مطابقت داشته باشد.

## سه سؤال، سه بررسی متفاوت

[۰۱ / یکپارچگی**آیا این رکورد تغییر کرده است؟** هش‌ها و امضاها را با یک کلید قابل اعتماد جداگانه تأیید کنید.](https://phishdestroy.github.io/TgWitness/fa/docs/exports/)[۰۲ / تداوم**چه چیزی قبلاً نگهداری شده بود؟** مقایسهٔ یک خروجی امضا‌شده با نقاط کنترلی نگهداری‌شده توسط یک شاهد جداگانه.](https://phishdestroy.github.io/TgWitness/fa/docs/witness/)[۰۳ / تحویل**آیا این رویدادهای آزمایشی دریافت شدند؟** همگام‌سازی اقدامات کنترل‌شده ارسال، ویرایش و حذف با دفترچهٔ هر حساب کاربری.](https://phishdestroy.github.io/TgWitness/fa/docs/cases/)

یک زنجیره هش تطبیق‌یافته به یک پرسش یکپارچگی پاسخ می‌دهد. این زنجیره تحویل کامل تلگرام، صحت یک پیام یا زمان مشاهده مورد اعتماد مستقل را اثبات نمی‌کند.

[تحقیقات کل حساب](https://phishdestroy.github.io/TgWitness/fa/docs/cases/) را از مرحلهٔ به‌دست‌آوردن تا بستهٔ پرونده دنبال کنید.
