في الآونة الأخيرة، اقترح مطور البيتكوين أنطوان بوانسو اقتراح انفصال ناعم يسمى "تنظيف الإجماع الكبير". يهدف هذا الاقتراح إلى إصلاح عدد من الثغرات والضعف التي كانت موجودة لفترة طويلة في بروتوكول البيتكوين، بما في ذلك مشكلة المعاملات المكررة التي ناقشناها مؤخرًا، بالإضافة إلى ثغرة "هجوم تشويه الوقت" الأكثر خطورة التي ستركز هذه المقالة عليها.
قبل مناقشة هجمات تشويه الوقت، نحتاج إلى فهم القواعد الحالية لحماية التلاعب بالوقت:
قاعدة الوقت الوسيط الماضي (MPT): يجب أن يكون طابع كتلة الوقت لاحقًا لوقت الوسيط لـ 11 كتلة سابقة.
قواعد توقيت الكتلة المستقبلية: يجب ألا يتجاوز الطابع الزمني للكتلة ساعتين أكثر من الوقت الوسيط لنظراء العقد. الحد الأقصى للاختلاف المسموح به بين توقيت العقد وساعة النظام المحلي هو 90 دقيقة.
تمنع قواعد MPT طوابع الوقت الخاصة بالكتل من الابتعاد كثيرًا عن الماضي، بينما تحدد قواعد الكتل المستقبلية أن طوابع الوقت لا يمكن أن تدخل المستقبل بشكل مفرط. من الجدير بالذكر أنه لا يمكن تنفيذ آلية مشابهة لقواعد الكتل المستقبلية لمنع طوابع الوقت الماضية، لأن ذلك قد يؤثر على مزامنة سلسلة الكتل الأولية. إن هجوم تشويه الوقت يستغل بالضبط إمكانية تزوير طوابع وقت قديم.
خطأ "ناقص واحد" لساتوشي ناكاموتو
تتضمن فترة ضبط صعوبة البيتكوين 2016 كتلة، وحسب وقت الهدف لإنتاج الكتل البالغ 10 دقائق، فإنها تعادل حوالي أسبوعين. عند حساب ضبط صعوبة التعدين، سيقوم البروتوكول بحساب فرق الطوابع الزمنية بين أول وآخر كتلة في نافذة 2016 كتلة ذات الصلة. تتضمن نافذة 2016 كتلة في الواقع 2015 فاصل كتلة (أي 2016 ناقص 1). وبالتالي، يجب أن يكون الوقت المستهدف الصحيح هو 60 ثانية × 10 دقائق × 2015 فاصل = 1,209,000 ثانية. ومع ذلك، يستخدم بروتوكول البيتكوين الرقم 2016 لحساب الهدف: 60 ثانية × 10 دقائق × 2016 = 1,209,600 ثانية. هذه هي خطأ تقليدي من نوع الفرق واحد، وقد يكون ناكاموتو قد اختلط عليه مفهوم الكتلة والفاصل بين الكتل.
هذا الخطأ تسبب في أن يكون الوقت المستهدف أطول بنسبة 0.05% مما ينبغي. في الواقع، فإن الفاصل الزمني المستهدف لبيتكوين ليس 10 دقائق، بل 10 دقائق و0.3 ثانية. على الرغم من أن هذه الثغرة تبدو تافهة، إلا أنه منذ إطلاق بيتكوين، كان متوسط الفاصل الزمني بين الكتل هو 9 دقائق و36 ثانية، وهو أقل بكثير من 10 دقائق. ويرجع ذلك أساساً إلى أن متوسط قوة الحوسبة قد زاد منذ عام 2009. وهذا يفسر أيضاً لماذا حدث حدث النصف الأخير مؤخراً في أبريل 2024، وليس في يناير 2025. نحن في الواقع قد تقدمنا في الجدول الزمني. على المدى الطويل، عندما تستقر الأسعار وقوة الحوسبة، قد تساعدنا هذه الخطأ البالغ 0.3 ثانية في العودة إلى الجدول الزمني الأصلي.
هجوم تشويه الزمن
تم اكتشاف هجوم تشويه الوقت لأول مرة حوالي عام 2011، حيث يستفيد من خطأ ساتوشي في حساب الصعوبة. افترض أن التعدين مركزي تمامًا، يمكن لعمال المناجم تعيين طوابع زمنية عشوائية ضمن الحدود المسموح بها من البروتوكول. يقوم المهاجمون بتعيين طابع زمني لمعظم الكتل بحيث يكون متقدمًا عن الكتلة السابقة بقدر ثانية واحدة فقط، من أجل دفع زمن سلسلة الكتل ببطء قدر الإمكان، مع الالتزام بقواعد MTP. لتقليل زمن التقدم إلى الحد الأدنى، يمكن لعمال المناجم الحفاظ على نفس الطابع الزمني لست كتل متتالية، ثم زيادة الوقت بقدر ثانية واحدة في الكتلة السابعة، وهكذا دواليك.
هذا الهجوم سيؤدي إلى تأخر وقت blockchain بشكل متزايد عن الوقت الفعلي، بينما ستستمر الصعوبة في الزيادة، مما يجعل التعدين أكثر صعوبة. ومع ذلك، لتعزيز تأثير الهجوم، سيقوم المعدنون في آخر كتلة من كل دورة تعديل صعوبة بتعيين الطابع الزمني إلى الوقت الحقيقي في العالم. بعد ذلك، سيتم تعيين الطابع الزمني لأول كتلة من دورة تعديل الصعوبة الجديدة إلى الماضي، متقدمًا فقط ثانية واحدة عن الكتلة قبل الأخيرة من الدورة السابقة. لا تزال هذه العملية تتماشى مع قواعد MTP، لأن الاستثناء الفردي لن يؤثر على الوسيط لـ 11 كتلة.
بعد تنفيذ هذا الهجوم، لن تتأثر صعوبة الدورة الأولى. ولكن اعتبارًا من الدورة الثانية للتعديل، ستبدأ الصعوبة في الانخفاض. في هذه المرحلة، يمكن للمنقبين إنشاء الكتل بسرعة كبيرة، مما قد يؤدي إلى إنشاء كمية كبيرة من بيتكوين في فترة قصيرة، وبالتالي تحقيق مكاسب غير مشروعة.
جدوى الهجوم والتحديات
على الرغم من أن هذا الهجوم له تأثير مدمر من الناحية النظرية، إلا أن تنفيذها الفعلي يواجه تحديات متعددة:
قد تحتاج إلى السيطرة على معظم قوة الحوسبة.
وجود عمال المناجم المخلصين سيزيد من صعوبة الهجوم.
ستحد قواعد MTP والطوابع الزمنية للعمال الصادقين من مدى التراجع للطوابع الزمنية الضارة.
إذا قام المعدنون الأوفياء بإنشاء أول كتلة في نافذة تعديل الصعوبة، فسوف تفشل الهجمات في تلك الدورة.
عملية الهجوم مرئية للجميع، مما قد يمنح المجتمع الوقت الكافي لإطلاق إصلاحات طارئة عن طريق تقسيم البرنامج.
الحلول
هناك عدة طرق محتملة لإصلاح هذه الثغرة:
تغيير خوارزمية ضبط الصعوبة، حساب الفجوة الزمنية بين الكتل في نوافذ 2016 المختلفة، وإصلاح خطأ الفرق بشكل كامل. لكن قد يتطلب هذا انقسامًا صعبًا.
إلغاء قواعد MTP، يتطلب أن يتحرك الوقت دائماً للأمام في كل كتلة. لكن هذا قد يؤدي إلى توقف الوقت في المستقبل البعيد، مما يسبب مشاكل للعمال الذين يستخدمون ساعة النظام.
الحل الأبسط هو طلب ألا يكون وقت الكتلة الأولى من دورة الصعوبة الجديدة قبل عدد محدد من الدقائق من الكتلة الأخيرة من الدورة السابقة. وقد تم تحديد هذا الوقت في اقتراح تنظيف الإجماع الكبير لبوينسوت لمدة ساعتين.
تتميز هذه القيود التي تستمر لمدة ساعتين بالمزايا التالية:
تقليل مخاطر الكتل غير الفعالة بشكل غير متوقع إلى الحد الأدنى
تتوافق مع قواعد الطوابع الزمنية للكتل المستقبلية
بالمقارنة مع القواعد الحالية، هو تغيير أكثر تحفظًا.
نسبة التعديل 0.6% صغيرة جداً
على الرغم من أن هذا لا يزال يسمح للمهاجمين بتخفيض الصعوبة بنحو 0.6% في كل دورة، إلا أن هذه ستكون تغييرات لمرة واحدة ولا يمكن تكديسها. بشكل عام، حقق هذا الحل توازنًا جيدًا بين حماية أمان الشبكة والحفاظ على استقرار النظام.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
تسجيلات الإعجاب 19
أعجبني
19
7
مشاركة
تعليق
0/400
ColdWalletGuardian
· منذ 5 س
سأكون مطمئنًا إذا تم إصلاح هذا الخطأ.
شاهد النسخة الأصليةرد0
BridgeNomad
· منذ 5 س
لقد تعرضت للكثير من استغلالات الجسر لأعرف - هذا النوع من الهجمات يجعلني أشعر باضطراب ما بعد الصدمة من جسر جونو فعلًا
شاهد النسخة الأصليةرد0
fren.eth
· منذ 5 س
لا أحد أحمق، من لا يريد أن يحصل على شيء دون دفع ثمنه؟
شاهد النسخة الأصليةرد0
NotAFinancialAdvice
· منذ 5 س
بعد إصلاح الثغرات، لا يمكن للمعدّن اللعب بعد الآن.
شاهد النسخة الأصليةرد0
retroactive_airdrop
· منذ 5 س
قمت بإصلاح شيء وحيد
شاهد النسخة الأصليةرد0
GmGmNoGn
· منذ 5 س
مرة أخرى في إصلاح الأخطاء، يتم حل واحدة وتظهر أخرى
تحليل ثغرة هجوم تشويه الزمن على البيتكوين: المبدأ، التأثيرات، وخطط الإصلاح
بيتكوين ثغرات الأمان: هجوم تشويه الزمن
في الآونة الأخيرة، اقترح مطور البيتكوين أنطوان بوانسو اقتراح انفصال ناعم يسمى "تنظيف الإجماع الكبير". يهدف هذا الاقتراح إلى إصلاح عدد من الثغرات والضعف التي كانت موجودة لفترة طويلة في بروتوكول البيتكوين، بما في ذلك مشكلة المعاملات المكررة التي ناقشناها مؤخرًا، بالإضافة إلى ثغرة "هجوم تشويه الوقت" الأكثر خطورة التي ستركز هذه المقالة عليها.
! خرق أمان البيتكوين: هجوم الاعوجاج الزمني
آلية حماية الطوابع الزمنية لبلوك بيتكوين
قبل مناقشة هجمات تشويه الوقت، نحتاج إلى فهم القواعد الحالية لحماية التلاعب بالوقت:
قاعدة الوقت الوسيط الماضي (MPT): يجب أن يكون طابع كتلة الوقت لاحقًا لوقت الوسيط لـ 11 كتلة سابقة.
قواعد توقيت الكتلة المستقبلية: يجب ألا يتجاوز الطابع الزمني للكتلة ساعتين أكثر من الوقت الوسيط لنظراء العقد. الحد الأقصى للاختلاف المسموح به بين توقيت العقد وساعة النظام المحلي هو 90 دقيقة.
تمنع قواعد MPT طوابع الوقت الخاصة بالكتل من الابتعاد كثيرًا عن الماضي، بينما تحدد قواعد الكتل المستقبلية أن طوابع الوقت لا يمكن أن تدخل المستقبل بشكل مفرط. من الجدير بالذكر أنه لا يمكن تنفيذ آلية مشابهة لقواعد الكتل المستقبلية لمنع طوابع الوقت الماضية، لأن ذلك قد يؤثر على مزامنة سلسلة الكتل الأولية. إن هجوم تشويه الوقت يستغل بالضبط إمكانية تزوير طوابع وقت قديم.
خطأ "ناقص واحد" لساتوشي ناكاموتو
تتضمن فترة ضبط صعوبة البيتكوين 2016 كتلة، وحسب وقت الهدف لإنتاج الكتل البالغ 10 دقائق، فإنها تعادل حوالي أسبوعين. عند حساب ضبط صعوبة التعدين، سيقوم البروتوكول بحساب فرق الطوابع الزمنية بين أول وآخر كتلة في نافذة 2016 كتلة ذات الصلة. تتضمن نافذة 2016 كتلة في الواقع 2015 فاصل كتلة (أي 2016 ناقص 1). وبالتالي، يجب أن يكون الوقت المستهدف الصحيح هو 60 ثانية × 10 دقائق × 2015 فاصل = 1,209,000 ثانية. ومع ذلك، يستخدم بروتوكول البيتكوين الرقم 2016 لحساب الهدف: 60 ثانية × 10 دقائق × 2016 = 1,209,600 ثانية. هذه هي خطأ تقليدي من نوع الفرق واحد، وقد يكون ناكاموتو قد اختلط عليه مفهوم الكتلة والفاصل بين الكتل.
هذا الخطأ تسبب في أن يكون الوقت المستهدف أطول بنسبة 0.05% مما ينبغي. في الواقع، فإن الفاصل الزمني المستهدف لبيتكوين ليس 10 دقائق، بل 10 دقائق و0.3 ثانية. على الرغم من أن هذه الثغرة تبدو تافهة، إلا أنه منذ إطلاق بيتكوين، كان متوسط الفاصل الزمني بين الكتل هو 9 دقائق و36 ثانية، وهو أقل بكثير من 10 دقائق. ويرجع ذلك أساساً إلى أن متوسط قوة الحوسبة قد زاد منذ عام 2009. وهذا يفسر أيضاً لماذا حدث حدث النصف الأخير مؤخراً في أبريل 2024، وليس في يناير 2025. نحن في الواقع قد تقدمنا في الجدول الزمني. على المدى الطويل، عندما تستقر الأسعار وقوة الحوسبة، قد تساعدنا هذه الخطأ البالغ 0.3 ثانية في العودة إلى الجدول الزمني الأصلي.
هجوم تشويه الزمن
تم اكتشاف هجوم تشويه الوقت لأول مرة حوالي عام 2011، حيث يستفيد من خطأ ساتوشي في حساب الصعوبة. افترض أن التعدين مركزي تمامًا، يمكن لعمال المناجم تعيين طوابع زمنية عشوائية ضمن الحدود المسموح بها من البروتوكول. يقوم المهاجمون بتعيين طابع زمني لمعظم الكتل بحيث يكون متقدمًا عن الكتلة السابقة بقدر ثانية واحدة فقط، من أجل دفع زمن سلسلة الكتل ببطء قدر الإمكان، مع الالتزام بقواعد MTP. لتقليل زمن التقدم إلى الحد الأدنى، يمكن لعمال المناجم الحفاظ على نفس الطابع الزمني لست كتل متتالية، ثم زيادة الوقت بقدر ثانية واحدة في الكتلة السابعة، وهكذا دواليك.
هذا الهجوم سيؤدي إلى تأخر وقت blockchain بشكل متزايد عن الوقت الفعلي، بينما ستستمر الصعوبة في الزيادة، مما يجعل التعدين أكثر صعوبة. ومع ذلك، لتعزيز تأثير الهجوم، سيقوم المعدنون في آخر كتلة من كل دورة تعديل صعوبة بتعيين الطابع الزمني إلى الوقت الحقيقي في العالم. بعد ذلك، سيتم تعيين الطابع الزمني لأول كتلة من دورة تعديل الصعوبة الجديدة إلى الماضي، متقدمًا فقط ثانية واحدة عن الكتلة قبل الأخيرة من الدورة السابقة. لا تزال هذه العملية تتماشى مع قواعد MTP، لأن الاستثناء الفردي لن يؤثر على الوسيط لـ 11 كتلة.
بعد تنفيذ هذا الهجوم، لن تتأثر صعوبة الدورة الأولى. ولكن اعتبارًا من الدورة الثانية للتعديل، ستبدأ الصعوبة في الانخفاض. في هذه المرحلة، يمكن للمنقبين إنشاء الكتل بسرعة كبيرة، مما قد يؤدي إلى إنشاء كمية كبيرة من بيتكوين في فترة قصيرة، وبالتالي تحقيق مكاسب غير مشروعة.
جدوى الهجوم والتحديات
على الرغم من أن هذا الهجوم له تأثير مدمر من الناحية النظرية، إلا أن تنفيذها الفعلي يواجه تحديات متعددة:
الحلول
هناك عدة طرق محتملة لإصلاح هذه الثغرة:
تغيير خوارزمية ضبط الصعوبة، حساب الفجوة الزمنية بين الكتل في نوافذ 2016 المختلفة، وإصلاح خطأ الفرق بشكل كامل. لكن قد يتطلب هذا انقسامًا صعبًا.
إلغاء قواعد MTP، يتطلب أن يتحرك الوقت دائماً للأمام في كل كتلة. لكن هذا قد يؤدي إلى توقف الوقت في المستقبل البعيد، مما يسبب مشاكل للعمال الذين يستخدمون ساعة النظام.
الحل الأبسط هو طلب ألا يكون وقت الكتلة الأولى من دورة الصعوبة الجديدة قبل عدد محدد من الدقائق من الكتلة الأخيرة من الدورة السابقة. وقد تم تحديد هذا الوقت في اقتراح تنظيف الإجماع الكبير لبوينسوت لمدة ساعتين.
تتميز هذه القيود التي تستمر لمدة ساعتين بالمزايا التالية:
على الرغم من أن هذا لا يزال يسمح للمهاجمين بتخفيض الصعوبة بنحو 0.6% في كل دورة، إلا أن هذه ستكون تغييرات لمرة واحدة ولا يمكن تكديسها. بشكل عام، حقق هذا الحل توازنًا جيدًا بين حماية أمان الشبكة والحفاظ على استقرار النظام.
! ثغرة أمنية البيتكوين: هجوم الاعوجاج الزمني