الگوریتم اثبات کار چیست و چگونه کار میکند؟
تمرکززدایی بخشی کلیدی از چشم انداز اولیه برای ارزهای دیجیتال بود. برای انجام این کار، باید راهی برای تایید تراکنشها بدون دخالت نهادهای مالی فراهم میشد. یکی از راهکارها برای حل این چالش، الگوریتم اثبات کار (Proof of Work) است.
اثبات کار (PoW) شکلی از افزودن بلاکهای جدید تراکنشها به بلاک چین یک ارز دیجیتال است. کریپتوکارنسی ابتدا با اثبات کار شروع شد. اثبات کار مکانیزم اجماع مورد استفاده اولین ارز دیجیتال، یعنی بیت کوین است. این شیوه امنیت بالایی دارد اما به دلیل ناکارآمدی و اثرات زیست محیطی همواره مورد انتقاد قرار گرفته است.
با درک اثبات کار، درک بهتری از کوینهایی خواهید داشت که از این شیوه استفاده میکنند و این مسئله در انتخاب ارز دیجیتال برای سرمایهگذاری میتواند تاثیرگذار باشد. در ادامه این مقاله از مجله نوبیتکس، به تعریف و بررسی کامل اثبات کار، تفاوت آن با اثبات سهام و مزایا و معایب الگوریتم اثبات کار خواهیم پرداخت.
اثبات کار چیست؟
ارزهای دیجیتال برای تأیید صحت تراکنشها و دادههای جدیدی که به بلاک چین اضافه میشوند ناظران متمرکزی ندارند. درعوض، برخی از ارزهای دیجیتال برای اعتبارسنجی تراکنشهای دریافتی و اضافه کردن آنها به عنوان بلاکهای جدید، به شبکهای از شرکتکنندگان متکی هستند.
اثبات کار یک مکانیسم توافقی برای انتخاب شرکتکنندگان شبکه (ماینرها) است که وظیفه تأیید دادههای جدید را بر عهده دارند. انجام این فعالیت توسط ماینرها پاداش دارد و ماینرها زمانی که دادههای جدید را به درستی تایید میکنند و سیستم را فریب نمیدهند، با رمزارز پاداش میگیرند.
آموری سچت (Amaury Sechet)، بنیانگذار ارز دیجیتال eCash، میگوید:
«اثبات کار یک مکانیسم توافقی است که به نهادهای ناشناس در شبکههای غیرمتمرکز اجازه میدهد به یکدیگر اعتماد کنند.»
کلمه «کار» (work) در عبارت اثبات کار (Proof of Work) واژه کلیدی است. الگوریتم اثبات کار طوری طراحی شده که برای کارکرد شبکه ماینرها در حل معماهای پیچیده ریاضی با یکدیگر رقابت کنند. برای ایجاد انگیزه مشارکت در ماینرها، حل این معادلات پیچیده با پاداش همراه است. این رقابت به قدرت محاسباتی زیادی نیاز دارد و باعث ایجاد دستگاههای استخراج مخصوصی مانند اسیک ماینر (ASIC miner) نیز شده است. این دستگاهها گران قیمت هستند و انرژی زیادی نیز مصرف میکنند. کلمه کار به این مسئله اشاره دارد. الگوریتم اثبات کار تلاش دارد به این شیوه از دستکاری در سیستم جلوگیری کنند.
برنده این رقابت برای افزودن جدیدترین دسته از دادهها یا تراکنشها به بلاک چین انتخاب میشود. البته ماینرهای برنده تنها زمانی پاداش رمزارزی خود را دریافت میکنند که سایر شرکت کنندگان در شبکه اعتبار و صحت دادههای اضافه شده به بلاک چین را تایید کنند.
منشا اثبات کار چیست؟
اگرچه امروزه اثبات کار بیشتر با بلاک چین بیت کوین شناخته میشود اما منشا آن به قبل از انتشار وایت پیپر بیت کوین باز میگردد. وایت پیپر بیت کوین در سال 2008 توسط فردی با نام مستعار ساتوشی ناکاموتو منتشر شد اما مفهوم اثبات کار حداقل از اوایل دهه 1990 در دنیای محاسبات وجود داشته است. اصطلاح “اثبات کار” پنداشته میشود که برای اولین بار در مقالهای توسط دو دانشمند علوم کامپیوتر، آری جوئلز (Ari Juels) و مارکوس جیکبسن (Markus Jakobsson)، در سال 1999 استفاده شده است.
در بیت کوین، ناکاموتو مکانیسم اثبات کار را تا حد زیادی بر اساس هشکَش (Hashcash)، یک راه مقابله با حملات منع سرویس (Denial of Service, DoS) که در سال 1997 توسط آدام بک (Adam Back) بیان شد، استوار کرد. در واقع ناکاموتو اثبات کار را به عنوان ابزاری برای اطمینان از دشوارتر شدن حمله به بیت کوین با اضافه شدن بلاکها در نظر گرفت.
درک بهتر الگوریتم اثبات کار
بلاک چین بیت کوین مانند یک دفتر است که تمام تراکنشهای بیت کوین را ثبت میکند اما به صورت غیرمتمرکز. بیایید برای سادهتر شدن مسئله آن را مشابه وارد کردن تراکنشها در یک صفحه اکسل در نظر بگیریم. هر بلاک شبیه به یک سلول نرم افزار اکسل است. اطلاعاتی مانند مبلغ تراکنش، آدرس کیف پولها، زمان و تاریخ ثبت میشوند و به صورت رمزگذاری شده در هدر بلاک (Block Header) قرار میگیرند. این یک عدد هگزادسیمال (دستگاه اعداد پایه ۱۶) است که از طریق تابع هش بلاک چین ایجاد میشود.
هش هر بلاک در بلاکی که پس از ایجاد هش به دنبال آن میآید، استفاده میشود. این کار زنجیرهای از بلاکها ایجاد میکند که نمیتوان آنها را تغییر داد زیرا اطلاعات هر بلاک در هش جدیدترین بلاک گنجانده شده است.
هش
هنگامی که یک بلاک بسته میشود، قبل از باز شدن یک بلاک جدید، هش (Hash) باید تأیید شود. اینجاست که اثبات کار وارد میشود. هش یک عدد هگزادسیمال 64 رقمی رمزگذاری شده است. با فناوری مدرن، میتوان در چند میلیثانیه برای حجم زیادی از دادهها هش تولید کرد. با این حال، ماینرها سعی میکنند آن هش را پیدا کنند که از نظر محاسباتی زمان بسیار زیادی میبرد. ماینینگ فرآیند اعتبارسنجی تراکنشها با یافتن هش و دریافت پاداش است.
نانس
هش شامل یک سری اعداد به نام نانس (nonce) است که مخفف عبارت «عددی که تنها یک بار استفاده میشود» (Number Only Used Once) است. در واقع نانس یک عدد است که ماینر میتواند با تغییر آن، هش را تغییر دهد. ماینرها آنقدر این عدد را تغییر میدهند تا هش هدر بلاک از تارگت تعیین شده توسط شبکه بیت کوین کوچکتر باشد.
یافتن هش
اگر هش کمتر از هدف تعیین شده توسط شبکه باشد، ماینر با موفقیت هش را حل کرده است. هدف شبکه یک نتیجه ریاضی از فرمولی است که به عدد هگزادسیمال تبدیل شده است. اگر هش بزرگتر از هدف باشد، برنامه ماینینگ مقدار 1 را به نانس اضافه میکند و دوباره هش ایجاد میکند. در بلاک چین بیت کوین، به استخراجکنندهای که هش را حل میکند، برای کار انجام شده پاداش داده میشود.
مثالی از اثبات کار
در اینجا مثالی از نحوه استفاده بیت کوین از اثبات کار برای حفظ یکپارچگی بلاک چین آوردهایم. هنگامی که تراکنشهای بیتکوین اتفاق میافتد، وارد فرایند تایید امنیتی میشوند و در یک بلاک برای استخراج گروهبندی میشوند. سپس الگوریتم اثبات کار بیت کوین یک هش برای بلاک ایجاد میکند. الگوریتمی که بیت کوین استفاده میکند SHA-256 نام دارد و هشهایی با 64 کاراکتر تولید میکند.
ماینرها با هم رقابت میکنند تا اولین کسی باشند که هش هدف را تولید کنند. برنده این رقابت آخرین بلاک تراکنشها را به بلاک چین بیت کوین اضافه میکند. ماینرها همچنین پاداش بیت کوین را در قالب کوینهای تازه ضرب شده و کارمزد تراکنش دریافت میکنند. اما باید توجه داشت که بیت کوین دارای حداکثر عرضه 21 میلیون کوین است و پس از رسیدن به این تعداد عرضه، ماینرها به دریافت کارمزد تراکنش برای خدمات خود ادامه خواهند داد.
هدف الگوریتم اثبات کار مورد استفاده بیت کوین این است که هر 10 دقیقه یک بلاک جدید اضافه کند. برای رسیدن به این هدف، الگوریتم سختی شبکه را بر اساس سرعتی که ماینرها بلاکهای جدید را اضافه میکنند، تنظیم میکند. اگر استخراج خیلی سریع انجام شود، محاسبات هش سختتر میشود. اگر خیلی آهسته پیش برود، محاسبات راحتتر میشوند.
چرا اثبات کار اهمیت دارد؟
یکی از مسائلی که در گذشته مانع از توسعه یک ارز دیجیتال شده بود، مشکل دوبار خرج کردن (Double Spending) نام داشت. کریپتوکارنسی فقط داده است، بنابراین باید مکانیزمی وجود داشته باشد که از خرج کردن واحدهای مشابه در مکانهای مختلف توسط کاربران جلوگیری کند.
همان طور که یک دلاری که در دست شما است را نمیتوانید چند بار خرج کنید، باید راهی فراهم میشد که این اتفاق برای ارز دیجیتال نیز نیفتد. مکانیسم اجماع ناکاموتو مشکل دوبار خرج کردن را حل کرد. اثبات کار با استفاده از ماینرها برای تایید تراکنشهای جدید قبل از افزودن آنها به بلاک چین، به جلوگیری از دوبار خرج کردن کمک میکند.
اثبات کار و استخراج (Mining)
یک حساب بانکی معمولی را در نظر بگیرید. اگر چکی را به حساب بانکی خود واریز کنید، چگونه متوجه میشوید که مبلغ دقیق آن به حساب شما واریز میشود؟ نویسنده چک چگونه اعتماد میکند که فقط مبلغی که روی چک نوشته است از او کسر میشود؟ ارزش یک بانک این است که همه طرفهای معامله به بانک اعتماد دارند تا پول را به طور دقیق جابهجا کند.
در ارزهای دیجیتال، هیچ بانکدار یا مؤسسه مالی برای اعتماد وجود ندارد. الگوریتم اثبات کار به کمک ماینرها، تراکنشهای شفاف و دقیق را تضمین میکند. در بلاکچینهایی که از اثبات کار استفاده میکنند، ماینرها نگهبانان و تسهیلکنندههایی هستند که باعث اجرای روان و درست سیستم میشوند.
مکانیزم اثبات کار، برای انجام این کار به منابع محاسباتی ماینرها نیاز دارد. در ادامه به نحوه عملکرد آن پرداختهایم:
- تراکنشهای جدید با هم گروه بندی میشوند. کاربران ارزهای دیجیتال را خرید و فروش میکنند و دادههای این تراکنشها در بلوک جمع میشوند.
- ماینرها برای پردازش بلوک جدید با هم رقابت میکنند. ماینرها برای اول شدن در حل یک مسئله پیچیده ریاضی رقابت میکنند. با نشان دادن مدرکی مبنی بر اینکه آنها کار محاسباتی را انجام دادهاند، که به آن هش گفته میشود، حق پردازش بلاک تراکنشها برای ماینر ایجاد میشود.
- یک ماینر برای افزودن بلاک جدید انتخاب میشود. در تصمیمگیری اینکه که کدام ماینر وظیفه پردازش بلاک را بر عهده بگیرد، درجهای از تصادفی بودن وجود دارد. به برنده کوینهای کریپتوکارنسی جدید تعلق میگیرد و یک بلوک جدید به بلاک چین اضافه میکند.
دن شونک (Dan Schwenk)، مدیر اجرایی تحقیقات دارایی دیجیتال (Digital Asset Research) میگوید: ماینرها برای حل مسائل پیچیده ریاضی تلاش میکنند تا پاداشی کسب کنند. اینها مسائل پرزحمتی هستند که حل آنها به توان و انرژی محاسباتی قابل توجهی نیاز دارد. از آنجایی که ماینرها منابع قابل توجهی در تجهیزات کامپیوتری و انرژی مورد نیاز سرمایهگذاری کردهاند، انگیزه لازم برای اعتبارسنجی دقیق تراکنشها را دارند.
مزایا و معایب اثبات کار
در این بخش به بررسی مزایا و معایب اثبات کار در مقایسه با مکانیسمهای دیگر، مانند اثبات سهام میپردازیم.
در درجه اول، اثبات کار احتمالاً امنیت بیشتری را نسبت به سایر مکانیسمهای اجماع فراهم میکند، به طوری که بیت کوین اکنون بیش از یک دهه است که بدون قطع یا مشکل قابل توجهی کار میکند.
پروفسور ناتنبلت (Knottenbelt) میگوید: “از لحاظ امنیتی، اثبات کار نشان داده است که برای بیش از 10 سال به خوبی کار میکند. هنوز در مورد اثبات سهام شکهایی وجود دارد.”
اما در حالی که اثبات کار سطح بهینهای از امنیت و عدم تمرکز را فراهم میکند، هزینه قابل توجهی را نیز تحمیل میکند: مصرف زیاد انرژی.
بر اساس برخی برآوردها، اثبات کار باعث شده که مصرف انرژی بلاک چین بیت کوین در یک سال معادل مصرف کشوری به اندازه تایلند شود. همچنین این کار مقدار زیادی زباله الکترونیکی تولید میکند و سخت افزارها برای جایگزینی با مدلهای قدرتمندتر توسط ماینرها دور ریخته میشوند.
برای کسی که بیت کوین را با ارزش میداند و معتقد است بیت کوین سهم مهمی در تکامل پول دارد، این مصرف انرژی و اتلاف میتواند بهایی برای مکانیزم اجماعی باشد که واقعاً ثابت شده است در مقیاس بزرگ نیز قدرتمند است. اما برای کسانی که همچنان نسبت به ارزهای دیجیتال مشکوک هستند، این اتفاق اساساً یک فاجعه است.
مزایا |
معایب |
ارائه روشی غیرمتمرکز برای تایید تراکنشها | ناکارآمدی با سرعت پایین تراکنش و کارمزد گران |
سطح امنیت بالا | مصرف زیاد انرژی |
امکان کسب جوایز کریپتویی برای ماینرها | استخراج اغلب به تجهیزات گران قیمت نیاز دارد |
کدام ارزهای دیجیتال از اثبات کار استفاده میکنند؟
علاوه بر بیت کوین، تقریباً همه ارزهای دیجیتال که مبتنی بر بیت کوین هستند یا یک فورک از بیت کوین هستند، هم از اثبات کار استفاده میکنند. ارزهای دیجیتال:
- بیت کوین کش (Bitcoin Cash)
- بیت کوین اس وی (Bitcoin SV)
- لایت کوین (Litecoin)
- دوج کوین (Dogecoin)
- بیت کوین گلد (Bitcoin Gold)
از این دسته هستند. همچنین طیف گستردهای از ارزهای دیجیتال دیگر نیز وجود دارد که مبتنی بر بیتکوین نیستند و در حال حاضر از اثبات کار استفاده میکنند، از جمله:
- اتریوم کلاسیک (Ethereum Classic)
- مونرو (Monero)
- زد کش (Zcash)
- کادنا (Kadena)
- ریون کوین (Ravencoin)
- هورایزن (Horizen)
- دیجی بایت (DigiByte)
در حالی که اثبات کار شیوهای رایج است، مکانیسم اجماع دیگری که به عنوان اثبات سهام شناخته میشود نیز به طور گسترده استفاده میشود.در اثبات سهام کاربران با توجه به سهامی که به شبکه سپردهاند، میتوانند در اثبات سهام شرکت کرده و بلاکهای جدید را به شبکه اضافه کنند.
تفاوت اثبات کار و اثبات سهام
اثبات کار اولین مکانیزم اجماع ارزهای دیجیتال بود. در سال 2012 یک جایگزین برای الگوریتم اثبات کار، به نام اثبات سهام، با راه اندازی پیرکوین (Peercoin) ارائه شد. اعتبارسنجی تراکنشها را بر اساس تعداد کوینهایی که در شبکه گذاشتهاند یا قفل کردهاند، انتخاب میکند.
از آنجایی که اثبات سهام تقریباً به اندازه اثبات کار به قدرت محاسباتی نیاز ندارد، مقیاسپذیرتر است. اثبات سهام میتواند با هزینههای کمتر و با مصرف انرژی کمتر، تراکنشها را سریعتر پردازش کند. این امر باعث میشود که رمزارزهای اثبات سهام با محیطزیست سازگارتر باشند. از آنجایی که نیازی به سختافزارهای گران قیمت نیست، شروع استیکینگ رمز ارز بسیار راحتتر از استخراج است.
با این حال، به نظر میرسد از جنبه امنیتی اثبات کار دست بالاتر را دارد. همچنین یکی از ایرادات احتمالی در مورد اثبات سهام این است که گروههای دارای مقادیر زیاد رمزارز میتوانند قدرتی بیش از حد داشته باشند، مسئله ای که در اثبات کار وجود ندارد.
جمعبندی
اثبات کار یک مکانیسم توافقی است که توسط بسیاری از ارزهای دیجیتال برای اعتبارسنجی تراکنشها در بلاک چین و اعطای توکنها برای مشارکت در شبکه استفاده میشود. اثبات کار یک فرآیند رقابتی است که از اطلاعات تراکنشهای در دسترس عموم برای تولید یک عدد هگزادسیمال با شرایطی خاص استفاده میکند. بر اساس اجماع اثبات کار، هزاران برنامه ماینینگ روی یک بلاک کار میکنند تا زمانی که هش حل شود، سپس به سراغ بلاک بعدی میروند.
اثبات کار انرژی زیادی مصرف میکند و دغدغههای زیست محیطی ایجاد کرده است. اگرچه از اثبات سهام بهعنوان جایگزینی با مصرف کمتر انرژی نام برده میشود اما اثبات کار هنوز توسط بسیاری از ارزهای دیجیتال استفاده میشود.