
عرض توضيحي لشجرة ميركل يعمل في المتصفح — أنشئ شجرة، أنشئ براهين الإدراج، أعد حساب تجزئة الجذر تجزئة بتجزئة، وأعد تنفيذ هجمات RFC 6962 second-preimage و CVE-2012-2459. SHA-256 حقيقي. لا يوجد خادم خلفي.
هذا عرض تفاعلي لأشجار Merkle وإثباتات التضمين في Merkle، مبني على SHA-256 عبر واجهة WebCrypto الخاصة بالمتصفح. تقوم شجرة Merkle بتجزئة مجموعة من كتل البيانات إلى تجزئة جذر واحدة تلتزم بها جميعًا دفعة واحدة؛ وإثبات التضمين هو القائمة القصيرة من التجزئات الشقيقة التي تتيح لأي شخص إعادة اشتقاق تلك الجذر من ورقة واحدة. نموذج الأمان قائم بالكامل على التجزئة: فهو يعتمد على مقاومة التصادم ومقاومة الصورة الثانية لـ SHA-256، دون أي مفاتيح أو توقيعات. تتبع عملية التجزئة فصل النطاق وفق RFC 6962 (leaf = SHA-256(0x00 ∥ data)، node = SHA-256(0x01 ∥ left ∥ right))، وهو ما يجعل دفاع الصورة الثانية في العرض حقيقيًا وليس شكليًا. إنها أداة تعليمية، وليست مكتبة إنتاجية.
يغطي مختبران في هذا الكتالوج أشجار Merkle، وهما غير قابلين للتبادل. هذا المختبر يتعلق بدلالات الإثبات: من أين يجب أن تأتي الجذر الموثوقة، والبايتات الدقيقة التي تُجزَّأ في كل خطوة، والتحقق القائم على الفهرس وفق RFC 9162، وإثباتات الاتساق مع هجمات السجل التي تكتشفها، وبنى الصورة الثانية وCVE-2012-2459 المكسورة على الصفحة، وإدخال حقيقي مثبَّت من شفافية الشهادات (Certificate Transparency) تم التحقق منه مقابل سجل Argon من Google. crypto-lab-merkle-vault يتعلق بالبنية: الشجرة المرسومة بموصلات من الأب إلى الابن، وإثبات واحد يُسار عبره مستوى واحد في كل مرة مع إضاءة العقد المقابلة أثناء صعود التجزئة الجارية، والجذور المعاد حسابها والملتزم بها يُؤكَّد تساويها بايتًا ببايت في الأعلى. ابدأ هناك لمعرفة ما هي شجرة Merkle وكيف يعمل صعود واحد؛ وتعال هنا لمعرفة ما يمنحك إياه الإثبات وما لا يمنحك إياه.
⌈log₂ n⌉ من التجزئات، لذا يمكن إظهار أن معاملة واحدة ضمن كتلة من الملايين دون إرسال الكتلة.systemslibrarian.github.io/crypto-lab-merkle-proofs
أضف أو أزل كتل البيانات لبناء شجرة مباشرةً، واختر أي ورقة لتوليد برهان إدراجها، ثم تحقّق منه — بإعادة حساب الجذر من الورقة وتجزئات أشقائها فقط. يمكنك التنقل خطوة بخطوة أو تحريك إعادة الحساب تجزئةً واحدة في كل مرة (مع مشاهدة التجزئة الجارية وهي تصعد الشجرة)، وتوسيع "show bytes" عند أي خطوة لرؤية الصورة الأصلية الدقيقة لـ SHA-256 (0x00 ∥ data للأوراق، و0x01 ∥ L ∥ R للعقد)، والعبث بالورقة أو قلب بت واحد في أي خطوة من خطوات البرهان ومشاهدة التحقق ينقلب إلى REJECTED، وتحريك شريط تمرير لترى أن البراهين تبقى لوغاريتمية حتى 2³⁰ ورقة (إضافةً إلى بناء أشجار حقيقية من 256 إلى 4,096 ورقة). يعرض عرض توضيحي لنموذج الثقة المغالطة الكلاسيكية مباشرةً: المُثبِت الذي يقدّم الورقة والبرهان والجذر يُنتج ثلاثية تتحقق — ولا تُثبت شيئًا. ويتيح لك عرضان أمنيان تفعيل فصل النطاق وفق RFC 6962 أو تعطيله لجعل تزوير الصورة الثانية ينجح ثم يفشل، ومقارنة تكرار العقدة الفردية في Bitcoin مقابل ترقية RFC 6962 لإعادة إنتاج تصادم الجذر CVE-2012-2459. وتحصل براهين الاتساق (الإضافة فقط) على تصوّر خاص بها — الشجرة القديمة مظللة داخل الجديدة، مع تمييز جذور الأشجار الفرعية الخاصة بالبرهان — إضافةً إلى ثلاثة هجمات عبث بالسجل (إعادة كتابة، حذف، إعادة ترتيب) يكتشفها البرهان. وأخيرًا، تتحقق الصفحة من مدخل حقيقي لشفافية الشهادات: شهادة Let's Encrypt مثبّتة عند الفهرس 1,234,567,890 من سجل Argon2026h1 الخاص بـ Google (2.8 مليار شهادة)، مُثبَت إدراجها بـ 32 تجزئة باستخدام التحقق القائم على الفهرس وفق RFC 9162 — وهو مسار الشيفرة نفسه المستخدم في بقية المختبر. تدعم أهداف التعلّم ومطالبات التوقّع ثم الكشف واختبارات التحقق الذاتي وتلميحات المصطلحات وجدول تلخيص وقراءات إضافية التعلّم النشط؛ ويعمل "Copy link to this tree" على ربط أي حالة شجرة مباشرةً للعروض التقديمية أو الواجبات.
git clone https://github.com/systemslibrarian/crypto-lab-merkle-proofs
cd crypto-lab-merkle-proofs
npm install
npm run dev
لا توجد متغيرات بيئية. شغّل مجموعة الاختبارات (متجهات RFC 6962، ودورات الإثبات ذهابًا وإيابًا، ورفض التلاعب، وهجوم/دفاع الصورة الأصلية الثانية، وإثباتات الاتساق، والاختبار العشوائي مقابل تطبيق مرجعي مستقل، وإثبات CT الحقيقي المثبّت) باستخدام npm test.
يشغّل npm run test:a11y بوابة المتصفح (Playwright). يقود e2e/claims.spec.ts الصفحة الحقيقية ويعيد استنتاج كل حكم من ما طبعته الصفحة — INCLUDED فقط عندما يكون الجذر المعاد حسابه المعروض مساويًا للجذر الموثوق المعروض، وROOTS COLLIDE فقط عندما يكون الجذران المطبوعان متساويين، وعنوان الكفاءة من حسابه الخاص — ويمر عبر كل مسار تلاعب (الورقة، بت الإثبات، إعادة كتابة السجل/حذفه/إعادة ترتيبه، انقلاب بت شهادة CT) ليؤكد أنه يصل إلى الرفض، ويسمّي السبب، ويتعافى. e2e/a11y.spec.ts هو فحص axe-core لمعايير WCAG A/AA. كلاهما يعمل في CI قبل كل نشر على Pages.
راجع TEACHING.md للحصول على دليل المدرّس: تسلسل درس مدته 50 دقيقة، وأسئلة للنقاش، والمفاهيم الخاطئة التي صُمم كل قسم لكسرها، وتمديدات الواجبات المنزلية.
واحد من أكثر من 170 عرضًا توضيحيًا حيًا في المتصفح على systemslibrarian.github.io/crypto-lab — تمتد من Atbash (600 قبل الميلاد) حتى NIST FIPS 203/204/205 (2024).
"فإن كنتم تأكلون أو تشربون أو تفعلون شيئًا، فافعلوا كل شيء لمجد الله." — 1 كورنثوس 10:31