في 15 أغسطس 2010 لاحظ Jeff Garzik أحد مطوري البتكوين وجود شيء غريب في الكتلة رقم 74,638.
في هذه الكتلة كان هناك مخرجين بقيمة 92.2 مليار بتكوين تم إرسالهم إلى عنوانين مختلفين.
bitcointalk.org
2~
في هذه الكتلة كان هناك مخرجين بقيمة 92.2 مليار بتكوين تم إرسالهم إلى عنوانين مختلفين.
bitcointalk.org
2~
الأمر آنذاك أشبه بالكارثة!
هناك شخص يمتلك أكثر من 184 مليار عملة #Bitcoin بينما من المفترض أن يكون سبلاي العملة محدودًا بعدد 21 مليون عملة!
هناك عدد من المشاكل الأمنية التي ظهرت في الأيام الأولى للبتكوين، لكن هذه المشكلة كانت كفيلة بالقضاء على البتكوين.
3~
هناك شخص يمتلك أكثر من 184 مليار عملة #Bitcoin بينما من المفترض أن يكون سبلاي العملة محدودًا بعدد 21 مليون عملة!
هناك عدد من المشاكل الأمنية التي ظهرت في الأيام الأولى للبتكوين، لكن هذه المشكلة كانت كفيلة بالقضاء على البتكوين.
3~
بعد مناقشات بين المطورين على المدونة، قام أحد الأشخاص بإنشاء مقال يقترح فيه أن المشكلة في البتكوين هي ثغرة أمنية معروفة باسم Integer Overflow.
bitcointalk.org
4~
bitcointalk.org
4~
ثغرة Integer Overflow هي من الثغرات التي تؤدي إلى كوارث أمنية بسبب عدم وجود معرفة لنتيجة استغلال الثغرة.
معظم لغات البرمجة تقوم بتحديد مساحة الذاكرة التي يمكن تخزين الأعداد -كنوع بيانات- فيها.
مثلا أعداد بصيغة 32-Bit يمكن لذاكرتها تخزين أرقام غير سالبة من 0 حتى 4,294,967,295.
5~
معظم لغات البرمجة تقوم بتحديد مساحة الذاكرة التي يمكن تخزين الأعداد -كنوع بيانات- فيها.
مثلا أعداد بصيغة 32-Bit يمكن لذاكرتها تخزين أرقام غير سالبة من 0 حتى 4,294,967,295.
5~
أيضًا يمكن لنفس نوع البيانات تخزين الأرقام ذات الإشارة من نطاق 2147483648- حتى 2147483647.
إذا حاولنا القيام بهذه العملية الرياضية 2147483647 + 1 وحاولنا تخزين النتيجة تحدث مشكلة Integer Overflow وتكون النتيجة هكذا 2,147,483,648−.
6~
إذا حاولنا القيام بهذه العملية الرياضية 2147483647 + 1 وحاولنا تخزين النتيجة تحدث مشكلة Integer Overflow وتكون النتيجة هكذا 2,147,483,648−.
6~
الفحص الثاني كان يتم من خلال التأكد من أن المدخلات (الرقم المستخدم كان 0.50 #BTC) تستطيع دفع المخرجات (المبلغ المحوّل) 92233720368.54277039 إلى المحفظتين المحددتين.
المشكلة أن الفحص كان يتم من خلال التأكد من أن الرسوم ليست عددًا سالبًا عبر الطرح (المدخلات - المخرجات).
9~
المشكلة أن الفحص كان يتم من خلال التأكد من أن الرسوم ليست عددًا سالبًا عبر الطرح (المدخلات - المخرجات).
9~
في هذه الحالة عند جمع المخرجات:
92233720368.54277039 + 92233720368.54277039 تحدث مشكلة Integer Overflow بسبب حجم الناتج الضخم، ويصبح الناتج بالسالب:
184,467,440,737.09551616-
ماذا يحدث عندم يتم الفحص الثاني (المدخلات - المخرجات)؟
10~
92233720368.54277039 + 92233720368.54277039 تحدث مشكلة Integer Overflow بسبب حجم الناتج الضخم، ويصبح الناتج بالسالب:
184,467,440,737.09551616-
ماذا يحدث عندم يتم الفحص الثاني (المدخلات - المخرجات)؟
10~
بعد اكتشاف المشكلة ومرور 5 ساعات قام ساتوشي بمساعدة Gavin Andresen بطرح حل للمشكلة على المطورين، ثم أصدر تحديث للسوفتوير رقم 0.3.10 لترقيع الثغرة، وطلب من المعدنين الانتقال إلى الإصدار الأحدث.
يعني باختصار تم عمل Soft Fork لبلوكتشين البتكوين.
bitcointalk.org
12~
يعني باختصار تم عمل Soft Fork لبلوكتشين البتكوين.
bitcointalk.org
12~
هذا التحديث لم يقتصر على مجرد ترقيع الثغرة، ولكن قام بشيء لا يعرفه 99.99% من المستثمرين في #البتكوين وهو أن ساتوشي قام بالتعديل على سجل البلوكتشين.
التحديث تضمن إعادة تعيين البلوكتشين إلى ما قبل البلوك الذي حدثت فيه الثغرة من أجل إزالة عملات البتكوين التي تم إنشائها.
13~
التحديث تضمن إعادة تعيين البلوكتشين إلى ما قبل البلوك الذي حدثت فيه الثغرة من أجل إزالة عملات البتكوين التي تم إنشائها.
13~
بمعنى أنه تم حذف جميع الكتل وكل المعاملات التي تمت قبل المعاملة التي حدث فيها الاختراق، وتم إعادة سجل البلوكتشين إلى آخر معاملة قبل ذلك.
بعد إصدار التحديث أصبح لدينا بلوكتشين بتكوين أصلية التي حدث فيها الاختراق، وبلوكتشين بتكوين معدّلة، وكلاهما يعمل بشكل متوازي.
14~
بعد إصدار التحديث أصبح لدينا بلوكتشين بتكوين أصلية التي حدث فيها الاختراق، وبلوكتشين بتكوين معدّلة، وكلاهما يعمل بشكل متوازي.
14~
خلال الساعات التالية ازداد عدد المعدنين على البلوكتشين المعدّلة حتى فاق +50% وأصبحت بلوكتشين البتكوين المعدّلة هي البلوكتشين المسيطرة والتي ما زلنا نستخدمها حتى اللحظة.
15~
15~
هذا الاختراق يبطل الكثير من أوهام المتعصبين للبتكوين لأن:
كود البتكوين تم اختراقه ✅
بلوكتشين البتكوين تم التعديل عليها ✅
تم إنشاء عملات بتكوين من لا شيء ✅
سبلاي البتكوين تجاوز 21 مليون عملة ✅
البتكوين هو مجرد كود برمجي قد يوجد به ثغرات أمنية يمكن أن تستغل بشكل خبيث.
16~
كود البتكوين تم اختراقه ✅
بلوكتشين البتكوين تم التعديل عليها ✅
تم إنشاء عملات بتكوين من لا شيء ✅
سبلاي البتكوين تجاوز 21 مليون عملة ✅
البتكوين هو مجرد كود برمجي قد يوجد به ثغرات أمنية يمكن أن تستغل بشكل خبيث.
16~
الشيء الغريب أن الشخص الذي استغل الثغرة لم يتصرف في العملات التي حصل عليها، بالرغم من أنه كان لديه ساعات لبيعها، وكانت منصة التداول MtGox تعمل في ذلك الوقت، وسعر البتكوين وقتها كان في حدود 0.40$.
إذا قام هذا الشخص بالبيع آنذاك؛ ربما لم نكن لنسمع عن العملات الرقمية مطلقًا.
17/17
إذا قام هذا الشخص بالبيع آنذاك؛ ربما لم نكن لنسمع عن العملات الرقمية مطلقًا.
17/17
Loading suggestions...