حمله دوباره خرج کردن یا دابل اسپند (Double-Spend) یکی از انواع روشهای کلاهبرداری در ارزهای دیجیتال است که تنها به دنیای رمزارزها اختصاص دارد و به موقعیتی اشاره دارد که یک واحد یکسان از داراییهای دیجیتال بیش از یک بار خرج میشوند. این امر به خاطر سهولت در تکثیر فایلهای دیجیتال است که این نگرانی را در دنیای دیجیتال به امری طبیعی تبدیل کرده است
البته منظور از تکثیر و کپی کردن، آن مفهومی نیست که شما به آن فکر میکنید، زیرا کپی کردن ارزهای دیجیتال امکانپذیر نیست، اما ساز و کارها و انواع خاصی از حملات هک وجود دارد که به واسطه آن، هکرها میتوانند تراکنشهای رمزنگاریشده ارزهای دیجیتال را «معکوس» کرده و یک کوین را دو بار خرج کنند یا پیش از آن که یک تراکنش تأیید و نهایی شود، «برای شخص دیگری ارسال کنند». این مشکل یکی از بزرگترین مشکلات دنیای ارزهای دیجیتال محسوب میشود.
در ادامه این نوشتار با ما همراه باشید تا ضمن آشنایی کامل با حملات دابل اسپند، انواع این نوع از حمله را با یکدیگر بررسی کنیم.
آشنایی با حمله دابل اسپند
حمله دابل اسپند یا دوباره خرج کردن، به فرآیندی گفته میشود که به واسطه یک رمزارز، دو پرداخت صورت میگیرد. دلیل این رویداد هم عدم وجود یک نهاد ناظر است، زیرا در پرداختها آنلاین انجام شده با کارتهای بانکی، شما به پشتوانه بانک یا نهاد نظارتی دیگر، از کارتهای اعتباری خود استفاده میکنید، اما در حوزه ارزهای دیجیتال سازمان یا نهاد متمرکزی برای نظارت روی تراکنشها وجود ندارد و همین امر موجب میشود تا افراد سودجو، از فرصت به دست آمده استفاده کنند.
البته این قضیه تا زمانی که هنوز فناوری بلاکچین ابداع نشده بود، صدق میکرد. با پیدایش فناوری بلاکچین و نظارت آن بر تراکنشهای ارزهای دیجیتال، این مشکلات تا حدود زیادی مرتفع شده است، چراکه بلاکچین به صورت غیرمتمرکز تراکنشها را سازماندهی میکند.
شاید برایتان جالب باشد که بدانید ارزهای دیجیتال، پیش از بیتکوین وجود داشتهاند. در واقع پیش از بیتکوین تلاشهای زیادی برای ابداع ارزهای دیجیتال انجام شد که با شکست مواجه شد.
یکی از مهمترین دلایل شکست در اختراع ارزهای دیجیتال، عدم توانایی در مقابل حمله دابل اسپند بود.
بیتکوین تا حدودی توانست با استفاده از فناوری بلاکچین که مکانیزمی مبتنی بر گزارشات معاملاتی دارد و برای تأیید صحت هر تراکنش و جلوگیری از شمارش دو برابر مورد استفاده قرار میگیرد، این مشکل را حل کند.
از سال 2009 تاکنون، تمامی تراکنشهای بیتکوین به واسطه فناوری بلاکچین ثبت شده اما احتمال رخداد این حملات به صفر نرسیده و هنوز هم در بلاکچین بیتکوین و سایر ارزهای دیجیتال ممکن است روی دهد.
انواع حمله دابل اسپند
همانطور که گفته شده حمله دابل اسپند به معنای خرج بیش از یک بار ارز دیجیتال با استفاده از کلاهبرداری است. همه ما میدانیم که عکس، موسیقی و فیلمهای دیجیتال به راحتی قابل کپی کردن و سرقتاند اما کپی کردن ارزهای دیجیتال به خاطر طراحی هوشمندانهای که دارند، امکانپذیر نیست.
اما نوع خاصی از حملات وجود دارند که هکرها به واسطه آن تراکنشهای ارزهای دیجیتال را معکوس میکنند. اگرچه بسیاری از افراد معتقدند با وجود فناوری بلاکچین این مشکل مرتف شده اما همچنان تلاشهایی برای سوء استفاده از پروتکل بیتکوین صورت میگیرد.
برخی از این حملات عبارتند از:
- حمله رقابتی (Race attack)
- حمله فینی (Finney attacks)
- حمله 51 درصدی (A 51% attack)
حملات رقابتی و فینی، خود زیرمجموعه حمله گستردهتری به نام «حمله تراکنش تأیید نشده» هستند. چنانچه شما در آدرس کیف پول خود یک تراکنش تأیید نشده (Unconfirmed Transaction) را مورد پذیرش قرار دهید، در برابر این دو نوع حمله آسیبپذیر خواهید بود.
برای درک بهتر موضوع، هر یک از این حملات را به صورت جداگانه مورد بررسی قرار میدهیم.
حمله رقابتی
حمله رقابتی به معنای رقابت بین دو تراکنش است. به عبارتی در این نوع حمله، هکر دو تراکنش را به صورت پیاپی و تقریباً در زمان یکسان منتشر میکند. این دو تراکنش با دو آدرس متفاوت انجام میشود.
تراکنش اول مربوط به آدرس کیف پول مخاطب و تراکنش دوم مربوط به آدرس کیف پول هکر است. حال پیش از آن که اولین تراکنش بر روی بلاکچین ثبت شود، از طریق RBF (جایگزینی یک تراکنش با تراکنش کارمزد بالاتر) تراکنش دوم را با اولین تراکنش جایگزین کرده و ارزهای دیجیتال را به سرعت به آدرس کیف پول خود بازمیگرداند. به همین ترتیب یک حمله رقابتی توسط هکر انجام میشود.
به منظور جلوگیری از سوء استفاده هکرها و ممانعت از این نوع حملات، از پذیرش تراکنشهای تأیید نشده خودداری کنید.
در دسامبر سال 2019 میلادی، ویدئویی از فروشگاههایی منتشر شد که نشان میداد بیتکوین به عنوان ابزار پرداخت مورد پذیرش قرار گرفته و امکان خرج دوباره آنها وجود دارد. این ویدیو موجب شد تا سر و صدای زیادی به راه افتد.
در واقع این کار در برخی از کیف پولهای بیتکوین، با استفاده از ویژگی جایگزینی کارمزد (RBF: Replace-By-Fee) انجام میشد. این قابلیت، یکی از ویژگیهای بسیار جنجالی است که در پروتکل بیتکوین اعمال شده و مورد استفاده قرار میگیرد.
در حمله دابل اسپند نمایش داده شده در ویدئوی فروشگاه، ابتدا یک تراکنش به آدرس فروشنده ارسال میشد و بلافاصله تراکنشی با کارمزد بیشتر به آدرس فرستنده ارسال میشد. با توجه به اینکه کارمزد تراکنش دوم بیشتر بود، این تراکنش برای ماینرهای شبکه، در اولویت قرار میگرفت و موجب لغو تراکنش اول میشد.
بدین ترتیب امکان خرج دوباره بیتکوین فراهم میشد. علت این امر هم پذیرش تراکنشهای تأیید نشده توسط فروشندگان بود.
در یک اتفاق مشابه دیگر، در اوایل سال 2019 میلادی، برخی از دارندگان بیتکوین در کانادا بدون این که آنها را خرج کنند، موفق به نقد بیتکوینهای خود شدند. بدین گونه که ابتدا بیتکوینها را به دستگاه خودپرداز بیتکوین ارسال کرده و پس از دریافت پول نقد از خودپرداز بیتکوین، این تراکنش را که هنوز در شبکه مورد تأیید قرار نگرفته بود، لغو میکردند. اگرچه این کار به واسطه باگهای موجود در دستگاههای خودپرداز صورت میگرفت اما این نتیجه را در پی داشت که تمامی تراکنشهای ارسال شده در شبکه بیتکوین، قطعی نبود و گاهی ممکن است به دلایل مشخصی لغو شود.
از آنجایی که ارزهای دیجیتال مانند بیتکوین از فناوری بلاکچین استفاده میکنند، تراکنشهای انجام شده برای نهایی شدن میبایست مورد اعتبارسنجی و تأیید نودهای شبکه قرار گیرند. در نتیجه از پذیرش هرگونه تراکنش تأیید نشده، خودداری کنید.
همانگونه که در سیستم بانکی پس از انتقال وجه به رسید ارسالی از سوی فرد انتقالدهنده اطمینان نمیکنید و منتظر پیامک واریز از سوی بانک میمانید، در دنیای ارزهای دیجیتال نیز نباید به رسید اولیه اطمینان کنید، بلکه میبایست منتظر دریافت شناسه تراکنش (TXID) در کیف پول خود بمانید تا از نهایی شدن تراکنش مطمئن شوید. وقتی تراکنش در شبکه بلاکچین تأیید شود، شناسه تراکنش در کیف پول شما نمایش داده میشود.
میتوانید شناسه تراکنش را در اکسپلورهای بلاکچین مانند Blockchair.com جستوجو کرده و وضعیت آنها را بررسی کنید. در صورتی که تراکنشهای بیتکوینی شما دارای مبالغ بالایی است، پیشنهاد میکنیم حداقل منتظر 6 تأیید بمانید و اگر تعداد تأییدها کمتر بود، آن را نهایی تلقی نکنید.
حمله فینی
حمله فینی برخلاف حمله رقابتی، حملهای فنی و دشوار محسوب میشود که فقط ماینرها قابلیت انجام آن را دارند. در این نوع حمله ماینر تراکنشی را که در یک بلاک از کیف پولی به کیف پول انجام میشود، از پیش استخراج میکند.
پس از انجام این کار، از کیف پولی اول برای انجام تراکنش دوم بهره میگیرد و بلاک از پیش استخراج شده را که شامل تراکنش اول است، درون شکه منتشر میکند. بدین ترتیب حمله دابل اسپند اتفاق میافتد. با توجه به اینکه این حمله نیازمند یک ترتیب خاص است؛ همانند حمله رقابتی تنها در صورتی امکانپذیر است که فرد به پذیرش یک تراکنش تأیید نشده بپردازد.
تاکنون هیچ مدرکی برای اثبات روی دادن این نوع حمله پیدا نشده. نام این حمله از روی اسم کاشف آن هال فینی (Hal Finney) برداشته شده است که برای اولین بار در تاریخ، بیتکوینها را از شخصی به نام ساتوشی ناکاموتو (Satoshi Nakamoto) دریافت کرد.
حمله 51 درصدی
یکی از نگران کنندهترین حملات دابل اسپند از دیدگاه بسیاری از فعالان عرصه ارزهای دیجیتال، حمله 51 درصدی است. چنانچه گروهی موفق شوند بیش از 50 درصد قدرت هش یا شناسه تراکنش را به دست بگیرند و کنترل کنند؛ در مدت زمان در اختیار داشتن این قدرت میتوانند بلاکچین بیتکوین را به طور دلخواه سازماندهی کنند. در صورت سازماندهی مجدد بلاکچین، قادرند هر مقدار از بیتکوین را که میخواهند دوباره خرج کنند. البته این حمله به معنای دسترسی به کل بیتکوینهای موجود در شبکه نیست، بلکه تنها میتوانند بیتکوینهای خرج شده را دوباره خرج کنند.
همچون حمله فینی، تاکنون هیچ مدرکی برای اثبات روی دادن حمله 51 درصدی نیز در شبکه بیتکوین پیدا نشده است. زیرا قدرت هش (Hash Rate) در شبکه بیتکوین بسیار بالاست و هماهنگیها و هزینههای بسیار زیادی برای کنترل و به دستگیری هش لازم است که انگیزهای برای انجام این کار باقی نخواهد گذاشت.
البته نباید فراموش کرد که همین قدرت هش بسیار بالا در بیتکوین، آن را به امنترین پروتکل غیرمتمرکز در جهان تبدیل کرده است. حتی اگر شخصی صرفنظر از هماهنگیها و هزینههای بسیار بالا بخواهد به هر قیمتی به شبکه بیتکوین حمله کند و آن را با استفاده از حمله 51 درصدی از بین ببرد، قادر به انجام آن نخواهد بود؛ چراکه منابع بسیاری برای این کار لازم است. اینطور که به نظر میرسد، پس از دریافت دو تأیید اولیه توسط هر بلاک، استخراج بلاک بعدی به صرفهتر از تلاش برای حمله 51 درصدی است.
اگرچه تاکنون حمله دابل اسپند موفقیتآمیزی از نوع 51 درصدی در شبکه بیتکوین و اتریوم مشاهده نشده اما ارزهای دیجیتال دیگری مورد حمله قرار گرفتهاند که فورکهای بیتکوین و اتریوم نیز جزء آنها هستند.
در سالهای 2019 و 2020 اتریوم کلاسیک (Ethereum Classic) ، در سالهای ۲۰۱۸ و ۲۰۲۰ بیتکوین گلد (Bitcoin Gold) و در سال 2021 شبکه بیتکوین ساتوشی ویژن (BSV) مورد حمله 51 درصدی قرار گرفتند. با وجود اینکه این فورکها همانند بیتکوین و اتریوم استخراج میشوند اما به علت قدرت هش بسیار پایینتر آسیبپذیر بوده و مورد این نوع حملات قرار میگیرند.
قدرت هش پایین موجب میشود تا یک ماینر بزرگ و مخرب بتواند تنظیمات دستگاه خود را به صورت مخفیانه و ناگهانی از بیتکوین یا اتریوم تغییر دهد و به ارزهای دیجیتالی دیگر که قدرت هش پایینتری دارند، تبدیل کند و حمله خود را آغاز نماید. تعدادی از پلتفرمها برای جلوگیری از بروز چنین مشکلی، تعداد تأئیدهای مورد نیاز برای یک انجام یک تراکنش را افزایش داده تا از وقوع چنین حملاتی ممانعت کرده و اجرای آن را دشوارتر کنند.
نحوه عملکرد حمله 51 درصدی
هکرها عموماً صرافیها را مورد حمله قرار میدهند تا سودآوری بیشتری از حمله خود داشته باشند. نحوه عملکرد آنها بدین گونه است که ابتدا مقادیر بسیار زیادی ارز دیجیتال را به صرافیها ارسال کرده، سپس آنها را با ارزی دیجیتال دیگری جایگزین کرده و در نهایت ارز جدید را با آدرسی که خارج از صرافی قرار داشته و متعلق به خود هکرهاست، انتقال میدهند.
پس از اتمام این فرآیند، هکرها دوباره بلاکچین را سازماندهی (reOrg) کرده و بلاک مربوط به اولین تراکنش که اکنون به یک به بلاک یتیم (Orphan) تبدیل شده را پاک میکنند. به عبارتی با انجام این کار نه تنها ارزهای دیجیتالی که از ابتدا به صرافی فرستاده بودند در کیف پولشان باقی میماند، بلکه به این شیوه ارزهای جدید را هم دریافت کردهاند. به همین دلیل توصیه میشود برای در امان ماندن از این حملات، همواره از صرافیهای معتبر استفاده کنید و هرگز تراکنشهایی را که تأیید نشدهاند، پذیرش نکنید.
حمله 51 درصد یکی از روشهایی است که هکرها در حمله دوباره خرج کردن استفاده میکنند.
حملات دابل اسپند شاید هیچگاه از بین نروند اما هر حمله موجب افزایش مقاومت شبکه در برابر حملات این چنینی خواهد شد. به همین دلیل است که بارها تأکید شده؛ تا زمانی که مبلغ را در کیف پول خود دریافت نکردهاید، هیچ تراکنشی را نپذیرید و بنابر گفته کارشناسان فقط با ارزهای دیجیتالی کار کنید که هشریت بالاتری دارند و قدرت شبکه در آنها غیرمترکز و توزیع شده است.
برخی از کارشناسان نیز معتقدند تا زمانی که میزان سرمایه شما در حد میلیون دلار نیست یا به عبارتی حجم سرمایهتان زیاد نیست، میتوانید از هر نوع ارز دیجیتالی که مد نظرتان است استفاده کنید زیرا این حملات فقط مختص آدرسها و صرافیهای بزرگ است.
بارها و بارها به این نوشتار اشاره شده که صرافی محل مناسبی برای ذخیره دارایها نیست و فقط برای مبادله ارز مناسب است. اما اگر باز هم اصرار دارید که داراییهای خود را در صرافی ذخیره کنید، ابتدا از مورد اعتماد بودن صرافی اطمینان حاصل کنید و چه بهتر که صرافی در برابر خسارتهای این چنینی بیمه شده باشد.
به یاد داشته باشید که بیشتر صرافیها و کیف پولها معاملات تأیید نشده را با عنوان «تأیید نشده» برچسبگذاری میکنند و تا زمانی که شما تراکنشهای تأیید نشده را نپذیرید، میتوانید با خیال راحت و اطمینان پرداختهای بیتکوین را بپذیرید.
گفتار پایانی!
در این نوشتار با حمله دابل اسپند و انواع آن آشنا شده و دانستیم که این حمله یکی از خطرناکترین حملات موجود در عرصه ارزهای دیجیتال است.
حمله دابل اسپند نه تنها به معاملهگران و تاجران زیادی آسیب رسانده بلکه سرمایهگذاران زیادی نیز از این حملات در امام نبوده و متضرر شدهاند. این امر موجب آسیب رسیدن به اعتبار شبکه نیز شده است.
اگرچه در تمامی عرصهها فعالان از وجود کلاهبرداران رنج میبرند، فعالان حوزه ارزهای دیجیتالی نیز با دقت کافی داشته و از پذیرش تراکنشهای تأیید نشده خودداری کنند تا هدف این حملات قرار نگرفته و در امان باشند.