Double Spending یک مسئله حیاتی در دنیای فناوری بلاکچین است. زمانی اتفاق میافتد که فردی سعی میکند یک ارز دیجیتال را دو بار خرج کند و تراکنشهای جعلی انجام دهد. بلاکچین، فناوری دفتر کل توزیع شده زیربنای ارزهای دیجیتال، رفع نیاز به واسطه ها را ممکن کرده است، اما همچنین چالش های جدیدی را برای حفظ یکپارچگی تراکنش ها ایجاد می کند. در این مقاله، مفهوم هزینه مضاعف در بلاک چین، عواقب آن و نحوه مبارزه فناوری با این موضوع را بررسی خواهیم کرد.
Double Spending در بلاکچین چیست؟
Double Spending به عمل خرج کردن یک ارز دیجیتال بیش از یک بار اشاره دارد. در نظام مالی سنتی، بانک ها و مؤسسات مالی نقش واسطه را ایفا می کنند تا از این گونه تراکنش های متقلبانه جلوگیری کنند. با این حال، در مورد شبکههای بلاکچین غیرمتمرکز، هیچ مرجع متمرکزی برای تأیید تراکنشها وجود ندارد و بنابراین، هزینه مضاعف به یک نگرانی اصلی تبدیل میشود.
برای نشان دادن، اجازه دهید فرض کنیم که کاربر آلیس ۵ بیت کوین در کیف پول خود دارد و سعی می کند ۵ بیت کوین را برای دو کاربر مختلف باب و چارلی ارسال کند. اگر آلیس در ارسال ۵ بیت کوین برای باب و چارلی موفق باشد، باید ۵ بیت کوین را دوبرابر خرج می کرد که منجر به عدم تعادل در سوابق دفتر کل می شد. این عدم تعادل می تواند منجر به از دست دادن اعتماد به شبکه بلاکچین شود و آسیب شدیدی به یکپارچگی آن وارد کند.
چگونه می توان از Double Spending جلوگیری کرد؟
رویکرد متمرکز (Centralized solution)
اجرای مسیر متمرکز نسبت به گزینه های غیرمتمرکز بسیار آسان تر است. این به طور معمول شامل یک ناظر بر مدیریت سیستم و کنترل صدور و توزیع واحدها است. یک مثال خوب از یک راه حل متمرکز برای مشکل Double Spending، مشکل David Chaum’s eCash است. برای صدور کاربران با دارایی دیجیتال که از وجوه نقد تقلید می کند (قابلیت تبادل ناشناس و نظیر به نظیر) ، یک بانک می تواند از امضاهای کور استفاده کند. همانطور که دیوید چوم ، رمزنگار در مقاله خود با عنوان “امضا کور“ برای پرداخت های غیرقابل ردیابی ، در سال ۱۹۸۲ توضیح داده است.
در چنین شرایطی ، اگر کاربری (بگذارید او را Dan بنامیم) بخواهد ۱۰۰ دلار پول نقد دیجیتال دریافت کند ، لازم است ابتدا بانک را مطلع کند. به شرط داشتن موجودی در حساب خود ، سپس یک عدد تصادفی (یا تعداد زیادی برای فرقه های کوچکتر) تولید می کند. فرض کنید او پنج عدد تولید می کند که به هر کدام ۲۰ دلار اختصاص می یابد. برای جلوگیری از ردیابی بانک توسط واحدهای خاص ، Dan اعداد تصادفی را با اضافه کردن یک عامل کور به هر یک از آنها مبهم می کند.
سپس او این داده ها را به بانک تحویل می دهد ، حساب او را ۱۰۰ دلار بدهکار می کند و پیام هایی را امضا می کند که گواهی بازخرید هر یک از ۵ اطلاعات را به $ ۲۰ می دهد. دن اکنون می تواند وجوه صادر شده توسط بانک را خرج کند. او به رستوران Xyz می رود ، وعده غذایی خریداری می کند که ۴۰ دلار برای او هزینه دارد.
Dan می تواند عامل کور کردن را حذف کند تا عدد تصادفی مرتبط با هر “قبض” پول نقد دیجیتال را نشان دهد ، که به عنوان یک شناسه منحصر به فرد برای هر واحد عمل می کند (دقیقاً مانند یک شماره سریال). او دو مورد از این موارد را برای Xyz فاش می کند ، که اکنون باید بلافاصله آنها را در بانک بازخرید کند تا مانع از خرج کردن دان با یک تاجر دیگر شود. بانک معتبر بودن امضاها را بررسی می کند و اگر همه چیز درست به نظر برسد ، ۴۰ دلار به حساب ارین اعتبار می دهد.
صورتحسابهای استفاده شده اکنون اساساً سوزانده می شوند و اگر ارین بخواهد تعادل جدید خود را به همین روش خرج کند ، باید موارد بیشتری همانند قبل صادر شود.
تنظیم Chaumian eCash ممکن است برای نقل و انتقالات خصوصی ارزشمند باشد. اما ، این در انعطاف پذیری ناکام می ماند زیرا بانک نقطه مرکزی شکست است. اسکناس صادر شده به خودی خود هیچ ارزشی ندارد ، زیرا ارزش آن صرفاً از تمایل بانک به مبادله آن با دلار حاصل می شود. سرمایه مشتریان در گرو بانک است و برای عملکرد پول باید به حسن نیت آن اعتماد کنند. این دقیقاً مشکلی است که ارز رمزنگاری شده برای رفع آن تلاش می کند.
رویکرد غیرمتمرکز (Decentralized solution)
اطمینان از اینکه نمی توان وجوه را در یک اکوسیستم بدون سرپرست صرف کرد ، چالش بیشتری دارد. شرکت کنندگان با قدرت برابر باید در حدود مجموعه ای از قوانین که از تقلب جلوگیری می کند و همه کاربران را تحریک می کند که صادقانه عمل کنند ، هماهنگ شوند. بزرگترین نوآوری ارائه شده در وایت پیپر بیت کوین راه حلی برای مشکل Double Spending بود. Satoshi اگرچه به این ترتیب مورد اشاره قرار نگرفت ، ساختار داده ای را که اکنون به طور گسترده به عنوان بلاکچین شناخته می شود ، ارائه داد.
بلاکچین در واقع فقط یک پایگاه داده با برخی از خصوصیات منحصر به فرد است. شرکت کنندگان در شبکه (که به آنها گره گفته می شود) نرم افزار تخصصی را اجرا می کنند ، که به آنها امکان می دهد نسخه خود را از پایگاه داده با همتایان خود هماهنگ کنند. نتیجه این است که کل شبکه می تواند تاریخ معاملات مربوط به بلاک پیدایش را بررسی کند. با مشاهده بلاکچین به صورت عمومی ، تشخیص و جلوگیری از فعالیت های متقلبانه ، مانند معامله هایی که سعی دارند دو برابر خرج کنند ، آسان است.
وقتی کاربر معامله ای را پخش می کند ، بلافاصله به بلاکچین اضافه نمی شود، ابتدا باید از طریق استخراج در یک بلاک گنجانده شود. به این ترتیب ، گیرنده فقط باید معامله را پس از اضافه شدن بلاک آن به زنجیره معتبر بداند. در غیر این صورت ، آنها خطر از دست دادن وجوه را دارند ، زیرا فرستنده می تواند همان کوین ها را در جای دیگر خرج کند.
پس از تأیید معامله ، نمی توان کوین ها را دو برابر کرد ، زیرا مالکیت به یک کاربر جدید اختصاص داده شده است و کل شبکه می تواند این را تأیید کند. به همین دلیل است که بسیاری توصیه می کنند قبل از پذیرش پرداخت به عنوان معتبر ، منتظر تأییدهای متعدد باشید. هر بلاک بعدی میزان تلاش مورد نیاز برای اصلاح یا بازنویسی زنجیره را به شدت افزایش می دهد (که ممکن است در طی حمله ۵۱٪ رخ دهد).
بیایید سناریوی رستوران را دوباره مرور کنیم. دن به رستوران برمی گردد و این بار برچسب پنجره Bitcoin Accepted Here را مشاهده می کند. او از غذایی که آخرین بار داشت لذت برد ، بنابراین دوباره آن را سفارش داد. برای او ۰٫۰۰۵ BTC هزینه دارد.
ارین یک آدرس عمومی به او ارائه می دهد که باید بودجه را به آن بفرستد. Dan تراکنش را پخش می کند ، که اساساً یک پیام امضا شده است مبنی بر اینکه ۰٫۰۰۵ BTC که در اختیار Dan بود اکنون در اختیار رستوران XYZ است. بدون پرداختن به جزئیات زیاد ، هر کسی که معامله امضا شده با Dan را ارائه دهد ، می تواند تأیید کند که وی واقعاً کوین ها را در اختیار داشته است ، بنابراین اختیار ارسال آنها را دارد.
همانطور که گفته شد ، معامله فقط در صورتی معتبر است که در بلاکی تأیید شود. پذیرش معاملات تأیید نشده مانند پذیرفتن ۴۰ دلار eCash از مثال قبلی ، بدون آن است که بلافاصله آن را در بانک وجه نقد کنید و این به فرستنده اجازه می دهد تا آن را در جای دیگری خرج کند. بنابراین ، توصیه می شود که رستوران XYZ قبل از پذیرش پرداخت Dan ، منتظر حداقل ۶ تأیید بلاک (تقریباً یک ساعت) باشد.
Double Spending در بیتکوین
بیت کوین به دقت طراحی شده است تا حداقل در مواقعی که پروتکل طبق انتظار استفاده می شود ، از حملات Double Spending جلوگیری کند. به این معنا که اگر افراد منتظر تأیید معاملات در یک بلاک باشند ، ارسال کننده هیچ راهی برای برگشت آن ندارد. برای این کار ، آنها باید بلاکچین را “معکوس” کنند ، که به مقدار غیر واقعی قدرت هش کردن نیاز دارد.
با این حال ، تعداد انگشت شماری از حملات دو بار خرج کردن وجود دارد که هدف آنها طرفهایی است که معاملات تأیید نشده را می پذیرند. به عنوان مثال ، برای خریدهای کم ارزش ، ممکن است یک تاجر مایل نباشد منتظر بماند تا معاملات در یک بلاک گنجانده شود. یک رستوران فست فود شلوغ احتمالاً توانایی پردازش و ایستادگی را ندارد زیرا شبکه هر خرید را پردازش می کند. بنابراین ، اگر مشاغلی پرداخت های “فوری” را امکان پذیر می کند ، آنها خود را برای Double Spending باز می کنند. ممکن است شخصی برگر سفارش دهد ، هزینه آن را پرداخت کند ، سپس بلافاصله همان وجوه را به آدرس خود بفرستد. با کارمزد بیشتر ، این معامله جدید ابتدا تأیید می شود و بنابراین معامله قبلی را باطل می کند.
Double Spending در سایر الگوریتم های اجماع
شبکه بلاکچین مسئله هزینه مضاعف را از طریق استفاده از مکانیسمهای اجماع حل میکند، که فرآیندی است که تراکنشها را قبل از افزودن آنها به بلاکچین تأیید میکند. بلاکچین از الگوریتم های اجماع مختلفی مانند اثبات کار (PoW)، اثبات سهام (PoS) و اثبات سهام واگذار شده (DPoS) استفاده می کند تا اطمینان حاصل کند که فقط تراکنش های معتبر در بلاکچین گنجانده شده است. در الگوریتم اجماع PoW، ماینرها برای حل یک پازل رمزنگاری با یکدیگر رقابت می کنند و اولین ماینری که این معما را حل می کند، بلاک تراکنش ها را به شبکه بلاکچین اضافه می کند. این فرآیند اعتبار سنجی تضمین می کند که از Double Spending جلوگیری می شود، زیرا غیرممکن است که یک ارز دیجیتال را دو بار بدون تأیید تراکنش با شبکه، دو بار خرج کنید.
در الگوریتمهای اجماع PoS و DPoS، اعتبارسنج ها بهطور تصادفی انتخاب میشوند تا تراکنشها را براساس سهمشان در شبکه تأیید کنند. اعتبارسنجیها تشویق میشوند تا یکپارچگی شبکه بلاک چین را حفظ کنند، زیرا برای تأیید تراکنشهای جعلی جریمه میشوند. استفاده از مکانیسمهای اجماع در فناوری بلاکچین تضمین میکند که تراکنشها معتبر هستند و از هزینههای مضاعف جلوگیری میشود. با این حال، شایان ذکر است که فناوری بلاکچین کاملاً در برابر هزینههای مضاعف مصون نیست و برای جلوگیری از هرگونه فعالیت متقلبانه باید هوشیار بود.
عواقب دو بار خرج کردن در بلاکچین
Double Spending می تواند عواقب شدیدی برای شبکه بلاکچین داشته باشد. می تواند منجر به از دست دادن اعتماد به شبکه و در نتیجه کاهش ارزش و شهرت آن شود. علاوه بر این، می تواند یک واکنش زنجیره ای ایجاد کند که در آن تراکنش های جعلی منجر به فعالیت های کلاهبرداری بیشتر در شبکه می شود. علاوه بر این، دو بار خرج کردن نیز می تواند منجر به از دست دادن وجه برای کاربران صادقی شود که تراکنش های تقلبی را معتبر می پذیرند. اگر تراکنش تقلبی معتبر باشد، کاربر صادق ممکن است ارز دیجیتال مورد انتظار خود را دریافت نکند و منجر به از دست دادن وجه شود.
نتیجه گیری
Double Spending یک مسئله حیاتی در دنیای فناوری بلاکچین است و برای جلوگیری از وقوع تراکنش های تقلبی ضروری است. شبکه بلاکچین این مشکل را از طریق استفاده از مکانیسمهای اجماع حل میکند که تراکنشها را قبل از افزودن آنها به بلاک چین تأیید میکند. اگرچه فناوری بلاکچین کاملاً در برابر Double Spending مصون نیست، استفاده از مکانیسم های اجماع تضمین می کند که یکپارچگی شبکه حفظ می شود و از فعالیت های تقلبی جلوگیری می شود.
دیدگاهتان را بنویسید