دوبار خرج کردن به سادگی فرآیند انجام دو پرداخت با ارز یا وجوه یکسان برای فریب گیرنده آن وجوه است. البته با ارز فیزیکی این مسئله واقعا امکان پذیر نیست. نمی توانید یک اسکناس 20 دلاری یا یک سکه نقره به دو نفر بدهید. در اکثر پرداخت های آنلاین، به شخص ثالث اعتماد می کنید تا مطمئن شوید وجوه به درستی ارسال و دریافت می شود. بانک ها، شرکت های کارت اعتباری و پردازنده های پرداخت، خود معاملات را تأیید می کنند و خطر دو برابر شدن هزینه ها را به حداقل می رسانند. در ارز رمزنگاری شده، هیچ واسطه یا شخص ثالثی وجود ندارد، فقط فرستنده و گیرنده. سوال این است که دارندگان رمزنگاری چگونه می توانند از خود در برابر دو برابر شدن هزینه ها محافظت کنند؟ پاسخ در بلاک چین است.
دوبار خرج کردن در ارز دیجیتال چیست؟
خطر دابل اسپندینگ (Double Spending) یا دو بار خرج کردن در ارز دیجیتال همیشه وجود داشته اما ارز دیجیتال بیت کوین این مشکل را با استفاده از بلاک چین، توانسته تا حدودی رفع کند. یکی از مشکلات مرسوم در سیستمهای پولی الکترونیکی، دو بار خرج کردن است. ارز دیجیتال بیت کوین به واسطه ویژگیهای خود از جمله استفاده از اثبات کار و فناوریهای بلاک چین، توانسته تا حد زیادی بر این مشکل غلبه کند، در حالی که ارزهای دیجیتال با قدرت شبکه پایینتر، چندین بار تاکنون از طریق حمله 51 درصدی دچار دوبار خرج کردن شده اند.
زمانی دوبار خرج کردن اتفاق می افتد که برای دو گیرنده متفاوت منبع مالی مشابهی به صورت همزمان فرستاده شود. دابل اسپندینگ را می توان پتانسیلی در سیستمهای پولی دیجیتال دانست. پروتکل های مالی بدون اقدامات و راه حلهای جدی برای مقابله با دوبار خرج کردن، تضعیف خواهد شد؛ زیرا کاربران اطمینانی بابت این که پول ارسال شده برای آنها، قبلا جای دیگری هم خرج شده یا خیر ندارند. زمانی که صحبت از ارزهای دیجیتال میشود، باید در رابطه با این که برای کپی کردن واحدهای پولی در آن شبکه روشی وجود ندارد اطمینان حاصل کرد. برای مثال در صورتی که یک کاربر بتواند 10 مرتبه از 10 واحد دارایی خود کپی بگیرد، یعنی پولش را بدون پشتوانه به 100 واحد رسانده است. این دقیقا مشابه زمانی است که یک کاربر برای چند نفر به صورت همزمان 10 واحد پول خود را ارسال و با موفقیت دابل اسپندینگ میکند. بنابراین مکانیزمی در سیستمهای مالی دیجیتال باید باشد تا مانع از ایجاد دوبار خرج کردن شود.
بیت کوین و دوبار خرج کردن
همان طور که گفته شد طراحی بیت کوین به گونه ای ست که در مقابل حملات دو بار خرج کردن مقاوم است. مقابله این رمزارز با دوبار خرج کردن به صورتی است که پس از ایجاد تراکنش توسط کاربران و تا زمان انتظار آنها برای تایید آن در یک بلاک، برای معکوس کردن عملیات هیچ راهی وجود ندارد. در واقع پس از این که یک تراکنش در بلاک چین به طور کامل ثبت شود، امکان لغو کردن آن دیگر وجود ندارد. افرادی که با ساختار بلاک چین آشنایی کامل دارند، این موضوع را میدانند که در پایگاه دادهای از این نوع، معکوس کردن یک تراکنش ثبت شده نیازمند هش ریت نجومی است. در عمل این مقدار هش ریت در اختیار هیچ فرد، سازمان و شرکتی وجود ندارد.
هدف تعداد انگشت شماری از حملات دابل اسپندینگ، طرفهای پذیرنده تراکنشهای تایید نشده می باشد. برای مثال، در مقادیر کم، ممکن است فروشنده تمایلی نداشته باشد که تا زمان قرارگیری تراکنش در یک بلاک انتظار بکشد. مثلا یک رستوران شلوغ، نمی تواند در شبکه تا زمان تایید شدن نهایی یک خرید منتظر بماند، در حالی که با پذیرش بیت کوین مجبور به انجام این کار می باشد زیرا نگران دوبار خرج کردن است.
مشاغلی که امکان پرداخت فوری از طریق ارز دیجیتال بیت کوین را فراهم کرده اند، عملا خود را در معرض خطر ریسک مواجهه با دو بار خرج کردن قرار دادهاند. مثلا در رستوران فردی می تواند پس از سفارش ساندویچ خود و پرداخت هزینه آن، سریعا آن مبلغ را دوباره به آدرس دیگری متعلق به خود بفرستد. با پرداخت کارمزد بالاتر برای تراکنش دوم، اولویت آن در صف پردازش افزایش پیدا میکند و زودتر تایید میشود. در نتیجه تراکنش اول با دابل اسپند خریدار باطل خواهد شد.
بلاک چین بیت کوین، یک دفتر کل معاملات است که توسط ماینرهایی که پاداش ماینینگ دریافت می کنند به عنوان انگیزه ای برای محافظت از بلاک چین استفاده می شود. وقتی در ابتدا یک معامله انجام می دهید، یک معامله تأیید نشده یا در حال انتظار وجود دارد که منتظر است تا در یک بلوک گنجانده شود. بلاک های جدید تقریباً هر 10 دقیقه به بلاک چین بیت کوین اضافه می شوند.
هنگامی که یک تراکنش تأیید نشده در یک بلاک گنجانده می شود، در دفتر کل بلاک چین “نوشته” می شود و اکنون یک معامله “تأیید شده” است. یک تراکنش تأیید شده به گیرنده واگذار می شود و توسط شبکه از طریق اثبات های رمزنگاری تخصصی تأیید می شود، بدین معنا که نمی توان آن را دوبار هزینه یا “کپی” کرد. برای ارسال تراکنش نیازی به اجازه کسی ندارید؛ تنها چیزی که نیاز دارید یک کیف پول ارز رمزنگاری شده و اتصال به اینترنت است.
با سرمایه بازار نزدیک به 750 میلیارد دلار در ژانویه 2021، انگیزه بزرگی برای دو برابر شدن بیت کوین وجود دارد. دوبار خرج کردن به شبکه آسیب جدی می رساند و یکی از مهمترین ویژگی های آن را حذف می کند: معاملات بی اعتماد، تغییر ناپذیر و غیرمتمرکز. بدلیل طراحی مستحکم بیت کوین، انجام دوبار معاملات تأیید شده غیرممکن است.
انواع حملات دوبار خرج کردن
اگرچه بسیاری معتقدند مشکل دوبار خرج کردن عمدتا توسط بلاک چین حل شده است اما تلاش هایی برای سوء استفاده از شبکه بیت کوین از طریق حملات سرعتی، حملات فینی و حمله 51 درصدی در بلاک چین صورت گرفته است. در یک حمله سرعتی، هکر دو تراکنش را پی در پی ارسال می کند و تنها یکی بعداً در بلاک چین تأیید می شود. هدف این است که چیزی را با تراکنش تأیید نشده خریداری کرده و سپس قبل از تأیید آن را باطل کند. این تنها در صورتی امکان پذیر است که گیرنده یا معامله گر تأیید نشده ای را بپذیرد.
فقط ماینرها می توانند حملات فینی را انجام دهند. ماینر یک معامله را در یک بلوک از یک کیف پول به کیف دیگر از پیش استخراج می کند. سپس آنها از اولین کیف پول برای انجام معامله دوم استفاده می کنند و بلاک از پیش استخراج شده را که شامل اولین تراکنش است، پخش می کنند. این کار نیاز به یک ترتیب بسیار خاص برای کار دارد. مشابه حمله سرعتی، حمله فینی تنها در صورتی امکان پذیر است که گیرنده یک تراکنش تأیید نشده را بپذیرد.
حمله 51 درصدی زمانی رخ می دهد که یک گروه یا فردی بیش از 50 درصد از قدرت هش شبکه را برای کنترل بلاک چین استفاده کنند. با این کاربری، هکرها می توانند حمله دوبار خرج کردن را انجام دهند اما به دلیل نرخ هش بسیار زیاد بیت کوین، این سناریو در پروتکل بیت کوین بسیار نامحتمل است.
در حالی که بیت کوین بیشتر در برابر این حملات مصون بوده است، سایر ارزهای رمزنگاری شده با قدرت هش ریت، کمتر از طریق 51 درصد حملات دو برابر هزینه شده اند. از آنجا که 51 درصد حملات بسیار گران قیمت هستند، عمدتا مبادلات بزرگ با دارایی های قابل توجه را هدف قرار داده اند. مهاجمان برای به دست آوردن سود باید بیش از دو برابر هزینه حمله دوبار خرج کنند.
آیا باید نگران حملات دو بار خرج کردن بود؟
تا زمانی که تراکنش های تأیید نشده را نپذیرید، نباید نگران حملات دوبار خرج کردن باشید. اکثر کیف پول ها و صرافی ها معاملاتی را که تأیید نشده اند به عنوان “تأیید نشده” برچسب گذاری می کنند. علاوه بر این، هرچه بیشتر منتظر بمانید، امنیت تراکنش بیشتر است. نوشتن بیش از چند بلوک در بلاک چین بیت کوین در جلوی بلاک با تراکنش شما، احتمال برگشت را بسیار ناچیز می کند.
زمان انتظار توصیه شده وابسته به مقدار تراکنش ارسال شده و بلاک چین دارد. برای پرداخت های کمتر از 1000 دلار بیت کوین، یک تأیید به طور گسترده ایمن تلقی می شود. برای پرداخت تا سقف 10،000 دلار، سه تأیید مطمئن تر است. بسیاری شش تراکنش را برای معاملات بسیار بزرگ توصیه می کنند. در شبکه بیت کوین تقریباً هر 10 دقیقه یکبار برای هر بلاک تأیید می شود. برخی از شبکه های بلاک چین زمان تأیید بلاک بسیار کوتاه تری دارند که از ثانیه تا چند دقیقه متغیر است.
حملات دو بار خرج کردن در بلاک چین مورد مطالعات و بحث گسترده قرار گرفته است. تا زمانی که تراکنش های تأیید نشده را نمی پذیرید، می توانید پرداخت های بیت کوین را با اطمینان از احتمال حمله دوبار خرج کردن را بسیار ناچیز بدانید.
چگونه می توان از حمله دوبار خرج کردن جلوگیری کرد؟
جلوگیری از هزینه مضاعف شامل یک فرآیند تایید شدیدتر است و تضمین می کند که ورودی یکسان در چندین تراکنش به اشتراک گذاشته نشود. در حال حاضر دو راه اصلی برای مقابله با دوبار خرج کردن وجود دارد.
رویکرد متمرکز در مقابله با حمله دوبار خرج کردن
متمرکز کردن می تواند به صورت بالقوه خطر ذاتی دوبار خرج کردن در معاملات ارز دیجیتال را کاهش دهد. این امر با پیاده سازی شخص ثالث مرکزی و مورد اعتماد برای تایید تراکنش ها انجام می شود. نهاد اضافه شده عملکردی معادل تسویه حساب طرف مقابل را انجام می دهد. به عنوان مثال زمانی که پولی را برای فرد دیگری می فرستید، معامله از طریق مرجع قابل اطمینان انجام می شود که دفترچه خود را بررسی می کند تا اطمینان یابد که ارسال کننده پول دریافت خواهد کرد. در صورتی که همه چیز درست باشد، مرجع مرکزی اجازه معامله را صادر کرده و پول را انتقال می دهد.
رویکرد غیرمتمرکز در مقابله با حمله دوبار خرج کردن
زمانی که یک رمزارز غیرمتمرکز مانند بیت کوین داشته باشید، هیچ گونه مرجع اعتبارسنجی برای معاملات خود ندارید، پس برای حل مشکل حمله دوبار خرج کردن ارز دیجیتال بیت کوین بایستی از ترکیب عناصر استفاده کرد. به صورت کلی شبکه بلاک چین از مکانیسم های جمعی برای حل این مشکل استفاده می کند تا بتواند تراکنش ها را با اطمینان تایید کند. مکانیسم های اجماع، به عنوان اثبات کار شناخته می شود. به طور عملی، مکانیسم اطمینان می دهد که هر گره شرکت کننده تراکنش را تایید می کند. پس بیت کوین یک دفتر عمومی دارد که از طریق بلاک چین تسهیل می کند.
جلوگیری از معاملات جعلی
مدیریت ارز دیجیتال بیت کوین یا همان بلاک چین برای همه عموم قابل مشاهده است. به گونه ای که هر گونه معامله بیت کوین و هر موجودی از هر آدرس می تواند توسط هر کسی قابل مشاهده باشد. بنابراین هر فردی که انتقال بیت کوین را انجام دهد، هر کامپیوتری که دارای نسخه ای از بلاک چین باشد، می تواند تاریخچه معاملات بیت کوین را تایید کند تا این اطمینان ایجاد شود که فرد آن بیت کوین را در کیف پول خود دارد.
جلوگیری از معاملات همزمان
به منظور تصمیم گیری در مورد معاملات بیت کوین، از مکانیسم اجماع اثبات کار استفاده می کند. این مکانیسم از قوانینی استفاده می کند که نشان می دهد در آن تمامی معاملات بیت کوین بروزرسانی می شود. این کار از اهمیت بالایی برخوردار است چرا که به دلیل نبود دفتر مرکزی باید اجماع داشته باشید. تمامی فرآیند بروزرسانی دفترچه معاملات به استخراج بیت کوین معروف است.
نتیجه گیری:
دوبار خرج کردن مسئله ای است که در زمان پرداخت ارزهای دیجیتال باید به آن توجه شود. البته بیت کوین از طریق روش های مختلفی همچون بلاک چین و اثبات کار تا حد زیادی موفق به غلبه بر این مشکل شده است و توانسته است به نوبه خود الهام بخش هزاران پروژه ارزهای دیجیتال دیگر باشد.