مشکل دوبار خرج کردن چیست؟
مشکل دوبار خرج کردن یک مسئله بالقوه در سیستمهای پول دیجیتال است که در آن یک توکن دیجیتال مشابه میتواند بیش از یک بار خرج شود. این مشکل خاص ارزهای دیجیتال است زیرا اطلاعات دیجیتال به راحتی قابل کپی کردن هستند.
این را به این صورت در نظر بگیرید: اگر یک فایل دیجیتال داشته باشید، میتوانید به راحتی آن را کپی و پیست کنید و نسخههای مشابه متعددی ایجاد کنید. اگر آن فایل دیجیتال نمایانگر پول باشد، ممکن است بتوانید همان فایل را به چندین نفر بفرستید و به طور مؤثر همان پول را چندین بار خرج کنید.
به عنوان مثال، تصور کنید که یک فایل دیجیتال از یک آهنگ دارید. میتوانید به راحتی این فایل را کپی کرده و به چندین نفر بفرستید. هر فردی یک نسخه از آهنگ خواهد داشت و هیچ راهی برای تشخیص اینکه کدام نسخه "اصلی" است وجود نخواهد داشت.
همین اصل برای ارزهای دیجیتال صدق میکند. اگر راهی برای پیگیری اینکه کدام توکنهای دیجیتال خرج شدهاند وجود نداشته باشد، ممکن است کسی بتواند همان توکن را چندین بار خرج کند.
چرا مشکل دوبار خرج کردن یک مشکل است؟
مشکل دوبار خرج کردن یک مانع قابل توجه در ایجاد یک سیستم پول دیجیتال قابل اعتماد است. اگر امکان خرج کردن چندباره توکنهای دیجیتال وجود داشته باشد، این اعتماد و یکپارچگی سیستم را تضعیف میکند. بازرگانان ممکن است در پذیرش ارز دیجیتال تردید کنند اگر نتوانند مطمئن شوند که پرداختی که دریافت کردهاند معتبر است و برگشت نخواهد خورد یا در جای دیگری خرج نخواهد شد.
چگونه بیتکوین مشکل دوبار خرج کردن را حل میکند؟
بیتکوین این مشکل را با ترکیبی از دفتر کل غیرمتمرکز خود، معروف به بلاکچین، و مکانیسم اجماع خود به نام اثبات کار (PoW) حل میکند.
ارزهای دیجیتال مانند بیتکوین این مشکل را با استفاده از یک دفتر کل غیرمتمرکز به نام بلاکچین حل میکنند. بلاکچین یک رکورد عمومی از تمامی تراکنشهایی است که تا به حال در شبکه انجام شدهاند. این دائماً توسط شبکهای از کامپیوترها به نام نودها بهروزرسانی و تأیید میشود.
بلاکچین: یک دفتر کل عمومی و تغییرناپذیر
بلاکچین یک دفتر کل توزیعشده و تغییرناپذیر است که تمامی تراکنشهای بیتکوین را ثبت میکند. این دفتر کل توسط شبکهای از کامپیوترها به نام نودها نگهداری میشود که هر کدام یک نسخه از کل بلاکچین را دارند. وقتی یک تراکنش جدید انجام میشود، به شبکه ارسال و توسط نودها تأیید میشود. پس از تأیید، تراکنش به یک بلاک اضافه میشود که سپس به بلاکچین اضافه میشود.
وقتی یک تراکنش بیتکوین انجام میشود، به شبکه نودها ارسال میشود. این نودها تراکنش را تأیید میکنند و مطمئن میشوند که فرستنده بیتکوینهایی که میخواهد ارسال کند را قبلاً خرج نکرده است. پس از تأیید تراکنش، به یک "بلاک" در بلاکچین اضافه میشود. هر بلاک به بلاک قبلی متصل است و یک زنجیره از بلاکها ایجاد میکند که به همین دلیل به آن "بلاکچین" میگویند.
بلاکچین به طور مداوم با اضافه شدن بلاکهای جدید بهروزرسانی میشود. هر بار که یک بلاک جدید اضافه میشود، توسط تمامی نودهای شبکه تأیید میشود. این امر تغییر در بلاکچین را بسیار دشوار میکند زیرا برای تغییر نیاز است که اکثریت قدرت محاسباتی شبکه را کنترل کنید.
تغییرناپذیری بلاکچین به این معناست که وقتی یک تراکنش ثبت شد، نمیتوان آن را تغییر داد یا معکوس کرد. این امر از دوبار خرج کردن جلوگیری میکند زیرا تغییر تاریخچه تراکنشها یا خرج کردن دوباره بیتکوینها بدون آگاهی شبکه غیرممکن است.
اثبات کار: تأمین امنیت شبکه و جلوگیری از دوبار خرج کردن
اثبات کار (PoW) مکانیسم اجماعی است که شبکه بیتکوین را تأمین امنیت میکند و از دوبار خرج کردن جلوگیری میکند. در PoW، ماینرها برای حل مشکلات ریاضی پیچیده تلاش میکنند. اولین ماینری که مسئله را حل کند، حق اضافه کردن یک بلاک جدید از تراکنشها به بلاکچین را دارد و با بیتکوینهای تازه استخراج شده پاداش میگیرد.
فرآیند PoW نیازمند قدرت محاسباتی و انرژی زیادی است که کنترل اکثریت توان محاسباتی شبکه را برای یک موجودیت واحد بسیار دشوار و پرهزینه میکند. این غیرمتمرکز بودن باعث میشود که تقریباً غیرممکن باشد که یک مهاجم بتواند با ایجاد یک نسخه متناقض از بلاکچین بیتکوینها را دوبار خرج کند.
چگونه PoW از دوبار خرج کردن جلوگیری میکند
بیایید تصور کنیم که یک مهاجم سعی میکند بیتکوینها را دوبار خرج کند با ارسال همان سکهها به دو گیرنده مختلف. مهاجم باید دو تراکنش جداگانه ایجاد کند که هر کدام همان بیتکوینها را خرج میکنند. این تراکنشها به شبکه ارسال میشوند و به ممپول که یک مجموعه از تراکنشهای تأیید نشده است، اضافه میشوند.
با این حال، تنها یکی از این تراکنشها میتواند در یک بلاک گنجانده و به بلاکچین اضافه شود. تراکنش دیگر توسط شبکه رد خواهد شد زیرا به عنوان یک تلاش برای دوبار خرج کردن در نظر گرفته میشود.
مکانیسم PoW تضمین میکند که تراکنشی که بیشترین کار را پشت سر خود دارد (یعنی تراکنشی که در بلندترین زنجیره بلاکها گنجانده شده است) به عنوان تراکنش معتبر در نظر گرفته میشود. این از موفقیتآمیز بودن دوبار خرج کردن بیتکوینها جلوگیری میکند.
چگونه بلاکچین از دوبار خرج کردن جلوگیری میکند؟
بلاکچین با سخت کردن تغییر تاریخچه تراکنشها از دوبار خرج کردن جلوگیری میکند. وقتی یک تراکنش به بلاکچین اضافه میشود، تغییر یا معکوس کردن آن بسیار دشوار است. این به این دلیل است که هر بلاک به بلاک قبلی متصل است و هر گونه تغییری در یک بلاک مستلزم تغییر تمامی بلاکهای بعد از آن است.
در مثال بالا، وقتی آلیس 1 بیتکوین به باب میفرستد، تراکنش به شبکه بیتکوین ارسال میشود. نودهای شبکه تراکنش را تأیید میکنند و مطمئن میشوند که آلیس بیتکوین را قبلاً خرج نکرده است. پس از تأیید تراکنش، به یک بلاک در بلاکچین اضافه میشود.
اگر آلیس سپس سعی کند همان 1 بیتکوین را به کارول بفرستد، نودهای شبکه خواهند دید که بیتکوین قبلاً خرج شده است. آنها تراکنش را رد خواهند کرد و کارول بیتکوین را دریافت نخواهد کرد.
تأییدیهها: افزودن لایههای امنیتی
وقتی یک تراکنش بیتکوین در یک بلاک گنجانده و به بلاکچین اضافه میشود، یک تأییدیه دریافت میکند. هر بلاک جدیدی که به بلاکچین اضافه میشود، یک تأییدیه دیگر به تراکنش اضافه میکند. هر چه تعداد تأییدیههای یک تراکنش بیشتر باشد، امنتر است زیرا معکوس یا تغییر آن سختتر میشود.
بیشتر کیفپولها و صرافیهای بیتکوین نیاز به تعداد خاصی از تأییدیهها دارند تا یک تراکنش را نهایی در نظر بگیرند. این به منظور اطمینان از این است که تراکنش به احتمال زیاد معکوس یا دوبار خرج نخواهد شد.
چند تأییدیه برای جلوگیری از دوبار خرج کردن لازم است؟
تعداد تأییدیههای لازم برای جلوگیری از دوبار خرج کردن بسته به ارز دیجیتال متفاوت است. برای بیتکوین، به طور کلی توصیه میشود که حداقل 6 تأییدیه برای نهایی شدن یک تراکنش صبر کنید. این به این دلیل است که بسیار سخت است که یک مهاجم بتواند برای 6 بلاک متوالی اکثریت قدرت محاسباتی شبکه بیتکوین را کنترل کند.
آیا دوبار خرج کردن هنوز ممکن است؟
در حالی که دوبار خرج کردن بیتکوین بسیار دشوار است، غیرممکن نیست. اگر یک مهاجم بتواند اکثریت قدرت محاسباتی شبکه را کنترل کند، ممکن است بتواند بیتکوین را دوبار خرج کند. این به عنوان حمله 51% شناخته میشود.
با این حال، حملات 51% بسیار گران و دشوار برای انجام هستند، به ویژه در بلاکچینهای بزرگ و با سابقه مانند بیتکوین. هزینه دستیابی و عملیات قدرت محاسباتی کافی برای اجرای یک حمله 51% موفق به احتمال زیاد بیشتر از سودهای بالقوه خواهد بود.
نتیجهگیری
مشکل دوبار خرج کردن یک چالش اساسی در ایجاد یک سیستم پول دیجیتال قابل اعتماد است. ترکیب نوآورانه بیتکوین از یک دفتر کل غیرمتمرکز (بلاکچین) و یک مکانیسم اجماع قوی (اثبات کار) این مشکل را به طور مؤثری حل میکند و یکپارچگی و امنیت شبکه را تضمین میکند. استفاده از تأییدیهها لایههای امنیتی بیشتری اضافه میکند و دوبار خرج کردن را برای تراکنشهایی با تعداد کافی تأییدیه تقریباً غیرممکن میسازد.
مشکل دوبار خرج کردن یک چالش جدی برای ارزهای دیجیتال است. با این حال، ارزهای دیجیتالی مانند بیتکوین این مشکل را با استفاده از یک دفتر کل غیرمتمرکز به نام بلاکچین به طور مؤثر حل کردهاند. بلاکچین دوبرابر خرج کردن سکهها را بسیار دشوار میکند و یکپارچگی و امنیت شبکه را تضمین میکند.
یادگیری بیشتر
برای درک بیشتر از مشکل دوبار خرج کردن و چگونه بیتکوین با آن مقابله میکند، این منابع را بررسی کنید:
با اطمینان شروع کنید و امروز پایه محکمی در بیتکوین به دست آورید.
پلتفرمهای برتر برای خرید، فروش و معامله ارزهای دیجیتال را کشف کنید.
پلتفرمهای برتر برای خرید، فروش و معامله ارزهای دیجیتال را کشف کنید.