دابل اسپند (Double Spend) چیست؟ بررسی جامع حمله دوبار خرج کردن

دابل اسپند (double-spend) یا دوبار خرج کردن داراییها به حالتی گفته میشود که یک واحد یکسان از داراییهای دیجیتال، با روشهای کلاهبردارانه بیش از یک بار خرج شود. با وجود امنیت ارزهای دیجیتال، انواع خاصی از حملات هک وجود دارد که کلاهبرداران از طریق آنها میتوانند تراکنشهای ارزهای دیجیتال را معکوس کنند و یا پیش از تأیید و نهاییشدن یک تراکنش آن را به شخص دیگری ارسال کنند.
اگرچه بیت کوین با استفاده از فناوری بلاک چین (Blockchain) توانست این مشکل را تا حد زیادی برطرف کند، اما احتمال وقوع چنین حملاتی هنوز هم در ارزهای دیجیتال جدیدتر وجود دارد. در این مطلب قصد داریم بررسی کنیم که حمله دابل اسپند یا دوبار خرج کردن چیست، چه انواعی دارد و چگونه میتوان از آن جلوگیری کرد. با ما همراه باشید.
دابل اسپند چیست؟
حمله دابل اسپند (Double Spend) یا دوبار خرج کردن ارزهای دیجیتال به حالتی گفته میشود که در آن یک کوین یا توکن بیشتر از یکبار استفاده و خرج شود. با وجود امنیت بالای فناوری بلاک چین، از نظر تئوری روشهایی برای هک آن و استفاده چندباره از یک ارز دیجیتال وجود دارد که به آن دابل اسپند میگویند. حمله ۵۱ درصدی یکی از انواع معروف دابل اسپند است.

بیشتر بخوانید: بلاک چین چیست
مشکل دوبار خرج کردن داراییها یکی از بزرگترین مشکلات دنیای داراییهای دیجیتال است. شاید برایتان جالب باشد که بدانید ایده ارزهای دیجیتال پیش از بیت کوین هم وجود داشت. قبل از بیت کوین، تلاشهای ناموفقی برای ابداع ارزهای دیجیتال انجام شده بود و یکی از مهمترین دلایل ناکامی توسعهدهندگان آنها، شکست در حل مشکل دابل اسپند بود.
بیشتر بخوانید: بیت کوین چیست
درست است که از جنبه تئوری، امکان وقوع دابل اسپند وجود دارد، اما آیا این کار از نظر عملی هم ممکن است؟ آیا تابهحال چنین اتفاقی رخ داده است؟ در قسمتهای بعدی مقاله، مشکل دابل اسپند را از همه جهات بررسی و امکان وقوع آن را تشریح میکنیم.
انواع دابل اسپند
مهمترین انواع حمله دابل اسپند در دنیای ارزهای دیجیتال این موارد هستند:
- حمله رقابتی
- حمله فینی
- حمله ۵۱ درصدی
دو مورد از حملاتی که در بالا به آنها اشاره کردیم، یعنی حمله فینی (Finney attack) و حمله رقابتی (Race Attack)، هر دو زیرمجموعه حمله وسیعتری به نام «حمله تراکنش تأییدنشده» هستند. اگر یک تراکنش تأییدنشده (Unconfirmed Transaction) به آدرس کیف پول خود را بپذیرید، در برابر هر دوی این حملهها آسیبپذیر خواهید بود.
بیشتر بخوانید: تراکنش تأیید نشده چیست
در ادامه هر سه نوع حمله را بهصورت جداگانه بررسی خواهیم کرد.
حمله رقابتی
حمله رقابتی به زبان ساده، یک «رقابت» بین دو تراکنش است که تقریباً در زمان یکسان منتشر شدهاند. روش این حمله اینگونه است که یک شخص، دو تراکنش را بهصورت همزمان منتشر کند؛ بهشکلی که در تراکنش اول آدرس کیف پول مخاطب موردنظر و در تراکنش دوم، آدرس دیگر خودش را ثبت کند. سپس پیش از آنکه تراکنش اول روی بلاک چین ثبت شود، آن را با تراکنش دوم جایگزین کرده و وجوه را به آدرس خودش بازگرداند.
در دسامبر سال ۲۰۱۹، ویدیویی منتشر شد که سروصدای زیادی به پا کرد. این ویدیو فروشگاههایی را نشان میداد که بیت کوین را بهعنوان ابزار پرداخت میپذیرفتند و امکان خرج دوباره بیت کوین در آنها وجود داشت.
این کار با استفاده از ویژگی جایگزینی کارمزد (Replace-By-Fee) در برخی از کیف پولهای بیت کوین انجام میشد. جایگزینی کارمزد یا بهاختصار RBF یک ارتقای نسبتاً جنجالی است که در پروتکل بیت کوین اعمال شده است.
بیشتر بخوانید: کارمزد بیت کوین و مسئله تأیید تراکنشها؛ هر آنچه که باید بدانید

در حمله دابل اسپندی که این ویدیو نشان میداد، ابتدا یک تراکنش به فروشنده ارسال میشد و بلافاصله پس از آن، تراکنش دومی با کارمزد بیشتر و این بار به آدرس خود فرستنده ارسال میشد. با توجه به اینکه کارمزد بالاتر بهمعنای در اولویت قرارگرفتن تراکنش (برای ماینرهای شبکه) است، تراکنش اول لغو میشد و امکان خرج دوباره بیت کوین را فراهم میکرد.
در واقع علت موفقیت چنین حملاتی، این بود که فروشندگان تراکنشهای تأییدنشده را میپذیرفتند.
در اتفاقی مشابه در اوایل همان سال، برخی از دارندگان بیت کوین در کانادا توانستند بیت کوینهای خود را نقد کنند؛ بدون اینکه واقعاً آنها را خرج کنند یا از دست بدهند. به نظر میرسد که آنها بیت کوین را به دستگاههای خودپرداز بیت کوین ارسال میکردند و پس از دریافت پول نقد از خودپرداز، تراکنش موردنظر را (که هنوز در شبکه تأیید نشده بود) لغو میکردند.
البته که چنین موردی ناشی از باگ دستگاههای خودپرداز بود؛ اما بهعنوان یک نتیجهگیری کلی از چنین اتفاقاتی، در نظر داشته باشید که هر تراکنشی که در شبکه بیت کوین ارسال میشود لزوماً قطعی نیست و میتواند به دلایل مشخصی لغو شود.
میدانید که ارزهای دیجیتالی مانند بیت کوین مبتنی بر بلاک چین هستند و تراکنشهای آنها برای نهاییشدن، نیاز به اعتبارسنجی و تأیید نودهای شبکه دارند. بنابراین:
هرگز تراکنشهای تأییدنشده را نپذیرید. همان طور که اگر شخصی پولی را از طریق اینترنتبانک به شما انتقال دهد، به رسید اینترنتی او اعتماد نمیکنید و حتماً صبر میکنید تا پیامک واریز به کارت خود را دریافت کنید، در اینجا هم نباید به رسید اولیه ارسال تراکنش اعتماد کنید؛ بلکه باید صبر کنید تا رسید تراکنش (TxID) را در کیف پول خود دریافت کنید و از نهاییشدن تراکنش در بلاک چین مطمئن شوید.
وقتی که تراکنش ارسالشده به آدرس شما، در شبکه بلاک چین تأیید شود، هش یا شناسه تراکنش (TXID) در کیف پول شما نمایش داده میشود. بهترین کار این است که این شناسه را در اکسپلوررهای بلاک چین مانند blockchair.com جستجو کنید و وضعیت تأییدهای آن را بررسی کنید.
پیشنهاد میکنیم برای تراکنشهای بیت کوینی که مبالغ بالایی دارند، منتظر حداقل ۶ تأیید باشید و تراکنشهایی که تعداد تأییدهای کمتری دارند را نهایی تلقی نکنید.
همچنین بخوانید: آموزش لغو و جایگزین کردن تراکنش تایید نشده اتریوم
حمله فینی
برخلاف حملات رقابتی، حملات فینی (Finney attack) حملههای نسبتاً فنی و دشواری هستند که فقط ماینرها میتوانند آنها را انجام دهند. ماینر یک تراکنش انتقال از کیف پولی به کیف پول دیگر را در یک بلاک، از پیش استخراج میکند. سپس، از کیف پول اول برای انجام تراکنش دوم استفاده میکند و بلاک از پیش استخراجشده را که شامل تراکنش اول است، در شبکه منتشر میکند.
بیشتر بخوانید: ماینر چیست
برای درک بهتر این حمله، مراحل را در تصویر زیر دنبال کنید.

این کار به توالی بسیار خاصی نیاز دارد و البته هیچ مدرکی نیست که ثابت کند تاکنون چنین حملهای روی داده باشد. نام این نوع حمله را از روی نام کاشف آن، «هال فینی» (Hal Finney) برداشته اند. هال فینی کسی است که برای اولین بار در تاریخ، اولین بیت کوینها را از ساتوشی ناکاموتو (Satoshi Nakamoto) دریافت کرد.
همچنین بخوانید: داستان زندگی هال فینی، اولین پذیرنده بیت کوین، از زبان خود او
حمله ۵۱ درصدی
از نظر بسیاری از فعالان فضای ارزهای دیجیتال، حمله ۵۱ درصدی نگرانکنندهترین حمله دوبار خرج کردن است. اگر گروهی بتواند کنترل بیش از ۵۰ درصد از قدرت هش شبکه بیت کوین را به دست بگیرد، میتواند تا زمانی که این قدرت را در اختیار دارد، بلاک چین بیت کوین را آنگونه که دوست دارد سازماندهی کند.
اگر این گروه بلاک چین را از نو سازماندهی کند، میتواند هر مقداری از بیت کوینها را که میخواهد، دوباره خرج کند. توجه داشته باشید که حمله ۵۱ درصدی بهمعنای دسترسی به تمام بیت کوینهای شبکه نیست؛ در این حمله، فرد خرابکار فقط میتواند بیت کوینهای خرجشده خود را دوباره خرج کند.
برای آشنایی بیشتر با حمله ۵۱ درصدی پیشنهاد میکنیم مقاله حمله ۵۱ درصدی چیست وبسایت ارزدیجیتال را مطالعه کنید.

بررسی فنی احتمال وقوع حمله دابل اسپند در بلاک چین بیت کوین
تاکنون هیچ مدرکی مبنی بر بروز حمله ۵۱ درصد در شبکه بیت کوین مشاهده نشده و علت آن این است که هشریت (قدرت هش) شبکه بیت کوین بسیار بالاست؛ یعنی هزینه و هماهنگیهایی که برای بهدستگرفتن کنترل این مقدار از قدرت هش لازم است، چنان گزاف است که در نهایت هیچ انگیزه مالی برای انجام این کار باقی نمیگذارد.
قدرت هش بسیار بالای بیت کوین باعث میشود که شبکه بیت کوین با فاصله زیاد، امنترین پروتکل غیرمتمرکز جهان باشد. بر اساس محاسبات ریاضی و قوانین احتمال، این طور به نظر میرسد که پس از دو تأیید اولیهای که هر بلاک دریافت کند، استخراج بلاکهای بعدی خیلی بیشتر بهصرفه است تا تلاش برای انجام چنین حملهای.
بیشتر بخوانید: هش ریت چیست
حتی اگر شخصی هیچیک از این ملاحظات اقتصادی را در نظر نگیرد و بخواهد به هر قیمتی شبکه بیت کوین را با حمله ۵۱ درصدی از بین ببرد، بهدلیل منابع بسیار عظیمی که برای این کار نیاز است، عملاً قادر به انجام آن نخواهد بود.
آیا تاکنون حمله ۵۱ درصدی موفقیتآمیزی رخ داده است؟
اگرچه تاکنون هیچ حمله ۵۱ درصدی موفقیتآمیزی بر روی بیت کوین و اتریوم رخ نداده، اما چندین ارز دیجیتال دیگر قربانی این نوع حملات شدهاند که فورکهای بیت کوین و اتریوم جزو آنها هستند.
بیشتر بخوانید: فورک چیست
اتریوم کلاسیک (Ethereum Classic) در سالهای ۲۰۱۹ و ۲۰۲۰ هدف حمله ۵۱ درصد قرار گرفت؛ بیت کوین گلد (Bitcoin Gold) هم در سالهای ۲۰۱۸ و ۲۰۲۰ مورد حمله واقع شد. در سال ۲۰۲۱ هم بالاخره در شبکه بیت کوین ساتوشی ویژن (BSV) حمله ۵۱٪ اتفاق افتاد.
علت امکانپذیر بودن این حملات این بود که این فورکها معمولاً به همان شکل بیت کوین و اتریوم استخراج میشوند؛ اما قدرت هش شبکه آنها بسیار پایینتر است. از این رو، یک ماینر بزرگ و مخرب میتواند بهصورت ناگهانی و مخفیانه تنظیمات دستگاههای استخراج خود را از بیت کوین یا اتریوم به ارز دیجیتال دیگری که قدرت هش بسیار کمتری دارد، تغییر داده و اقدام به حمله ۵۱ درصد کند.
چنین حملهای به این علت امکانپذیر است که قدرت هش ماینر مهاجم شاید در مقایسه با شبکه بیت کوین چندان بالا نباشد، اما در مقایسه با قدرت هش دیگر شبکهها به حدی است که امکان حمله را فراهم میکند. برخی از پلتفرمها برای پیشگیری از چنین حملاتی، تعداد تأییدهای لازم برای تراکنش و معامله را افزایش دادهاند. این مسئله، اجرای حمله ۵۱ درصد را دشوارتر میکند.
نحوه کار و مقابله با حمله ۵۱ درصدی
مهاجمان برای اینکه حملاتشان سودآوری بیشتری داشته باشد، صرافیها را هدف حملات خود قرار میدهند. برای این کار، آنها ابتدا مقدار زیادی ارز دیجیتال را به صرافی میفرستند؛ سپس آن ارزها را با ارز دیجیتال دیگری مبادله کرده و ارز جدید را به آدرسی خارج از صرافی که متعلق به خودشان است، منتقل میکنند.
وقتی این فرایند تکمیل شد، آنها بلاک چین را با استفاده از این حمله دوباره سازماندهی (reOrg) میکنند و بلاک حاوی تراکنش اول خود را که حالا به یک بلاک «یتیم (Orphan)» تبدیل شده است، پاک میکنند. با این کار، هم ارزهای دیجیتالی که از ابتدا به صرافی فرستاده بودند برایشان باقی میماند و هم ارزهای جدیدی که دریافت کردهاند.
هرگز تراکنشهای تأییدنشده را قبول نکنید و همیشه از صرافیهای معتبر استفاده کنید
حملات دوبار خرج کردن شاید هرگز از میان نروند، اما هر حملهای که به شبکه بیت کوین یا سایر ارزهای دیجیتال وارد میشود، مقاومت آنها را در برابر خطرات اینچنینی بیشتر میکند.
بهطور کلی، اگر مراقب تراکنشهای دریافتی خود باشید و تا زمانی که مبالغ را در کیف پول خود دریافت نکردهاید تراکنشی را نپذیرید، میتوانید اطمینان داشته باشید که هرگز هدف حمله فینی یا رقابتی قرار نخواهید گرفت.
درباره حملات ۵۱ درصد، برخی کارشناسان میگویند برای اینکه قربانی این حملات نشوید، فقط باید با ارزهای دیجیتالی کار کنید که قدرت شبکه در آنها کاملاً غیرمتمرکز و توزیعشده است. در مورد شبکههای مبتنی بر اثبات کار، هر چقدر که هشریت شبکه بیشتر باشد، امنیت آن هم بیشتر است. در مورد شبکههای مبتنی بر اثبات سهام نیز، هر چقدر حجم بازار ارزها بیشتر باشد، امنیت آن در برابر حملات ۵۱ درصدی بیشتر خواهد بود.
بسیاری از کارشناسان هم معتقدند تا زمانی که حجم سرمایهتان بسیار بالا و در حد میلیون دلاری نیست، میتوانید از هر ارز دیجیتالی استفاده کنید؛ چراکه در این حملات فقط آدرسها و صرافیهای بزرگ هدف قرار میگیرند.
همان طور که بارها توضیح دادهایم، صرافی فقط محل مبادله ارز است و برای ذخیره داراییها مناسب نیست؛ اما اگر واقعاً قصد دارید مقدار قابلتوجهی ارز دیجیتال را در صرافی ذخیره کنید، مطمئن شوید که صرافی موردنظر قابلاعتماد است و ترجیحاً در برابر خسارتهای اینچنینی بیمه شده است.
سؤالات متداول
دابل اسپند یا حمله دو بار خرج کردن، یک چالش در فناوری بلاک چین است که به خرج کردن دوباره یک واحد ارز دیجیتال اشاره دارد.
با اینکه حمله دابل اسپند در سطح تئوری یک تهدید برای بلاک چین محسوب میشود، اما باتوجهبه امنیت بالای این فناوری، در عمل اجرای آن بهشدت دشوار و نسبتاً غیرممکن است.
حمله رقابتی، حمله فینی و حمله ۵۱ درصدی سه نمونه از بارزترین حملههای دابل اسپند هستند.
خیر. بیت کوین اولین و یکی از امنترین ارزهای دیجیتال دنیاست که تاکنون مورد حمله دو بارخرج کردن یا دابل اسپند قرار نگرفته است.
جمعبندی
در این مقاله توضیح دادیم که حمله دابل اسپند چیست و چه انواعی دارد و احتمال وقوع آن را از نظر فنی بررسی کردیم. حمله دوبار خرج کردن یک تغییر در عملکرد بلاک چین است که به مهاجم این امکان را میدهد که یک توکن را بیش از یک بار استفاده کند. این مسئله بیشتر بهعنوان یک مشکل در ارزهای دیجیتال شناخته میشود، اما ماهیت آن مربوط به فناوری بلاک چین است.
البته کاربران میتوانند از حملات دوبار خرج کردن با عدم پذیرش تراکنشهای تأییدنشده جلوگیری کنند. همچنین، این نکته را در نظر داشته باشید که شبکههای کوچک بیشتر مستعد حملات دوبار خرج کردن هستند. بنابراین اگر نگران این نوع حملات هستیم، بهتر است از ارزهای دیجیتال و بلاک چینهایی با شبکههای بزرگتر استفاده کنیم.
عالی بود