الگوریتم اثبات کار چیست؟ proof of work چگونه کار میکند؟ کدام شبکهها از الگوریتم اجماع POW استفاده میکنند؟
هدف اصلی پروژهها و شبکههای بلاکچینی ایجاد بستری غیر متمرکز برای تبادل اطلاعات و ثبت تراکنشها است. این شبکهها قصد دارند ماهیت متمرکز سیستمها را از بین ببرند و با ایجاد شبکههای غیر متمرکز و همتا به همتا، شفافیت بالایی در ثبت تراکنشها و جابجایی دادهها ایجاد کنند. برای اجرای این هدف در شبکه های بلاک چینی از الگوریتمهای مختلفی استفاده میشود.
یکی از این الگوریتمها، الگوریتم اثبات کار (proof of work) نام دارد. Proof of work یا PoW یک الگوریتم اجماع است که امکان ثبت تراکنشها را به صورت غیر متمرکز برای شبکه فراهم میکند. در این مقاله قصد داریم تا الگوریتم اثبات کار POW را به صورت کامل مورد بررسی قرار دهیم.
بیشتر بخوانید: الگوریتم اجماع چیست به زبان ساده
الگوریتم اثبات کار چیست به زبان ساده
اثبات کار (proof of work) یکی از الگوریتمهای اجماع مورد استفاده در پروتکلها و شبکههای غیر متمرکز است. بیت کوین اولین شبکه بلاک چینی است که در سال 2009 این الگوریتم را به دنیای کریپتوکارنسی معرفی کرد. سازوکار این الگوریتم بدین صورت است که افراد شبکه برای آن که بتوانند تراکنشها را تایید و پردازش نمایند، باید دستگاههای محاسباتی و پردازشی خود را به بلاک چین شبکه متصل کنند. با این کار آنها میتوانند در پردازش شبکه مشارکت داشته باشند.
کاربران اجباری برای انجام این کار ندارند و صرفا افرادی که میخواهند به صورت داوطلبانه در پردازش شبکه مشارکت کنند؛ باید دستگاههای خود را به سیستم شبکه وصل کنند. این کاربران که به اصطلاح ماینر (miner) نام دارند؛ با ایجاد بلوک جدید و تایید تراکنشها در بلاکچین، از شبکه پاداش دریافت میکنند.
پاداش ماینرها معمولا به صورت کوین بومی شبکه به کیف پول آنها واریز میشود. این نوع کاربران برای دریافت پاداش شبکه باید با سایر ماینرها رقابت کنند. ماینرها با حل معادلات پیچیده ریاضی که توسط شبکه ساخته میشود؛ میتوانند تراکنشها را رمزنگاری و در شبکه ثبت کنند. ماینری که بتواند با سرعت بالاتری تراکنشها را پردازش و معادلات را حل کند؛ میتواند به پاداش شبکه برسد. هرچه تعداد ماینرهای یک بلاکچین افزایش یابد، معادلات ریاضی شبکه پیچیدهتر میشوند و ماینر باید از دستگاههای پردازشگر قدرتمندتری استفاده کند.
در اکثر شبکههای بلاکچینی که از الگوریتم اثبات کار pow استفاده میکنند؛ بعد از بزرگ شدن شبکه و افزایش تعداد کاربران، معادلات ریاضی شبکه و ایجاد ساخت بلوک جدید بسیار پیچیده و سخت میشود. همین امر باعث میشود که ماینر مجبور به پرداخت هزینه زیادی برای دستگاههای پردازشی شود تا بتواند از شبکه پاداش بگیرد.
وجود الگوریتم اثبات کار (pow) در شبکههای بلاک چینی، امنیت بالایی را برای کاربران فراهم می آورد. این موضوع به این دلیل است که تراکنشها با قطعیت بالا در شبکه تایید و ثبت میشوند. قطعیت به این معناست که همزمان دو بلاک برای یک تراکنش ایجاد نمیشوند و هر تراکنش کدهای منحصر به فردی دارد. فرض کنید در شبکه بیت کوین یک تراکنش انجام میدهید. بعد از ثبت تراکنش در شبکه، نودها در ابتدا تراکنش را بررسی و سپس برای ساخت کد منحصر به فرد آن پردازش خود را شروع میکنند.
نودها به هیچ عنوان نمیتوانند دو کد منحصر به فرد برای یک تراکنش ایجاد کنند و تنها باید یک کد مجزا برای تراکنش تعریف نمایند. بعد از ساخت کد منحصر به فرد یا هش بلاک، که در ادامه با آن آشنا میشویم، تراکنش در بلوک شبکه قرار میگیرد و به صورت قطعی ثبت میشود. بنابراین قطعیت در این شبکهها به این معناست که اطلاعات کاربر رمزنگاری شده و امکان کلاهبرداری در آن وجود ندارد.
تاریخچه الگوریتم اثبات کار (POW)
اغلب فعالان بازار کریپتو تصور میکنند الگوریتم proof of work توسط ساتوشی ناکاموتو برای اولین بار خلق شده است. این تصور اشتباه بوده و مفهوم این الگوریتم در چندین سال قبل، توسط بیت کوین ایجاد شده است. اولین بار در سال 1993 دو دانشمند کامپیوتر با نامهای Cynthia dwork و moni naor مفهوم الگوریتم اثبات کار را مطرح کردند. آنها الگوریتمی طراحی کردند که به صورت غیرمتمرکز میتواند اطلاعات یک سیستم را تایید کند.
بعد از آن در سال 1999 دو دانشمند دیگر با نامهای ari juels و markus jakobsoon مفهوم جدیدی به الگوریتم اثبات کار اضافه کردند. آنها الگوریتمی معرفی کردند که در برابر حمله هکرها و خرابکاران مقاوم است و به وسیله اشتراک چندین دستگاه پردازشی عمل میکند. بعد از آن در سال 2004 محققی با نام hal finney رویکرد الگوریتم proof of work را به سمت مباحث مالی سوق داد. او الگوریتمی برای ایمن ساختن پولهای دیجیتال و ایمیلها طراحی کرد که در آن سرورها با اشتراک سیستمهای پردازشی خود، میتوانند امنیت تراکنشهای دیجیتال را افزایش دهند.
همچنین به کمک الگوریتم طراحی شده، امکان ورود غیرمجاز به ایمیلها غیرممکن بود. درنهایت ساتوشی ناکاموتو به کمک تکنولوژی بلاک چین و خلاقیت بالا، در سال 2009 اولین الگوریتم اجماع را برای بیت کوین معرفی کرد. proof of work اولین الگوریتم اجماع ساخته شده در دنیای کریپتوکارنسی است.
الگوریتم اثبات کار pow چگونه عمل میکند؟
همانطور که اشاره شد ماینرها برای شرکت در پردازش شبکه و دریافت پاداش، باید دستگاههای پردازشگر خود را به شبکه متصل کنند. هدف از اتصال دستگاههای پردازشی به شبکه، ایجاد کدهای رمزنگاری شده برای هر بلاک است تا هکرها نتوانند به اطلاعات کاربران نفوذ پیدا کنند. هر بلاک در شبکههای بلاک چینی، اطلاعاتی مانند سوابق تراکنشها، زمان، تاریخ تراکنش و اطلاعات ارسال کننده و گیرنده را در خود ثبت میکند.
برای آنکه این اطلاعات به صورت کامل محفوظ بماند و خرابکاران نتوانند به آن نفوذ پیدا کنند، باید کدهای شناسایی منحصر به فردی برای آنها تعریف شود. این کدهای منحصر به فرد هش بلاک (hash) نام دارند. هش ها مانند اثر انگشت برای یک تراکنش هستند و از طریق تابع هش شبکه (hash function) ایجاد میشوند.
هش هر بلاک بر حسب اطلاعات ورودی ثبت شده در تراکنشها ایجاد میشود و با تغییرات اطلاعات ورودی، هش بلاک نیز به صورت کامل تغییر میکند. به همین دلیل نیز بعد از انجام یک تراکنش، دیگر نمیتوان هش بلاک آن تراکنش را تغییر داد. وظیفه اصلی ماینرها ایجاد هش های بلوک است که باید از طریق توابع هش شبکه، آنها را ایجاد کنند. این توابع برای ساخت کد منحصر به فرد و رمزنگاری شده از معادلات پیچیده ریاضی استفاده میکنند.
هر ماینری که معادلات توابع را زودتر حل کند، میتواند هش بلاک را ایجاد نماید و در نتیجه به پاداش برسد. به همین دلیل فضای رقابتی شدیدی بین ماینرها ایجاد میشود. ماینری که قدرت پردازشی بیشتری داشته باشد، میتواند معادلات پیچیده بیشتری را در مدت زمان کوتاهتری حل کرده و سریعتر هش بلاک را ایجاد کند. بنابراین در الگوریتم اثبات کار، به دلیل وجود تابع هش، نودهای شبکه باید به کمک دستگاههای پردازشی مقدار هش هر بلاک را بسازند و به ازای آن از شبکه پاداش دریافت کنند.
تفاوت الگوریتم اثبات کار با اثبات سهام
الگوریتم اثبات سهام (proof of stake) از دیگر الگوریتمهای پرکاربرد در شبکههای بلاکچینی است. براساس مکانیزم این الگوریتم، کاربران میتوانند با خرید رمز ارز بومی شبکه و استیک آن، از بلاچین شبکه پاداش دریافت کنند. استیک به این معناست که کاربر کوین یا توکن بومی شبکه را خریداری کرده و در مدت زمان معینی در آدرسهای مشخصی آن را قفل میکند.
این کار باعث میشود تا کاربران برحسب میزان دارایی قفل شده در آدرسها، در شبکه مشارکت کنند و تراکنشها در بلاک چین ثبت شود. بسیاری از توسعه دهندگان این الگوریتم را جایگزین الگوریتم proof of work میدانند. تفاوت الگوریتم های اثبات کار و اثبات سهام به صورت خلاصه موارد زیر هستند:
- نودها در الگوریتم اثبات کار PoW با نام ماینر شناخته میشوند؛ در حالیکه در الگوریتم PoS نام آنها اعتبارسنج (validator) است.
- در الگوریتم اثبات کار، نودها باید از دستگاههای پردازشی قدرتمند برای ثبت و تایید تراکنشها استفاده کنند. در حالیکه در الگوریتم اثبات سهام، نودها تنها به کوینها و توکنهای بومی شبکه نیاز دارند تا بتوانند در شبکه مشارکت کنند. آنها برحسب میزان سرمایه خود میتوانند کوین خریداری کنند و به کمک فرآیند استیکینگ در تایید تراکنشها مشارکت داشته باشند.
- الگوریتم PoS مشکلات محیط زیستی ندارد و با مصرف پایین انرژی به راحتی تراکنشهای شبکه را پردازش میکند. اما در الگوریتم PoW به دلیل وجود دستگاههای پردازشی قدرتمند، مصرف برق بسیار زیاد است. همین نکته مشکلات محیط زیستی بسیاری را برای ماینرها ایجاد میکند.
- در الگوریتم proof of stake اگر یک اعتبارسنج برخلاف الگوریتمهای شبکه عمل کند و خلافی مرتکب شود، از طریق کوینهای استیک شده مجازات شده و باید هزینه پرداخت کند. اما در الگوریتم اثبات کار مکانیزمی برای ماینر متخلف تعریف نشده است.
- با بزرگ شدن بلاک چین و افزایش ترافیک، اگر شبکه از الگوریتم proof of work پیروی کند، سرعت شبکه و مقیاس پذیری آن افت میکند. چون ترافیک بالا باعث افزایش هزینهها و سختی شبکه میشود و در نتیجه عملکرد شبکه کاهش مییابد. اما در شبکههایی که از الگوریتم proof of stake پیروی میکنند؛ با افزایش ترافیک شبکه مقیاس پذیری شبکه چندان تغییر پیدا نمیکند.
مزایای الگوریتم اثبات کار (Proof of Work)
- الگوریتم اثبات کار امنیت بالایی در شبکه ایجاد میکند. ماینرها با حل معادلات پیچیده ریاضی و ایجاد هش بلاک، امکان نفوذ به اطلاعات کاربران را غیرممکن میکنند. همچنین هکرها و خرابکاران برای نفوذ به شبکه باید از حمله 51 درصدی استفاده کنند. حلمه 51 درصدی بدین معناست که خرابکاران باید 51 درصد از قدرت پردازشی شبکه را از آن خود کنند؛ اما به دلیل مصرف بالای انرژی و هزینه بسیار زیاد، امکان چنین حملهای تقریبا غیر ممکن است.
- کاربران برای انجام فرآیند استخراج و شرکت در الگوریتم اثبات کار pow، به کوینهای شبکه احتیاجی ندارند. آنها به وسیله سیستمهای پردازشی میتوانند به شبکه متصل شوند و با ایجاد بلوک جدید، از بلاک چین پاداش دریافت کنند.
- به دلیل وجود پاداش در شبکه، احتمال جعل اطلاعات کاهش مییابد. در واقع نودها با اشتراک سیستمهای پردازشی خود، سعی میکنند معادلات پیچیده شبکه را حل کنند. ماینری که زودتر بتواند معادلات را حل کند، پاداش دریافت مینماید. بنابراین سایر ماینرها به جای خرابکاری در سیستم، ترجیح میدهند که با سایر نودها رقابت کنند و پاداش بیشتری بگیرند.
- به دلیل رقابتی بودن پاداش شبکه، تعداد ماینرها با بزرگ شدن بلاکچین افزایش پیدا میکنند. این امر نه تنها امنیت شبکه را افزایش میدهد، بلکه از وقوع هارد فورک های مکرر در بلاک چین نیز جلوگیری میکند. در واقع چون ماینرهای شبکه افزایش یافتهاند و میزان ارزش پاداش شبکه زیاد میشود؛ ماینرها سعی میکنند در همان شبکه با سایر کاربران رقابت کنند و پاداش بیشتری بگیرند. در نتیجه تمایل کمتری به اجرای هارد فورک دارند.
معایب الگوریتم اثبات کار (POW)
- بعد از مدتی هزینه دستگاههای پردازشی بسیار زیاد میشود. با رشد و توسعه شبکه، میزان قدرت محاسبات و سختی بلاک چین افزایش پیدا میکند. با افزایش سختی شبکه، ماینرها مجبور هستند تجهیزات و سخت افزارهای قدرتمندتری را خریداری کنند. سخت افزارهای قدرتمند مانند دستگاه های ASIC، هزینه بسیار بالایی دارند و باعث میشوند تا تعداد ماینرها به مرور زمان کاهش یابند. موضوعی که برخلاف تمرکززدایی شبکه های بلاکچینی است و امکان دارد باعث متمرکز شدن شبکه شود.
- الگوریتم اثبات کار با مصرف بالای انرژی همراه است. ماینرها برای انجام فرآیند استخراج و ساخت بلوک جدید، باید از دستگاههای پردازشی قدرتمند استفاده کنند. این دستگاهها مصرف برق بسیار بالایی دارند و میتوانند در آینده مشکلات محیط زیستی برای کاربران ایجاد کنند.
- اگرچه این شبکهها امنیت بالایی برای تراکنشها ایجاد میکنند؛ اما همچنان امکان حمله 51 درصدی در آنها نیز وجود دارد. زمانی که قدرت محاسباتی شبکه افزایش یابد، تنها تعداد محدودی از ماینرها میتوانند از پس هزینههای دستگاههای پردازشی بربیایند. در نتیجه تعداد ماینرها محدود شده و کاهش پیدا میکند. این موضوع احتمال حمله 51 درصدی را افزایش میدهد. در واقع گروهی از ماینرها میتوانند با یکدیگر همکاری کنند و قدرت 51 درصد شبکه را به دست بگیرند. البته این موضوع تقریبا غیر ممکن است اما احتمال آن صفر نیست!
- بیشتر شبکههایی که از الگوریتم اثبات کار استفاده میکنند، میزان مقیاس پذیری بسیار پایینی دارند. با بزرگ شدن شبکه و افزایش تعداد کاربران، میزان سختی شبکه بیشتر میشود. همین موضوع سرعت تراکنشها را کاهش میدهد. همچنین ماینرها برای انجام ثبت تراکنشها به پاداش بیشتری احتیاج دارند و این پاداش بیشتر سبب افزایش کارمزد تراکنش ها نیز میشود.
کدام ارزها از الگوریتم اثبات کار استفاده میکنند؟
- بیت کوین (bitcoin)
اولین شبکه بلاک چین که از الگوریتم اثبات کار استفاده کرد، بیت کوین است. این شبکه امنترین و غیر متمرکزترین بلاک چین در بازار کریپتوکارنسی است. موفقیت بیت کوین مدیون مهندسی هوشمندانه ساتوشی ناکاموتو است که توانست با ایجاد شبکهای غیر متمرکز، امکان تبادلات مالی را با امنیت بسیار بالا فراهم سازد. - لایت کوین (litecoin)
ارز دیجیتال لایت کوین در سال 2011 به عنوان یک هارد فورک بیت کوین راه اندازی شد. در این شبکه همانند بیت کوین از الگوریتم اجماع proof of work استفاده میشود. اغلب کاربران لایت کوین را نقره و بیت کوین را طلا میدانند؛ زیرا لایت کوین بیشتر برای تراکنشهای خرد و کوچک استفاده میشود. - دوج کوین (dogecoin)
دوج کوین، رمز ارزیست که در سال 2013 با هارد فورک شبکه لایت کوین ایجاد شد. سازوکار و الگوریتمهای این شبکه بسیار مشابه بلاک چین لایت کوین هستند و الگوریتم اثبات کار pow در دوج کوین نیز استفاده شده است. یکی از مهم ترین ویژگیهای دوج کوین، انجام سریع تراکنشهای خرد است. موضوعی که باعث شده تا این ارز دیجیتال مورد توجه بسیاری از فعالان بازار قرار گیرد. - مونرو (monero)
مونرو یک ارز رمزنگاری شده غیر متمرکز است که قصد دارد شبکهای با حریم خصوصی بالا برای کاربران ایجاد کند. این شبکه برای تایید تراکنشها از الگوریتم اثبات کار (pow) استفاده میکند. امضاهای حلقوی، آدرسهای مخفی و عدم امکان ردیابی تراکنشها از جمله مهم ترین ویژگیهای این شبکه به شمار میآیند. الگوریتم proof of work در مونرو به گونهای طراحی شده که در برابر دستگاههای ASIC مقاوم است.
همانطور که میدانید ASIC دستگاههای پردازشی قدرتمندی است که برای پردازش تراکنشهای بلاک چینها استفاده میشود. این دستگاه بسیار گران قیمت است و باعث میشود تا نودهای کمتری در شبکه فعالیت کنند. مونرو با ایجاد الگوریتمهای جدید در شبکه خود، این امکان را برای تمامی نودها فراهم میکند تا بتوانند با دستگاههای پردازشی ارزانتر در بلاک چین مونرو فعالیت کنند. - بیت کوین کش (bitcoin cash)
بیت کوین کش از دیگر رمز ارزهاییست که توسط هارد فورک بیت کوین در سال 2017 ایجاد شده است. این شبکه همانند بیت کوین از الگوریتم اثبات کار pow استفاده میکند. هدف بیت کوین کش بهبود مقیاس پذیری و سرعت تراکنشهاست. این شبکه با ایجاد محدودیت اندازه بلوک و افزایش آن تا حجم 32 مگابایت، امکان ذخیره تراکنشهای بیشتری را در بلوک خود فراهم کرده است. متاسفانه این شبکه تنها توسط چند استخر استخراج مدیریت میشود و مقیاس پذیری مناسبی ندارد.
ارزهای معرفی شده، معروفترین رمز ارزهایی هستند که از الگوریتم PoW استفاده میکنند. ارزهای دیگری مانند زی کش (Zcash)، اتریوم کلاسیک (Ethereum classic)، کادنا (kadena) و دش (dash) نیز از این الگوریتم اجماع پیروی میکنند.
سخن پایانی
«الگوریتم اثبات کار چیست؟» proof of work یکی از الگوریتم های اجماع است که اولین بار در بلاک چین بیت کوین مورد استفاده قرار گرفت. براساس این الگوریتم، نودهای شبکه باید سیستمهای پردازشی خود را به شبکه متصل کنند تا شبکه بتواند تراکنشها را پردازش و بلوک جدید ایجاد نماید. نودهای این شبکه که اصطلاحا ماینر نام دارند، با حل معادلات پیچیده ریاضی و ایجاد هش بلاک برای تراکنشها، اطلاعات را رمزنگاری و در شبکه ثبت میکنند.
هر ماینری که زودتر معادلات ریاضی شبکه را حل کند، میتواند پاداش شبکه را دریافت نماید. به همین دلیل بسیاری از ماینرها مجبور هستند هزینه گزافی برای خرید دستگاههای قدرتمند ماین پرداخت کنند. این الگوریتم به دلیل مصرف بالای انرژی و مقیاس پذیری پایین، در شبکههای محدودی استفاده میشود. بیشتر پروژههای بلاک چینی ترجیح میدهند به کمک الگوریتم اثبات سهام (proof of stake) هزینه مصرف انرژی خود را کاهش دهند و مقیاس پذیری بالایی در بلاک چین خود ایجاد کنند. در این مقاله تلاش کردیم تا الگوریتم اثبات کار (pow) را به صورت کامل بررسی کنیم.
سوالات متداول
proof of work یعنی چی؟
عبارت proof of work به معنی اثبات کار است و به نوعی از الگوریتم اجماع گفته میشود که در آن کاربران با اشتراک گذاری سیستم های پردازشی خود، تراکنش ها و اطلاعات شبکه را رمزنگاری و در بلوک ثبت میکنند. این الگوریتم بیشتر در شبکه های بلاک چینی استفاده میشود.
تفاوت PoW و PoS در چیست؟
در الگوریتم اثبات سهام کاربر تنها باید کوین بومی شبکه را خریداری و سپس در آدرس های مشخصی آن را استیک کند. میزان پاداش در این روش مشخص است و هرچه میزان کوین استیک شده افزایش یابد، پاداش شبکه نیز بیشتر میشود. در مقابل PoW به وسیله دستگاه های قدرتمند پردازشگر اجرا میشود و کاربر باید با خرید این دستگاهها و اتصال آن به شبکه، هش های بلاک را ایجاد کند و تراکنش ها را نیز تایید نماید. میزان مصرف انرژی در الگوریتم اثبات کار بسیار بالاست و به همین دلیل شبکههای بلاک چینی کمتری از این الگوریتم استفاده میکنند.
کدام ارزها از الگوریتم اثبات سهام استفاده میکنند؟
اتریوم (ethereum)، بایننس (binance coin)، کاردانو (cardano)، تن کوین (toncoin)، پولکادات (polkadot)، آوالانچ (avalanche)، کازماس (cosmos)، پروتکل نیر (near protocol)، گراف (the graph) و مینا (mina) جزو محبوب ترین ارزهایی هستند که از الگوریتم اثبات سهام پیروی میکنند.
چرا با افزایش تعداد ماینرها، امنیت شبکه افزایش مییابد؟
هرچه تعداد ماینرها در شبکه افزایش یابد، سختی شبکه نیز بیشتر میشود. افزایش سختی شبکه باعث میشود تا هکرها و خرابکاران هزینه بیشتری برای قدرت محاسباتی پرداخت کنند. در واقع آنها باید هزینه بیشتری برای حمله 51 درصدی بپردازند. بنابراین در شبکههایی که از الگوریتم اثبات کار استفاده میکنند، افزایش تعداد ماینرها باعث امنیت شبکه میشود.