دليلك إلى فهم الإنفاق المزدوج
الصفحة الرئيسية
المقالات
دليلك إلى فهم الإنفاق المزدوج

دليلك إلى فهم الإنفاق المزدوج

متوسط
تاريخ النشر Feb 17, 2020تاريخ التحديث Jan 31, 2023
7m

ما هو الإنفاق المزدوج؟

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

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


كيف يمكن منع الإنفاق المزدوج؟

النهج المركزي

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

لتزويد المستخدمين بأصول رقمية تحاكي النقود (تتسم بالمجهولية والقدرة على التداول من شخص لشخص)، يستطيع المصرف استخدام توقيعات عمياء – كما وضحها بالتفصيل عالم التشفير، ديفيد شوم، في ورقته البحثية عام 1982 التوقيعات العمياء للمدفوعات غير القابلة للتتبع.

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

بعد ذلك، يقوم بتحويل هذه البيانات إلى المصرف الذي سيخصم 100 دولار من حسابه، ويُوقع رسائل تؤكد قابلية استرداد كل جزء من المعلومات الخمسة مقابل 20 دولار. والآن، يستطيع دان إنفاق الأموال التي أصدرها المصرف، ويتجه إلى مطعم إرين ويشتري وجبة تبلغ تكلفتها 40 دولار. 

يستطيع دان إزالة عامل الإخفاء للكشف عن الرقم العشوائي المرتبط بكل عملة رقمية "ورقة نقدية"، والتي تُستخدم كمعرف فريد لكل وحدة (تشبه إلى حد كبير الرقم المُسلسل ). ثم يكشف عن رقميين منهما لـ إرين، والتي يتعين عليها استردادهم على الفور بهدف منع دان من إنفاقهم مرة أخرى عند تاجر آخر. سيقوم المصرف بالتحقق من صحة التوقيعات، وفي حالة التأكد من صحة كل شيء، سيتم إضافة 40 دولار إلى حساب إرين.

يتم الآن حرق النقود المستخدمة، ويجب إصدار المزيد منها إذا أرادت إرين إنفاق رصيدها الجديد بنفس الطريقة.

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


النهج اللامركزي

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

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

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

تُقدم له إرين العنوان العام الذي سيقوم بإرسال الأموال إليه. يُرسل دان المعاملة، والتي هي في الأساس رسالة موقعة توضح إرسال مبلغ 0.005 BTC من حساب دان إلى حساب إرين الآن. دون الدخول في تفاصيل كثيرة، يستطيع أي شخص حصل على معاملة دان الموقعة التحقق من امتلاكه لهذه العملات بالفعل وأنه لديه السُلطة لإرسالها.

كما أوضحنا سابقاً، تكون المعاملة صحيحة فقط في حالة تضمينها في كتلة تم تأكيدها. قبول المعاملات غير المؤكدة يشبه كثيراً قبول مبلغ 40 دولار في نظام eCash المذكور في المثال السابق، دون سحب الأموال من المصرف مباشرةً – مما يتيح للمرسل إمكانية إنفاقها في مكان آخر. لذلك، يُنصَح بأن تنتظر إرين 6 تأكيدات للكتلة على الأقل (حوالي ساعة واحدة تقريباً) قبل قبول المدفوعات من دان.


الإنفاق المزدوج في البيتكوين

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

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

هناك ثلاث طرق شائعة لتنفيذ هجمات الإنفاق المزدوج:

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

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


أفكار ختامية

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

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