دور nonce في blockchain
الرقم nonce، وهو اختصار لـ "الرقم المستخدم مرة واحدة"، هو رقم خاص يتم تعيينه لكتلة في blockchain أثناء عملية التعدين. إنه جزء أساسي من آلية توافق إثبات العمل (PoW).
الرقم nonce، الذي يعمل بمثابة لغز تشفير، هو متغير يتلاعب به القائمون بالتعدين لإنتاج قيمة تجزئة تلبي متطلبات معينة. يستمر القائمون بالتعدين في تغيير الرقم حتى يعثروا على تجزئة تمتلك الخصائص الضرورية، والتي غالبًا ما تكون عبارة عن عدد محدد من الأصفار البادئة. تضمن هذه العملية التكرارية، المعروفة باسم التعدين، أمان blockchain.
الرقم العشوائي (nonce) الصحيح ضروري للتحقق من شرعية كتلة ما، ويؤدي دورًا محوريًا في إنشاء الكتل. فهو يمنع الجهات الخبيثة من العبث بالبيانات عبر جعل الجهد الحسابي المطلوب لإجراء مثل هذه التغييرات مرتفعًا بشكل غير محتمل.
تجعل طريقة التجربة والخطأ عملية التعدين أكثر تعقيدًا عند تحديد nonce الصحيح. تُعتبر الكتلة شرعية إذا اكتشف القائمون بالتعدين nonce الصحيح، ما يوضح الدور الحاسم للـ nonce في دعم إجماع البلوك تشين وأمانه وسلامته.
أهمية الـ nonce في أمان البلوك تشين
تجعل وظيفة الـ nonce المتنوعة من غاية الأهمية دعماً لأمن بلوك تشين.
يُعد ذلك مهمًا أساسًا لمنع الإنفاق المزدوج، الذي قد يهدد سلامة العملات الرقمية. يقلل البلوك تشين من احتمال التلاعب الاحتيالي عبر إلزام القائمين بالتعدين بإجراء عملية تتطلب حسابات مكثفة للعثور على nonce محدد. وهذا يضمن تأكيد كل معاملة بشكل فريد.
بالإضافة إلى ذلك، يضيف الـ nonce تكلفة حسابية على المهاجمين الذين يحاولون الاستيلاء على الجزء الأكبر من الشبكة، مما يعزز الدفاع ضد هجمات سِيبل (Sybil). إذ تُثبط هذه الاستراتيجية الجهات الخبيثة عن غمر النظام بهويات وهمية.
علاوة على ذلك، يلعب الـ nonce دورًا مهمًا في الحفاظ على عدم قابلية الكتل للتغيير (immutability). أي محاولة لتعديل محتوى كتلة تتطلب إعادة حساب الـ nonce، وهي مهمة غير عملية تجعل سلامة البلوك تشين أكثر قوة ومقاومة للتلاعب.
كيف يتم استخدام الـ nonce في شبكة بلوك تشين بيتكوين؟
يستخدم القائمون بالتعدين nonce الخاص ببيتكوين ضمن عملية تجربة وخطأ للعثور على هاش محدد، بما يطابق معايير صعوبة الشبكة، وبالتالي التحقق من صحة كتلة جديدة وإضافتها إلى البلوك تشين.
توضح العملية التالية خطوة بخطوة كيفية حساب واستخدام nonce في تعدين بيتكوين:
إعداد الكتلة: يقوم القائمون بالتعدين بتجميع كتلة جديدة مع معاملات معلّقة.
إدراج الـ nonce: تتم إضافة nonce فريد إلى رأس الكتلة.
محاولة التجزئة: يقوم القائمون بالتعدين بتجزئة الكتلة باستخدام SHA-256.
فحص الصعوبة: تتم مقارنة الهاش بعتبة الصعوبة الخاصة بالشبكة.
عملية تكرارية: يقوم القائمون بالتعدين بضبط الـ nonce حتى يعثروا على هاش يحقق مستوى الصعوبة، وبذلك يتم التحقق من صحة الكتلة لإضافتها إلى البلوك تشين.
يتم ضبط صعوبة العثور على nonce صالح في بلوك تشين بيتكوين بشكل ديناميكي للحفاظ على معدل ثابت لإنشاء الكتل. ولضمان أن يواجه القائمون بالتعدين، الذين يتنافسون لإيجاد nonce الصحيح لِهاش كتلة صالح، تحديًا يتناسب مع القدرة الحاسوبية للشبكة، فإن الصعوبة التكيفية هذه تتكيف مع تغيّرات القوة الحسابية للشبكة.
تزداد الصعوبة مع قوة الشبكة، ما يتطلب قدرة معالجة أكبر للعثور على nonce مناسب. ومن ناحية أخرى، عندما تنخفض قدرة معالجة الشبكة، تنخفض أيضًا درجة الصعوبة، مما يجعل إنشاء الكتل أسهل.
ما أنواع الـ nonce المختلفة؟
تؤدي الـ nonces، سواء كانت مرتبطة بالتشفير أو دوال الهاش أو البرمجة، أغراضًا مختلفة وتستهدف ضمان سلامة البيانات في تطبيقات حسابية متنوعة.
على الرغم من أن الفكرة مستخدمة على نطاق واسع في تقنية البلوك تشين، توجد أنواع مختلفة من الـ nonces عبر تطبيقات متعددة. ومن الأنواع الشائعة الـ nonce التشفيري، والذي يُستخدم في بروتوكولات الأمان لإحباط هجمات إعادة التشغيل عبر توليد قيمة حصرية لكل جلسة أو معاملة.
نوع آخر من الـ nonce يشمل nonce الخاص بدالة التجزئة التشفيرية، والذي يُستخدم في خوارزميات التجزئة لتغيير nonce المُدخل بهدف تغيير ناتج الهاش. وفي البرمجة، قد تشير الـ nonces إلى قيم يتم إنشاؤها لضمان تميّز البيانات أو لتجنب التعارضات.
من الضروري فهم السياق المحدد والهدف، لأن الـ nonces تأتي بأشكال مختلفة، وكل نوع مُصمم لتلبية احتياجات أمان أو وظائف محددة ضمن المجال الأوسع لعلوم الحاسوب والتشفير.
ما الفرق بين الهاش (hash) والـ nonce؟
الهاش يشبه البصمة الخاصة بالبيانات، بينما الـ nonce هو رقم مميز يُستخدم في لغز الأمان الخاص بإنشاء عملة رقمية.
في سياق بلوك تشين، يعد الـ nonce متغيرًا يستخدمه القائمون بالتعدين لإنتاج هاشات تحقق متطلبات معينة، بينما الهاش هو ناتج ثابت الحجم يتم إنتاجه من بيانات الإدخال. يتم سرد الفروقات بين الهاش والـ nonce في الجدول أدناه.
هجمات مرتبطة بالـ nonce في التشفير وكيفية منعها
في مجال التشفير، تكون الهجمات المتعلقة بالـ nonces غالبًا متركزة على استغلال الثغرات في إنشاء الـ nonces أو إدارتها، خصوصًا في بروتوكولات التشفير.
من الأمثلة البارزة هجوم “إعادة استخدام nonce”، حيث يتمكن طرف خبيث من إعادة استخدام nonce أثناء عملية تشفير، وبالتالي تزداد احتمالية تعرض سمات الأمان للخطر. وهذا مهم بشكل خاص للأنظمة التي تعتمد على الـ nonces لتكون فريدة، مثل التواقيع الرقمية والتشفير.
هجوم “nonce المتوقع” هو هجوم شائع آخر، يمكن فيه للخصوم توقع عمليات التشفير والتلاعب بها لأن الـ nonces تُظهر نمطًا يمكن التنبؤ به. كذلك تتضمن هجمات “nonce المتقادِم” خداع الأنظمة باستخدام nonces قديمة أو كانت صالحة مسبقًا.
يجب أن تضمن بروتوكولات التشفير تفرد وطبيعة عدم التوقع للـ nonces لمنع الهجمات المرتبطة بها. يعد توليد أرقام عشوائية بشكل صحيح أمرًا ضروريًا، بما يضمن أن تكون الـ nonces منخفضة احتمال التكرار. علاوة على ذلك، ينبغي أن تتضمن البروتوكولات آليات للتعرف على الـ nonces المعاد استخدامها ورفضها. قد يؤدي إعادة استخدام الـ nonces في التشفير غير المتماثل إلى نتائج خطيرة، مثل كشف مفاتيح سرية أو الإضرار بخصوصية الاتصالات المشفرة.
علاوة على ذلك، تساعد الترقيات المستمرة لمكتبات وبروتوكولات التشفير، إلى جانب المراقبة المستمرة للاتجاهات غير المعتادة في استخدام الـ nonce، على الدفاع ضد مسارات الهجوم المتغيرة باستمرار. ويتطلب التخفيف من نقاط الضعف المرتبطة بالـ nonces اتباع أفضل ممارسات الأمان، مثل إجراء تقييمات منتظمة لتنفيذات التشفير والالتزام الصارم بخوارزميات التشفير المعيارية.
