پرداخت مضاعف چیست؟
پرداخت مضاعف عبارت است از خرج کردن یک پول برای دوبار.
در دنیای واقعی وقتی با اشیاء فیزیکی سر و کار دارید این مسئله غیر قابل تصور است.
اگر شما یک اسکناس داشته باشید و آن را به دوستتان بدهید اسکناس دیگر در دست شما نیست.
اما در دنیای اینترنت چنین نیست.
اگر شما یک عکس در رایانه خود داشته باشید و آن را برای دوستتان بفرستید عکس هنوز در رایانه شماست.
در واقع شما یک پی برای او فرستاده اید.
پرداخت مضاعف و رمزارز ها
یکی از نگرانیهای اصلی توسعهدهندگان رمزارزها ، موضوع دوبار خرج کردن است.
این به مواردی اشاره دارد که فردی بیش از یک بار موجودی آن ارز دیجیتال را خرج میکند.
طور مؤثر بین سابقه هزینهکردن و مقدار آن ارز دیجیتال موجود و همچنین نحوه توزیع آن اختلاف ایجاد میکند.
اسکناس ها و سکه های فلزی (نقدینگی) این مشکل را ندارند.
با این حال، تراکنش با استفاده از یک ارز دیجیتال مانند بیت کوین، در محیط رایانه و اینترنت اتفاق می افتد.
و امکان کپی کردن جزئیات تراکنش و بازپخش آن به گونه ای وجود دارد که یک BTC می تواند چندین بار توسط یک مالک خرج شود.
در ادامه ، بررسی خواهیم کرد که چگونه توسعهدهندگان ارزهای دیجیتال تضمین کردهاند که هزینههای مضاعف نمیتواند اتفاق بیفتد.
مفاهیم کلیدی
پرداخت مضاعف، توانایی کاربر برای کپی کردن پول دیجیتال و خرج کردن آن به طور همزمان در دو یا چند مکان است.
مشکل «خرج دوگانه» در ارزهای رمزپایه مبتنی بر بلاک چین مانند بیت کوین با استفاده از مکانیزم اثبات کار (PoW) حل شده است.
اثبات کار توسط یک شبکه غیرمتمرکز از «ماینرها» انجام میشود.
ماینر ها نه تنها ثبات تراکنشهای گذشته را در دفتر کل بلاک چین تضمین میکنند، بلکه از خرج مضاعف نیز جلوگیری میکنند.
آشنایی با بلاک چین
بلاک چینی که زیر یک ارز دیجیتالی مانند بیت کوین قرار دارد، به تنهایی قادر به جلوگیری از پرداخت مضاعف نیست.
در عوض، تمام تراکنشهای مختلف مربوط به رمزارز مربوطه در بلاک چین ارسال میشوند، جایی که بهطور جداگانه تأیید میشوند و با یک فرآیند تأیید محافظت میشوند.
در مورد بیت کوین و بسیاری از رمزارز های دیگر، تراکنشهایی که به این روش تایید شدهاند غیرقابل برگشت میشوند.
آنها به صورت عمومی ارسال می شوند و برای همیشه حفظ می شوند.
چگونه مشکل حل شد
بیت کوین اولین ارز دیجیتال بزرگی بود که مشکل پرداخت مضاعف را بدون استفاده از سرور مرکزی حل کرد.
این کار را با اجرای این مکانیسم تأیید و حفظ یک سیستم اجماع دردفتر کل مشترک و جهانی انجام داد.
به این ترتیب، بلاک چین بیت کوین سوابقی از تراکنش های دارای مهر زمانی را حفظ می کند که به زمان تأسیس این ارز در سال 2009 باز می گردد.
در اصطلاح بیت کوین، “بلوک ها” فایلهایی از داده های ثبت شده دائمی است.
همه تراکنشهای اخیر در قالب بلوکها نوشته میشوند، مانند دفتر کل معاملات سهام در بورس.
اطلاعات بلوک ها هر چند دقیقه به دفتر کل اضافه می شود.
همه گرههای شبکه یک کپی از دفتر کل بلاک چین نگهداری میکنند.
کاربران می توانند بلاک چین را برای بیت کوین پیمایش کنند و تراکنش ها را فقط از نظر کمیت بررسی کنند.
جزئیات مربوط به هویت خریدار و فروشنده در هر تراکنش با رمزگذاری سطح بالا محافظت می شود، که همچنین دفتر کل را از دستکاری منابع خارجی محافظت می کند.
وقتی دفتر کل بلاک چین به روز می شود، همه کیف پول های بیت کوین نیز به روز می شوند.
مقابله با پرداخت مضاعف
تصور کنید که یک عدد بیت کوین دارید و سعی می کنید دو بار آن را در دو تراکنش جداگانه خرج کنید.
می توانید با ارسال همان بیت کوین به دو آدرس جداگانه کیف پول بیت کوین، این کار را انجام دهید.
هر دوی این تراکنشها سپس وارد مجموعه معاملات تایید نشده میشوند.
اولین تراکنش از طریق مکانیسم تأیید می شود و سپس در بلوک بعدی تأیید می شود.
با این حال، تراکنش دوم در فرآیند تأیید نامعتبر شناخته می شود و تأیید نمی شود.
اگر هر دو تراکنش برای تایید به طور همزمان از استخر خارج شوند، تراکنش با بیشترین تعداد تایید در بلاک چین گنجانده می شود، در حالی که تراکنش دیگر کنار گذاشته می شود.
در حالی که این امر به طور موثر با موضوع پرداخت مضاعف سروکار دارد، اما بدون مشکل نیست.
به عنوان مثال، گیرنده مورد نظر از تراکنش دوم (شکست خورده) سهمی در شکست خود تراکنش نخواهد داشت.
و با این حال آن شخص بیت کوینی را که پیش بینی کرده بود دریافت نخواهد کرد.
بسیاری از تجار منتظر حداقل 6 تایید تراکنش هستند (به این معنی که شش بلوک تراکنش بعدی پس از تراکنش مورد نظر به بلاک چین اضافه شد).
در این مرحله، تاجر می تواند با خیال راحت فرض کند که معامله معتبر است.
آسیبپذیریهای دیگری در این سیستم وجود دارد که میتواند امکان انجام حملات دوگانه را فراهم کند.
به عنوان مثال، اگر یک مهاجم به نحوی بتواند حداقل 51 درصد از قدرت شبکه را کنترل کند، می تواند هزینه های مضاعف را انجام دهد.
اگر یک مهاجم به نحوی قادر به کنترل این قدرت محاسباتی بود، میتوانست تراکنشها را معکوس کند و یک بلاک چین مجزا و خصوصی ایجاد کند.
با این حال، رشد سریع بیت کوین عملاً غیرممکن بودن این نوع حمله را تضمین کرده است.
اثبات کار و “استخراج” ، نگاهی عمیق تر به ساختار بلاکچین بیتکوین
حالا بیایید کمی فنی تر صحبت کنیم.
هش یک رشته ثابت از خروجی یک تابع درهم ساز است. مانند زیر :
000000004dd3426129639082239efd583b5273b1bd75e8d78ff
یک تابع درهم ساز زمانی معتبر است که مجموعه خروجی های هش آن بقدری بزرگ باشد که امکان تصادم نباشد.
تصادم یعنی ساخته شدن یک هش یکسان برای دو ورودی غیر یکسان.
کوچکترین تغییری در ورودی تابع باعث بوجود آمدن هش متفاوت می شود.
تابع درهم ساز یک طرفه است: نمی توان از آن برای به دست آوردن داده های اصلی استفاده کرد
تابع درهم ساز بیتکوین ( SHA-256) است.
این تابع توسط سازمان امنیت ملی آمریکا تایید شده است.
هر بلوک از تراکنش ها و مهر زمانی(Timestamp) تشکیل شده است.
سختی شبکه
سختی شبکه برای ماینر ها یعنی پیدا کردن یک هش با یک ویژگی های خاص.
مثلا یک هش که با 8 صفر متوالی آغاز شود.
در این صورت سختی شبکه 8 است.
برنامه بیتکوین به گونه ای نوشته شده که با افزایش ماینرها سختی شبکه افزایش یابد.
مثلا در صورت افزایش ماینر ها هشی با 12 صفر یا 16 صفر خواسته شود.
اثبات کار چگونه کار میکند
برای فهم بهتر حل مشکل پرداخت مضاعف باید نگاهی دقیق تر به فرآیند استخراج داشته باشیم.
ماینرها نمی توانند مهر زمانی و یا تراکنش ها را برای پیدا کردن هش مورد نظر تغییر دهند.
آنها همچنین نمی توانند هش بلوک قبلی که به هدر بلوک وصل است تغییر دهند.
آنچه در بلوک تغییر میکند «هیچ» است.
درست خوانده اید!! همان «هیچ» یا Nonce.
هیچ ( Nonce) به همین منظور به بلوک اضافه شده است.
ماینرها باید انقدر نانس یا هیچ را تغییر دهند تا هش مورد نظر را که با 8 تا صفر آغاز می شود بیابند.
پس از یافتن بلوک نوشته می شود و هش آن به بلوک بعدی اضافه می شود.
حال پرداخت مضاعف را بررسی میکنیم.
استخراج و پرداخت مضاعف
شبکه بیتکوین هر ده دقیقه یک بلوک جدید اضافه میکند.
یعنی فر آیند تایید با تاخیر انجام میشود.
فرض کنید شخصی ابتدا 0.01بیتکوین ارسال کند و پس از تایید در بلوک اول دوباره آن را ارسال کند.
بار اول تراکنش با مهر زمانی و هش بلوک قبلی و سایر تراکنش ها هش می شود.
این به معنای تایید است.
بار دوم مهر زمانی تغییر کرده و همانگونه که بالا توضیح دادیم هش متفاوتی تولید میشود.
بدین طریق ماینر ها باید یکی از هش ها را تایید کنند.
هر کدام را تایید کنند پرداخت دیگر غیر قابل اعتبار می شود.
بدین ترتیب پرداخت مضاعف غیر ممکن می شود.
بازتاب: سختی شبکه چیست؟ کدام بلاکچین ها سختی شبکه دارند -
بازتاب: کپی دیجیتال بلاکچین چیست؟ 100000 کپی از دفتر کل - کریپتو یار
بازتاب: اثبات سوختن: مقایسه 3 راه برای حفظ امنیت شبکه - کریپتو یار
بازتاب: اثبات سهام چیست؟ 2 بلاکچین مهم اثبات سهام - کریپتو یار
بازتاب: پول دیجیتال - کریپتو یار