پروتکل  CoinJoin، پروتکلی است که برای بهبود حریم خصوصی و ناشناس ماندن کاربران بیت کوین پیاده سازی شده است. این روش شامل این است که می‌توان تمام تراکنش‌هایی را که توسط کاربران مختلف سیستم انجام می‌شود، در یک مجموعه یکسان کرد. بنابراین، هنگامی که همه این تراکنش ها یکپارچه شدند، هیچ کاربری نمی توانست تعیین کند که وجوه از کجا آمده است. از آنجایی که ورودی و خروجی تراکنش های مذکور قابل مشاهده یا مرتبط نیستند. بنابراین، حتی گیرنده تراکنش نمی تواند بگوید که وجوه منتقل شده را از کجا دریافت کرده است.

اجرای این روش به ویژه برای جلوگیری از ردیابی وجوه دریافتی یا پرداخت های انجام شده در سیستم بیت کوین مفید است. به خصوص اگر مراقب حریم خصوصی خود باشیم و به یاد داشته باشیم که اگرچه بیت کوین خصوصی است، اما ناشناس نیست. این به این معنی است که امکان ردیابی تراکنش های بیت کوین تا نقطه پیدا کردن هویت شما وجود دارد. مطمئناً کار آسانی نیست، اما تجزیه و تحلیل تراکنش ها و پروفایل های دیجیتالی این نوع ساخت و ساز را امکان پذیر می کند، هرچند ممکن است دشوار به نظر برسد. انجام این کار آسان‌تر و آسان‌تر می‌شود، و تراکنش‌های بیت‌کوین با انجام تمام اتصالاتشان هرگز ناپدید نمی‌شوند.

به همین دلیل و برای افزایش حریم خصوصی، CoinJoin طراحی شد. اکنون بیایید بدانیم که CoinJoin چگونه کار می کند، چه گزینه هایی را به ما ارائه می دهد و توانایی ها و محدودیت های آن چیست.

پیدایش CoinJoin

این مفهوم توسط توسعه دهنده گریگوری ماکسول معرفی شد ، که در آگوست ۲۰۱۳ در حساب کاربری خود در BitcoinTalk منتشر کرد ، جایی که او به طور مفصل توسعه و عملکرد ایده خود را توضیح داد، همچنین تاکید کرد که این به معنای تغییر در پروتکل بیت کوین نیست.

نیاز به این نوع راه‌حل‌ها از جستجوی حریم خصوصی محافظت‌شده‌تر در بیت‌کوین ناشی می‌شود. بیاد داشته باشیم که بیت کوین یک ارز دیجیتال ناشناس واقعی نیست، این بدان معناست که هر یک از تراکنش‌هایی که انجام می‌دهیم در بلاک چین کاملاً شفاف به نظر می‌رسد.

اما نه تنها این، بلکه امکان ایجاد نمایه کاملی از آدرس هایی که استفاده می کنیم نیز وجود دارد. از جمله اینکه از چه آدرس هایی پول دریافت می کنیم یا به کدام آدرس ها ارسال می کنیم و در هر یک از آنها مبلغی را مشخص می کنیم. البته در هر یک از این تراکنش‌ها هرگز داده‌هایی مانند نام وجود ندارد که مستقیماً ما را به عنوان کاربر شناسایی کند.

اما اگر هکرها و تحلیلگران چیزی را دوست داشته باشند، آن چالش است. چالش حریم خصوصی بیت کوین این گروه ها را به ایجاد ابزارهای تخصصی برای مطالعه این داده ها و مرتبط کردن آن با هر فعالیت آنلاین دیگری که داریم، سوق داد. در نتیجه، آن‌ها داده‌های ما را روی بلاک چین و اینترنت جمع‌آوری می‌کنند، یک نمایه ایجاد می‌کنند و اگر دقت کافی نداشته باشیم، می‌توانند با خیال راحت هویت واقعی ما را پیدا کنند.

اینگونه است که چندین شرکت تجزیه و تحلیل بلاک چین توانسته اند هویت بسیاری از کاربران ارزهای دیجیتال را پیدا کنند و اینگونه است که حریم خصوصی و ناشناس بودن شبه بیت کوین به هیچ می رسد.

در برابر این پس زمینه، ایجاد CoinJoin به عنوان یک پاسخ رضایت بخش نشان داده شد. زیرا در صورت استفاده صحیح از این ابزار، ردیابی کاربران بیت کوین عملا غیرممکن می شود. علاوه بر این، ایجاد CoinJoin از نظر فنی برتر از میکسر کوین بود ، گزینه دیگری که قبلاً در آن زمان استفاده می شد. دلیل آن این است که CoinJoin به عنوان یک پروتکل P2P عمل می کرد در حالی که کوین های میکسر متمرکز بودند و به کلاهبرداری و سایر غارت ها داده می شدند.

CoinJoin چگونه کار می کند؟

در مرحله اول، برای انجام تراکنش CoinJoin لازم است چندین کاربر شبکه تصمیم به استفاده از این روش بگیرند. یعنی همه در مورد ادغام تراکنش ها برای انجام یک تراکنش گروهی و مشترک توافق دارند. یعنی بدون اینکه افراد دیگر (یا بهتر است بگوییم آدرس‌های دارای فاند) بخواهند با شما ترکیب شوند، نمی‌توانید از CoinJoin استفاده کنید.

با این حال، این بدان معنا نیست که با گروه بندی همه تراکنش ها در یک واحد، به نوعی کنترل تراکنش ها را به یک طرف خاص واگذار می کنید. نه، بلکه برعکس است. در تراکنش‌های Bitcoin CoinJoin ، امضای هر تراکنش مستقل از یکدیگر باقی می‌ماند . این بدون توجه به تعداد تراکنش‌هایی که در یک تراکنش CoinJoin گروه‌بندی می‌شوند.

سپس، هر کاربر کنترل خاصی بر ورودی و خروجی خود خواهد داشت و تنها در صورت موافقت با تراکنش و در صورت صحت آن، عملیاتی را امضا خواهد کرد. و تا زمانی که همه کاربران شرکت کننده در علامت تراکنش CoinJoin باشند، تراکنش انجام نخواهد شد.

اکنون، هنگامی که همه کاربران هر تراکنش خاص را امضا می کنند، در همان تراکنش CoinJoin گروه بندی می شوند که توسط ماینرها پردازش و تایید می شود تا آن را در بلاکچین گنجانده شود. جایی که به عنوان یک معامله واحد و مشترک منعکس می شود، که به وضوح نشان نمی دهد که وجوه از کجا آمده یا کجا ارسال شده است.

درک نحوه عملکرد CoinJoin

اکنون برای درک دقیق نحوه عملکرد CoinJoin، بهتر است آن را از طریق یک مثال ببینید. پس مورد زیر را داریم:

فرض کنید ماریا می خواهد ۱ بیت کوین را از آدرس A به آدرس B منتقل کند. در حالی که خوان می خواهد ۱ بیت کوین را از آدرس C به آدرس D منتقل کند. برای خصوصی کردن این تراکنش، هر دو تصمیم می گیرند از CoinJoin برای ترکیب انتقالات خود در یک واحد استفاده کنند. معامله ای که دارای دو ورودی (A و C) و دو خروجی (B و D) است.

کاری که CoinJoin در همه این کارها انجام می دهد این است که ورودی های ماریا و خوان را می گیرد، آنها را در یک تراکنش ترکیب می کند و از آنها، این ارزها را برای ایجاد تراکنش هایی که به مقصد می رسد، ترکیب می کند. اگر عملیات مستلزم بازپرداخت یک صرافی باشد، تراکنش CoinJoin نیز این تراکنش را ایجاد می کند و آن را به آدرس صرافی تحت کنترل شخصی که آن ارزها به آن تعلق دارند ارسال می کند. عملیات پرداخت CoinJoin تنها زمانی انجام می شود که ماریا و پدرو تراکنش های مربوطه خود را به صورت رمزنگاری امضا کنند.

با این حال، ترفندی که CoinJoin انجام می دهد، تمام قدرت خود را بر روی بلاک چین نشان می دهد. به طور معمول، تراکنش های ماریا و خوان الگوی واضحی از ارسال سکه را نشان می دهد. یعنی سکه ها از آدرس خود به آدرس مقصد می روند. اما در CoinJoin می‌توانیم یک تراکنش را ببینیم که در آن چندین ورودی به هم متصل شده‌اند و چندین خروجی وجود دارد.

این امر تعیین اینکه کدام گیرنده کدام خروجی را دریافت کرده است برای شخص ثالث دشوارتر می کند. حتی، گیرنده تراکنش نمی‌تواند تعیین کند که وجوه دریافتی از کدام آدرس می‌آید، زیرا UTXO‌ها مستقیماً به خود آدرس مربوط نمی‌شوند، بلکه به تراکنش‌هایی با چندین ورودی مرتبط هستند که همه آنها مستقل هستند.

از این مثال می توان موارد زیر را نتیجه گرفت:

  1. CoinJoin از طرح UTXO یا سکه های بیت کوین خرج نشده استفاده می کند تا طرح عظیمی از ورودی ها را برای همان تراکنش ایجاد کند. البته، این UTXO ها از موجودی موجود برای هر یک از افرادی که در طرح CoinJoin شرکت می کنند، به دست می آیند، بنابراین هر چه تعداد افراد بیشتری شرکت کنند، سطح ناشناس بودن بیشتری به دست می آید.
  2. با در نظر گرفتن تمام UTXO های افراد در CoinJoin به عنوان ورودی، ترکیبی از سکه ها از این UTXO ها ایجاد می شود.
  3. پرداخت CoinJoin زمانی انجام می شود که همه افراد معامله مشترک را امضا کنند و با موجودی هایی که ارائه می کند موافقت کنند.
  4. در نهایت CoinJoin پرداخت را انجام خواهد داد. بسته به پیاده سازی، CoinJoin می تواند پرداخت های مختلفی را به آدرس های میانی دیگر انجام دهد که یک CoinJoin اضافی نیز ایجاد می کند. اقدامی که به دنبال افزایش سطح امنیت تراکنش است. اما در نهایت، CoinJoin موجودی پرداخت ماریا و خوان را برای گیرندگان خود به ارمغان می آورد. در بلاک چین ما شاهد یک تراکنش واحد، خروجی های متعدد و هیچ چیزی که آنها را به یکدیگر مرتبط نمی کند خواهیم بود. ما یک معامله ناشناس انجام داده ایم.

چرا CoinJoin در بیت کوین مهم است؟

بیت کوین یک سیستم غیرمتمرکز و مستقل است که درجه خاصی از حریم خصوصی را در معاملات ارائه می دهد. از آنجایی که بیت‌کوین به جای درخواست داده‌های شخصی مانند سیستم‌های سنتی، فقط از آدرس‌هایی استفاده می‌کند که به‌عنوان نوعی حساب بانکی کار می‌کنند که می‌توانید بدون هیچ خطری پول دریافت کنید. با این حال، بیت کوین همچنین یک سیستم شفاف و قابل حسابرسی است، به این معنی که در یک مرورگر بلاک چین می‌توانید تراکنش‌های انجام‌شده در این سیستم را از آغاز آن در سال ۲۰۰۹ تا به امروز آزادانه مشاهده کنید.

بنابراین، حتی اگر داده‌های شخصی فاش نشود، هر شخص ثالثی می‌تواند آدرس‌های خاصی را دنبال کند تا ببیند چگونه وجوه در آن جابه‌جا می‌شود یا چگونه مدیریت می‌شود. تعیین فعالیت تراکنشی یک کاربر در داخل شبکه. به یاد داشته باشید که اگرچه بیت کوین از اطلاعات شخصی یک کاربر استفاده نمی کند، اما می توان یک آدرس خاص را با یک شخص یا شرکت مرتبط کرد.

به عنوان مثال، اگر آن شخص یا شرکت آشکارا منتشر کرده باشد که صاحب یک آدرس خاص است، یا اگر آدرس‌های IP که تراکنش‌های مختلف از آنجا انجام شده است، نظارت و پیگیری شود. به همین دلیل است که بیت کوین به عنوان یک سیستم شبه ناشناس شناخته می شود به عبارت دیگر، ناشناس بودن جزئی را به کاربران خود ارائه می دهد.

این ویژگی در بیت کوین، علامت گذاری/برچسب زدن برخی ارزها به عنوان «فاسد یا آلوده» را ممکن می سازد. اگر با پیگیری مشخص شود که آنها در پولشویی متقلبانه یا تامین مالی فعالیت های غیرقانونی دست داشته اند. چه چیزی کیفیت تعویض پذیری را به ارز دیجیتال کاهش می دهد. یعنی قابلیت مصرف و مصرف شدن آن. از آنجایی که بسیاری از کاربران شبکه تمایلی به استفاده از آن دسته از ارزهای دیجیتالی ندارند که به عنوان “آلوده” نامگذاری شده اند، زیرا آنها به فعالیت های غیرقانونی مرتبط هستند. بنابراین یک بیت کوین دیگر همان بیت کوین دیگر نیست.

به همین دلیل است که اجرای روش CoinJoin یک راه حل مناسب جایگزین برای این مشکلات حریم خصوصی سیستم بیت کوین ارائه می دهد. با جلوگیری از ردیابی تراکنش های انجام شده در شبکه توسط اشخاص ثالث یا مرتبط شدن با فعالیت های خاص.

پیاده سازی CoinJoin

همانطور که در ابتدا اشاره کردیم، CoinJoin در ابتدا بر روی بلاک چین بیت کوین به منظور بهبود حریم خصوصی و ناشناس بودن شما پیاده سازی شد. با این حال، تا به امروز چندین پیاده سازی از این روش وجود دارد که رایج ترین و پرکاربردترین آنها کیف پول Samourai ، کیف پول Wasabi و JoinMarket است .

کیف پول La Samourai این کیف پول به سمت حفاظت و تضمین حریم خصوصی کاربران است. بنابراین روش CoinJoin را از طریق رابط Whirlpool پیاده سازی می کند تا ورودی ها و خروجی های تراکنش های یک کاربر را ترکیب و مطابقت دهد تا به نظر برسد که آنها از یک تراکنش CoinJoin آمده اند. این کیف پول هم برای رایانه ها و هم برای گوشی های هوشمندی که با سیستم اندروید کار می کنند در دسترس است.

کیف پول Wasabi به نوبه خود از خدمات Chaumian CoinJoin و پروتکل شبکه Tor برای ترکیب تراکنش ها و تضمین حداکثر حریم خصوصی برای کاربران خود استفاده می کند. ردیابی تراکنش ها و همچنین IP های عمومی مورد استفاده عملا غیرممکن می شود. هر دو کیف پول برای استفاده از این خدمات حفظ حریم خصوصی و ناشناس بودن، نرخ کمیسیون را کنترل می کنند.

به همین ترتیب، اجرای نرم افزار JoinMarket de CoinJoin نیز به دنبال بهبود حریم خصوصی و ناشناس ماندن در تراکنش های بیت کوین است. به کاربران این امکان را می دهد که با هزینه بسیار کم مکانی را در یک تراکنش CoinJoin خریداری کنند، گویی یک بازار است. در واقع JoinMarket به عنوان بازاری برای معاملات بیت کوین عمل می کند.

به طور خلاصه، پیاده سازی CoinJoin یک روش بسیار موثر و کارآمد برای اطمینان از حفظ حریم خصوصی و ناشناس بودن در شبکه بیت کوین است. اما مانند هر روش دیگری، نیاز به استفاده گسترده برای تضمین ناشناس بودن در تمام سکه های بیت کوین موجود تا به امروز است. هرچه تعداد کاربرانی که CoinJoin را پیاده سازی می کنند بیشتر باشد، تعداد بیت کوین های خصوصی بیشتر می شود.

کنجکاوی در مورد CoinJoin

در این مرحله مهم است که برخی از کنجکاوی‌های مربوط به CoinJoin را که ناشی از سوالات و نگرانی‌های کاربران بیت‌کوین است. از جمله آنها می توان به:

CoinJoin و اسطوره ناشناس بودن مطلق

CoinJoin 100% ناشناس بودن را تضمین نمی کند. این به این دلیل است که تجزیه و تحلیل داده‌ها، رفتار بلاک چین، حتی رهگیری داده‌های شبکه را می‌توان برای تجزیه و تحلیل یک هدف تحت بررسی که از بیت‌کوین استفاده می‌کند، انجام داد. بنابراین این افسانه که CoinJoin 100٪ حریم خصوصی را تضمین می کند نادرست است. مطمئناً آن را در سطحی که در بیت کوین بدون این پروتکل دیده نمی شود بهبود می بخشد، اما ناشناس بودن کامل به هیچ وجه تضمین نمی شود.

هزینه های تراکنش

هزینه تراکنش کوین جوین بسیار بیشتر از تراکنش معمولی بیت کوین است. این به این دلیل است که CoinJoin “پرش های ترکیبی” را انجام می دهد که چیزی جز تراکنش های اضافی ارز دیجیتال بین شرکت کنندگان CoinJoin نیست. هر یک از این پرش ها یک تراکنش جدید ایجاد می کند که به نوبه خود دارای هزینه استخراج مرتبط است. در مجموع، هرچه جهش‌های استخراج بیشتر باشد، ناشناس ماندن بیشتری به دست می‌آید اما هزینه تراکنش نهایی CoinJoin بالاتر خواهد بود.

آیا تراکنش Coin Join قابل پیگیری است؟

نادرست!

یک تراکنش موثر CoinJoin قابل ردیابی نیست. هیچ راهی برای یک شرکت برای یافتن مبدا و مقصد وجوه وجود ندارد، اگر مبدا از تراکنش CoinJoin استفاده کند و آنتروپی کافی برای انجام داشته باشد. یعنی اگر افراد زیادی در تراکنش CoinJoin شرکت کنند، امن تر است. از این رو، طرفداران این فناوری همیشه استدلال می کنند که شرکت حدود ۵۰ نفر در CoinJoin ایده آل است، اگرچه بیشتر از آن، بسیار بهتر است.

مزایا و معایب CoinJoin

اکنون که کمی بیشتر در مورد CoinJoin و کارهایی که انجام می دهد می دانیم، وقت آن است که بدانیم چه مزایا و معایبی دارد. از این نظر می توان به:

طرفداران

  1. حریم خصوصی عملیات ارزهای دیجیتال ما را تا حد زیادی بهبود می بخشد.
  2. به جلوگیری از برچسب گذاری سکه در محیط های متمرکز کمک می کند. به عنوان مثال سکه ای که در محیط های مجرمانه استفاده شده است را می توان بدون مشکل شسته و دوباره به گردش درآورد. چیزی به خصوص مفید است اگر ارز به دست قانونی بازگشته باشد و اگر در نظر بگیریم که بیت کوین تنها به ۲۱ میلیون سکه محدود شده است، بیشتر مفید است.
  3. CoinJoin برای کار کردن نیازی به تغییر پروتکل ندارد. چیزی مثبت که سازگاری بیت کوین با سایر مشتریان را بدون ایجاد مشکلات عمده حفظ می کند.

منفی

  1. CoinJoin ممکن است بیت کوین ما را با سایر بیت کوین ها از فعالیت های غیرقانونی لکه دار کند. در اینجا یک قضاوت ارزشی، آزادی و اخلاقی از سوی هر کاربر وجود دارد، که در آن باید در نظر داشت که اگر به کوین جوین بپیوندید، کاربرانی که آن بیت کوین را به طور غیرقانونی به دست آورده اند، می توانند با شما مشارکت کنند.
  2. ممکن است در معرض اطلاعات کاربر قرار گیرد. اگر موجودی های مدیریت شده خود را با CoinJoin به همراه سایر موجودی های مدیریت شده با هویت خود بپیوندید، امکان پذیر است. در این مرحله امکان تجزیه و تحلیل داده‌ها وجود دارد که می‌تواند هویت شما را آشکار کند حتی اگر از CoinJoin استفاده کنید.

آینده حریم خصوصی و ناشناس بودن در بیت کوین

اکنون قطعا ناشناس نبودن بیت کوین واکنش های متفاوتی را در جامعه به همراه داشته است. از یک طرف، بسیاری از کاربران بر این باورند که بیت کوین باید به طور کامل ناشناس باشد و این توسط بسیاری از توسعه دهندگان به اشتراک گذاشته شده است. بنابراین این سوال باقی می ماند: در آینده بیت کوین چه انتظاری می توانیم داشته باشیم؟ حقیقت این است که بسیار است. ایجاد CoinJoin پاسخی به نیازهای حریم خصوصی بسیاری از افراد است. مطمئناً این یک ساخت پیش فرض نیست که برای همه کار کند، اما این گزینه وجود دارد و عالی کار می کند.

اما باید بدانیم که حریم خصوصی، ناشناس بودن و امنیت کامل را نمی توان در یک دنیای دیجیتال ۱۰۰% تضمین کرد. با این حال، توسعه‌دهندگان بیت‌کوین محتاط‌تر بوده‌اند و تلاش‌های خود را بر محافظت بهتر از حریم خصوصی و ایجاد مکانیسم‌های مختلف برای کمک به محافظت بهتر از حریم خصوصی و نام مستعار موجود در بیت‌کوین متمرکز کرده‌اند. خلاقیت هایی مانند CoinJoin، JoinMarket یا زنجیره های جانبی مانند Lightning Network و Liquid Network کمک زیادی به ایجاد حریم خصوصی و ناشناس ماندن بهتر برای کسانی که به آن نیاز دارند کمک می کند.

نمونه دیگری از توسعه گزینه های حفظ حریم خصوصی و ناشناس بودن در بیت کوین، تراکنش های محرمانه است. این نوع گزینه ها را می توان در پروژه BlockStream Elements طراحی کرد و برای بیت کوین اعمال می شود، جایی که می توان آنها را از طریق سافت فورک فعال کرد. بنابراین به طور خلاصه، در بیت کوین، آنها بر روی ناشناس بودن انتخاب و نه ناشناس بودن به طور پیش فرض شرط بندی می کنند، با درک این که ناشناس بودن به طور پیش فرض و امنیت به دلیل نامعلومی، در واقع اطمینان ۱۰۰ درصدی را ارائه نمی دهند که ناشناس بودن کامل است.

در واقع، آن نوع تقریب هایی که می توانید انجام دهید این است که تغییراتی را ایجاد کنید که با شبکه فعلی که به هارد فورک نیاز دارد ناسازگار است. همچنین به دلیل دشواری انتقال تکنیک های رمزگذاری پیشرفته تر و به منظور دستیابی به ناشناس بودن در شبکه، می تواند منجر به نقص های امنیتی جدی شود. نمونه بارز آن را می توان در رویدادهای Zcash و GRIN مشاهده کرد.

در مورد اول، Zcash برای چندین ماه یک باگ داشت که به هر کسی که او را می‌شناخت می‌توانست از ابتدا سکه ایجاد کند. این شامل تراکنش‌های coinbase می‌شود که آن سکه‌ها را تولید می‌کنند. یک اشتباه جدی که می‌تواند به یک فاجعه کامل منجر شود. در پروتکل دوم، پروتکل MimbleWimble دارای طراحی است که می تواند برای از بین بردن تمام حریم خصوصی و ناشناس بودنی که او ادعا می کند مورد سوء استفاده قرار گیرد.

در مواجهه با رویدادهایی مانند این، رویکرد بیت کوین نه تنها محتاطانه تر است، بلکه برای اکوسیستم و خود پروتکل خطر کمتری دارد. و در عین حال، به شما امکان می دهد ابزارهای حفظ حریم خصوصی ایجاد کنید که در طول زمان بیشتر و بیشتر بهبود می یابد.