Skip to content Skip to sidebar Skip to footer

الگوریتم اثبات کار (Proof of work) چیست؟

زمان مطالعه: 23 دقیقه

«الگوریتم اثبات کار» (Proof of Work Consensus) قدیمی‌ترین و پرکاربردترین «الگوریتم اجماع» (Consensus Algorithm) است. پرطرفدارترین رمزارز بازار، یعنی «بیت‌کوین» (Bitcoin)، از این الگوریتم برای فرایند اجماع استفاده می‌کند و بیت‌کوین امنیت خود را به وسیله اثبات کار تامین می‌کند. در این مطلب می‌خواهیم بگوییم که الگوریتم اثبات کار چیست و چه دلیلی باعث شد به وجود بیاید، طرز کار آن چگونه است و چه مزایا و معایبی دارد؟

 

الگوریتم «اثبات کار» (Proof of Work) که به اختصار به صورتِ (PoW) نوشته می‌شود، اولین‌بار در سال 1997، توسط فردی به نام «آدام بک» (Adam Back) پیشنهاد شد. او برای جلوگیری از پخش ایمیل‌های اسپم استفاده از اثبات کار را پیشنهاد داد.

 

سال‌ها قبل از اینکه ساتوشی در «وایت‌پیپر بیت‌کوین» (Bitcoin White Paper)، از اثبات کار نام ببرد، آدام بک، راهکار خود را تحت عنوان «هش‌کَش» (Hashcash) ارائه کرده بود.

 

پیشنهاد آدام این بود که فرستندگان ایمیل قبل از ارسال آن مجبور به انجام مقداری محاسبه‎ ‌شوند. این محاسبات شامل حل مسائل و معماهای ریاضی ا‌ست. (جلوتر توضیح خواهیم داد که منظور از کار (Work) در الگوریتم اثبات کار نیز در واقع انجام محاسبات است.)

 

برای کاربری که قصد ارسال یک ایمیل را داشته باشد این حجم از محاسبه آن‌قدر زیاد نیست که مزاحمت و مشقتی برای او ایجاد کند، اما برای فرستنده‌ای که قصد ارسال هزاران ایمیل اسپم را داشته باشد دشوار و هزینه‌بر است؛ بنابراین از ارسال ایمیل اسپم منصرف می‌شود.

 

سال 2009 ساتوشی ناکاموتو در مقاله وایت پیپر بیت‌کوین، به هش‌کش ارائه شده توسط آدام بک اشاره کرد و گفت برای جلوگیری از عملِ دوبار خرج‌کردنِ یک بیت‌کوین قصد دارد از الگوریتم اثبات کار استفاده کند.

 

منظور از «دوبار خرج کردن» (Double Spending) این است که افراد بیت‌کوینی را که خرج کرده‌اند و دیگر متعلق به آن‌ها نیست را بتوانند دوباره برگردانند یا جای دیگری خرج کنند. این اصطلاح تقریباً فقط در مورد دارایی‌های دیجیتال به کار می‌رود.

 

برخی از رمزارزهای معروف که از این الگوریتم استفاده می‌کنند؛ بیت‌کوین، اتریوم (Ethereum)، لایت‌کوین (Litecoin)، دوج‌کوین (Dogecoin) و … هستند.

 

توجه: برای درک بهتر الگوریتم اثبات کار پیشنهاد می‌کنیم، ابتدا مطالب ما درمورد «بلاک‌چین» (Blockchain) و الگوریتم اجماع» (Consensus Algorithm) را بخوانید. این‌کار در درک عمیق این الگوریتم بسیار مفید است.

الگوریتم اثبات کار چطور کار می‌کند؟

بلاک‌چین فضایی برای ثبت امن اطلاعات است. ثبت این اطلاعات توسط خود اعضا انجام می‌شود. در مورد اینکه چه اطلاعاتی شایستگی ثبت در بلاک‌چین را دارند، اعضا تصمیم‌گیری می‌کنند. اگر اکثریت اعضا به توافق برسند، اطلاعات تائید و در بلاک‌چین ثبت می‌شوند. به این توافق «اجماع» (Consensus) می‌گویند.

 

الگوریتم اثبات کار، نوعی الگوریتم اجماع است. در این الگوریتم، نحوه کار به این صورت است که از طرف بلاک‌چین، برای هر بلاک معمایی طرح شده است و افراد باید پاسخ آن را پیدا کنند.

تا زمانی که پاسخ این معما پیدا نشود بلاک به بلاک‌چین اضافه نمی‌شود. هنگامی که فردی پاسخ را پیدا کرد، آن پاسخ را برای بقیه اعضا می‌فرستد. آن‌ها شروع به بررسی آن پاسخ می‌کنند. در صورتی‌که همه‌ تراکنش‌های داخل بلاک بر اساس سوابق موجود در بلاک‌چین معتبر بود، اعضا، بلاک را تایید و بلاک جدید را به بلاک‌چین اضافه می‌کنند. به این کار «استخراج» (Mining) گفته می‌شود.


انگیزه افراد از شرکت در الگوریتم اثبات کار

انگیزه شرکت در فرآیند اضافه‌کردن بلاک به بلاک‌چین و ساخت آن نیز پاداشی است که پس از حل مسئله به افراد داده می‌شود. این پاداش به صورت ارز بومی شبکه پرداخت می‌شود. مثلاً افرادی که در اثبات کارِ بیت‌کوین شرکت می‌کنند، پس از تائید بلاک درست، بیت‌کوین برنده می‌شوند.

تجهیزات مورد استفاده در اثبات کار

برای حل معماها از کامپیوترهایی استفاده می‌شود که «توان محاسباتی» (Hashrate) بالایی دارند. به فرایند حل معماها با استفاده از توان محاسباتی، هشینگ (Hashing) می‌گویند. در گذشته معماها سختی آن‌چنانی نداشتند و امکان حل آن‌ها حتی با کامپیوترهای خانگی وجود داشت.

 

 اما امروزه و با افزایش چشم‌گیر تعداد ماینرها، پروتکلِ بلاک‌چین، سختی معماها را افزایش داده است. دلیل این امر این است که در الگوریتم اثبات کار، باید میانگین زمان تشکیل بلاک ثابت باشد.

 به عنوان مثال، در بلاک‌چینِ بیت‌کوین، این زمان 10 دقیقه است؛ یعنی 10 دقیقه طول می‌کشد تا یک بلاک به بلاک‌چین اضافه شود؛ بنابراین به مرور زمان که تعداد ماینرها زیاد می‌شود، معماهای شبکه سخت‌تر می‌شوند تا تشکیل بلاک، همچنان 10 دقیقه طول بکشد؛ بنابراین دشواری معماها براساس تعداد ماینرها و قدرت محاسباتی شبکه تنظیم می‌شود.

 

دوبار خرج کردن چیست؟

همان‎طور که پیش از این گفتیم، هدف ساتوشی، ناکاموتو از ارائه الگوریتم اثبات کار، جلوگیری از عمل «دوبار خرج کردن» (Double Spending) بیت‌کوین بود. دوبار خرج کردن، یعنی خرج کردن دارایی بیش از یک‌بار.

 

دوبار خرج‌کردن: یک مثال

فرض کنید به یک کافی‌شاپ رفته‌اید و یک فنجان قهوه سفارش می‌دهید. وقتی هزینه آن را پرداخت می‌کنید، صندوق‌دار پول شما را در صندوق می‌گذارد و احتمالاً اطلاعات آن را نیز در یک دفتر ثبت می‌کند. پول شما اکنون در صندوقِ کافی‌شاپ است و نمی‌توانید به کافی‌شاپ آن طرف جاده بروید و با همان پول قهوه دیگری را بخرید. در مورد دارایی‌های دیجیتال این امکان وجود دارد. چگونه؟

 

دوبار خرج‌کردن چگونه اتفاق می‌افتد؟

هنگامی‌که یک ماینر جواب مسئله‌ پروتکل را پیدا می‌کند، انتظار می‌رود این پاسخ را برای سایر ماینرها ارسال کند تا آن‌ها آن را تائید و سپس بلاک مربوط به آن به بلاک‌چین اضافه شود؛ اما یک ماینر خرابکار می‌تواند پس از پیداکردنِ پاسخ، آن را برای بقیه نفرستد.

ماینر خراب‌کار، بلاک جدید را به نسخه بلاک‌چینی که خود در اختیار دارد اضافه کند. موضوع اینجاست که چون قدرت زیادی دارد (51 درصد از قدرت شبکه)، نیاز به تائید دیگر اعضا برای بلاک خود ندارد و یه تنه آن را تائید و به بلاک‌چین اضافه می‌کند.

 

حال دو نسخه بلاک‌چین وجود دارد. یکی نسخه‌ای که دست ماینر خرابکار است و بلاک جدید را در خود دارد و نسخه‌ای که دست اعضای دیگر است و بلاک جدید به آن اضافه نشده است.

 

در این حالت، ماینر خراب‌کار، می‌تواند روی یکی از نسخه‌ها بیت‌کوین خود را خرج کند. مثلاً بنز بخرد خودش هم اطلاعات آن تراکنش را تایئد و به بلاک‌چین اضافه کند. اما روی نسخه دیگر بلاک‌چین که دست دیگر اعضاست، او هنوز بیت‌کوین خودش را دارد. بنابراین می‌تواند یک بار دیگر روی نسخه دوم بیت‌کوینش را بفروشد.

 

ماینر خرابکار به جهت توان قدرت هش بالایی که دارد-51 درصد از قدرت شبکه- می‌تواند بیش از یک‌بار، دارایی خود را خرج کند. به همین دلیل است که به حمله 51 درصد، دوبار خرج کردن نیز گفته می‌شود.

مزایای اثبات کار

  • همه افراد می‌توانند با تهیه امکانات لازم، در فرایند استخراج شرکت کنند و نیاز به مجوز خاصی ندارند.
  • در سال 2009، ساتوشی ناکاموتو با استخراج جنسیس بلاک (Genesis Block)، فرایند استخراج بلاک در بلاک‌چین بیت‌کوین را آغاز کرد. از آن زمان تاکنون، الگوریتم اثبات کار تاکنون مورد استفاده قرار دارد. به عبارتی به دفعات زیاد آزمایش شده و امتحان خود را پس داده است.
  • برای استخراج بلاک‌ها از قدرت هش استفاده می‌شود که در دست شخص خاصی نیست و بین سیستم‌های زیادی توزیع شده است.
  • در الگوریتم اثبات کار، افراد هزینه‌های زیادی را می‎پردازند. پروتکل، برای اینکه به افراد انگیزه مشارکت در فرایند استخراج را بدهد، برای آن‌ها، پاداش در نظر گرفته است.

 

معایب اثبات کار

  • هدررفتن انرژی:

    کامپیوترهایی که برای فرایند اجماع مورد استفاده قرار می‌گیرند، قدرت پردازش و CPU بالایی دارند و انرژی بسیار زیادی مصرف می‌کنند. گزارشی از سایت «بی‌بی‌سی» (BBC)، منتشر شد که نشان می‌داد، حدود 7 گیگاوات، معادل 0.21 درصد از برق مصرفی کل جهان، توسط بیت‌کوین مصرف می‌شود. این مشکل، آن‌قدر مهم بود که منجر به بروز انتقادات زیاد به اثبات کار شد تا حدی که الگوریتم دیگری به نام «الگوریتم اثبات سهام» (Proof of Stack Consensus) به وجود آمد.
  • تغییرکردن سختی شبکه:

    به مرور زمان که تعداد ماینرها زیاد می‌شود، پروتکل بلاک‌چین، معماهای سخت‌تری را طرح می‌کند. در نتیجه افراد مجبورند که از سخت‌افزارهای بهتری استفاده کنند تا شانسی برای استخراج بلاک داشته باشند. این امر ممکن است، هزینه‌های استخراج را افزایش دهد.
  • حمله 51 درصدی:

    اگر یه فرد یا گروه بتوانند، بخش بیش‌تر قدرت هش شبکه را به دست آورند، می‌توانند دست به حمله 51 درصدی بزنند و شبکه را به خط بیاندازند.
  • پایین بودن سرعت تشکیل بلاک‌چین:

    در بلاک‌چین بیت‌کوین، در هر ثانیه تنها 7 تراکنش، به ثبت می‌رسد. در مورد «اتریوم» (Ethereum) این رقم 15 است که چندان بهتر از بیت‌کوین نیست.
  • مقیاس‌پذیری Scaleability:

    هر بلاکی که به بلاک‌چین اضافه می‌شود، بسته به نوع آن بلاک‌چین، ظرف محدود و مشخصی دارد و تنها مقدار مشخصی اطلاعات را قادر است در خود بگنجاند؛ بنابراین اگر بلاکی پر شده باشد و در عین حال، اطلاعاتی آماده ثبت در آن باشند، آن اطلاعات باید صبر کنند تا بلاک دیگری تشکیل شود. این موضوع تحت عنوان مقیاس‌پذیری مطرح می‌شود.

 

جمع‌بندی

در این مطلب به بررسی الگوریتم اثبات کار، به عنوان پرکاربردترین الگوریتم اجماع پرداختیم و دیدیم که اثبات کار، به عنوان راه حل اصلی برای حل مشکل دو بار خرج کردن ارائه شد. سپس به بررسی رویداد دوبار خرج کردن در فضای دارایی‌های دیجیتال، پرداختیم و در پایان مروری بر مهم‌ترین مزایا و معایب این الگوریتم داشتیم.

 

نظر شما در مورد این الگوریتم چیست؟ آیا می‌دانید که الگوریتم‌های زیادی به دلیل مشکلات اثبات کار، به وجود آمده‌اند؟ چند مورد از آن‌ها را می‌شناسید؟ لطفا نظرات خودتان را با ما به اشتراک بگذارید.

 

منابع: Binance Academy، Coindesk، Cointelegraph

 

 

نمایش نظراتبستن نظرات

ارسال دیدگاه