شجرة ميركل

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

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

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

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

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

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

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

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

هذا مهم جدًا لأنه يسمح “بأخذ بصمات” البيانات.

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

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

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

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

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

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

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

b09a57d476ea01c7f91756adff1d560e579057ac99a28d3f30e259b30ecc9dc7

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

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

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

أشجار Merkle و Merkle Proofs

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

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

شجرة التجزئة

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

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

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

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

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

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

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

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

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

يمكن استخدام تجزئة الجذر كبصمة لمجموعة بيانات كاملة ، بما في ذلك قاعدة بيانات كاملة أو تمثل الحالة الكاملة لـ blockchain. في الأقسام التالية ، سنناقش كيفية قيام البيتكوين والأنظمة الأخرى بتنفيذ أشجار 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 في سلاسل وأنظمة أخرى

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

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

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

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

خاتمة

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

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

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me