تقنية البلوكتشين بين الهيكلية والتطبيق
هيكل البيانات المشفرة
تشريح كتلة البلوكتشين
تتكون كل كتلة في البلوكتشين من جزأين رئيسيين: قائمة بالمعاملات التي تم التحقق منها، وترويسة (Header) تعمل كبطاقة تعريف للكتلة. هذه الترويسة لا تحتوي على تفاصيل المعاملات نفسها، بل على ملخص مشفر لها وبيانات وصفية أخرى تربط الكتلة بما قبلها في السلسلة.
تكمن أهمية الترويسة في أنها تسمح لأي شخص بالتحقق من صحة الكتلة بسرعة وكفاءة دون الحاجة إلى تنزيل كل معاملة بداخلها. هذا التصميم هو أساس أمان وكفاءة البلوكتشين.
| المكون | الوصف |
|---|---|
| الإصدار | يحدد قواعد التحقق من صحة الكتلة التي يجب اتباعها. |
| هاش الكتلة السابقة | البصمة الرقمية للكتلة التي تسبقها، وهو ما يربط السلسلة ببعضها. |
| جذر ميركل | بصمة رقمية مدمجة لجميع المعاملات داخل الكتلة. |
| الطابع الزمني | الوقت التقريبي لإنشاء الكتلة (بتوقيت يونكس). |
| هدف الصعوبة | قيمة عددية تحدد مدى صعوبة العثور على هاش صالح للكتلة. |
| الرقم العشوائي (Nonce) | رقم عشوائي يستخدمه المعدّنون لحل اللغز الحسابي وإنشاء الكتلة. |
شجرة ميركل: كفاءة التحقق
تخيل كتلة تحتوي على آلاف المعاملات. كيف يمكنك التأكد من أن معاملتك موجودة ضمن هذه الكتلة دون الحاجة إلى فحص كل معاملة على حدة؟ هنا يأتي دور "شجرة ميركل" (Merkle Tree).
إنها بنية بيانات تأخذ جميع المعاملات في الكتلة، وتنشئ بصمة رقمية (هاش) لكل واحدة منها. بعد ذلك، تجمع كل بصمتين متجاورتين وتنشئ لهما بصمة جديدة. تتكرر هذه العملية بشكل هرمي حتى نصل إلى بصمة واحدة فقط في قمة الهرم. هذه البصمة النهائية تسمى "جذر ميركل" (Merkle Root).
يتم تضمين جذر ميركل في ترويسة الكتلة كدليل مشفر ومدمج على جميع المعاملات. أي تغيير، مهما كان صغيراً، في أي معاملة سيؤدي إلى تغيير جذري في الهاش الخاص بها، ومن ثم في كل الهاشات الأعلى في الهرم، وصولاً إلى جذر ميركل. هذا يضمن نزاهة البيانات ويجعل التلاعب بها شبه مستحيل.
لغز التعدين والرقم العشوائي
إذا كان جذر ميركل يضمن سلامة المعاملات، فكيف يتم تأمين الكتلة نفسها وربطها بالسلسلة؟ يتم ذلك من خلال عملية "التعدين" (Mining)، وهي سباق حسابي لحل لغز مشفر.
يأخذ المعدِّنون جميع مكونات ترويسة الكتلة (الإصدار، هاش الكتلة السابقة، جذر ميركل، الطابع الزمني، وهدف الصعوبة) ويضيفون إليها مكونًا متغيرًا: "الرقم العشوائي" (Nonce)، وهو مجرد رقم يبدأ عادةً من الصفر.
Nonce
noun
اختصار لـ "number used once"، وهو عدد صحيح يتم استخدامه مرة واحدة فقط في سياق مشفر. في البلوكتشين، هو الرقم الذي يغيره المعدّنون باستمرار للعثور على هاش كتلة صالح.
يقوم المعدِّن بتمرير بيانات الترويسة بالكامل، بما في ذلك الرقم العشوائي، عبر دالة التجزئة SHA-256 لإنتاج بصمة رقمية فريدة. الهدف هو العثور على "رقم عشوائي" ينتج بصمة تبدأ بعدد معين من الأصفار، وهذا العدد تحدده "صعوبة الشبكة".
إنها عملية تخمين عشوائي منظّم. يجرّب المعدّنون الملايين، بل المليارات، من الأرقام العشوائية في الثانية. أول معدِّن يجد الرقم الصحيح الذي ينتج الهاش المطلوب يفوز بالسباق، ويحصل على مكافأة، ويضيف كتلته إلى البلوكتشين.
الهاش الناتج لا يعمل فقط كدليل على إنجاز العمل الحسابي، بل يصبح أيضًا المعرّف الفريد للكتلة الجديدة. هذا الهاش سيتم تضمينه في ترويسة الكتلة التالية، مما يخلق سلسلة مترابطة وآمنة.
ربط السلسلة وضمان النزاهة
الآن اكتملت الصورة. كل كتلة جديدة تحتوي في ترويستها على الهاش الخاص بالكتلة التي سبقتها. هذا هو "الغراء" المشفر الذي يربط السلسلة معًا.
لنفترض أن مهاجمًا حاول تغيير معاملة في كتلة قديمة (مثلاً، الكتلة رقم 500). سيؤدي هذا التغيير إلى:
- تغيير جذر ميركل في الكتلة 500.
- تغيير هاش الكتلة 500، لأنه يعتمد على جذر ميركل.
- كسر الرابط مع الكتلة 501، لأن الهاش المخزن فيها لم يعد يطابق الهاش الجديد للكتلة 500.
لإخفاء هذا التلاعب، سيحتاج المهاجم إلى إعادة تعدين الكتلة 500 وكل كتلة تلتها (501، 502، وهكذا) بسرعة تفوق سرعة الشبكة بأكملها، وهو أمر شبه مستحيل في شبكة لامركزية كبيرة. هذا الربط المتسلسل هو ما يمنح البلوكتشين خاصية عدم القابلية للتغيير.
ما هما المكونان الرئيسيان اللذان تتألف منهما كل كتلة في البلوكتشين؟
ما هي الوظيفة الأساسية لـ "جذر ميركل" (Merkle Root) في ترويسة الكتلة؟
لقد استكشفنا البنية التحتية التقنية التي تجعل الكتل آمنة ومترابطة. هذه الآليات المشفرة هي التي تضمن سلامة البيانات وتجعل من البلوكتشين سجلاً موثوقًا.