مقدمة

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

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

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


ما هو خلط العملات؟

بالمعنى الواسع، قد يعني خلط العملات أي نشاط يتعلق بتشويش تاريخ الأموال واستبدال بياناتها. لكن في مجال العملات المشفرة، عادةً ما يشير خلط العملات إلى خدمة يقدمها طرف ثالث. في العادة، يأخذ مقدمو الخدمة عملات المستخدمين (ومقابل عمولة صغيرة)، ثم يعيدون عملات لا ترتبط بالعملات التي تم إرسالها. وتُعرف هذه الخدمات أيضًا باسم المجمّعات (tumbler) أو الـ mixers.

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

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


ما هو CoinJoin؟

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

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

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


зображення прикладу транзакції з чотирма входами і двома виходами


إذا نظرنا إلى هذه المعاملة المكوّنة من أربعة مدخلات (0,2 BTC لكل منها) ومخرجين (0,7 BTC و0,09 BTC)، يمكننا تقديم عدة افتراضات مختلفة. أولاً، نلاحظ كيف تتم عملية الدفع: يقوم المُرسِل بإرسال أموال إلى شخص ما، ثم يعيد لنفسه جزءًا. وبما أن هناك أربعة مدخلات مستخدمة، فمن المحتمل أن يكون المخرج الأكبر مخصصًا للمستلم. لاحظ أن المخرجات لا تحتوي على 0.01 BTC—وذلك هو مكافأة عامل التعدين.

كما أنه من الممكن أن يريد المرسل إنشاء UTXO كبير من مدخلات أصغر، لذلك يجمع بيانات إدخال أصغر للحصول على النتيجة المطلوبة 0,7 BTC.

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


كيف يعمل CoinJoin؟

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


зображення прикладу coinjoin


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

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

تعمل هذه المعاملة كنوع من “الصندوق الأسود” لخلط العملات. تذكّر أننا نُعدم UTXO فعليًا لإنشاء UTXO جديد. الرابط الوحيد بين الـ UTXO القديم والجديد الذي لدينا هو المعاملة نفسها، لكننا لا نستطيع تمييز المشاركين فيها. في أفضل الأحوال، يمكننا القول إن المشارك قدّم واحدًا من المخرجات، ومن الممكن أن يكون هو المالك الجديد للمخرج النهائي.

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


الخصوصية عبر الإنكار

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

لقد قلنا إن معاملة المثال السابق كانت تحتوي على مجموعة عدم إخفاء (anonymity set) تضم أربعة مدخلات، وكان من الممكن أن يكون أيٌّ من المشاركين الأربعة هو المستلِم. كلما زادت مجموعة عدم الإخفاء، قلت احتمالية ربط المعاملات بمالكها الأصلي. تتيح تطبيقات CoinJoin الجديدة للمستخدمين دمج بيانات إدخالهم بثقة مع عشرات المستخدمين الآخرين، مما يضمن مستوىً عاليًا من قابلية الإنكار. وقد تم مؤخرًا تنفيذ معاملة بنجاح لـ 100 شخص.


أفكار ختامية

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

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