أشجار Merkle: سلامة المعاملات على نطاق واسع
أنشئ أشجار Merkle وولّد براهين الإدراج بكفاءة
أشجار Merkle: سلامة المعاملات على نطاق واسع درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
المشكلة: التحقق من المعاملات بكفاءة
تحتوي كتلة Bitcoin على نحو 2000 معاملة. ولإثبات إدراج المعاملة T من دون تنزيل جميع المعاملات البالغ عددها 2000، نحتاج إلى إثبات مضغوط. تحل أشجار Merkle هذه المشكلة: فحجم الإثبات هو O(log n) من التجزئات بدلًا من O(n) من المعاملات.
إنشاء شجرة Merkle
الأوراق: SHA256d (تجزئة SHA256 مزدوجة) لكل معاملة. العقدة الأب: SHA256d(left_child_hash || right_child_hash). كرّر العملية حتى تصل إلى تجزئة جذر واحدة. إذا كان عدد العقد فرديًا، فكرّر العقدة الأخيرة. والجذر هو جذر Merkle المخزّن في ترويسة الكتلة (32 بايت).
جذر Merkle باستخدام Python
import hashlib def sha256d(x): return hashlib.sha256(hashlib.sha256(x).digest()).digest() def merkle_root(txids): if len(txids)%2: txids.append(txids[-1]) while len(txids)>1: txids=[sha256d(txids[i]+txids[i+1]) for i in range(0,len(txids),2)] return txids[0].hex()
إثبات Merkle (إثبات الإدراج)
لإثبات أن المعاملة T موجودة في الموضع i، قدّم تجزئات العقد الشقيقة عند كل مستوى، من ورقة T إلى الجذر (O(log n) من التجزئات). يعيد المدقّق حساب الجذر انطلاقًا من T ومسار العقد الشقيقة. وإذا تطابق الجذر المحسوب مع جذر Merkle في ترويسة الكتلة، يثبت وجود T.
مثال على حجم الإثبات
1024 معاملة ← يتكون إثبات Merkle من 10 تجزئات = 320 بايتًا. يبلغ حجم الكتلة الكاملة نحو 1 MB. ينزّل عملاء SPV الترويسة ذات الحجم 80 بايتًا فقط، إضافة إلى إثبات Merkle ذي الحجم 320 بايتًا لكل معاملة تهمهم — أي توفير بنسبة 99.97% من النطاق الترددي مقارنة بتنزيل الكتلة الكاملة.
كشف العبث
إذا تغيرت أي معاملة في الشجرة، تتغير تجزئة ورقتها، وينتشر التغيير صعودًا حتى يغيّر جذر Merkle. ولن يتطابق الجذر المعدّل مع ترويسة الكتلة المحمية بإثبات العمل PoW. ويمكن كشف أي تعديل بحساب الجذر انطلاقًا من المعاملات.
شجرة Patricia Merkle (Ethereum)
توسّع Ethereum أشجار Merkle باستخدام أشجار trie (شجرة Patricia Merkle): وهي شجرة radix مشفّرة ببادئة سداسية عشرية، تُجزّأ كل عقدة فيها باستخدام Merkle. وتُستخدم في: شجرة الحالة (أرصدة الحسابات)، وشجرة المعاملات، وشجرة الإيصالات. وتتيح إثبات حالة الحساب بكفاءة من دون بيانات العقدة الكاملة.
نطاق Merkle الجبلي
نطاق Merkle الجبلي (MMR) هو بنية Merkle لا تسمح إلا بالإضافة في نهايتها، ومخصصة للبيانات الشبيهة بالسجلات. تُضاف العناصر الجديدة، مع الحفاظ على القمم (جذور الأشجار الفرعية ذات الأحجام التي تمثل قوى العدد 2). ويُستخدم في Grin/MimbleWimble وZCash لإجراء إثباتات مضغوطة وفعّالة على سجل لا يسمح إلا بالإضافة في نهايته.
أشجار Verkle
تستبدل أشجار Verkle أشجار Merkle في خارطة طريق Ethereum (EIP-6800)، إذ تستخدم التزامات المتجهات (التزامات كثيرات الحدود KZG) بدلًا من التجزئات. ويكون حجم الإثبات O(1) بدلًا من O(log n) في Merkle. ويسمح ذلك للعملاء عديمي الحالة بالتحقق من الحالة من دون تخزين شجرة trie كاملة.
شفافية الشهادات كسجل Merkle
تستخدم شفافية الشهادات (RFC 6962) سجل Merkle لا يسمح إلا بالإضافة في نهايته، بحيث تكون كل شهادة صادرة عن CA ورقةً فيه. وتتحقق إثباتات الإدراج من تسجيل الشهادة. أما إثباتات الاتساق فتتحقق من أن السجل لا يسمح إلا بالإضافة في نهايته (من دون حذف أو إدراج). ويتحقق مورّدو المتصفحات من SCTs عبر هذا السجل.
نموذج كائنات Git
تُعد أشجار Git (لقطات المجلدات) أشجار Merkle، إذ تجزّئ كل عقدة شجرية كتل الملفات الثنائية والأشجار الفرعية التابعة لها. وتعرّف تجزئة commit حالة قاعدة الكود بأكملها تعريفًا فريدًا. ولهذا يعطي git checkout
تحقق سريع
كم عدد التجزئات التي يتطلبها إثبات Merkle لإثبات الإدراج في شجرة تحتوي على 1024 ورقة؟
مراجعة
تتيح أشجار Merkle إثباتات إدراج بحجم O(log n). يخزّن Bitcoin جذر Merkle في ترويسات الكتل، ويستخدم عملاء SPV الإثباتات. وتوسّع Ethereum ذلك إلى أشجار Patricia Merkle. وستستبدل أشجار Verkle أشجار Merkle لتوفير إثباتات بحجم O(1). التالي: تعدين إثبات العمل وصعوبة التعدين.
تعلم Cryptology Academy مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 67
- الدروس
- 261
الأسئلة الشائعة
هل درس «أشجار Merkle: سلامة المعاملات على نطاق واسع» مجاني؟
نعم — نص درس «أشجار Merkle: سلامة المعاملات على نطاق واسع» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
ماذا ستتعلم في «أشجار Merkle: سلامة المعاملات على نطاق واسع»؟
أنشئ أشجار Merkle وولّد براهين الإدراج بكفاءة تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟
لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «أشجار Merkle: سلامة المعاملات على نطاق واسع»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟
نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- سلاسل التجزئة وربط الكتل
- أشجار Merkle: سلامة المعاملات على نطاق واسع
- إثبات العمل: التعدين وضبط الصعوبة
- Bitcoin Script والتحقق من توقيعات UTXO