نماد سایت وبلاگ صرافی ارزپایا

دوبار خرج کردن یا Double Spending چیست؟ + انواع حمله دابل اسپندینگ

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

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

دوبار خرج کردن (Double Spending) چیست؟

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

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

بیت کوین و دابل اسپندینگ

شبکه بلاک چینی بیت کوین، به گونه‌ای طراحی شده که در مقابل حملات دو بار خرج کردن مقاوم است. مقابله بیت کوین با دابل اسپندینگ به این صورت است که وقتی کاربران تراکنش را ایجاد می‌کنند؛ آن تراکنش تا زمان تأیید شدن توسط نودها در بلاک منتظر می‌ماند و به هیچ عنوان راهی برای عکس کردن عملیات تراکنش وجود ندارد. به عبارت دیگر، بعد از اینکه تراکنش به طور کامل در بلاک چین ثبت شد، دیگر امکان لغو آن را نخواهید داشت. اگر قصد سرمایه گذاری در ارز دیجیتال بیت کوین را دارید و نمیخواهید کارمزد زیادی برای خرید آن بپردازید، می‌توانید بیت کوین و ده‌ها ارز دیگر را با کارمزد تنها ۰.۰۰۲ از صرافی ارزپایا خریداری کنید. برای ثبت نام در ارزپایا، روی این لینک کلیک کنید.

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

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

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

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

حمله ۵۱ درصدی ( Attack %۵۱)

حمله ۵۱ درصدی به حمله‌ای می‌گویند که در آن یک فرد یا یک گروه، کنترل بیش از ۵۰ درصد از هش‌ریت شبکه را در اختیار خود بگیرد. این حمله به این صورت است که مهاجم می‌تواند با تغییر توالی تراکنش‌ها، یک سری تراکنش‌های غیر واقعی را در بلاک‌ها قرار داده و خودش با داشتن اکثریت قدرت شبکه، آن‌ها را تأیید کند. با اینکه این نوع حمله در بیت کوین بسیار غیر محتمل است؛ اما تاکنون در برخی شبکه‌های غیر متمرکز مبتنی بر بلاک چین، شاهد این نوع حمله بوده‌ایم. در این وضعیت، مهاجم می‌تواند وجهی مشابه را دو بار خرج کند و با دوبار خرج کردن، همه چیز را به نفع خودش تمام کند.

حمله‌ رقابتی  (Race Attack)

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

حمله فینی (Finney Attack)

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

آیا باید نگران حملات Double Spending باشیم؟

شما تا زمانی که تراکنش‌های تأیید نشده را نپذیرید، نباید نگرانی برای حملات دوبار خرج کردن داشته باشید. اکثرا صرافی‌های ارز دیجیتال و کیف پول‌ها، برای خرید ارز دیجیتال تراکنش‌هایی که تأیید نشده‌اند را با عنوان “تأیید نشده” مشخص می‌کنند. همچنین، شما هرچقدر بیشتر منتظر بمانید، امنیت تراکنش شما بیشتر خواهد بود.

زمان انتظار، بسته به مقدار تراکنش ارسال شده و بلاک چین مورد نظر، متفاوت است. به عنوان مثال؛ برای پرداخت‌های کمتر از معادل ۱۰۰۰ دلار بیت کوین، تنها وجود یک تأیید ایمن تلقی می‌شود؛ اما برای پرداخت تا سقف ۱۰۰۰۰ دلار، وجود سه تأیید ایمن‌تر خواهد بود. در شبکه بیت کوین، تقریبا هر ۱۰ دقیقه یکبار یک بلاک تأیید می‌شود. برخی از شبکه های بلاک چینی هستند که زمان تأیید بلاک کوتاه‌تری دارند که از چند ثانیه تا چند دقیقه متغیر است.

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

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

در ادامه، روش‌هایی را برای جلوگیری از حملات دوبار خرج کردن مورد بررسی قرار می‌دهیم.

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

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

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

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

جلوگیری از معاملات همزمان توسط مکانیسم‌های اجماع ایمن

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

سوالات متداول

دوبار خرج کردن چیست؟

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

معایب دابل اسپندینگ چیست؟

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

چه نوع حملاتی در زمینه دابل اسپندینگ وجود دارد؟

حمله ۵۱ درصدی، حمله رقابتی و حمله فینی را می‌توان به عنوان رایج‌ترین حملات در زمینه دوبار خرج کردن معرفی کرد.

مزایای صرافی ارزپایا در مقایسه با سایر صرافی‌های ایرانی چیست؟

سرعت بالا، امنیت بسیار بالا، کارمزد معاملاتی کمتر و برداشت ریالی و ارزی در کمترین زمان ممکن را می‌توان به عنوان مهمترین مزایای ارزپایا در مقایسه با سایر صرافی‌ها نام برد.

ثبت نام و احراز هویت در ارزپایا چقدر طول می‌کشد؟

شما می‌توانید در کمتر از ۱ ساعت، فرآیند ثبت نام و احراز هویت خود را در صرافی ارزپایا انجام دهید.

خروج از نسخه موبایل