⛓ دانشکدهٔ ۲ · اجماع و تأیید تراکنش
اثبات کار (PoW): استخراج، دشواری و حملهٔ ۵۱٪
Proof of Work: mining, difficulty and the 51% attack
پیشنیازها: تابع هش و SHA-256ساختار بلاک و زنجیرهشدن بلاکها
📚 آموزش در سه سطح
از سطح ساده شروع کنید؛ اگر روشن بود، سطح بعد را بخوانید. سطح مناسب شما ذخیره میشود.
🌱 توضیح ساده
اثبات کار راهی است برای اینکه حق نوشتن صفحهٔ بعدی دفتر را به کسی بدهیم که «زحمت» واقعی کشیده است. ماینرها یک بلاک پیشنهادی میسازند و سپس میلیاردها بار در ثانیه سربرگ آن را با نانسهای مختلف هش میکنند تا به هشی برسند که از یک عدد هدف کوچکتر باشد. مثل قرعهکشیای است که هر بلیت آن هزینهٔ برق دارد: هرچه بلیت بیشتری بخرید، شانس بیشتری دارید، ولی برندهشدن هیچوقت تضمینشده نیست.
نکتهٔ زیبا این است که پیداکردن جواب بسیار سخت است ولی بررسی آن بسیار آسان. ماینر ممکن است تریلیونها هش امتحان کرده باشد، اما هر نود فقط با یک بار هشکردن سربرگ میفهمد که جواب درست است یا نه. برندهٔ هر بلاک پاداش بلاک و کارمزد تراکنشهای داخل آن را دریافت میکند و همین پاداش انگیزهٔ ماینرها برای پرداخت هزینهٔ برق و سختافزار است.
چون ساختن هر بلاک هزینهٔ واقعی دارد، بازنویسی تاریخچه هم هزینهٔ واقعی دارد. کسی که بخواهد بلاکهای گذشته را عوض کند، باید آن همه کار را دوباره و سریعتر از بقیهٔ شبکه انجام دهد. اگر کسی بیش از نیمی از کل توان استخراج جهان را در اختیار بگیرد، این کار برایش ممکن میشود؛ به این وضعیت «حملهٔ ۵۱٪» میگویند.
📘 توضیح متوسط
هدف بیتکوین این است که بهطور میانگین هر ۱۰ دقیقه یک بلاک ساخته شود. چون توان استخراج شبکه دائماً تغییر میکند، هر ۲۰۱۶ بلاک (۲۰۱۶ × ۱۰ دقیقه = تقریباً دو هفته) دشواری دوباره تنظیم میشود: اگر ۲۰۱۶ بلاک اخیر زودتر از دو هفته ساخته شده باشد، دشواری بالا میرود و اگر دیرتر، پایین میآید. برای مثال اگر این بلاکها در ۱۲ روز ساخته شده باشند، دشواری تقریباً ۱۴ ÷ ۱۲ یعنی حدود ۱٫۱۷ برابر میشود. تغییر در هر دوره حداکثر ۴ برابر یا یکچهارم است.
شانس هر ماینر متناسب با سهم او از کل توان استخراج است. ماینری که ۱۰٪ توان شبکه را دارد، بهطور میانگین ۱۰٪ بلاکها، یعنی حدود ۱۴ بلاک از ۱۴۴ بلاک روزانه، را پیدا میکند؛ ولی در یک روز خاص ممکن است هیچ بلاکی پیدا نکند. به همین دلیل بیشتر ماینرها در «استخر استخراج» (pool) فعالیت میکنند تا درآمد پایدارتری داشته باشند. امروز استخراج بیتکوین با تراشههای تخصصی ASIC انجام میشود و استخراج با رایانهٔ معمولی عملاً بیفایده است. میزان توان استخراج و دشواری فعلی را میتوانید در mempool.space ببینید؛ این اعداد دائماً تغییر میکنند.
پاداش بلاک در آغاز ۵۰ بیتکوین بود و هر ۲۱۰ هزار بلاک نصف شده است: ۲۸ نوامبر ۲۰۱۲ به ۲۵، ۹ ژوئیهٔ ۲۰۱۶ به ۱۲٫۵، ۱۱ مهٔ ۲۰۲۰ به ۶٫۲۵ و ۲۰ آوریل ۲۰۲۴ (بلاک ۸۴۰۰۰۰) به ۳٫۱۲۵ بیتکوین. مجموع این سری هندسی کمی کمتر از ۲۱ میلیون بیتکوین است. با کاهش پاداش، سهم کارمزدها در درآمد ماینرها و در نتیجه در بودجهٔ امنیتی شبکه در بلندمدت مهمتر میشود.
🔬 توضیح تخصصی
قاعدهٔ انتخاب زنجیره در بیتکوین «بیشترین کار انباشته» است، نه «بیشترین تعداد بلاک». زنجیرهای که بلاکهای کمتری با دشواری بالاتر دارد، میتواند بر زنجیرهٔ طولانیتر ولی کمکارتر غلبه کند. مهاجمی که اکثریت توان را دارد میتواند بلاکها را مخفیانه بسازد و سپس زنجیرهٔ سنگینترش را منتشر کند تا تراکنشهای خودش را برگرداند (خرج دوباره)، تراکنشهای دیگران را سانسور کند یا بلاکهای ماینرهای دیگر را یتیم کند. اما نمیتواند بدون کلید خصوصی دارایی دیگران را خرج کند، بیش از پاداش مجاز سکه بسازد یا قواعد را تغییر دهد؛ چون نودهای کامل چنین بلاکهایی را رد میکنند.
امنیت اثبات کار اقتصادی است، نه مطلق. پرسش اصلی این است که اجاره یا خرید توان لازم برای چند ساعت حمله چقدر هزینه دارد و در مقایسه با سود خرج دوباره چقدر است. برای زنجیرههای کوچکی که الگوریتم استخراجشان با الگوریتم زنجیرهٔ بزرگتری مشترک است، اجارهٔ توان در بازارهای اجارهٔ هش میتواند آنقدر ارزان باشد که حمله سودآور شود. در مقابل، در زنجیرهای که توان آن در سختافزار تخصصی بسیار بزرگی سرمایهگذاری شده، حملهکننده با نابودی اعتماد به شبکه، ارزش سرمایهٔ خودش را هم از بین میبرد.
پژوهش «استخراج خودخواهانه» (Eyal و Sirer، ۲۰۱۳) نشان داد ماینری با کمتر از نیمی از توان هم، در شرایط خاص شبکه، میتواند با پنهانکردن موقت بلاکها سهمی بیش از سهم عادلانهاش به دست آورد؛ پس آستانهٔ ۵۱٪ یک مرز سادهشده است. تمرکز در استخرها هم ریسک است، هرچند استخر توان را مالک نیست و ماینرها میتوانند استخرشان را عوض کنند. انتقاد مهم دیگر مصرف انرژی است؛ طرفداران استدلال میکنند هزینهٔ انرژی دقیقاً همان چیزی است که بازنویسی تاریخچه را گران میکند، و منتقدان به هزینهٔ زیستمحیطی آن اشاره میکنند. شناخت هر دو استدلال برای قضاوت منصفانه لازم است.
🌍 مثال واقعی: حملههای ۵۱٪ به اتریوم کلاسیک (ژانویهٔ ۲۰۱۹ و اوت ۲۰۲۰)
اتریوم کلاسیک (ETC) زنجیرهای اثبات کار بود که توان استخراجش در مقایسه با اتریوم آن زمان بسیار کمتر بود. در ژانویهٔ ۲۰۱۹ صرافی Coinbase اعلام کرد چند سازماندهی مجدد عمیق زنجیره را شناسایی کرده که همراه با خرج دوباره بوده و ارزش آن را حدود ۱٫۱ میلیون دلار (به ارزش آن زمان) گزارش کرد.
در اوت ۲۰۲۰ دوباره چند حملهٔ ۵۱٪ به اتریوم کلاسیک گزارش شد که در آنها هزاران بلاک بازنویسی شد. صرافیها در واکنش، تعداد تأییدهای لازم برای واریز ETC را بهشدت افزایش دادند.
درس این رویداد: «اثبات کار» بهخودیخود امنیت نمیآورد؛ امنیت به میزان کار انباشته و هزینهٔ تهیهٔ اکثریت توان بستگی دارد. همین رویداد نشان میدهد چرا تعداد تأیید لازم در هر شبکه و هر صرافی متفاوت است.
🔤 واژگان تخصصی
سازوکار اجماعی که در آن حق تولید بلاک با یافتن هشی کوچکتر از هدف به دست میآید؛ یافتنش پرهزینه و بررسیاش ارزان است.
مثال: بیتکوین از ۲۰۰۹ تاکنون با اثبات کار مبتنی بر SHA-256 دوگانه کار میکند.
معیاری از سختی یافتن هش معتبر که در بیتکوین هر ۲۰۱۶ بلاک تنظیم میشود تا میانگین زمان بلاک ۱۰ دقیقه بماند.
مثال: اگر نیمی از ماینرها خاموش شوند، تا تنظیم بعدی بلاکها کندتر ساخته میشوند و سپس دشواری کم میشود.
تعداد هشهایی که یک ماینر یا کل شبکه در هر ثانیه محاسبه میکند؛ نمایانگر توان استخراج.
مثال: سهم یک استخر از نرخ هش شبکه، سهم تقریبی آن از بلاکهای ساختهشده است.
گروهی از ماینرها که توانشان را ترکیب میکنند و پاداش را به نسبت سهم کار تقسیم میکنند تا درآمد پایدارتری داشته باشند.
مثال: ماینر کوچک بهجای برندهشدن یک بلاک کامل در چند سال، هر روز سهم کوچکی دریافت میکند.
حملهای که در آن کنترل اکثریت توان اجماع امکان بازنویسی بلاکهای اخیر، خرج دوباره و سانسور را میدهد.
مثال: اتریوم کلاسیک در ۲۰۱۹ و ۲۰۲۰ چنین حملههایی را تجربه کرد.
کاهش نصف پاداش بلاک بیتکوین در هر ۲۱۰ هزار بلاک که عرضهٔ کل را به کمتر از ۲۱ میلیون محدود میکند.
مثال: در ۲۰ آوریل ۲۰۲۴ در بلاک ۸۴۰۰۰۰ پاداش از ۶٫۲۵ به ۳٫۱۲۵ بیتکوین رسید.
🔑 نکات کلیدی
- اثبات کار حق تولید بلاک را به هزینهٔ واقعی (انرژی و سختافزار) گره میزند؛ یافتن جواب سخت و بررسی آن آسان است.
- دشواری بیتکوین هر ۲۰۱۶ بلاک با نسبت «دو هفته ÷ زمان واقعی» تنظیم میشود تا میانگین زمان بلاک ۱۰ دقیقه بماند.
- قاعدهٔ انتخاب زنجیره بیشترین کار انباشته است، نه بیشترین تعداد بلاک.
- مهاجم ۵۱٪ میتواند خرج دوباره و سانسور کند، ولی نمیتواند بدون کلید دارایی دیگران را خرج کند یا قواعد را عوض کند.
- امنیت اثبات کار اقتصادی و نسبی است؛ زنجیرههای کوچک با توان قابل اجاره آسیبپذیرترند.
⚠️ اشتباهات رایج
- تصور اینکه ماینرها «معادلهٔ ریاضی پیچیده» حل میکنند؛ در واقع حدسوآزمون تصادفی هش است و میانبُر هوشمندانهای ندارد.
- باور به اینکه حملهٔ ۵۱٪ امکان سرقت از هر کیف پولی را میدهد؛ مهاجم فقط تراکنشهای خودش را برمیگرداند و تراکنشها را سانسور میکند.
- فرض اینکه زنجیرهٔ «طولانیتر» همیشه برنده است؛ معیار، کار انباشته است.
- استفاده از یک تعداد تأیید ثابت برای همهٔ شبکهها؛ زنجیرهٔ کمتوان به تأیید بسیار بیشتری نیاز دارد.
🛠 تمرین عملی: محاسبهٔ دشواری و سهم بلاکها با دادهٔ واقعی
- در mempool.space بخش Mining را باز کنید و دشواری فعلی، پیشبینی تغییر بعدی و تعداد بلاکهای باقیمانده تا تنظیم بعدی را یادداشت کنید.
- با فرمول «دشواری جدید ≈ دشواری فعلی × ۱۴ روز ÷ زمان واقعی دوره»، تغییر بعدی را خودتان تخمین بزنید و با پیشبینی سایت مقایسه کنید.
- سهم سه استخر بزرگ از بلاکهای اخیر را بنویسید و حساب کنید هر کدام بهطور میانگین چند بلاک در روز پیدا میکند.
- در آزمایشگاه هش، با افزودن عدد به یک جمله، هشی پیدا کنید که با دو صفر هگز شروع شود و تعداد تلاشها را با میانگین نظری ۲۵۶ مقایسه کنید.
- در یک بند توضیح دهید اگر دو استخر بزرگ با هم متحد شوند و بیش از نیمی از توان را داشته باشند، چه کارهایی از دستشان برمیآید و چه کارهایی نه.
✅ معیار درستی: تخمین شما باید با پیشبینی mempool.space همجهت و در همان حدود باشد؛ تعداد بلاک روزانهٔ هر استخر باید تقریباً برابر «سهم × ۱۴۴» باشد؛ و پاسخ بند آخر باید خرج دوباره و سانسور را ممکن و سرقت بدون کلید و تغییر قواعد را ناممکن بداند.
🔒 در هیچ تمرینی از سرمایهٔ واقعی، عبارت بازیابی (Seed Phrase)، کلید خصوصی یا اتصال کیف پول اصلی استفاده نکنید.
📝 آزمون تطبیقی
هر بار ۵ سؤال از بانک ۸ سؤالی این درس انتخاب میشود؛ سؤالهایی که قبلاً اشتباه زدهاید زودتر برمیگردند. حدنصاب قبولی ۸۰٪ (۴ از ۵) است و درس بعد با قبولی باز میشود.
✍️ پرسش تشریحی
استدلال کنید چرا امنیت اثبات کار «اقتصادی» است. در پاسخ، هزینهٔ حمله، سود احتمالی خرج دوباره و نقش تعداد تأییدها را با هم مقایسه کنید و از حملههای اتریوم کلاسیک استفاده کنید.
بعد از نوشتن، پاسخ خود را با این معیارها بسنجید
خودارزیابی: هر نکتهای را که پاسخ شما بهروشنی پوشش داده علامت بزنید.
🤖 دستیار آموزشی
دستیار آفلاین آکادمی: پاسخها فقط از متن درسها و واژگان همین آکادمی پیدا میشوند و منبع هر پاسخ نشان داده میشود. هوش مصنوعی مولد نیست، حدس نمیزند و هیچ سیگنال خرید و فروشی نمیدهد.
📎 منابع مطالعاتی
- Bitcoin: A Peer-to-Peer Electronic Cash System (sections 4 and 11)
- ethereum.org — Proof-of-work (PoW)
- mempool.space — Mining dashboard and FAQ
🏁 معیار تسلط بر این درس: بتوانید تغییر دشواری را از روی زمان یک دوره حساب کنید، سهم بلاک یک ماینر را تخمین بزنید و تواناییها و محدودیتهای مهاجم ۵۱٪ را دقیق بیان کنید.