ما هي شجرة ميركل؟ دليل المبتدئين لمكون Blockchain هذا

تعد Merkle Trees مكونًا أساسيًا في blockchain الذي يدعم وظائفها. فهي تسمح بالتحقق الفعال والآمن من هياكل البيانات الكبيرة، وفي حالة سلاسل الكتل، من المحتمل أن تكون هناك مجموعات بيانات لا حدود لها.

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

وظائف تجزئة التشفير هي التقنية الأساسية التي تسمح لأشجار Merkle بالعمل، لذا من المهم أولاً أن نفهم ما هي وظائف تجزئة التشفير.

حكم سريع: أشجار Merkle هي هياكل بيانات مكونة من تجزئات تشفيرية تسمح بالتحقق الفعال من السلامة ورسم خرائط لمجموعات البيانات الكبيرة، مما يجعلها جزءًا لا يتجزأ من أنظمة مثل blockchain والتحكم في الإصدار الموزع.


حقائق سريعة

النقاط الرئيسيةالوصف
وظائف تجزئة التشفيروظائف التجزئة التي تأخذ مدخلات من أي حجم وتخرج قيمة تجزئة ذات طول ثابت. يستخدم في أشجار ميركل.
هيكل شجرة ميركلبنية بيانات الشجرة حيث تكون كل عقدة غير ورقية عبارة عن تجزئة للعقد التابعة لها. يتيح رسم الخرائط الفعالة والتحقق من مجموعات البيانات الكبيرة.
تجزئة الجذرالتجزئة الموجودة أعلى شجرة Merkle والتي تمثل تجزئة الشجرة بأكملها. بمثابة بصمة لمجموعة البيانات الكاملة.
البراهين ميركلالسماح بالتحقق من سلامة البيانات وموقعها في الشجرة دون الحاجة إلى مجموعة البيانات الكاملة، فقط تجزئة الجذر.
التنفيذ بالبيتكوينتقوم أشجار Merkle بتخزين المعاملات في كتل. يسمح تجزئة الجذر المخزن في رأس الكتلة لعقد SPV بالتحقق من المعاملات.
تطبيقات blockchain الأخرىيُستخدم في العديد من سلاسل الكتل مثل Ethereum الذي يستخدم أشجار Merkle Patricia الأكثر تعقيدًا.
الانظمة الموزعةالسماح لأنظمة التحكم في الإصدار مثل Git وIPFS بالتحقق بسهولة من البيانات المشتركة بين النظراء.

وظائف تجزئة التشفير

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

العديد من خوارزميات التجزئة متاحة للجمهور على نطاق واسع ويمكن اختيارها بناءً على احتياجاتك.

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

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

وهذا أمر مهم للغاية لأنه يسمح "بأخذ بصمات" البيانات.

دالة تجزئة مشفرة، صورة من ويكيبيديا

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

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

داخل blockchain، يتم استخدام خوارزميات التجزئة لتحديد حالة blockchain.

سلاسل الكتل هي قوائم مرتبطة تحتوي على بيانات ومؤشر تجزئة يشير إلى الكتلة السابقة، مما يؤدي إلى إنشاء سلسلة من الكتل المتصلة، ومن هنا جاء اسم "سلسلة الكتل".

ترتبط كل كتلة ببعضها البعض من خلال مؤشر التجزئة، وهو تجزئة البيانات الموجودة داخل الكتلة السابقة مع عنوان الكتلة السابقة. من خلال ربط كتل البيانات بهذا التنسيق، تمثل كل تجزئة ناتجة عن الكتلة السابقة الحالة الكاملة لـ blockchain حيث يتم تجزئة جميع البيانات المجزأة للكتل السابقة في تجزئة واحدة.

ويتم تمثيل ذلك (في حالة خوارزمية SHA-256) بمخرجات (تجزئة) مثل هذا:

b09a57d476ea01c7f91756adff1d560e579057ac99a28d3f30e259b30ecc9dc7

التجزئة أعلاه هي بصمة الحالة الكاملة لـ blockchain قبلها. حالة blockchain قبل الكتلة الجديدة (كبيانات مجزأة) هي المدخلات، والتجزئة الناتجة هي المخرجات.

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

كما سترى، تسمح أشجار Merkle بحل بسيط لتكامل البيانات بالإضافة إلى رسم خرائط لتلك البيانات من خلال الشجرة بأكملها باستخدام أدلة Merkle.


أشجار ميركل وأدلة ميركل

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

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

شجرة التجزئة

مثال على شجرة التجزئة الثنائية، صورة من ويكيبيديا

الأهم من ذلك، لاحظ كيف أن العقد غير الورقية أو "الفروع" (الممثلة بالتجزئة 0-0 والتجزئة 0-1) على الجانب الأيسر، هي تجزئات لأطفالها L1 وL2. علاوة على ذلك، لاحظ كيف أن الفرع Hash 0 هو تجزئة أبنائه المتسلسلة، والفروع Hash 0-0 وHash 0-1.

المثال أعلاه هو الشكل الأكثر شيوعًا وبساطة لشجرة Merkle المعروفة باسم شجرة Merkle الثنائية. كما ترون، هناك تجزئة علوية وهي تجزئة الشجرة بأكملها، والمعروفة باسم التجزئة الجذرية. في الأساس، تعد أشجار Merkle عبارة عن بنية بيانات يمكنها أخذ عدد "n" من التجزئة وتمثيلها بتجزئة واحدة.

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

وبدلاً من ذلك، يمكنهم التحقق من أن مجموعة البيانات متوافقة مع التجزئة الجذرية عن طريق التحقق فقط من مجموعة فرعية صغيرة من التجزئة بدلاً من مجموعة البيانات بأكملها.

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

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

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

تعتبر الشجرة مفيدة لتوزيع مجموعات كبيرة من البيانات إلى أجزاء أصغر يمكن التحكم فيها حيث يتم تقليل حاجز التحقق من التكامل بشكل كبير على الرغم من الحجم الإجمالي للبيانات الأكبر.

يمكن استخدام تجزئة الجذر كبصمة لمجموعة بيانات كاملة، بما في ذلك قاعدة بيانات كاملة أو تمثل الحالة الكاملة لسلسلة الكتل. في الأقسام التالية، سنناقش كيفية قيام Bitcoin والأنظمة الأخرى بتنفيذ أشجار Merkle.


أشجار ميركل في البيتكوين

وظيفة التجزئة المشفرة التي تستخدمها Bitcoin هي خوارزمية SHA-256. يشير هذا إلى "خوارزمية التجزئة الآمنة"، التي يبلغ طول ناتجها 256 بتًا ثابتًا. تتمثل الوظيفة الأساسية لأشجار Merkle في Bitcoin في تخزين المعاملات في كل كتلة وتقليصها في النهاية.

كما ذكرنا سابقًا، ترتبط الكتل الموجودة في blockchain من خلال تجزئات الكتلة السابقة. في Bitcoin، تحتوي كل كتلة على جميع المعاملات داخل تلك الكتلة بالإضافة إلى رأس الكتلة الذي يتكون من:

  • رقم إصدار الحظر
  • السابق Block Hash
  • الطابع الزمني
  • هدف صعوبة التعدين
  • مناسبة حالية
  • ميركل الجذر التجزئة

الصورة أدناه مأخوذة من ورقة عمل Bitcoin وتوضح كيف تتناسب شجرة Merkle مع كل كتلة.

شجرة ميركل

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

وعلى وجه الخصوص، كما هو موضح في المستند التقني، يسمح هذا بوجود عقد التحقق من الدفع البسيط (SPV)، والمعروفة أيضًا باسم "العملاء الخفيفين". لا يتعين على هذه العقد تنزيل سلسلة Bitcoin blockchain بأكملها، فقط رؤوس الكتلة لأطول سلسلة.

يمكن لعقد SPV تحقيق ذلك عن طريق الاستعلام عن العقد النظيرة الخاصة بها حتى تقتنع بأن رؤوس الكتلة المخزنة التي تعمل عليها هي جزء من أطول سلسلة. تستطيع عقدة SPV بعد ذلك تحديد حالة المعاملة باستخدام دليل Merkle لتعيين المعاملة إلى شجرة Merkle محددة مع تجزئة جذر شجرة Merkle المعنية في رأس الكتلة الذي يعد جزءًا من أطول سلسلة.

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


تنفيذ Merkle Trees في أنظمة وسلاسل الكتل الأخرى

على الرغم من أن Bitcoin كانت أول سلسلة كتل تستخدم أشجار Merkle، إلا أن العديد من سلاسل الكتل الأخرى تنفذ هياكل شجرة Merkle مماثلة أو حتى إصدارات أكثر تعقيدًا.

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

تعد Ethereum، باعتبارها العملة المشفرة الأخرى الأكثر شهرة، أيضًا مثالًا رائعًا لتطبيق مختلف لشجرة Merkle. نظرًا لأن Ethereum مكتمل كمنصة لبناء تطبيقات أكثر تعقيدًا، فإنه يستخدم نسخة أكثر تعقيدًا من شجرة Merkle تسمى شجرة Merkle Patricia Tree وهي في الواقع 3 أشجار Merkle منفصلة تستخدم لثلاثة أنواع من الكائنات. يمكنك معرفة المزيد عن هذه الأشجار هنا.

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


وفي الختام

تعد أشجار Merkle جزءًا لا يتجزأ من blockchain وتسمح لها بشكل فعال بالعمل مع ثبات ثابت وسلامة المعاملات.

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

المصدر: https://blockonomi.com/merkle-tree/