دو بار خرج کردن (به انگلیسی: Double Spending) یک مشکل احتمالی و بالقوه در طرح و برنامه ارز دیجیتال است که در آن هر رمز دیجیتال یا توکن (digital token) می‌تواند بیش از یکبار مصرف شود. برخلاف پول فیزیکی (اسکناس)، هر رمز دیجیتال شامل یک فایل دیجیتالی است که می‌تواند تکثیر یا جعل شود.[۱][۲] مثل پول تقلبی، دوبار خرج کردن به واسطه ایجاد مقداری جدید از کپی پول یا ارزی که قبلاً وجود نداشته به سمت تورم سوق داده می‌شود. این قضیه ارزش ارز را نسبت به دیگر واحدهای پولی یا کالاها کاهش می‌دهد و نیز اعتماد کاربر را همانند گردش و نگهداری پول کم می‌کند. تکنیک‌های بنیادی و اساسی رمزنگاری در حالی که در هر نقل و انتقال ناشناس بودن (این قضیه به امضای کور مرتبط می‌شود)، به خصوص در سیستم‌های آفلاین (این قضیه به اشتراک گذاری-مخفیانه مرتبط می‌شود) نیز حفظ می‌شود، از جمله راه‌های مقابله با مشکل دو بار خرج کردن است.

حمله‌های مربوط به مشکل دو بار خرج کردن از جمله حملات بالقوه است که علیه رمز-ارزها (ارزهای دیجیتال) صورت گرفته و طبق آمار ۵۱ درصد از این نوع حملات برای بسیاری رمز ارزها اتفاق افتاده‌است. این در حالی است که این اتفاق برای بسیاری از رمز ارزهای بزرگ همانند بیت کوین (با وجود اینکه از سال ۲۰۱۴ ظرفیتش در حال گسترش است) اتفاق نیفتاده است، این اتفاق برای یکی از فورک یا شاخه‌های ارز دیجیتال، بیت کوین گلد و پس از آن ۲۶مین رمز ارز بزرگ افتاده‌است.

جلوگیری از حملات

ویرایش

جلوگیری از حملات مربوط به مشکل دو بار خرج کردن شامل دو فرم کلی می‌شود

روش متمرکز

ویرایش

این روش معمولاً با استفاده از یک طرف سوم قابل اعتماد مرکزی که می‌تواند مشخص کند توکنی (رمز یا همان token) مصرف شده‌است یا نه، پیاده‌سازی می‌شود.[۲] به‌طور معمول این روش به فرم نقطه تکی شکست از طریق قابلیت در دسترس بودن هر دو طرف و یک نقطه نظر مورد اعتماد اشاره می‌کند.

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

ویرایش

تا سال ۲۰۰۷ تعدای رایانش توزیع‌شده برای جلوگیری از مشکل دو بار خرج کردن مطرح شده بود. رمز ارز بیت کوین راه حلی را در اوایل سال ۲۰۰۹ پیاده‌سازی کرد.[۳][۴] این روش از یک پروتکل رمزنگاری به نام اثبات کاربرای اجتناب از نیازمند بودن سیستم به طرف سوم قابل اعتماد برای اعتبار سنجی نقل و انتقالات، استفاده می‌کند. به‌جای آن، نقل و انتقالات در یک دفتر کل همگانی به نام بلاکچین یا زنجیره بلوکی ثبت می‌شوند.

هرکدام از معاملات یا نقل و انتقالات درون بلاکچین زمانی معتبر در نظر گرفته می‌شود که شامل بزرگ‌ترین مقدار کار محاسباتی می‌باشد. این قضیه باعث می‌شود هرچه شبکه بزرگتر و رشد پیدا می‌کند دو بار خرج کردن نیز سخت‌تر شوند. دیگر رمز ارزها به‌طور مشابه از این قابلیت استفاده می‌کنند. ارزهای غیرمتمرکز متکی به زنجیره بلوکی یا بلاکچین نسبت به ۵۱ درصد حملات آسیب‌پذیر هستند در صورتی که فرد مخرب بتواند دفتر کل را بازنویسی کند اگر آن‌ها به اندازه کافی از کار محاسباتی که انجام می‌شود را کنترل کند.[۳][۵][۶][۷]

منابع

ویرایش
  1. The Double Spending Problem and Cryptocurrencies. Banking & Insurance Journal. Social Science Research Network (SSRN). Accessed 24 December 2017.
  2. ۲٫۰ ۲٫۱ Mark Ryan. "Digital Cash". School of Computer Science, University of Birmingham. Retrieved 2017-05-27.
  3. ۳٫۰ ۳٫۱ Varshney, Neer (2018-05-24). "Why Proof-of-work isn't suitable for small cryptocurrencies". Hard Fork | The Next Web (به انگلیسی). Retrieved 2018-05-25.
  4. Trade Master Course of Aruzdigital (۲۰۲۱-۱۱-۲۵). «دوره ارز دیجیتال». afelacademy. دریافت‌شده در ۲۰۲۳-۰۳-۱۴.
  5. Janus Kopfstein (12 December 2013). "The Mission to Decentralize the Internet". The New Yorker. Retrieved 30 December 2014. The network’s "nodes"—users running the bitcoin software on their computers—collectively check the integrity of other nodes to ensure that no one spends the same coins twice. All transactions are published on a shared public ledger, called the "block chain"
  6. Jaap-Henk Hoepman (2008). "Distributed Double Spending Prevention". arXiv:0802.0832v1 cs.CR.
  7. Osipkov, I. ; Vasserman, E. Y. ; Hopper, N. ; Kim, Y. (2007). "Combating Double-Spending Using Cooperative P2P Systems". 27th International Conference on Distributed Computing Systems (ICDCS '07). p.  41. CiteSeerX 10.1.1.120.52. doi:10.1109/ICDCS.2007.91.