التوثيق / 08
تعرف على كيفية عمل الأدلة
قد تتغير الرسالة. لكن يجب أن يظل سجل ما لاحظته قابلاً للتحقق.
استكشف تجربتين صغيرتين أدناه. تستخدمان رسائل خيالية، وتبقيان داخل متصفحك ولا تتصلان أبدًا بـ Telegram.
رسالة واحدة، ثلاث ملاحظات
عندما يرسل Telegram رسالة جديدة أو إشعارًا بالتعديل أو الحذف، يقوم برنامج التجميع بإضافة ثلاث ملاحظات منفصلة. لا يحل التعديل محل السجل الأول، كما أن إشعار الحذف لا يمحوه.
لقد اختفت الرسالة من شاشة الدردشة.
- 01✓
message.newنلتقي الساعة 10:00
- 02✓
message.editedنلتقي الساعة 11:00
- 03✓
message.deletedإشعار بالحذف رقم #42
تُحتفظ بجميع الملاحظات الثلاث التي تم تلقيها في السجل.
لا يوفر إشعار الحذف وقتًا موثوقًا للحذف ولا هوية الشخص الذي حذف الرسالة. والحفاظ على عدم معرفة هذه القيم يحافظ على التمييز بين الملاحظة والتخمين.
تعديل سجل. تتبع الهاش.
يحتوي كل سجل على التجزئة (هاش) للسجل السابق. وتغطي التجزئة الخاصة به حقول الحدث، بما في ذلك ذلك الرابط. وتقوم نقطة تفتيش محفوظة خارجيًا بتثبيت طول محدد للسجل وتجزئة الرأس.
h₁ = SHA-256(e₁)روابط إلى 64 صفرًاh₂ = SHA-256(e₂)يتضمن h₁h₃ = SHA-256(e₃)يتضمن h₂h₃قارن هذه الحدود المحددة بالسجل المرفق.يؤدي تغيير أي حدث إلى تغيير هاشه. وإعادة بناء السلسلة يؤدي إلى تغيير رأسها. وإزالة ذيلها يجعلها أقصر من نقطة التحقق المحتفظ بها.
افحص السجل رقم 2 والتجزئات الكاملة
هذا هو نص JSON المرمز بتنسيق UTF-8 بالضبط كما هو موضح في هذا المثال. القيم خيالية؛ وتتطابق الحقول التسعة وتسلسل البيانات مع تنسيق السجل.
- تسجيل محفوظ 2 هاش
- إعادة حساب التجزئة 2 للسجل
القواعد الفعلية، في بضع أسطر
hi = hex(SHA-256(C(ei)))
σi = Ed25519.Sign(sk, unhex(hi))
يقوم C بتسلسل حقول الأحداث التسعة بتنسيق JSON UTF-8: مفاتيح مرتبة، بدون مسافات بيضاء إضافية، بدون هروب ASCII وبدون NaN/اللانهاية. قيمة previous_hash للحدث هي hi−1. تعني القيمة h0 المعروضة 64 حرفًا صفرًا؛ وتغطي التوقيعات 32 بايتًا من الملخص الخام.
الحقول التسعة هي seq وobserved_at وsource_at وkind وchat_id وmessage_id وactor_id وpayload وprevious_hash. هذا هو ترميز JSON الموثق لـ TgWitness؛ ولا يُعد التجزئة والتوقيع في حد ذاتهما حقول إدخال للتجزئة.
hexport[Ncheckpoint] = Hcheckpoint
تحقق من توقيع نقطة الفحص الموجود أسفل مفتاح المجمع المثبت، ثم قارن حدوده مع السجل الذي تم التحقق منه. قد يحتوي التصدير اللاحق على المزيد من السجلات؛ لكن يجب أن يتطابق مع نقطة الفحص السابقة.
ثلاثة أسئلة، ثلاث عمليات تحقق مختلفة
تحقق من التجزئات والتوقيعات باستخدام مفتاح موثوق به منفصل.
02 / الاستمراريةما الذي تم الاحتفاظ به سابقًا؟قارن بين ملف التصدير الموقّع ونقاط التحقق التي يحتفظ بها شاهد آخر.
03 / التسليمهل وصلت هذه الأحداث التجريبية؟مطابقة إجراءات الإرسال والتعديل والحذف الخاضعة للرقابة مع سجل كل حساب.
تُجيب سلسلة التجزئة المطابقة على سؤال يتعلق بالسلامة. وهي لا تثبت إتمام تسليم الرسالة عبر Telegram، ولا صحة الرسالة، ولا وقت الملاحظة الموثوق به بشكل مستقل.
تابع التحقيق الكامل للحساب بدءًا من الحصول على البيانات وحتى إعداد ملف القضية.