حمله دوبار خرج کردن چیست؟

1402/01/26

حمله دوبار خرج کردن یه مشکل احتمالی و بالقوه در طرح و برنامه ارز دیجیتال هست که در اون هر رمزارز دیجیتال یا توکن می تونه بیشتر از یه بار مصرف شه! بر خلاف پول فیزیکی، هر رمزارز دیجیتال شامل یک فایل دیجیتالی هست که می تونه تکثیر یا جعل شه.

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

حمله های مربوط به مشکل دوبار خرج کردن از جمله حملات بالقوه هست که علیه رمز ارزها صورت گرفته و طبق آمار 51 درصد از این نوع حملات برای بسیاری رمز ارزها اتفاق افتاده. ما سعی می کنیم در مقاله حمله دوبار خرج کردن چیست؟ اطلاعاتی در مورد حمله دوبار خرج کردن یا Double Spending به شما ارائه کنیم و به بررسی راه های جلوگیری از دوبار خرج کردن بپردازیم و انواع حملات دوبار خرج کردن رو در مباحت امنیت در ارزهای دیجیتال مورد بررسی قرار بدیم.

Double Spending (دوبار خرج کردن)

Double Spending (دوبار خرج کردن)

شاید این سوال واستون پیش اومده باشه که حمله دوبار خرج کردن چیست؟ ما می تونیم در پاسخ به این سوال بگیم که دوبارخرج کردن دارایی ها، به حالتی گفته میشه که یک واحد یکسان دارایی های دیجیتال، با روش های کلاهبردانه بیش از یک بارخرج شه.

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

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

مقاله پیشنهادی: کلاهبرداری هانی پات (Honeypot) چیست؟

انواع حمله دوبار خرج کردن

خیلی از ارزهای دیجیتال و رمزارزها وجود دارن که از الگوریتم اثبات گواه کار یا POW استفاده نمی کنن، ولی راه حل هایی رو برای مقابله با دوبار خرج کردن در نظر گرفته شده. با این وجود نمیشه امکان احتمال حمله دوبار خرج کردن رو نادیده گرفت. در ادامه انواع روش های احتمالی برای دوبار خرج کردن نوشته شده.

  • حمله 51 درصدی

انواع حمله دوبار خرج کردن

حمله 51 درصدی یعنی در اون یک فرد یا یک گروه، کنترل بیش از 50 درصد از هش ریت شبکه رو در اختیار خود بگیره. این حمله به این صورته که مهاجم می تونه با تغییر توالی تراکنش ها، یک سری تراکنش های غیر واقعی رو در بلاک ها قرار داده و خودش با داشتن اکثریت قدرت شبکه، اونارو تایید کنه. با اینکه این نوع حمله در بیت کوین بسیار غیر محتمل هست؛ ولی تا الان در بعضی از شبکه های غیرمتمرکز مبتنی بر بلاک چین، شاهد این نوع حمله بودیم. در این وضعیت، مهاجم می تونه وجهی مشابه رو دوبار خرج کنه و با دو بار خرج کردن، همه چیز رو به نفع خودش تموم کنه.

حمله 51 درصد چگونه کار می کنه؟

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

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

  • حمله رقابتی

حمله دوبار خرج کردن چیست؟

فرض کنین که دو تراکنش متناقض به طور متوالی در شبکه پخش شده و منتظر تایید هستن. هر دوی این تراکنش ها با استفاده از وجهی یکسان ایجاد شدن؛ اما در نهایت یکی از اونا تایید و در بلاک چین ثبت خواهد شد. هدف مهاجم، بی اعتبار کردن پرداخت به وسیله تایید تراکنش به نفع خودش هست. در حمله رقابتی، یک گیرنده باید پذیرای تراکنش های تایید نشده باشه.

  • حمله فینی

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

چگونه می توان از حملات دوبار خرج کردن جلوگیری کنیم؟

چگونه می توان از حملات دوبار خرج کردن جلوگیری کنیم؟

برخی از روش های مقاله با حمله دوبار خروج کردن عبارت هستن از:

  • رویکرد متمرکز در مقابله با حمله دوبار خرج کردن

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

  • رویکرد غیر متمرکز در مقابله با حمله دوبار خرج کردن

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

بیت کوین چگونه با دوبار خرج کردن مقابله کرده است؟

بیت کوین چگونه با دوبار خرج کردن مقابله کرده است؟

در بلاکچین بیت کوین برای مقابله و جلوگیری از چنین مواردی از سیستم های مالی سنتی الهام گرفته. در این شبکه از یک مکانیسم تایید با ترتیب زمانی استفاده میشه و اولین تراکنش ثبت شده در نظر گرفته میشه.

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

دومین تراکنشی که با اطلاعات مشابه به شبکه ارسال میشه، دیگه تایید نخواهد شد و ماینرها میتونن تشخیص بدن که این تراکنش با قصد دوبار خرج کردن صورت گرفته و مشابه تراکنش ثبت شده قبلی هست.

مقاله پیشنهادی: حمله خسوف Eclipse Attack چیست؟

حمله دو بار خرج کردن چگونه اتفاق می افته؟

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

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

آیا در تراکنش های بیت کوین از حمله دوبار خرج کردن در امانیم؟

آیا در تراکنش های بیت کوین از حمله دوبار خرج کردن در امانیم؟

تصور کنین که 1 بیت کوین دارین وسعی می کنین اون رو دوبار در دو تراکنش جداگانه انجام بدین. هر دوی این معاملات وارد مجموعه معاملات تایید نشده میشن. اولین تراکنش از طریق (مکانیسم تایید) تایید شده. اما تراکنش دوم در فرایند تایید معتبر شناخته نمیشه و مورد تایید قرار نمی گیره.

جمع بندی

در این مقاله به مفهوم دوبار خرج کردن در ارزهای دیجیتال پرداختیم و امکان وقوع چنین حملاتی رو در دنیای ارزهای دیجیتال بررسی کردیم. همون طور که می دونین مفهوم دو بار خرج کردن مختص ارزهای دیجیتال هست و چنین چیزی در میان ارزهای فیات با توجه به ماهیت اونا وجود نداره. با توجه به اینکه بسیاری از ارزهای دیجیتال حتی رمزارزهایی که از الگوریتم اجماع اثبات گواه استفاده نمی کنن.


نظرات کاربران در مورد حمله دوبار خرج کردن چیست؟
سوال امنیتی :2+70 = ?