CoinJoin: ترکیب معاملات بیت کوین برای مبهم سازی مسیرها و افزایش حریم خصوصی

بیت کوین در حال حاضر است واقعاً ناشناس نیست. در حالی که آدرس های Bitcoin لزوماً با هویت های واقعی مرتبط نیستند ، اما می توانند باشند. نظارت بر شبکه رمزگذاری نشده توسط نظیر به نظیر ، تجزیه و تحلیل بلاکچین عمومی و سیاست مشتری خود (KYC) یا مقررات مبارزه با پولشویی (AML) را بشناسید می تواند موارد زیادی را در مورد افرادی که از بیت کوین استفاده می کنند و برای چه مواردی نشان دهد..

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

علاوه بر این ، ردیابی بیت کوین ، احتمالاً “آلوده” و ارزش بالقوه کمتر از بیت کوین دیگر با قابلیت انعطاف پذیری مغایرت دارد. این حتی می تواند ارزش پیشنهادی بیت کوین را به عنوان پول به چالش بکشد.

اما راه حل های بالقوه ای برای افزایش حریم خصوصی و بهبود قابلیت انعطاف پذیری وجود دارد.

راه حلی که مدتی وجود داشته CoinJoin است.

زمینه

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

علاوه بر این ، هر معامله خاص یک یا چند “ورودی” را با اشاره به آدرس هایی که بیت کوین از آنها ارسال می شود ، صرف می کند. (این ورودی ها برای “خروجی ها” خرج می شوند ، و به آدرس هایی که بیت کوین به آنها ارسال می شود ، اختصاص می یابد.) این مسئله چالش دیگری برای حفظ حریم خصوصی و قابلیت استفاده است ، زیرا همه آدرس های ورودی معمولاً به یک کاربر تعلق دارند: فرستنده معامله. اگر حتی یکی از آدرسهای ورودی خوشه ای بتواند به هویتی در دنیای واقعی مرتبط شود ، همه آنها هستند.

CoinJoin – پیشنهاد شده در سال 2013 توسط هسته بیت کوین و جریان بلوک Gregory Maxwell – توسعه دهنده برای حل هر دو این مشکلات طراحی شده است. این مسیر بیت کوین را مبهم می کند و این فرض را که کلیه آدرس های ورودی به یک کاربر تعلق دارند را از بین می برد..

ایده

مفهوم CoinJoin کاملاً ساده است.

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

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

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

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

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

در عمل

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

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

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

همچنین راه حلهای غیرمتمرکز CoinJoin وجود دارد که معاملات CoinJoin را از طریق نظیر یا حداقل بدون هیچ واسطه مرکزی خاصی ایجاد می کند. چندین تلاش در این راستا انجام شده است ، از جمله Coinmux, جمع شدنی, CoinJoiner و توسعه دهنده سابق DarkWallet Amir Taaki’s ابزار CoinJoin. اما هیچ یک از اینها به طور گسترده ای مورد استفاده قرار نمی گیرند ، بنابراین بسیار مفید نیستند – “پیوستن به هم” فقط زمانی وجود دارد که شخصی برای پیوستن به آن وجود داشته باشد.

برداشت جدیدتر از استراتژی CoinJoin که قصد دارد این مشکل را حل کند ، این است به مارکت بپیوندید: یک بازار برای معاملات CoinJoin. کاربران می توانند در ازای پرداخت هزینه ای اندک ، در معامله CoinJoin نقطه ای ارائه دهند – یا خود دسترسی به معامله CoinJoin را خریداری می کنند. سازندگان JoinMarket ایمان داشتن که انگیزه مخلوط کردن سکه در ازای کارمزد باید نقدینگی کافی برای موفقیت در بازار ایجاد کند – در حالی که رقابتی بودن آن باید هزینه ها را پایین نگه دارد. در واقع ، JoinMarket در مقایسه با گزینه ها و موارد نسبتاً خوبی مورد استفاده قرار می گیرد سفارش کتاب (در زمان نوشتن مقاله) هزاران بیت کوین را برای مخلوط کردن ارائه می دهد.

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

نکات منفی و تجارت

در حالی که CoinJoin می تواند مفید باشد – عالی نیست.

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

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

خطر دیگر این است که حملات سیبیل. به ظاهر چندین شرکت کننده در یک معامله CoinJoin واقعاً می توانند یک نهاد واحد باشند ، و یک شرکت کننده خاص را تحت نظر دارند.

(اگر نه از ده ورودی و خروجی متعلق به یک عامل NSA باشد که بیت کوین برای خودش بفرستد ، او می داند کدام خروجی باقیمانده بیت کوین را به کدام خروجی باقیمانده ارسال می کند).

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

که ما را به نکته بعدی می رساند: CoinJoin هنوز یک دردسر است. تقریباً هیچ کیف پول در آن تعبیه نشده است و از آنهایی که استفاده زیادی نمی شود (و به یک سرور مرکزی متکی هستند.) JoinMarket احتمالاً موفق ترین اجرای تاکنون است ، اما با این وجود به نرم افزار ویژه و هزینه های اضافی (هرچند ناچیز) نیاز دارد.

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

از گریگوری مکسول برای بازخورد بیشتر تشکر می کنیم.