پروتکل Coinjoin (کوین جوین) پلتفرمی است که برای افزایش حریم خصوصی و ناشناس بودن کاربران بیت کوین اجرا میشود. در این پلتفرم میتوان همه تراکنشهای انجامشده توسط کاربران مختلف سیستم را در یک مجموعه واحد انجام داد. از آنجا که ورودی و خروجی تراکنشهای گفته شده قابل مشاهده نمیباشد. بنابراین، هنگامی که همه این تراکنشها یکپارچه شدند، هیچ کاربری نمیتواند تعیین کند که مبدأ پول کجاست. بنابراین، حتی گیرنده تراکنش نمیتواند بگوید وجوه منتقلشده را از کجا دریافت کرده است.
اجرای این روش بهویژه برای جلوگیری از پیگیری وجوه دریافتی یا پرداختهای انجامشده در سیستم بیت کوین بسیار مفید است. به خصوص اگر ما از حریم خصوصی خود مراقبت کنیم و به یاد داشته باشیم که اگرچه بیت کوین خصوصی است اما ناشناس نیست. پس ردیابی تراکنشهای بیت کوین تا رسیدن به هویت شما امکانپذیر است. مطمئناً کار سادهای
نیست، اما تجزیه و تحلیل تراکنشها و پروفایلهای دیجیتال این نوع ساخت را امکانپذیر میکند، هرچند دشوار به نظر برسد. انجام این کار آسانتر میشود و تراکنشهای بیت کوین هرگز از بین نمیروند.
به همین دلیل و برای افزایش حریم خصوصی، CoinJoinطراحی شد. حال بیایید بدانیم کوین جوین (CoinJoin) چگونه کار میکند، چه گزینههایی را به ما ارائه میدهد و قابلیتها و محدودیتهای آن چیست؟
تاریخچه پروتکل کوین جوین
مفهومکوین جوین توسط گرگوری مکسول، در آگوست 2013 در BitcoinTalk منتشر شد. او در پستی به طور مفصل درباره عملکرد این ایده خود توضیح داد. همچنین تأکید کرد که این ایده به معنای تغییر در پروتکل بیت کوین نیست.
نیاز به این نوع راه حلها برای حریم خصوصی بیشتر در بیت کوین احساس میشود. به یاد داشته باشیم که بیت کوین یک رمزارز واقعاً ناشناس نیست، بلکه یک ارز شبه ناشناس است. یعنی هر یک از تراکنشهای انجام شده در بلاکچین کاملاً شفاف به نظر میرسد.
همچنین امکان ایجاد مشخصات کامل از آدرسهایی که استفاده میکنیم نیز وجود دارد. ازجمله اینکه از کدام آدرسها پول دریافت میکنیم یا به کدام آدرسها چه مبالغی میفرستیم. البته، در هر یک از این تراکنشها هرگز اطلاعاتی مانند نام یا شناسه کاربری مستقیما ارائه نمیشود.
چالش حفظ حریم خصوصی
اما اگر موضوع برای هکرها و تحلیل گران جذاب باشد، پس با چالش جدیدی روبهرو هستیم. چالش حفظ حریم خصوصی بیت کوین باعث شد تا این گروهها ابزارهای تخصصی برای مطالعه این دادهها و مرتبط کردن آنها با هر فعالیت آنلاینی، ایجاد کنند. در نتیجه، آنها اطلاعات ما را در بلاکچین و اینترنت جمعآوری میکنند، یک پروفایل ایجاد میکنند و اگر ما به اندازه کافی مراقب نباشیم، با خیال راحت میتوانند هویت واقعی ما را پیدا کنند.
به این ترتیب یک شرکت تجزیه و تحلیل بلاکچین موفق به یافتن هویت بسیاری از کاربران میشود و به این ترتیب است که حریم خصوصی و شبه ناشناس بودن بیت کوین کاهش مییابد.
در این زمینه، پروتکل CoinJoin به عنوان یک پاسخ رضایتبخش ایجاد شد. در صورت استفاده صحیح از این ابزار، ردیابی کاربران بیت کوین عملاً غیرممکن است. علاوه بر این، کوین جوین (CoinJoin) از نظر فنی برتر از میکسر کوین (Mixer Coin) بود، گزینه دیگری که قبلاً در آن زمان استفاده میشد. دلیل این امر این است که کوین جوین به عنوان یک پروتکل P2P عمل میکرد در حالی که میکسر کوین متمرکز بود و منجر به کلاهبرداری میشد.
پروتکل Coinjoin چگونه کار میکند؟
در مرحله اول، برای انجام تراکنش CoinJoin لازم است که چندین کاربر شبکه تصمیم به استفاده از این روش بگیرند. یعنی همه در ادغام تراکنشها برای انجام یک تراکنش گروهی و مشترک توافق دارند. یعنی بدون اینکه دیگران بخواهند با شما در یک گروه ترکیب شوند، نمیتوانید از CoinJoin استفاده کنید.
با این حال، این بدان معنا نیست که شما با ترکیب همه تراکنشها در یک گروه، امکان کنترل تراکنشهای دیگران را دارید. در تراکنشهای CoinJoin امضاهای هر تراکنش مستقل از یکدیگر هستند.
سپس، هر کاربر کنترل خاصی بر ورودی و خروجی خود خواهد داشت و تنها در صورت موافقت با تراکنش و صحیح بودن آن، تراکنش را امضا میکند و تا زمانی که همه کاربران شرکت کننده در یک تراکنش CoinJoin نباشند، تراکنش انجام نخواهد شد.
هنگامی که کاربران تراکنش خود را امضا کردند، در یک تراکنش واحد گروهبندی میشوند تا ماینرها آن را پردازش و تأیید کنند و در بلاکچین قرار دهند. به گونهای که به صورت یک تراکنش واحد و مشترک منعکس میشود. بدین صورت به صورت صریح مشخص نمیشود که وجوه از کجا آمده یا از کجا ارسال شده است.
درک نحوه کار CoinJoin
اکنون برای درک دقیق نحوه کار CoinJoin به مثال زیر توجه کنید:
فرض کنید ماریا میخواهد 1 BTC را از آدرس A به آدرس B منتقل کند. در حالی که جان میخواهد 1 BTC را از آدرس C به آدرس D منتقل کند. برای محرمانهسازی این تراکنش، هر دو تصمیم میگیرند از CoinJoin برای ترکیب تراکنش استفاده کنند. تراکنشی که دارای دو ورودی (A و C) و دو خروجی (B و D) است.
کاری که پروتکل Coinjoin انجام میدهد این است که ورودیهای ماریا و جان را بگیرد. آنها را در یک تراکنش مشابه ترکیب کند. این ارزها را با هم ترکیب کند تا تراکنشها را به مقصد برساند. اگر این عملیات مستلزم بازپرداخت از صرافی باشد، CoinJoin نیز این تراکنش را ایجاد کرده و آن را به آدرس صرافی تحت کنترل شخصی که این ارزها به آن تعلق دارند ارسال میکند. عملیات پرداخت CoinJoin تنها زمانی انجام میشود که ماریا و جان تراکنشهای مربوطه خود را به صورت رمزنگاری امضا کنند.
طور معمول، تراکنشهای ماریا و جان الگوی مشخصی از ارسال کوین را نشان میدهد. یعنی کوینها از آدرس خود به آدرس مقصد میروند. اما در CoinJoin فقط میتوان یک تراکنش واحد را مشاهده کرد که در آن چندین ورودی به هم متصل شده و چندین خروجی وجود دارد.
این امر تعیین اینکه کدام گیرنده کدام خروجی را دریافت کرده را برای یک طرف ثالث دشوار میکند. حتی گیرنده تراکنش نمیتواند تعیین کند که وجوه دریافتی از کدام آدرس میآیند، زیرا UTXO مستقیماً به یک آدرس مربوط نیستند، بلکه به تراکنش چندین ورودی مربوط میشوند که همه آنها مستقل هستند.
از این مثال میتوان موارد زیر را استنباط کرد:
- CoinJoin از طرح UTXO یا سکههای خرج نشده استفاده میکند. هرچه تعداد افراد بیشتری مشارکت داشته باشد سطح ناشناس ماندن بیشتر میشود.
- با در نظر گرفتن تمام UTXO های افراد به عنوان ورودی، ترکیب سکهها از این UTXO ها ایجاد میشود.
- پرداخت CoinJoin هنگامی انجام میشود که همه تراکنش مشترک را امضا کنند.
- سرانجام پروتکل Coinjoin پرداخت را انجام میدهد.
مثالی دیگر برای درک Coinjoin
در اینجا، ما چهار شرکت کننده داریم. آنها تراکنش را بین خودشان (یا از طریق یک پلتفرم هماهنگ کننده) هماهنگ میکنند تا ورودیها و خروجیهایی را که میخواهند وارد کنند، اعلام کنند.
هماهنگکننده تمام اطلاعات را میگیرد. آنها را به صورت یک تراکنش در میآورد و قبل از مخابره آن به شبکه از هر شرکت کننده امضا میگیرد. پس از امضای کاربران، تراکنش بدون اعتبارسنجی قابل اصلاح نیست. این تراکنش مانند جعبه سیاه برای مخلوط کردن سکهها عمل میکند.
بنابراین تراکنش دارای یک مجموعه ناشناس 4 نفره است. صاحب یک خروجی میتواند هر یک از چهار شرکت کننده درگیر باشد. هرچه مجموعه ناشناس بزرگتر باشد، احتمال ارتباط دادن تراکنش با مالک اصلی آن کمتر است. خوشبختانه، در نسخههای اخیر پروتکل Coinjoin کاربران میتوانند ورودیهای خود را با دهها ورودی دیگر با اطمینان ادغام کنند. اخیراً یک تراکنش 100 نفره با موفقیت انجام شد.
چرا پروتکل Coinjoin در بیت کوین مهم است؟
بیت کوین یک سیستم غیرمتمرکز و خودمختار است که درجه خاصی از حریم خصوصی در تراکنشها را ارائه میدهد. بیت کوین به جای درخواست دادههای شخصی، فقط از آدرس استفاده میکند. با این حال، بیت کوین همچنین سیستمی شفاف و قابل کنترل است. در یک مرورگر بلاکچین (Block Explorer) میتوانید تراکنش انجام شده در این سیستم را از ابتدای پیدایش آن مشاهده کنید.
بنابراین، حتی اگر اطلاعات شخصی فاش نشود، هر شخص ثالث میتواند آدرسهای خاصی را رهگیری کند تا ببیند که وجوه چگونه جابجا شده یا اداره میشود. به یاد داشته باشید، اگرچه بیت کوین از اطلاعات شخصی کاربر استفاده نمیکند، میتوان آدرس خاصی را با یک شخص یا شرکت مرتبط کرد.
به عنوان مثال، اگر آن شخص یا شرکت به طور عمومی اعلام کرده باشد که صاحب آدرس خاصی است، امکان رهگیری تراکنشهای آدرس وجود دارد. به همین دلیل بیت کوین به عنوان یک سیستم شبه ناشناس شناخته میشود. به عبارت دیگر، محرمانگی نسبی به کاربران خود ارائه میدهد.
به همین دلیل است که اجرای پروتکل Coinjoin یک راه حل مناسب برای مشکل حریم خصوصی بیت کوین ارائه میدهد. این کار با جلوگیری از ردیابی تراکنشهای انجام شده در شبکه توسط اشخاص ثالث یا ارتباط دادن آنها با فعالیتهای آنلاین صورت میگیرد.
پیادهسازی CoinJoin
همانطور که در ابتدا اشاره کردیم، پروتکل Coinjoin برای بهبود حریم خصوصی و ناشناس ماندن شما در ابتدا در بلاکچین بیت کوین پیادهسازی شد. با این حال، تاکنون چندین روش برای اجرای این روش وجود دارد که متداول ترین و پرکاربردترین آن کیف پول Samourai و Wasabi wallet و JoinMarket است.
کیف پول سامورایی
کیف پول سامورایی (Samourai) به منظور محافظت و تضمین حریم خصوصی کاربران است. این کیف پول هم برای رایانه ها و هم برای تلفن های هوشمندی که با سیستم Android کار میکنند در دسترس است.
[irp posts=”6434″ name=”آموزش استفاده از کیف پول سامورایی Samurai Wallet”]
کیف پول Wasabi
کیف پول Wasabi از خدمات CoinJoin و پروتکل شبکه Tor برای ترکیب کردن تراکنشها و تضمین حداکثر حریم خصوصی کاربران خود استفاده میکند. ردیابی تراکنشها و همچنین IP های عمومی استفاده شده غیرممکن است. هر دو کیف پول برای استفاده از این خدمات حفظ حریم خصوصی و ناشناس بودن نرخ کارمزد را کنترل میکنند.
به طور خلاصه، پروتکل Coinjoin یک روش بسیار مؤثر و کارآمد برای اطمینان از حفظ حریم خصوصی و ناشناس ماندن در شبکه بیت کوین است. اما مانند هر روشی، برای تضمین ناشناس ماندن، به استفاده گسترده نیاز دارد. هرچه تعداد کاربرانی که CoinJoin را پیادهسازی میکنند بیشتر باشد، تعداد بیت کوین خصوصی نیز بیشتر میشود.
کوین جوین و محرمانگی کامل
پروتکل Coinjoin ناشناس بودن 100٪ را تضمین نمیکند. این بدان دلیل است که تجزیه و تحلیل دادهها، رفتار بلاکچین، حتی رهگیری دادههای شبکه هنوز هم میتواند برای تجزیه و تحلیل هدف مورد تحقیق که از بیت کوین استفاده میکند، انجام شود. بنابراین این افسانه که CoinJoin 100٪ حریم خصوصی را تضمین میکند نادرست است. مطمئناً آن را در سطحی بهبود میبخشد که بدون این پروتکل در بیت کوین دیده نمیشود. اما بیهویتی کامل به هیچ وجه تضمین نمیشود.
کارمزد تراکنش در پروتکل Coinjoin
هزینه تراکنشهای CoinJoin بسیار بیشتر از تراکنشهای رایج Bitcoin است. دلیل این امر این است که CoinJoin تراکنشهای اضافی بین شرکت کنندگان CoinJoin انجام میدهد. هر یک از این تراکنشها به نوبه خود دارای هزینه استخراج است. در مجموع، هر چه تراکنشهای استخراج بیشتر باشد، ناشناس ماندن بیشتر میشود. اما هزینه تراکنش نهایی CoinJoin بیشتر خواهد بود.
جوانب مثبت پروتکل کوین جوین
- حریم خصوصی را بسیار بهبود میبخشد.
- CoinJoin برای کار کردن به هیچ تغییری در پروتکل نیازی ندارد. چیزی مثبت که سازگاری بیت کوین را با سایر مشتریان حفظ میکند بدون اینکه مشکلات اساسی ایجاد کند.
آینده حریم خصوصی و ناشناس ماندن در بیت کوین
در حال حاضر اینکه بیت کوین کاملاً ناشناس است، واکنشهای مختلفی را در جامعه ایجاد کرده است. اما باید توجه داشته باشیم که در دنیای دیجیتال 100٪ نمیتوان حریم خصوصی، ناشناس بودن و امنیت را تضمین کرد. توسعهدهندگان بیت کوین با احتیاط بیشتری عمل کرده و تلاش خود را برای محافظت بهتر از حریم خصوصی و ایجاد مکانیزم های مختلف جهت کمک به حفاظت بهتر از حریم خصوصی و شبه ناشناس بودن بیت کوین، متمرکز کردهاند. ایجاد مکانیزم هایی مانند پروتکل Coinjoin یا شبکههای جانبی مانند Lightning Network و Liquid Network به ایجاد حریم خصوصی بهتر و ناشناس ماندن برای کسانی که به آن نیاز دارند کمک بسیاری میکند.
نمونه دیگری از توسعه حفظ حریم خصوصی و ناشناس ماندن در بیت کوین ، تراکنشهای محرمانه است. این نوع گزینهها را میتوان در پروژه BlockStream Elements مشاهده کرد. آنها در مورد بیت کوین اعمال میشوند که از طریق یک سافت فورک فعال شوند.
سوالات متداول
کوین میکسینگ روشی برای حفاظت از حریم خصوصی کاربران در انجام تراکنش هاست که میزان دارایی افراد را نامعلوم میکند. سرویسهای کوین میکسینگ متمرکز بوده و معمولا یک شرکت شخص ثالث این پلتفرمها را ارائه میدهد.
در کوین جوین ورودیهای تراکنشهای چندین کاربر در یک تراکنش ادغام میشود. کاربر برای ایجاد یک تراکنش از UTXOها به عنوان ورودی استفاده میکند. سپس خروجیها را مشخص کرده و صحت ورودیها را امضا میکند. یعنی تراکنش به صورت مستقل امضا میشود.
هرگونه سیستم حریم خصوصی تراکنش که آدرس یک کاربر را پنهان میکند، میتواند مورد استفاده قرار بگیرد. امروزه شبکههایی مانند تور، I2P و غیره برای این کار وجود دارند. البته تراکنشها در این حالت آهستهتر انجام میگیرند.
تراکنشهای بیت کوین نام و آدرس کاربران را فهرست نمیکند، اما آنها به راحتی قابل ردیابی هستند و ممکن است کسی بتواند آدرس IP شما را با تراکنش بیتکوین شما مرتبط کند.