هل سمعت عن أشجار Merkle عند مناقشة تقنية blockchain؟ ذلك لأن شجرة Merkle هي جوهر التكنولوجيا نفسها.
فما هو بالضبط?
في هذه المقالة ، سوف نتعمق في شجرة Merkle ونفهم دورها في إنجاح تقنية blockchain.
هيا بنا نبدأ.
ما هي شجرة ميركل?
شجرة Merkle هي بنية بيانات تُستخدم للتحقق الآمن من البيانات في تجمع محتوى كبير. كما أنها فعالة ومتسقة عندما يتعلق الأمر بالتحقق من البيانات.
يستخدم كل من Ethereum و Bitcoin أشجار Merkle.
المشكلة: في قلب الشبكة المركزية ، يمكن الوصول إلى البيانات من نسخة واحدة. هذا يعني أنه ليس عليهم فعل الكثير لتخزين البيانات أو الوصول إليها. ومع ذلك ، عندما يتعلق الأمر بشبكة blockchain اللامركزية ، فإن الأمور تسير على ما يرام حيث يتم نسخ كل بيانات بين العقد. لذلك ، يعد الوصول إلى البيانات بكفاءة تحديًا. يتمثل التحدي أيضًا في عمل نسخة من البيانات ومشاركتها بين العقد. علاوة على ذلك ، يجب التحقق من البيانات المشتركة لكل من العقد المستقبلة.
الحل: تمكّن Merkle Trees سلاسل الكتل اللامركزية من مشاركة البيانات والتحقق منها وجعلها جديرة بالثقة. ينظم البيانات بطريقة لا تتطلب قدرًا كبيرًا من قوة المعالجة لمشاركة البيانات والتحقق منها. كما أنه يسهل المعاملة الآمنة بفضل استخدام وظائف التجزئة والتشفير.
كان ساتوشي ناكاموتو أول شخص قام بتطبيق أشجار Merkle في تقنية blockchain عبر Bitcoin. فتح استخدامه فرعًا جديدًا لعلوم الكمبيوتر حيث لا توجد حاجة لسلطة مركزية. كما استخدم أشجار Merkle بدرجة مفرطة واستخدم أشجار Fast Merkle.
ومع ذلك ، تم تقديم هذا المفهوم لأول مرة من قبل رالف ميركل ، الذي حصل على براءة اختراع في عام 1979. تم تسميته باسمه.
اقرأ أيضًا ، Hyperledger Cactus: إطار عمل Hyperledger جديد
وظائف تجزئة التشفير
قبل أن نناقش أشجار Merkle ، نحتاج إلى فهم أفضل لوظيفة تجزئة التشفير.
وظيفة التجزئة هي المسؤولة عن تعيين أي شكل من أشكال البيانات التعسفية من أي طول إلى مخرجات ذات حجم ثابت. إنها وظيفة تشفير وبالتالي فهي تستخدم على نطاق واسع في التشفير.
تعتبر وظائف التجزئة فعالة ومعروفة بخصائصها الفردية ، أي لا يمكن عكس الوظيفة. إنها وظيفة أحادية الاتجاه مصممة للعمل بهذه الطريقة فقط.
التجزئة لها استخدامات متعددة بما في ذلك
- حماية كلمة المرور
- فحص سلامة الملفات والتحقق منها
- عملة مشفرة
هناك العديد من عائلات التجزئة بما في ذلك Message Direct (MD) و Secure Hash Function (SHF) و RIPE Message Direct (RIPEMD).
إذا كنت تستخدم خوارزمية تجزئة SHA256 وتمرير 101Blockchains كمدخلات ، فستحصل على الإخراج التالي
fbffd63a60374a31aa9811cbc80b577e23925a5874e86a17f712bab874f33ac9
لتلخيص ذلك ، تشمل الخصائص الرئيسية لوظائف التجزئة ما يلي:
- حتمية
- مقاومة ما قبل الصورة
- كفاءة حسابية
- لا يمكن عكسها هندسيا
- مقاومة الاصطدام
إذا كنت تريد معرفة المزيد حول وظائف تجزئة التشفير ، فراجع المقالات التفصيلية هنا:
كيف تعمل أشجار ميركل?
الآن بعد أن أصبح لدينا فهم جيد إلى حد ما لوظائف Hash ، فقد حان الوقت الآن لمعرفة المزيد عن Merkle Trees.
لذلك ، من الناحية الفنية ، فإن أشجار Merkle هي أشجار بنية البيانات حيث يتم تعريف العقدة غير الورقية على أنها قيمة تجزئة للعقد الفرعية الخاصة بها.
هذا يعني أيضًا أن شجرة Merkle مقلوبة لأسفل حيث تكون العقد الطرفية هي العقدة السفلية.
لفهم ما أحاول نقله بشكل أفضل ، دعنا نلقي نظرة على مثال شجرة Merkle:
المصدر: ويكيبيديا
في قلب أشجار Merkle ، نحتاج إلى تعلم ثلاثة مصطلحات مهمة. هم على النحو التالي:
- ميركل روت
- العقد الورقية
- العقد غير الورقية
إذا ألقيت نظرة على شجرة Merkle ككل ، فهي شجرة مقلوبة رأسًا على عقب. الشجرة قادرة على تلخيص مجموعة كاملة من المعاملات بنفسها. هذا يعني أنه يمكن للمستخدم التحقق مما إذا كانت المعاملة جزءًا من الكتلة أم لا.
لجعل أشجار Merkle تعمل ، يتم استخدام التجزئة. إنه ببساطة يقوم بتجزئة أزواج العقد بشكل متكرر حتى يتم ترك قيمة تجزئة واحدة فقط. تُعرف قيمة التجزئة اليسرى باسم Merkle Root أو Root Hash. يتم إنشاء الشجرة من الأسفل إلى الأعلى باستخدام تجزئات المعاملات الفردية. تُعرف تجزئات المعاملة الفردية أيضًا باسم معرفات المعاملات.
العقد الطرفية هي العقد التي تحتوي على تجزئات بيانات المعاملات. في حالة العقد غير الورقية ، يقومون بتخزين تجزئة التجزئة السابقتين.
خاصية أخرى مهمة لأشجار Merkle هي أنها ثنائية في طبيعتها. هذا يعني أنه يتطلب أن تكون العقد الورقية متساوية حتى تعمل. في حالة وجود عدد فردي من العقد الورقية ، فسيؤدي ذلك ببساطة إلى تكرار التجزئة الأخيرة وجعلها متساوية.
مثال
دعونا نحاول فهمها من خلال أخذ مثال.
مثال شجرة ميركل
هنا ، نرى أن أربع معاملات قد حدثت في الكتلة. تتم تسمية هذه المعاملات باسم X و Y و Z و W. ثم يتم تجزئة المعاملات ثم تخزينها في العقد الورقية التي نسميها Hash X و Hash Y و Hash Z و Hash W.
بمجرد الانتهاء من ذلك ، يتم تجزئة العقد الورقية الخاصة بـ Hash X و Y و Z و W مرة أخرى وإنشاء تجزئة مجمعة لـ XY و ZW. أخيرًا ، يتم استخدام هاتين التجزئتين لإنشاء Merkle Root أو Root Hash.
يمكن إجراء عملية التجزئة بأكملها على مجموعة بيانات كبيرة جدًا مما يجعل بنية بيانات Merkle Trees مفيدة في حالة الشبكات اللامركزية.
كما ناقشنا سابقًا ، يعتمد استخدام خوارزميات التجزئة على التنفيذ. ومع ذلك ، فإن إحدى وظائف التجزئة الأكثر شيوعًا المستخدمة تتضمن وظيفة تجزئة التشفير SHA-2.
لذلك ، يمكن التحقق من المعاملة إذا كانت المعاملات السابقة قابلة للتحقق ، وذلك بفضل قيم التجزئة.
ماذا عن سلامة البيانات?
شجرة Merkle مثالية لتكامل البيانات. أيضًا ، ليست هناك حاجة لإجراء المعاملة بأكملها لمعرفة إمكانية التحقق منها. يمكن التحقق من المعاملات باستخدام المعلومات المخزنة في رأس الكتلة. يتم أيضًا تغيير قيمة جذر Merkle وفقًا للمعاملات السابقة.
هذا يعني أيضًا أن قيم الجذر تتغير بشكل متكرر ويمكن استخدامها للتحقق من المعاملات على الفور تقريبًا.
كل هذه يمكن أن تبدو مشابهًا إلى حد ما لقائمة التجزئة ، ومع ذلك ، هذا ليس صحيحًا. للحصول على قائمة التجزئة ، تحتاج إلى تنزيل القائمة الكاملة للتحقق من المعاملات أو البيانات.
في حالة شجرة Merkle ، يمكنك تنزيل الفرع ثم استخدامه للتحقق من المعاملات.
ليست هناك حاجة لتنزيل الشجرة بأكملها للتحقق من المعاملات. هذا يعني أيضًا أنه يمكن تقسيم الشجرة بأكملها إلى كتل بيانات صغيرة يمكن استخدامها للتحقق من المعاملات في جميع أنحاء الشبكة. يُعرف المفهوم باسم البراهين ميركل.
يمكنك أيضًا التحقق من Merkle tree python – تطبيق Merkle tree في Python مقالة – سلعة.
كيف تعمل أشجار Merkle في البيتكوين
كانت Bitcoin أول عملة مشفرة تستخدم أشجار Merkle بشكل فعال. لضمان حماية قيم التجزئة ولا يمكن عكسها بسهولة ، فإنه يستخدم خوارزمية التجزئة الآمنة SHA-256 الشهيرة. هذا يعني أيضًا أن ناتج قيم التجزئة يبلغ 256 بت. في جوهرها ، تُستخدم أشجار Merkle لتخزين البيانات وتقليم المعاملات أيضًا.
اقرأ أيضًا ، كيف تبدأ مع Blockchain
في البيتكوين ، يتم توصيل كل كتلة بالكتل السابقة باستخدام قيم التجزئة. هذه هي الطريقة التي يتم بها إنشاء blockchain بالكامل. في الكتلة ، توجد رؤوس كتلة تحتوي على معلومات مهمة مثل:
- Merkle Root Hash
- رقم إصدار الحظر
- الطابع الزمني
- نونس
- هدف صعوبة التعدين
- السابق Block Hash
للحصول على فهم أفضل ، دعنا نلقي نظرة على الرسم التخطيطي أدناه. مأخوذ من ورقة عمل البيتكوين بحد ذاتها.
التسمية التوضيحية: أشجار Merkle في Bitcoin
كما ترى ، يتطلب الأمر من المعدنين تضمين المعاملات في الكتلة. بمجرد الانتهاء من ذلك ، يتم تجزئته وتصبح جزءًا من شجرة Merkle.
يمكن أن يؤدي استخدام Merkle Trees ، بهذه الطريقة ، إلى فوائد متعددة. يتضمن ذلك ميزة واحدة ملحوظة ، مثل التحقق من الدفع البسيط (SPV). هؤلاء SVP عبارة عن عقد يمكن وصفها أيضًا بأنها عملاء خفيفي الوزن. لذا ، ماذا يفعلون؟ إنهم يقومون ببساطة بتنزيل رؤوس الكتل الأطول سلسلة وبالتالي لا يتعين عليهم تنزيل blockchain بالكامل. للقيام بكل ذلك ، يحتاجون إلى التحقق مما إذا كان يحتوي على رؤوس الكتل المخزنة لأطول سلسلة. هذه هي الطريقة التي يتم بها تنفيذ شجرة Merkle في البيتكوين.
في النهاية ، يمكن لـ SPV استخدام Merkle Proof of Map والتحقق من المعاملة باستخدام تجزئة جذر شجرة Merkle.
كيف يتم استخدام Merkle Trees في Ethereum
تستخدم Ethereum blockchain أيضًا أشجار Merkle. ومع ذلك ، يختلف النهج هنا عن طريقة استخدام البيتكوين لها. في Ethereum ، يتم استخدام Merkle Patricia Tree وهي نسخة معقدة من شجرة Merkle. هذا ممكن لأن Ethereum هو Turing كاملة.
إذا كنت تريد معرفة المزيد حول كيفية عمل أشجار Merkle في Ethereum ، فراجع المنشور التفصيلي هنا.
تنفيذ أشجار ميركل الأخرى: حالات الاستخدام
هناك ، بالطبع ، تطبيقات أخرى لأشجار Merkle. أحد أكثرها شيوعًا هو Git – وهو نظام تحكم في الإصدار الموزع. يتم استخدامه من قبل المبرمجين من جميع أنحاء العالم لإدارة مشاريعهم.
يظهر تطبيق مفيد آخر في نظام الملفات بين الكواكب – بروتوكول موزع من نظير إلى نظير. كما أنه مفتوح المصدر ويمكّن أجهزة الحوسبة من الانضمام إلى نظام ملفات واسع الانتشار واستخدامه.
حتى المراجع المصدقة تستخدم أشجار Merkle لصالحها. يستخدمونها في آلية إنشاء سجلات شهادات شفافية يمكن التحقق منها. نظرًا لأن السجل ضخم ، فإن أشجار Merkle تمكن أجهزة الكمبيوتر من التحقق من ذلك دون إضاعة الكثير من الوقت والجهد.
آخر حالة استخدام سنناقشها هي أنظمة قواعد البيانات مثل Amazon DynamoDB و Apache Cassandra. تتحكم قواعد البيانات الموزعة No-SQL هذه في التناقضات باستخدام أشجار Merkle أثناء عملية نسخ البيانات. إذا كانت هناك أية مشكلات ، فيمكنه تحديث البيانات أو إصلاحها باستخدام عملية الإصلاح المضادة للإنتروبيا.
باختصار ، يشمل استخدام حالات أشجار Merkle
- تزامن البيانات
- التحقق من البيانات
- التحقق من الاتساق
فوائد Merkle Trees
في هذا القسم ، سوف نلقي نظرة سريعة على فوائد شجرة Merkle.
- التحقق من صحة البيانات: يمكن استخدامه بشكل فعال للتحقق من سلامة البيانات.
- يأخذ مساحة صغيرة على القرص: تأخذ شجرة Merkle مساحة صغيرة على القرص مقارنة بهياكل البيانات الأخرى.
- معلومات صغيرة عبر الشبكات: يمكن تقسيم أشجار Merkle إلى معلومات صغيرة للتحقق منها.
- التحقق الفعال: تتسم بنية البيانات بالكفاءة ولا تستغرق سوى بعض الوقت للتحقق من سلامة البيانات.
استنتاج
تعتبر شجرة Merkle أحد المفاهيم المهمة في علوم الكمبيوتر. يتم استخدامه على نطاق واسع في العديد من حالات الاستخدام وقد أدى استخدامه في العملات المشفرة إلى ظهور تقنية ثورية ، – blockchain.
إذن ، ماذا تعرف عن أشجار ميركل؟ التعليق أدناه، واسمحوا لنا أن نعرف.