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