في 26 مارس 2025، قدم مطورو البيتكوين اقتراحًا لعملية انقسام ناعمة تُسمى "تنظيف الإجماع الكبير". يهدف هذا الاقتراح إلى إصلاح عدة ثغرات وضعف موجودة منذ فترة طويلة في بروتوكول البيتكوين، بما في ذلك مشكلة المعاملات المكررة التي ناقشناها سابقًا، بالإضافة إلى ثغرة "هجوم انحراف الوقت" التي ستركز هذه المقالة عليها.
آلية حماية الطوابع الزمنية لكتل البيتكوين
قبل مناقشة هجمات تشويه الزمن، نحتاج إلى فهم قواعد حماية التلاعب بالوقت الحالية:
الوقت الوسيط الماضي (MPT) القاعدة: يجب أن تكون طوابع وقت الكتل بعد الوقت الوسيط لأحدث أحد عشر كتلة.
قواعد توقيت الكتل المستقبلية: يجب ألا يتجاوز طابع الزمن للكتلة أكثر من ساعتين عن الوقت الوسيط لأقران العقد. الحد الأقصى المسموح به للاختلاف بين وقت العقد وساعة النظام المحلي هو 90 دقيقة.
تمنع قواعد MPT طوابع الوقت الخاصة بالكتل من الرجوع إلى الوراء بشكل مفرط، بينما تحد قواعد الكتل المستقبلية من تقديم طوابع الوقت بشكل مفرط. ومن المهم ملاحظة أنه لا يمكن تنفيذ آلية مماثلة لقواعد الكتل المستقبلية لمنع طوابع الوقت الماضية، حيث قد يؤثر ذلك على مزامنة سلسلة الكتل الأولية. تستغل هجمات تشويه الوقت بالضبط إمكانية تزوير طوابع الوقت القديمة.
خطأ "ناقص واحد" من ساتوشي ناكاموتو
تتضمن فترة تعديل صعوبة البيتكوين 2016 كتلة، وبناءً على هدف إنتاج الكتل كل 10 دقائق، تُحسب تقريبًا على أنها أسبوعان. عند حساب تعديل الصعوبة، يقارن البروتوكول فرق الطوابع الزمنية بين أول وآخر كتلتين في نافذة 2016 كتلة ذات الصلة. تحتوي هذه النافذة فعليًا على 2015 فترة كتلة (أي 2016 ناقص 1). وبالتالي، يجب أن يُستخدم نظريًا 60 ثانية * 10 دقائق * 2015 فترة = 1,209,000 ثانية كوقت مستهدف. ومع ذلك، يستخدم بروتوكول البيتكوين هذا الرقم 2016، مما يؤدي إلى 60 ثانية * 10 دقائق * 2016 = 1,209,600 ثانية. هذه خطأ نموذجي يُعرف بخطأ الفرق الواحد، وقد ينشأ عن خلط ساتوشي ناكاموتو بين عدد الكتل وعدد فترات الكتل.
هذا الخطأ يجعل الوقت المستهدف أطول بنسبة 0.05% مما ينبغي، مما يؤدي فعليًا إلى تمديد الوقت المستهدف لكتلة البيتكوين إلى 10 دقائق و0.3 ثانية. على الرغم من أن هذا الخطأ يبدو تافهًا، إلا أنه مرتبط بمشكلة أكثر خطورة.
مبدأ هجوم تشويه الوقت
تم اكتشاف هجوم تشويه الوقت لأول مرة حوالي عام 2011، واستفاد من خطأ ساتوشي في حساب الصعوبة. يتمكن المهاجمون من تقليل صعوبة التعدين بشكل مصطنع من خلال التلاعب بختم الزمن للكتل.
خطوات الهجوم كالتالي:
بالنسبة لمعظم الكتل، يتم تعيين الطابع الزمني لتقدم ثانية واحدة فقط عن الكتلة السابقة.
يتم الحفاظ على نفس الطابع الزمني لكل ست كتل، ثم يتم زيادة الثانية واحدة، لضمان الامتثال لقواعد MPT.
في آخر كتلة من كل دورة تعديل صعوبة، يتم تعيين الطابع الزمني على الوقت الحقيقي في العالم.
توقيت الطابع الزمني لأول كتلة في الدورة التالية يعود مرة أخرى إلى الماضي، حيث يأتي قبل الكتلة قبل الأخيرة في الدورة السابقة بمدة ثانية واحدة.
ستؤدي هذه العملية إلى تأخر زمن blockchain بشكل متزايد عن الوقت الحقيقي، بينما تزداد الصعوبة باستمرار. ومع ذلك، بدءًا من دورة التعديل الثانية، ستبدأ الصعوبة في الانخفاض. يمكن للمهاجمين استغلال هذه الآلية لإنشاء عدد كبير من الكتل بسرعة، والحصول على مكافآت بيتكوين زائدة.
على الرغم من أن هذا الهجوم له تأثير كبير من الناحية النظرية، إلا أن تنفيذه يواجه بعض التحديات:
يجب السيطرة على معظم قوة الحوسبة للشبكة.
وجود عمال المناجم الأوفياء سيزيد من صعوبة الهجوم.
تحدد قواعد MTP والطقس الزمني الصادق مدى رجوع الطوابع الزمنية الضارة.
إذا قام عمال المناجم الأوفياء بإنتاج أول كتلة في نافذة تعديل الصعوبة، فإن الهجوم في تلك الدورة سيفشل.
عملية الهجوم مرئية للجميع، وقد تؤدي إلى تفعيل إصلاحات تقسيم برمجي طارئة.
الحلول المحتملة
هناك عدة طرق ممكنة لإصلاح هذه الثغرة:
تغيير خوارزمية ضبط الصعوبة، وحساب الفجوة الزمنية بين النوافذ المختلفة لعام 2016 وإصلاح خطأ الفرق. لكن قد يتطلب ذلك انقسامًا صلبًا.
إلغاء قواعد MTP، يتطلب أن يتحرك الوقت للأمام في كل كتلة. لكن هذا قد يؤدي إلى أن يتوقف الوقت في المستقبل البعيد، أو أن يتسبب في مشاكل بسبب اختلافات في ساعة النظام.
الحل الأبسط هو طلب أن يكون وقت الكتلة الأولى من فترة الصعوبة الجديدة غير مبكر عن عدد دقائق محددة من الكتلة الأخيرة من الفترة السابقة. تتراوح فترة الوقت التي يتم مناقشتها حاليًا بين 10 دقائق وساعتين.
في أحدث اقتراح لتنظيف الإجماع الكبير، اقترح المطورون فرض حد زمني قدره ساعتين. هذه الفترة الزمنية تمثل حوالي 0.6% من الهدف الزمني لدورة ضبط الصعوبة، ويمكن أن تحد بشكل فعال من مساحة التلاعب بالصعوبة نحو الأسفل.
بغض النظر عن الحل الذي سيتم اعتماده في النهاية، فإن إصلاح هذه الثغرة سيعزز من أمان واستقرار شبكة بيتكوين.
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تحليل ثغرة هجوم التواء وقت بيتكوين: المبدأ، التأثيرات، وحلول الإصلاح
تحليل ثغرة هجوم تشويه زمن بيتكوين
في 26 مارس 2025، قدم مطورو البيتكوين اقتراحًا لعملية انقسام ناعمة تُسمى "تنظيف الإجماع الكبير". يهدف هذا الاقتراح إلى إصلاح عدة ثغرات وضعف موجودة منذ فترة طويلة في بروتوكول البيتكوين، بما في ذلك مشكلة المعاملات المكررة التي ناقشناها سابقًا، بالإضافة إلى ثغرة "هجوم انحراف الوقت" التي ستركز هذه المقالة عليها.
آلية حماية الطوابع الزمنية لكتل البيتكوين
قبل مناقشة هجمات تشويه الزمن، نحتاج إلى فهم قواعد حماية التلاعب بالوقت الحالية:
الوقت الوسيط الماضي (MPT) القاعدة: يجب أن تكون طوابع وقت الكتل بعد الوقت الوسيط لأحدث أحد عشر كتلة.
قواعد توقيت الكتل المستقبلية: يجب ألا يتجاوز طابع الزمن للكتلة أكثر من ساعتين عن الوقت الوسيط لأقران العقد. الحد الأقصى المسموح به للاختلاف بين وقت العقد وساعة النظام المحلي هو 90 دقيقة.
تمنع قواعد MPT طوابع الوقت الخاصة بالكتل من الرجوع إلى الوراء بشكل مفرط، بينما تحد قواعد الكتل المستقبلية من تقديم طوابع الوقت بشكل مفرط. ومن المهم ملاحظة أنه لا يمكن تنفيذ آلية مماثلة لقواعد الكتل المستقبلية لمنع طوابع الوقت الماضية، حيث قد يؤثر ذلك على مزامنة سلسلة الكتل الأولية. تستغل هجمات تشويه الوقت بالضبط إمكانية تزوير طوابع الوقت القديمة.
خطأ "ناقص واحد" من ساتوشي ناكاموتو
تتضمن فترة تعديل صعوبة البيتكوين 2016 كتلة، وبناءً على هدف إنتاج الكتل كل 10 دقائق، تُحسب تقريبًا على أنها أسبوعان. عند حساب تعديل الصعوبة، يقارن البروتوكول فرق الطوابع الزمنية بين أول وآخر كتلتين في نافذة 2016 كتلة ذات الصلة. تحتوي هذه النافذة فعليًا على 2015 فترة كتلة (أي 2016 ناقص 1). وبالتالي، يجب أن يُستخدم نظريًا 60 ثانية * 10 دقائق * 2015 فترة = 1,209,000 ثانية كوقت مستهدف. ومع ذلك، يستخدم بروتوكول البيتكوين هذا الرقم 2016، مما يؤدي إلى 60 ثانية * 10 دقائق * 2016 = 1,209,600 ثانية. هذه خطأ نموذجي يُعرف بخطأ الفرق الواحد، وقد ينشأ عن خلط ساتوشي ناكاموتو بين عدد الكتل وعدد فترات الكتل.
هذا الخطأ يجعل الوقت المستهدف أطول بنسبة 0.05% مما ينبغي، مما يؤدي فعليًا إلى تمديد الوقت المستهدف لكتلة البيتكوين إلى 10 دقائق و0.3 ثانية. على الرغم من أن هذا الخطأ يبدو تافهًا، إلا أنه مرتبط بمشكلة أكثر خطورة.
مبدأ هجوم تشويه الوقت
تم اكتشاف هجوم تشويه الوقت لأول مرة حوالي عام 2011، واستفاد من خطأ ساتوشي في حساب الصعوبة. يتمكن المهاجمون من تقليل صعوبة التعدين بشكل مصطنع من خلال التلاعب بختم الزمن للكتل.
خطوات الهجوم كالتالي:
ستؤدي هذه العملية إلى تأخر زمن blockchain بشكل متزايد عن الوقت الحقيقي، بينما تزداد الصعوبة باستمرار. ومع ذلك، بدءًا من دورة التعديل الثانية، ستبدأ الصعوبة في الانخفاض. يمكن للمهاجمين استغلال هذه الآلية لإنشاء عدد كبير من الكتل بسرعة، والحصول على مكافآت بيتكوين زائدة.
! خرق أمان البيتكوين: هجوم الاعوجاج الزمني
جدوى الهجوم والقيود
على الرغم من أن هذا الهجوم له تأثير كبير من الناحية النظرية، إلا أن تنفيذه يواجه بعض التحديات:
الحلول المحتملة
هناك عدة طرق ممكنة لإصلاح هذه الثغرة:
تغيير خوارزمية ضبط الصعوبة، وحساب الفجوة الزمنية بين النوافذ المختلفة لعام 2016 وإصلاح خطأ الفرق. لكن قد يتطلب ذلك انقسامًا صلبًا.
إلغاء قواعد MTP، يتطلب أن يتحرك الوقت للأمام في كل كتلة. لكن هذا قد يؤدي إلى أن يتوقف الوقت في المستقبل البعيد، أو أن يتسبب في مشاكل بسبب اختلافات في ساعة النظام.
الحل الأبسط هو طلب أن يكون وقت الكتلة الأولى من فترة الصعوبة الجديدة غير مبكر عن عدد دقائق محددة من الكتلة الأخيرة من الفترة السابقة. تتراوح فترة الوقت التي يتم مناقشتها حاليًا بين 10 دقائق وساعتين.
في أحدث اقتراح لتنظيف الإجماع الكبير، اقترح المطورون فرض حد زمني قدره ساعتين. هذه الفترة الزمنية تمثل حوالي 0.6% من الهدف الزمني لدورة ضبط الصعوبة، ويمكن أن تحد بشكل فعال من مساحة التلاعب بالصعوبة نحو الأسفل.
بغض النظر عن الحل الذي سيتم اعتماده في النهاية، فإن إصلاح هذه الثغرة سيعزز من أمان واستقرار شبكة بيتكوين.