كيف تحافظ Dandelion ++ على خصوصية أصول معاملات مونيرو

تم النشر:
By Diego Salazar

الخصوصية كأولوية

باعتبارها عملة مشفرة ، قد تبدو Monero مملة جدًا بالعين المجردة. ليس لديها شهرة كبيرة مثل كونها "كمبيوتر عالمي" أو "إحداث ثورة في صناعة xyz". إنها تحاول فقط أن تكون مالًا خاصًا ورقميًا وقابل للاستبدال ، وكل ترقية وكل تقنية جديدة تعزز هذه الغاية.

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

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


هجوم للكشف عن عنوان IP

تدور هذه الهجمات حول تحديد عنوان IP الذي جاءت منه المعاملة. إذا تم استنتاج هذه المعلومات ، فقد تكشف عن قيام شخص ما بإرسال معاملة Monero. إنه غير قادر على إظهار من ، ومقدار ذلك ، ولكن هناك بعض الحالات التي تكون فيها معرفة شخص ما باستخدام Monero كافية لإحداث ضرر.

الخبر السار هو أنه إذا لم يتم الحصول على هذه المعلومات لحظة إجراء المعاملة ، فلا يمكن التعرف عليها في وقت لاحق ، حيث لا يتم تخزين عناوين IP على blockchain. كما أنه من المريح معرفة أنه من غير المحتمل رؤية مثل هذا الهجوم في العالم الخارجي، لأنه من أجل سحبه ، سيحتاج المهاجم إلى أغلبية كبيرة من العقد على الشبكة. إذا كان الشخص قادرًا على قيادة هذه الأغلبية العظمى ، فسيكون قادرًا على تحديد "الاتجاه" الذي أتت منه المعاملة.

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

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

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

إذا كان المهاجم قادرًا على تخمين أي من أقرانه أرسل المعاملة بنجاح ، نظرًا لأن لديهم عنوان IP المتصل بالعقدة الخاصة بهم وأعادوا توجيهها إليهم ، فيمكنهم التأكد من عنوان IP الذي أرسلها. هذه معلومات قوية ، حيث تحتوي عناوين IP على معلومات حول الدولة ومزود خدمة الإنترنت (ISP) للمستخدم ، ويعرف مزود خدمة الإنترنت نفسه المستخدم المرتبط بعنوان IP الدقيق ، مما يؤدي إلى تحديد هوية مستخدم Monero بشكل فعال.

التعديل (ق)

أحد التعديلات المحتملة لهذا الهجوم هو استخدام شبكة تراكب مثل تور أو I2P. هذا يجعل الأمر كذلك حتى إذا تمكن المهاجم من استنتاج عنوان IP المصدر ، فمن المحتمل ألا يكون العنوان هو الذي أجرى المعاملة ، ولكن بالأحرى عقدة الخروج (I2P) أو عقدة الخروج (Tor) لشبكة التراكب. ومع ذلك ، لا يعد هذا حلاً شاملاً ، حيث يتم حظر شبكات التراكب وشبكات VPN والبرامج المماثلة في العديد من البلدان ، ومن غير الواقعي توقع أن يستخدم الجميع هذه الشبكات ومزامنتها ونشرها. يجب أن يكون هناك حل لا يتطلب استخدام برامج وشبكات خارجية ؛ واحد متاح للأشخاص العاديين.

هذا الحل هو Dandelion ++ (DPP) ، وهو بروتوكول تمت ترقيته إلى اقتراح Dandelion الأصلي للبيتكوين. في هذا البروتوكول ، هناك مرحلتان ، المرحلة الجذعية ، ومرحلة الزغب ؛ من المفترض أن يمثل كلاهما معًا شكل الهندباء.

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

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

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

بالطبع ، فإن الجمع بين الحلول المذكورة أعلاه (DPP بالإضافة إلى شبكة التراكب) سيعطي ضمانات أقوى للخصوصية والحماية من تتبع IP. وتجدر الإشارة أيضًا إلى أن DPP لا تدافع عن أي شكل آخر من أشكال هجمات تتبع الشبكة التي يمكن إجراؤها مع مزودي خدمة الإنترنت ، ولكن هذا خارج نطاق هذه المقالة.

تم تعيين Dandelion ++ على البث المباشر على شبكة Monero ، وسيتم استخدامه افتراضيًا على العميل المرجعي ، في الإصدار 0.16. سيؤدي هذا التغيير الصغير إلى التخفيف من حدة الهجمات المحتملة على شبكة Monero ، ويوضح سبب قيادة Monero للحزمة في تقنيات الخصوصية العملية والتطبيقية.

المزيد من القراءة