Fundamentals ·

تنسيقات عناوين العملات الرقمية: Bech32 وBase58 و0x


إذا سبق لك نسخ عنوان عملة رقمية ولاحظت أن عناوين Bitcoin تبدأ بـ bc1 وعناوين Ethereum تبدأ بـ 0x وعناوين Solana تبدو وكأنها لغة مختلفة تماماً، فأنت لست وحدك. هذه الاختلافات ليست شكلية. كل تنسيق عنوان يرمّز معلومات محددة حول البلوكتشين ونوع المعاملات التي يدعمها وآليات كشف الأخطاء التي تحمي أموالك.

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

لماذا تبدو العناوين مختلفة

عنوان العملة الرقمية هو تمثيل مقروء للإنسان لـ مفتاح عام أو هاش مشتق منه. المخرجات التشفيرية الخام هي بيانات ثنائية، وهي غير عملية للبشر في القراءة أو النسخ أو التحقق. اختارت البلوكتشينات المختلفة أنظمة ترميز مختلفة لتحويل تلك البيانات الثنائية إلى سلاسل نصية.

تعكس خيارات الترميز هذه مقايضات بين:

  • أمان مجموعة الأحرف -- تجنب الأحرف المتشابهة المظهر (0/O، l/1/I)
  • كشف الأخطاء -- مجاميع تحقق مدمجة تكتشف الأخطاء المطبعية قبل فقدان الأموال
  • كفاءة المساحة -- عناوين أقصر أسهل في التعامل
  • حساسية حالة الأحرف -- التنسيقات ذات الأحرف الصغيرة فقط تتجنب ارتباك الحافظة

عائلات الترميز الثلاث المهيمنة في العملات الرقمية هي Base58Check وBech32 والسداسي عشري مع بادئة 0x. كل منها ظهرت من أهداف تصميم محددة في لحظات محددة من تاريخ البلوكتشين.

Base58Check: إرث Bitcoin

كان Base58Check أحد أوائل أنظمة ترميز العناوين، قدّمه ساتوشي ناكاموتو مع Bitcoin. يستخدم 58 حرفاً أبجدياً رقمياً، مع استبعاد الأحرف التي تسبب ارتباكاً بصرياً بشكل متعمد:

  • لا صفر (0) -- مشابه جداً للحرف O
  • لا حرف O كبير (O) -- مشابه جداً للصفر
  • لا حرف L صغير (l) -- مشابه جداً للحرف I الكبير والرقم 1
  • لا حرف I كبير (I) -- مشابه جداً للحرف l الصغير والرقم 1

يبدو عنوان Base58Check Bitcoin هكذا: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

يتضمن التنسيق بايت إصدار في البداية و4 بايتات مجموع تحقق في النهاية. يخبرك بايت الإصدار بنوع العنوان: 1 لعناوين P2PKH القياسية، 3 لعناوين P2SH. يُحسب مجموع التحقق بتشغيل SHA-256 مرتين على الحمولة وإلحاق أول 4 بايتات من النتيجة.

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

تبنّت عدة بلوكتشينات أخرى Base58Check لأنه كان مثبتاً ومألوفاً:

  • عناوين Litecoin القديمة تبدأ بـ L أو M
  • عناوين Dogecoin تبدأ بـ D

يمكنك استخدام مُحقق عناوين Bitcoin من SafeSeed للتحقق من صلاحية مجموع التحقق لعنوان Base58Check قبل إرسال أي معاملة.

Bech32: عناوين SegWit bc1

في 2017، قدّم Bitcoin تقنية Segregated Witness (SegWit)، التي احتاجت تنسيق عنوان جديد. بدلاً من توسيع Base58Check، أنشأ المطورون Bech32، المحدد في BIP173. عناوين Bech32 يمكن التعرف عليها فوراً لأنها تبدأ بـ bc1 لشبكة Bitcoin الرئيسية.

يبدو عنوان Bech32 هكذا: bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4

أدخل Bech32 عدة تحسينات متعمدة على Base58Check:

أحرف صغيرة فقط

يستخدم Bech32 فقط الأحرف الصغيرة والأرقام. هذا يلغي مشاكل حساسية حالة الأحرف عند نقل العناوين شفهياً أو طباعتها بخطوط مختلطة الحالة أو ترميزها في رموز QR (التي تكون أكثر اختصاراً مع بيانات أحادية الحالة).

كشف أخطاء متفوق

يكتشف Base58Check الأخطاء لكنه لا يستطيع إخبارك بموقعها. يستخدم Bech32 رمز BCH (Bose-Chaudhuri-Hocquenghem) يمكنه كشف أي خطأ في حرف واحد ومعظم أخطاء استبدال الأحرف المتعددة. يمكنه تحديد موقع ما يصل إلى خطأين، مما يمكّن التصحيح المحتمل في بعض واجهات المحافظ.

رموز QR أصغر

لأن Bech32 يستخدم مجموعة أحرف مقيدة (32 حرفاً)، فإن رموز QR التي تمثل هذه العناوين أصغر بشكل ملموس وأسهل في المسح.

Bech32m

نسخة محدّثة تسمى Bech32m (BIP350) أصلحت ضعفاً طفيفاً في تنسيق Bech32 الأصلي يتعلق بالحرف الأخير. عناوين SegWit v1 الحديثة (Taproot، التي تبدأ بـ bc1p) تستخدم Bech32m. إذا ولّدت عنوان Bitcoin باستخدام مولّد عناوين Bitcoin من SafeSeed، فإن المخرجات الافتراضية تستخدم تنسيق Bech32/Bech32m الحديث.

تبنّت Litecoin أيضاً Bech32 لعناوين SegWit الخاصة بها، باستخدام بادئة ltc1.

0x: عناوين سلاسل EVM

اتبعت Ethereum نهجاً مختلفاً تماماً. عناوين Ethereum هي قيم بحجم 20 بايت تُعرض كـ 40 حرفاً سداسي عشري مع بادئة 0x:

0x742d35Cc6634C0532925a3b844Bc9e7595f2bD08

التنسيق السداسي مباشر: كل بايت يُربط بحرفين سداسيين (0-9، a-f). هذا يجعل العنوان تمثيلاً مباشراً للبيانات الأساسية دون أي ترميز خاص.

مجموع تحقق EIP-55 مختلط الحالة

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

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

مشترك عبر سلاسل EVM

أحد أهم جوانب تنسيق 0x أنه متطابق عبر جميع السلاسل المتوافقة مع EVM:

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

يمكنك التحقق من أي عنوان EVM، بما في ذلك مجموع تحقق EIP-55، باستخدام مُحقق عناوين Ethereum من SafeSeed.

Base58 في Solana وXRP وTRON

تستخدم عدة بلوكتشينات حديثة ترميز Base58 لكن بدون لاحقة Check، مما يعني أنها تطبق آليات التحقق الخاصة بها.

Solana

عناوين Solana هي مفاتيح عامة Ed25519 مرمّزة بـ Base58، عادة بطول 32 إلى 44 حرفاً:

7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV

تستخدم Solana نفس أبجدية Base58 الخاصة بـ Bitcoin (باستثناء الأحرف المربكة بصرياً) لكنها لا تلحق بايت إصدار أو مجموع تحقق SHA-256. بدلاً من ذلك، العنوان هو ببساطة المفتاح العام الخام بترميز Base58. يعتمد التحقق على كون المفتاح نقطة صالحة على منحنى Ed25519. يتولى مُحقق عناوين Solana من SafeSeed هذا التحقق.

XRP

يستخدم XRP ترميز Base58Check مع بادئة إصدار خاصة به، مما ينتج عناوين تبدأ بـ r:

rN7n3473SaZBCG4dFL83w7p1W9cgZw6p1N

TRON

تستخدم عناوين TRON ترميز Base58Check مع بايت إصدار 0x41، مما ينتج عناوين تبدأ بـ T:

TJCnKsPa7y5okkXvQAidZBzqx3QyQ6sxMW

والمثير أن TRON تستخدم نفس منحنى secp256k1 البيضاوي كـ Ethereum وBitcoin. عنوان TRON مشتق من نفس مادة المفتاح كعنوان Ethereum لكنه مرمّز بشكل مختلف.

مجاميع التحقق: شبكة أمانك

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

إليك مقارنة آليات مجموع التحقق عبر التنسيقات الرئيسية:

التنسيق طريقة مجموع التحقق قدرة الكشف
Base58Check SHA-256 مزدوج (4 بايت) يكتشف جميع الأخطاء تقريباً
Bech32 رمز BCH (6 أحرف) يكتشف جميع أخطاء الحرف الواحد؛ يحدد موقع ما يصل إلى خطأين
EIP-55 (0x) كتابة كبيرة Keccak-256 كشف أخطاء ~99.98% لتغييرات الحرف الواحد
Solana Base58 تحقق منحنى Ed25519 يرفض نقاط المنحنى غير الصالحة

لا يحمي مجموع التحقق من كل نوع من الأخطاء. إذا استبدلت برمجيات خبيثة حافظتك بالكامل بعنوان صالح مختلف (هجوم اختطاف الحافظة)، فسيمر مجموع التحقق لأن عنوان المهاجم نفسه صالح. تحمي مجاميع التحقق من الأخطاء المطبعية العرضية وأخطاء النقل، وليس من الاحتيال المتعمد.

للاطلاع على نظرة أوسع على التهديدات ما وراء الأخطاء المطبعية، راجع عمليات احتيال العملات الرقمية الشائعة المتعلقة بالعبارات الاسترجاعية.

التحقق من العناوين قبل الإرسال

يجب أن تبدأ كل معاملة عملة رقمية بالتحقق من العنوان. هذا يعني أكثر من إلقاء نظرة على الأحرف القليلة الأولى. يتضمن التحقق السليم:

1. التحقق من التنسيق

تأكد من أن العنوان يتطابق مع التنسيق المتوقع للبلوكتشين التي تستخدمها. عنوان bc1 يجب استخدامه فقط على Bitcoin. عنوان 0x قد يكون صالحاً على عدة سلاسل EVM، لذا تحقق جيداً من الشبكة المقصودة.

2. التحقق من مجموع التحقق

مرّر العنوان عبر مُحقق يفحص مجموع التحقق المدمج. يوفر SafeSeed مُحققات مجانية لأكثر السلاسل شيوعاً:

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

3. التأكيد البصري

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

4. معاملة اختبارية صغيرة

للتحويلات الكبيرة، أرسل مبلغاً صغيراً أولاً وتأكد من الاستلام قبل إرسال المبلغ الكامل. رسوم المعاملة الطفيفة ثمن بسيط مقابل اليقين.

5. استخدام ميزات دفتر العناوين

تسمح معظم المحافظ بحفظ العناوين المتحقق منها. بمجرد تأكيد عنوان، احفظه لتجنب إعادة إدخاله (وإدخال فرص جديدة للخطأ).

للاطلاع على إرشادات مفصلة لعملية التحقق، راجع كيفية التحقق من عنوان عملة رقمية.

اختيار التنسيق الصحيح

إذا كنت تولّد عناوين جديدة، فالتنسيقات الحديثة هي الأفضل دائماً تقريباً:

  • Bitcoin: استخدم عناوين Bech32 (bc1) لرسوم أقل وكشف أخطاء أفضل. عناوين Base58Check القديمة لا تزال تعمل لكنها أكثر تكلفة في رسوم المعاملات بسبب أحجام المعاملات الأكبر.
  • Ethereum وسلاسل EVM: استخدم دائماً عناوين EIP-55 مع مجموع التحقق. معظم الأدوات الحديثة تنتجها افتراضياً.
  • Solana: Base58 هو الخيار الوحيد، ويعمل بشكل جيد.

عند توليد العناوين باستخدام SafeSeed، تستخدم الأدوات افتراضياً التنسيق الأحدث والأكثر أماناً لكل بلوكتشين. سواء استخدمت مولّد العبارة الاسترجاعية لـ Bitcoin أو مولّد عناوين Ethereum، ستستخدم العناوين المشتقة الترميز الموصى به لتلك السلسلة.

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