CoinJoin طريقة لجمع أموال عدة أشخاص في معاملة Bitcoin واحدة، مع احتفاظ كل شخص بمفاتيحه والتحقق مما يوقّعه. تنشئ المعاملة مخرجات جديدة للمشاركين أو للمستلمين الذين يحددونهم. وقد يصعب على المراقب ربط كل مخرج بمالكه الأصلي. تتوقف النتيجة على بنية المعاملة والبروتوكول والمعلومات الأخرى التي يملكها المراقب.
تدفع آنا مقابل خدمة، ولا تريد أن يتمكن المستلم بسهولة من تتبّع بقية أموالها. لكن Bitcoin لا يملك كشف حساب مصرفيًا خاصًا؛ فسجل المعاملات علني. تنفق المعاملة مخرجات سابقة لم تُنفق بعد، وتُسمّى UTXO، ثم تنشئ مخرجات جديدة. المخرج سجلّ يحدد المبلغ وشروط إنفاقه. عندما تستخدم دفعة عادية عدة مخرجات، يفترض المحلل غالبًا أن شخصًا واحدًا يتحكم فيها. هذا ترجيح عملي، أو قاعدة استدلالية، وليس دليلًا قاطعًا. يكسر CoinJoin هذا الافتراض بجمع عدة مالكين في معاملة واحدة. إنه لا يعيد كتابة الماضي، بل يغيّر مدى الثقة في العلاقات المستنتجة من السجلات العلنية. [1]
في مثال مبسط، تملك آنا مخرجًا قيمته 100 500 sat، ويملك بافيل مخرجًا بالقيمة نفسها. sat اختصار لـ satoshi، أصغر وحدة من البيتكوين. يرتبان معاملة تمنح كلًا منهما مخرجًا جديدًا بقيمة 100 000 sat، وتكون قيمة 1 000 sat المتبقية مجموع رسوم الشبكة التي يتقاسمانها. لا يشمل هذا المثال التعليمي رسوم خدمة إضافية. يُعِدّ المقترحَ منسّقٌ أو محافظ تتواصل فيما بينها. التوقيع الرقمي موافقة يمكن التحقق منها، تُنشأ باستخدام مفتاح خاص، أي بيانات سرية تتيح لحاملها التوقيع. ولا يُكشف المفتاح نفسه في هذه العملية. ويتحقق كل شخص من عنوان مخرجه ومبلغه والرسوم والشروط كاملة قبل توقيع مدخلاته. لا يملك المنسّق وحده مفاتيح الآخرين ولا صلاحية إنفاق أموالهم. وإذا غاب توقيع مطلوب، فلا يمكن إكمال هذه المعاملة بصورة صحيحة. لكن الحماية تفترض برنامجًا سليمًا ومراجعة المقترح؛ فتوقيع تحويل إلى عنوان محتال يُفقدها معناها. [1] [5]
يرى من يراقب سلسلة الكتل وحدها في المثال مخرجين جديدين متساويين في القيمة. ولا يكشف المبلغ وحده أيهما لآنا وأيهما لبافيل. لكن ذلك لا يعني تلقائيًا أن الاحتمال نصف مقابل نصف، ولا يضمن إخفاء الهوية؛ فقد يعرف المراقب أحد العناوين أو يملك قرينة أخرى. في المعاملات الفعلية قد تساعد البقية المعادة التي يسهل تمييزها، واختلاف المبالغ وأنواع المخرجات والتوقيت، على كشف الروابط. مجموعة إخفاء الهوية تعني المرشحين الذين لا يستطيع المراقب التمييز بينهم، لا مجرد عدد المسجلين في جولة. كما أن تقييم المحفظة تقدير وفق نموذج محدد، وليس وعدًا بشأن ما يعرفه كل مراقب عنك. [1] [4]
القدرة على سرقة المال تختلف عن القدرة على معرفة المعلومات. قد يعرف منسّق بسيط الروابط بين المدخلات والمخرجات، بينما تخفيها بروتوكولات أخرى بأساليب تشفيرية. وتهم أيضًا معلومات الشبكة، مثل عناوين IP وأوقات الاتصال. هناك كذلك Sybil Attack: يتظاهر خصم واحد بأنه عدة مشاركين، ويعرف مخرجاته، فيقلّل الغموض بشأن المخرجات الباقية. وقد يرفض مشارك التوقيع فيعطّل الجولة كلها. لذلك تهم قواعد المشاركة المحددة ووسائل مقاومة إغراق الخدمة بالطلبات أو تخريبها، وهو ما يُعرف بهجمات DoS. كثرة المدخلات وحدها لا تجيب عن هذه الأسئلة. [1] [4]
تجمع آنا لاحقًا مخرجها الجديد مع أموال سحبتها من منصة تداول تعرف هويتها. وقد يمنح هذا المراقب رابطًا جديدًا في الموضع الذي حاولت جعل تتبّعه أصعب. وقد يحدث أثر مشابه عند إعادة استخدام العناوين أو ضم عدة مخرجات في مخرج واحد، أي تجميعها. يتيح Coin Control اختيار وحدات UTXO التي تنفقها المحفظة، ويساعد على فصل الأموال المرتبطة بسياقات مختلفة. لكنه ليس زرًا للخصوصية المطلقة. قد يعرف المستلم هوية الدافع، وقد تحتفظ الخدمة بسجلاتها الخاصة. لذا يستمر الاهتمام بالخصوصية بعد نجاح الجولة، ولا يقتصر على شكل معاملة واحدة. [5]
ابدأ بتحديد المعلومات التي تريد حمايتها وممّن تريد حمايتها. فالمستلم الفضولي والمنسّق ومراقب الشبكة لا يملكون القدرات نفسها. ثم تحقق ممّن يحتفظ بالمفاتيح، وما الذي يوقّعه التطبيق، والرسوم التي يفرضها، وكيف يتعامل مع المخرجات الناتجة. الخدمة التي ترسل إليها الأموال أولًا لتحتفظ بها تتطلب نموذج ثقة مختلفًا عن CoinJoin الذي تحتفظ فيه بالسيطرة على مفاتيحك. لا يضيف CoinJoin قاعدة خاصة إلى Bitcoin؛ فالعقد تتحقق من معاملة عادية وشروطها. العقدة حاسوب يشغّل برنامجًا يتحقق من معاملات Bitcoin وكتله. ولا يحذف CoinJoin سجلات منصة التداول أو المستلم، ولا يضمن كيفية تعامل خدمة بعينها مع الدفع. فهم هذه الحدود أنفع للمبتدئ من كلمة «مجهول» داخل التطبيق. [1] [5]
شرح Gregory Maxwell فكرة CoinJoin علنًا في أغسطس 2013. لم تتطلب الفكرة تغيير قواعد الشبكة، لكن ظل الناس بحاجة إلى العثور على بعضهم والتعاون. عرض JoinMarket أسلوبًا قائمًا على السوق: يدفع منظّم المعاملة المشتركة لآخرين مقابل إتاحة أموال للمشاركة. وتنظّم البروتوكولات التي تستخدم منسّقًا هذا الأمر بطرق مختلفة. مثلًا، يدعم WabiSabi مبالغ متفاوتة وبيانات اعتماد مجهولة تتيح للمشارك إثبات استحقاقه للمخرجات دون كشف رابطها بالمدخلات بصورة مباشرة. لذلك لا ينبغي مساواة CoinJoin بتطبيق واحد، ولا افتراض أن كل صيغة منه تشترط مخرجات متساوية فقط. [1] [2] [4]
يشرح منشور Maxwell الفكرة الأساسية، وتصف وثائق محفظة معينة خطوات عملها، وتبحث ورقة WabiSabi خصائص البروتوكول. هذه مستويات مختلفة من الأدلة. عند هذه المراجعة، كان المستودع الأصلي لعميل وخادم JoinMarket مؤرشفًا؛ ونستخدمه هنا مادة تاريخية وتقنية، لا توصية بالتثبيت. أما PayJoin وفق BIP 78 فهو تعاون قريب بين الدافع والمستلم، يساهم فيه كلاهما بمدخلات. ولا يهدف عادة إلى تكوين مجموعة كبيرة من المخرجات المتساوية. عند المقارنة، اسأل مَن يتعاون، وماذا يمكنه أن يعرف، وما الذي يتحقق منه الشخص ومحفظته فعلًا قبل التوقيع، بدل الاكتفاء بكلمة «الخصوصية» المشتركة. [1] [2] [3] [4] [5] [6]
المعاملة المشتركة لا تثبت وجود مالك واحد
لكلٍّ من Alice وBob سيطرة على مدخل مختلف في معاملة مشتركة ويحصل كل منهما على مخرجاته. افتراض أن كل المدخلات لشخص واحد خاطئ هنا. الجمع وحده لا يضمن إخفاء إسناد المخرجات؛ فقد تكشف المبالغ والمعلومات الأخرى والإنفاق اللاحق الروابط.
للحصول على صورة أوضح، اقرأ هذا المدخل مع Bitcoin, خصوصية Bitcoin, الهوية المستعارة, محفظة, UTXO, معاملة. تشير إلى هذا المدخل أيضًا Change Address, خصوصية Bitcoin, الهوية المستعارة, KYC.
01هل يستطيع منسق CoinJoin سرقة أموال المدخلات؟+
في CoinJoin المصمَّم بصورة صحيحة بحيث لا تُسلَّم الأموال إلى جهة لحفظها، تبقى المفاتيح لدى المشاركين. وقبل التوقيع يراجعون المعاملة كاملة، وخصوصًا مخرجاتهم والمبالغ والرسوم. لا يستطيع المنسق إنشاء إنفاق صالح دون التوقيعات المطلوبة، لكنه قد يعطل الجولة أو يرفض المشاركة. لكن إذا وقّع مشارك معاملة ترسل أمواله إلى محتال، فإنه يوافق بنفسه على ذلك الدفع.
02هل تظل المخرجات مجهولة إلى الأبد بعد CoinJoin؟+
لا. يبقى السجل عامًا. قد تقلل إعادة استخدام العناوين والتجميع والدفع لأطراف معروفة وسلوك المحفظة القابل للتعرف وبيانات الشبكة الوصفية غموض الإسناد أو تزيله. تعتمد النتيجة على البروتوكول والتعامل اللاحق مع المخرجات.