چگونه یک بلاکچین از «خرج دوباره» جلوگیری میکند؟
فهرست مطالب
|
یکی از اولین نگرانیهای هر برنامهنویس رمزارز موضوع «خرج دوباره» است. که به وقوع بیش از یک بار خرجکردن از یک رمزارز برمیگردد، یعنی بین صورتحساب خرج و مخارج و موجودی رمزارز و همچنین نحوه توزیع آن نابرابری به وجود میآید.
مسئله خرج دوباره برای پول کاغذی وجود ندارد، چون اگر شما برای یک ساندویج ۱۰ هزار تومان به فروشنده بدهید نمی توانید پولتان را برگردانید و در جای دیگر خرج کنید. در صورتیکه یک تراکنش با یک پول دیجیتال مثل بیتکوین تماماً در فضای دیجیتال اتفاق میافتد. این بدین معنی است که امکان دارد جزئیات یک تراکنش کپی و دوباره فرستاده شود به گونهای که یک بیت کوین مشخص توسط یک مالک چندین بار خرج شود.
در زیر توضیح خواهیم داد که چگونه برنامهنویسان رمزارزها از اینکه خرج دوباره اتفاق نمیافتد مطمئن هستند.
- یک موضوع فنی که با مفهوم پول دیجیتالی پیش میآید این است که هر فرد میتواند یک پول دیجیتال را کپی و به طور همزمان به دو یا چند جای دیگر بفرستد.
- در رمزارزهایی با پایه بلاک چین مثل بیتکوین با استفاده از نظام اجماع (Consensus) که با عنوان اثبات – کار (PoW) شناخته شده است از مسئله «خرج دوباره» جلوگیری کند .
- اثبات – کار توسط یک شبکه غیر متمرکز از معدنچیها (miners) انجام میشود که نه تنها اعتبار تراکنشهای قبلی بر روی دفتر کل بلاکچین را محافظت میکنند بلکه خرج دوباره را کشف و از بروز آن جلوگیری میکنند.
بلاکچین چیست؟
اولین چیزی که از این اسم به ذهن آدم میرسد این است: زنجیرهای از بلاک(بلوک) ها. دقیقاً درست است. بلاکچین یعنی زنجیرهای از بلوکهایی از اسناد که به هم وصل شدهاند. میشود گفت بلاکچین همان دفتر کل مرجع تمام تراکنشها است.
بلاکچین که از پول دیجیتالی مثل بیتکوین پشتیبانی میکند به تنهایی نمیتواند جلوی خرج دوباره را بگیرد. بلکه همه تراکنشهای گوناگون مربوط به یک رمزارز به بلاکچین فرستاده میشود، جاییکه آنها به طور جداگانه تأیید میشوند و توسط فرآیند اعتبارسنجی محافظت میشوند. درباره بیتکوین و خیلی دیگر از رمزارزها، تراکنشهایی که به این روش تأیید میشوند تغییرناپذیر هستند چون در معرض دید عموم قرار میگیرند و جاودانه باقی میمانند.
بیتکوین اولین پول دیجیتال مهمی بود که توانست مسئله «خرج دوباره » را حل کند.
بیتکوین با اجرای مکانیزم اعتبارسنجی و نگهداری از یک دفتر کل جهانی و در دسترس عموم به این مهم رسید. در این روش، بلاکچین بیتکوین گزارش تراکنشهایی که به زمان آغاز به کار بیتکوین به عنوان یک رمزارز از سال ۲۰۰۹ را در خود دارد.
در واژهنامه بیتکوین، یک «بلاک» یعنی یک گروه از دادههایی که دائماً در حال گزارش شدن هستند. تمام تراکنشهای اخیر درون بلاکها نوشته میشوند درست مثل دفتر معاملات سهام در بورس. اطلاعات از بلاکها هر چند (۱۰) دقیقه یکبار به دفترکل اضافه میشوند؛ تمام گرهها روی شبکه یک کپی از خود روی دفترکل بلاکچین باقی میگذارند.کاربران میتوانند یک بیتکوین را در دفترکل بلاکچین مسیریابی کنند و تراکنشها را از لحاظ مقدار بازبینی کنند. جزئیات درباره هویت فروشنده و خریدار در هر تراکنش توسط یک رمزگذاری بسیار قوی محافظت میشود، چیزی که مانع دستکاری منابع خارجی به آن تراکنش در دفترکل میشود.وقتی دفترکل بلاکچین بهروزرسانی میشود تمام کیف پولهای بیتکوین هم بهروز رسانی میشود.
مقابله با «خرجِ دوباره»
تصور کنید یک بیتکوین دارید و میخواهید آن را در دو تراکنش مجزا خرج کنید. شما یک بیتکوین را به دو آدرس کیف پول مجزا میفرستید.هر دو تراکنش به مخزن تراکنشهای تأیید نشده وارد میشود. اولین تراکنش از طریق معتبرسازی تأیید میشود و سپس وارد بلوک بعدی میشود. درحالیکه تشخیص داده میشود تراکنش دوم از طریق معتبر سازی نامعتبر است و تأیید نمیشود. اگر هر دو تراکنش از مخزن تأیید به طور همزمان خارج شوند، تراکنشی در بلاکچین میماند که بالاترین تعداد تأیید را داشته باشد در حالیکه دیگری دورانداخته میشود.
اگرچه این روش مؤثری برای مقابله با خرجِ دوباره است ولی خالی از اشکال نیست. به طور مثال، گیرنده مورد نظر از تراکنش دومی (بی اعتبار) در شکست معامله خود سهمی نخواهد داشت و بیتکوین مورد انتظار خود را دریافت نمیکند. پس بسیاری از تجار برای هر تراکنش حداقل منتظر ۶ تأییدیه قرار میگیرند (بدین معنی که ۶ بلاک به زنجیره بلاکها بعد از تراکنش مورد نظرشان اضافه شود) . در این مرحله، تاجر میتواند فرض کند که تراکنش او معتبر است.
وجود آسیب پذیریهای دیگر در این سیستم میتواند به هکرها اجازه خرجِ دوباره را میدهد. به عنوان مثال اگر هکر بتواند حداقل ۵۱ درصد از کنترل شبکه را در دست بگیرد میتواند مرتکب خرجِ دوباره شود. اگر یک هکر به هر طریقی بتواند کنترل قدرت محاسباتی بیشتری را بدست آورد میتواند تراکنشها را معکوس و یک بلاکچین خصوصی و جداگانه ایجاد کند. اگرچه رشد سریع بیتکوین در فضای مجازی ما را مطمئن میکند که این نوع حمله غیر ممکن است.
اثباتِ کار و «استخراج»
اکنون بیایید کمی تخصصیتر باشیم کاربران میتوانند از طریق راهی دستکاریهایی مثل خرجِ دوباره را کشف کنند که «درهم» hash نام دارد – یک سری طولانی از اعداد که کار اثباتِ کار (PoW) را انجام میدهند. یک مجموعه داده مشخص را در تابع درهم «Hash» (بیت کوین از تابع SHA-256 استفاده میکند) قرار بده و آن تنها یک درهم مشخص و منحصر به فرد تولید میکند. به خاطر «اثر بهمن» هر تغییر کوچک در مجموعه دادههای اصلی نتیجهای جز غیرقابل تشخیص شدن درهم مربوطه ندارد. اندازه طول درهم برای هر مجموعه داده یکسان است و طبق تابع تولید میشود. درهم یک کاربرد یک طرفه دارد به این معنی که برای بدست آوردن مجموعه داده اصلی نمیتوان از آن استفاده کرد و فقط برای چک کردن مطابقت بین دادهای که درهم را تولید کرده و خود درهم به کار میرود.
تولید هر درهم برای یک مجموعه از تراکنشهای بیتکوین برای یک کامپیوتر مدرن بسیار جزئی است پس برای تبدیل فرآیند به «کار» شبکه بیتکوین سطح مشخصی از «دشواری» را تنظیم میکند. این دشواری ها به گونهای تنظیم شده است که تقریباً هر ده دقیقه یک بار یک بلاک جدید «استخراج» میشود -با اضافه شدن یک بلاک به بلاکچین با تولید یک درهم معتبر. میزان دشواری با گذاشتن هدف برای درهم انجام میشود: هرچه هدف کمتر باشد مجموعه درهمهای معتبر کوچکتر شده و تولید آن سختتر میشود. در عمل این به معنی یک هش است که با یک رشته طولانی از صفر شروع می شود: برای مثال ، هش بلاک #۴۲۹۸۱۸ ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۴dd3426129639082239efd583b5273b1bd75e8d78ff2e8d است. آن بلاک شامل ۲۰۱۲ تراکنش و چیزی بیش از هزار بیتکوین به اضافه سربلاک قبلی است.اگر یک کاربر یک تراکنش را به مبلغ ۰٫۰۰۰۱ بیتکوین تغییر بدهد هش حاصله دیگر غیرقابل تشخیص شده و شبکه تقلب را رد میکند.
از آنجاییکه هر مجموعه داده تنها یک درهم تولید میکند، چگونه معدنچیها (ماینر) ها مطمئن میشوند که یک درهم تحت یک هدف مشخص را تولید میکنند؟ آنها ورودی را با افزودن یک عدد صحیح که به آن نونس (عددی که یکبار استفاده میشود) تغییر میدهند. به محض اینکه یک درهم (هش) معتبر پیدا شد در تمام شبکه منتشر میشود و بلاک به بلاکچین اضافه میشود.
استخراج یک فرایند رقابتی است و بیشتر شبیه یک لاتاری است تا یک مسابقه. به طور میانگین هر معدنچی میتواند در عرض ده دقیقه یک اثبات کار معتبر را انجام دهد اما این کار را هر کسی میتواند انجام دهد. استخراجکنندگان با هم جمع میشوند تا شانس استخراج بلاکها را افزایش دهند و استخراج کننده بلاک کارمزد تراکنشهای آن بلاک به علاوه بیتکوین های جدید تولید شده را به عنوان جایزه میگیرد.
اثبات – کار تغییر در هر جنبه از بلاکچین را بینهایت سخت میکند زیرا هر تغییر نیازمند استخراج دوباره تمام بلاکهای بعدی است. همچنین انحصار قدرت محاسباتی شبکه اثبات – کار را برای کاربران و کاربران گروهی (مزرعه) دشوار میکند زیرا برق و تسهیلات برای کامل کردن توابع درهم سازی بسیار گران است.
هر چه میخواهید از بیتکوین بدانید میتوانید از کتاب بیتکوین انتشارات نص بخوانید.
مترجم: مریم زارع مهرجردی
منبع: investopedia.com