شجرة Merkle هي بنية بيانات تُستخدم في تطبيقات علوم الكمبيوتر. في bitcoin والعملات المشفرة الأخرى ، تعمل أشجار Merkle على تشفير بيانات blockchain بشكل أكثر كفاءة وأمان.
ويشار إليها أيضًا باسم "أشجار التجزئة الثنائية".
تحطيم شجرة ميركل
في blockchain الخاص بـ bitcoin ، يتم تشغيل مجموعة من المعاملات من خلال خوارزمية لإنشاء علامة التجزئة ، وهي سلسلة من الأرقام والحروف التي يمكن استخدامها للتحقق من أن مجموعة معينة من البيانات هي نفس مجموعة المعاملات الأصلية ، ولكن عدم الحصول على المجموعة الأصلية من المعاملات. لا يعمل برنامج Bitcoin على مجموعة كاملة من بيانات المعاملات - التي تمثل معاملات قيمتها 10 دقائق في المتوسط - من خلال دالة التجزئة في وقت واحد. بدلاً من ذلك ، يتم تجزئة كل معاملة ، ثم يتم ربط كل زوج من المعاملات وتجزئته معًا ، وهكذا حتى يكون هناك تجزئة واحدة للكتلة بأكملها. (إذا كان هناك عدد فردي من المعاملات ، فيتم مضاعفة معاملة واحدة ويتم ربط التجزئة بها بنفسها.)
تصور ، هذا الهيكل يشبه شجرة. في الرسم البياني أدناه ، يعين "T" معاملة ، "H" تجزئة. لاحظ أن الصورة مبسطة للغاية ؛ كتلة متوسطة تحتوي على أكثر من 500 معاملة ، وليس ثمانية.
يشار إلى التجزئة في الصف السفلي باسم "الأوراق" ، والتجزئة الوسيطة باسم "الفروع" ، والتجزئة في الأعلى باسم "الجذر". يتم تخزين جذر Merkle لكتلة معينة في الرأس: على سبيل المثال ، جذر Merkle للكتلة # 482819 هو e045b18e7a3d708d686717b4f44db2099aabcad9bebf968de5f7c8. يتم دمج الجذر مع معلومات أخرى (إصدار البرنامج ، تجزئة الكتلة السابقة ، الطابع الزمني ، هدف الصعوبة ، و nonce) ثم تشغيل من خلال دالة التجزئة لإنتاج تجزئة فريدة للكتلة: 000000000000000000bbfc767ef8bf28c42cbd4bdbafd9aa1b5c3c33c2b089594. لم يتم تضمين هذا التجزئة فعليًا في الكتلة ذات الصلة ، ولكن في العنصر التالي ؛ انها متميزة عن جذر ميركل.
تعد شجرة Merkle مفيدة لأنها تتيح للمستخدمين التحقق من معاملة معينة دون تنزيل blockchain بالكامل (أكثر من 130 غيغابايت في نهاية أغسطس 2017). على سبيل المثال ، قل أنك تريد التحقق من أن المعاملة T D مدرجة في الكتلة في الرسم البياني أعلاه. إذا كان لديك تجزئة الجذر (H ABCDEFGH) ، فإن العملية تشبه لعبة sudoku: تقوم باستعلام الشبكة عن H D ، وتقوم بإرجاع H C و H AB و H EFGH. تسمح لك شجرة Merkle بالتحقق من أن كل شيء يتم حسابه بثلاثة تجزئات: يتم إعطاء H AB و H C و H EFGH ، ويجب أن يكون الجذر H ABCDEFGH ، H D (التجزئة المفقود الوحيد) موجودًا في البيانات.
تتم تسمية أشجار ميركل على اسم رالف ميركل ، الذي اقترحها في ورقة عام 1987 بعنوان "توقيع رقمي يعتمد على وظيفة التشفير التقليدية". اخترع ميركل أيضا التجزئة التشفير.
