انتشار نسخه بتای Whirlpool ، بهبوددهنده حریم خصوصی کیف پول سامورایی
توسعهدهندگان کیف پول سامورایی (Samourai) نسخه بتای Whirlpool ، یک نسخه پیادهسازی Chaumian CoinJoin را منتشر کردند که حاوی چارچوبی پشتیبانیشده توسط ابزارهای نرمافزاری بهبوددهنده حریم خصوصی است.
Chaumian CoinJoin چیست؟
CoinJoin تکینیکی برای ناشناس کردن است که برای اولین بار توسط گرگوری مکسول (Gregory Maxwell) در سال ۲۰۱۳ معرفی شد. یک « Chaumian CoinJoin » امضاهای کور چاوم (طرحی که نسخه کور رمزنگاریشدهی آدرس دریافتکننده را ارائه میکند) را ادغام میکند. ZeroLink ، چارچوب تعویضپذیری بیت کوین، Chaumian CoinJoin را اینگونه توصیف میکند:
کاربران به هم متصل شده و چند ورودی و یک نسخه کور رمزنگاریشده از آدرسی که میخواهند سکههای خصوصیشان به آنجا برود را ارائه میکنند (و آدرسها را تغییر میدهند)؛ سرور توکنها را امضا کرده و آنها را برمیگرداند. کاربران دوباره بهصورت ناشناس به هم متصل شده، آدرسهای خروجی را باز کرده و آنان را به سرور بازمیگردانند. سرور میتواند ببنید که همه خروجیها توسط او امضا شدهاند، پس همه خروجیها میبایست از سوی شرکتکنندگان معتبری آمده باشند. سپس افراد مجدداً متصل شده و امضا میکنند
این بهعنوان راهی سریع و ارزان برای افزودن ناشناس بودن بیشتر به تراکنشهای CoinJoin دیده میشود. با افزودن این ویژگی به کیف پول سامورایی، میتواند لایهی امنیتی ساده و قابلاستفادهای برای کاربران بیت کوین فراهم کند.
طبق گفته توسعهدهنده چارچوب سامورایی، این یک نسخه پیادهسازی از CoinJoin است که از طریق فورک اصلاحشده نظریه ZeroLink توسعه داده شده است.
طبق صفحه رسمی آن در سایت گیتهاب، نرمافزار متن باز Whirlpool میتواند تملک ورودیها (آدرس فرستنده) را به خروجیهایی (آدرسهای گیرنده) که در یک تراکنش بیت کوین وجود دارند، از نظر ریاضی مجزا کند. این جدایی بین مجموعه مشخصی از ورودیها و خروجیهای مربوط به آنان امکان ایجاد حریم خصوصی مالی بیشتری در زمان انجام تراکنشهای بیت کوین را فراهم میکند. به عبارت دیگر، ردگیری انتقال بیت کوین به دلیل قابل ردیابی نبودن فرستنده تراکنش و دریافتکننده آن که ناشی از این جدایی است دشوار خواهد بود.
ویژگیهای حریم خصوصی Whirlpool، تعویضپذیری (fungibility) کلی شبکه بیت کوین را نیز ارتقا میدهند. تعویضپذیری به یک ویژگی توکن گفته میشود که واحدهای آن قابل تبادل هستند، در حالی که هر واحد از واحد دیگر قابل تمایز است. تحلیلگران امنیتی استدلال کردهاند که ماهیت قابل ردگیری بودن تراکنشهای بیت کوین (انتقالهای قابل روئیت از طریق مرورگرهای بلوک عمومی) میتواند باعث کاهش تعویضپذیری این رمز ارز پرچمدار شود. اگر تاجران از پذیرش بیت کوین آلوده که شاید برای استفاده در فعالیتهای غیرقانونی مالی مانند قاچاق مواد یا پولشویی به کار گرفته شود امتناع کنند، امکان وقوع چنین اتفاقی (کاهش تعویضپذیری) وجود دارد.
هنوز مشخص نیست که این ویژگی امنیتی چگونه شرکتکنندگان را برای انجام سریع تراکنشهای CoinJoin تشویق خواهد کرد. ایجاد پرداختهای فوری نیازمند وجود آنی چندین شرکتکننده است. باوجود فعال شدن کیف پول واسابی (CoinJoin (Wasabi، شاید جمع کردن ۵۰ تا ۱۰۰ شرکتکننده چند ساعت طول بکشد.
اسناد موجود نیز نشان نمیدهند که سامورایی چگونه تطبیق این مقدار (نیاز به پیوند دادن ورودیها و خروجیهای مطابق برای مخفی کردن صحیح آنان) انجام خواهد داد.
تئوری ناشناس بودن Whirlpool
Whirlpool شامل اجرای یک مجموعه نظری ناشناس است که بهجای نیاز به ساعتها پردازش، پتانسیل رشد دقیقهای را دارد. به زبان ساده، نظریه آنان این است که همه آدرسهای فرستنده و گیرنده در یک مجموعه با یکدیگر ترکیب شوند که اندازه آنان بهطور مداوم در حال افزایش باشد. اگر این ایده در عمل کار کند، بدین شکل خواهد بود که مجموعه در هنگام استفاده از Whirlpool با سرعت بیشتری رشد خواهد کرد و تعیین فرستنده و گیرنده تراکنش بیت کوین عملاً غیرممکن خواهد شد. توسعهدهنده کیف پول سامورایی در اسناد خود نشان میدهد که این هدف با تمرکز بر چرخههای کوچکتر CoinJoin در مقابل کار با یک چرخه بزرگ به دست خواهد آمد. کار کردن با چندین چرخه کوچک و ساده نسبت به یک چرخه بزرگ و پیچیده راحتتر است.
تیم سامورایی اشاره کرده است که معماری مدولار Whirlpool (تقسیم کد به بخشهای کوچکتر که امکان انجام کارهای ساده برای هر کدام را فراهم میکند)، چارچوب آن را قادر میسازد تا در هر نوع محیط توسعهای ازجمله چارچوب استفادهشده در تلفنهای هوشمند و کامپیوترهای دسکتاپ ادغام شود.
بهترین عمل از نظر برنامهنویسی نوشتن کدهای مدولار (modular) است، یعنی کد منبع باید به تابعهای منطقی تقسیم شود که در صورت نیاز برای انجام وظایف در نرمافزارهای کامپیوتری فراخوانی شوند. بهعنوان مثال، یک برنامه مدولار میتواند شامل ماژولهای کد برای وظایف مختلفی از جمله ماژولی برای حذف تراکنشهای از حافظه و ماژول دیگری برای نوشتن تراکنشها در حافظه باشد.
علاوه بر این، نرمافزار متن باز Whirlpool ، برای ایجاد سیستمی طراحی شده است که بتواند در محدودیتهای یک محیط موبایل یا همراه کار کند. بیشتر تلفنهای هوشمند منابع سختافزاری و نرمافزاری محدود دارند (در مقایسه با کامپیوترها)، پس Whirlpool برای فعالیت بهینه، حتی با این محدودیتها، بهینهسازی شده است.
این رویکرد به طراحی نرمافزار به ساخت پروتکلی مستحکم کمک کرده است که میتواند در همه شرایط به اجرا دربیاید، یعنی پروتکل در بیشتر سیستم عاملها از جمله ویندوز، لینوکس و اندروید طبق طراحی کار خود را انجام میدهد.
بنیاد مستحکم ریاضی
تیم سامورایی در ادامه میگوید که یکی دیگر از ویژگیهای طراحی Whirlpool قابلیت استفاده از آن است. Whirlpool بدین منظور بر مخارج تمرکز دارد و اطمینان داده است که برای اجتناب از اقداماتی که باعث از بین رفتن حریم خصوصی کاربران شود، بهترین تمهیدات را فراهم کرده است. چارچوب Whirlpool علاوه بر این یک UX یا رابط کاربری بصری نیز ارائه کرده است که بیشتر کاربران با آن راحت خواهند بود.
طبق گفته تیم توسعه، پروتکل متمرکز بر حریم خصوصی بر «بنیانهای قوی ریاضی» مبتنی است. هر چرخه Whirlpool با استفاده از تابعهای متنوع و فنون ریاضی، تصادفی بودن را به بالاترین میزان خود میرساند. علاوه بر این، چارچوب Whirlpool اطمینان داده است که کاربران هیچوقت با خودشان در یک چرخه نخواهند افتاد.
این پروتکل اجازه پیوندهای قطعی بین ورودیها و خروجیهای مربوط به آنان را نخواهد داد. با جلوگیری از شکلگیری پیوندهای قطعی، تعیین منبع اموال و محل انتقال آنان (مثلاً آدرس دریافتکننده پیوند خورده به تراکنش) عملاً ناممکن خواهد شد.
چرخههای Whirlpool به شکلی پیاده شدهاند که از قرار گرفتن سکههایی که پیشتر در چرخه قرار گرفتهاند، در چرخههای جدید پیشگیری میکنند.
استفاده از یک سرور هماهنگکننده «کور»
همانطور که پیشتر اشاره شد، چارچوب Whirlpool از سرور هماهنگکننده کور (blinded coordinator server) سامورایی برای ارسال پیام بین کلاینتها استفاده میکند. در حالی که سرور هماهنگکننده میتوانند برقراری ارتباط بین کلاینتهای مختلف را تسهیل کند، نمیتواند بداند که چه چیزی در پیامهای ارسالشده بین کاربران شبکه مخابره شده است. این یعنی سرور سامورایی توانایی خواندن محتوای پیامها را ندارد (یک ویژگی مهم برای کسانی که حریم خصوصی برایشان اولویت دارد و نمیخواهند سرور سامورایی آدرسهای ورودی و خروجی را به هم پیوند دهد).
کلاینتهای ویندوز، OSX، لینوکس و اندروید
نکته قابلتوجه این است که توسعهدهندگان کیف پول سامورایی کلاینتهای متن باز زیادی ساختهاند که دسترسی بدون محدودیتی به سرور هماهنگکننده را فراهم میکند.
در حال حاضر کلاینتی برای کاربران سیستم عاملهای ویندوز، OSX و لینوکس وجود دارد. طبق اعلام تیم سامورایی، نرمافزار تازه توسعه دادهشده شامل یک کلاینت دسکتاپ الکترون GUI است که با بیشتری سیستم عاملهای لینوکس سازگار بوده و میتواند بر سیستمهای استاندارد ویندوز و OSX اجرا شود. کاربران اندروید هم میتوانند از ویژگیهای چارچوب Whirlpool بهره ببرند.
با این حال باید اشاره کرد که نرمافزار دسکتاپ کیف پول سامورایی هنوز در نسخه آزمایشی قرار دارد و نسخه موبایل آنان نیز در حال ساخته شدن است، پس احتمال دارد هر دو نسخه از ثبات زیادی برخوردار نباشند. یک REST API برای توسعهدهندگان وجود دارد که میتواند برای راهاندازی اپلیکیشنهای بیشتر بر روی چارچوب Whirlpool به کار گرفته شود. یک کتابخانه نرمافزار جاوا و اندروید و یک CLI نیز وجود دارند که در مخزن کلاینت Whirlpool موجود هستند.