هاك Mimblewimble آلية الخصوصية

تعتبر خصوصية Cimocryptic Mimblewimble / Grin عرضة بشكل أساسي. بعد إنفاق 60 دولارًا فقط في الأسبوع على AWS ، ربطت بشكل فريد بين المرسلين والمستلمين لـ 96٪ من معاملات Grin في الوقت الفعلي.

توجد ثغرة أمنية في قلب بروتوكول Mimblewimble ، ولا أعتقد أنه يمكن إصلاحها. لذلك ، فيما يتعلق بحماية الخصوصية ، لم يعد Mimblewimble بديلاً قابلاً للتطبيق لـ Zcash أو Monero.

في العامين الماضيين ، أصبحت Mimblewimble شائعة كبروتوكول مضغوط للعملات المشفرة الخاصة ("عملات الخصوصية"). صاغ Mimblewimble في عام 2016 من قبل قراصنة تحت اسم مستعار توم الفيس Jedusor. أرسل وصف البروتوكول إلى دردشة IRC واختفى. منذ ذلك الحين ، أشهر تطبيقات Mimblewimble هي Crypto-crypto-cryptocurrency التي أنشأها مطورون مجهولون ، بالإضافة إلى مشاريع Tari و BEAM التي جذبت استثمارات في مشروعات. حتى Litecoin تدرس تكامل Mimblewimble .



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

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

ما هو الاتصال؟


من المهم أن نفهم ماذا يعني هذا الهجوم وماذا لا يعني.

هذا الهجوم لا يسمح لنا بتحديد المبلغ الذي يتلقاه الناس. تختبئ Mimblewimble بنجاح مقدار عمليات النقل باستخدام التشفير استنادًا إلى منحنيات الاهليلجيه للفانيليا ( مخطط التزامات Pedersen ). ما يسمح لنا به هذا الهجوم هو تحديد من دفع من . بمعنى آخر ، يسمح لنا بربط المعاملات مع بعضنا البعض وتحديد اتجاه التحويلات.

لماذا هذا مهم؟

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

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

مثل هذه الهجمات لن تكون ممكنة في Zcash. نظرًا لأن المعاملات في Zcash غير متصلة ، أو بمعنى آخر ، كل معاملة Zcash بها مجموعة كبيرة من إخفاء الهوية . مجموعة إخفاء الهوية هي مجموعة من المعاملات التي لا يمكن تمييز معاملتك عنها. تخيل ذلك كاختلاط مع الحشد: كلما كانت مجموعة إخفاء الهوية أكبر ، زاد "الحشد" في معاملتك.



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



في Monero ، تمثل مجموعة إخفاء الهوية لكل معاملة مجموعة من جميع معاملات الطعم الممكّنة من قِبل المستخدم. على الرغم من أن عميل Monero يسمح لك بتعيين عدد السحر في مجموعة ، فإن القيمة الافتراضية الحالية هي 11. (Monero لديه صعوباته الخاصة في اختيار السحر بأمان ، لكنني أعتقد أنه يعمل في الغالب ، زائد أو ناقص ).

في البداية ، كان من المفترض أن مجموعة إخفاء الهوية Mimblewimble تتكون من جميع المعاملات في نفس الكتلة ، أي أنها تبدو كما يلي:



ولكن في الواقع يبدو مثل هذا:



هذا يقلل من إخفاء الهوية Mimblewimble إلى عنوان واحد.

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

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

نظرة عامة على الهجوم


كيف بالضبط يمكنك إلغاء تحديد هوية الرسم البياني للمعاملات في Mimblewimble؟

لاحظت أنه على الرغم من تشفير مبالغ التحويل ، فإن Mimblewimble تترك رسم بياني للمعاملات يمكن تتبعه. لكن مطوري البروتوكول كانوا على علم بهذا ، وبالتالي تستخدم Mimblewimble طريقتين رئيسيتين لمكافحة الاتصال: من خلال تجميع الكتلة بأكملها و "الهندباء" (Dandelion) .

فكرة التجميع من طرف إلى طرف هي أنه عندما يتم جمع المعاملات في كتلة ، يتم تجميعها في "معاملة فائقة" واحدة. هذه " المعاملة الفائقة" تبدو وكأنها عملة CoinJoin عملاقة - يتم خلط جميع المدخلات والمخرجات معًا ، ولا توجد طريقة سهلة لتحديد أي منها يدفع لمن. هناك فقط مجموعة من المدخلات ومجموعة من المخرجات ، ويتم إخفاء كميات محددة.



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


هنا قد تتفاجأ - وهل هذا كله؟

في الواقع ، هناك طبقة أخرى من الحماية أنشأها فريق Grin: بروتوكول الهندباء ("الهندباء") . Dandelion هي طريقة للتواصل تم تطويرها من قبل الباحثين في جامعة كارنيجي ميلون ، والتي يجب أن تخفي عنوان IP لمُنشئ الصفقة.



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

هذا يعمل بشكل رائع لإخفاء عنوان IP للشخص الذي يرتكب المعاملة. لكن Dandelion في Grin لها وظيفة ثانية: في حالات نادرة ، تسمح لك بالحفاظ على سرية هويتك حتى إذا كانت هناك عقدة شم في الشبكة. نظرًا لأن كل معاملة تبدأ في مرحلة "وقف" الهندباء ، عندما تتقاطع معاملتان في مرحلة الانتشار "الجذعية" ، سيتم تجميعهما مبكرًا. إذا حدث هذا ، فعندما يتم إرسال المعاملة وتصبح مرئية للجميع ، لا يمكن لعقدة الشم أن تقوم بلصق المعاملات: إنها عالقة بالفعل في CoinJoin.

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

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

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



في هجومي ، تمكنت من توصيل 96٪ من جميع المعاملات ، بالاتصال بـ 200 نظير فقط من إجمالي 3000 نظير في شبكة Grin. ولكن إذا كنت على استعداد لإنفاق المزيد من الأموال ، فيمكنني الاتصال بسهولة بثلاثة آلاف عقدة للوقوف على جميع المعاملات تقريبًا. ولهذا ليس من الضروري الحفاظ على مستخدم كبير واحد - ستعمل نفس الهجمة إذا قمت بتشغيل 3000 عقدة منفصلة مع عناوين IP فريدة ، سيتم ربط كل منها بنظير واحد فقط. طالما اعترضت جميع بيانات المعاملات وأفرغتها في قاعدة البيانات الرئيسية المركزية ، سيعمل الهجوم بنفس الطريقة تمامًا.

فهل من الممكن حفظ Mimblewimble؟


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

ولكن على الرغم من اتصال المعاملات ، لا يزال لدى Mimblewimble خصائص تميز البروتوكول عن العملات المشفرة الأخرى. التجميع من طرف إلى طرف ممكن في ذلك ، وهو وسيلة فعالة لتقليل حجم blockchain ، ويخفي بشكل فعال مبالغ المعاملات. إذا كنت تريد خصوصية عالية ، فيمكنك دائمًا دمج Mimblewimble مع بروتوكول آخر يخفي الرسم البياني للمعاملات ، على سبيل المثال ، كما في Ethereum 9¾ (الذي يجمع Mimblewimble مع مخطط إعادة تعيين صفري Zerocash-style).

ولكن من الواضح أن Mimblewimble نفسها ليست قوية بما يكفي لتوفير خصوصية عالية.

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

ولكن هذه هي الطريقة التي يتطور بها العلم دائمًا: نضع دائمًا فرضيات جديدة ونفنّها حتى تبقى فقط تلك التي اجتازت اختبار الزمن.

بفضل Hasib Kireshi للمساعدة الكبيرة في تجميع هذا التقرير وتوضيح مجموعات عدم الكشف عن هويته. شكر إضافي إلى Oleg Ostroumov و Elena Nadolinsky و Mohamed Foud و Lucas Ryan و Nader Al-Naji لمراجعته مسودات هذه المشاركة. شكرا جزيلا لجيك ستوتزمان (بروتوكول NEAR) على الرسوم التوضيحية الهندباء وتجميع كتلة. شكرا داريا سميرنوفا على ترجمة المقال.

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

الإفصاح: توافق Dragonfly Capital على عدم تداول الأصول المدرجة في هذا التقرير لمدة 3 أيام من تاريخ النشر.

Source: https://habr.com/ru/post/ar477018/


All Articles