در دنیای امروزی، علم و تکنولوژی با سرعت زیادی در حال پیشرفت است و صنایع زیادی سعی دارند همگام با آن پیشرفت کنند. یکی از صنایعی که افراد زیادی سعی در دیجیتالی کردن آن داشتهاند، صنعت وجه نقد و معاملات است. در طول سالیان گذشته، پروژههای زیادی با هدف دیجیتالیکردن پول شروع به فعالیت کردند اما اغلب این پروژهها با شکست مواجه شدند. دلیل اصلی شکست پروژههای پول دیجیتال، عدم توانایی از جلوگیری دوبار خرج کردن بوده است. نهایتاً پروژهی بیت کوین با حل این مشکل توانست ارز دیجیتال را در دنیای کنونی راهاندازی کند.
دوبار خرج کردن چیست؟ (Double Spend)
دوبار خرج کردن یا همان دابل اسپندینگ، با توجه به اسم آن، یک پول را دومرتبه خرج کردن است. آیا این اتفاق ممکن است رخ دهد؟ در فضای آنلاین بله! به این مثال توجه کنید: در دنیای واقعی، زمانی که وارد یک فروشگاه میشوید و خریدی انجام میدهید، از پول نقد یا کارت اعتباری استفاده میکنید. زمانی که از پول نقد برای پرداخت هزینهها استفاده میکنید، به هیچ عنوان نمیتوانید آن پول را مجدداً خرج کنید. درصورت استفاده از کارت اعتباری برای پرداخت هزینهها نیز بانک یا موسسهی مالی، اطمینان یک تراکنش موفق را به فروشنده میدهد و پس از تأیید پرداخت، کالای موردنظر را در اختیار شما قرار میدهد. اما بیت کوین یک پول فیزیکی نیست و یک نفر میتواند با کپیکردن آن، مجدداً آن را خرج کند. اما چگونه؟
چگونه بیت کوین را دوبار خرج کنیم؟
سه روش معمول برای دوبار خرج کردن بیت کوین عبارتند از:
حملهی 51درصد
یکی از روشهای معمول دوبار خرج کردن بیت کوین، بهدستگرفتن 51درصد از قدرت هش شبکه است. زمانی که فردی بتواند با استفاده از امکانات ماینینگ، 51درصد از هش شبکهی ارز دیجیتال را به دست بگیرد، قادر خواهد بود تا ترتیب تراکنشها را حذف و یا اصلاح کند و رمزارز را دوباره خرج کند. با توجه به اینکه قدرت هش شبکهی بیت کوین بسیار بالا است، برای بهدستگرفتن این درصد از هش شبکه، قدرت سخت افزاری بسیار بالایی موردنیاز است و حتی فارمهای ماینینگ نیز قادر به مدیریت آن نیستند.
حملهی ریس (Race attack)
زمانی که دو تراکنش متناقص با استفاده از یک دارایی بهصورت متوالی ثبت شود، تنها یکی از آن تراکنشها توسط شبکه تأیید خواهد شد. در این روش، شخص متقلب دو تراکنش در شبکه ثبت میکند که یکی انتقال بیت کوین به حساب گیرنده و دیگری به والت خودش است اما با این تفاوت که برای تراکنش دوم، میزان کارمزد بالاتری درنظر گرفته میشود تا زودتر توسط ماینرهای شبکه تأیید شده و درخواست دیگر باطل شود. البته، برای اجرای این ترفند به گیرندهای نیاز دارید تا تراکنش تأیید نشده را بهعنوان پرداخت بپذیرد.
حملهی فینی (Finney attack)
در این روش، فرد متقلب یک تراکنش را در بلاک استخراج شده توسط سیستم استخراج خود قرار میدهد اما آن را به شبکه ارسال نمیکند. سپس ارز دیجیتال موردنظر را در معاملهی دیگری خرج کرده و نتایج تراکنش استخراج شده را در شبکه منتشر میکند. این نوع از حملات، به همکاری یک ماینر نیاز دارد اما اجرای این ترفند، همانند ترفند ریس، به گیرندهای نیاز دارد تا تراکنش تأیید نشده را بهعنوان پراخت قبول کرده و منتظر دریافت تأیید تراکنش نباشد.
بیت کوین چگونه مشکل دوبار خرج کردن را حل کرده است؟
بیت کوین با استفاده از یک مکانیزم تأیید تراکنش و ثبت دارایی در دفتر کل بلاک چین، مشکل دوبار خرج کردن را حل کرده است. این راه حل تقریباً مشابه سیستم مؤسسات مالی و معاملهی پول سنتی است. برای درک ساده، این موضوع را با یک مثال توضیح میدهیم. تصور کنید که هزینهی یک محصول یا خدمات را بهوسیلهی بیت کوین پرداخت کرده و به حساب فروشنده ارسال میکنید. حال دوباره قصد دارید تا آن بیت کوین را برای فرد دیگری ارسال کنید. در این شرایط، هر دو تراکنش شما به بلاک چین ارسال شده و وارد استخرهای استخراج بلاک میشود. این دو تراکنش بهترتیب در بلاکهای استخراج قرار میگیرند و در ابتدا تراکنش اول شما تأیید شده و در بلاک بعدی قرار میگیرد. پس از تأیید تراکنش اول و جابهجایی بیت کوین به حساب دیگر، تراکنش دوم شما توسط ماینرها غیرمعتبر شناخته شده و از شبکه خارج میشود. اگر دو تراکنش بهصورت همزمان در بلاک چین بیت کوین ثبت شود، چه اتفاقی رخ میدهد؟
یکی از مکانیزمهای تأیید تراکنش در شبکهی بیت کوین، به حد نصاب رسیدن تعداد تأیید تراکنشها است. به این صورت، تراکنشی که بیشترین تأیید را دریافت کرده باشد، در شبکه ثبت و انجام میشود. تعداد تأییدهای لازم برای انجام تراکنش، شش تأیید از سوی ماینرها است. به همین خاطر، این شبکه اعلام کرده است تا گیرندهها حداقل تا دریافت شش تأیید منتظر باشند تا از انجام تراکنش خود مطمئن شده و از ریسک دوبار خرج کردن بیت کوین جلوگیری کنند.
رویکردهای مقابله با حملات دوبار خرج کردن رمزارزها
1- رویکرد متمرکز در مقابله با دوبار خرج کردن
متمرکز کردن ثبت و تأیید تراکنشهای ارز دیجیتال، خطر دوبار خرج کردن در معاملات بازراهای ارز دیجیتال را کاهش میدهد. در این مکانیسم، با پیادهسازی برنامهی شخص ثالث مرکزی و مورداعتماد برای تأیید تراکنشها انجام میشود. یک مثال خوب در این مورد، سیستم پول دیجیتال دیوید چوم میباشد که از الگوی تراکنشات وجوه نقد الگوبرداری شده است و همانند سیستمهای مالی بانکی، از امضاهای کور استفاده میکند. این الگو امکان تبادل ناشناس و همتا به همتا را برای کاربران میسّر میکند.
2- رویکرد غیرمتمرکز برای مقابله با Double Spend
بیت کوین یک ارز غیرمتمرکز است و کاربران به مرجع اعتبارسنجی تراکنشات دسترسی ندارند. به همین خاطر، شبکهی بیت کوین از مکانیسمهای جمعی برای حل این مشکل استفاده میکند تا تراکنشهای انجام شده را تأیید کند. این مکانیسم اجماع که با عنوان اثبات کار شناخته میشود، هر گره شرکت کننده در تراکنش را تأیید میکند.
سخن پایانی
در این مقاله با دوبار خرج کردن بیت کوین یا Double Spend آشنا شدید. همچنین انواع روشهای خرج کردن دوبارهی ارز دیجیتال و رویکرد بلاک چین بیت کوین را در مقابله با این خدمات به شما توضیح دادیم. با توجه به مقاله، شبکهی بیت کوین از دوبار خرج شدن ارز دیجیتال در شبکهی خود جلوگیری کرده و قول یک تراکنش امن را به کاربران خود میدهد. بهنظر شما با وجود این مکانیزمهای پیشرفته، باز هم امکان Double Spend ارز دیجیتال وجود دارد؟





























































































































