البيتكوين: نظام نقد الكتروني قائم على مبدأ الند للند
Satoshi Nakamoto
ترجمة :
أحمد الصيادي
[email protected] [/b]مُلخص: نسخة ند إلى ند على نحو محض من النقد الإلكتروني سوف يسمح للمدفوعات عبر الإنترنت أن ترسل مباشرة من طرف إلى آخر دون المرور عبر مؤسسة مالية. التوقيعات الرقمية توفر جزءًا من الحل ، ولكن يتم فقدان الفوائد الرئيسية إذا كان لا يزال مطلوبًا طرف ثالث موثوق به لمنع الإنفاق المزدوج. نقترح حلاً لمشكلة الإنفاق المزدوج باستخدام شبكة الند للند. تقوم هذه الشبكة بعمل ختومات زمنية لكل معاملة عن طريق دمجها في سلسلة مستمرة من إثبات العمل القائم على هاش، مشكلا بذلك سجلا لا يمكن تغييره دون إعادة عمل إثبات العمل. لا تعمل أطول سلسلة كدليل على تسلسل الأحداث التي شهدتها فحسب ، بل إنها دليل على أنها جاءت من أكبرتجمع لقوة وحدة المعالجة المركزية. طالما يتم التحكم في معظم قوة وحدة المعالجة المركزية من خلال العقد الصادقة ، فإنها سوف تولد أطول سلسلة و تتفوق على المهاجمين.
الشبكة نفسها تتطلب حد أدنى من البنية. كما يتم بث الرسائل على أساس أفضل جهد ، ويمكن للعقد أن تغادر وتعيد الانضمام إلى الشبكة متى شاءت ، وبقبول أطول سلسلة إثبات للعمل يعتبر كدليل على ما حدث أثناء اختفائها.
1. المقدمة
أصبحت التجارة على الإنترنت تعتمد بشكل شبه حصري على المؤسسات المالية التي تعمل كجهات خارجية موثوقة لمعالجة المدفوعات الإلكترونية. في حين أن النظام يعمل بشكل جيد بما فيه الكفاية لمعظم المعاملات ، فإنه لا يزال يعاني من نقاط الضعف المتأصلة في نموذج يستند إلى الثقة. المعاملات الغير قابلة للتراجع بالكامل غير ممكنة ، حيث لا يمكن للمؤسسات المالية تجنب التوسط في النزاعات. تكلفة الوساطة تزيد من تكاليف المعاملات ، مما يحد من الحد الأدنى لحجم المعاملات العملية ويقلل من إمكانية إجراء معاملات عارضة صغيرة ، وهناك تكلفة أوسع نطاقاً في خسارة القدرة على تقديم مدفوعات غير قابلة للتراجع للخدمات غير القابلة للإلغاء. ومع إمكانية التراجع، فإن الحاجة إلى الثقة تنتشر. يجب أن يكون التجار حذرين من عملائهم ، وهذا يكلفهم مزيدًا من المعلومات أكثر مما يحتاجون إليه. يتم قبول نسبة معينة من الاحتيال على أنها لا يمكن تجنبها. يمكن تجنب هذه التكاليف ومشاكل الدفع الغير مؤكدة باستخدام عملة مادية شخصيًا ، ولكن لا توجد آلية لإجراء الدفع عبر قناة اتصالات دون وجود طرف موثوق به.
فما هو مطلوب هو نظام دفع إلكتروني مستند إلى دليل تشفير بدلاً من الثقة ، مما يسمح لأي طرفين راغبين بالتعامل مباشرة مع بعضهما البعض دون الحاجة إلى طرف ثالث موثوق به.
إن المعاملات التي لا يمكن إلغائها عمليًا من الناحية الحسابية تحمي البائعين من الاحتيال ، ويمكن بسهولة تنفيذ آليات الضمان الروتينية لحماية المشترين. في هذا البحث ، نقترح حلاً لمشكلة الإنفاق المزدوج باستخدام خادم طابع زمني موزع من ند إلى ند لإنشاء إثبات حاسوبي مرتب زمنيا للمعاملات. النظام آمن طالما أن العقد الصادقة تتحكم بشكل جماعي في طاقة وحدة المعالجة المركزية أكثر من أي مجموعة متعاونة من العقد المهاجمة.
2. المعاملاتنُعًرف أي عملة إلكترونية على أنها سلسلة من التوقيعات الرقمية. يقوم كل مالك بتحويل العملة إلى التالي من خلال التوقيع رقمياً على هاش المعاملة السابقة والمفتاح العمومي للمالك القادم وإضافتهم إلى نهاية العملة. يمكن للمستفيد التحقق من التوقيعات للتأكد من سلسلة الملكية.
المشكلة بالطبع هي أن المستلم لا يمكنه التحقق من أن أحد المالكين لم ينفق العملة مرتين ( بشكل مزدوج). الحل الشائع هو تقديم سلطة مركزية موثوق بها أو مصنع صك عملة يقوم بالتحقق من كل معاملة لمنع الإنفاق المزدوج. بعد كل معاملة ، يجب أن تعاد العملة إلى مصنع صك العملة لإصدار عملة جديدة ، ولا يوثق إلا بالعملات التي تصدر مباشرة من مصنع صك العملة للتأكد من عدم إنفاقها أكثر من مرة. تكمن المشكلة في هذا الحل في أن مصير النظام المالي بأكمله يعتمد على الشركة التي تدير مصنع صك العملة ، كل معاملة يجب أن تمر بها ، تمامًا مثل البنك.
نحن بحاجة إلى وسيلة للمستلم أن يعلم أن المالكين السابقين لم يوقعوا على أي معاملات سابقة. هدفنا هو أن تكون المعاملة السابقة هي المعاملة التي يتم احتسابها ، لذا فنحن لا نهتم بالمحاولات اللاحقة للإنفاق المزدوج . الطريقة الوحيدة لتأكيد فقدان معاملة هي أن تكون على علم بجميع المعاملات. في النموذج القائم على مصنع صك العملة ، كان مصنع صك العملة على علم بجميع المعاملات ويمكنه تحديد المعاملات التي حصلت أولاً. لإنجاز هذا دون طرف موثوق به ، يجب الإعلان عن المعاملات بشكل علني [1]، كما نحن بحاجة إلى نظام للمشاركين للاتفاق على تاريخ واحد للترتيب الذي تم به إستلام المعاملات. ويحتاج المستلم إلى إثبات أنه في وقت كل معاملة، وافقت أغلبية العقد على أنها المرة الأولى التي تم استلام هذه المعاملة فيها.
3. خادم الطابع الزمني
يبدأ الحل الذي نقترحه بخادم الطابع الزمني. يعمل خادم الطابع الزمني على أخذ هاش لكتلة من العناصر ليتم ختمها زمنيا ونشرها على نطاق واسع ، كما هو الحال في الصحف أو بريد المجموعات الأخبارية[2-5]. من الواضح ، ومن أجل الوصول إلى سلسلة هاش ، يثبت الطابع الزمني أن البيانات يجب أن تكون موجودة في ذلك الوقت. يتضمن كل طابع زمني الطابع الزمني السابق له في الهاش ، مشكلا سلسلة ، و كل طابع زمني إضافي يعزز ذلك الذي قبله.
4. إثبات العمللتنفيذ خادم طابع زمني موزع يقوم على مبدأ الند للند، سوف نحتاج إلى نظام إثبات العمل، وهو نظام مشابه ل (Adam Back's Hashcash) [6] بدلا من الصحف أو بريد المجموعات الأخبارية.
إثبات العمل يشمل البحث عن قيمة هاش، كاستخدام خوارزمية هاش SHA-256، قيمة هاش هذه تبدأ بالعديد من البتات الصفرية. علاقة متوسط العمل المطلوب و عدد البتات الصفرية المطلوبة هي علاقة أسيّة ويمكن التحقق منها عن طريق تنفيذ عملية هاش واحدة.
بالنسبة إلى شبكة الطابع الزمني الخاصة بنا ، نقوم بتطبيق إثبات العمل عن طريق زيادة قيمة مؤقتة في الكتلة حتى يتم العثور على قيمة تعطي هاش الكتلة البتات الصفرية المطلوبة. بمجرد أن يتم إنفاق جهد وحدة المعالجة المركزية لجعله يستوفي متطلبات إثبات العمل ، لا يمكن تغيير الكتلة دون إعادة العمل. كما يتم تقييد الكتل التالية بعد ذلك ، فإن العمل على تغيير الكتلة سيشمل إعادة عمل كل الكتل التي بعدها.
إثبات العمل يحل أيضًا مشكلة توضيح القرار في عملية اتخاذ القرار بالأغلبية. إذا كانت الأغلبية مستندة على مبدأ صوت واحد لكل عنوانIP واحد ، فقد يتم تخريبها من قبل أي شخص قادر على تخصيص العديد من عناوين IP. و إثبات العمل هو في الأساس صوت واحد لكل وحدة معالجة مركزية واحدة. يتم تمثيل قرار الأغلبية بأطول سلسلة ، والتي لديها أكبر قدر من إثباتات العمل المستثمرة فيها. إذا تم التحكم بأغلبية قوة وحدة المعالجة المركزية بواسطة عقد صادقة ، فإن السلسلة الصادقة ستنمو أسرع وتتفوق على أي سلاسل منافسة. لتعديل كتلة سابقة ، يجب على المهاجم أن يعيد إثبات عمل الكتلة وكل الكتل التي بعدها ثم يلحق ب ويتفوق على عمل العقد الصادقة. سنظهر لاحقًا أن احتمالية اللحاق لمهاجم أبطأ، تتضاءل بشكل كبير مع إضافة الكتل التالية. لتعويض الأثر الناتج عن زيادة سرعة الهاردوير والاهتمام المتباين بتشغيل العقد مع مرور الوقت ، يتم تحديد صعوبة إثبات العمل بمتوسط متحرك يستهدف متوسط عدد الكتل في الساعة. إذا تم إنشاء الكتل بسرعة كبيرة ، تزداد الصعوبة.
5. الشبكةخطوات تشغيل الشبكة هي كما يلي:
1) يتم بث المعاملات الجديدة لجميع العقد.
2) كل عقدة تجمع المعاملات الجديدة في كتلة.
3) تعمل كل عقدة على العثور على إثبات عمل صعب لكتلتها.
4) عندما تجد العقدة إثبات عمل، فإنها تبث الكتلة لجميع العقد.
5) العقد تقبل الكتلة فقط إذا كانت جميع المعاملات الموجودة فيها صالحة ولم تنفق بالفعل.
6) تعرب العقد عن قبولها للكتلة من خلال العمل على إنشاء الكتلة التالية في السلسلة ، باستخدام هاش الكتلة المقبولة كهاش سابق.
العقد دائمًا تعتبر أطول سلسلة لتكون السلسلة الصحيحة وستستمر في العمل على توسيعها. إذا قامت عقدتان ببث إصدارات مختلفة من الكتلة التالية في نفس الوقت ، فقد تتلقى بعض العقد واحدة منهما أولاً أو الأخرى. في هذه الحالة ، تعمل على أول واحد يتلقونها ، ولكن يحفظ الفرع الآخر لحالة أن يصبح أطول. سيتم كسر هذه الحالة عندما يتم العثور على إثبات العمل التالي ويصبح فرع واحد أطول ؛ ستنتقل العقد التي كانت تعمل في الفرع الآخر إلى السلسلة الأطول.
بث المعاملات الجديدة لا يحتاج بالضرورة إلى الوصول إلى جميع العقد. طالما أنها تصل إلى العديد من العقد ، فإنها سوف تدخل في كتلة قبل فترة طويلة. بث الكتل هو أيضا متسامح مع فقدان الرسائل. فإذا لم تتلقى العقدة كتلة ما ، فستطلبها عند استلامها للكتلة التالية وتدرك أنها قد فقدتها.
6. الحافزحسب الاتفاقية ، فإن المعاملة الأولى في كتلة هي معاملة خاصة تبدأ عملة جديدة يملكها منشئ الكتلة. وهذا يضيف حافزا للعقد لدعم الشبكة ، ويوفر طريقة لتوزيع القطع النقدية في التداول في البداية ، حيث لا توجد سلطة مركزية لإصدارها. إن الإضافة الثابتة لكمية من العملات الجديدة يشبه عمال مناجم الذهب الذين ينفقون الموارد لإضافة الذهب إلى التداول. في حالتنا ، هو وقت وحدة المعالجة المركزية والكهرباء التي يتم إنفاقها.
ويمكن أيضا أن يتم تمويل الحافز من خلال رسوم الصفقة. إذا كانت قيمة المخرجات للمعاملة أقل من قيمة مدخلاتها ، يكون الفرق عبارة عن رسوم معاملة تتم إضافتها إلى القيمة الحافزة للكتلة المحتوية على الصفقة. بمجرد أن يتم تداول عدد محدد من العملات ، يمكن أن ينتقل الحافز بالكامل إلى رسوم المعاملات ويكون خالٍ من التضخم تمامًا.
قد يساعد الحافز في تشجيع العقد على البقاء صادقة. إذا كان المهاجم الجشع قادرًا على تجميع المزيد من قوة وحدة المعالجة المركزية أكبر من جميع العقد الصادقة ، فسيتعين عليه الاختيار بين استخدامها للاحتيال على الأشخاص عن طريق سرقة و إستعادة مدفوعاته ، أو استخدامها لتوليد عملات معدنية جديدة. سوف يجب عليه أن يجد أن اللعب بالقواعد أكثر ربحية ، مثل القواعد التي تجعله يحصل على قطع نقدية جديدة أكثر من الأشخاص الآخرين مجتمعين ، بدلاً من تقويض النظام وصحة ثروته الخاصة.
7. إستعادة مساحة القرص بمجرد دفن أحدث معاملة لعملة تحت كتل كافية ، يمكن التخلص من المعاملات المستنفدة قبلها ليتم توفير مساحة على القرص. لتسهيل هذا دون كسر هاش الكتلة ، يتم استخدام هذه المعاملات لتكوين شجرة Merkle ، فقط الجذر هو الوحيد المتضمن في هاش كتلة.ويمكن بعد ذلك ضغط الكتل القديمة عن طريق فلق أغصان الشجرة. ولا يلزم تخزين الهاشات الداخلية.
سيكون رأس أي كتلة بدون معاملات حوالي 80 بايت. إذا افترضنا أن الكتل يتم إنشاؤها كل 10 دقائق ، 80 بايت * 6 * 24 * 365 = 4.2 ميغابايت في السنة. مع أنظمة الكمبيوتر التي تباع عادة مع 2 غيغابايت من ذاكرة الوصول العشوائي اعتبارا من عام 2008 ، ويتوقع قانون مور النمو الحالي ب 1.2 غيغابايت في السنة ، لا ينبغي أن يكون التخزين مشكلة حتى إذا كان يجب الاحتفاظ برؤوس الكتل في الذاكرة.
8. التحقق المبسط من الدفعمن الممكن التحقق من المدفوعات دون تشغيل عقدة شبكة كاملة. يحتاج المستخدم فقط إلى الاحتفاظ بنسخة من رؤوس الكتل لأطول سلسلة من إثباتات العمل ، والتي يمكن الحصول عليها من خلال الاستعلام عن عقد الشبكة حتى يتم اقتناعه بامتلاك أطول سلسلة ، والحصول على فرع Merkle الذي يربط المعاملة بالكتلة المختمة زمنيا. لا يمكنه التحقق من المعاملة بنفسه ، ولكن عن طريق ربطها بمكان في السلسلة ، يمكنه أن يرى أن هناك عقدة شبكة قد قبلتها ، والكتل التي تمت إضافتها بعد تعمل على مزيد من التأكد من قبول الشبكة لها.
على هذا النحو ، يكون التحقق موثوقًا طالما أن العقد الصادقة تتحكم في الشبكة ، ولكنها أكثر عرضة للخطر إذا تم التغلب على الشبكة من قِبل مهاجم. بينما يمكن لعقد الشبكة التحقق من المعاملات بنفسها ، يمكن أن تنخدع الطريقة المبسطة بواسطة معاملات ملفقة لمهاجم طالما أن المهاجم يمكن أن يستمر في التغلب على الشبكة. تتمثل إحدى الاستراتيجيات للحماية من ذلك في قبول التنبيهات من عقد الشبكة عند اكتشاف كتلة غير صالحة ، مما يدفع برنامج المستخدم إلى تنزيل الكتلة الكاملة والمعاملات التي تم تنبيهها لتأكيد عدم التناسق. ربما لا تزال الشركات التي تتلقى دفع متكرر ترغب في تشغيل عقدها الخاصة لمزيد من الأمان المستقل والتحقق السريع.
9. دمج وتقسيم القيمة على الرغم من أنه سيكون من الممكن التعامل مع العملات بشكل فردي ، سيكون من غير العملي إجراء معاملة منفصلة لكل سنت في عملية التحويل. للسماح بتقسيم القيمة ودمجها ، تحتوي المعاملات على العديد من المدخلات والمخرجات. عادةً ما يكون هناك إما إدخال واحد من معاملة سابقة أكبر أو مدخلات متعددة تجمع بين مقادير أصغر ، وفي الغالب مخرجين : أحدهما للدفع ، والآخر للإرجاع ، إن وجد ، إلى المرسل.
وتجدر الإشارة إلى أن المعاملة الواحدة تعتمد على عدة معاملات، وتلك المعاملات تعتمد على عدد أكبر من ذلك ،وهذه ليست مشكلة هنا. لا توجد حاجة مطلقًا إلى استخراج نسخة مستقلة كاملة من سجل المعاملات.