نظرة عامة على CoinJoin

Mubarak
7 min readApr 2, 2021

نبذة

معاملات البيتكوين تكون عامة بطبيعتها ؛ حيث يقومون بتعيين المدخلات (غير المنفقة utxo’s) إلى النواتج (الجديد التى لم يتم إنفاقها utxo’s )

بطريقة ما هذا قابل للتدقيق من قبل أي شخص مع الوصول إلى البيتكوين (تاريخ المعاملات).

ومع ذلك ، فإن تفسير هذه المعاملات و Blockchain هو مهمة غير تافهة لأن معاملة بيتكوين لا تعادل مدفوعاتها.

المشكلة

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

تتخصص بعض الشركات في هذا النوع من التحليل لبلوك تشين البيتكوين وتُعرف باسم شركات “تحليل السلسلة”. بعض الأمثلة المعروفة هي Chainalysis & Crystal.

تدعي هذه الشركات أن الغرض من هذا التجميع هو “اكتشاف الاحتيال” أو “تحديد المجرمين”.

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

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

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

الحل

لحسن الحظ ، شرح جريج ماكسويل طريقة مبتكرة للتعتيم على الروابط الموجودة على السلسلة بين أجهزة utxo في عام 2013 — أطلق عليها اسم CoinJoin.

الفكرة الأساسية هي أن المعاملة يتم إنشاؤها باستخدام مدخلات من عدة مستخدمين.

تم إنشاء المعاملة بحيث لا يمكن لشخص ما تحليل blockchain لتحديد أي ناتج ينتمي إلى أي مستخدم.

دعونا نلقي نظرة على مثال عملي ؛

أليس وبوب وتشارلي هم ثلاثة من مستخدمي البيتكوين الفرديين الذين يتطلعون إلى ذلك

انضم إلى أدوات utxo الخاصة بهم

المدخل 1: أداة Alice’s 0.1 BTC utxo من البورصة.

المدخل 2: أداة Bob’s 0.1 BTC utxo من بيع بطاقة بيسبول إلى رجل عبر الإنترنت.

المدخل 3: عملة Charlie’s 0.1 BTC utxo التي يريد أن يعطيها يومًا لابنته الرضيعة.

معلومات أساسية عن سبب رغبة كل مشارك في الاختلاط: لا تريد أليس أن يراقب التبادل إنفاقها.

  • لا يريد بوب أن يرى لاعب البيسبول مقدار عملات البيتكوين لديه.
  • يعيش تشارلي في بلد مستبد حيث يعتبر امتلاك البيتكوين أمرًا غير قانوني.

تأخذ معاملة CoinJoin هذه المدخلات الثلاثة وتبني معاملة تنشئ 3 مخرجات جديدة

المدخلات 1: 0.1 BTC (Alice) المخرجات 1: 0.1 BTC

المدخلات 2: 0.1 BTC (Bob) -> المخرجات2: 0.1 BTC

المدخلات 3: 0.1 BTC (Charlie) المخرجات 3: 0.1 BTC

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

التفاصيل

تعمل عملية CoinJoin الموضحة أعلاه على تعتيم الروابط الموجودة على السلسلة.

هذه بداية — ولكن كما هو الحال مع أشياء كثيرة ، فإن الشيطان يكمن في التفاصيل.

دعنا نقسم عملية المشاركة في CoinJoin إلى 3 مراحل.

المرحلة 1 | المزيج المسبق: كيف تضع المدخلات في CoinJoin بطريقة تحافظ على الخصوصية

المرحلة 2 | مزيج: كيف يحدث CoinJoin بطريقة تحافظ على الخصوصية

المرحلة 3 | بعد المزج: كيف تستخدم مخرجات CoinJoin بطريقة تحافظ على الخصوصية

المرحلة 1 | خلط مسبق

سأضيف معلومات حول المرحلة الأولى في المستقبل القريب.

المرحلة 2 | مزج

كيف يحدث CoinJoin نفسه بطريقة تحافظ على الخصوصية.

يتعين على شخص ما تنسيق إنشاء معاملة CoinJoin ، مما يتيح العمل من خلال أساليب التنسيق الممكنة.

سننتهي بالنتيجة التالية:

الطريقة الأولى

(تحذير — ** لا تفعل هذا **)

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

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

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

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

الطريقة الثانية أ

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

مع هذا النهج ، هناك خطر واضح وقائم بفقدان الخصوصية.

  • فقدان الخصوصية: مع هذا النهج ، يُطلب من النظير الذي ينشئ CoinJoin معرفة جميع الروابط بين المدخلات والمخرجات ، وبالتالي فإن الأعضاء الآخرين في CoinJoin يثقون في نظرائهم في خصوصيتهم.

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

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

الطريقة الثانية ب

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

هذا له نفس مخاطر الخصوصية / فقدان البيتكوين مثل الطريقة الثانية أ.

الطريقة الثالثة

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

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

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

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

**ملاحظة مهمة**

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

بعبارة أخرى ، الطريقة الثالثة مطلوبة للخصوصية الكاملة للشبكة ، ولكنها ليست كافية.

المرحلة 3 | بعد المزج

سأضيف معلومات حول المرحلة 3 في المستقبل القريب.

التطبيق

كانت هناك العديد من المشاريع التي حاولت أن تجعل من الممكن للمستخدمين أن يستخدموا CoinJoin utxos الخاصة بهم ، منهم الثلاثة الفعالين حاليًا هي:

  • JoinMarket
  • Wasabi
  • Whirlpool

سأحاول تقديم شرح موجز لكل أداة.

JoinMarket

المبدأ الأساسي لـ JoinMarket هو أن الأسواق وسيلة فعالة لتحفيز المستخدمين على استخدام CoinJoin.

المرحلة 1 | مزيج مسبق: اتصالات Blockchain تتم عبر Bitcoin Core واختيارياً عبر Tor

المرحلة 2 | مزج : الطريقة الثانية / أ

المرحلة 3 | مزيج آخر: بيتكوين كور

يصف Wiki هذا ببلاغة:

  • تتطلب معاملة CoinJoin مشاركة أشخاص آخرين.
  • يجب أن تكون الموارد (العملات المعدنية) في المكان المناسب وفي الوقت المناسب وبالكمية المناسبة.

هذه ليست مشكلة برمجية أو تقنية ولكنها مشكلة اقتصادية.

يعمل JoinMarket من خلال إنشاء نوع جديد من السوق يخصص هذه الموارد بأفضل طريقة.

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

ببساطة ، إن JoinMarket يجعل من الممكن للأفراد أن يدفعوا لأفراد آخرين للاختلاط بهم. و لأن هذا سوق حر ، هناك رسوم تنافسية.

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

في غضون ذلك ، أشجعك على تجربتها أيضًا.

Wasabi

يتكون Wasabi من محفظة تسمح لك بتلقي البيتكوين ، ومزجها اختياريًا ، ثم إرسال البيتكوين.

  • المرحلة 1 | الخلط المسبق: تتم جميع الاتصالات عبر Tor و BIP 158 Block Filters ( انظر الملاحظة) .
  • المرحلة 2 | المزج: الطريقة الثالثة
  • المرحلة 3 | بعد المزج: وضع العلامات على utxo والتحكم في العملات ، البث عبر Tor عبر عقدة عشوائية

ملاحظة على BIP 158

من Wasabi Docs

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

لكل كتلة تنزيل ، ينشئ Wasabi هوية tor جديدة وفريدة من نوعها ، مما يعني أنه ليس من السهل ربط أنه هو نفس الكيان الذي يقوم بتنزيل كل هذه الكتل.

ملاحظة: BIP 158 ليست جيدة مثل تشغيل العقدة الخاصة بك.

  • أنت تثق في أن خادم الوسابي يمنحك المرشحات الصحيحة
  • خادم الوسابي لا يحجب أي المرشحات.

Whirlpool

Whirlpool هي أداة خلط تعمل على توسيع وظائف تطبيق Samourai Wallet (SW) لنظام Android لتشمل إمكانات CoinJoin.

  • المرحلة 1 | الخلط المسبق: جميع الاتصالات تتم عبر Tor أو الاتصال بالعقدة الخاصة أو عقدة مطوري البرامج (انظر الملاحظة)
  • المرحلة 2 | المزج: الطريقة الثالثة
  • المرحلة 3 | بعد المزج: يتم وضع العلامات على utxo والتحكم في العملات ، البث عبر Tor عبر العقدة الخاصة بك أو عقدة مطوري SW (انظر الملاحظة)

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

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

--

--