المؤلف: ساتوشي ناكاموتو. الترجمة الصينية: لي شياو لاي
ملخص: نسخة نقض إلى نظير من نظام نقدي إلكتروني يسمح بإرسال المدفوعات عبر الإنترنت مباشرة من طرف إلى آخر دون المرور عبر مؤسسة مالية. بينما تقدم التوقيعات الرقمية بعض الحلول ، يتم تعويض الفوائد الرئيسية للمدفوعات الإلكترونية عندما لا تزال هناك حاجة إلى طرف ثالث موثوق به لمنع الإنفاق المزدوج. نقترح حلا يستخدم شبكة نظير إلى نظير لحل مشكلة الإنفاق المزدوج. ستقوم شبكة نظير إلى نظير بختم زمني لكل معاملة عن طريق إدخال البيانات المجزأة للمعاملة في سلسلة إثبات عمل واسعة النطاق قائمة على التجزئة يستحيل تغييرها ما لم يتم إعادة بنائها بالكامل. يتم استخدام أطول سلسلة لإثبات الأحداث التي شهدتها وترتيبها ، ومن ناحية أخرى ، لإثبات أنها تأتي من أكبر مجموعة من قوة تجزئة وحدة المعالجة المركزية. طالما يتم التحكم في الغالبية العظمى من قوة حوسبة وحدة المعالجة المركزية بواسطة العقد الحميدة - أي أنها لا تتعاون مع أولئك الذين يحاولون مهاجمة الشبكة - فإن العقد الحميدة ستولد أطول سلسلة وتتفوق على المهاجم. الشبكة نفسها تحتاج إلى الحد الأدنى من الهيكل. وستنشر المعلومات على أساس بذل أفضل الجهود، وستأتي العقد وتذهب بحرية؛ ومع ذلك ، عند الانضمام ، من الضروري دائما قبول أطول سلسلة من إثبات العمل كدليل على كل ما حدث خلال الفترة التي لم يشاركوا فيها.
1. مقدمة
تعتمد التجارة عبر الإنترنت بشكل كامل تقريبا على المؤسسات المالية كأطراف ثالثة موثوق بها لمعالجة المدفوعات الإلكترونية. في حين أن النظام جيد جدا لمعظم المعاملات ، إلا أنه لا يزال يعوقه العيوب المتأصلة في النماذج القائمة على الثقة. معاملة لا رجعة فيها تماما ليست ممكنة عمليا, حيث لا يمكن للمؤسسات المالية تجنب نزاعات التحكيم. تزيد تكلفة التحكيم من تكاليف المعاملات ، مما يحد بدوره من حجم الحد الأدنى للمعاملة الممكنة ويمنع ببساطة العديد من معاملات الدفع الصغير. علاوة على ذلك ، هناك تكلفة أكبر: لا يمكن للنظام إجراء مدفوعات لا رجعة فيها مقابل الخدمات التي لا يمكن عكسها. لقد خلقت إمكانية الانعكاس حاجة واسعة النطاق للثقة. يجب أن يكون التجار حذرين من عملائهم ، وأن يزعجوهم بتقديم المزيد من المعلومات التي لن تكون ضرورية إذا لم تكن كذلك (إذا كانت موثوقة). تعتبر نسبة معينة من الاحتيال أمرا لا مفر منه. يمكن تجنب هذه التكاليف وعدم اليقين في الدفع عندما يتم الدفع مباشرة بين الأشخاص الذين يستخدمون العملة المادية. ومع ذلك ، لا توجد آلية لكلا الطرفين لإجراء المدفوعات من خلال قنوات الاتصال دون الوثوق بأحدهما.
ما نحتاجه حقا هو نظام دفع إلكتروني يعتمد على البراهين المشفرة بدلا من الثقة ، مما يسمح لأي طرفين بالتعامل مباشرة دون الحاجة إلى الوثوق بطرف ثالث. يمكن أن تساعد المعاملة التي لا رجعة فيها لضمان معدل التجزئة البائعين على تجنب الاحتيال ، كما أن آلية الضمان اليومية لحماية المشترين سهلة التنفيذ. في هذه الورقة ، سنقترح حلا للإنفاق المزدوج ، باستخدام خادم طابع زمني موزع من نظير إلى نظير لإنشاء إثباتات قائمة على معدل التجزئة تسجل كل معاملة بترتيب زمني. النظام آمن ، طالما أن العقد الصادقة تتمتع عموما بقوة وحدة المعالجة المركزية أكثر من المهاجمين الذين يتعاونون مع بعضهم البعض.
2. المعاملات
نعرف العملة الإلكترونية على أنها سلسلة من التوقيعات الرقمية. عندما يعطي المالك عملة معدنية لشخص آخر ، فإنه يفعل ذلك عن طريق إلحاق التوقيع الرقمي التالي بنهاية سلسلة التوقيع الرقمي: تجزئة المعاملة السابقة والمفتاح العام للمالك الجديد. يمكن للمدفوع لأمره التحقق من ملكية سلسلة التوقيع الرقمي عن طريق التحقق من التوقيع.
تكمن مشكلة هذا المسار في أن المستلم لا يمكنه التحقق من عدم قيام أي شخص بالدفع مرتين بين المالكين السابقين. الحل الشائع هو جلب سلطة مركزية موثوقة ، أو "النعناع" ، وجعلها تتحقق من الإنفاق المزدوج على كل معاملة. بعد كل معاملة ، يجب إعادة العملة إلى النعناع ، الذي يصدر عملة جديدة. علاوة على ذلك ، فإن العملات المعدنية الصادرة مباشرة عن دار سك العملة فقط هي ذات مصداقية ولم يتم دفعها مرتين. تكمن مشكلة هذا الحل في أن مصير النظام النقدي بأكمله مرتبط بالشركة التي تدير النعناع (مثل البنك) ، ويجب أن تمر كل معاملة من خلاله.
كنا بحاجة إلى طريقة للمستلم لتأكيد أن المالك السابق لم يوقع على أي معاملات سابقة. لأغراضنا ، يتم احتساب المعاملات الأولى فقط ، لذلك لا نهتم بمحاولات الإنفاق المزدوج اللاحقة. الطريقة الوحيدة للتأكد من عدم وجود معاملة هي أن تكون على علم بجميع المعاملات. في نموذج النعناع ، يكون النعناع على دراية بجميع المعاملات وقادر على تأكيد ترتيب تلك المعاملات. ولكي نتمكن من تحقيق ذلك دون تدخل "طرف موثوق به"، يجب الإعلان عن سجل المعاملات علنا1، ونحن بحاجة إلى نظام يسمح للمشاركين بالاتفاق على نفس سجل المعاملات الفريد الذي يتلقونه. يحتاج المدفوع لأمره إلى إثبات أنه في وقت كل معاملة ، يمكن أن تتفق غالبية العقد على أنها كانت أول من يتم استلامه.
3. خادم الطابع الزمني
يبدأ هذا الحل بخادم الطابع الزمني. إليك كيفية عمل خادم الطابع الزمني: فهو يختم تجزئة مجموعة من السجلات ، ثم يبث التجزئة ، كما تفعل الصحيفة ، أو مثل منشور في Usenet.2 3 4 5. من الواضح أن الطابع الزمني يثبت أن البيانات كانت موجودة قبل تلك النقطة الزمنية ، وإلا لما تم إنشاء التجزئة. يحتوي كل طابع زمني على طابع زمني سابق في التجزئة الخاصة به ، وبالتالي تشكيل سلسلة ؛ تتم إضافة كل طابع زمني جديد بعد الطابع الزمني السابق.
من أجل تنفيذ خادم الطابع الزمني الموزع القائم على نظير إلى نظير ، نحتاج إلى استخدام نظام إثبات العمل مثل Adam Burke's Hash Cash 6 ، بدلا من شيء مثل صحيفة أو منشور مجموعة أخبار. ما يسمى إثبات العمل هو إيجاد قيمة. لكي تكون هذه القيمة صحيحة: بعد استخراج قيمة تجزئة لها - على سبيل المثال ، باستخدام SHA-256 لحساب قيمة التجزئة - يجب أن تبدأ قيمة التجزئة بعدد معين من الأصفار. كل متطلب إضافي من 0 يزيد من مقدار العمل أضعافا مضاعفة ، والتحقق من هذا القدر من العمل يتطلب فقط حساب التجزئة.
في شبكة الطوابع الزمنية الخاصة بنا ، نقوم بتنفيذ إثبات العمل بالطريقة التالية: نستمر في إضافة nonce إلى كتلة حتى يتم العثور على قيمة تفي بالشروط ؛ الشرط لذلك هو أن تجزئة الكتلة تبدأ بالعدد المحدد من 0s. بمجرد أن تفي نتيجة استهلاك طاقة الحوسبة لوحدة المعالجة المركزية بإثبات العمل ، لم يعد من الممكن تغيير الكتلة ما لم يتم إعادة بناء جميع الأعمال السابقة. مع إضافة كتل جديدة طوال الوقت ، فإن تغيير الكتلة الحالية يعني إعادة الانتهاء من جميع الكتل اللاحقة.
إثبات العمل يحل أيضا مشكلة كيفية تحديد من يمكنه اتخاذ القرارات نيابة عن الأغلبية. إذا كان ما يسمى ب "الأغلبية" يعتمد على نهج "عنوان IP واحد ، صوت واحد" ، فيمكن اعتبار أي شخص يمكنه التعامل مع العديد من عناوين IP "أغلبية". إثبات العمل هو في الأساس "وحدة معالجة مركزية واحدة ، صوت واحد". يتم تمثيل ما يسمى ب "قرار الأغلبية" بأطول سلسلة ، لأنها السلسلة التي تم وضع أكبر قدر من العمل فيها. إذا تم التحكم في غالبية طاقة حوسبة وحدة المعالجة المركزية بواسطة عقد صادقة ، فإن السلسلة الصادقة ستنمو بشكل أسرع ، وستكون أسرع بكثير من السلاسل المنافسة الأخرى. من أجل تغيير كتلة تم إنتاجها بالفعل ، سيتعين على المهاجم إعادة إكمال إثبات العمل لتلك الكتلة وجميع الكتل اللاحقة ، ثم اللحاق بعمل العقدة الصادقة وتجاوزه. توضح هذه المقالة سبب انخفاض احتمالية تأخر المهاجم في اللحاق بالركب بشكل كبير مع زيادة عدد الكتل.
من أجل التعامل مع العدد المتزايد من قوة حوسبة الأجهزة وعدد مساهمات العقدة التي قد تتغير بمرور الوقت ، يتم تحديد صعوبة إثبات العمل من خلال المتوسط المتحرك لعدد الكتل المنتجة في الساعة في المتوسط. إذا تم إنشاء الكتلة بسرعة كبيرة ، فستزداد الصعوبة.
5. شبكة
فيما يلي خطوات تشغيل الشبكة:
يتم بث جميع المعاملات الجديدة إلى جميع العقد ؛
كل عقدة حزم المعاملات الجديدة في كتلة.
تبدأ كل عقدة في العثور على إثبات صعب للعمل لهذه الكتلة ؛
عندما تجد الكتلة دليلا على عملها ، فإنها تبث الكتلة إلى جميع العقد ؛
ستقبل العديد من العقد الأخرى الكتلة إذا وفقط إذا تم استيفاء الشروط التالية: جميع المعاملات صالحة ولم يتم دفعها مرتين ؛
تشير العديد من العقد إلى الشبكة أنها تقبل الكتلة عن طريق معاملة تجزئة الكتلة المقبولة على أنها التجزئة قبل الكتلة الجديدة عند إنشاء الكتلة التالية.
تعتقد العقدة دائما أن أطول سلسلة هي السلسلة الصحيحة وتستمر في إضافة بيانات جديدة إليها. إذا بثت عقدتان في وقت واحد نسختين مختلفتين من "Next Block" إلى الشبكة ، فستتلقى بعض العقد إحداهما أولا ، بينما ستتلقى الأخرى الأخرى أولا. في هذه الحالة ، ستستمر العقد في العمل على الكتلة التي تلقتها أولا ، ولكنها ستحفظ أيضا الفرع الآخر في حال أصبحت أطول سلسلة. عندما يتم العثور على إثبات العمل التالي ويصبح أحد الفروع أطول ، يتم حل هذا الاختلاف المؤقت وتتحول العقد التي تعمل على الفرع الآخر إلى سلسلة أطول.
لا يلزم بالضرورة بث المعاملات الجديدة إلى جميع العقد. طالما تم الوصول إلى عدد كاف من العقد ، فلن يمر وقت طويل قبل أن يتم تعبئة هذه المعاملات في كتلة. يسمح حظر عمليات البث أيضا بتجاهل بعض الرسائل. إذا لم تتلق العقدة كتلة ، فستدرك العقدة أنها فاتتها الكتلة السابقة عندما تتلقى الكتلة التالية ، وستقدم طلبا لاستبدال الكتلة المفقودة.
6. حوافز
حسب الاتفاقية ، فإن المعاملة الأولى لكل كتلة هي معاملة خاصة تولد عملة جديدة وتنتمي إلى مولد الكتلة. إن القيام بذلك يكافئ العقد على دعم الشبكة وتوفير طريقة لإصدار العملات المعدنية للتداول - في نظام لا توجد فيه سلطة مركزية لإصدار تلك العملات المعدنية على أي حال. وبالتالي فإن إضافة عدد معين من العملات المعدنية الجديدة إلى التداول بشكل مطرد يشبه عمال مناجم الذهب الذين يستخدمون مواردهم باستمرار لإضافة الذهب إلى التداول. في نظامنا ، الموارد التي يتم استهلاكها هي الوقت الذي تعمل فيه وحدة المعالجة المركزية والطاقة التي تستخدمها.
يمكن أن تأتي المكافآت أيضا من رسوم المعاملات. إذا كانت قيمة مخرجات المعاملة أقل من قيمة الإدخال ، فإن الفرق هو رسوم المعاملة ؛ يتم استخدام رسوم المعاملة لمكافأة العقد لتعبئة المعاملة في هذه الكتلة. بمجرد تداول العدد المحدد من العملات المعدنية ، سيتم تغطية المكافآت بالكامل من خلال رسوم المعاملات ، ولن يكون هناك أي تضخم على الإطلاق.
قد تشجع آلية المكافأة أيضا العقد على أن تكون صادقة. إذا كان المهاجم الجشع قادرا على الاستيلاء على طاقة وحدة المعالجة المركزية أكثر من كل العقد الصادقة ، فعليه أن يختار: هل يجب عليه استخدام قوة الحوسبة هذه لخداع الآخرين عن طريق سرقة الأموال التي أنفقها؟ أو استخدم قوة الحوسبة هذه لتوليد عملات معدنية جديدة؟ يجب أن يكون قادرا على العثور على أنه أكثر فعالية من حيث التكلفة للعب وفقا للقواعد ، والتي تسمح له الآن بكسب عملات معدنية أكثر من جميع العملات الأخرى مجتمعة ، والتي من الواضح أنها أكثر فعالية من حيث التكلفة من تدمير النظام سرا وتقليل ثروته إلى العدم.
7. استعادة مساحة القرص
إذا حدثت أحدث معاملة للعملة قبل كتل كافية ، فيمكن تجاهل سجل معاملات إنفاق العملة قبل تلك المعاملة من أجل توفير مساحة على القرص. للقيام بذلك دون كسر تجزئة الكتلة ، سيتم تضمين تجزئة سجل المعاملة في شجرة Merkle ، وسيتم تضمين جذر الشجرة فقط في تجزئة الكتلة. عن طريق قطع الفروع ، يمكن ضغط الكتل القديمة. لا يلزم حفظ التجزئة الداخلية.
يبلغ رأس الكتلة بدون أي سجل معاملات حوالي 80 بايت. بافتراض إنتاج كتلة كل عشر دقائق ، فإن 80 بايت مضروبا في 6 في 24 في 365 يساوي 4.2 مليون في السنة. اعتبارا من عام 2008 ، جاءت معظم أجهزة الكمبيوتر المعروضة للبيع بسعة 2 جيجابايت من ذاكرة الوصول العشوائي ، ويتوقع قانون مور أنه سيتم إضافة 1.2 جيجابايت سنويا ، حتى لو كان يجب تخزين رأس الكتلة في الذاكرة.
8. تأكيد مبسط للدفع
من الممكن تأكيد المدفوعات حتى دون الحاجة إلى تشغيل عقدة شبكة كاملة. كل ما يحتاجه المستخدم هو نسخة من رأس الكتلة لأطول سلسلة مع إثبات العمل - يمكنه التحقق من العقدة عبر الإنترنت للتأكد من أن لديه أطول سلسلة - ثم الحصول على العقدة الفرعية لشجرة Merkle ، والتي بدورها تتصل بالمعاملة عندما تم ختم الكتلة بالوقت. لا يمكن للمستخدم التحقق من المعاملة بنفسه ، ولكن من خلال الاتصال بمكان معين على السلسلة ، يمكنه أن يرى أن عقدة الشبكة قد قبلت المعاملة ، وأن الكتلة المضافة بعد ذلك تؤكد كذلك أن الشبكة قد قبلت المعاملة.
طالما أن العقد الصادقة لا تزال تتحكم في الشبكة ، فإن التحقق موثوق. ومع ذلك ، عندما يتم التحكم في الشبكة بواسطة مهاجم ، يكون التحقق أقل موثوقية. على الرغم من أن عقد الشبكة يمكنها التحقق من المعاملات نفسها ، طالما ظل المهاجم مسيطرا على الشبكة ، يمكن خداع طريقة التحقق المبسطة من خلال سجلات المعاملات المزورة للمهاجم. أحد الإجراءات المضادة هو أن برنامج العميل يقبل التحذيرات من عقد الشبكة. عندما تعثر عقدة الشبكة على كتلة غير صالحة ، فإنها ترسل تنبيها وينبثق إشعار على برنامج المستخدم لإعلام المستخدم بتنزيل الكتلة الكاملة وتحذير المستخدم لتأكيد اتساق المعاملة. يجب أن يظل التجار الذين لديهم مدفوعات عالية التردد يرغبون في تشغيل عقدة كاملة خاصة بهم لضمان مزيد من الأمان المستقل وتأكيد المعاملات بشكل أسرع.
9. الجمع بين وتقسيم القيمة
على الرغم من أنه من الممكن معالجة العملات المعدنية واحدة تلو الأخرى ، إلا أنه من الصعب إعداد سجل منفصل لكل بنس. للسماح بتقسيم القيم وتوحيدها ، تحتوي المعاملات على مدخلات ومخرجات متعددة. بشكل عام ، إما مدخلات واحدة من معاملة سابقة كبيرة نسبيا ، أو مزيج من العديد من المدخلات من كمية أصغر ؛ وفي الوقت نفسه، يوجد على الأكثر ناتجان: أحدهما للدفع (للمدفوع لأمره) والآخر للتغيير (للمرسل) إذا لزم الأمر.
من المهم ملاحظة أن "التوزيع" ليس مشكلة هنا - "التوزيع" يعني أن معاملة واحدة تعتمد على عدة معاملات ، وتعتمد هذه المعاملات على المزيد من المعاملات. ليست هناك حاجة أبدا لاستخراج نسخة تاريخية كاملة ومستقلة من أي معاملة.
10. الخصوصيه
تحقق النماذج المصرفية التقليدية درجة من حماية الخصوصية من خلال تقييد الوصول إلى المعلومات حول المتداولين والأطراف الثالثة الموثوق بها. وقد رفض هذا النهج بسبب الحاجة إلى جعل جميع سجلات المعاملات علنية. ومع ذلك ، يمكن تحقيق الحفاظ على الخصوصية عن طريق قطع تدفق المعلومات في مكان آخر - إخفاء هوية المفتاح العام. يمكن للجمهور أن يرى أن فلان قام بتحويل مبلغ معين من المال إلى فلان ، ومع ذلك ، لا توجد معلومات تشير إلى شخص معين. هذا المستوى من إصدار المعلومات يشبه إلى حد ما تداول سوق الأسهم ، حيث يتم الإعلان فقط عن وقت ومقدار المعاملة الفردية ، ومع ذلك ، لا أحد يعرف من هما جانبا المعاملة.
هناك طبقة أخرى من جدار الحماية. يجب على المتداولين تمكين زوج جديد من المفاتيح العامة والخاصة لكل معاملة حتى لا يتمكن أي شخص آخر من تتبع هذه المعاملات إلى نفس المالك. ولا تزال بعض المعاملات المتعددة المدخلات ذات أثر رجعي حتما، لأن تلك المدخلات ستحدد حتما على أنها واردة من نفس المالك. يكمن الخطر في أنه إذا تم الكشف عن مالك المفتاح العام ، الكشف عن جميع المعاملات الأخرى المتعلقة به.
11. الحسابات
لنفترض سيناريو يحاول فيه المهاجم إنشاء سلسلة بديلة أسرع من السلسلة الصادقة. حتى لو نجح ، لا يمكنه إجراء أي تغييرات على النظام ، أي أنه لا يمكنه خلق قيمة من فراغ ، ولا يمكنه الحصول على أموال لا تخصه أبدا. لا تتعامل عقد الشبكة مع المعاملة غير الصالحة على أنها دفعة ، ولن تقبل العقد الصادقة أبدا كتلة تحتوي على مثل هذا الدفع. في أحسن الأحوال ، يمكن للمهاجم تعديل معاملاته الخاصة ومحاولة استعادة الأموال التي أنفقها بالفعل.
يمكن وصف التنافس بين السلسلة الصادقة والمهاجم من خلال المشي العشوائي ذي الحدين. حدث النجاح هو عندما تتم إضافة كتلة جديدة إلى السلسلة الصادقة ، مما يزيد من ميزتها بمقدار 1 ، في حين أن حدث الفشل هو عندما تتم إضافة سلسلة المهاجم للتو كتلة جديدة ، مما يقلل من ميزة السلسلة الصادقة بمقدار 1.
إن احتمال أن يتمكن المهاجم من اللحاق بالركب من الخلف يشبه مشكلة إفلاس المقامر. لنفترض أن مقامرا برقائق غير محدودة يبدأ بعجز ويسمح له بالمراهنة بعدد غير محدود من المرات ، بهدف سد العجز الذي لديه بالفعل. يمكننا حساب احتمال أن يتمكن في النهاية من سد النقص ، أي احتمال أن يتمكن المهاجم من اللحاق بالسلسلة الصادقة ، على النحو التالي:
نظرا لأننا افترضنا أن p > ، q نظرا لأن المهاجم يحتاج إلى اللحاق بالمزيد والمزيد من الكتل ، فإن احتمال النجاح يتناقص بشكل كبير. إذا لم يكن المهاجم محظوظا بما يكفي لاتخاذ قفزة إلى الأمام في البداية ، القضاء على معدل فوزه بينما يتخلف أكثر.
الآن ضع في اعتبارك المدة التي سيتعين على مستلم المعاملة الجديدة انتظارها للتأكد تماما من أن المرسل لا يمكنه تغيير المعاملة. نفترض أن المرسل هو مهاجم يحاول إقناع المدفوع لأمره بأنه دفع الدفعة لفترة من الوقت ثم يعيد الأموال إلى نفسه. عندما يحدث هذا ، سيتلقى المستلم بالطبع تحذيرا ، لكن المرسل يأمل أن يكون القارب الخشبي موجودا بالفعل في القارب.
يقوم المستلم بإنشاء زوج جديد من المفاتيح العامة والخاصة ، ثم يقوم بتوصيل المفاتيح العامة إلى المرسل قبل وقت قصير من التوقيع. هذا يمنع الموقف الذي يقوم فيه المرسل بإعداد كتلة على السلسلة مقدما مع الحساب المستمر ، وهو محظوظ بما يكفي ليكون متقدما بما يكفي لتنفيذ المعاملة حتى ذلك الحين. بمجرد إرسال الأموال ، يبدأ المرسل غير النزيه في العمل سرا على parachain آخر ، في محاولة لإضافة نسخة عكسية من المعاملة إليها.
ينتظر المدفوع لأمره حتى يتم تعبئة المعاملة في كتلة ، وهناك بالفعل كتل z تمت إضافتها لاحقا. إنه لا يعرف بالضبط مدى جودة أداء المهاجمين ، لكن يمكنه أن يفترض أن الكتل الصادقة تقضي وقتا متوسطا في عملية إنشاء كل كتلة ؛ يتوافق التقدم المحتمل للمهاجم مع توزيع بواسون ، بقيمة متوقعة:
لحساب احتمال استمرار تمكن المهاجم من اللحاق بالركب ، نحتاج إلى ضرب كثافة احتمال توزيع Parzon لعدد الكتل التي يحتاج المهاجم إلى اللحاق بها في احتمال أن يتمكنوا من اللحاق بالركب إذا كانوا وراء هذا العدد من الكتل:
نقترح نظام تداول إلكتروني لا يجب أن يعتمد على الثقة. نقطة البداية هي إطار عملة عادي يستخدم التوقيعات الرقمية ، وعلى الرغم من أنه يوفر تحكما قويا في الملكية ، إلا أنه لا يمكنه تجنب الإنفاق المزدوج. لحل هذه المشكلة ، نقترح شبكة نظير إلى نظير تستخدم آلية إثبات العمل لتسجيل سجل المعاملات العامة ، وطالما أن العقدة الصادقة يمكنها التحكم في غالبية قوة حوسبة وحدة المعالجة المركزية ، فمن المستحيل على المهاجم العبث بالنظام بنجاح من حيث قوة الحوسبة وحدها. تكمن متانة هذه الشبكة في بساطتها غير المنظمة. يمكن أن تعمل العقد في وقت واحد في لحظة مع القليل من التعاون. لا يحتاجون حتى إلى التعرف عليهم ، لأن مسار الرسالة لا يعتمد على وجهة محددة. لا تحتاج الرسائل إلا إلى نشرها على أساس أفضل الجهد. تأتي العقد وتذهب بحرية ، وعندما ينضمون مرة أخرى ، يحتاجون فقط إلى قبول سلسلة إثبات العمل كدليل على كل ما حدث أثناء عدم اتصالهم بالإنترنت. يصوتون على طاقة وحدة المعالجة المركزية الخاصة بهم ، ويشيرون إلى قبولهم للمعاملات الصالحة عن طريق إضافة كتل صالحة جديدة باستمرار إلى السلسلة ورفض الكتل غير الصالحة. يمكن فرض أي قواعد ومكافآت ضرورية من خلال آلية الإجماع هذه.
المراجع
ب المال داي وي (1998-11-01)
تصميم خدمة ختم زمني آمنة مع الحد الأدنى من متطلبات الثقة هنري ماسياس ، كزافييه سيريت أفيلا ، جان جاك كويسكواتيه * الندوة العشرون حول نظرية المعلومات في البنلوكس * (1999-05)
كيفية ختم مستند رقمي ستيوارت هابر ، دبليو سكوت ستورنيتا * مجلة علم التشفير * (1991) DOI: 10.1007 / bf00196791
تحسين كفاءة وموثوقية ختم الوقت الرقمي ديف باير ، ستيوارت هابر ، دبليو سكوت ستورنيتا * التسلسلات الثانية * (1993) DOI: 10.1007 / 978-1-4613-9323-8 \ _24
تأمين الأسماء لسلاسل البت ستيوارت هابر ، دبليو سكوت ستورنيتا * وقائع مؤتمر ACM 4 حول أمن الكمبيوتر والاتصالات - CCS '97 * (1997) DOI: 10.1145/266420.266430
Hashcash -- رفض الخدمة المضادة التدابير آدم العودة (2002-08-01)
بروتوكولات تشفير المفتاح العام رالف سي ميركل * 1980 ندوة IEEE حول الأمن والخصوصية * (1980-04) DOI: 10.1109 / sp.1980.10006
مقدمة في نظرية الاحتمالات وتطبيقاتها وليام فيلر * جون وايلي وأولاده * (1957)
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
إعادة قراءة الذكرى السنوية ال 15 الكلاسيكية: النص الكامل للنسخة الصينية من الورقة البيضاء للبيتكوين
المؤلف: ساتوشي ناكاموتو. الترجمة الصينية: لي شياو لاي
ملخص: نسخة نقض إلى نظير من نظام نقدي إلكتروني يسمح بإرسال المدفوعات عبر الإنترنت مباشرة من طرف إلى آخر دون المرور عبر مؤسسة مالية. بينما تقدم التوقيعات الرقمية بعض الحلول ، يتم تعويض الفوائد الرئيسية للمدفوعات الإلكترونية عندما لا تزال هناك حاجة إلى طرف ثالث موثوق به لمنع الإنفاق المزدوج. نقترح حلا يستخدم شبكة نظير إلى نظير لحل مشكلة الإنفاق المزدوج. ستقوم شبكة نظير إلى نظير بختم زمني لكل معاملة عن طريق إدخال البيانات المجزأة للمعاملة في سلسلة إثبات عمل واسعة النطاق قائمة على التجزئة يستحيل تغييرها ما لم يتم إعادة بنائها بالكامل. يتم استخدام أطول سلسلة لإثبات الأحداث التي شهدتها وترتيبها ، ومن ناحية أخرى ، لإثبات أنها تأتي من أكبر مجموعة من قوة تجزئة وحدة المعالجة المركزية. طالما يتم التحكم في الغالبية العظمى من قوة حوسبة وحدة المعالجة المركزية بواسطة العقد الحميدة - أي أنها لا تتعاون مع أولئك الذين يحاولون مهاجمة الشبكة - فإن العقد الحميدة ستولد أطول سلسلة وتتفوق على المهاجم. الشبكة نفسها تحتاج إلى الحد الأدنى من الهيكل. وستنشر المعلومات على أساس بذل أفضل الجهود، وستأتي العقد وتذهب بحرية؛ ومع ذلك ، عند الانضمام ، من الضروري دائما قبول أطول سلسلة من إثبات العمل كدليل على كل ما حدث خلال الفترة التي لم يشاركوا فيها.
1. مقدمة
تعتمد التجارة عبر الإنترنت بشكل كامل تقريبا على المؤسسات المالية كأطراف ثالثة موثوق بها لمعالجة المدفوعات الإلكترونية. في حين أن النظام جيد جدا لمعظم المعاملات ، إلا أنه لا يزال يعوقه العيوب المتأصلة في النماذج القائمة على الثقة. معاملة لا رجعة فيها تماما ليست ممكنة عمليا, حيث لا يمكن للمؤسسات المالية تجنب نزاعات التحكيم. تزيد تكلفة التحكيم من تكاليف المعاملات ، مما يحد بدوره من حجم الحد الأدنى للمعاملة الممكنة ويمنع ببساطة العديد من معاملات الدفع الصغير. علاوة على ذلك ، هناك تكلفة أكبر: لا يمكن للنظام إجراء مدفوعات لا رجعة فيها مقابل الخدمات التي لا يمكن عكسها. لقد خلقت إمكانية الانعكاس حاجة واسعة النطاق للثقة. يجب أن يكون التجار حذرين من عملائهم ، وأن يزعجوهم بتقديم المزيد من المعلومات التي لن تكون ضرورية إذا لم تكن كذلك (إذا كانت موثوقة). تعتبر نسبة معينة من الاحتيال أمرا لا مفر منه. يمكن تجنب هذه التكاليف وعدم اليقين في الدفع عندما يتم الدفع مباشرة بين الأشخاص الذين يستخدمون العملة المادية. ومع ذلك ، لا توجد آلية لكلا الطرفين لإجراء المدفوعات من خلال قنوات الاتصال دون الوثوق بأحدهما.
ما نحتاجه حقا هو نظام دفع إلكتروني يعتمد على البراهين المشفرة بدلا من الثقة ، مما يسمح لأي طرفين بالتعامل مباشرة دون الحاجة إلى الوثوق بطرف ثالث. يمكن أن تساعد المعاملة التي لا رجعة فيها لضمان معدل التجزئة البائعين على تجنب الاحتيال ، كما أن آلية الضمان اليومية لحماية المشترين سهلة التنفيذ. في هذه الورقة ، سنقترح حلا للإنفاق المزدوج ، باستخدام خادم طابع زمني موزع من نظير إلى نظير لإنشاء إثباتات قائمة على معدل التجزئة تسجل كل معاملة بترتيب زمني. النظام آمن ، طالما أن العقد الصادقة تتمتع عموما بقوة وحدة المعالجة المركزية أكثر من المهاجمين الذين يتعاونون مع بعضهم البعض.
2. المعاملات
نعرف العملة الإلكترونية على أنها سلسلة من التوقيعات الرقمية. عندما يعطي المالك عملة معدنية لشخص آخر ، فإنه يفعل ذلك عن طريق إلحاق التوقيع الرقمي التالي بنهاية سلسلة التوقيع الرقمي: تجزئة المعاملة السابقة والمفتاح العام للمالك الجديد. يمكن للمدفوع لأمره التحقق من ملكية سلسلة التوقيع الرقمي عن طريق التحقق من التوقيع.
! [sQZAt4qlbgm150hgxHy4ui11TxFPpIbbi5Z7GUia.jpeg] (https://img-cdn.gateio.im/webp-social/moments-40baef27dd-4085a6d381-dd1a6f-69ad2a.webp "7126684")
تكمن مشكلة هذا المسار في أن المستلم لا يمكنه التحقق من عدم قيام أي شخص بالدفع مرتين بين المالكين السابقين. الحل الشائع هو جلب سلطة مركزية موثوقة ، أو "النعناع" ، وجعلها تتحقق من الإنفاق المزدوج على كل معاملة. بعد كل معاملة ، يجب إعادة العملة إلى النعناع ، الذي يصدر عملة جديدة. علاوة على ذلك ، فإن العملات المعدنية الصادرة مباشرة عن دار سك العملة فقط هي ذات مصداقية ولم يتم دفعها مرتين. تكمن مشكلة هذا الحل في أن مصير النظام النقدي بأكمله مرتبط بالشركة التي تدير النعناع (مثل البنك) ، ويجب أن تمر كل معاملة من خلاله.
كنا بحاجة إلى طريقة للمستلم لتأكيد أن المالك السابق لم يوقع على أي معاملات سابقة. لأغراضنا ، يتم احتساب المعاملات الأولى فقط ، لذلك لا نهتم بمحاولات الإنفاق المزدوج اللاحقة. الطريقة الوحيدة للتأكد من عدم وجود معاملة هي أن تكون على علم بجميع المعاملات. في نموذج النعناع ، يكون النعناع على دراية بجميع المعاملات وقادر على تأكيد ترتيب تلك المعاملات. ولكي نتمكن من تحقيق ذلك دون تدخل "طرف موثوق به"، يجب الإعلان عن سجل المعاملات علنا1، ونحن بحاجة إلى نظام يسمح للمشاركين بالاتفاق على نفس سجل المعاملات الفريد الذي يتلقونه. يحتاج المدفوع لأمره إلى إثبات أنه في وقت كل معاملة ، يمكن أن تتفق غالبية العقد على أنها كانت أول من يتم استلامه.
3. خادم الطابع الزمني
يبدأ هذا الحل بخادم الطابع الزمني. إليك كيفية عمل خادم الطابع الزمني: فهو يختم تجزئة مجموعة من السجلات ، ثم يبث التجزئة ، كما تفعل الصحيفة ، أو مثل منشور في Usenet.2 3 4 5. من الواضح أن الطابع الزمني يثبت أن البيانات كانت موجودة قبل تلك النقطة الزمنية ، وإلا لما تم إنشاء التجزئة. يحتوي كل طابع زمني على طابع زمني سابق في التجزئة الخاصة به ، وبالتالي تشكيل سلسلة ؛ تتم إضافة كل طابع زمني جديد بعد الطابع الزمني السابق.
! [IkJWI40CL5rPFbmKNx829DpApCPH8JY1zjTQ9neY.jpeg] (https://img-cdn.gateio.im/webp-social/moments-40baef27dd-900ed08398-dd1a6f-69ad2a.webp "7126685")
4. إثبات العمل
من أجل تنفيذ خادم الطابع الزمني الموزع القائم على نظير إلى نظير ، نحتاج إلى استخدام نظام إثبات العمل مثل Adam Burke's Hash Cash 6 ، بدلا من شيء مثل صحيفة أو منشور مجموعة أخبار. ما يسمى إثبات العمل هو إيجاد قيمة. لكي تكون هذه القيمة صحيحة: بعد استخراج قيمة تجزئة لها - على سبيل المثال ، باستخدام SHA-256 لحساب قيمة التجزئة - يجب أن تبدأ قيمة التجزئة بعدد معين من الأصفار. كل متطلب إضافي من 0 يزيد من مقدار العمل أضعافا مضاعفة ، والتحقق من هذا القدر من العمل يتطلب فقط حساب التجزئة.
في شبكة الطوابع الزمنية الخاصة بنا ، نقوم بتنفيذ إثبات العمل بالطريقة التالية: نستمر في إضافة nonce إلى كتلة حتى يتم العثور على قيمة تفي بالشروط ؛ الشرط لذلك هو أن تجزئة الكتلة تبدأ بالعدد المحدد من 0s. بمجرد أن تفي نتيجة استهلاك طاقة الحوسبة لوحدة المعالجة المركزية بإثبات العمل ، لم يعد من الممكن تغيير الكتلة ما لم يتم إعادة بناء جميع الأعمال السابقة. مع إضافة كتل جديدة طوال الوقت ، فإن تغيير الكتلة الحالية يعني إعادة الانتهاء من جميع الكتل اللاحقة.
! [L5fHgxjJJ6fSYcFToKfNERzgNlhNgUwdgMiNG2N5.jpeg] (https://img-cdn.gateio.im/webp-social/moments-40baef27dd-dc3d2c22cc-dd1a6f-69ad2a.webp "7126686")
إثبات العمل يحل أيضا مشكلة كيفية تحديد من يمكنه اتخاذ القرارات نيابة عن الأغلبية. إذا كان ما يسمى ب "الأغلبية" يعتمد على نهج "عنوان IP واحد ، صوت واحد" ، فيمكن اعتبار أي شخص يمكنه التعامل مع العديد من عناوين IP "أغلبية". إثبات العمل هو في الأساس "وحدة معالجة مركزية واحدة ، صوت واحد". يتم تمثيل ما يسمى ب "قرار الأغلبية" بأطول سلسلة ، لأنها السلسلة التي تم وضع أكبر قدر من العمل فيها. إذا تم التحكم في غالبية طاقة حوسبة وحدة المعالجة المركزية بواسطة عقد صادقة ، فإن السلسلة الصادقة ستنمو بشكل أسرع ، وستكون أسرع بكثير من السلاسل المنافسة الأخرى. من أجل تغيير كتلة تم إنتاجها بالفعل ، سيتعين على المهاجم إعادة إكمال إثبات العمل لتلك الكتلة وجميع الكتل اللاحقة ، ثم اللحاق بعمل العقدة الصادقة وتجاوزه. توضح هذه المقالة سبب انخفاض احتمالية تأخر المهاجم في اللحاق بالركب بشكل كبير مع زيادة عدد الكتل.
من أجل التعامل مع العدد المتزايد من قوة حوسبة الأجهزة وعدد مساهمات العقدة التي قد تتغير بمرور الوقت ، يتم تحديد صعوبة إثبات العمل من خلال المتوسط المتحرك لعدد الكتل المنتجة في الساعة في المتوسط. إذا تم إنشاء الكتلة بسرعة كبيرة ، فستزداد الصعوبة.
5. شبكة
فيما يلي خطوات تشغيل الشبكة:
تعتقد العقدة دائما أن أطول سلسلة هي السلسلة الصحيحة وتستمر في إضافة بيانات جديدة إليها. إذا بثت عقدتان في وقت واحد نسختين مختلفتين من "Next Block" إلى الشبكة ، فستتلقى بعض العقد إحداهما أولا ، بينما ستتلقى الأخرى الأخرى أولا. في هذه الحالة ، ستستمر العقد في العمل على الكتلة التي تلقتها أولا ، ولكنها ستحفظ أيضا الفرع الآخر في حال أصبحت أطول سلسلة. عندما يتم العثور على إثبات العمل التالي ويصبح أحد الفروع أطول ، يتم حل هذا الاختلاف المؤقت وتتحول العقد التي تعمل على الفرع الآخر إلى سلسلة أطول.
لا يلزم بالضرورة بث المعاملات الجديدة إلى جميع العقد. طالما تم الوصول إلى عدد كاف من العقد ، فلن يمر وقت طويل قبل أن يتم تعبئة هذه المعاملات في كتلة. يسمح حظر عمليات البث أيضا بتجاهل بعض الرسائل. إذا لم تتلق العقدة كتلة ، فستدرك العقدة أنها فاتتها الكتلة السابقة عندما تتلقى الكتلة التالية ، وستقدم طلبا لاستبدال الكتلة المفقودة.
6. حوافز
حسب الاتفاقية ، فإن المعاملة الأولى لكل كتلة هي معاملة خاصة تولد عملة جديدة وتنتمي إلى مولد الكتلة. إن القيام بذلك يكافئ العقد على دعم الشبكة وتوفير طريقة لإصدار العملات المعدنية للتداول - في نظام لا توجد فيه سلطة مركزية لإصدار تلك العملات المعدنية على أي حال. وبالتالي فإن إضافة عدد معين من العملات المعدنية الجديدة إلى التداول بشكل مطرد يشبه عمال مناجم الذهب الذين يستخدمون مواردهم باستمرار لإضافة الذهب إلى التداول. في نظامنا ، الموارد التي يتم استهلاكها هي الوقت الذي تعمل فيه وحدة المعالجة المركزية والطاقة التي تستخدمها.
يمكن أن تأتي المكافآت أيضا من رسوم المعاملات. إذا كانت قيمة مخرجات المعاملة أقل من قيمة الإدخال ، فإن الفرق هو رسوم المعاملة ؛ يتم استخدام رسوم المعاملة لمكافأة العقد لتعبئة المعاملة في هذه الكتلة. بمجرد تداول العدد المحدد من العملات المعدنية ، سيتم تغطية المكافآت بالكامل من خلال رسوم المعاملات ، ولن يكون هناك أي تضخم على الإطلاق.
قد تشجع آلية المكافأة أيضا العقد على أن تكون صادقة. إذا كان المهاجم الجشع قادرا على الاستيلاء على طاقة وحدة المعالجة المركزية أكثر من كل العقد الصادقة ، فعليه أن يختار: هل يجب عليه استخدام قوة الحوسبة هذه لخداع الآخرين عن طريق سرقة الأموال التي أنفقها؟ أو استخدم قوة الحوسبة هذه لتوليد عملات معدنية جديدة؟ يجب أن يكون قادرا على العثور على أنه أكثر فعالية من حيث التكلفة للعب وفقا للقواعد ، والتي تسمح له الآن بكسب عملات معدنية أكثر من جميع العملات الأخرى مجتمعة ، والتي من الواضح أنها أكثر فعالية من حيث التكلفة من تدمير النظام سرا وتقليل ثروته إلى العدم.
7. استعادة مساحة القرص
إذا حدثت أحدث معاملة للعملة قبل كتل كافية ، فيمكن تجاهل سجل معاملات إنفاق العملة قبل تلك المعاملة من أجل توفير مساحة على القرص. للقيام بذلك دون كسر تجزئة الكتلة ، سيتم تضمين تجزئة سجل المعاملة في شجرة Merkle ، وسيتم تضمين جذر الشجرة فقط في تجزئة الكتلة. عن طريق قطع الفروع ، يمكن ضغط الكتل القديمة. لا يلزم حفظ التجزئة الداخلية.
! [GOSWSMEutHTHRctOsFIZ6l0XiCZpQDCytysccOvF.jpeg] (https://img-cdn.gateio.im/webp-social/moments-40baef27dd-be899b60f4-dd1a6f-69ad2a.webp "7126687")
يبلغ رأس الكتلة بدون أي سجل معاملات حوالي 80 بايت. بافتراض إنتاج كتلة كل عشر دقائق ، فإن 80 بايت مضروبا في 6 في 24 في 365 يساوي 4.2 مليون في السنة. اعتبارا من عام 2008 ، جاءت معظم أجهزة الكمبيوتر المعروضة للبيع بسعة 2 جيجابايت من ذاكرة الوصول العشوائي ، ويتوقع قانون مور أنه سيتم إضافة 1.2 جيجابايت سنويا ، حتى لو كان يجب تخزين رأس الكتلة في الذاكرة.
8. تأكيد مبسط للدفع
من الممكن تأكيد المدفوعات حتى دون الحاجة إلى تشغيل عقدة شبكة كاملة. كل ما يحتاجه المستخدم هو نسخة من رأس الكتلة لأطول سلسلة مع إثبات العمل - يمكنه التحقق من العقدة عبر الإنترنت للتأكد من أن لديه أطول سلسلة - ثم الحصول على العقدة الفرعية لشجرة Merkle ، والتي بدورها تتصل بالمعاملة عندما تم ختم الكتلة بالوقت. لا يمكن للمستخدم التحقق من المعاملة بنفسه ، ولكن من خلال الاتصال بمكان معين على السلسلة ، يمكنه أن يرى أن عقدة الشبكة قد قبلت المعاملة ، وأن الكتلة المضافة بعد ذلك تؤكد كذلك أن الشبكة قد قبلت المعاملة.
! [ZUtmrmdPnropshOMBHizRFDwDh0pncg5VGNnzWcI.jpeg] (https://img-cdn.gateio.im/webp-social/moments-40baef27dd-c46aef910b-dd1a6f-69ad2a.webp "7126688")
طالما أن العقد الصادقة لا تزال تتحكم في الشبكة ، فإن التحقق موثوق. ومع ذلك ، عندما يتم التحكم في الشبكة بواسطة مهاجم ، يكون التحقق أقل موثوقية. على الرغم من أن عقد الشبكة يمكنها التحقق من المعاملات نفسها ، طالما ظل المهاجم مسيطرا على الشبكة ، يمكن خداع طريقة التحقق المبسطة من خلال سجلات المعاملات المزورة للمهاجم. أحد الإجراءات المضادة هو أن برنامج العميل يقبل التحذيرات من عقد الشبكة. عندما تعثر عقدة الشبكة على كتلة غير صالحة ، فإنها ترسل تنبيها وينبثق إشعار على برنامج المستخدم لإعلام المستخدم بتنزيل الكتلة الكاملة وتحذير المستخدم لتأكيد اتساق المعاملة. يجب أن يظل التجار الذين لديهم مدفوعات عالية التردد يرغبون في تشغيل عقدة كاملة خاصة بهم لضمان مزيد من الأمان المستقل وتأكيد المعاملات بشكل أسرع.
9. الجمع بين وتقسيم القيمة
على الرغم من أنه من الممكن معالجة العملات المعدنية واحدة تلو الأخرى ، إلا أنه من الصعب إعداد سجل منفصل لكل بنس. للسماح بتقسيم القيم وتوحيدها ، تحتوي المعاملات على مدخلات ومخرجات متعددة. بشكل عام ، إما مدخلات واحدة من معاملة سابقة كبيرة نسبيا ، أو مزيج من العديد من المدخلات من كمية أصغر ؛ وفي الوقت نفسه، يوجد على الأكثر ناتجان: أحدهما للدفع (للمدفوع لأمره) والآخر للتغيير (للمرسل) إذا لزم الأمر.
! [rRreBWdF8I1swfs5QtBILVrI0guXumj1ulPkbKyu.jpeg] (https://img-cdn.gateio.im/webp-social/moments-40baef27dd-e6829c598f-dd1a6f-69ad2a.webp "7126689")
من المهم ملاحظة أن "التوزيع" ليس مشكلة هنا - "التوزيع" يعني أن معاملة واحدة تعتمد على عدة معاملات ، وتعتمد هذه المعاملات على المزيد من المعاملات. ليست هناك حاجة أبدا لاستخراج نسخة تاريخية كاملة ومستقلة من أي معاملة.
10. الخصوصيه
تحقق النماذج المصرفية التقليدية درجة من حماية الخصوصية من خلال تقييد الوصول إلى المعلومات حول المتداولين والأطراف الثالثة الموثوق بها. وقد رفض هذا النهج بسبب الحاجة إلى جعل جميع سجلات المعاملات علنية. ومع ذلك ، يمكن تحقيق الحفاظ على الخصوصية عن طريق قطع تدفق المعلومات في مكان آخر - إخفاء هوية المفتاح العام. يمكن للجمهور أن يرى أن فلان قام بتحويل مبلغ معين من المال إلى فلان ، ومع ذلك ، لا توجد معلومات تشير إلى شخص معين. هذا المستوى من إصدار المعلومات يشبه إلى حد ما تداول سوق الأسهم ، حيث يتم الإعلان فقط عن وقت ومقدار المعاملة الفردية ، ومع ذلك ، لا أحد يعرف من هما جانبا المعاملة.
! [FACNxW4jyufvrE53ONTept7HLlHzayQU9CwIg4eX.jpeg] (https://img-cdn.gateio.im/webp-social/moments-40baef27dd-c1e10d9736-dd1a6f-69ad2a.webp "7126690")
هناك طبقة أخرى من جدار الحماية. يجب على المتداولين تمكين زوج جديد من المفاتيح العامة والخاصة لكل معاملة حتى لا يتمكن أي شخص آخر من تتبع هذه المعاملات إلى نفس المالك. ولا تزال بعض المعاملات المتعددة المدخلات ذات أثر رجعي حتما، لأن تلك المدخلات ستحدد حتما على أنها واردة من نفس المالك. يكمن الخطر في أنه إذا تم الكشف عن مالك المفتاح العام ، الكشف عن جميع المعاملات الأخرى المتعلقة به.
11. الحسابات
لنفترض سيناريو يحاول فيه المهاجم إنشاء سلسلة بديلة أسرع من السلسلة الصادقة. حتى لو نجح ، لا يمكنه إجراء أي تغييرات على النظام ، أي أنه لا يمكنه خلق قيمة من فراغ ، ولا يمكنه الحصول على أموال لا تخصه أبدا. لا تتعامل عقد الشبكة مع المعاملة غير الصالحة على أنها دفعة ، ولن تقبل العقد الصادقة أبدا كتلة تحتوي على مثل هذا الدفع. في أحسن الأحوال ، يمكن للمهاجم تعديل معاملاته الخاصة ومحاولة استعادة الأموال التي أنفقها بالفعل.
يمكن وصف التنافس بين السلسلة الصادقة والمهاجم من خلال المشي العشوائي ذي الحدين. حدث النجاح هو عندما تتم إضافة كتلة جديدة إلى السلسلة الصادقة ، مما يزيد من ميزتها بمقدار 1 ، في حين أن حدث الفشل هو عندما تتم إضافة سلسلة المهاجم للتو كتلة جديدة ، مما يقلل من ميزة السلسلة الصادقة بمقدار 1.
إن احتمال أن يتمكن المهاجم من اللحاق بالركب من الخلف يشبه مشكلة إفلاس المقامر. لنفترض أن مقامرا برقائق غير محدودة يبدأ بعجز ويسمح له بالمراهنة بعدد غير محدود من المرات ، بهدف سد العجز الذي لديه بالفعل. يمكننا حساب احتمال أن يتمكن في النهاية من سد النقص ، أي احتمال أن يتمكن المهاجم من اللحاق بالسلسلة الصادقة ، على النحو التالي:
! [dxwr3HPLYbHZisFnpwH6hIvaudm3FchUzRFXaD7m.jpeg] (https://img-cdn.gateio.im/webp-social/moments-40baef27dd-0f1dfde161-dd1a6f-69ad2a.webp "7126691")
نظرا لأننا افترضنا أن p > ، q نظرا لأن المهاجم يحتاج إلى اللحاق بالمزيد والمزيد من الكتل ، فإن احتمال النجاح يتناقص بشكل كبير. إذا لم يكن المهاجم محظوظا بما يكفي لاتخاذ قفزة إلى الأمام في البداية ، القضاء على معدل فوزه بينما يتخلف أكثر.
الآن ضع في اعتبارك المدة التي سيتعين على مستلم المعاملة الجديدة انتظارها للتأكد تماما من أن المرسل لا يمكنه تغيير المعاملة. نفترض أن المرسل هو مهاجم يحاول إقناع المدفوع لأمره بأنه دفع الدفعة لفترة من الوقت ثم يعيد الأموال إلى نفسه. عندما يحدث هذا ، سيتلقى المستلم بالطبع تحذيرا ، لكن المرسل يأمل أن يكون القارب الخشبي موجودا بالفعل في القارب.
يقوم المستلم بإنشاء زوج جديد من المفاتيح العامة والخاصة ، ثم يقوم بتوصيل المفاتيح العامة إلى المرسل قبل وقت قصير من التوقيع. هذا يمنع الموقف الذي يقوم فيه المرسل بإعداد كتلة على السلسلة مقدما مع الحساب المستمر ، وهو محظوظ بما يكفي ليكون متقدما بما يكفي لتنفيذ المعاملة حتى ذلك الحين. بمجرد إرسال الأموال ، يبدأ المرسل غير النزيه في العمل سرا على parachain آخر ، في محاولة لإضافة نسخة عكسية من المعاملة إليها.
ينتظر المدفوع لأمره حتى يتم تعبئة المعاملة في كتلة ، وهناك بالفعل كتل z تمت إضافتها لاحقا. إنه لا يعرف بالضبط مدى جودة أداء المهاجمين ، لكن يمكنه أن يفترض أن الكتل الصادقة تقضي وقتا متوسطا في عملية إنشاء كل كتلة ؛ يتوافق التقدم المحتمل للمهاجم مع توزيع بواسون ، بقيمة متوقعة:
! [Go4WNHNh1YtPsMqjI2XbNCMTnITJUIl9w8LqM6yj.jpeg] (https://img-cdn.gateio.im/webp-social/moments-40baef27dd-790cf0ec14-dd1a6f-69ad2a.webp "7126692")
لحساب احتمال استمرار تمكن المهاجم من اللحاق بالركب ، نحتاج إلى ضرب كثافة احتمال توزيع Parzon لعدد الكتل التي يحتاج المهاجم إلى اللحاق بها في احتمال أن يتمكنوا من اللحاق بالركب إذا كانوا وراء هذا العدد من الكتل:
! [5O3ugdwP0uoNL0qOnvLbnUvNTXGMBmxJj4yS00y3.jpeg] (https://img-cdn.gateio.im/webp-social/moments-40baef27dd-2d036c0208-dd1a6f-69ad2a.webp "7126694")
قم بالتحويل إلى برنامج C ...
! [XjwW5ZbFNIZCfiPFAnbg7b4iW4qp9A8g1LFKe2f2.jpeg] (https://img-cdn.gateio.im/webp-social/moments-40baef27dd-cea09b1f46-dd1a6f-69ad2a.webp "7126698")
بأخذ بعض النتائج، يمكننا ملاحظة أن الاحتمال يتناقص أضعافا مضاعفة مع زيادة z:
! [452fZL5ude7CUuUz85STQEcvquwOCHxhZ3pEhKRc.jpeg] (https://img-cdn.gateio.im/webp-social/moments-40baef27dd-2d9ed83270-dd1a6f-69ad2a.webp "7126700")
إذا كان P أقل من 0.1٪ ...
! [zfsBufXK54KjstagaZXrPOUREzaoQU7VPy9eYjjX.jpeg] (https://img-cdn.gateio.im/webp-social/moments-40baef27dd-40fd2c8861-dd1a6f-69ad2a.webp "7126701")
12. استنتاج
نقترح نظام تداول إلكتروني لا يجب أن يعتمد على الثقة. نقطة البداية هي إطار عملة عادي يستخدم التوقيعات الرقمية ، وعلى الرغم من أنه يوفر تحكما قويا في الملكية ، إلا أنه لا يمكنه تجنب الإنفاق المزدوج. لحل هذه المشكلة ، نقترح شبكة نظير إلى نظير تستخدم آلية إثبات العمل لتسجيل سجل المعاملات العامة ، وطالما أن العقدة الصادقة يمكنها التحكم في غالبية قوة حوسبة وحدة المعالجة المركزية ، فمن المستحيل على المهاجم العبث بالنظام بنجاح من حيث قوة الحوسبة وحدها. تكمن متانة هذه الشبكة في بساطتها غير المنظمة. يمكن أن تعمل العقد في وقت واحد في لحظة مع القليل من التعاون. لا يحتاجون حتى إلى التعرف عليهم ، لأن مسار الرسالة لا يعتمد على وجهة محددة. لا تحتاج الرسائل إلا إلى نشرها على أساس أفضل الجهد. تأتي العقد وتذهب بحرية ، وعندما ينضمون مرة أخرى ، يحتاجون فقط إلى قبول سلسلة إثبات العمل كدليل على كل ما حدث أثناء عدم اتصالهم بالإنترنت. يصوتون على طاقة وحدة المعالجة المركزية الخاصة بهم ، ويشيرون إلى قبولهم للمعاملات الصالحة عن طريق إضافة كتل صالحة جديدة باستمرار إلى السلسلة ورفض الكتل غير الصالحة. يمكن فرض أي قواعد ومكافآت ضرورية من خلال آلية الإجماع هذه.
المراجع