عنوان الشبح مقابل التوقيع الحلقي في Monero
عنوان الشبح مقابل التوقيع الحلقي في Monero
عَبرت شبكة Monero نحو 1.2 مليون معاملة في أبريل 2026، ولم تكشف أيٌّ منها علنًا عن مُرسِل أو مستقبِل أو مبلغ دقيق على دفتر الأستاذ العام. هذه الخاصية ليست ثمرةَ حيلةٍ تشفيريّةٍ واحدة، بل تقوم على ثلاث طبقات متراكبة على الأقل، اثنتان منها تربكان المبتدئين، بل حتى مستخدمي Bitcoin المتمرّسين بشكل دائم: عنوان الشبح (Stealth Address) والتوقيع الحلقي (Ring Signature). يتشابه الاسمان من حيث الإيقاع، ويُذكَران معًا في الفقرة نفسها من كل شرحٍ مبسَّط عن Monero، ويوصف كلٌّ منهما عَرَضًا بأنه «العنصر الذي يجعل Monero مجهول الهوية». غير أنّهما يحميان جانبَين مختلفَين من المعاملة الواحدة، والخلط بينهما يُفقد القارئَ القدرةَ على التفكير بوضوح حول ما يستطيع مُراقب السلسلة رؤيته فعلاً وما يعجز عنه.
في MoneroSwapper نتلقّى هذا السؤال يوميًا تقريبًا — في الغالب من مستخدمين جرّبوا واجهة المبادلة لدينا، ولاحظوا أنّها لا تتطلّب أيّ تحقّق من الهوية (KYC)، ويرغبون في فهم السبب التشفيري الحقيقي وراء ذلك. تُفكّك هذه المقالة كلًّا من البنيتين، وتشرح موضعَ تقاطعهما وموضعَ افتراقهما، وما الذي سيتسرّب لو سقطت أيّ منهما من البروتوكول غدًا. وفي ختام القراءة ستعرف بدقّةٍ أيّ مشكلةٍ يحلّها كلّ تركيب، ولماذا يؤدّي حذف أحدهما إلى انهيار ضمانات الخصوصية في Monero.
لماذا يُفسد الخلطُ بينهما نموذجَك الذهني
من يفكّر في خصوصية Monero بوصفها سلّةً واحدة باسم «أمور التخفّي»، يقع في ثلاث أخطاء يمكن التنبّؤ بها. فهو يظنّ أنّ مشاركة مفتاح العرض (View Key) لا ضرر منها لأنّ «التوقيع الحلقي لا يزال يحمي كل شيء»، ويفترض أنّ تكبير حجم الحلقة يُعزّز خصوصيةَ المتلقّي أيضًا، ويتصوّر أنّ مستقبِل الدفعة يختبئ خلف البنية نفسها التي تُخفي اختيار المُرسِل لمدخله. لا شيء من ذلك صحيح، وكلّ هذه التصورات تقود إلى أخطاء تشغيليّة حقيقيّة.
إنّ الفصل بين خصوصيّة جانب المُرسِل وخصوصيّة جانب المتلقّي هو أهمّ تمييزٍ يجب استيعابه. يطبّق بروتوكول Monero تشفيرًا مختلفًا على كلّ جانب لأنّ المشكلتين مختلفتان جوهريًا. إخفاء هويّة من يدفع لك يعني جعل المخرجات (Outputs) غير قابلةٍ للربط بعنوانك المُعلَن. أمّا إخفاء أيّ مخرَج سابق تنفقه، فيعني جعل مدخلك مُتعذِّر التمييز عن مجموعة من الطُّعوم. هاتان مشكلتان غير متناظرتين.
- خصوصيّة جانب المتلقّي: تُعالَج بعناوين الشبح (مفاتيح مخرَج لمرّة واحدة مُشتقّة من العنوان المُعلَن للمستقبِل).
- خصوصيّة جانب المُرسِل: تُعالَج بالتوقيعات الحلقيّة (وتحديدًا CLSAG منذ تحديث أكتوبر 2020).
- خصوصيّة المبلغ: تُعالَج بنظام RingCT مع براهين النطاق Bulletproofs+ — وهي طبقة ثالثة منفصلة كليًّا.
حين يسأل أحدهم: «هل Monero قابلةٌ للتتبّع؟» فإنّ الإجابة الصادقة تعتمد على أيّ طبقةٍ من هذه الطبقات الثلاث في ذهن السائل. تسريب مفتاح العرض يُضعف الطبقة الأولى فقط، واختيار حلقة سيّء يُضعف الطبقة الثانية فقط، وأيّ ثغرة مستقبليّة في Bulletproofs+ ستُضعف الطبقة الثالثة فقط. كلٌّ منها يفشل باستقلاليّة، وهذا بالضبط سبب أهميّة فهم كلّ منها على حدة.
ما هو عنوان الشبح فعلاً
عنوان الشبح هو مفتاح عامّ لمرّة واحدة يولّده المُرسِل لحظةَ الدفع إليك. في كلّ مرّة يدفع فيها شخصٌ ما إلى عنوان Monero المُعلَن نفسه، يظهر على السلسلة مفتاح وجهةٍ جديد ومنفصل رياضيًا لا يجمعه بسابقيه أيّ رابط. لا تتقاسم أيّ دفعتين الوجهةَ نفسها، حتى لو ذهبتا إلى المحفظة نفسها، في الدقيقة نفسها، من المُرسِل نفسه.
تعتمد البنية على تبادل Diffie-Hellman فوق المنحنيات الإهليلجيّة. يُرمّز عنوانك المُعلَن نقطتَين عامتَين: واحدة مرتبطة بمفتاح الإنفاق (Spend Key)، وأخرى مرتبطة بمفتاح العرض (View Key). حين تدفع لك Alice، تولّد محفظتها قِيمةً عدديّةً عشوائيّة عابرة (Ephemeral Scalar)، وتضربها في نقطة مفتاح عرضك لاشتقاق سرٍّ مشترك، ثم تُجزّئ هذا السرّ وتُضيف الناتج إلى نقطة مفتاح إنفاقك. النتيجة هي مفتاح الوجهة لمرّة واحدة الذي يُكتَب في مخرَج المعاملة. لا تنشر Alice إلّا نقطتها العامّة العابرة — أمّا السرّ المستخدَم لاشتقاق الوجهة فلا يمكن استعادته من أيّ شيءٍ على السلسلة.
كيف تعثر محفظتك على المدفوعات الموجَّهة إليك
تستخدم محفظتك مفتاحَ العرض لتنفيذ عمليّة Diffie-Hellman نفسها بالاتّجاه المعاكس على كلّ مخرَجٍ تراه. حين تنطبق المعادلة، تعلم المحفظة أنّ المخرَج يخصّك. وحين لا تنطبق، يُهمَل المخرَج بصمتٍ. هذا هو السبب في أنّ تشغيل محفظة Monero يتطلّب مسحَ السلسلة بدلاً من البحث عن عنوانٍ في فهرس — فلا يوجد على السلسلة عنوان أصلاً يمكن البحث عنه.
والأهمّ من ذلك أنّ مفتاح الإنفاق وحده هو القادر على تحريك المخرَج فعليًّا. يكشف مفتاح العرض المخرَجات التي تخصّك دون أن يستطيع تحريكها. هذا هو السبب البنيوي وراء دعم Monero للمحافظ ذات العرض فقط (View-Only Wallets) — يستطيع المحاسبون والمدقّقون وخدمات المراقبة تأكيد الدخل دون الحصول على القدرة على استنزاف الأموال.
العناوين الفرعيّة تُوسِّع الفكرة ذاتها
معظم المستخدمين لا يشاركون عنوانهم الرئيسي أبدًا. بل يوزّعون عناوين فرعيّة (Subaddresses) — عناوين عامّة منفصلة مُشتقّة من زوج المفاتيح الرئيسي بفهرسٍ ثابت. كلّ عنوان فرعي لا يمكن ربطه بالعنوان الرئيسي ولا بسائر العناوين الفرعيّة، حتى لمن يحوزها جميعًا. هذا ما يُغذّي توليد العناوين لكلّ عميل في أدوات التجّار وصفحات التبرّع، وفي تدفّق الإيداع لدى MoneroSwapper نفسه: كلّ طلبٍ يحصل على عنوانٍ فرعيٍّ جديد، فلا يستطيع المراقبون على السلسلة جمعها أبدًا تحت محفظةٍ واحدة.
أكثر خطأ خصوصيّة شيوعًا نراه عند المستخدمين الجدد هو إعادة استخدام عنوانٍ رئيسيٍّ واحد في كلّ مكان. يمنحك البروتوكول عناوينَ فرعيّة بلا حدود ومجّانًا — استخدمها.
ما هو التوقيع الحلقي فعلاً
التوقيع الحلقي هو توقيع رقمي يُنتَج نيابةً عن مجموعةٍ، حيث يستطيع أيّ مُتحقِّق أن يُؤكّد أنّ «أحدَ أعضاء هذه المجموعة وقّع على هذا»، لكنّه لا يستطيع تحديد أيّ عضو. تستخدم Monero التوقيعات الحلقيّة لإخفاء أيّ مخرَجٍ سابقٍ يُنفَق كمدخلٍ في معاملةٍ جديدة.
حين تنفق، تختار محفظتك خمسة عشر مخرَجًا آخر على السلسلة لا تعود لك، وتجمعها مع مدخلك الحقيقي في حلقةٍ من ستة عشر عضوًا. يكون التوقيع صالحًا إذا وفقط إذا كان أحد الأعضاء الستّة عشر يملك مفتاح الإنفاق المناظر — لكنّ المُتحقِّق (والسلسلة العامّة) لا يستطيع معرفة أيّهم. مخرَجك الحقيقي وخمسة عشر طُعمًا غير مرتبط جميعها تصبح مرشّحاتٍ متساويةَ الاحتمال للمدخل المُنفَق فعلًا.
CLSAG وأحدث ما وصل إليه التطوير
البنية المحدّدة في Monero تُسمّى CLSAG (Concise Linkable Spontaneous Anonymous Group signatures)، وقد حلّت محلّ MLSAG في تحديث أكتوبر 2020. أنتج CLSAG معاملاتٍ أصغر بحوالي 25% وتحقّقًا أسرع بنحو 20% عند مستوى أمانٍ مكافئ. أمّا حجم الحلقة فقد كان قيمةً ثابتة على مستوى البروتوكول كلّه منذ 2019 — أوّلًا 11، ثم 16 منذ تحديث أغسطس 2022 فصاعدًا. الحجم الموحَّد للحلقة مهمٌّ لأنّ الأحجام المتغيّرة كانت ستُسرِّب بحدّ ذاتها معلوماتٍ عن برمجيّة المحفظة، أو نوع المعاملة، أو سلوك المستخدم.
صور المفاتيح تمنع الإنفاق المزدوج
لأنّ لا أحد يستطيع رؤية أيّ مدخلٍ هو الحقيقي، يحتاج البروتوكول إلى آليّةٍ مستقلّة لمنع الإنفاق المزدوج. هذه الآليّة هي صورة المفتاح (Key Image): قيمة حتميّة مُشتقّة من مفتاح الإنفاق ومفتاح المخرَج لمرّة واحدة. كلّ مخرَجٍ يُنتج بالضبط صورةَ مفتاحٍ واحدة ممكنة، وترفض الشبكة أيّ معاملةٍ ظهرت صورة مفتاحها سابقًا. الصورة لا تكشف شيئًا عن هويّة المخرَج، لكنّها تضمن استخدامًا واحدًا فقط.
جنبًا إلى جنب: ماذا يُخفي كلّ تركيب
الجدول أدناه يُبيّن تقسيم العمل بصورةٍ صريحة. لاحظ أنّه لا توجد بنيةٌ منفردة تُخفي جوانب المُرسِل والمتلقّي والمبلغ كلّها. يحتاج Monero إلى الكومة (Stack) كاملةً ليُقدّم خاصيّة الخصوصيّة التي يتصوّرها معظم المستخدمين.
| الخاصيّة | عنوان الشبح | التوقيع الحلقي (CLSAG) |
|---|---|---|
| ما الذي يُخفيه | الرابط بين العنوان المُعلَن ووجهات المخرَجات على السلسلة | الرابط بين مخرَجٍ على السلسلة والمعاملة التي تُنفقه |
| جانب المعاملة | جانب المتلقّي (المخرَج) | جانب المُرسِل (المدخل) |
| البنية الأساسيّة | Diffie-Hellman على المنحنيات الإهليلجيّة + التجزئة | توقيع مجموعةٍ مجهول وتلقائي وقابل للربط |
| مَعلَم قابل للضبط | لا يوجد — الاشتقاق ضربةٌ واحدة لكلّ مخرَج | حجم الحلقة (مُثبَّت حاليًا عند 16) |
| ما الذي يكسره | الإفصاح عن مفتاح العرض لطرفٍ معادٍ | هجمات المخرَج المسموم، استدلالات EAE، مجموعات إخفاءٍ صغيرة جدًّا |
| ما الذي لا يُخفيه | مبلغ المعاملة، مدخل المُرسِل | الوجهة، المبلغ، التوقيت |
| التكلفة لكلّ معاملة | ضئيلة جدًا — عمليّة ضربٍ سُلَّميّة واحدة إضافيّة | أكبر — تتناسب مع حجم الحلقة، وتُهيمن حاليًا على حجم المعاملة |
ثمّة ملاحظة تستحقّ التوقّف عندها: عنوان الشبح ليس تخمينًا احتماليًّا، بل ضمانٌ تشفيريّ صلب بأنّ وجهة المخرَج لا يمكن ربطها بعنوان المتلقّي دون مفتاح العرض. أمّا التوقيع الحلقي فهو إحصائي بطبيعته — ثقة المراقب نحو واحدٍ من ستّة عشر افتراضيًّا، وهذا الرقم قابل للتدهور أمام مهاجمٍ يتحكّم في عمليّة اختيار الطُّعوم أو يملك عددًا كبيرًا من أعضاء الحلقة.
كيف يتكاملان في معاملةٍ حقيقيّة واحدة على Monero
لتفهم لماذا لا يكفي أيٌّ منهما وحده، تتبّع دفعةً واحدة. تريد Alice إرسال 2 XMR إلى Bob الذي حصلت على عنوان Monero الخاصّ به من صفحة تبرّعاتٍ عامّة.
- تحسب محفظة Alice مخرَج الشبح. تولّد قِيمةً عابرة، وتُجري Diffie-Hellman مع نقطة مفتاح عرض Bob، وتشتقّ مفتاح وجهةٍ عامًّا لمرّة واحدة. يدخل هذا في قائمة مخرَجات المعاملة. لا يستطيع أيُّ مراقبٍ للسلسلة ربط هذا المخرَج بالعنوان المُعلَن لـ Bob.
- تختار محفظة Alice الحلقة. لتمويل الدفعة، يجب أن تُنفق Alice أحدَ مخرَجاتها السابقة. تختار محفظتها هذا المخرَج الحقيقي مع خمسة عشر طُعمًا من مجموعة المخرَجات الحديثة والتاريخيّة على السلسلة. يتّبع اختيار الطُّعوم توزيعَ غاما المنشور والذي يُحاكي أنماط الإنفاق لمستخدمين حقيقيّين.
- توقّع محفظة Alice باستخدام CLSAG. يُثبت التوقيع أنّ أحد أعضاء الحلقة الستّة عشر وافق على الإنفاق. لا يتعلّم المُتحقِّق شيئًا عن أيّهم. وصورة المفتاح المُرفقة بالتوقيع تضمن أنّ المخرَج الحقيقي لا يمكن إنفاقه مرّة أخرى.
- تُخفي محفظة Alice المبالغ بواسطة RingCT. تُرمَّز المدخلات والمخرَجات كالتزامات Pedersen. تُقنع براهين النطاق Bulletproofs+ الشبكةَ بأنّ لا مخرَج يتجاوز إجمالي المدخلات، دون أن تكشف الأرقام أبدًا.
- تمسح محفظة Bob الكتلة الجديدة. يُجري Bob، باستخدام مفتاح عرضه، عمليّة Diffie-Hellman على كلّ مخرَج. حين تنطبق المعادلة على دفعة Alice، يُفصح المخرَج عن نفسه. يعلم Bob الآن أنّه قد استلم 2 XMR، لكنّ السلسلة نفسها لا تُظهر سوى كتلة بياناتٍ مبهَمة.
انزع عنوان الشبح وستستمرّ محفظة Bob في العثور على الدفعة، لكنّ كلّ شركات تحليل السلسلة ستجدها كذلك: ستحطّ كلّ دفعةٍ إلى عنوان Bob في الوجهة نفسها، وسيصبح كامل تاريخ دخله علنيًّا. انزع التوقيع الحلقي وسيُشير إنفاق Alice إلى مخرَجٍ سابقٍ واحدٍ بالضبط، فتنكشف رسمة معاملات محفظتها. انزع RingCT وستتسرّب المبالغ، فيغدو نزع إخفاء الطبقتين الأخريَين أسهل بكثيرٍ عبر الارتباط القيميّ. كلّ طبقة تحمي من خصمٍ مختلف.
مثال عمليّ: عمليّة مبادلة على MoneroSwapper
تأمّل مستخدمًا يودِع 0.05 BTC في MoneroSwapper ويستلم XMR على عنوانٍ فرعيٍّ جديد في محفظة Feather الخاصّة به. يُسجِّل دفتران أجزاءً من هذه الصفقة، وما يراه كلّ مراقبٍ منهما يستحقّ التأمّل.
على جانب Bitcoin، يكون عنوان الإيداع ظاهرًا بوضوح. ستضع أدوات تحليل السلسلة — Chainalysis وElliptic وTRM Labs — وسمًا عليه يُشير إلى أنّه يخصّ خدمة مبادلةٍ غير حافظة (Non-Custodial) إذا كانت لديها استدلالات لنمط الإيداع لدينا. المبلغ والتوقيت والمخرَجات غير المُنفَقة (UTXOs) الأصلية جميعها عامّة. هذا أمرٌ طبيعي بالنسبة إلى Bitcoin، وهو أحد الأسباب التي تدفع المستخدمين إلى البحث عن Monero في المقام الأوّل. يُرسل محرّك المبادلة الـ BTC إلى تجمّع سيولة، وينتهي الأثر على سلسلة BTC عمليًا عند هذا التجمّع.
أمّا على جانب Monero فالصورة مختلفةٌ جذريًا. تُنشئ معاملة الدفع لدينا مخرَجَ شبحٍ مُعكَّر إلى العنوان الفرعي للمستخدم. للمراقب الخارجي يظهر المخرَج كمفتاحٍ عامٍّ جديد لا صلةَ ظاهرة له لا بـ MoneroSwapper ولا بالمستخدم. تنفق المعاملة حلقةً من ستّة عشر، تشمل أحدَ مخرَجاتنا وخمسةَ عشر طُعمًا، حتى أنّ إنفاقنا ذاته لا يمكن تمييزه بشفافيّة من حالة السلسلة وحدها. ويُعتِّم RingCT المبلغَ الدقيق المدفوع. والنتيجة أنّ مراقبًا يعلم بحدوث المبادلة لا يستطيع البرهنة على أيّ معاملة Monero محدّدة في الكتلة المعنيّة كانت هي الدفعة، ولا على أيّ عنوانٍ فرعيٍّ استلمها.
هذا اللاتناظر — BTC شفّاف داخل، XMR مبهَم خارج — هو الهدف الكامل من استخدام Monero بوصفها طبقةَ خصوصيّةٍ لا كعملةَ معاملاتٍ طرفًا لطرف لكلّ دفعة. يضمن عنوان الشبح أنّ مخرَج المبادلة لا يمكن ربطه بعنوان المستخدم، ويضمن التوقيع الحلقي أنّ دفعتنا لا يمكن تعقّبها عودةً عبر تاريخ محفظتنا الساخنة.
الأسئلة الشائعة
هل يمكن كشف هويّة عناوين الشبح؟
فقط لمن يحوز مفتاح العرض لعنوان المستقبِل. يكشف مفتاح العرض المخرَجات العائدة لأيّ محفظة، لكنّه لا يستطيع إنفاقها. إذا شاركتَ مفتاحَ عرضٍ مع طرفٍ ثالث — مثلًا لإثبات الملاءة لمدقّقٍ مالي — فسيستطيع ذلك الطرف رؤية كلّ مدفوعاتك الواردة إلى الأبد، بما فيها السابقة. تعامَل مع مفتاح العرض بوصفه بياناتٍ حسّاسة، لا «كلمة مرورٍ للقراءة فقط» يمكن نشرها بأمان.
لماذا رفع Monero حجمَ الحلقة إلى 16؟
رفع تحديث Fluorine Fermi في أغسطس 2022 حجمَ الحلقة من 11 إلى 16 لتوسيع مجموعة الإخفاء لكلّ إنفاق. الرقم ستّة عشر هو تقريبًا النقطة المثلى التي تُنتج فيها الطُّعوم الإضافيّة مكاسبَ خصوصيّةٍ متناقصة مقابل تكاليفَ متزايدة في حجم المعاملة. الجيل التالي، FCMP++ (براهين العضويّة في السلسلة الكاملة)، يُتوقَّع أن يستبدل الحلقات ثابتة الحجم ببراهينَ تشمل مجموعة المخرَجات كاملةً، فتُصبح مجموعة الإخفاء عمليًا هي السلسلة بأسرها.
هل ستختفي التوقيعات الحلقيّة مع FCMP++؟
نعم في النهاية. FCMP++ هو الخليفة المُخطَّط له لـ CLSAG لخصوصيّة جانب المُرسِل، وهو قيد التطوير النشط في 2026. سيستخدم بنيةً تشفيريّةً مختلفة — Curve Trees مع برهان SAL — لإثبات عضويّة المدخل في مجموعة UTXO كاملةً بدلًا من حلقةٍ من ستّة عشر. عناوين الشبح غير متأثّرة وستبقى مستخدَمة. كانت الطبقتان مستقلّتين دائمًا، وهذا بالضبط سبب إمكانيّة تطوير إحداهما دون المساس بالأخرى.
هل إحداهما أهمّ من الأخرى للخصوصيّة اليوميّة؟
لاستلام المدفوعات، يقوم عنوان الشبح بمعظم العمل تقريبًا — فبدونه، كان أيّ عنوانٍ يُشارَك علنًا سيكشف كلّ دفعةٍ يستلمها على الإطلاق. وللإنفاق، التوقيع الحلقي هو ما يمنع رسمة معاملات محفظتك من أن تصبح سجلًّا عامًّا. كلاهما مهم، لكنّ أهميّتهما تتفاوت بحسب السيناريو. التاجر الذي يقبل Monero يعتمد بشكلٍ أكبر على عناوين الشبح، والمُنفِق الواعي بخصوصيّته يعتمد بشكلٍ أكبر على التوقيعات الحلقيّة.
هل تحتاج خدمة مبادلةٍ مثل MoneroSwapper إلى أيّ مفتاحٍ منّي؟
لا. لا يُقدّم المستخدم سوى عنوان Monero للوجهة (أو العنوان الفرعي). يشتقّ محرّك المبادلة مخرَج الشبح بالطريقة نفسها التي يتّبعها أيّ مُرسِلٍ آخر، دون أيّ وصولٍ إلى مفتاح إنفاق المستخدم أو مفتاح عرضه. هذا هو السبب البنيوي الذي يجعل مبادلات Monero بدون KYC ممكنةً أصلاً: لا شيء في التشفير يستلزم أن تعرف الخدمةُ المستخدمَ، ولا شيء في خصوصيّة المستخدم يعتمد على الثقة بأنّ الخدمة ستحفظ الأسرار.
الخلاصة
عنوان الشبح والتوقيع الحلقي ليسا اسمَين للشيء ذاته. يحلّان النصفَين المتقابلَين من مشكلة الخصوصيّة — أحدهما يُخفي إلى أين تذهب الأموال، والآخر يُخفي من أين أتت — ويفشلان تحت نماذج تهديدٍ مختلفة. فهمُ هذا الفصل هو الفرق بين التعامل مع Monero كصندوقٍ سحري والقدرةِ الفعليّة على التفكير في وضعك الشخصي تجاه الخصوصيّة. إذا أردت تشغيل أيٍّ من الطبقتَين دون الخوض في تفاصيل التنفيذ، فهذا بالضبط ما صُمِّمت MoneroSwapper لأجله: مبادلات مجهولة وبدون KYC تُسلِّمك مخرَج شبحٍ جديدًا تحميه حلقةٌ من ستّة عشر عضوًا، في كلّ مرّة دون استثناء.