
يشير Merkle hash إلى عملية تجميع مجموعة بيانات، وتجزئة كل طبقة منها، وصولًا إلى إنتاج "تجزئة الجذر" الواحدة. تمثل هذه التجزئة "بصمة رئيسية" لكامل مجموعة البيانات وتتيح التحقق السريع من تضمين أي جزء من البيانات والتأكد من عدم التلاعب به.
في أنظمة البلوكشين، تتكون البيانات غالبًا من دفعات المعاملات أو إدخالات الحسابات. باستخدام Merkle hashing، لا يحتاج النظام إلى إرسال جميع البيانات إليك، بل يكتفي بتوفير جزء صغير من "تجزئات المسار" المرتبطة ببياناتك المستهدفة، لتتمكن من التحقق المستقل من تضمينها.
تكمن أهمية Merkle hash في "التحقق الفعال". فهو يتيح للعقد الخفيفة والمستخدمين التأكد من تضمين المعاملة دون تنزيل مجموعة البيانات الكاملة، مما يقلل بشكل كبير من متطلبات النطاق الترددي والتخزين والحوسبة.
يوفر Merkle hashing أيضًا بنية مقاومة للتلاعب: أي تعديل في عقدة طرفية أو متوسطة يؤدي لتغيير تجزئة الجذر، ما يسمح باكتشاف أي اختلاف بسهولة. وتعد هذه الخاصية ضرورية للشفافية وقابلية التدقيق في الشبكات المفتوحة.
يعتمد Merkle hash على دوال التجزئة، حيث تقوم دالة التجزئة بتحويل البيانات إلى "بصمة بيانات" قصيرة وثابتة الطول، ولا يمكن عكسها، ويؤدي أي تغيير بسيط في المدخلات إلى تغير كبير في الناتج.
تبدأ عملية البناء بتجزئة كل عنصر بيانات إلى "تجزئة ورقة". ثم يتم دمج تجزئات الأوراق المتجاورة وتجزئتها معًا لتشكيل العقد الأصلية، وتتكرر هذه العملية طبقة بعد طبقة حتى يتبقى "تجزئة الجذر" في الأعلى. يُسمى هذا الهيكل "شجرة Merkle"، وتُعرف عقدته العليا باسم "جذر Merkle".
للتحقق من تضمين عنصر بيانات معين، يكفي الحصول على تجزئة الورقة المستهدفة ومجموعة "تجزئات الإخوة" على طول المسار—ويسمى هذا "مسار Merkle" أو "إثبات Merkle". من خلال دمج هذه التجزئات تدريجيًا حتى الجذر، إذا تطابق الجذر الناتج مع الجذر الموثوق، يتم تأكيد التضمين.
في Bitcoin، تحتوي كل كتلة على عدة معاملات يتم تجميعها في جذر Merkle باستخدام Merkle hashing، ثم تضمينها في رأس الكتلة. يعمل رأس الكتلة كـ"ملخص" لإجماع الشبكة، ما يسمح للعقد الخفيفة بمتابعة السلسلة عبر تنزيل رؤوس الكتل فقط.
يبلغ حجم رأس كتلة Bitcoin حوالي 80 بايت ويشمل حقولًا مثل الإصدار، وتجزئة الكتلة السابقة، والطابع الزمني، وهدف الصعوبة، والرقم العشوائي، و"جذر Merkle" (المصدر: بروتوكول Bitcoin؛ مستخدم حتى عام 2025). باستخدام جذر Merkle، يمكن لأي شخص استخدام مسار Merkle للمعاملة للتحقق من تضمينها بمقارنة الجذر الموجود في رأس الكتلة.
عملية التحقق مباشرة: تعيد بناء المسار من المعاملة إلى الجذر باستخدام "تجزئات المسار" وتقارنها بالجذر الموثوق.
الخطوة 1: الحصول على البيانات الخام للمعاملة المستهدفة أو تجزئتها الطرفية. تجزئة الورقة هي تجزئة بيانات المعاملة وتعمل كعقدة في المستوى الأدنى.
الخطوة 2: تجهيز "مسار Merkle" المناسب، ويتكون من تجزئات الإخوة في كل طبقة. في كل خطوة، حدد اتجاه الدمج للحفاظ على الترتيب.
الخطوة 3: دمج وتجزئة التجزئات تدريجيًا على طول المسار حتى تصل إلى الجذر.
الخطوة 4: قارن الجذر الناتج مع الجذر الموجود في رأس الكتلة (أو مصدر موثوق آخر). إذا تطابقا، تكون المعاملة مدرجة؛ وإذا لم يتطابقا، يوجد خلل في البيانات أو المسار.
دالة التجزئة أداة أساسية لتحويل البيانات إلى بصمة. أما Merkle hashing فهو هيكل متقدم يجمع العديد من البصمات في بصمة واحدة شاملة عبر التجزئة المتكررة. الأول تحويل فردي؛ والثاني تجميع هرمي.
بالتالي، تعتمد الأمان على جانبين: مقاومة التصادم وعدم إمكانية التزوير لدالة التجزئة نفسها، وما إذا كان هيكل Merkle يحافظ على ترتيب الدمج والمعايير الصحيحة أثناء البناء والتحقق.
SPV تعني "التحقق المبسط للدفع"، أي أن العقد الخفيفة تقوم بتنزيل رؤوس الكتل فقط بدلًا من جميع المعاملات. وبما أن رؤوس الكتل تحتوي على جذور Merkle، يمكن لعقد SPV استخدام مسار Merkle للمعاملة للمقارنة مع الرأس والتحقق من تضمينها.
وهذا يسمح للعملاء الخفيفين مثل المحافظ المحمولة بإجراء التحقق الأساسي حتى مع الموارد المحدودة، مما يعزز سهولة الاستخدام والمشاركة اللامركزية.
في إثبات الاحتياطيات للمنصات المركزية، يتم استخدام إدخالات أصول المستخدمين (مثل معرفات الحسابات والأرصدة) كأوراق لبناء شجرة Merkle، ويتم نشر تجزئة الجذر. يمكن للمستخدم تنزيل تجزئة الورقة الخاصة به ومسار Merkle للتحقق المستقل من أن "أصولي مدرجة في الشجرة الكلية".
في صفحة إثبات الاحتياطيات لدى Gate، يتم توفير مواد إثبات إدخال الأصول للمستخدم (مثل تجزئة الورقة والمسار). الجانب الأساسي الذي يتحقق منه المستخدم هو "التضمين"—أي أن إدخاله موجود في الشجرة. من المهم ملاحظة أن Merkle hashing يثبت فقط "التضمين"، وليس أن الأصول خارج السلسلة موجودة فعليًا أو خالية من العد المزدوج؛ فلا تزال هناك حاجة لتقارير تدقيق مستقلة وتوقيعات تشفيرية.
يقوم Merkle hashing بضغط كميات ضخمة من البيانات في تجزئة جذر واحدة يمكن التحقق منها علنًا عبر التجزئة الهرمية، مما يمكّن أي شخص من التحقق من التضمين بتكلفة منخفضة. ويُستخدم على نطاق واسع في رؤوس كتل Bitcoin، وعقد SPV الخفيفة، وأنظمة إثبات الاحتياطيات للمنصات. في التطبيق العملي، انتبه لاختيار دالة التجزئة، ومعايير بناء الشجرة، والتدقيقات الخارجية—ولا تخلط بين "التضمين" و"الأصالة".
نعم. ينشئ Merkle hashing مسارًا يمكن التحقق منه من معاملتك حتى رأس الكتلة، مما يتيح لك إثبات التضمين دون الحاجة لتنزيل الكتلة بالكامل. وتسمى هذه العملية بالتحقق SPV—تستخدمها المحافظ الخفيفة والمحافظ المحمولة—مما يوفر المساحة مع ضمان الأمان.
لأن شجرة Merkle تعتمد على التجزئة طبقة بعد طبقة. أي تعديل في معاملة في المستوى الأدنى يغيّر تجزئة العقدة الأصلية؛ وينتقل هذا التغيير للأعلى عبر كل طبقة، مما يؤدي في النهاية إلى تعديل جذر Merkle في الأعلى. وهذه الخاصية تجعل التلاعب قابلاً للاكتشاف بسهولة—وهي آلية جوهرية لمكافحة الاحتيال في البلوكشين.
يقوم Gate بتنظيم أصول المستخدمين في شجرة Merkle وينشر الجذر بانتظام ليتمكن الجميع من التحقق منه. يمكنك استخدام مسار Merkle الخاص بك لإثبات أن أصولك مدرجة فعلًا ضمن إجمالي ممتلكات Gate—مما يمنع إخفاء الأموال أو العد المزدوج. هذا النهج يجعل احتياطيات المنصة أكثر شفافية وقابلة للتحقق.
دالة التجزئة العادية تتحقق من سلامة جزء واحد من البيانات؛ أما شجرة Merkle فتوفر بنية تجزئة طبقية تتحقق من السلامة والتضمين لمجموعات بيانات كبيرة في آن واحد. فقط أشجار Merkle يمكنها إنشاء "مسارات إثبات" للتحقق الفعال من الوجود—وهو ما لا توفره التجزئات القياسية.
يتطلب الأمر حوالي 14 عملية تجزئة فقط، لأن عمق شجرة Merkle ينمو بشكل لوغاريتمي مع عدد المعاملات (log2). مقارنةً بالتحقق الفردي من 10,000 إدخال، فإن التحقق عبر مسار Merkle فعال جدًا—وتتيح هذه الكفاءة للمحافظ المحمولة المزامنة مع البلوكشين بسرعة دون تأخير.


