Skip to main content

در دنیای امروزی، علم و تکنولوژی با سرعت زیادی در حال پیشرفت است و صنایع زیادی سعی دارند همگام با آن پیشرفت کنند. یکی از صنایعی که افراد زیادی سعی در دیجیتالی کردن آن داشته‌اند، صنعت وجه نقد و معاملات است. در طول سالیان گذشته، پروژه‌های زیادی با هدف دیجیتالی‌کردن پول شروع به فعالیت کردند اما اغلب این پروژه‌ها با شکست مواجه شدند. دلیل اصلی شکست‌ پروژه‌های پول دیجیتال، عدم توانایی از جلوگیری دوبار خرج‌کردن بوده است. نهایتاً پروژه‌ی بیت کوین با حل این مشکل توانست رمز ارز را در دنیای کنونی راه‌اندازی کند. 
فهرست این مقاله
دوبار خرج‌کردن (Double Spend) چیست؟
دوبار خرج‌کردن یا همان دابل اسپندینگ، با توجه به اسم آن، یک پول را دومرتبه خرج‌کردن است. آیا این اتفاق ممکن است رخ دهد؟ در فضای آنلاین بله! به این مثال توجه کنید: در دنیای واقعی، زمانی که وارد یک فروشگاه می‌شوید و خریدی انجام می‌دهید، از پول نقد یا کارت اعتباری استفاده می‌کنید. زمانی که از پول نقد برای پرداخت هزینه‌ها استفاده می‌کنید، به هیچ عنوان نمی‌توانید آن پول را مجدداً خرج کنید. درصورت استفاده از کارت اعتباری برای پرداخت هزینه‌ها نیز بانک یا موسسه‌ی مالی، اطمینان یک تراکنش موفق را به فروشنده می‌دهد و پس از تأیید پرداخت، کالای موردنظر را در اختیار شما قرار می‌دهد. اما بیت کوین یک پول فیزیکی نیست و یک نفر می‌تواند با کپی‌کردن آن، مجدداً آن را خرج کند. اما چگونه؟  
چگونه بیت کوین را دوبار خرج کنیم؟
سه روش معمول برای دوبار خرج‌کردن بیت کوین عبارتند از:
حمله‌ی ۵۱درصد

یکی از روش‌های معمول دوبار خرج‌کردن بیت کوین، به‌دست‌گرفتن ۵۱درصد از قدرت هش شبکه است. زمانی که فردی بتواند با استفاده از امکانات ماینینگ، ۵۱درصد از هش شبکه‌ی رمز ارز را به دست بگیرد، قادر خواهد بود تا ترتیب تراکنش‌ها را حذف و یا اصلاح کند و رمزارز را دوباره خرج کند. با توجه به اینکه قدرت هش شبکه‌ی بیت کوین بسیار بالا است، برای به‌دست‌گرفتن این درصد از هش شبکه، قدرت سخت افزاری بسیار بالایی موردنیاز است و حتی فارم‌های ماینینگ نیز قادر به مدیریت آن نیستند. 
حمله‌ی ریس (Race attack)

زمانی که دو تراکنش متناقص با استفاده از یک دارایی به‌صورت متوالی ثبت ‌شود، تنها یکی از آن تراکنش‌ها توسط شبکه تأیید خواهد شد. در این روش، شخص متقلب دو تراکنش در شبکه ثبت می‌کند که یکی انتقال بیت کوین به حساب گیرنده و دیگری به والت خودش است اما با این تفاوت که برای تراکنش دوم، میزان کارمزد بالاتری درنظر گرفته می‌شود تا زودتر توسط ماینرهای شبکه تأیید شده و درخواست دیگر باطل شود. البته، برای اجرای این ترفند به گیرنده‌ای نیاز دارید تا تراکنش تأیید نشده را به‌‌‌‌عنوان پرداخت بپذیرد. 
حمله‌ی فینی (Finney attack)

در این روش، فرد متقلب یک تراکنش را در بلاک استخراج شده توسط سیستم استخراج خود قرار می‌دهد اما آن را به شبکه ارسال نمی‌کند. سپس رمز ارز موردنظر را در معامله‌ی دیگری خرج کرده و نتایج تراکنش استخراج شده را در شبکه منتشر می‌کند. این نوع از حملات، به همکاری یک ماینر نیاز دارد اما اجرای این ترفند، همانند ترفند ریس، به گیرنده‌ای نیاز دارد تا تراکنش تأیید نشده را به‌عنوان پراخت قبول کرده و منتظر دریافت تأیید تراکنش نباشد. 
بیت کوین چگونه مشکل دوبار خرج‌کردن را حل کرده است؟ 
بیت کوین با استفاده از یک مکانیزم تأیید تراکنش و ثبت دارایی در دفتر کل بلاک چین، مشکل دوبار خرج‌کردن را حل کرده است. این راه حل تقریباً مشابه سیستم مؤسسات مالی و معامله‌ی پول سنتی است.  برای درک ساده‌، این موضوع را با یک مثال توضیح می‌دهیم. تصور کنید که هزینه‌ی یک محصول یا خدمات را به‌وسیله‌ی بیت کوین پرداخت کرده و به حساب فروشنده ارسال می‌کنید. حال دوباره قصد دارید تا آن بیت کوین را برای فرد دیگری ارسال کنید. در این شرایط، هر دو تراکنش شما به بلاک چین ارسال شده و وارد استخرهای استخراج بلاک می‌شود. این دو تراکنش به‌ترتیب در بلاک‌های استخراج قرار می‌گیرند و در ابتدا تراکنش اول شما تأیید شده و در بلاک بعدی قرار می‌گیرد. پس از تأیید تراکنش اول و جابه‌جایی بیت کوین به حساب دیگر، تراکنش دوم شما توسط ماینرها غیرمعتبر شناخته شده و از شبکه خارج می‌شود. اگر دو تراکنش به‌صورت همزمان در بلاک چین بیت کوین ثبت شود، چه اتفاقی رخ می‌دهد؟
یکی از مکانیزم‌های تأیید تراکنش در شبکه‌ی بیت کوین، به حد نصاب رسیدن تعداد تأیید تراکنش‌ها است. به این صورت، تراکنشی که بیش‌ترین تأیید را دریافت کرده باشد، در شبکه ثبت و انجام می‌شود. تعداد تأییدهای لازم برای انجام تراکنش، شش تأیید از سوی ماینرها است. به همین خاطر، این شبکه اعلام کرده است تا گیرنده‌ها حداقل تا دریافت شش تأیید منتظر باشند تا از انجام تراکنش خود مطمئن شده و از ریسک دوبار خرج‌کردن بیت کوین جلوگیری کنند.
رویکردهای مقابله با حملات دوبار خرج‌کردن رمزارزها
۱- رویکرد متمرکز در مقابله با دوبار خرج‌کردن
متمرکز کردن ثبت و تأیید تراکنش‌های رمز ارز، خطر دوبار خرج‌کردن در معاملات بازراهای رمز ارز را کاهش می‌دهد. در این مکانیسم، با پیاده‌سازی برنامه‌ی شخص ثالث مرکزی و مورداعتماد برای تأیید تراکنش‌ها انجام می‌شود. یک مثال خوب در این مورد، سیستم پول دیجیتال دیوید چوم می‌باشد که از الگوی تراکنشات وجوه نقد الگوبرداری شده است و همانند سیستم‌های مالی بانکی، از امضاهای کور استفاده می‌کند. این الگو امکان تبادل ناشناس و همتا به همتا را برای کاربران میسّر می‌کند. 
۲- رویکرد غیرمتمرکز برای مقابله با Double Spend
بیت کوین یک ارز غیرمتمرکز است و کاربران به مرجع اعتبارسنجی تراکنشات دسترسی ندارند. به همین خاطر، شبکه‌ی بیت کوین از مکانیسم‌های جمعی برای حل این مشکل استفاده می‌کند تا تراکنش‌های انجام شده را تأیید کند. این مکانیسم اجماع که با عنوان اثبات کار شناخته می‌شود، هر گره شرکت کننده در تراکنش را تأیید می‌کند.
سخن پایانی
در این مقاله با دوبار خرج‌کردن بیت کوین یا Double Spend آشنا شدید. همچنین انواع روش‌های خرج‌کردن دوباره‌ی رمز ارز و رویکرد بلاک چین بیت کوین را در مقابله با این خدمات به شما توضیح دادیم. با توجه به مقاله، شبکه‌ی بیت کوین از دوبار خرج شدن رمز ارز در شبکه‌ی خود جلوگیری کرده و قول یک تراکنش امن را به کاربران خود می‌دهد. به‌نظر شما با وجود این مکانیزم‌های پیشرفته، باز هم امکان Double Spend رمز ارز وجود دارد؟

توجه: با وجود اینکه دو صرافی کوینکس و کوکوین هر دو فعلا بدون نیاز به تغییر IP فعالیت می‌کنند اما بهتر است برای امنیت بیشتر از IP ثابت خارج از ایران استفاده کنید.
برای ورود به صرافی کوینکس حتما باید با IP خارج از ایران وارد شوید.

به این مقاله امتیاز دهید تا با کمک شما کیفیت آن را بسنجیم