كثيرًا ما يوصف البيتكوين بأنه نقد رقمي، لكن هذه المقارنة محل جدل. فإذا دفعت أليس عشرة دولارات نقدًا إلى بوب، فلن يعرف بوب من أين جاء هذا المال. وإذا سلّم بوب الورقة النقدية لاحقًا إلى كارول، فلن تستطيع هي أن تستنتج أنها كانت في حوزة أليس أولًا.
أما البيتكوين فالأمر فيه مختلف تمامًا بسبب طبيعته المفتوحة. فتاريخ أي عملة بعينها (أي مخرج المعاملة غير المنفق أو UTXO) يمكن لأي شخص مراجعته بسهولة. الأمر أقرب إلى تدوين قيمة المعاملة واسم المستلم على فاتورة في كل مرة يُستخدم فيها بيتكوين.
ومع ذلك، فإن خلو العناوين العامة من الأسماء يمنع الكشف السهل عن هويات المستخدمين. لكن هذا لا يعني أن البيتكوين خاص تمامًا. فتحليلات البلوكتشين تزداد تطورًا يومًا بعد يوم، وتنجح أكثر فأكثر في الربط بين العناوين والهويات. وإلى جانب أساليب المراقبة هذه، يمكن أيضًا لجهة مخصصة لهذا الغرض تحديدًا أن تكشف هويات مستخدمي العملات الرقمية. ولمنع ذلك، ظهرت على مر السنين تقنيات تقطع الصلة بين المعاملات.
ما هو خلط العملات؟
بوجه عام، يشير خلط العملات إلى المعاملات التي تهدف إلى إخفاء أموال عبر مبادلتها بأموال أخرى. لكن في عالم العملات الرقمية غالبًا ما يُستخدم المصطلح للحديث عن خدمات تقدمها أطراف ثالثة. إذ يستلم مقدّم الخدمة عملات المستخدم (مع رسوم بسيطة) ويعيد إليه عملات أخرى لا صلة لها بتلك التي أرسلها. وتُعرف هذه الخدمات أيضًا باسم التمبلر أو الميكسر.
وبالطبع تثير أمان هذه الخدمات المركزية وخصوصيتها بعض التساؤلات. فليس هناك ما يضمن أن تعيد خدمة الخلط الأموال إلى المستخدمين، ولا أن العملات المستلمة خالية من تاريخ معاملات مشبوه. وثمة أمر آخر ينبغي أخذه في الحسبان عند استخدام خدمة خلط، وهو أن عناوين IP وعناوين البيتكوين قد يسجّلها طرف ثالث. وفي النهاية يسلّم المستخدم أمواله إلى شخص آخر على أمل أن يستعيد عملات مقطوعة الصلة بماضيه.
وهناك نهج أكثر إثارة للاهتمام هو معاملات 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؟
الفكرة الأساسية أن تتنسّق عدة أطراف لإنشاء معاملة واحدة عبر الإفصاح عن مدخلاتها والمخرجات التي تريدها. وبعد دمج جميع المدخلات، يصبح من المستحيل الجزم بأي مخرج يخص أي مستخدم. ويمكنك متابعة العملية في المخطط أدناه:

هنا لدينا أربعة مستخدمين يريدون قطع الصلة بين معاملاتهم. وهم يتنسّقون فيما بينهم (أو عبر منسّق) لتبادل المدخلات والمخرجات التي يرغبون في إدراجها.
يجمع المنسّق كل المعلومات، ويبني بها معاملة، ثم يطلب من كل مشارك توقيعها قبل بثّها إلى الشبكة. وبعد أن يوقّع المستخدمون، يصبح من المستحيل تعديل هذه المعاملة من دون إبطالها. وبذلك ينتفي خطر استيلاء المنسّق على الأموال.
تعمل المعاملة كصندوق أسود يخلط العملات. فلإنشاء وحدات UTXO جديدة لا بد من إتلاف القديمة. والرابط الوحيد بين القديمة والجديدة هو المعاملة نفسها، لكن عند هذه النقطة يصبح فصل المشاركين بعضهم عن بعض غير ممكن. وفي أفضل الأحوال يمكن القول إن أحد المدخلات أضافه مشارك بعينه، وإن هذا المشارك قد يكون المالك الجديد للمخرج الناتج.
لكن حتى هذا ليس ضمانة كاملة. فهل يمكن أن نستنتج من المعاملة أعلاه أن المشاركين أربعة؟ أم أن شخصًا واحدًا يرسل أموالًا إلى أربعة عناوين يملكها؟ أم أن شخصين يجريان عمليتي شراء مختلفتين ويعيد كل منهما 0.2 BTC إلى عنوانه؟ أم أن أربعة أشخاص يرسلون أموالًا إلى أشخاص جدد أو إلى أنفسهم؟ ليس بإمكاننا تقديم إجابات قاطعة عن هذه الأسئلة.
الخصوصية عبر الإنكار
مجرد وجود تطبيقات CoinJoin يكفي لأن نشكك في الأساليب المستخدمة لتحليل المعاملات. فقد تستنتج أن CoinJoin مستخدم في كثير من المعاملات، لكنك تظل عاجزًا عن معرفة مالكي المخرجات. ومع تزايد شعبية هذه التطبيقات، ضعف الافتراض القائل إن كل المدخلات تعود إلى المستخدم نفسه، وهو ما شكّل خطوة كبيرة نحو الخصوصية داخل المنظومة بأكملها.
في المثال السابق، تبلغ مجموعة إخفاء الهوية في المعاملة 4، أي إن مالك المخرج قد يكون أي واحد من المستخدمين الأربعة المشاركين. وكلما اتسعت مجموعة إخفاء الهوية، صَعُب ربط المعاملة بمالكها الأصلي. ولحسن الحظ، بفضل أحدث تطبيقات CoinJoin يستطيع المستخدمون دمج مدخلاتهم مع عشرات المستخدمين الآخرين من دون حاجة إلى الثقة بأحد، بما يضمن مستوى عاليًا من الإنكار. وقد نُفّذت مؤخرًا معاملة ضمت 100 شخص بنجاح.
خلاصة
أدوات خلط العملات وسائل مهمة متاحة لكل مستخدم يهتم بخصوصيته. وعلى عكس تحديثات الخصوصية الأخرى (مثل Confidential Transactions)، يمكن الاستفادة منها مع الحفاظ على البروتوكول في وضعه الحالي.
فبالنسبة إلى من يثق في نزاهة الأطراف الثالثة وأساليبها، تقدّم خدمات الخلط حلًا سهلًا. أما من يفضّل بدائل قابلة للتحقق ولا تقوم على حفظ الأموال لدى وسيط، فإن خيارات CoinJoin أفضل بوضوح. ويمكن للمستخدمين ذوي الخبرة التقنية تنفيذ هذه العمليات يدويًا، كما يمكن إنجازها عبر أدوات برمجية تغني عن التعامل مع الآليات المعقدة. وتوجد بالفعل عدة أدوات من هذا النوع، وتتزايد شعبيتها كلما ازداد سعي المستخدمين إلى مزيد من الخصوصية.
