پرداخت دوگانه ارز دیجیتال (double-spending) چیست و چگونه امنیت بلاکچین را به خطر می‌اندازد.

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

پرداخت دوگانه ارز دیجیتال (double-spending) چیست و چگونه امنیت بلاکچین را به خطر می‌اندازد.

پرداخت دوگانه ارز دیجیتال (double-spending) چیست و چگونه امنیت بلاکچین را به خطر می‌اندازد.
پرداخت دوگانه ارز دیجیتال (double-spending) چیست و چگونه امنیت بلاکچین را به خطر می‌اندازد.

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



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

رویکرد متمرکز

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

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

امضای کور چیست

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

سپس او این داده‌ها را به بانک تحویل می‌دهد، از حساب او 100 دلار کسر می‌شود. او مدارکی را امضا می‌کند که گواهی بازخرید هر یک از 5 عدد تصادفی را به قیمت 20 دلار می‌دهد. کاربر اکنون می‌تواند وجوه صادر شده توسط بانک را خرج کند. او به رستوران می‌رود، وعده غذایی خریداری می‌کند که 40 دلار برای او هزینه دارد.

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

مشکلات رویکرد متمرکز

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



رویکرد غیرمتمرکز

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

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

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

روش بلاکچین برای جلوگیری از پرداخت دوگانه ارزهای دیجیتال

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

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

یک مثال برای عملکر بلاکچین در برابر پرداخت دوگانه ارز دیجیتال

بیایید سناریوی رستوران را دوباره مرور کنیم. کاربر به رستوران برمی گردد و این بار متوجه برچسب “بیت کوین در این مکان پذیرفته می‌شود” بر روی شیشه رستوران می‌شود. او از غذایی که آخرین بار خورده لذت برده است، بنابراین دوباره آن را سفارش می‌دهد. این بار سفارشش برای او 0.005 BTC هزینه دارد.
رستوران یک آدرس عمومی به او ارائه می‌دهد که باید ارز دیجیتال را به آن بفرستد. کاربر معامله را در بلاکچین منتشر می‌کند. این کار یعنی به همه خبر می‌دهد که 0.005 BTC که قبلاً متعلق به او بوده است اکنون در اختیار رستوران قرار گرفته است. بدون پرداختن به جزئیات، هر کسی که معامله امضا شده را مشاهده کند، می‌تواند تأیید کند که وی واقعاً سکه‌ها را در اختیار داشته است. بنابراین اختیار ارسال آنها را دارد.

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



پرداخت دوگانه در بیت کوین

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

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

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

سه روش محبوب برای حملات پرداخت دوگانه ارز دیجیتال

حملات حداکثری یا 51%درصدی (attacks 51)

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

حملات ریس (Race attacks)

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

حملات فینی (Finney attacks)

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

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



افکار پایانی

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

خوشبختانه، استفاده از امضاهای کور راه حل جالبی برای طرح‌های مالی متمرکز ارائه داد. بعداً، ایجاد سازوکارهای اثبات کار و فناوری بلاکچین باعث به وجود آمدن بیت کوین به عنوان یک شکل قدرتمند از پول غیرمتمرکز شد – که به نوبه خود، الهام بخش هزاران پروژه رمز ارز دیگر بود.

5/5 (2 نظر)

درباره ی رضا باغانی

علاقمند به حوزه ارزهای دیجیتال - نویسنده و همکار بیت پارس

مطلب پیشنهادی

زنان تاثیرگذار در رمزنگاری، این 11 زن در حال آغاز کردن مرحله بعدی انقلاب بلاکچین هستند

زنان تأثیرگذار در رمزنگاری، این 11 زن در حال آغاز کردن مرحله بعدی انقلاب بلاکچین هستند

علی رغم تعداد کم، زنان تاثیرگذاری در رمزنگاری وجود دارند. در این مقاله ما 11 …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *