خصوصية العملة المشفرة

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

دعنا نحدد المصطلحات


موضوع السرية (الخصوصية) وكيفية التأكد من أنه ضخم للغاية. من الأفضل البدء في دراستها بفهم التعريفات الأساسية.

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

الخصوصية الافتراضية لبيتكوين


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

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

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

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

الشيء التالي الذي من المنطقي إخفاءه هو مجموع التحويلات ، وعناوين المرسل والمستلم في نص المعاملة. من المهم أيضًا إخفاء عناوين الشبكة للمستخدمين ، والتي يتم تحقيقها عادةً باستخدام darknet ، حيث يتم استخدام بروتوكولات مثل Freenet و TOR و I2P. كيف تخفي المبالغ والتاريخ والعناوين؟

كوين كوين


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

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

كيف تعمل CoinJoin


تخيل مجموعة من ثلاثة مستخدمين يرغب الجميع في شراء سلع من متجر عبر الإنترنت (في نفس الوقت ، لكل منهم متجره الخاص).

الصورة

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

الفروق بين CoinJoin والمعاملة العادية


يوضح الرسم البياني أدناه الفرق بين الرسوم البيانية للمعاملات العادية والمعاملات CoinJoin.

الصورة

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

Chaumian CoinJoin


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

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

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

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

في هذه الحالة ، لا يمكن للمستخدمين ولا عامل التشغيل تخصيص العملات المعدنية في عناوين الإخراج. ولا يستغرق تكوين المعاملة في الظروف العادية أكثر من دقيقة واحدة. يجب أن يتم تفاعل المستخدم من خلال شبكات البيانات المجهولة ، والتي يمكن استخدامها كـ TOR أو I2P أو Bitmessage.

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

تبديل العملات


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

هنا ، يتم استخدام التشفير الاتجاهي ، حيث يتم استخدام زوج من المفاتيح (العامة والخاصة). يتم تشفير الرسالة باستخدام المفتاح العام ، ولا يمكن فك تشفيرها إلا لمالك المفتاح الخاص. للتواصل بين المشاركين ، يتم استخدام بروتوكول DiceMix ، كما يتم تقديم معارضة المخالفين.

نقدم لكم CoinShuffle


دعونا نرى كيف يعمل CoinShuffle.

الصورة

تخيل مجموعة صغيرة من المستخدمين: أليس الماكر ، بوب الحكيم ، تشارلي الملتحي ، و ديف البرتقالي. لكل منهم عملة واحدة غير منفقة في بلوكتشين Bitcoin في العناوين A و B و C و D ، على التوالي. الكل يريد إنفاق عملة معدنية وإخفاء تاريخ أصلها. تحقيقا لهذه الغاية ، يكتشف كل عضو في المجموعة العنوان الذي يجب أن ترسل إليه العملة A أو B أو C أو D ، على التوالي ، لكنه لا يكشف عن هذا العنوان للأعضاء الآخرين.

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

الصورة

خلط المشاركين وتشكيل قائمة انتظار. ستكون أليس هي الأولى لأنها ماكرة ، بوب الثاني لأنه حكيم ، وما إلى ذلك. الآن تأخذ أليس A وتشفير موجه إلى ديف باستخدام مفتاح ديف العام ، على التوالي. يشفر أليس المشفر الناتج مرة أخرى ، ويهدف إلى تشارلي. يتم تشفير هذا النص المشفر مرة أخرى ، ولكنه موجه بالفعل إلى Bob. تنقل أليس نتيجة التشفير إلى بوب. قام بوب بفك تشفير الرسالة بمفتاحه الخاص. ثم يأخذ B 'ويقوم بتشفير موجه إلى ديف ، ثم إلى تشارلي ويضيف إلى القائمة. يقوم بترتيب عشوائي لهذه القائمة ويمررها إلى تشارلي. يقوم تشارلي بدوره بفك تشفير عناصر القائمة بمفتاحه الخاص ، ويضيف C '، مشفرًا موجهًا إلى ديف ، في القائمة ويخلط جميع عناصر القائمة بشكل عشوائي. يتم نقل القائمة إلى Dave ، الذي يقوم بفك تشفيرها ، ويتلقى بيانات العنوان المفتوحة لإرسال العملات المعدنية ، ويضيف العنوان D '، ويخلطها بشكل عشوائي ، وبناءً على هذه العناوين ، ومدخلات المعاملات والمبالغ المعروفة ، تشكل معاملة عامة.

الصورة

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

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

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

ما هي عيوب طريقة CoinJoin؟


من الواضح ، أن هناك قدرًا كبيرًا من الصعوبة في التفاعل خارج السلسلة لتشكيل المعاملة ، أي أنه من الضروري تنظيم تشكيل المجموعات وتفاعل المشاركين فيما بينهم. لكن العيب الأكثر أهمية هو أن CoinJoin في شكلها النقي لا يخفي كمية التحويلات. ونتيجة لذلك ، فهي عرضة لتحليل CoinJoin Sudoku ، والذي يعتمد على مقارنة مبالغ مخرجات المعاملات ويسمح لك بالكشف عن تاريخ أصل العملات المعدنية بعد ارتباكها المتكرر. نعم ، يمكن مواجهة هذه المشكلة ، على سبيل المثال ، لاستخدام مبالغ معينة فقط لقيم إخراج المعاملة (0.1 VTS ، 1 VTS ، 10 VTS ، إلخ) ، ولكن هذا يخلق صعوبات وقيود إضافية. لذلك ، ضع في اعتبارك طريقة مختلفة تمامًا تحل مشكلة مبالغ التحويل المفتوحة - المعاملات السرية.

المعاملات السرية


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

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

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

رن المعاملات السرية


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

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

عناوين الشبح


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

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

تطبيق عملي


أين يتم تطبيق هذه الأساليب في الممارسة العملية؟

الصورة
كان فريق Bitshares واحدًا من الأوائل الذين قاموا بتنفيذ CT بالتزامن مع عناوين Stealth Addresses ، ليس فقط للعملة الأساسية ، ولكن أيضًا للرموز المميزة التي يمكن إصدارها على النظام الأساسي. تدعم Monero cryptocurrency توقيعات الحلقة وعناوين التخفي لضمان مستوى عالٍ من الخصوصية. في يناير 2017 ، قام الفريق بتنفيذ RingCT ، ومع التحديث في سبتمبر 2017 ، أصبح استخدام RingCT إلزاميًا تمامًا. وتجدر الإشارة إلى بروتوكول Mimblewimble ، الذي يستخدم نسخة معدلة من CT ، والتي هي حاليًا قيد التطوير النشط ، ولكننا سنتحدث عنها لاحقًا.

هناك مثل هذا المشروع ZeroLink ، وهو إطار عمل لإنشاء محافظ سرية تعتمد على تقنية Chaumian CoinJoin. من الجدير بالذكر أنه يمكن أن يعمل في Bitcoin ، دون الحاجة إلى أي تغييرات على البروتوكول نفسه.

دعنا ننتقل إلى الأسئلة المتداولة.


- هل من الممكن استخدام عناوين الشبح في البيتكوين؟

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

- هل من الفعال استخدام CoinJoin في أنقى أشكاله للبيتكوين؟

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

- هل يمكن تطبيق الأساليب التي نوقشت أعلاه لضمان السرية في العملات الرقمية مثل Ethereum و Ripple و Stellar؟

لا ، ليس كذلك. تستخدم Ethereum و Ripple و Stellar نموذج معاملة مختلف تمامًا وطريقة مختلفة للمحاسبة على العملات المعدنية ، والتي لا يمكن تطبيقها على مثل هذه الأساليب لتحقيق الخصوصية. بالطبع ، يمكنك محاولة دمج عناوين الشبح أو المعاملات السرية بشكل مصطنع ، ولكن هذا سيكون غير فعال للغاية من حيث أداء العملة. السبب هو أنه في Bitcoin ، تعتمد المحاسبة على المخرجات غير المنفقة (أي UTXO) ، وتستخدم هذه العملات الأرصدة والحسابات.

يتم تناول هذا الموضوع في إحدى محاضرات دورة الخصوصية للعملة الرقمية عبر الإنترنت Blockchain .

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


All Articles