شجرة Merkle في البلوكشين: ما هي وكيف تعمل

شجرة Merkle في البلوكشين: ما هي وكيف تعمل

(شجرة ميركل : Merkle Tree البلوكشين : Blockchain)

ما هو شجرة ميركل؟

شجرة ميركل هي بنية تشفير بيانات تُستخدم في تطبيقات إدارة البيانات حيث يتم إرسال البيانات عبر خوارزمية تجزئة بطرق مختلفة لإنشاء تجزئة تمثل جميع البيانات في ملف.

تستخدم البيتكوين وسلاسل الكتل الأخرى أشجار ميركل كوسيلة لترميز بيانات سلسلة الكتل بشكل أكثر كفاءة وأمانًا من خلال تجزئة المعاملات والنتائج في تجزئة تُسمى جذر ميركل. يُستخدم جذر ميركل لإنشاء تجزئة الكتلة، وهو المعرف الفريد للكتلة.

تُعرف أشجار Merkle أيضًا باسم "أشجار التجزئة الثنائية".

النقاط الرئيسية

  • تُعتبر أشجار Merkle طريقة مُنظمة لترميز البيانات من أجل التحقق السهل وتحسين الأمان.
  • تستخدم سلاسل الكتل أشجار Merkle لتوليد الهاشات التي تُستخدم للتحقق من المعاملات وتأمين الكتل.
  • تمثيلات مرئية لأشجار Merkle تشبه الأشجار المقلوبة رأسًا على عقب مع الجذر في الأعلى.
  • تُعتبر تقنية التشفير المتكرر المستخدمة في أشجار Merkle في تقنية البلوكشين واحدة من الآليات التي تساهم في عدم قابليتها للتغيير.

فهم أشجار ميركل

تُسمى أشجار Merkle نسبةً إلى Ralph Merkle، الذي اقترحها في ورقة بحثية عام 1987 بعنوان "توقيع رقمي يعتمد على وظيفة تشفير تقليدية." في هذا الهيكل الذي يُعرف بـ"الشجرة اللانهائية"، يتم إرسال المعلومات عبر وظيفة تشفير، والتي تحولها إلى سلسلة من الأرقام والحروف بعدد محدد من الأحرف. يعتمد عدد الأحرف في الناتج على كيفية برمجة الوظيفة.

هذا التسلسل الأبجدي الرقمي (المعروف باسم الهاش) يتم إعداده بحيث أن نفس المدخلات تولد دائمًا نفس المخرجات. لا يمكن إرسال المخرجات مرة أخرى عبر دالة لتوليد المعلومات الأصلية. هذا يخلق طريقة لمقارنة ملف بآخر والتحقق من أنه متطابق دون التحقق يدويًا من محتويات الملف. يُطلق على هذا التسلسل من الحروف والأرقام عمومًا اسم الهاش، ولكنه في الواقع قيمة سداسية عشرية بطول محدد تم إنشاؤها بواسطة خوارزمية رياضية.

يتم دمج الهاشات وإعادة تشفيرها، ثم يتم إقرانها مع هاشات أخرى وإعادة تشفيرها مرة أخرى. هذا التشفير المستمر يقوم بترميز جميع المعاملات المسجلة في ملف إلى هاش واحد. للتحقق أو التحقق من صحة المعاملات أو المعلومات في هذا الهيكل، يتم إرسال البيانات من خلال نفس الوظيفة والعملية بواسطة مستخدم آخر. يجب أن يكون الهاش الناتج متطابقًا، مما يوفر وسيلة للتحقق من المعلومات الموجودة في الملف.

كيف يتم استخدام شجرة ميركل في البلوكشين

الأشجار الميركل ليست مطلوبة للاستخدام في سلاسل الكتل، ولكن العديد منها يستخدم هذه البنية. بالإضافة إلى ذلك، قد يتم تنفيذ تقنيات مختلفة داخل الأشجار. البيتكوين هو الأكثر شهرة، لذا يتم استخدامه هنا كمثال.

لا يقوم برنامج البيتكوين بتشغيل الكتلة الكاملة من بيانات المعاملات عبر دالة التجزئة دفعة واحدة. بدلاً من ذلك، يتم تجزئة كل معاملة، ثم يتم دمج زوج من المعاملات وتجزئتهما معًا، وهكذا، حتى يكون هناك تجزئة واحدة للكتلة بأكملها. إذا كان هناك عدد فردي من المعاملات، يتم مضاعفة معاملة واحدة، ويتم دمج تجزئتها مع نفسها.

عند تصور هذه العملية المنظمة، فإنها تشبه شجرة مقلوبة. في الرسم البياني أدناه، يرمز "T" إلى معاملة، و"H" إلى تجزئة. لاحظ أن الصورة مبسطة للغاية؛ يمكن أن يحتوي الكتلة على مئات أو آلاف المعاملات. تُعرف التجزئات في الصف السفلي باسم "الأوراق"، والتجزئات الوسيطة باسم "الفروع"، والتجزئة في الأعلى باسم "الجذر".

وبالتالي، فإن جذر Merkle هو تجزئة لجميع المعاملات (التي يتم تجزئتها أيضًا) في كتلة. على سبيل المثال، جذر Merkle لكتلة بيتكوين رقم 854,046 هو:

4c825b4e6a4fea2ea96a1dd879ceff1f854d5be51fa01bb5fd4d95853db9f1bc

يتم دمجه مع معلومات أخرى (إصدار البرنامج، وهاش الكتلة السابقة، والطابع الزمني، وهدف الصعوبة، والنانس) ثم يتم تمريره عبر دالة هاش لإنتاج الهاش الفريد للكتلة:

000000000000000000005d886429368c23489583edfd77d0bfffecef8b570d00

هذا الهاش لا يتم تضمينه فعليًا في الكتلة التي تم إنشاؤه منها، بل في الكتلة التالية: فهو يختلف عن جذر Merkle.

فوائد شجرة Merkle

شجرة ميركل مفيدة لأنها تتيح للمستخدمين التحقق من معاملة معينة دون الحاجة إلى تنزيل سلسلة الكتل بالكامل، والتي يمكن أن تكون بحجم مئات الجيجابايت. على سبيل المثال، لنفترض أنك تريد التحقق من أن المعاملة TD مدرجة في الكتلة في الرسم البياني أعلاه. إذا كان لديك الجذر التجزئة (HABCDEFGH)، يمكنك الاستفسار من الشبكة حول HD. قد تعيد لك HC، HAB، وHEFGH.

تسمح شجرة Merkle لك بالتحقق من أن كل شيء محسوب باستخدام ثلاثة تجزئات: بالنظر إلى HAB، HC، HEFGH، والجذر HABCDEFGH، يجب أن يكون HD (التجزئة الوحيدة المفقودة) موجودًا في البيانات.

بالإضافة إلى ذلك، فإن الهيكل مفيد لأن العملية سريعة جدًا. قد يبدو أن تجزئة آلاف المعاملات تستغرق وقتًا طويلاً، لكن أجهزة الكمبيوتر الحديثة يمكنها القيام بذلك في أجزاء من الثانية. نظرًا لأن أجهزة الكمبيوتر يمكنها القيام بذلك بسهولة، فمن المنطقي استخدام هذه التقنية للتحقق من كميات كبيرة من البيانات، مثل البيانات الموجودة في سلسلة الكتل. جذور ميركل، والأشجار، وتجزئة الكتل هي ما يخلق السلسلة غير القابلة للتغيير من المعاملات والكتل.

ما هو استخدام شجرة ميركل؟

يمكن استخدام أشجار Merkle في أي تطبيق قد يتطلب التحقق من المعلومات والبيانات أو تأمينها. في سلاسل الكتل، تُستخدم هذه البنية لإنشاء جذور Merkle، أو تجزئات لجميع المعاملات في كتلة، والتي تُستخدم بعد ذلك لتوليد تجزئة الكتلة.

ما هو الحجم الأقصى لشجرة ميركل؟

يعتمد حجم شجرة Merkle على كمية البيانات التي يتم تجزئتها للإدراج وكيفية برمجة البلوكشين. ومع ذلك، فإن شجرة Merkle الخاصة بالكتلة لا تشغل مساحة كبيرة من التخزين على البلوكشين. على سبيل المثال، احتوت كتلة بيتكوين رقم 854,473 على 2,530 معاملة، وكان تجزئة كل معاملة 64 بايت. لذا، شغلت شجرة Merkle الخاصة بالكتلة مساحة 161.92 كيلوبايت من إجمالي 1.54 ميجابايت للكتلة.

لماذا يستخدم البيتكوين أشجار ميركل؟

تستخدم بيتكوين أشجار ميركل لأنها وسيلة فعالة للتحقق من المعاملات وتساعد في إنشاء سلسلة المعلومات التي تربط الكتل معًا.

الخلاصة

شجرة Merkle هي بنية بيانات يتم فيها استخدام البيانات المجزأة لإنشاء تجزئة أخرى تمثل البيانات الموجودة في ملف. تجعل هذه البنية من السهل على أجهزة الكمبيوتر مقارنة المعلومات لأنها تستغرق بضع ميلي ثانية فقط لتوليد التجزئات من المعلومات والتحقق من أن النتائج متطابقة.

تُعتبر أشجار Merkle أيضًا واحدة من الآليات التي تسمح بربط الكتل في سلسلة الكتل. إذا تم تغيير أي بيانات، فإن الهاش الناتج سيكون مختلفًا، مما يؤدي إلى رفض الكتلة المقترحة من قبل آلية الإجماع الخاصة بسلسلة الكتل.