تخطي إلى المحتوى الرئيسي

كيف تعمل البلوكتشين: شرح خطوة بخطوة

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

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

الخطوة 1: إنشاء المعاملة

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

مدخلات وعناصر المعاملة

يستخدم Bitcoin نموذج الناتج غير المصروف من المعاملة (UTXO). فكّر في UTXOs كأوراق نقدية رقمية في محفظتك. إذا كنت قد تلقيت 0.5 BTC و 0.3 BTC في معاملتين منفصلتين، فلديك نقطتا UTXO بإجمالي 0.8 BTC. عندما تريد إرسال 0.6 BTC، تقوم محفظتك بـ:

  1. اختيار UTXOs التي تغطي المبلغ مجتمعة (0.5 + 0.3 = 0.8 BTC).
  2. إنشاء معاملة بعنوان المستقبل كمخرج واحد (0.6 BTC).
  3. إنشاء مخرج التغيير بعودة إلى عنوانك الخاص (0.2 BTC مطروحاً منها رسوم المعاملة).
  4. تصبح UTXOs المختارة "مصروفة" والمخرجات الجديدة تصبح UTXOs جديدة.

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

التوقيع الرقمي

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

تعمل عملية التوقيع على النحو التالي:

  1. يتم تجزئة بيانات المعاملة باستخدام SHA-256 (Bitcoin) أو Keccak-256 (Ethereum).
  2. يتم توقيع التجزئة باستخدام المفتاح الخاص للمرسل عبر خوارزمية ECDSA.
  3. يتم إضافة التوقيع الرقمي الناتج إلى المعاملة.
  4. يمكن لأي شخص التحقق من التوقيع باستخدام المفتاح العام للمرسل، مما يؤكد أن المعاملة تم تفويضها من قبل مالك المفتاح دون الحاجة إلى رؤية المفتاح الخاص نفسه.

هذا مبدأ أساسي: التوقيع يثبت الملكية. مفتاحك الخاص لا يترك جهازك أثناء هذه العملية. فقط التوقيع — الذي لا يمكن استخدامه للهندسة العكسية للمفتاح الخاص — يتم مشاركته مع الشبكة.

الخطوة 2: بث المعاملة

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

النشر من نظير إلى نظير

تعمل شبكات البلوكتشين على طوبولوجيا من نظير إلى نظير (P2P). لا يوجد خادم مركزي. عندما تستقبل عقدة معاملتك، تقوم بإجراء فحوصات التحقق الأولية، وإن كانت صحيحة، تعيد إرسالها إلى نظرائها المتصلين. يتحقق هؤلاء النظراء والإرسال الإضافي. في غضون ثوان، تنتشر معاملتك عبر الشبكة بأكملها — وعادة ما تصل إلى غالبية العقد في 2 إلى 15 ثانية.

مجمع الذاكرة (Mempool)

بعد الانتشار، تدخل معاملتك مجمع الذاكرة (mempool) — منطقة انتظار للمعاملات غير المؤكدة يحتفظ بها كل عقدة. لا يعتبر مجمع الذاكرة مجموعة مشتركة واحدة؛ كل عقدة تحافظ على نسختها الخاصة، التي قد تختلف قليلاً بسبب تأخر الشبكة وسياسات العقد الفردية.

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

رسوم المعاملات

خدمة رسوم المعاملات بغرضين:

  1. تحفيز المعدنين/المدققين على تضمين معاملتك في كتلة.
  2. منع البريد العشوائي بجعل إغراق الشبكة برسائل بلا معنى مكلفاً.

في Bitcoin، يتم حساب الرسوم بناءً على حجم المعاملة بالبايت (وليس المبلغ المرسل). قد تكلف المعاملة التي ترسل 10 BTC نفس الرسوم مثل المعاملة التي ترسل 0.001 BTC إذا كانت بنفس حجم البايت.

في Ethereum، تتبع الرسوم نموذج EIP-1559 برسوم أساسية (محترقة) ونصيحة أولوية (مدفوعة للمدقق). تتكيف الرسوم الأساسية بشكل ديناميكي بناءً على ازدحام الشبكة.

الخطوة 3: التحقق من المعاملة

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

فحوصات التحقق

تقوم كل عقدة بإجراء فحوصات متعددة على كل معاملة تستقبلها:

  • الصحة الصيغية: هل تم تنسيق المعاملة بشكل صحيح وفقاً لمواصفات البروتوكول؟
  • التحقق من التوقيع: هل يطابق التوقيع الرقمي المفتاح العام للمرسل؟ هذا يؤكد أن المعاملة تم تفويضها من قبل مالك المفتاح الخاص.
  • فحص الإنفاق المزدوج: هل UTXOs المشار إليها (Bitcoin) لا تزال غير مصروفة، أم أن الحساب (Ethereum) لديه رصيد كافٍ؟
  • التحقق من البرنامج النصي: هل تعمل البرامج النصية الحاجزة والمفتوحة بشكل صحيح؟ (يستخدم Bitcoin لغة البرمجة النصية تسمى Script لتحديد شروط الإنفاق.)
  • كفاية الرسوم: هل تتضمن المعاملة رسوماً كافية لتلبية حد الترحيل الأدنى للعقدة؟
  • حدود الحجم: هل تقع المعاملة ضمن قيود حجم البروتوكول؟

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

الخطوة 4: بناء الكتلة

يجمع المعدنون (في أنظمة إثبات العمل) أو المدققون (في أنظمة إثبات الحصة) المعاملات المؤكدة من مجمع الذاكرة وينظمونها في كتلة مرشحة.

هيكل الكتلة

تحتوي كتلة نموذجية على:

رأس الكتلة:

  • الإصدار: إصدار البروتوكول.
  • تجزئة الكتلة السابقة: تجزئة SHA-256 لرأس الكتلة السابقة. هذا ما يخلق "السلسلة" في البلوكتشين.
  • جذر Merkle: تجزئة واحدة تلخص جميع المعاملات في الكتلة.
  • الطابع الزمني: الوقت التقريبي الذي تم إنشاء الكتلة فيه.
  • هدف الصعوبة (PoW): الحد الأدنى الذي يجب أن تكون تجزئة الكتلة أقل منه لكي تكون الكتلة صحيحة.
  • Nonce (PoW): عداد يزيده المعدنون أثناء البحث عن تجزئة صحيحة.

جسم الكتلة:

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

اختيار المعاملة

يختار المعدنون عادةً المعاملات لزيادة الإيرادات إلى الحد الأقصى، مع إعطاء الأولوية لتلك ذات معدلات الرسوم الأعلى. ومع ذلك، يجب عليهم أيضاً احترام حد حجم الكتلة (وزن كتلة 4 ميجابايت في Bitcoin) أو حد غاز الكتلة (حوالي 30 مليون غاز في Ethereum). هذا ينشئ سوقاً طبيعياً لمساحة الكتلة — خلال الطلب المرتفع، يتنافس المستخدمون بتقديم رسوم أعلى.

قد يكون لدى بعض المعدنين سياسات إضافية، مثل تضمين أنواع معينة من المعاملات بغض النظر عن الرسوم أو استبعاد المعاملات التي تتفاعل مع العناوين المعاقب عليها.

بناء شجرة Merkle

يتم بناء شجرة Merkle بمكررات تجزئة أزواج تجزئات المعاملات:

  1. يتم تجزئة كل معاملة بشكل فردي.
  2. يتم إقران التجزئات المجاورة وتجزئتها معاً.
  3. تتكرر هذه العملية حتى الشجرة حتى تبقى تجزئة واحدة: جذر Merkle.

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

الخطوة 5: الإجماع وإنتاج الكتلة

يجب أن تمر الكتلة المرشحة عبر آلية الإجماع للشبكة لكي يتم قبولها من قبل الشبكة. هنا هو المكان الذي تختلف فيه البلوكتشينات المختلفة بشكل كبير.

إثبات العمل (Bitcoin)

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

  1. ينشئ المعدن رأس الكتلة بجميع الحقول المطلوبة.
  2. يجزئ المعدن الرأس باستخدام SHA-256 (تم تطبيقها مرتين في Bitcoin).
  3. إذا كانت التجزئة الناتجة أقل من هدف الصعوبة، تكون الكتلة صحيحة.
  4. إن لم تكن كذلك، يزيد المعدن nonce ويحاول مرة أخرى.
  5. تتكرر هذه العملية مليارات المرات في الثانية عبر جميع المعدنين.

يتكيف هدف الصعوبة كل 2,016 كتلة (حوالي أسبوعين) للحفاظ على متوسط وقت كتلة قدره 10 دقائق، بغض النظر عن مقدار إجمالي قوة التعدين على الشبكة.

عندما يجد المعدن تجزئة صحيحة، يكون قد حل "اللغز" ويمكنه بث كتلته إلى الشبكة. أول معدن يجد حلاً صحيحاً يفوز بـ مكافأة الكتلة (حالياً 3.125 BTC بعد التنصيف في أبريل 2024) بالإضافة إلى جميع رسوم المعاملات في الكتلة.

إثبات الحصة (Ethereum)

يستخدم Ethereum إثبات الحصة، حيث يتم اختيار المدققين عشوائياً للترشيح للكتل بناءً على مقدار ETH الذي رهنوه (أقفلوه كضمان). العملية مختلفة بشكل أساسي:

  1. يتم اختيار مدقق عشوائياً شبه منتظم لاقتراح كتلة لكل فتحة 12 ثانية.
  2. ينشئ المقترح كتلة ويبثها.
  3. لجنة من المدققين تصادق (تصوت) على أن الكتلة صحيحة.
  4. بمجرد جمع عدد كافٍ من المصادقات، تعتبر الكتلة مبررة وفي النهاية محتمة.

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

للمقارنة الأعمق، انظر دليلنا على آليات الإجماع.

الخطوة 6: نشر الكتلة

بمجرد إنتاج كتلة صحيحة، يجب توزيعها عبر الشبكة.

نشر الشبكة

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

نقل الكتلة المدمجة (BIP 152)

يستخدم Bitcoin نقل الكتلة المدمجة لتسريع الانتشار. نظراً لأن معظم العقد لديها بالفعل المعاملات في مجمع الذاكرة الخاص بها، تحتاج الكتلة الجديدة فقط إلى نقل ملخص مدمج (معرفات معاملات قصيرة) بدلاً من بيانات المعاملة الكاملة. يمكن للعقد إعادة بناء الكتلة الكاملة من مجمع الذاكرة الخاص بها، مما يقلل متطلبات النطاق الترددي بحوالي 90%.

الكتل اليتيمة

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

الخطوة 7: التحقق من الكتلة وتمديد السلسلة

عندما تستقبل عقدة كتلة جديدة، تتحقق بشكل مستقل من الكتلة بأكملها قبل قبولها.

التحقق الكامل

تتحقق العقد من:

  • صحة رأس الكتلة: التنسيق الصحيح، تجزئة الكتلة السابقة الصحيحة، إثبات العمل يلبي هدف الصعوبة (أو توقيع المدقق الصحيح في PoS).
  • صحة المعاملة: كل معاملة في الكتلة تمرّ نفس فحوصات التحقق الموصوفة في الخطوة 3.
  • اتساق جذر Merkle: يطابق جذر Merkle المحسوب الموجود في رأس الكتلة.
  • حجم/وزن الكتلة: الكتلة لا تتجاوز حدود البروتوكول.
  • صحة Coinbase: مكافأة الكتلة وجمع الرسوم صحيحة وفقاً لقواعد البروتوكول الحالية.
  • نطاق الطابع الزمني: يقع الطابع الزمني للكتلة ضمن حدود مقبولة.

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

الخطوة 8: تأكيد المعاملة

بمجرد تضمين معاملتك في كتلة صحيحة، ستكون قد استقبلت التأكيد الأول. تضيف كل كتلة لاحقة مبنية فوق كتلة معاملتك تأكيداً إضافياً.

لماذا التأكيدات المتعددة مهمة

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

التأكيداتوقت انتظار Bitcoinمستوى الأمان
0 (غير مؤكد)عرضة لإنفاق مزدوج
1~10 دقائقمناسب للمبالغ الصغيرة
3~30 دقيقةأمان معقول
6~60 دقيقةمعيار للمبالغ الكبيرة
12+~ساعتانأمان عالي جداً

يعني المعيار المستشهد به عموماً وهو 6 تأكيدات لـ Bitcoin أن احتمالية إعادة تنظيم سلسلة ناجحة (وبالتالي إنفاق مزدوج) منخفضة جداً بشكل فلكي — ستتطلب من المهاجم التحكم في أكثر من 50% من قوة تجزئة الشبكة والحفاظ عليها لأكثر من ساعة.

يوفر Ethereum نهائية أسرع. في ظروف طبيعية، تصل المعاملة إلى النهائية (لا يمكن عكسها دون حرق ثلث جميع ETH المرهون على الأقل) في غضون 12 إلى 15 دقيقة تقريباً.

أنواع النهائية

  • النهائية الاحتمالية (Bitcoin): تصبح المعاملات أكثر صعوبة في الانعكاس مع كل تأكيد، لكن لا توجد نقطة مطلقة من عدم القابلية للعودة. يعتبر ستة تأكيدات الحد العملي المقبول على نطاق واسع.
  • النهائية الاقتصادية (Ethereum PoS): بعد النهائية، سيتطلب عكس معاملة حرق مليارات الدولارات من قيمة ETH المرهون — غير عقلاني اقتصادياً لأي مهاجم.
  • النهائية المطلقة (بعض سلاسل BFT): المعاملات غير قابلة للعكس فوراً عند تأكيد الكتلة. السلاسل مثل الشبكات القائمة على Tendermint توفر هذه الخاصية.

الصورة الكاملة: رحلة المعاملة

لتلخيص دورة الحياة الكاملة:

  1. تبدأ التحويل من محفظتك.
  2. **تنشئ