قبل البدء , اريد ان اشرح بطريقة مبسطة (غير تقنية) كيف يتم التعدين , وفي حالة رغبتك في الفهم الاكتر اطلع على هدا الموضوع
https://bitcointalksearch.org/topic/pow-5133395لتفهم التعدين وكيف يتم توزيع البتكوين تخايل معي انك تجلس داخل احد فصول المدرسة مع زملاءك ( انتم المعدنين) والاستاد ( البلوك تشين ) يضع على الطاولة امامه مجموعة من الهداية ( بتكوين) وسيوزعها عليكم بناء على اجوبتكم الصحيحة ( التعدين) .
بدات المسابقة وكان رصيد كل واحد منكم من الهداية (0) , وسوف تتسابقون على ان تحلو الاسئلة للفوز بالهداية, ولكن الاستاد (البلوك تشين) له قواعد تابتة ولا تتغير تحت اي ظرف من الظروف
1-سوف يعطي هدية واحدة فقط لكل جواب صحيح بغض النظر عن صعوبة السؤال او كم استغرق حله
2-الهداية لن تعطى للطلبة في اليد ستبقا عند الاستاد ولكن سوف يضيفها لرصيدك فقط ويقوم بوضعها في السجل ويوزع عليكم نسخ منه, ولن يقوم بتحويلها لاي طالب تاني الا بادنك مهما كان الظروف
3- الاستاد يحافط على وقت معين للجواب وهوا 10 دقايق , في حالة ان الطلبة ادكياء وكانو يحلو الاسئلة في 5 دقائق سوف يصعب السؤال والعكس صحيح , صعوبة السؤال ( صعوبة التعدين) سوف تحاول دائما ان تبقي الزمن المستغرق للجواب 10 دقايق
يبدا الاستاد بطرح السؤال الاول وهوا مثلا 1+4+5+6+6+7+8 = ؟ . عند معرفة احد الطلبة الاجابة عليه ان يقول الاجابة بصوت عالي, اول من يجاوب على الجواب الصحيح يفوز بالجائزة وتسجل في رصيده ( المحفظة)
فلنفرض انه يوجد 4 طلبة ( احمد , خالد , علي , حسام) وبعد 1000 سؤال (بلوك)اصبح رصيد كل منهم كالاتي
احمد : 200
خالد : 200
علي : 300
حسام :300
بعدها دهب احمد للاستاد وقال اريد ان ابيع لحسام 100 نقطة فقط , فقام الاستاد بتحويل 100 من احمد الى خالد فاصبح الرصيد كالاتي بعد تسجيله في السجل ( البلوك) رقم ( 1001)
احمد = 200 -
100 لي حسام = 100
خالد = 200
علي = 300
حسام = 300 +
100 من احمد = 400
ركز جيدا ان الاستاد لم يكتب رصيد حسام 400 , سجل ايضا انه جاءته ال 100 من احمد , فلو قرر حسام بيع 100 لخالد مثلا سيكون الرصيد هكدا في البلوك رقم ( 1002)
احمد = 200 -
100 لي حسام = 100
خالد = 200 +
100 من احمد لحسام من حسام لخالد = 300
علي = 300
حسام = 300 +
100 من احمد -
100 لخالد = 300
مما يعني ان تلك ال 100 الاولى التي باعها احمد سوف تسجل وتدون ولن يستطيع احمد ان ينكر انه ارسلها , وسيعرف الاستاد والجميع اين هيا 100 احمد حتى لو تم تحويلها مليار مرة , وكل ما كانت المعاملة قديمة تدفن فوقها المعاملات الجديدة وتصعب تغيرها او مسحها.
ملاحظة اخرى وهي انه عندما يقوم الطالب بحل اللغز , قبل ان تسلم له الهدية , عليه ان يكتب كل المعاملات السابقة والارصدة تم يصادق عليها باقي زملاءه.
حسننا دعنا نتخيل اننا الان وصلنا لبلوك رقم ( 2000) وجاء حسام للاستاد وقال انه يريد ان بيع 400 من حسابه بينما هوا يملك فقط 300 , ويقوم بعرض السجل او بلوك رقم (1001) التي كان فيه رصيده فعلا 400 , الاستاد شخص كبير في السن ولا يتدكر جيدا فيخبر باقي الطلبة ان حسام قدم له اتبات انه يملك 400 بالبلوك (1001) الطلبة سيرفضون هدا ويقدمو اتباتهم الاجدد رقم (2000) والاستاد ملزم ان يصدق احدت واخر اصدار, حتى لو كان زائف ومزور.
حسننا المثال سخيف لكن اتمنى الفكرة وصلت
ادا القوانين تابتة ولا تتغير وهي تنص دائما على
- البلوكتشين الاطول هوا البلوكتشين الاساسي والفعال
-مكافئة التعدين تابتة تحت كل الظروف وبغض عن النظر عن من وكيف قام بحل اللغز
- يمكن ان تقدم اجابتك سرا للاستاد بدون علم زملاءك وان كانت صحيحة تاخد هدية وتسجلها في بلوك تشين (سجل) خاص بك اي ان رصيدك المعروف عند الجماعة لن يتغير
ناتي الان لموضوعنا الاصلي وهوا هجوم 51%
ياتي مثلا شخص جديد اسمه "رجب" يجلس مع الطلبة , يستمع لاجابتهم , وسرعته في الاجابة تمتل 51% او اكتر من زملاءه , يجاوب على الاسئلة بسرية وياتخد جوائز ويزيد سجلاته كما يشاء, لنفرض انه بينما الاخرين يحلون رقم (2001) وهوا وصل فعلا لرقم (2002) فهده اللحظة يبدا الهجوم فعليا . رجب الان يعمل على بلوك تشين منفصل ولكن لديه كل البيانات الصحيحة من 2000 واقل, يستمر الطلبة المساكين في الحل وهوا يسبقهم في البلوك تشين خاص به.
مادا يستفيد رجب؟
يقوم رجب الدي رصيده مثلا 100 في البلوك الرئيسي المتعارف عليه ببيعها لااحمد , يقوم الطلبة بتسجيل دلك التحويل في البلوك 2003 بينما هوا وصل لبلوك 2004 ولا يقوم بتسجيلها في البلوك تشين الخاص به, عندما يصل للبلوك 2005 ويصل زملاءه للبلوك 2004 ياتي للاستاد ويقول اريد ارسال 100 لفلان, يسئل الطلبة هل يملك رجب 100 يقولو رصيد رجب 0 لانه ارسل 100 لاحمد ونحن في البلوك 2004 يقوم فهده اللحفظة بتقديم اجابته التي تحصل عليها مسبقا ويقول لا نحن في 2005 ولا يوجد اي تحويل لي في بلوك 2003(لانه لم يقم بتسجيلها عندما كان هوا في 2003), وبحسب قانون البلوكتشين فان 2005 اكتر من 2004 لدلك كلام رجب هو الصح.
-يسطتيع رجب ان كان سريعا كفاية ان يقوم بالبداء من بلوك رقم 1000 مثلا ويحاول ان يسبق زملاءه الدين وصلو لي 2003 ويمكنه الغاء اول تحويل من احمد لي حسام , وعندما يصل لي 2005 يعرض البلوك تشين الخاص به , وترجع ال 100 لاحمد وتختفي من حسام .
( الرجوع بالاجابات الى دلك الحد شبه مستحيل , حسابيا يمكنه الرجوع فقط عدة ارقام لانه في حالة انظم شخص اسمه مروان للمجوعة مثلا فسوف تقل نسبته من 51% الى 40% مثلا وبدلك لن يلحق عليهم ابدا فهدا النوع من الهجوم يحاول فيه المهاجم ان ينجح باسرع وقت قبل ان يفقد نسبة سيطرته)
-لكن
لا يمكن لرجب ان يحول ال 100 من حساب احمد لحسابه الا لو كان لديه البرافيت كي لمحفظة احمد.
-يستطيع رجب بكونه متقدم على الجميع ان يجد الحل ولا يقوم باخد الهدية (البتكوين) ولا يقوم بتسجيل التحويلات الجديدة بمعنى ان بامكانه ايقاف كل التحويلات حتى يلحق به الطلبة الاخرين ويقومو هم بتسجيلها.
-لكن
لا يستطيع ان يسرق الهدايا من الاستاد وعليه ان يقدم اجابة كل 10 دقائق ويحصل على هدية واحدة فقط , مما يعني المهاجم لا يستطيع خلق بتكوين من تلقاء نفسه حتى وان تحكم في البلوك تشين
-ان اكشتف المعدنين الاخرين تصرفات رجب يمكنهم عمل ماييعرف بي الهارد فورك , ويكون رجب يسبح في بحر لوحده ولن يعترف احد بسجلاته.
ملخص : نظريا هجوم 51% قابل للتنفيد , عمليا هوا مكلف جدا , قوة التعدين الان ( عدد الطلبة) هي 47 مليون تيرا هاش , يحتاج المهاجم لي نص هده القيمة تقريبا ليحاول ان يهاجم الشبكة, مما يعني انه يحتاج لي تقريبا 24 مليون تيرا.
فلناخد جهاز تعدين اس 9 وهوا الاكتر شيوعا قوته 14 تيرا وسعره مستعمل في حوالي 200$ في الصين الان, يعني انه يحتاج الى 1,714,285 جهاز بقيمة 342,857,142 $ وطاقة كهربائية تعادل اكتر من 2000 ميقا وات , كل هدا التعب والتكاليف فقط لكي يقوم بما يعرف بي Double Spend او الصرف المزدوج كما اشرنا في مثال رجب عندما باع 100 من رصيده واسترجعها.
فلو كان الشخص يمتلك كل هده القدرة, يمكنه ان يعدن البتكوين بدون ان يهاجم الشبكة ويجني حوالي 1000 بتكوين يومينا اي مايعادل 5,000,000$ يوميا ( بدون حسابة تكلفة الكهرباء)