كيف يعمل البلوكشين: البلوك، الهاش، السلسلة، وشجرة ميركل

أربعة مفاهيم فقط. افهمها مرة واحدة، وتنتهي حاجتك لسؤال «يعني إيش بلوكشين؟» إلى الأبد.

كلمة «بلوكشين» صارت تُستعمل في كل شيء، لدرجة أن معناها كاد يضيع. الحقيقة أنها اسم وصفي حرفي: سلسلة (chain) من الكتل (blocks). خلّنا نفكّكها من الداخل.

١ — الهاش: البصمة الرقمية

دالة الهاش تأخذ أي شيء — كلمة، كتاب، فيلم — وتُخرج سلسلة ثابتة الطول. في البيتكوين تُستخدم SHA-256 فتُخرج 256 بت (64 حرفاً ست عشرياً) مهما كان حجم المُدخل.

ثلاث خصائص تُبنى عليها كل الفكرة
حتمية : نفس المُدخل ← نفس المخرج، دائماً وأبداً.أحادية : من المخرج لا يمكنك استرجاع المُدخل.حسّاسة : تغيير حرف واحد ← بصمة مختلفة كلياً.

الخاصية الثالثة هي المهمة: لا يوجد «تعديل بسيط» في عالم الهاش. أي تغيير مهما صغر يفضح نفسه فوراً.

٢ — البلوك: ماذا بداخله؟

البلوك ليس صندوقاً غامضاً. هو ملف منظّم فيه جزآن: رأس صغير، وجسم فيه المعاملات.

العنصر في رأس البلوكوظيفته
هاش البلوك السابقالحلقة التي تربط السلسلة — هنا تُصنع «عدم القابلية للتغيير»
جذر ميركلبصمة واحدة تلخّص كل معاملات هذا البلوك
الطابع الزمنيمتى تقريباً أُنشئ البلوك
الصعوبة (Difficulty)كم يجب أن يكون الحل صعباً في هذه الفترة
الـ Nonceالرقم المتغيّر الذي يبحث عنه المُعدِّن حتى تتحقّق الصعوبة

٣ — السلسلة: لماذا لا يمكن التزوير؟

كل بلوك يحمل داخله هاش البلوك الذي قبله. هذا التفصيل الصغير هو كل شيء. تخيّل أنك أردت تعديل معاملة في بلوك عمره سنة:

  1. تعدّل المعاملة

    يتغيّر جذر ميركل لذلك البلوك تلقائياً، فيتغيّر هاش البلوك كله.

  2. ينكسر البلوك التالي

    لأنه يحمل الهاش القديم. فتضطرّ لإعادة تعدينه هو أيضاً.

  3. ثم الذي بعده… وهكذا

    كل بلوك لاحق حتى نهاية السلسلة يجب إعادة بنائه — بكامل تكلفته الطاقية.

  4. وأنت تسابق العالم

    بينما تعيد بناء سنة كاملة، بقية الشبكة تضيف بلوكات جديدة أسرع منك. الفجوة تتّسع لا تضيق.

٤ — شجرة ميركل: كيف تتحقّق بلا تحميل كل شيء؟

بلوك واحد قد يحوي آلاف المعاملات. لو أردت التأكد أن معاملتك موجودة فيه، هل تحمّل كل المعاملات؟ لا داعي. شجرة ميركل تحلّها بأناقة: تُهشَّر المعاملات أزواجاً، ثم تُهشَّر النتائج أزواجاً، حتى يبقى جذر واحد.

شجرة ميركل لأربع معاملات
Merkle Root / \ H(AB) H(CD) / \ / \ H(A) H(B) H(C) H(D) | | | |A B C D ← المعاملات

لإثبات أن المعاملة A داخل البلوك، تحتاج فقط H(B) و H(CD) — لا كل المعاملات. هذا ما يجعل «التحقّق المبسّط من الدفع» (SPV) ممكناً على جوالك.

وقفة صدق: ما الذي لا يفعله البلوكشين؟

  • لا يضمن أن البيانات صحيحة، يضمن فقط أنها لم تتغيّر بعد تسجيلها. لو سجّلت كذبة، تبقى كذبة محفوظة إلى الأبد.
  • لا يجعل كل شيء أفضل. أغلب المشاريع التي «تضع X على البلوكشين» كانت قاعدة بيانات عادية تكفيها وتزيد.
  • لا يحمي مفتاحك. لو ضاع مفتاحك الخاص، السلسلة سليمة تماماً — ومالك ذهب تماماً.
  • ليس سريعاً. البطء والتكرار هما ثمن ألّا تثق بأحد.
عدم القابلية للتغييرImmutabilityصعوبة تعديل ما سُجّل سابقاً، لأن كل بلوك مربوط بما بعده.
جذر ميركلMerkle Rootالبصمة النهائية التي تلخّص كل معاملات البلوك في قيمة واحدة.
التحقّق المبسّطSPVالتأكد من معاملة بحمل رؤوس البلوكات فقط بدل السلسلة كاملة.
رأس البلوكBlock Headerالجزء المختصر من البلوك الذي يحوي الهاش السابق وجذر ميركل والطابع الزمني.

المصادر

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

  1. ethereum.org مصدر أوّلي Developer Docs — Blocks, Hashing & Data Structures ethereum.org/developers/docs/
  2. NIST جهة رسمية أكتوبر 2018 NISTIR 8202 — Blockchain Technology Overview csrc.nist.gov/pubs/ir/8202/final
  3. bitcoin.org مصدر أوّلي Bitcoin Developer Reference — Block Chain developer.bitcoin.org/reference/block_chain.html