الگوریتم اثبات کار (Proof of Work) در بلاک چین چیست؟
اگر جزو کاربرانی هستید که به استخراج بیت کوین علاقهمندند یا دستکم در مورد این کار مطالعه کردهاید، بهاحتمالزیاد با اصطلاح الگوریتم اثبات کار یا PoW آشنایی دارید. اما برای آن دسته از افرادی که با این مفهوم آشنایی ندارند باید بگوییم که الگوریتم اثبات کار یکی از الگوریتمهای اجماع مورد استفاده در عرصه ارزهای دیجیتال است که از آن، جهت تایید تراکنشها، ایجاد بلوکهای جدید و تامین امنیت شبکه بلاک چین استفاده میشود. در حقیقت الگوریتم اجماع اثبات کار، حل مسائل پیچیده ریاضی است که پاسخهایی برای آنها وجود دارد. جهت رسیدن به این پاسخها نیروی پردازش رایانهای بسیار قدرتمندی مورد نیاز است که مستلزم داشتن سختافزاری قوی است.
در حال حاضر در عرصه ارزهای دیجیتال، شناختهشدهترین کاربرد الگوریتم اثبات کار در شبکه بلاک چین ارزهای دیجیتال بیت کوین و اتریوم است. ما در این مطلب قصد داریم تا بهصورت کامل به توضیح این الگوریتم پرداخته و تمامی جوانب آن را موردبررسی قرار دهیم.
الگوریتم اثبات کار چیست؟
الگوریتم «اثبات کار» (Proof of Work) از جمله الگوریتمهای اجماع شبکه بلاک چین است که در تعدادی از رمز ارزهای موجود همچون بیت کوین مورداستفاده قرار میگیرد. مفهوم پایهای الگوریتم اثبات کار در سال ۱۹۹۳ و در جهت مقابله با حملات به سرویسهای اینترنتی مطرح گردید ولی هیچوقت به مرحله اجرا نرسید، اما در سال ۲۰۰۹، در شبکه بلاک چین رمز ارز بیت کوین، شکل تازهای از الگوریتم گواه اثبات کار جهت استفاده در قالب «الگوریتم اجماع» (Consensus Algorithm) معرفی گردید. منظور از الگوریتم اجماع، پروسهای است که بر طبق آن تمام شبکه در مورد یک داده به توافق و تایید کلی میرسند.
در شبکه بیت کوین، کاربران بهوسیله الگوریتم اثبات کار، به توافق در مورد تراکنشها میرسند. کاربران این تراکنشها را تایید میکنند، آنها در شکل بلوک به شبکه اضافه میکنند، که در نهایت باعث تشکیل شبکه بلاک چین بیت کوین میشود. به علت وجود این الگوریتم در بلاک چین ارزهای دیجیتال، ماینرها (استخراجکنندگان) با هم رقابت میکنند تا با حل مسائل دشوار ریاضی، تراکنشها را تایید و یک بلوک را به زنجیره بلوکی (بلاک چین) آن شبکه اضافه کنند.
تاریخچه الگوریتم اثبات کار
ایده اولیه الگوریتم اثبات کار در ابتدای دهه ۹۰ میلادی توسط «سینتیا دوورک» (Cynthia Dwork) و «مونی نوار» (Moni Naor) که در آن وقت در بخش تحقیقاتی کمپانی IBM فعالیت میکردند، بهعنوان یک الگوریتم جهت محافظت در مقابل ایمیلهای اسپم مطرح گردید.
چند سال بعد، در سال ۱۹۹۷، سیستم کاری مبتنی بر این الگوریتم توسط «ادام بک» (Adam Beck) در پروژهای تحت عنوان «هش کش» (HashCash) اجرا گردید. این پروژه با هدف مقابله با ایمیلهای اسپم پیادهسازی شده بود که پیشتر هم در روشهای رمزنگاری استفاده میشد و در حال حاضر در بلاک چین بیت کوین کاربرد دارد. همانگونه که «ساتوشی ناکاموتو» (Satoshi Nakamoto) در وایت پیپر ارز دیجیتال بیت کوین نیز ذکر کرده بود ادام بک را میتوان خالق الگوریتم PoW عنوان کرد.
الگوریتم اثبات کار چگونه عمل میکند؟
اگر یک شبکه از الگوریتم اثبات کار استفاده کند به این معنا است که برای استخراج ارز این شبکه، ماینرها یا استخراجکنندگان بهوسیله سختافزارهای قدرتمند خود باید با هم رقابت کنند تا بتوانند مسائل دشوار و پیچیده ریاضی را حل نمایند. این فرایند با انجام حدسهای تصادفی بیشمار (که Nonce نام دارد) توسط سختافزارهای ماینینگ انجام میشود و آنقدر تکرار میشود تا یک ماینر به جواب درست دست پیدا کند.
سپس این ماینر، این قابلیت را خواهد داشت تا بلاک مربوطه را ایجاد و به شبکه منتقل کند. پس از این مرحله، باقی ماینرها پاسخ پیداشده توسط ماینر قبلی را بررسی و تأیید میکنند و در آخر بلوک ایجادشده تأیید و به شبکه اضافه میشود. ماینری که در ابتدا به جواب درست دست پیدا کرده، به عنوان پاداش، کوین شبکه را دریافت خواهد کرد.
در طرف دیگر ماینرهایی که به نام «شرکتکنندگان غیرمتمرکز» (Decentralized Participants) نیز شناخته میشوند، وظیفه تأیید اعتبار بلوکها را از طریق قدرت محاسباتی سختافزارهای ماینینگ خود برعهده دارند که آنها نیز پاداش دریافت خواهند کرد. آیا میدانید حل یک مسئله دشوار ریاضی به چه معناست؟
منظور از مسئله دشوار ریاضی در الگوریتم اثبات کار چیست؟
حال بیایید ببینیم اصلا منظور از حل یک مسئله دشوار ریاضی چیست؟ منظور مسئلهای است که نیاز به توان محاسباتی زیادی برای حل شدن دارد. مسائل بسیاری از این دست وجود دارد که از جمله آنها میتوانیم به موارد زیر اشاره کنیم:
- «تابع هش» (Hash Function) یا پیدا کردن یک ورودی از طریق دانستن خروجی.
- «فاکتورگیری از عدد صحیح» (Integer Factorization) یا پیدا کردن عددی که حاصلضرب دو عدد در یکدیگر است.
- «پروتکل مسئله هدایتشده» (Guided Tour Puzzle Protocol) که از توابع هش استفاده میکند.
حال برگردیم به الگوریتم گواه اثبات کار؛ در حقیقت در این الگوریتم به جواب مسئله دشوار ریاضی، «هش» (Hash) گفته میشود. الگوریتم اثبات کار در شبکه ارز دیجیتال بیت کوین مبتنی بر الگوریتم هشینگ SHA-256 است.
الگوریتم اثبات کار روشی است که بر اساس آن کاربران قادر هستند تا ایرادات و مداخلات درون شبکه را تشخیص دهند. این کار به کمک هشها و البته مجموعهای طولانی از اعداد که تحت عنوان اثبات کار معرفی میشوند انجام میگیرد. در واقع این فرایند به این شکل است که شما قادر هستید تا اطلاعات خود را به یک الگوریتم تابع هش داده و یک عبارت هش از این الگوریتم تحویل بگیرید.
دقت کنید که این عبارت هش منحصربهفرد است و اگر شما تغییرات جزئی را در دادههای ورودی خود ایجاد کنید، نتیجتا عبارت هش جدید و منحصربهفرد دیگری را دریافت خواهید کرد. از طرفی فرایند تولید عبارت هش، فرایندی یکطرفه است و این بدین معنی است که شما با در اختیار داشتن یک عبارت هش نمیتوانید به دادههای اصلی یا ورودی دسترسی پیدا کنید، ولی کماکان میتوانید صحت این عبارت را با دادههای ورودی تطابق دهید.
علاوه بر این، عبارت هش حاصله همان جواب مسئله دشوار ریاضی است که ماینرها برای حل آن با یکدیگر رقابت میکنند. در حقیقت ماینرها با امتحان کردن اعدادی تصادفی که به آنها عدد «نانس» (Nonce) گفته میشود در تلاش هستند تا جواب این مسئله ریاضی را پیدا کنند.
از این رو جهت بررسی اعداد حدسزدهشده خود، آنها را از تابع هش عبور میدهند تا بررسی کنند که آیا عدد ورودی با شرایط بلوک یکسان است یا خیر. نتیجتا وقتی که ماینری جواب معادله که همان هش است را پیدا می کند، آن را به شبکه ارسال کرده تا دیگر ماینرها جواب را تأیید کنند و بدین ترتیب بلوک جدید ایجاد خواهد شد. در واقع این همان دلیلی است که به الگوریتم هش، الگوریتم اثبات کار نیز گفته میشود.
از طرفی ایجاد هش برای مجموعهای از تراکنشهای یک ارز دیجیتال مثل بیتکوین، در سیستمهای امروزی فرایند بسیار سادهای است و شبکه با تبدیل این فرایند به کار در تلاش است تا سطح بهخصوصی از سختی را برای شبکه آن ارز دیجیتال ایجاد کند. البته لازم به ذکر است که به هر میزان که شبکه رشد کند، به تبع سختی شبکه آن ارز دیجیتال هم افزایش پیدا میکند و این الگوریتم جهت حل مسئله پیچیده ریاضی، به قدرت هش بالاتری نیاز دارد.
حمله ۵۱ درصدی چیست؟
یکی از اتفاقاتی که ممکن است در شبکههایی که از الگوریتم اثبات کار پیروی میکنند، رخ دهد، حمله ۵۱ درصدی است. حمله اکثریت یا حمله ۵۱ درصدی زمانی رخ میدهد که کاربر یا گروهی از کاربران، موفق میشوند اکثریت قدرت استخراج شبکه یک ارز دیجیتال را کنترل کنند.
در حقیقت در این نوع حملات سایبری، مهاجمین موفق میشوند کنترل ایجاد بلوکهای جدید را در اختیار بگیرند. مثلا مهاجمان میتوانند از کامل شدن بلوکها توسط ماینرهای دیگر جلوگیری کنند و تمام پاداش را از آن خود نمایند.
علاوه بر این در حمله ۵۱ درصدی کاربر یا گروه مهاجم میتواند تراکنشهای شبکه را معکوس کند. بهعنوان مثال آلیس که در این حمله نقش دارد بهوسیله بلاک چین میزانی از پول را به باب ارسال میکند. این ارسال پول باعث ایجاد یک تراکنش در بلوک خواهد شد، ولی مهاجمان این تراکنش را تأیید نمیکنند و اجازه انتقال پول را نخواهند داد.
حال دقت کنید که اگر شبکه به قدر کافی بزرگ باشد، به این معنی که نودهای بسیار زیادی داشته باشد، انجام یک حمله ۵۱ درصدی از نظر پیادهسازی امکانپذیر نیست، زیرا هزینه بسیار زیادی صرف تهیه سختافزارهای قدرتمند در تعداد بالا خواهد شد (که مجموع قدرت هش آنها بیش از نیمی از قدرت هش شبکه باشد). این هزینه با کوینی که توسط این حمله به دست میآید برابری نمیکند و ضرر بسیار زیادی برای مهاجمان به همراه خواهد داشت.
از جمله شبکههای بزرگ که تعداد نودهای زیادی دارد، میتوان بیت کوین و اتریوم را نام برد. اما در ادامه با ما همراه باشید تا بهطور کلی مزایا و معایب الگوریتم اثبات کار را با یکدیگر بررسی کنیم.
مزایا و معایب الگوریتم اثبات کار
بهطور کلی الگوریتم گواه اثبات کار، امنیت شبکه یک ارز دیجیتال را ارتقاء خواهد داد و از شبکه در برابر حملات سایبری همچون حمله اکثریت یا حمله ۵۱ درصدی محافظت خواهد کرد. همچنین معمولا شبکهای غیرمتمرکز را شکل میدهد که هیچ شخص ثالثی در کنترل آن دخالت ندارد.
البته جدا از این مزیت، الگوریتم گواه اثبات کار مشکلاتی دارد و چندان بدون نقص هم نیست. در واقع الگوریتم گواه اثبات کار همواره در کنار خود سیستمهای ماینینگ را دارد و همانطور که میدانید این فرایند نیازمند هزینه زیاد برای تهیه سختافزارهاست. همچنین این سختافزارها در هنگام کار، برق بسیار بالایی مصرف کرده و گرمای زیادی را نیز تولید میکنند.
از طرف دیگر، محاسباتی که با صرف هزینه و وقت توسط سختافزارها انجام میشود، کاملا بیفایده هستند و در هیچ زمینه دیگری، مانند تجارت یا علم، کاربرد ندارند.
چه ارزهای دیجیتالی از الگوریتم اثبات کار استفاده می کنند؟
در حال حاضر الگوریتم اثبات کار در بسیاری از ارزهای دیجیتال مورد استفاده قرار گرفته که شناختهشدهترین این رمز ارزها بیت کوین است. بیت کوین را میتوان نماد استفاده از الگوریتم اجماع اثبات کار در ارزهای دیجیتال نامید. از دیگر رمز ارزهایی که مبتنی بر این الگوریتم اجماع هستند میتوان به «لایت کوین» (Litecoin) و «اتریوم» (Ethereum) اشاره کرد.
سخن پایانی
نزدیک به ده سال از پیدایش بیت کوین، ارز دیجیتالی که با ظهور خود باعث رخ دادن تحولی عظیم در دنیای مبادلات مالی شد، گذشته است. کارکرد شبکه ارز دیجیتال بیت کوین بر اساس الگوریتم اثبات کار است. الگوریتم اثبات کار، تلاش میکند تا با ارائه یک سری مشوق (توکن یا کوین شبکه آن ارز دیجیتال) به کاربران خود، امنیت و پایداری شبکه آن رمز ارز را حفظ کرده و راه جدیدی جهت توزیع عادلانهی داراییها، بر اساس توان محاسباتی کاربران پیشنهاد دهد.
اساسا الگوریتم اثبات کار، جهت محافظت از شبکه در مقابل حملات گوناگون و مختلف، به کار گرفته میشود. علاوه بر این موارد، یکی از ایرادات وارده به این الگوریتم اجماع این است که ماینرهای شبکه جهت کار در این الگوریتم و راه بردن چرخ این الگوریتم نیاز به سختافزارهایی گرانقیمت دارند که این سختافزارها علاوه بر هزینه بالای خود، مصرف برق بسیار زیادی نیز خواهند داشت.
نتیجتا اینکه الگوریتم اثبات کار، شاید کارآمدترین راهحل در بلاک چین ارزهای دیجیتال نباشد، ولی کماکان بهعنوان یکی از محبوبترین راههای اجماع در بلاک چین ارزهای دیجیتال از آن استفاده میشود.
برای دریافت مشاوره تخصصی رایگان از کارشناسان ما، اطلاعات خواسته شده رو تکمیل فرمایید.