حریم شخصی در بلاکچین – 3
12 مهر, 1398 0

در روش مخلوط و مخفی کردن تراکنش به روش Mixing ، سروری که عهده دار این کار بود توانایی دزدیدن بیت­کوین­های افراد را داشت و می­توانست پس از پنهان­سازی نیز تراکنش­های افراد را رهگیری کند.

 در روش Coin Join ، سرور دیگر قادر به دزدیدن بیت­کوین­های افراد نبود ولی امکان رهگیری تراکنش­های افراد پس از پنهان­سازی را داشت.

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

در این روش از متدهای رمزنگاری برای رسیدن به این مهم استفاده شده است، لذا پیش از بیان روش به بیان چند ویژگی رمزنگاری مربوط به امضای دیجیتال می­پردازیم.

امضای دیجیتال: امضای معمولی (جوهر روی کاغذ) چندین ویژگی را داراست که امضای دیجیتال نیز برای کاربردی بودن باید آن ویژگی­ها را دارا باشد.

ویژگی اول این است که تنها زننده­ی امضا می­تواند امضا را بزند و برای دیگران بسیار سخت است که آن امضا را بزنند، ویژگی دوم این است که با دیدن امضا، افراد دیگر متوجه می­شوند که سند، نوشته و هر چیز امضا شده­ی دیگر، از طرف دارنده­ی امضا می­باشد. بنابراین امضای دیجیتال نیز باید این ویژگی­ها را داشته باشد.

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

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

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

یکی دیگر از کاربردهای کلید خصوصی و عمومی زمانی است که می­­خواهیم پیامی را به صورت رمز شده به شخصی دیگر ارسال کنیم و مطمئن باشیم که تنها او امکان خواندن پیام را دارد و دیگران نمی­توانند پیام را باز کنند. دی این سناریو نیاز است که کلید عمومی شخصی که می­خواهیم برای او پیام رمز شده ارسال کنیم را داشته باشیم، پیام را با کلید عمومی او رمز کنیم و مطمئن باشیم که تنها دارنده­ی کلید خصوصیِ زوج آن کلید عمومی امکان باز کردن پیام را خواهد داشت.

حال با دانش نسبت به ویژگی­های امضای دیجیتال و زوج کلید خصوصی و عمومی به معرفی روش Coin Shuffle می­پردازیم.

Coin Shuffle : فرض می­کنیم که 3 شخص که همگی میزان استانداری بیت­کوین، مثلا 1 بیت­کوین، را در تراکنشی دارا هستند، می­خواهند این تراکنش­ها را طوری مخلوط کنند و به یکدیگر برگردانند که مشخص نباشد، هر تراکنش مربوط به چه شخصی است.

همچنین باید به یاد داشته باشیم که در این روش هیچ­کس نباید امکان فهمیدن آدرس­های جدید افراد را داشته باشد.

در این روش ترتیب و روند کار بسیار مهم است، فرض کنید که در انتهای کار بناست که چنگیز تراکنشی بسازد که از آدرس­های قبلی افراد میزان استاندارد بیت­کوین را به آدرس­های جدید آن­ها بفرستد، و پیش از چنگیز، بابک باید بخشی از فرآیند را انجام دهد و در ابتدا نیز آذر بخش آغازین فرآیند را انجام دهد. در ادامه به توضیح این روندها از ابتدا، آذر، سپس بابک و در انتها چنگیز می­پردازیم.

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

پس از آن آذر آدرسی که یک بار رمز شده را بار دیگر، این بار با کلید عمومی بابک رمز می­کند. پس آدرس به صورت دو لایه رمز شده است، لایه­ی بیرونی با کلید عمومی بابک، که تنها بابک با کلید خصوصی خود می­تواند آن را بگشاید و لایه­ی درونی با کلید عمومی چنگیز.

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

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

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

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

پس از ساخت تراکنش، چنگیز تراکنش را به بابک و آذر می­فرستد، تا تراکنش را امضا کنند. هر شخص چک می­کند که آیا آدرس جدید او جزو آدرس­هایی که به آن­ها بیت­کوین فرستاده می­شود هست یا نه. چنانچه آدرس جدید او جزو آدرس­های خروجی تراکنش بود، تراکنش را امضا می­کند و به چنگیز می­فرستد.

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

از مزایای این روش عدم امکان دزدیده شدن بیت­کوین توسط یکی از اعضای دخیل در این فرآیند و همچنین مخفی ماندن آدرس­های جدید هر شخص می­باشد.

از معایب این روش پیچیدگی نسبی آن و تعداد تعاملات بالای بین اعضای مختلف فرآیند می­باشد.

نظر بدهید