إجماع في العملات المشفرة مع التعدين المختلط والمتعدد

لقد صادفت مشاركتي في تطوير آلية تعدين للعملات المشفرة ، مما يسمح لك باستخدام خوارزميات التجزئة المختلفة لبناء سلسلة مفاتيح. الهدف هو تمكين عمال المناجم الذين يستخدمون أي معدات (ASIC ، GPU ، CPU) لدعم الشبكة ، والتي تغطي الجمهور المحتمل بأكمله من المشاركين في الشبكة. في المقال ، سوف أخبرك بالنتائج التي توصلنا إليها ، حول التعدين في البيتكوين وبعض العملات المشفرة الأخرى باستخدام التعدين المختلط.



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

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


يعد التعدين متعدد الهجين مصطلحًا غير محدد ، ويتم استخدامه في المقالة للدلالة على دليل التعدين (POW) على عدة خوارزميات. في مجتمعات التشفير الناطقة بالإنجليزية والروسية ، يكون الاسم المقبول عمومًا هو Multi-PoW. سيتم اعتباره على سبيل المثال من Verge cryptocurrency مع خمس خوارزميات . التعدين المختلط هو مصطلح مقبول عمومًا يتم تطبيقه على العملات المشفرة باستخدام POW وإثبات إيداع / حقوق الملكية (POS). سننظر في مثال واحد من رواد هذا الحل - Novacoin.

لفهم آلية التعدين ، تحتاج إلى فهم المفاهيم الأساسية التالية في العملات المشفرة - العمل والغرض (الهدف). الهدف هو قيمة عددية تحدد الحد الأعلى للتجزئة المناسبة لإنشاء كتلة في السلسلة. العمل - إحصائيًا ، متوسط ​​عدد عمليات البحث اللازمة للعثور على تجزئة لهدف أصغر أو متساوٍ.

العمل وتهدف على الأصابع
النظر في مثال لفافة من مكعب D & D 20 من جانب. سنقوم بتوزيع النرد على كل لاعب D&D على هذا الكوكب ونطلب منهم لفة. سيكون لنصف الزهر قيم من 1 إلى 10 ، والثاني من 11 إلى 20. افترض أنه بالنسبة للحدث المرغوب في اللعبة ، يجب أن تكون القيمة من 1 إلى 10. دع اللاعبين يستمروا في التدحرج حتى يلقى الجميع القيمة المطلوبة. مع كل رمية ، يتم تقليل عدد اللاعبين الباقين إلى النصف ويتبين أنه سيتم حساب متوسط ​​عدد لفات الزهر لكل لاعب وفقًا للصيغة التالية:

 operatornamecountthrows= frac operatornamecountpossiblevalues operatornamecountمناسبةvalues

،،،،مناسبة،

إذا افترضنا أن 500 مليون يلعب على هذا الكوكب ، فإن أكثر اللاعبين "المحظوظين" سيضطرون للرد على النرد بحوالي 29 مرة ، ولكن متوسط ​​عدد اللقطات لكل لاعب هو 2. وعدد القوائم في الصيغة مماثل لعدد أعمال جيل التجزئة ويتوافق مع العمل. وفقًا لذلك ، فإن عدد قيم التجزئة المناسبة يساوي القيمة المستهدفة + 1. الصيغة الكاملة للعمل مع تجزئة 256 بت هي:

w o r k = f r a c 2 256 t a r g g e t + 1 

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

الهدف الرئيسي للهدف هو أن يتم ضبطها على قيمة بحيث يحدث وقت إطلاق الكتلة في فترة زمنية محددة. بالنسبة لعملة البيتكوين ، يكون الفاصل الزمني 10 دقائق. إعادة فرز الأصوات المستهدفة في البيتكوين يحدث كل عام 2016. لتعيين هدف جديد ، تحدد Bitcoin متوسط ​​معدل التجزئة - مقدار عمل الشبكة لكل وحدة زمنية لكتل ​​2016 السابقة. يحسب العمل المتوقع في 10 دقائق وأخذ هدفًا له ، ويحدد قيمته للكتل 2016 القادمة. بالنسبة إلى bitcoin ، يتم حساب الهدف ، في ضوء مساواة الهدف (وبالتالي العمل) في كتل 2016 السابقة ، بعد التخفيضات والتقديرات ، في صيغة بسيطة إلى حد ما.

targetnew= frac2256worknext1= frac225610دقيقة cdothashrateaver1= frac2256 frac10min cdotwork2016time20161=

دقيقة

= \ frac {{2 ^ {256}} \ cdot {time_ {2016}}} {{{10min} \ cdot {2016} \ cdot {\ frac {2 ^ {256}} {{target_ {السابق}} + 1}}}} - 1 = \ frac {{time_ {2016}} \ cdot \ left ({{target_ {السابق}} + 1} \ right)} {{{{10min} \ cdot {2016}}} - - 1 \ approx \ frac {{time_ {2016}} \ cdot {target_ {السابق}}} {{10 دقيقة} \ cdot {2016}}

= \ frac {{2 ^ {256}} \ cdot {time_ {2016}}} {{{10min} \ cdot {2016} \ cdot {\ frac {2 ^ {256}} {{target_ {السابق}} + 1}}}} - 1 = \ frac {{time_ {2016}} \ cdot \ left ({{target_ {السابق}} + 1} \ right)} {{{{10min} \ cdot {2016}}} - - 1 \ approx \ frac {{time_ {2016}} \ cdot {target_ {السابق}}} {{10 دقيقة} \ cdot {2016}}



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


رسم بياني للرمي يتكون من 12 نردًا ذي أوجه من قبل لاعب بتجزئة 1 لفة / ثانية في 100 ثانية. كل نقطة هي قيمة الوجه المرسوم ، والمحور Y الأيمن هو عدد القيم التي سقطت في الهدف. يمكن ملاحظة أن 20 طلقة تسقط في الهدف 2 - تعتبر الرميات بقيمة 1 و 2 مناسبة ، وسيكون تصنيف الأداء 20 * 12/2 = 120 طلقة ، مع الهدف 6 ، يكون العمل 53 * 12/2 = 106. الخاصية الرئيسية المستخدمة هي لأي الهدف في حالة وجود إحصاءات كافية تلقي قريبة من القيمة الدقيقة للعمل وتقسيم المشارك.

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

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

للوهلة الأولى ، لا يختلف حساب الهدف في Novacoin كثيرًا عن الحساب في البيتكوين. فصل Novacoin بشكل صحيح حساب POS و POW. الصيغة النهائية لحساب الهدف من كتل نقاط البيع في نوفاكوين هي كما يلي

targetnew=targetlast cdot frac7day10min+2 cdottimepos intrerval7day+10min

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

حساب POW هو نفسه تقريبًا ، فيما عدا أن Novacoin تطالب بتردد مختلف للكتل POW و POS ويتم حسابها على فترات من 10 دقائق إلى 30 اعتمادًا على الموضع في blockchain. يمكنك أن ترى أنه إذا فقدت الشبكة تجزئة POW أو POS بشكل حاد ، فسيظل الهدف ساريًا حتى تظهر كتلة جديدة على آلية التعدين التي فقدت الطاقة.

يستخدم الحساب المستهدف في Verge آلية Dark Gravity Wave ، وهو تطور للأفكار التي طرحها Kimoto Gravity Well. من دون الخوض في الرياضيات بكل هذه الأساليب ، فإن الهدف من هذه ، ولا شك في تسمية آليات شاعرية ، هو هدف واحد - لضمان تحويل الهدف بسرعة كافية للاستجابة للتغيرات في معدل تجزئة الشبكة. على الرغم من بعض البراعة في الكود ، فإن رياضياتها تأتي في صيغ بسيطة إلى حد ما. يحسب Verge متوسط ​​الهدف المتمثل في 12 قالبًا من الخوارزمية المحددة ، حيث يتم حساب الكتلة الأخيرة مرتين:

targetaver= frac2 cdottargetlast+targetlast1+...+targetlast1113

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

 frac13 cdot(targetaver+1)2256= frac2 cdot(targetlast+1)2256+ fractargetlast1+12256+...+ fractargetlast11+12256

بقية الحسابات تتزامن بالضبط مع الحساب من خلال معدل تجزئة متوسط ​​لعملة البيتكوين.

targetnew approx fractime12 cdottargetaver0.5min cdot5 cdot12

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

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

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

قبل النظر في الوضع الحالي لآلية الإجماع ، ستكون Verge مفيدة لمعرفة ماضيها. في ربيع عام 2018 ، نجا Verge عدة هجمات. دون الخوض في تفاصيل ميكانيكا الهجوم ، فإن شفرة ذلك الوقت ، والتي كانت مسؤولة عن اختيار شوكة ، تحتوي على منطق مشكوك فيه. على افتراض أن الدالة IsProofOfStake () في عملة التشفير POW يمكن أن تُرجع القيمة الحقيقية ، فإن إضافة خوارزميات مختلفة ، كما هو مبين أعلاه ، ستؤدي إلى هيمنة خوارزمية ذات تجزئة أعلى. خلاف ذلك ، يتم الاختيار ببساطة عن طريق طول السلسلة ، والتي مع هدف محسوب بشكل صحيح (والغرض منه هو مظهر موحد للكتل) يمكن أن يؤدي إلى المساواة في الفروع مع أعمال مختلفة حقا القيام به حقا.

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

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

سيتم احتساب حساب الهدف من المتوسط ​​الحسابي للعمل والوقت على إحصاءات آخر 300 كتلة. صيغة الحساب النهائية:

target= frac2256k cdot60 cdothashrateaver1

حيث k هو عدد الفواصل الزمنية التي يجب أن تكون كتلة واحدة من الخوارزمية التي يتم حساب الهدف من أجلها.

دعونا نلخص في الجدول القيم الأولية والمحسوبة لـ 10،000 كتلة.
البرودة؛ الصقيع1234
hashrate4080الفهرس <4000: 20
4000> الفهرس <6000: 150
مؤشر> 6000: 20
100
الفاصلة60
كتل3333333316661666
عمل24000000480000002760000060000000
أريد أن أشير إلى أن القيمة المحسوبة للدائرة تُحسب بالصيغة:

workalgo=hashratealgo cdottimeallblock

يحدث حساب التجزئة في الشبكة عبر وقت كتل كل الخوارزميات ، وليس فقط على فترات من الخوارزميات الفردية. كما في المثال مع مكعب ذي جانبين - بغض النظر عن الهدف المحدد ، سيكون تقييم العمل متساويًا. بالنسبة إلى العمليات الحسابية ، من الضروري أخذ ذلك في الاعتبار ، من خلال معامل k لحساب هدف كتلة جديدة من خلال معدل التجزئة ، وتأخذ كل الوقت لحساب العمل.
البرودة؛ الصقيع1234
الفاصلة59595759
كتل3306332016911683
عمل23847014470854872702827260499076
كما ترون ، نتائج المحاكاة تتزامن بشكل جيد مع الحساب وفقًا للبيانات المصدر.

مخطط كتلة 3850-4650

مخطط كتلة 5599-6399

على الرسوم البيانية للتغير في العمل بمرور الوقت ، يُرى كيف تزيد كثافة الكتل وتنقص مع تغير معدل التجزئة. من حيث المبدأ ، هذا سلوك منطقي ومنطقي ، لكن من المناسب أيضًا تنظيمه باستخدام تقنيات مثل Dark Gravity Wave - مما يزيد من تأثير الكتل الأخيرة وغيرها.

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

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

workequal= sqrt[k1]workalgo1 cdot sqrt[k2]workalgo2 cdot... cdot sqrt[kn]workalgon

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

هذا العمل المكافئ له الخصائص التالية:

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

تعمل آلية التشغيل المكافئة على تعقيد الهجوم 51 بشكل كبير على blockchain. تسمح لك صيغة العمل المكافئ ، المعبر عنها من خلال معدل التجزئة ، بتقدير القدرة اللازمة للهجوم.

work_ {equal} = \ sqrt [k_1] {{k_1} \ cdot {t} \ cdot {hashrate_ {algo_1}}}} \ cdot \ sqrt [k_2] {{k_2} \ cdot {hashrate_ { algo_2}}} \ cdot ... \ cdot \ sqrt [k_n] {{k_n} \ cdot {t} \ cdot {hashrate_ {algo_n}}}}

إذا قرر المهاجم تنفيذ الهجوم وفقًا لأحد الخوارزميات ولن يتمكن من حساب الباقي ، فسيتعين على التجزئة الضرورية أن تتجاوز تجزئة الشبكة.
على سبيل المثال ، جدول الهجوم ، الوقت بين الكتل 60. لنفترض أن المهاجم يمكنه توفير 50٪ فقط من التجزئة في ثلاث خوارزميات.
البرودة؛ الصقيع1234مساو
جزء3366
صافي hashrate40802010011862
المهاجم hashrate16040105011862

لتحقيق المساواة مع الشبكة ، سيتعين عليه الحصول على hashrate 4 مرات أعلى من hashrate الشبكة وفقًا للخوارزمية الأولى.

يوضح الرسم البياني التالي نتيجة محاكاة هجوم على blockchain.



يبدأ الهجوم على الكتلة 1000. يختلف مجموع الوظائف المكافئة في مضاهاة الفرعين قليلاً ويظهر المساواة في الفروع.

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

سعيد blockchain للجميع وشكرا لاهتمامكم بالموضوع.

Source: https://habr.com/ru/post/ar455736/


All Articles