اثبات کار چیه؟
تعریف · اثبات کار (PoW)
سامانهای که در آن حق افزودن یک بلوک به کسی میرسد که زودتر از بقیه هشی از سربرگ بلوک پیدا کند که از مقدار هدف کمتر باشد. پیدا کردن چنین هشی به تعداد بسیار زیادی حدس نیاز دارد، اما بررسی آن فقط با یک هش انجام میشود.
ساتوشی ناکاموتو این ایده را در 2008 در سپیدنامه بیتکوین توضیح داد. او از Hashcash آدام بک الهام گرفت؛ ایدهای قدیمیتر که فرستادن هرزنامه ایمیلی را پرهزینه میکرد. هش معتبر، همان اثبات است. بدون انجام کار نمیتوانی به چنین هشی برسی و همه میتوانند ببینند که این کار را انجام دادهای.
بقیهٔ این صفحه هر بخش را توضیح میدهد و کادر بالا بهت امکان میدهد امتحانش کنی: این قالب واقعیِ سربرگ بیتکوین است که هش آن بهصورت زنده در مرورگرت محاسبه میشود. برای آشنایی با تصویر کلی ماینینگ، راهنمای کامل ماینینگ بیتکوین را ببین.
اثبات کار چه مشکلی را حل میکند؟
بیتکوین شرکت، بانک یا سرور مرکزی ندارد. هزاران کامپیوتر نسخهٔ خودشان از دفترکل را نگه میدارند و باید بر سر بلوک بعدی و ترتیب انجام پرداختها توافق کنند. وگرنه ممکن است کسی یک کوین را دو بار خرج کند.
رأیگیری ساده در اینترنت جواب نمیدهد، چون هر کسی میتواند هزار کامپیوتر جعلی راه بیندازد و هزار بار رأی بدهد. به این کار حمله سیبیل میگویند. اثبات کار این مشکل را دور میزند: قدرت رأی تو با تعداد هشها سنجیده میشود و تولید هش به برق و سختافزار نیاز دارد.
چه کسی در انتخاب بلاک بعدی نقش دارد؟
یک رأی برای هر گره
یک مهاجم 60 گره جعلی را رایگان راه میاندازد و بر 12 گره صادق غلبه میکند.
یک رأی برای هر هش
ماینرهای صادق 88%مهاجم 12%
همان 60 نود از سختافزار واقعی مهاجم استفاده میکنند، پس رویهمرفته همچنان فقط 12% وزن دارند. ساختن نسخه رایگان است، اما هشکردن نه.
سربرگ بلاک بیتکوین چه چیزهایی دارد؟
استخراجکنندهها کل بلاک را هش نمیکنند. آنها سربرگ 80 بایتی آن را هش میکنند که همهچیز دیگر را در خود ثبت میکند. اینها همان شش فیلدی هستند که در کادر بالای صفحه ویرایش کردی:
| فیلد | بایت | چه چیزهایی در آن هست | چه کسی آن را تغییر میدهد |
|---|---|---|---|
| نسخه | 4 | بلاک از کدام مجموعه قوانین پیروی میکند | بهندرت تغییر میکند |
| هش بلاک قبلی | 32 | هش بلوک قبلی که زنجیره را به هم وصل میکند | با هر بلاک عوض میشود |
| ریشهٔ مرکل | 32 | یک اثر انگشت از همه تراکنشهای بلاک | استخراجکننده، با تغییر تراکنشها یا نانس اضافی |
| زمان | 4 | زمانی که ماینر میگوید بلاک ساخته شده (زمان یونیکس) | استخراجکننده، در محدودهها |
| بیتها | 4 | هدف، فشردهشده در 4 بایت | شبکه، هر 2,016 بلوک |
| نانس | 4 | یک عدد رایگان برای امتحان دوباره | استخراجکننده، با هر حدس |
از آنجا که سربرگ شامل هش بلوک قبلی است، تغییر یک بلوک قدیمی هش آن را عوض میکند و این باعث میشود سربرگ بعدی و سربرگ پس از آن هم دیگر معتبر نباشند. هنگام ساخت این صفحه، بلوک پیدایش واقعی را از 2009 با همان کدی که بخش اصلی صفحه استفاده میکند، روی سرورمان بررسی کردیم:
000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
SHA-256 در بیتکوین چطور کار میکند؟
SHA-256 هر ورودی را به یک عدد 256-بیتی تبدیل میکند که بهشکل 64 نویسه هگزادسیمال نوشته میشود. Bitcoin آن را دو بار روی سربرگ اجرا میکند (به این کار SHA-256d میگویند). ویژگیهای مهم برای ماینینگ سادهاند:
ورودی یکسان، خروجی یکسان
قطعی
یک سربرگ یکسان، در هر رایانهای همیشه هش یکسانی میدهد. به همین دلیل بررسی آن کار میکند.
256 بیت
اندازه ثابت
چه یک خط کوتاه باشد و چه یک کتاب کامل، هش همیشه 64 نویسه هگزادسیمال است.
یکطرفه
راه میانبری برای برگشت نیست
نمیتوانید ورودیای را محاسبه کنید که هش دلخواهتان را بدهد. فقط میتوانید ورودیهای مختلف را امتحان کنید.
≈ 50%
اثر آبشاری
یک نویسه را عوض کن تا حدود نصف بیتها تغییر کنند. شبکه را در تصویر اصلی ببین.
این ویژگی آخر، اصلِ اثبات کار است. هشی که به هدف نزدیک است چیزی درباره حدس بعدی به تو نمیگوید، پس راه هوشمندانهای برای پیدا کردن بلوک معتبر وجود ندارد. همه ماینرها در یک قرعهکشی یکسان شرکت میکنند و هش بیشتر در هر ثانیه فقط بلیتهای بیشتری برایشان میخرد.
هدف (target) چیه و چرا اولش اینهمه صفر داره؟
هدف یک عدد 256-بیتی است. بلوک وقتی معتبر است که هش آن، اگر بهصورت عدد خوانده شود، از این مقدار بیشتر نباشد. چون عددهای کوچک با صفر شروع میشوند، هدف کوچکتر به شکل صفرهای ابتدایی بیشتری دیده میشود. هر صفر هگزادسیمال اضافی یعنی بهطور میانگین 16 برابر حدس بیشتر.
میانگین تعداد هشهای لازم برای پیدا کردن یک بلوک معتبر
- بلوک آزمایشی در بخش اصلی · 4 صفر هگزادسیمال ابتدایی65,536
- آسانترین هدف بیتکوین (2009) · 8 صفر ابتدایی در مبنای شانزده، بیتها 1d00ffff4,294,967,296
- یک بلوک بیتکوین امروزی · حدود 20 صفر هگزادسیمال در ابتدا (برآورد زنده)5.7 × 1023
شبکه هر 2,016 بلوک، یعنی حدوداً هر دو هفته، هدف را تغییر میدهد تا بلوکها با وجود افزایش یا کاهش هشریت، تقریباً هر ده دقیقه ساخته شوند. در حال حاضر، شبکه حدود 957 EH/s هشریت دارد (زنده، با بهروزرسانی ساعتی). در راهنمای سختی استخراج بیتکوین توضیح دادهایم که این تنظیم چطور کار میکند و راهنمای هشریت هم واحدها را توضیح میدهد.
نانس چیست و نانس اضافی چیست؟
نانس (مخفف «عددی که یک بار استفاده میشود») فیلد 4 بایتیای است که ماینرها با هر حدس تغییرش میدهند. این تنها فیلدی است که صرفاً برای تغییرکردن در نظر گرفته شده. مشکل اینجاست که 4 بایت فقط حدود 4.3 میلیارد مقدار میدهد و دستگاههای امروزی تقریباً در یک لحظه همه را امتحان میکنند.
چرخه ماینر
- 01
همهٔ نانسها را امتحان کن
0، 1، 2 و همینطور تا 4,294,967,295. اینها همه مقادیری هستند که 4 بایت میتواند در خود نگه دارد.
- 02
زود تمام میشود
یک دستگاه 100 TH/s همه آنها را در حدود 43 میلیونم ثانیه انجام میدهد.
- 03
تغییر نانس اضافی
ماینر یک فیلد اضافه را در تراکنش پاداش خودش (کوینبیس) ویرایش میکند.
- 04
ریشه مرکل جدید
آن تراکنش تغییر کرد، پس ریشه مرکل هم تغییر میکند و هر نانس دوباره هشهای تازهای میدهد.
برای همین، ماینرها یک نانس اضافی هم تغییر میدهند؛ چند بایت اضافه در کوینبیس، یعنی نخستین تراکنش هر بلوک که پاداش ماینر را میپردازد. کوینبیس تازه یعنی ریشه مرکل تازه، و این یعنی میلیاردها نانس تازه برای امتحانکردن. در یک استخر استخراج، استخر محدودهای از نانسهای اضافی را به هر ماینر میدهد تا کسی کاری را که دیگری انجام داده دوباره تکرار نکند.
چرا پیدا کردن یک بلاک پرهزینه است، اما بررسی آن ارزان؟
برای پیدا کردن یک بلوک
≈ 5.7 × 1023 هشها
کل شبکه و همهٔ دستگاههایش، حدود ده دقیقه حدسزدن.
برآورد زنده، هر ساعت بهروز میشود.
برای بررسی
1 هش
هر نودی، حتی یک لپتاپ ارزان، سربرگ 80-بایتی را یک بار هش میکند و در کمتر از یک میلیثانیه آن را با هدف مقایسه میکند.
ماینر باید آنقدر هشها را امتحان کند تا یکی پایینتر از هدف قرار بگیرد. بقیه فقط باید سرآیند را یک بار هش کنند و نتیجه را مقایسه کنند. همین تفاوت چشمگیر در هزینه باعث میشود هزاران رایانه معمولی بتوانند زنجیره را بدون اعتماد به ماینرهایی که آن را ساختهاند تأیید کنند.
بخش جستوجو را خودت در ادامه امتحان کن. این دمو از قالب بلوک سادهتری نسبت به بخش اصلی استفاده میکند، اما همان قرعهکشیِ دو بار SHA-256 است و هر بلوکی که پیدا میشود به بلوک قبلی پیوند دارد.
تعاملی · یک بلاک را توی مرورگرت ماین کن
اثبات کار واقعی SHA-256d، هدر سادهسازیشده
هش بلاک (SHA-256 دوبار)
تراکنشها را ویرایش کن: با یک حرف، هش کاملاً عوض میشود.
تلاشها: 0
هشریت تو: نامشخص
زمان: 0.0 s
قانون طولانیترین زنجیره چیست و حملهٔ 51٪ چیست؟
گاهی دو ماینر تقریباً همزمان یک بلوک پیدا میکنند و شبکه برای مدت کوتاهی دو نسخه دارد. نودها زنجیرهای را دنبال میکنند که مجموع کار بیشتری پشت آن است. به آن زنجیره طولانیتر میگویند، اما در واقع زنجیره سنگینتر است: چند بلوک با سختی بالا میتوانند از تعداد بیشتری بلوک با سختی پایین سنگینتر باشند.
برای برگرداندن یک پرداخت، مهاجم باید زنجیرهای با کار انباشتهٔ بیشتری از زنجیرهٔ بقیه بسازد و کار را از قبلِ آن پرداخت شروع کند. هر بلوک تازهای که روی آن اضافه میشود (یک تأییدیه)، مهاجم را بیشتر عقب میاندازد. وایتپیپر احتمالها را محاسبه کرده است؛ نوار لغزنده را جابهجا کن تا ببینی:
تعاملی · آیا مهاجم میتواند خودش را برساند؟
فرمول برگرفته از بخش 11 سپیدنامه Bitcoin
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
تعداد بلوکهایی که مهاجم عقب است (تأییدها). مقیاس میلهها لگاریتمی است و از یک در میلیون تا قطعی را نشان میدهد.
با 10٪ از نرخ هش، احتمال بازنویسی یک پرداخت پس از 6 تأیید 0.024٪ است و پس از 1 تأیید، 20.5٪ است.
با 50٪ یا بیشتر، مهاجم بالاخره برنده میشود. این همان حملهٔ 51٪ است. این حمله جدی است، اما محدودیتهایی دارد:
اگر مهاجم بیشترِ نرخ هش را داشته باشد، میتواند
- جایگزین کردن بلاکهای اخیر با زنجیره خودشان
- خرجکردن دوباره سکههایی که برای خودشان فرستادهاند
- بعضی تراکنشها را از بلاکهایشان جا بگذارند
بااینحال، آنها نمیتوانند
- خرجکردن سکههای کیف پول دیگران
- ایجاد سکههایی فراتر از پاداش بلاک
- تغییر قوانین بیتکوین برای بقیه
برای همین، صرافیها برای واریزهای بزرگ منتظر چند تأیید میمانند. معمولاً شش تأیید را ملاک میگیرند.
چرا اثبات کار اینقدر انرژی مصرف میکند؟
چون انرژی همان امنیت است. بلوک معتبر ثابت میکند که واقعاً برق مصرف شده است. برای بازنویسی تاریخچه، مهاجم باید دستکم همینقدر انرژی مصرف کند و به این کار ادامه دهد، در حالی که شبکهٔ صادق به کارش ادامه میدهد.
انرژی کجا مصرف میشود و در ازای آن چه به دست میآید
پاداش بلوک و کارمزدها
بیتکوینهای تازه بهعلاوه کارمزد هر بلاک، پرداختشده به کسی که آن را پیدا میکند.
دستگاهها و برق
استخراجکنندهها تا سقف ارزشی که پاداش برایشان دارد هزینه میکنند.
نرخ هش شبکه
تمام این هزینهکردها به شکل هش بر ثانیه خودش را نشان میدهند.
هزینه بازنویسی تاریخچه
مهاجم باید در هر بلوک، بهاندازهٔ مجموع همهٔ این هزینهها خرج کند.
اینکه چقدر برق مصرف میشود و این برق از کجا میآید، جای بحث دارد. شاخص کمبریج برآوردها را دنبال میکند و راهنمای انرژیِ استخراج بیتکوین ما اعداد را بررسی میکند. هر هاوینگ سهم سکههای تازه از پاداش را کم میکند، پس با گذشت زمان، کارمزدها باید بخش بیشتری از بودجه امنیتی را تأمین کنند.
تفاوت اثبات کار و اثبات سهام چیست؟
در اثبات سهام (PoS)، تولیدکننده بلاک بعدی از میان افرادی انتخاب میشود که سکههایشان را بهعنوان سپرده قفل میکنند، نه افرادی که برق مصرف میکنند. Ethereum در 2022 از اثبات کار به اثبات سهام تغییر کرد. مقایسهای منصفانه و کنار هم:
| اثبات کار | اثبات سهام | |
|---|---|---|
| چه کسی بلاک بعدی را اضافه میکند | اولین ماینری که هشی پایینتر از هدف پیدا کند | اعتبارسنجی که متناسب با سهم گروگذاشتهشدهاش انتخاب شده است |
| چه چیزی آن را امن میکند | برق و سختافزاری که بیرون از زنجیره مصرف میشوند | سکههایی که داخل زنجیره قفل میشوند و در صورت تقلب میتوان آنها را ضبط کرد |
| مصرف انرژی | بالا بودنش عمدی است | کم |
| برای مشارکت | دستگاهها و برق ارزان | سکههای قابل استیک |
| تسویه | با هر تأیید امنتر میشود | نقاط پایانی صریح |
| انتقاد اصلی | مصرف انرژی و تمرکز استخراج | تمرکز سهام و طراحی پیچیدهتر |
| سابقهٔ عملکرد | بیتکوین، از 2009 | Ethereum، از 2022 |
توسعهدهندگان بیتکوین روش اثبات کار را حفظ کردهاند، چون هزینهاش بیرون از سیستم تحمیل میشود و کسی نمیتواند با کوینهایی که از قبل دارد، کنترل شبکه را بخرد. طرفداران اثبات سهام به کاهش مصرف انرژی و نهاییشدن سریعتر تراکنشها اشاره میکنند.
Can you get mining rewards without running proof of work yourself?
Yes. With CloudMineCrypto you mine bitcoin for free from your phone or browser, with no hardware, noise or power bill. Claim the free 8-hour plan, and add more free plans by watching ads, playing games, completing offers and checking in daily. Your estimated BTC ticks up while your plans run, and you withdraw to your own wallet, Lightning included.
Each plan has a hashrate, and your estimate is that hashrate’s share of the whole network, times 6 blocks an hour, times the block reward. That’s the formula the app uses to estimate your rewards (rules and limits apply). Want more speed? Paid plans are an optional boost for fun. They usually mine less than they cost, and the price is shown before you confirm.
خوب است بدانی: پاداشها تخمینیاند، با تغییرات شبکه تغییر میکنند و تضمینشده نیستند. داشتن یک طرح به معنی مالکیت هیچ دستگاه یا استخر استخراجی نیست. ممکن است برای برداشتها محدودیت یا احراز هویت لازم باشد. جزئیات در قوانین پاداش و راهنمای رایگان استخراج Bitcoin آمده است. شرایط اعمال میشود.
سؤالات پرتکرار
اثبات کار به زبان ساده چیست؟
روشی است برای اینکه افزودن یک بلاک واقعاً به تلاش نیاز داشته باشد. استخراجکنندهها سربرگ بلاک را بارها هش میکنند و هر بار عددی به نام نانس را تغییر میدهند تا نتیجه از یک هدف کمتر شود. پیدا کردن چنین هشی به حدسهای بسیار زیادی نیاز دارد، اما هرکسی میتواند آن را با یک هش بررسی کند.
نانس در بیتکوین چیست؟
عددی 4 بایتی در سربرگ بلوک که ماینرها در هر حدس تغییرش میدهند. این عدد حدود 4.3 میلیارد مقدار ممکن دارد. وقتی همهٔ این مقدارها امتحان شوند، ماینرها نانس اضافی داخل تراکنش کوینبیس را تغییر میدهند؛ این کار ریشه مرکل تازهای میسازد و مجموعه هشهای تازهای به دست میدهد.
چرا بیتکوین SHA-256 را دو بار اجرا میکند؟
بیتکوین سربرگ 80-بایتی را با SHA-256 هش میکند و بعد نتیجه را دوباره هش میکند. ساتوشی هرگز دلیل این انتخاب را توضیح نداد. برداشت رایج این است که این کار در برابر حملههای گسترش طول محافظت میکند و یک لایهٔ ایمنی اضافه فراهم میکند.
حملهٔ 51٪ چه کاری را برای مهاجم ممکن میکند؟
کسی که بیشتر هشریت را در اختیار دارد میتواند زنجیرهای طولانیتر را پنهانی بسازد و بلوکهای اخیر را جایگزین کند. این کار به او امکان میدهد سکههای خودش را دوباره خرج کند یا جلوی بعضی تراکنشها را بگیرد. اما نمیتواند سکههای دیگران را خرج کند، بیشتر از چیزی که قوانین اجازه میدهند سکه بسازد یا قوانین را برای همه تغییر دهد.
آیا اثبات سهام از اثبات کار بهتر است؟
انرژی بسیار کمتری مصرف میکند و امنیتش از سکههایی میآید که بهعنوان سهام قفل شدهاند. اثبات کار امنیت را به هزینهای بیرونی، یعنی برق و سختافزار، گره میزند و از 2009 در بیتکوین به کار گرفته شده است. هرکدام بدهبستانهای متفاوتی دارند، پس اینکه کدام بهتر است به چیزهایی بستگی دارد که برایت مهماند.
Can I get bitcoin mining rewards without my own hardware?
Yes. In the CloudMineCrypto app you claim free mining plans (the free plan, ads, games, offers and a daily check-in) and your estimated BTC ticks up while they run, then you withdraw to your own wallet. Rewards are estimates based on your plan’s hashrate and live network data, they aren’t guaranteed, and a plan doesn’t give ownership of any hardware.
منابع و مطالعهٔ بیشتر
- Bitcoin: A Peer-to-Peer Electronic Cash System (وایتپیپر) · ساتوشی ناکاموتو، bitcoin.org
- راهنمای بلاک چین: هدر بلاک، اثبات کار، کوینبیس · مستندات توسعهدهندگان بیتکوین
- راهنمای استخراج: استخراج انفرادی، استخرها، getblocktemplate · مستندات توسعهدهندگان بیتکوین
- سختی · Bitcoin Wiki
- تأیید · Bitcoin Wiki
- Cambridge Bitcoin Electricity Consumption Index · Cambridge Centre for Alternative Finance
- داشبورد استخراج: هشریت، سختی، بلاکهای اخیر · mempool.space
ارقام زنده این صفحه از API مربوط به CloudMineCrypto یا سرویسهای داده عمومی بلاکچین که نامشان کنار ارقام آمده، دریافت میشوند و طبق برنامه بهروزرسانی میشوند. محل نمایش هرکدام هم مشخص شده است. این راهنما آموزشی است و مشاوره مالی نیست. CloudMineCrypto محصولی برای سرمایهگذاری نیست؛ پاداشهای داخل اپ تخمینیاند و تضمینشده نیستند.
خوندی چطور کار میکنه. حالا ببین در عمل چی میشه.
یک پلن ماینینگ رایگان 8 ساعته در اپ CloudMineCrypto بگیر و ببین BTC تخمینیات با دادههای زنده شبکه کمکم بالا میره. بدون سختافزار، بدون کارت.