
Nonce هو رقم أو عدّاد يُستخدم مرة واحدة فقط لضمان تنفيذ إجراء محدد مرة واحدة وبالترتيب الصحيح. يمكنك اعتباره رقم انتظار في طابور أو رمز تحقق يُستخدم لمرة واحدة ويصبح غير صالح بعد استخدامه أو انتهاء صلاحيته.
في البلوكشين، يظهر Nonce عادةً في ثلاث صور: الترقيم التسلسلي على مستوى الحساب (الذي يتحكم في ترتيب المعاملات من نفس العنوان)، والقيمة المتغيرة باستمرار في عمليات التعدين (للوصول إلى تجزئة بلوك تحقق صعوبة الشبكة)، وكود التحدي في توقيعات تسجيل الدخول (لمنع إعادة استخدام الرسائل القديمة). في جميع هذه الاستخدامات، الهدفان الأساسيان هما التفرد والحماية من إعادة التنفيذ.
بدون Nonce، يمكن إعادة إرسال معاملات أو توقيعات إلكترونية قديمة، مما يؤدي إلى هجمات إعادة التنفيذ. تحدث هجمة إعادة التنفيذ عندما ينسخ المهاجم رسالة صالحة سابقًا ويعيد إرسالها، ما يدفع النظام لتكرار عمليات لا يجب أن تتكرر.
Nonce يفرض أيضًا ترتيب المعاملات لنفس العنوان. بدون هذا التحكم، قد تُنفذ التحويلات اللاحقة قبل السابقة، ما يؤدي إلى تعطيل منطق العقود الذكية وربما تجميد الأصول أو التسبب في إخفاقات استراتيجية. لهذا السبب، تعتمد سلاسل الكتل الكبرى على Nonce ضمن البروتوكول للحفاظ على الاتساق والأمان. حتى عام 2025، يُعد هذا النظام أساسياً في بيئات EVM، ومعايير تسجيل الدخول في البلوكشين، وشبكات PoW.
على Ethereum والشبكات المتوافقة، يمتلك كل عنوان عداد معاملات يبدأ من 0—وهذا هو Nonce الحساب. يجب أن تستخدم المعاملة التالية العدد الحالي؛ وبمجرد تضمينها في بلوك، يرتفع Nonce حسابك بواحد.
إذا حددت Nonce أقل من العدد الحالي، ستعيد العُقد رسالة "Nonce منخفض جدًا" لأن هذا الرقم قد تم استخدامه. وإذا كان مرتفعًا جدًا، تنتظر الشبكة المعاملات المتوسطة المفقودة، مما يؤدي إلى توقف العملية. عادةً ما تدير المحافظ هذا العداد تلقائيًا لتفادي الأخطاء اليدوية.
مثال عملي: إذا كان Nonce الحالي لديك هو 10، استخدم 10 لمعاملتك التالية. إذا علقت المعاملة رقم 10 ولم تُعدّن بعد، يمكنك إعادة إرسال معاملة مشابهة بنفس Nonce ولكن برسوم أعلى لاستبدال المعاملة غير المؤكدة وتسريع معالجتها من قبل المعدنين أو المدققين.
في إثبات العمل الخاص ببيتكوين، يقوم المعدنون بتغيير حقل Nonce في رأس البلوك باستمرار للعثور على تجزئة تحقق متطلبات صعوبة الشبكة. إثبات العمل يشبه "تخمين كلمة مرور قفل"—أول مُعدّن يجد الحل الصحيح يقترح البلوك ويحصل على المكافآت.
Nonce رأس بلوك بيتكوين يتكون من 32 بت. بعد استنفاد جميع القيم الممكنة، يقوم المعدنون بتعديل حقول أخرى مثل الطابع الزمني أو ترتيب المعاملات (مما يؤثر على جذر ميركل) لتوسيع نطاق البحث عن تجزئات جديدة. هذه العملية هي عمليًا "تجربة أرقام مختلفة حتى ينجح أحدها".
أثناء تسجيل الدخول إلى المحفظة أو عمليات توقيع الويب، ينشئ الخادم Nonce عشوائيًا ويُضمّنه في الرسالة المطلوب توقيعها. بعد توقيعك، يتم تمييز هذا Nonce كمستخدم؛ ويجب أن يستخدم كل تسجيل دخول لاحق Nonce جديدًا، حتى إذا تم نسخ رسالة قديمة، لا يمكن التحقق منها مجددًا.
على سبيل المثال، تتضمن معايير تسجيل الدخول المعتمدة على Ethereum عادةً حقول مثل "Nonce"، و"النطاق"، و"وقت الانتهاء" في الرسائل، ما يشكل تحديات لمرة واحدة. العديد من تصاريح DeFi وتوقيعات الأوامر تستخدم أيضًا Nonce لتمييز التعليمات ذات الاستخدام الواحد أو أرقام الإصدارات، ما يتيح إلغاء الأوامر القديمة أو منع تكرار التنفيذ.
غالبًا لا تحتاج إلى تعيين Nonce يدويًا—تديره المحافظ تلقائيًا. ومع ذلك، معرفة كيفية التحقق منه قد تكون مفيدة في الحالات المتقدمة.
الخطوة 1: أدخل عنوانك في مستكشف البلوكشين لعرض مؤشر آخر معاملة مؤكدة والتحقق من المعاملات المعلقة في قائمة الانتظار. تعرض معظم المستكشفات Nonce لكل معاملة، ما يساعدك على تحديد القيمة التالية للاستخدام.
الخطوة 2: في إعدادات المحفظة المتقدمة، تحقق من Nonce حسابك الحالي. بعض المحافظ تسمح مؤقتًا بتعيين "Nonce مخصص"؛ استخدم هذه الميزة بحذر لتجنب التعارض مع المعاملات المعلقة. في محفظة Gate Web3 أو خدماتها ذات الصلة، تتم إدارة Nonce تلقائيًا ويمكن عرضه في الإعدادات أو تفاصيل المعاملات.
الخطوة 3: إذا احتجت إلى تعيين Nonce يدويًا (مثل استبدال معاملة عالقة)، تحقق دائمًا من حالة قائمة الانتظار لتجنب تخطي معاملات وسيطة ضرورية. الإعدادات غير الصحيحة قد تمنع تنفيذ المعاملات اللاحقة لفترات طويلة.
الأخطاء الشائعة تشمل "Nonce منخفض جدًا"، "Nonce مرتفع جدًا"، و"المعاملات العالقة". إليك طريقة التعامل معها:
الخطوة 1: عند ظهور "Nonce منخفض جدًا"، فهذا الرقم قد استُخدم بالفعل أو توجد معاملة غير مؤكدة بنفس Nonce. تحقق من قائمة المعاملات المعلقة في محفظتك والمستكشف للعثور على المعاملات العالقة؛ تجنب إرسال محتوى مختلف بنفس Nonce مستخدم.
الخطوة 2: عند ظهور "Nonce مرتفع جدًا"، هناك أرقام وسيطة مفقودة. يمكنك الانتظار حتى يتم تعدين المعاملات السابقة أو إرسال معاملات فارغة بالترتيب (تقنية متقدمة—انتبه للرسوم والمخاطر).
الخطوة 3: إذا علقت معاملة، أعد إرسال معاملة مطابقة بنفس Nonce ولكن برسوم أعلى لاستبدال القديمة وتسريع إدراجها. بعد التأكيد، سيرتفع Nonce حسابك.
تحذير مخاطر: الإعدادات الخاطئة للـ Nonce قد تمنع جميع المعاملات اللاحقة أو تعطل إدارة الأصول. راجع دائمًا قوائم الانتظار ورسوم المعاملات قبل التعديل اليدوي لتفادي المخاطر المالية الناتجة عن الأخطاء.
يجب تنفيذ المعاملات من نفس العنوان حسب ترتيب Nonce، لكن أولوية إدراجها تعتمد على الرسوم التي تدفعها. الرسوم الأعلى تزيد فرص المعالجة السريعة؛ إرسال معاملة جديدة بنفس Nonce يمكن أن يستبدل القديمة ("تسريع المعاملة").
عمليًا، هناك بُعدان يعملان معًا: ترتيب داخل الحساب يُقيّد بـ Nonce، بينما التنافس بين الحسابات يُحدد بـ رسوم المعاملات. إذا كانت الرسوم منخفضة جدًا، قد تبقى معاملات معينة بالـ Nonce معلقة لفترات طويلة، مما يعيق جميع الأنشطة اللاحقة.
يشكل Nonce أساس ترتيب المعاملات، وعمليات التعدين، وأمان التوقيعات—إذ يضمن التفرد والترتيب الصحيح. زيادة Nonce تمنع إعادة التنفيذ والتنفيذ غير المرتب في الحسابات؛ Nonce المتغير في تعدين بيتكوين يساعد في البحث عن تجزئات تحقق الصعوبة؛ Nonce العشوائي في توقيعات تسجيل الدخول يصد إعادة الرسائل. عمليًا، دع المحافظ تدير Nonce تلقائيًا متى أمكن؛ وإذا تطلب الأمر تدخلًا يدويًا، تحقق دائمًا من قوائم الانتظار ورسوم المعاملات، خاصة عند استخدام محفظة Gate Web3 أو الأدوات المتوافقة، لتقليل المعاملات العالقة ومخاطر الأصول.
إعادة تعيين Nonce تُبطل المعاملات المرسلة سابقًا والتي لم يتم تأكيدها بعد. يُنصح بالانتظار حتى يتم تأكيد جميع المعاملات المعلقة أو رفضها من قبل المعدنين قبل إعادة التعيين. إذا علقت معاملة، يمكنك استبدالها بزيادة رسوم الغاز وإعادة الإرسال بنفس Nonce—سيتم بذلك الكتابة فوق المعاملة الأصلية.
عادةً ما تنتج أخطاء Nonce عن وجود عدة معاملات مؤكدة مع عداد محلي غير متزامن أو إرسال خارج الترتيب. لإصلاح ذلك، تحقق من عدد المعاملات المؤكدة في حسابك على Gate أو مستكشف البلوكشين؛ يجب أن يساوي Nonce للمعاملة التالية هذا الرقم. إذا ظهرت أخطاء في محفظتك، حاول مسح ذاكرة التخزين المؤقت أو إعادة استيراد حسابك.
تتطلب المعاملات المتزامنة Nonce متتالية. على سبيل المثال، إذا كان Nonce الحالي لديك هو 5: استخدم 5 للمعاملة الأولى، و6 للثانية، و7 للثالثة، وهكذا. سيتم تنفيذها جميعًا حسب ترتيب Nonce حتى لو أُرسلت في الوقت نفسه. عادةً ما يقوم المعدنون بترتيبها حسب Nonce، فلا داعي للقلق بشأن التنفيذ غير المرتب.
أثناء التوقيع دون اتصال، يجب عليك تعيين Nonce يدويًا—لا يمكن جلبه تلقائيًا. الخطوات: تحقق أولاً من Nonce حسابك الحالي على جهاز متصل بالإنترنت → أدخل هذه القيمة في برنامج توقيع المحفظة الباردة → أرسل المعاملة الموقعة من جهاز متصل بالإنترنت. استخدام Nonce غير صحيح يؤدي إلى رفض المعاملة من الشبكة؛ تحقق دائمًا من الدقة قبل العمليات دون اتصال.
نعم—كل بلوكشين يحتفظ بعداد Nonce مستقل خاص به. إرسال 10 معاملات (Nonces من 0 إلى 9) على شبكة Ethereum الرئيسية لا يؤثر على العد على Polygon، حيث سيبدأ من 0 من جديد. كل سلسلة تدير حالة حساباتها بشكل مستقل. عند استخدام Gate للعمليات عبر الشبكات، تذكر أن تغيير الشبكة يعيد حساب Nonce—تجنب الخلط من خلال التحقق بعد كل تبديل.


