اثبات کار چیست ؟ و pow و proof of work به چه معناست؟
اثبات کار یا Proof of Work چیست؟
اثبات کار (گواه کار) یا PoW سیستمی را توصیف میکند که برای استفادههای مخرب مثل ارسال ایمیلهای اسپم یا حمله به سرویس به تلاش قابل توجه (اما امکانپذیر) نیاز دارد. این مفهوم توسط هال فاینی (Hal Finney) در سال ۲۰۰۴ به مباحث مالی تحت عنوان اثبات کار قابل استفاده مجدد (reusable proof of work) افزوده شد. ایده فاینی در سال ۲۰۰۹ برای بیتکوین بهعنوان اولین اپلیکیشنی که بهصورت گسترده پذیرفته شد، بهکار گرفته شد. فاینی همینطور، گیرنده اولین تراکنش بیتکوین نیز بود. اثبات کار PoW اساس بسیاری از ارزهای دیجیتال دیگر نیز هست.
درک اثبات کار (گواه کار) PoW
این مطلب بر اثبات کار PoW با تمرکز بر عملکرد آن در شبکه بیتکوین خواهد پرداخت. بیتکوین یک ارز دیجیتال است که توسط دفتر کل توزیعشدهای بهنام بلاکچین پایهریزی شده است. این دفتر کل شامل ثبت و ضبط تمام تراکنشهای بیتکوین است که بهطور متوالی در بلاکها مرتب شدهاند؛ در نتیجه، هیچ کاربری قادر به دو بار خرج کردن داراییاش نیست. برای جلوگیری از دستکاری و تداخل، این دفتر کل عمومی یا توزیعشده است و نسخه جعلی بهسرعت توسط سایر کاربران رد میشود.
به صورتی که بالا ذکر شد،کاربران بهصورت عملی، دستکاری را از طریق هَشها (رشتههای طولانی اعداد که بهعنوان اثبات کار PoW) کشف میکنند. شما هرچقدر تعدادی داده را کنار هم بگذارید، بعید است که بتوانید یک هَش را تولید کنید. بهدلیل آنچه «اثر بهمن» نامیده میشود، هر تغییر کوچکی در هر بخش داده اصلی میتواند به یک هش غیرقابل تشخیص بیانجامد. سایز داده اصلی هرچقدر که باشد، هش تولید شده با توابع ریاضی هم طول مشابهی خواهد داشت. هر هش، یک تابع مشخص دارد و نمیتواند برای دستیابی به داده اصلی بهکار گرفته شود.
تولید هش برای مجموعهای از تراکنشهای بیتکوین در کامپیوتر های امروزی بدیهی است؛ بنابراین برای تبدیل این پردازش به «کار»، شبکه بیتکوین، سطح خاصی از «سختی» را تنظیم میکند. این سختی وقتی یک بلاک استخراج شود، تنظیم میشود و بهطور حدودی هر ۱۰ دقیقه یکبار با تولید یک هش صحیح به بلاکچین افزوده میشود. تنظیم سختی با ایجاد یک «هدف» برای هش صورت میگیرد: هرچه هدف پایینتر باشد، مجموعه هشهای صحیح کوچکتر و تولید آن سختتر خواهد بود؛ به این معنی که وقتی یک هش با رشته طولانی صفرها شروع میشود: هش برای بلاک #429818، برای مثال 000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d است. این بلاک شامل ۲۰۱۲ تراکنش ۱۰۰۰ بیتکوین و علاوه بر آن، اطلاعات بلاک قبلی است. اگر یک کاربر مقدار تراکنش را با ۰٫۰۰۰۱ بیتکوین تغییر دهد، هش نتیجه غیرقابل تشخیص خواهد بود و شبکه این تقلب را رد خواهد کرد.
وقتی یک دسته مشخص از دادههای تنها میتواند یک هش تولید کند، چگونه استخراجکنندگان میتوانند مطمئن باشند که یک هش کمتر از هدف تولید میکنند؟ آنها ورودی را با اضافهکردن یک عدد صحیح که نانس یا nonce مخفف (number used once) نامیده میشود، جایگزین میکنند. وقتی یک هش صحیح یافت شود، در شبکه پخش خواهد شد و این بلاک به بلاکچین اضافه میشود.
استخراج، یک فرایند رقابتی است اما بیشتر شبیه لاتاری است تا مسابقه. بهطور میانگین، هر کسی یک اثبات کار قابل قبول را هر ۱۰ دقیقه یکبار تولید خواهد کرد. استخراجکنندگان برای افزایش شانس استخراج بلاکها با هم یک استخر تشکیل میدهند که کارمزد تراکنش را تولید خواهد کرد.
اثبات کار، جایگزینی هر بُعدی از بلاکچین را بسیار سخت میکند؛ و این جایگزینی نیاز به استخراج دوباره تمام بلاکهای متوالی خواهد داشت. همچنین برای یک کاربر یا استخر کاربران، تشکیل انحصار توان محاسباتی شبکه نیز سخت خواهد شد و علاوه بر آن، توان و ماشینآلات مورد نیاز برای تکمیل توابع هش گرانقیمت هستند.
منابع: اینوستوپدیا