Guides ·

كيفية التحقق من عنوان العملة الرقمية قبل إرسال الأموال


معاملات العملات الرقمية لا رجعة فيها. إذا أرسلت أموالاً إلى عنوان مشوّه، أو عنوان على شبكة خاطئة، أو عنوان فيه حرف واحد مبدّل، فلا يوجد بنك تتصل به ولا استرداد مالي تقدّمه. العملات ذهبت. التحقق من العنوان هو خط الدفاع الأخير بين أموالك وخسارة دائمة، ومع ذلك يتخطاه معظم الناس تماماً.

يشرح هذا الدليل كيف يعمل التحقق من العناوين على المستوى التقني --- فحص التنسيق والتحقق من مجموع التحقق واكتشاف الخلط بين السلاسل --- ويوضح لك كيفية دمج التحقق في سير عملك حتى تُفحص كل عملية تحويل صادرة قبل مغادرتها لمحفظتك.

لماذا التحقق ينقذ عملاتك الرقمية

الطريقة الأكثر شيوعاً لخسارة الناس للعملات الرقمية ليست عبر اختراق متقدم. إنها عبر خطأ بشري بسيط: نسخ عنوان بشكل غير صحيح، أو لصق عنوان من سلسلة خاطئة، أو الوقوع ضحية لبرمجية خبيثة تختطف الحافظة وتستبدل العنوان بصمت بعنوان يتحكم فيه المهاجم.

فكر في الأمر. عنوان Bitcoin مثل bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4 يتكون من 42 حرفاً. عنوان Ethereum يتكون من 42 حرفاً بما في ذلك بادئة 0x. عنوان Solana يمكن أن يصل إلى 44 حرفاً. هذه ليست سلاسل سهلة للبشر. نسخها يدوياً يستدعي الأخطاء عملياً، وحتى النسخ واللصق يمكن أن يخطئ إذا كانت هناك برمجيات خبيثة.

التحقق يلتقط هذه المشاكل قبل أن تصبح كوارث. فحص التحقق السليم يخبرك:

  • هل التنسيق صحيح؟ هل تتطابق السلسلة مع النمط المتوقع لسلسلة الكتل المستهدفة؟
  • هل ينجح مجموع التحقق؟ هل تغير أي حرف منذ توليد العنوان؟
  • هل هذه الشبكة الصحيحة؟ هل أنت على وشك إرسال Bitcoin إلى عنوان Bitcoin Cash، أو ETH إلى عنوان BNB Chain يبدو متطابقاً؟

كل من هذه الفحوصات يعمل على طبقة مختلفة. معاً، تشكل استراتيجية دفاع متعددة الطبقات تلتقط الغالبية العظمى من الأخطاء المتعلقة بالعناوين.

التحقق من التنسيق: التعبيرات النظامية

الطبقة الأولى من التحقق هيكلية. كل سلسلة كتل تحدد تنسيقاً محدداً لعناوينها، وفحص نمط بسيط يمكنه فوراً رفض السلاسل التي لا تتوافق.

تنسيقات عناوين Bitcoin

لدى Bitcoin ثلاثة تنسيقات عناوين نشطة، كل منها ببادئة مميزة:

  • Legacy (P2PKH): يبدأ بـ 1، 25--34 حرفاً. مثال: 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2. يستخدم ترميز Base58Check.
  • Script (P2SH): يبدأ بـ 3، 25--34 حرفاً. مثال: 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy. أيضاً Base58Check.
  • Native SegWit (Bech32): يبدأ بـ bc1q (v0) أو bc1p (v1/Taproot)، 42--62 حرفاً. مثال: bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4. يستخدم ترميز Bech32 أو Bech32m.

تعبير نظامي يطابق التنسيقات الثلاثة يبدو مثل:

^(1[1-9A-HJ-NP-Za-km-z]{25,34})|(3[1-9A-HJ-NP-Za-km-z]{25,34})|(bc1[a-zA-HJ-NP-Z0-9]{25,90})$

هذا يلتقط سلاسل غير Bitcoin الواضحة فوراً، لكنه لا يتحقق من مجاميع التحقق. يمكن لسلسلة أن تطابق النمط تماماً وتحتوي على خطأ مطبعي. هنا تأتي الطبقة التالية.

عناوين Ethereum وEVM

عناوين Ethereum أبسط في التنسيق: 0x متبوعة بـ 40 حرفاً سداسي عشري. نفس التنسيق ينطبق على جميع السلاسل المتوافقة مع EVM --- Polygon وArbitrum وOptimism وBase وBNB Chain.

^0x[0-9a-fA-F]{40}$

هذه البساطة نقطة قوة وضعف في آن واحد. من السهل التحقق من التنسيق، لكن من المستحيل معرفة سلسلة EVM التي ينتمي إليها العنوان من العنوان وحده. سنعود لهذه المشكلة في قسم التحقق بين السلاسل أدناه.

عناوين Solana

عناوين Solana هي مفاتيح عامة ed25519 مرمّزة بـ Base58، عادة 32--44 حرفاً، بدون بادئة ثابتة. أبجدية Base58 تستبعد الأحرف المتشابهة بصرياً (0، O، I، l)، مما يقلل أخطاء النسخ:

^[1-9A-HJ-NP-Za-km-z]{32,44}$

عناوين XRP

يستخدم XRP متغيره الخاص من Base58. العناوين تبدأ بـ r وتتراوح بين 25--35 حرفاً.

عناوين TRON

عناوين TRON تبدأ بـ T وتتكون من 34 حرفاً، باستخدام ترميز Base58Check مشابه لتنسيق Bitcoin القديم.

فحوصات التنسيق سريعة وغير مكلفة --- يمكن تشغيلها عند كل ضغطة مفتاح في حقل نموذج. لكنها أضعف طبقة تحقق. عنوان صالح التنسيق يمكن أن يكون تالفاً. تحتاج مجاميع التحقق لالتقاط ذلك.

التحقق من مجموع التحقق: اكتشاف الأخطاء المطبعية

مجموع التحقق هو جزء صغير من البيانات الزائدة المضمّنة في العنوان يسمح لك بالتحقق من سلامته. إذا تغير أي حرف، لن يتطابق مجموع التحقق، ويجب رفض العنوان.

Base58Check (Bitcoin Legacy، TRON، XRP)

ترميز Base58Check يلحق مجموع تحقق من 4 بايت مشتق من هاش SHA-256 مزدوج. عملية التحقق هي:

  1. فك ترميز سلسلة Base58 إلى بايتات.
  2. فصل الحمولة عن آخر 4 بايت (مجموع التحقق).
  3. حساب SHA-256(SHA-256(الحمولة)).
  4. مقارنة أول 4 بايت من الهاش مع مجموع التحقق.

إذا تطابقا، فالعنوان سليم. إن لم يتطابقا، فقد تم تغيير حرف واحد على الأقل. احتمال مرور خطأ عشوائي من هذا الفحص هو تقريباً 1 من 4.3 مليار (2^32).

Bech32 وBech32m (Bitcoin SegWit)

يستخدم Bech32 نظام كشف أخطاء مختلف مبني على رموز BCH. يمكنه اكتشاف أي خطأ في حرف واحد ومعظم أخطاء الأحرف المتعددة الشائعة. Bech32m (المستخدم لعناوين Taproot التي تبدأ بـ bc1p) هو مراجعة طفيفة تصحح نقطة ضعف معروفة في ترميز Bech32 الأصلي لبعض الطفرات الحدية.

مجموع تحقق EIP-55 بالأحرف المختلطة (Ethereum)

عناوين Ethereum سداسية عشرية، لذا لا مجال لمجموع تحقق تقليدي ضمن الترميز. يحل EIP-55 هذا بذكاء: يستخدم كتابة أحرف الـ hex بالحروف الكبيرة والصغيرة كمجموع تحقق. يُكبّر كل حرف أو يُصغّر بناءً على النيبل المقابل من هاش Keccak-256 للعنوان بأحرف صغيرة.

مثلاً، 0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed فيه أحرف كبيرة وصغيرة محددة. إذا غيرت حالة أي حرف، يفشل مجموع التحقق. العناوين بأحرف صغيرة فقط (0x5aaeb6...) تُعامل كغير محققة وهي صالحة تقنياً لكن لا توفر حماية من الأخطاء.

لهذا السبب أدوات مثل أداة التحقق من عناوين Ethereum تفحص التنسيق وكتابة أحرف EIP-55. العنوان الذي يجتاز كلا الفحصين منسوخ بشكل صحيح بشبه يقين.

Solana: لا مجموع تحقق مدمج

عناوين Solana هي مفاتيح عامة مرمّزة بـ Base58 بدون مجموع تحقق مضمّن. هذا يعني أن خطأً مطبعياً قد ينتج عنواناً يبدو صالحاً لكنه لا يخص أحداً --- أو أسوأ، يخص شخصاً آخر. التحقق من عناوين Solana يمكنه فقط تأكيد التنسيق وصلاحية Base58، وليس السلامة. هذا يجعل النسخ واللصق بعناية واستخدام رموز QR مهمين بشكل خاص لمعاملات Solana. يمكنك التحقق من التنسيق عبر أداة التحقق من عناوين Solana.

الخلط بين السلاسل: أخطاء شائعة

التحقق من التنسيق ومجموع التحقق يحميك من الأخطاء المطبعية. التحقق بين السلاسل يحميك من الإرسال إلى العنوان الصحيح على الشبكة الخاطئة.

تداخل سلاسل EVM

أخطر خلط بين السلاسل يحدث على الشبكات المتوافقة مع EVM. عنوان Ethereum هو أيضاً عنوان Polygon صالح وعنوان Arbitrum وعنوان Optimism وعنوان Base وعنوان BNB Chain. إذا أرسلت ETH إلى عنوان على Polygon، فإن ETH لا يصل على Polygon --- يذهب إلى ذلك العنوان على شبكة Ethereum الرئيسية (أو يُفقد إذا اخترت الشبكة الخاطئة في محفظتك).

لا توجد طريقة للتمييز بين عناوين EVM من التنسيق وحده. الدفاع الوحيد هو التحقق من اختيار الشبكة في برنامج محفظتك والتحقق المزدوج من chain ID قبل التأكيد. للتعمق في أمان عناوين EVM، راجع أمان عناوين EVM.

Bitcoin مقابل Bitcoin Cash

عناوين Bitcoin القديمة (التي تبدأ بـ 1 أو 3) متطابقة نحوياً مع عناوين Bitcoin Cash. قدم Bitcoin Cash تنسيق CashAddr (الذي يبدأ بـ bitcoincash:q...) لتقليل الالتباس، لكن العديد من الخدمات لا تزال تعرض التنسيق القديم. إرسال BTC إلى عنوان BCH (أو العكس) لا يؤدي دائماً إلى خسارة --- قد تكون الأموال قابلة للاسترداد بـ المفتاح الخاص --- لكنه خطأ مرهق وقابل للتجنب.

TRON مقابل Bitcoin Legacy

عناوين TRON تبدأ بـ T وتستخدم Base58Check، تشبه سطحياً بعض أنماط عناوين Bitcoin. شخص يلقي نظرة سريعة على كليهما قد لا يدرك فوراً أنهما ينتميان لشبكات مختلفة. أدوات التحقق الآلية تلتقط هذا فوراً بفحص بايت الإصدار داخل حمولة Base58Check.

Solana مقابل الباقي

عناوين Solana بترميز Base58 تفتقر إلى بادئة مميزة، مما يعني أنها قد تشبه سطحياً عناوين أخرى مرمّزة بـ Base58. أفضل حماية هي التحقق دائماً من العنوان بأداة خاصة بالسلسلة قبل الإرسال.

أدوات التحقق من العناوين في SafeSeed

يوفر SafeSeed أدوات مجانية للتحقق من العناوين من جانب العميل لعدة سلاسل كتل. كل أداة تجري فحوصات التنسيق، وحيثما ينطبق، التحقق من مجموع التحقق بالكامل في متصفحك --- لا تُرسل بيانات إلى أي خادم.

لا تخبرك الأدوات فقط ما إذا كان العنوان صالحاً، بل أي تنسيق محدد يستخدمه. هذا مفيد بشكل خاص لـ Bitcoin، حيث التمييز بين عناوين Legacy وSegWit وTaproot مهم لتقدير الرسوم والتوافق.

لأن هذه الأدوات تعمل بالكامل في المتصفح باستخدام Web Crypto API، يمكنك استخدامها على جهاز معزول لأقصى أمان. للإرشاد حول توليد العناوين في بيئة دون اتصال، راجع توليد Bitcoin Seed دون اتصال وتوليد محفظة Ethereum دون اتصال.

دمج التحقق في سير عملك

معرفة كيف يعمل التحقق هو نصف المعركة فقط. النصف الآخر هو جعله عادة.

قبل كل معاملة

  1. انسخ العنوان من مصدر موثوق. استخدم تطبيق المحفظة مباشرة، وليس رسالة أو بريداً إلكترونياً أو موقعاً. برمجيات اختطاف الحافظة حقيقية ومنتشرة.
  2. الصقه في أداة تحقق. مرر العنوان عبر أداة تحقق خاصة بالسلسلة لتأكيد التنسيق ومجموع التحقق. هذا يستغرق ثانيتين ويمكن أن ينقذ آلاف الدولارات.
  3. قارن الأحرف الأولى والأخيرة بصرياً. حتى بعد التحقق، قارن أول 6 وآخر 6 أحرف من العنوان الملصوق مع الأصلي. هذا يلتقط هجمات استبدال الحافظة التي تستبدل منتصف العنوان.
  4. أرسل معاملة اختبار صغيرة أولاً. للتحويلات الكبيرة، أرسل مبلغاً ضئيلاً أولاً وتأكد من استلامه قبل إرسال الباقي. رسوم المعاملة هي تأمين.

للمطورين

إذا كنت تبني محفظة أو منصة تداول أو تطبيقاً لامركزياً، يجب أن يكون التحقق من العناوين إلزامياً عند طبقة الإدخال. لا تعتمد على المستخدمين للتحقق من العناوين بأنفسهم. نفّذ فحوصات التنسيق عند الكتابة، وشغّل التحقق من مجموع التحقق عند فقدان التركيز، واعرض رسائل خطأ واضحة لا لبس فيها عند فشل التحقق.

لـ Bitcoin، استخدم مكتبة تتعامل مع Legacy وP2SH وBech32 وBech32m. لـ Ethereum، نفّذ التحقق من مجموع تحقق EIP-55 وحذّر من العناوين بأحرف صغيرة فقط. لـ Solana، تحقق من مجموعة أحرف Base58 والطول.

للمستخدمين العاديين

احفظ أدوات التحقق في المفضلة واستخدمها في كل مرة. لا توجد معاملة صغيرة جداً أو روتينية جداً لا تستحق فحص التحقق. الثواني القليلة التي يستغرقها لا شيء مقارنة بالخسارة التي لا رجعة فيها حتى لمعاملة واحدة موجّهة خطأً.

التحقق من العناوين ليس براقاً. ليس نوع الميزة التي تتصدر العناوين أو تدفع التبني. لكنه الشيء الأكثر عملية الذي يمكنك فعله لحماية عملاتك الرقمية. كل عنوان، كل مرة --- بدون استثناءات.