کوین جوین و کوین میکسینگ چیست؟
coin mixing و CoinJoin بهعنوان روشهای کاربردی برای پوشاندن ردپای کاربران از تراکنشهای دنیای ارزهای دیجیتال شناخته میشود. با توجه به ماهیت بلاکچین پنهان کردن اطلاعات هر تراکنش به هیچ عنوان کار سادهای نیست. این از طرفی از محاسن بلاکچین بوده و با توجه به در خطر قرار گرفتن حریم خصوصی کاربران میتواند عیب بسیار بزرگی باشد. در ادامه میتوانید با coin mixing و CoinJoin و اینکه چگونه کار میکنند و آیا میتوانند به شما در غیرقابل ردیابی کردن تراکنشها کمک کنند؛ بیشتر آشنا شوید.
مقدمه
همانطور که میدانید بیت کوین اغلب بهعنوان پول نقد دیجیتال شناخته میشود اما آیا این مقایسه تماماً درست است؟ فرض کنید که آلیس ده دلار پول نقد را به باب پرداختی کند. آیا باب میداند که این ده دلار پیش از آلیس نزد چه کسی بوده است؟ حتی ممکن است خود آلیس هم این مسئله را به خاطر نداشته باشد. اگر باب بعداً این پول را به کارل بدهد چه؟ آیا کارل میداند که پول پیش از باب، متعلق به آلیس بوده است؟ اما این مسئله در بیت کوین چنین نیست.
بیت کوین ماهیت عمومی دارد. این به این معناست که تاریخچه یک واحد بیت کوین (به عبارت دقیقتر، یک خروجی خرج نشده تراکنش یا UTXO) را هر کسی میتواند ببیند. درست مانند اینکه رقم تراکنش و نام افراد درهرصورت حساب، ثبت شود. هرچند که هویت کاربران به خاطر ناشناس بودن آدرس عمومی، ناشناخته خواهد بود و به سادگی فاش نمیشود اما بااینوجود بازهم بیت کوین تماماً خصوصی نیست.
امروزه ابزار تجزیهوتحلیل بلاکچین به نحو قابلتوجهی پیچیدهتر و قدرتمندتر شده است و قادر است آدرسها را با هویتهای حقیقی و حقوقی به شکل دقیقتری پیوند دهد. در کنار دیگر تکنیکهای نظارتی، یک نهاد خاص به این توانایی دستیافته است که هویت کاربران ارزهای دیجیتال را افشا کند. برای رفع این مشکل، طی سالیان گذشته تکنیکهایی برای پنهان کردن ارتباط افراد با تراکنشها معرفیشدهاند.
کوین میکسینگ (coin mixing) چیست؟
بهطورکلی کوین میکسینگ (coin mixing)، روشی برای محافظت از حریم خصوصی است که میزان دارایی افراد را مبهم میکند. این خدمات غیرمتمرکز نیست و معمولاً یک شخص ثالث ارائهدهنده این سازوکار در فضای رمز ارزهاست.
coin mixing به این صورت است که ابتدا سکههای کاربر به خدمات دهنده ارسال میشود و سپس در ازای کارمزد کمی، سکههایی به کاربر بازگردانده میشود که هیچ پیوندی و ارتباطی با سکههای ارسالشده ندارند. این سرویسها بهعنوان تامبلر (tumblers) یا میکسر (mixers) هم شناخته میشوند.
البته امنیت و ناشناس بودن چنین خدمات متمرکزی خود جای سؤال دارد. در واقع هیچ تضمینی وجود ندارد که میکسر پول کاربر را به آنها بازگرداند یا اینکه سکههای برگشتی به نوعی آلوده نشده باشند. جنبه دیگری که باید هنگام استفاده از میکسر مورد توجه قرار گیرد این است که احتمال دارد آدرسهای IP و آدرس بیت کوین، توسط شخص ثالث ثبت شود و از آن مهمتر کاربران به امید دریافت مجدد پولهای بدون پیوند از آنها، کنترل دارایی خود را به دیگران میسپارند.
یکی دیگر از ابزارهای پنهانسازی و غیرقابل ردیابی شدن در دنیای ارزهای دیجیتال در قالب تراکنشهای کوینجوین CoinJoin ظاهر شده است. این تراکنشها درصد پنهانسازی قابلتوجهی دارند و این بدان معناست که پس از کوینجوین، هیچ مدرکی باقی نمیماند تا ارتباط یک کاربر با یک تراکنش را فاش کند.
بسیاری از راهحلهای کوینجوین جایگزینی غیرمتمرکز برای میکسرهای متمرکز بوده و اگرچه ممکن است یک هماهنگکننده دراینبین وجود داشته باشد اما در این روش کاربران دیگر اختیار دارایی خود را بهطورکلی قربانی نخواهند کرد.
کوینجوین (CoinJoin) چیست؟
تراکنشهای کوینجوین CoinJoin توسط گرگوری مکسول (Gregory Maxwell) توسعهدهنده بیت کوین، در سال 2013 معرفی شد. وی در مقاله خود، مختصراً در مورد چگونگی ساختار تراکنشها و نحوه دستیابی به میزان گستردهای از حریم خصوصی بدون ایجاد تغییری در پروتکل، توضیحاتی ارائه داده است.
در کوینجوین ورودیهای چندین کاربر در یک تراکنش ترکیب و ادغام میشوند اما پیش از آنکه بیشتر در مورد نحوه این فرایند توضیح دهیم؛ بد نیست نگاهی به ساختار پایهای یک تراکنش بیندازیم.
ساختار تراکنشهای بیت کوین از ورودی و خروجیهای متعددی تشکیلشده است. در آغاز یک کاربر برای ایجاد یک تراکنش از UTXOهای خود بهعنوان ورودی استفاده میکند. UTXO خروجی خرج نشده تراکنشهاست. پسازاین خروجیها را مشخص میکند و صحت ورودیها را امضا میکند. هر ورودی به طور مستقل امضاشده و کاربران میتوانند چندین خروجی برای ارسال به چندین آدرس متفاوت امضا کنند.
در تصویر بالا همانطور که میبینید تراکنش از چهار ورودی (هرکدام 0.2 BTC) و دو خروجی (0.7 BTC و 0.09 BTC) تشکیلشده است. چند فرضیه متفاوت در این زمینه وجود دارد که میتوان آنها را در نظر گرفت.
اولین فرضیه این است که ما در حال مشاهده چگونگی یک پرداخت هستیم. فرستنده یکی از خروجیها را برای کسی ارسال میکند و باقیمانده پول برای خودش بازمیگردد. ازآنجاییکه فرستنده از چهار ورودی استفاده کرده است، احتمالاً خروجی بزرگتر متعلق به گیرنده است. البته این را هم در نظر داشته باشید که آغاز تراکنش با 0.8 بیت کوین و پایان آن با 0.79 بود و 0.01 BTC از خروجیها کم شده است. این میزان هزینهای است که بهعنوان کارمزد به ماینر پرداخت میشود.
فرض دیگر این است که فرستنده میخواهد UTXO بزرگتری را از ورودیهای کوچکتر به دست بیاورد و برای همین منظور ورودیهای کوچکتر را ترکیب کرده تا به نتیجه موردنظر یعنی 0.7 بیت کوین برسد.
و اما فرض دیگری که میتوان داشت این است که هر ورودی به طور مستقل امضا میشود و ورودیهای این تراکنش میتواند حداکثر 4 طرف مختلف داشته باشد که ورودیها را امضا کردهاند. در واقع این همان اصلی است که CoinJoin را مؤثر میکند.
CoinJoin چگونه کار میکند؟
بهطورکلی عملکرد CoinJoin به این صوت است که چندین طرف برای ایجاد یک تراکنش با یکدیگر هماهنگ میشوند و هرکدام ورودی و خروجی دلخواه خود را ارائه میدهند. همه ورودیها با یکدیگر ترکیبشده و به طور قطع نمیتوان مشخص کرد که کدام خروجی به کدام کاربر تعلق دارد. نمودار زیر را مشاهده کنید:
هماهنگکننده تمام اطلاعات را دریافت میکند و آنها را به صورت یک تراکنش درمیآورد. او پیش از پخش این تراکنش به شبکه از تمامی افراد ذیربط در این تراکنش امضا دیجیتالی را دریافت خواهد کرد. پس از امضای کاربران، تراکنش قابلتغییر یا اصلاحپذیر نیست؛ بنابراین خطر اینکه هماهنگکننده با داراییها ناپدید شود وجود ندارد.
این تراکنش مانند یک جعبه سیاه برای درهم کردن سکهها (کوینها) عمل میکند. به یاد داشته باشید که ما به طور مؤثر و عمدی UTXO ها را از بین میبریم تا UTXO های جدید ایجاد کنیم. تنها ارتباط بین UTXO های قدیمی و جدید، خود تراکنش است. البته نمیتوان دقیقاً مشخص کرد افراد پشت این تراکنش چه کسانی بودند. در بهترین حالت میتوان گفت که یکی از کسانی که این ورودیها را در تراکنش قرار داده شاید مالک جدید خروجی حاصلشده از تراکنش باشد.
اما حتی این فرض هم تضمینشده و قابل استناد نیست. در واقع هیچکس نمیتواند به تراکنش مثال بالا نگاه کند و با اطمینان بگوید که چهار نفر پشت این تراکنش هستند یا تشخیص دهد که یک نفر دارایی خود را در چهار آدرس تقسیم کرده و حال دارایی را به آدرس دیگرش منتقل میکند! یا دو نفر دو خرید جداگانه انجام دادهاند و 0.2 BTC را هرکدام به آدرسهای خود بازمیگردانند. به این ترتیب رد همه این افراد از این تراکنش پاک شده است.
حفظ حریم خصوصی از طریق پاک کردن رد پای کاربران
میتوان فرض کرد که کوینجوین در بسیاری از تراکنشها نقش داشته است. در واقع با افزایش محبوبیت این روش، این فرض که همه ورودیهای یک تراکنش متعلق به یک کاربر است؛ ضعیف میشود. همین موضوع جهشی عظیم را برای حفظ حریم خصوصی در اکوسیستمی گستردهتر نوید میدهد.
در مثال قبلی ما، 4 نفر صاحب ورودیهای تراکنش در نظر گرفته شدند اما واقعیت این است که اخیراً کوینجوین امکاناتی را فراهم کرده است که ده ها نفر به راحتی میتوانند ورودیهای خود را در شکل یک تراکنش ترکیب و ادغام کنند. این موضوع ردیابی افراد را سختتر از گذشته کرده است. اخیراً یک تراکنش کوینجوین با 100 شرکتکننده با موفقیت انجامشده است.
سخن پایانی
ابزارهای ادغام سکهها از مهمترین امکانات موجود و در دسترس هر کاربر است که به صورت جدی درباره حفظ حریم خصوصی حساس است. با وجود پیشنهادهای ارتقا شبکه مانند اضافه شدن تراکنشهای محرمانه (Confidential Transactions)، این روشها در همین پروتکل فعلی نیز عملی هستند.
برای افرادی که به صداقت و روش اشخاص ثالث اعتماد دارند، خدمات درهم کردن یا Mixing یک راهحل مناسب به شمار میرود؛ اما برای افرادی که گزینههای خصوصیتر و با سازوکار محافظهکارانهتری را ترجیح میدهند، بهترین گزینه کوینجوین است. این فرایند را میتوان از طریق افراد خبره و یا برنامههای مخصوص به این کار انجام داد. در حال حاضر تعداد محدودی از این ابزارها وجود دارد اما با گسترش دانایی کاربران و پی بردن به اهمیت حفظ حریم خصوصی، ابزارها و روشهای جدیدی در حال رشد و پیشرفت هستند.