آنچه در این مقاله خواهید خواند
الگوریتم اثبات کار (Proof of Work) که عموما به صورت خلاصه با PoW شناخته میشود، مکانیزمی برای جلوگیری از دابل اسپندینگ (Double Spending) یا همان دو بار خرج کردن در بلاک چین است. اکثر رمز ارزهای بزرگ از این الگوریتم اجماع استفاده میکنند. این الگو در واقع روشی برای تامین امنیت دفتر کل یک ارز دیجیتال است.
تمرکز زدایی بخش کلیدی در چشم انداز اولیه ارزهای دیجیتال بود که برای دستیابی به آن، باید به دنبال راهی برای تایید تراکنشهای خرید و فروش رمز ارز بدون دخالت موسسات مالی گشت. اولین راه حل برای این چالش اثبات کار نام داشت. اثبات کار (PoW) شکلی از افزودن بلاکهای جدید حاوی تراکنش به بلاک چین یک کریپتوکارنسی است که به عنوان اولین روش برای اعتبارسنجی تراکنشهای بلاک چین، نقش مهمی در تاریخچه رمز ارزها ایفا کرده است.
مفهوم اولیه الگوریتم اثبات کار در سال 1993 به منظور جلوگیری از حملات به سرویسهای اینترنتی ارائه شد اما هیچگاه کاربردی نشد. در سال 2009، بیت کوین شکل جدیدی از اثبات کار را برای استفاده به عنوان الگوریتم اجماع (Consensus Algorithm) معرفی کرد. افراد فعال در شبکه با استفاده از الگوریتم اثبات کار (PoW) بلاک حاوی تراکنشهای تایید شده Bitcoin را میسازند و بدین ترتیب شبکه بلاک چین بیت کوین شکل میگیرد.
اثبات کار مکانیزمی است که به شبکهای غیر متمرکز اجازه میدهد تا به اجماع و توافق برسند. این کار باعث میشود تا کاربران نتوانند کوینهای خود را دو بار خرج کنند و تضمین میکند که شبکه برای هجوم یا دستکاری بسیار مقاوم است.
از ارزهای دیجیتال مهمی که از اثبات کار استفاده میکنند، میتوان به بیت کوین (BTC)، اولین رمز ارز جهان که در سال 2009 راه اندازی شد و مفهوم اثبات کار در ارزهای دیجیتال را معرفی کرد اشاره کرد. لایت کوین (LTC) نیز در سال 2011 بر اساس کد بیت کوین به وجود آمد و مدعی شد که سرعت انجام تراکنشها را بهبود بخشیده است. در میان میم کوینهای محبوبی که از PoW استفاده میکنند نیز دوج کوین (DOGE) را می توان نام برد. اما این روش اجماع چیست و مهمترین ویژگیهای آن کدام است؟ به طور کلی اگر قصد خرید لایت کوین و سرمایه گذاری در سایر پروژههای ارز دیجیتال را دارید، میتوانید از خدمات صرافی بیت 24 استفاده کنید.
آشنایی با مفهوم دو بار خرج کردن یا همان دابل اسپندینگ
دابل اسپندینگ زمانی رخ میدهد که یک وجه ثابت بیش از یک بار خرج شود. این اصطلاح تقریبا مختص حوزه پول دیجیتال است، چراکه دو بار خرج کردن یک پول فیزیکی دشوار است. مثلا وقتی هزینه یک قهوه را پرداخت میکنید، پول را به فروشندهای که احتمالا آن را در صندوق قفل میکند، میدهید. بنابراین نمیتوانید وارد یک کافی شاپ دیگر شده و با همان پول دوباره قهوه بخرید.
اما در پول دیجیتال، امکان انجام این کار وجود دارد. احتمالا تا به حال یک فایل کامپیوتری را با کپی و پیست کردن دو بار ذخیره کردهاید. یا مثلا میتوانید یک ایمیل را برای 10، 20 و 50 نفر بفرستید. از آنجایی که پول دیجیتال صرفا از داده تشکیل شده است، باید از کپی شدن و خرج یک واحد یکسان در مکانهای مختلف جلوگیری کنید. در غیر این صورت، ارز شما در زمان کوتاهی سقوط خواهد کرد.
تعریف الگوریتم اجماع اثبات کار
برای سهولت فهم موضوع، اینطور در نظر بگیرید که در الگوریتم اجماع اثبات کار (PoW)، ماینرها با یکدیگر بر سر حل معماهای پیچیده محاسباتی به رقابت میپردازند. این معماها به سختی حل میشوند، اما بلافاصله پس از حل شدن امکان تایید شدن آن توسط دیگران وجود دارد. بنابراین زمانی که یک ماینر پاسخ این یک معما که در واقع هش یک بلاک است را پیدا میکند، آن بلاک را به شبکه ارسال مینماید. سایر ماینرها این پاسخ را تایید میکند و بلاک مذکور طی مدت کوتاهی تایید میشود.
در الگوریتم اجماع اثبات کار (PoW)، برای ایجاد یک بلاک در بلاک چین، باید یک بازی انجام دهید! بازی حدس زدن! فرض کنید تابعی وجود دارد (مثلا تابعی که بیت کوین استفاده میکند SHA-256 نام دارد)، که جواب یا ویژگیهای خاص جواب مورد قبولی که با آن بدست آورده میشود، توسط پروتکل مشخص شده است.
شما باید برای رسیدن به آن جواب، متغیرهای تابع را تغییر داده و با آزمون و خطا، بهترین ترکیب را برای دستیابی به متغیر درست بدست آورید. در الگوریتم PoW؛ فرمول به دست آوردن هش بلاک باید به صورتی باشد که تغییر حتی یک کاراکتر در دادههای شما نتیجهای کاملا متفاوت تولید کند و بنابراین هیچ راهی برای پیش بینی خروجی وجود نداشته باشد. مثلا در الگوریتم اجماع بیت کوین با استفاده از تابع SHA-256، همیشه هشهایی با 64 کاراکتر تولید میشود که تغییر حتی یک ورودی، کل هش را تغییر میدهد.
هر بلاک حاوی اطلاعات مربوط به تمام تراکنشهایی است که در آن قرار گرفته که ترکیب آن دادهها با هم یک هش ثابت (فرض کنید A) را تولید میکند. از آنجایی که A همیشه ثابت است، برای تولید هش و دستیابی به محدوده جواب مورد قبول (فرض کنید Y محدوده جواب و یا پاسخی با شرایط و ویژگیهای خاصی است که سیستم آن را قبول دارد)، باید اطلاعات اضافی را با این دادهها به عنوان متغیر تصادفی ترکیب کنید. این داده متغیر همان چیزی است که ما آن را نانس (nonce) مینامیم، عددی که هر بار آن را تغییر میدهید، یک پاسخ متفاوت از تابع یا هش متفاوتی دریافت میکنید. در واقع با ترکیب کردن نانسهای متفاوت با A، هر بار هش متفاوتی تولید میکنید تا تصادفا به جواب مورد نظر در محدوده Y برسید و با اعلام آن به شبکه، در ماینینگ به روش اثبات کار، شانس خود را برای به اصطلاح بستن و استخراج یک بلاک در زنجیره امتحان کنید.
خلاصه کلام این است که در الگوریتم PoW شما با به دست آوردن نانس مورد نظر، در فرآیند استخراج یا ماینینگ رمز ارز شرکت کرده و به شبکه اثبات میکنید که وقت و انرژی لازم را صرف کرده و مستحق پاداش هستید.
در این روش، ماینینگ فرآیند جمعآوری دادههای بلاک چین و هش کردن آن به همراه یک nonce است تا زمانی که هش خاصی را پیدا کنید و حق اضافه کردن بلاک جدیدی را به مجموعه بلاک چین داشته باشید. در نظر بگیرید که هرچه هش ریت شبکه بیشتر باشد، یافتن هش معتبر و استخراج بلاک دشوارتر است. همه این کارها برای اطمینان از این است که بلاکها خیلی سریع پیدا نشوند و همانطور که میتوانید تصور کنید، تلاش برای حدس زدن مقادیر زیادی هش میتواند چقدر هزینه و انرژیبر باشد. الگوریتم اثبات کار مثلا در مورد بیت کوین به صورت افزودن یک بلاک جدید در هر 10 دقیقه است. برای انجام این کار، خود سیستم سختی استخراج بیت کوین را بسته به سرعتی که ماینرها بلاکها را اضافه میکنند، تنظیم میکند. اگر استخراج خیلی سریع انجام شود، محاسبات هش سختتر میشود و اگر خیلی کند پیش برود، رسیدن به هش مورد نظر راحتتر است.
اگر نرخ هش کافی و دستگاه ماینری با قدرت مناسب در اختیار داشته باشید و هش معتبر را پیدا کنید، طبق پروتکل به شما با ارز دیجیتال پاداش داده میشود. به طور خلاصه، برنده باید آخرین بلاک تراکنشها را به بلاک چین اضافه کند و پاداش را در قالب کوینهای تازه و کارمزد تراکنشها دریافت کند. در نظر بگیرید که مثلا در بیت کوین حداکثر عرضه ثابت 21 میلیون کوین است، اما پس از استخراج همه آنها، ماینرها با دریافت کارمزد تراکنش در ازای خدمات خود به کارشان ادامه خواهند داد.
از آنجایی که ماینرها به صورت غیر متمرکز کار می کنند، چند بلاک معتبر میتوانند همزمان استخراج شوند. این پروسه یک فورک موقت ایجاد میکند و باعث میشود زنجیره به اصطلاح یک سر نداشته باشد و شاخه شاخه شود. اما در نهایت، با گذشت زمان، آن شاخهای مورد قبول است که طولانیتر باشد. روش پذیرش شاخه معتبر در بلاک چینها مختلف با هم متفاوت است؛ مثلا در زنجیره اصلی اتریوم گفته میشود کمی بیش از یک دقیقه (زمان لازم برای استخراج 6 بلاک) برای حصول اطمینان از تایید تراکنش خود صبر کنید. این بدان معناست که تراکنش مورد نظر باید در بلاکی در زنجیره طولانیتر بوده تا پذیرفته و تایید شده باشد. در غیر این صورت تراکنش تایید نشده و به اصطلاح به مم پول ماینرها برای قرار دادنش در بلاک جدید باز می گردد.
بیایید آنچه را که تا کنون درمورد الگوریتم اثبات کار میدانیم را خلاصه کنیم:
- برای استخراج کردن به روش الگوریتم PoW باید از توان محاسباتی دستگاه ماینر استفاده کنید.
- اگر یک بلاک معتبر در زنجیره تولید کنید، به شما به صورت رمز ارز بومی آن بلاک چین خاص پاداش داده میشود.
- یک شبکه مبتنی بر بلاک چین توسط تعداد بسیاری گره یا نود (Node) نگهداری میشود و فقط برخی از این گرهها تحت عنوان ماینر شناخته میشوند و مسئول اضافه کردن بلاکهای جدید به شبکه هستند. با ارایه نانس توسط یک ماینر، هر کاربر میتواند به راحتی آن را با دادههای بلاک ترکیب کرده و هش آن را بررسی کند. در اصل محاسبه و جاگذاری یک نانس خاص برای کاربران غیر ماینر نیز ممکن است و آنها میتوانند اعتبار یک بلوک را بدون صرف توان محاسباتی زیادی تأیید کنند.
پروتکل اثبات کار ماینرها را ملزم میکند تا برای یافتن nonce یک بلاک، در رقابت شدیدی از آزمون و خطا شرکت کنند و فقط بلاکهایی با نانس معتبر میتوانند به زنجیره اضافه شوند. سوالی که پیش میآید این است که اگر بخواهید در فرآیند الگوریتم اجماع اثبات کار تقلب کنید، چه چیزی شما را از تولید یک هش معتبر در ازای قرار دادن یکسری تراکنشهای تقلبی در بلاک باز میدارد؟ در ادامه به پاسخی که الگوریتم اجماع اثبات کار برای این مشکل دارد نگاهی میاندازیم.
نقطه شروع الگوریتم اثبات کار
اثبات کار اولین الگوریتم اجماعی بود که منتشر شد و تا به امروز، الگوی غالب مکانیزمهای اجماع باقی مانده است. این الگوریتم توسط ساتوشی ناکاموتو در وایت پیپر بیت کوین در سال 2008 معرفی شد، اما خود این فناوری بسیار قبلتر از آن وجود داشته است. ارز دیجیتال بیت کوین طی چند سال اخیر توسط جوامع جهانی شناخته شد و قیمت بیت کوین در این دوره افزایشهای قابل توجهی را تجربه کرد. بسیاری از افراد بزرگ و مطرح دنیا بعد از مشاهده روند کنونی، بخشی از سرمایه خودشان را صرف خرید بیت کوین کردهاند.
الگوریتم هش کش (HashCash) آدام بک (Adam Back) یکی از اولین نمونههای الگوی اثبات کار در روزهای پیش از تولد رمز ارزهاست. این الگو از طریق ملزم کردن فرستنده به انجام مقداری کار محاسباتی پیش از ارسال یک ایمیل، به گیرنده در کاهش دریافت اسپمها کمک میکند. این محاسبات برای یک فرستنده مشروع تقریبا هیچ هزینهای در بر ندارد، اما برای فردی که بهطور دسته جمعی ایمیل ارسال میکند، گران خواهد بود.
نحوه عملکرد الگوریتم اثبات کار
دفترچه یادداشت ما در اینجا حکم بلاک چین (Blockchain) را دارد. اما ما تراکنشها را تک تک اضافه نمیکنیم، بلکه ترکیبی از آنها را در بلاکها قرار میدهیم. با معرفی تراکنشها به شبکه، کاربران ایجادکننده بلوک، آنها را در بلاک کاندید خود قرار میدهند. این تراکنشها نیز تنها پس از تایید بلوک مربوطه یعنی اضافه شدن به بلاک چین، معتبر تلقی خواهند شد.
با این وجود، اضافه کردن بلاکها هم ارزان نیست. الگوریتم اثبات کار، ماینرها (کاربران سازنده بلوک) را به استفاده از منابع خودشان ملزم میکند. این منابع همان قدرت محاسباتی هستند که برای هش کردن دادههای بلاک تا زمان پیدا کردن راهحل مناسب، استفاده میشوند.
هش کردن دادههای بلاک یعنی وارد کردن آن دادهها به داخل یک تابع هشینگ (Hashing Function) برای تولید هش بلوک. حالا این هش بلاک مانند یک «اثر انگشت» کار میکند؛ هویتی برای دادههای ورودی و برای هر بلوک منحصربهفرد است.
از نظر فنی، معکوس کردن هش بلاک و گرفتن دادههای ورودی غیر ممکن است. البته دانستن ورودی هم برای تایید درست بودن هش اهمیتی ندارد. فقط کافی است ورودیها را از طریق تابع ثبت کرده و خروجی مشابه را بررسی کنید.
در الگوریتم اثبات کار، باید دادههایی را تهیه کنید که هش آنها با شرایط خاص مطابقت داشته باشد. و البته نحوه رسیدن به آن هش مد نظر را هم نمیدانید. تنها گزینه شما، وارد کردن دادهها درون یک تابع هشینگ و بررسی مطابقت خروجیها با شرایط است. اگر درست نبود، باید با تغییر جزئی دادهها، هش متفاوتی را بهدست آورید. تغییر حتی یک کاراکتر در دادهها هم نتیجه کاملا متفاوتی ایجاد خواهد کرد، بنابراین هیچ راهی برای پیشبینی خروجی وجود ندارد.
در نتیجه، برای تولید یک بلاک، بازی حدس زدن انجام میدهید. کار شما این است که اطلاعات مربوط به تمام تراکنشهایی که مایل به اضافه کردن هستید و یک سری داده مهم دیگر را گرفته و هش آنها را تولید میکنید. اما از آنجایی که مجموعه داده شما تغییر نمیکند، باید داده متغیری را هم اضافه کنید. در غیر این صورت، همیشه یک هش ثابت را دریافت خواهید کرد. به این داده متغیر، نانس (Nonce) گفته میشود. نانس یک عدد است که در هر تلاش آن را تغییر میدهید تا هر بار هش متفاوتی تولید کنید. این همان کاری است که به آن ماینینگ میگویند.
بنابراین به طور خلاصه، الگوریتم اثبات کار در فرآیند استخراج، یعنی جمع کردن دادههای بلاک چین و هش کردن آن توسط یک نانس تا زمان پیدا کردن یک هش خاص. با پیدا کردن یک هش مطابق شرایط تعیینشده توسط پروتکل، حق پخش آن بلوک جدید به شبکه را پیدا خواهید کرد. در آن زمان، دیگر مشترکان شبکه نیز بلاک چین خود را برای اضافه کردن بلوک جدید آپدیت میکنند.
برای رمز ارزهای بزرگ امروز، شرایط استفاده از اثبات کار بسیار چالشبرانگیز است. هرچه هش ریت شبکه بالاتر باشد، پیدا کردن هش معتبر نیز سختتر خواهد بود. این افزایش سختی برای جلوگیری از افزایش سرعت پیدا شدن بلاکهاست. همانطور که احتمالا تصور میکنید، تلاش برای حدس زدن تعداد زیادی هش، برای کامپیوترتان هزینهبر خواهد بود. گویی در حال هدر دادن برق و چرخههای محاسباتی هستید. اما پروتکل هم در ازای پیدا کردن هش متعبر به شما پاداش میدهد.
پس تا اینجا یاد گرفتیم که:
- ماین کردن هزینه بر است.
- در صورت تولید بلاک معتبر پاداش میگیرید.
- یک کاربر با دانستن ورودی به راحتی قادر به بررسی هش آن است. کاربران غیر ماینر نیز میتوانند بدون خرج کردن مقدار زیادی قدرت محاسباتی، اعتبار یک بلاک را تایید کنند.
اما اگر تقلب کنید چه میشود؟ چه چیزی شما را از قرار دادن تراکنشهای تقبلی در بلاک و تولید هش معتبر برحذر میدارد؟
اینجاست که رمزنگاری کلید عمومی وارد میشود. در این مطلب این مبحث را خیلی عمیق بررسی نمیکنیم، اما خواندن مقاله «کلید عمومی و خصوصی چه مفهوم و تفاوتی در بلاک چین و ارز دیجیتال دارند؟» خالی از لطف نیست. به طور خلاصه، با استفاده از چندین ترفند رمزنگاری، میتوانیم حق انتقال وجوهی که فردی قصد خرج کردن آن را دارد، بررسی کنیم.
در زمان ساخت یک تراکنش، آن را امضا میکنید. هر کسی در شبکه نیز قادر به مقایسه و بررسی تطابق امضای شما با کلید عمومی است. افراد حتی حق خرج کردن وجوه و بزرگتر بودن ورودی از خروجی شما را هم بررسی میکنند (تا مثلا بیشتر از آنچه دارید خرج نکرده باشید).
هر بلاکِ دارایِ یک تراکنش نامعتبر به صورت خودکار توسط شبکه رد میشود. بنابراین، حتی تلاش برای تقلب هم بسیار هزینهبر است. در واقع بدون دریافت هیچ پاداشی منابعتان را به هدر دادهاید. بنابراین، زیبایی الگوریتم اثبات کار در این نهفته است که «تقلب کردن را هزینهبر، اما فعالیت صادقانه را سودآور» میکند. هر ماینر عاقلی هم بهدنبال بازگشت سرمایه (ROI) است، بنابراین رفتار تضمینکننده درآمد هم از آنها انتظار میرود.
مثالی از نحوه کار الگوی اثبات کار اتریوم
تراکنشهای خرید اتریوم درون بلاکها پردازش میشوند. هر بلاک دارای موارد زیر است:
- سختی بلاک: مثلا 3,324,092,183,262,715
- میکسهش: مثلا 0x44bca881b07a6a09f83b130798072441705d9a665c5ac8bdf2f39a3cdf3bee29
- نانس: مثلا 0xd3ee432b4fb3d26b
این دادههای بلاک مستقیما با خود اثبات کار در ارتباط هستند.
امنیت در الگوریتم PoW
برای مقابله با تقلب و دستکاری اطلاعات، رمزنگاری کلید عمومی کاربردی میشود. ما در این مقاله به عمق آن نمیپردازیم، اما در پاسخ به این سوال که رمزنگاری کلید عمومی چیست و چه فایدهای دارد، میتوان به طور خلاصه گفت که ترفندهای رمزنگاری دقیقی در بلاک چین بکار گرفته میشوند که به هر کاربری اجازه میدهد بررسی کند که آیا شخصی حق دارد دارایی دیجیتالی را که میخواهد خرج یا جابجا کند یا خیر.
در روش کریپتو گرافی یا رمزنگاری، وقتی تراکنشی ایجاد میشود، آن را امضا میکنید. هر کسی در شبکه میتواند امضای شما را با کلید عمومی شما مقایسه کند و بررسی کند که آیا آنها با هم مطابقت دارند یا خیر. آنها همچنین قادرند بررسی کنند که آیا واقعاً میتوانید وجوه خود را خرج کنید و مجموع ورودیهای شما از مجموع خروجیهای شما بیشتر نباشد. هر بلوکی که شامل تراکنش نامعتبری باشد به طور خودکار توسط شبکه رد میشود. در نظر بگیرید حتی تلاش برای تقلب کردن هم گران و مستلزم مصرف انرژی زیاد است.
از زیباییهای الگوریتم PoW این است که تقلب در آن گران تمام میشود، در حالی که صادقانه عمل کردن آن را سودآور میکند. هر ماینر که بخواهد منطقی عمل کند و به دنبال بازگشت سرمایه باشد، به گونهای رفتار میکند که درآمدش را تضمین کند.
از سویی دیگر هم هدف اثبات کار، گسترش زنجیره است. طولانیترین زنجیره بهعنوان معتبرترین زنجیره پذیرفته میشود، زیرا بیشترین کار محاسباتی را انجام داده است. تقلب در این روش تقریبا غیرممکن است و دلیلش این است که یک ماینر مخرب باید همیشه نانس بلاک را سریعتر از دیگران پیدا کرده و آن را به اصطلاح ماین کند. برای ایجاد پیوسته بلاکهای مخرب و دستکاری شده و در عین حال معتبر، به بیش از 51 درصد از قدرت استخراج شبکه نیاز است تا بتوان دیگران را شکست داد. این عمل به حمله 51 درصد معروف است و برای اینکه این مقدار “کار” انجام شود، به قدرت محاسباتی زیادی نیاز است، در حالی که انرژی صرف شده حتی ممکن است بیشتر از دستاوردهای یک حمله باشد.
ضرورت وجود الگوریتم اثبات کار
احتمالا همانطور که میدانید، کاربران تراکنشها را در شبکه پخش میکنند. البته این تراکنشها سریعا معتبر تلقی نمیشوند. تایید اعتبار زمانی اتفاق میافتد که تراکنشها به بلاک چین اضافه شوند. بلاک چین یک پایگاه داده بزرگ است که همه قادر به مشاهده آن هستند، بنابراین افراد میتوانند احتمال خرج شدن یک وجه در زمان گذشته را بررسی کنند. فرض کنید شما و سه نفر از دوستانتان یک دفترچه یادداشت دارید. حالا هر زمان که کسی بخواهد واحدی را استفاده کند، آن را یادداشت میکنید: مثلا آلیس 5 واحد به باب پرداخت کرد، باب دو واحد به کارول پرداخت کرد و به همین ترتیب تا آخر.
البته یک ریزهکاری در اینجا وجود دارد: در زمان انجام هر تراکنش، محلی که تراکنش از آن آمده است را هم ذکر میکنید. بنابراین، اگر باب دو واحد به کارول داده باشد، اینگونه داخل دفترچه یادداشت میشود: باب از این تراکنش قبلی با آلیس، دو واحد به کارول پرداخت کرد.
اکنون، راهی برای پیگیری واحدها وجود دارد. اگر باب بخواهد تراکنش دیگری با استفاده از همان واحدهایی که برای کارول فرستاده انجام دهد، همه سریعا میفهمند و گروه اجازه اضافه شدن آن تراکنش به دفترچه را نخواهد داد.
حالا شاید فکر کنید که این کار در یک گروه کوچک به خوبی انجام میشود. همه همدیگر را میشناسند و احتمالا سر اینکه چه کسی تراکنشها را به دفترچه اضافه کند، اتفاق نظر خواهند داشت. اما اگر یک گروه 10,000 نفره داشته باشیم چه؟ در این حالت، ایده دفترچه یادداشت بهخاطر عدم اعتماد افراد به یک فرد غریبه برای مدیریت آن، مقیاس پذیری خوبی نخواهد داشت.
اینجاست که الگوریتم اثبات کار وارد میشود. این الگو از عدم خرج شدن پول توسط افرادی که حقی برای خرج کردن آن ندارند، اطمینان حاصل میکند. الگوریتم PoW با ترکیب نظریه بازی و رمزنگاری، اجازه آپدیت کردن بلاک چین را از طریق قوانین سیستم خود به افراد میدهد.
مقایسه الگوریتم اثبات کار و اثبات سهام
الگوریتمهای اجماع زیادی وجود دارند، اما یکی دیگر از محبوبترین آنها، الگوی اثبات سهام (Proof of Stake) یا PoS است. این مفهوم به سال 2011 برمیگردد و توسط پروتکلهای کوچکتر پیادهسازی شده است. اما استفاده از آن توسط بلاک چینهای بزرگ هنوز جای کار دارد.
در سیستم اثبات سهام، ولیدیتیورها یا همان اعتبارسنجها جایگزین ماینرها شدهاند. هیچگونه فرآیند استخراج و حدس زدن هشی وجود ندارد. در عوض، کاربران به صورت تصادفی انتخاب شده و در صورت گزینش، باید یک بلاک را پیشنهاد یا «حک» کنند. در صورت معتبر بودن آن بلاک، پاداشی ساختهشده از کارمزد تراکنشهای بلاک را دریافت خواهند کرد.
البته هر کاربری هم انتخاب نمیشود. پروتکل بر اساس یک سری فاکتورها این افراد را انتخاب میکند. برای واجدالشرایط بودن، مشترکان باید مقداری رمز ارز را استیک (Stake) یا به اصطلاح «سهامگذاری» کنند، که در واقع مقداری از ارز دیجیتال محلی شبکه است. استیکینگ شبیه به وثیقه عمل میکند: درست مثل زمانی که متهمان مقدار زیادی پول را به دادگاه میدهند تا از عدم حضورشان برای محاکمه جلوگیری شود، ولیدیتورها هم مقداری رمز ارز را برای جلوگیری از تقلب استیک میکنند. در صورت عدم صداقت، کل استیک (یا بخشی از آن) گرفته میشود.
الگوریتم اثبات سهام نسبت به اثبات کار یک سری مزیت دارد. قابل توجهترین آن، کوچکتر بودن ردپای کربنی است؛ از آنجایی که نیازی به استفاده از مزارع ماینینگ بزرگ در PoS وجود ندارد، برق مصرفی نیز بسیار ناچیزتر از PoW خواهد بود.
با این وجود، اثبات سهام هنوز به گرد پای اثبات کار نرسیده است. با اینکه فرآیند استخراج پرمصرف تلقی میشود، اما تنها الگوی اجماع مقیاس پذیر است. این الگوریتم طی تنها یک دهه تریلیونها دلار تراکنش را انجام داده است. برای ادعای اینکه PoS قادر به رقابت با امنیت PoW است، استیکینگ رمز ارز باید در مقیاس گسترده آزمایش شود.
شکی در آن نیست که اثبات سهام همان هدفی را دارد که اثبات کار به دنبال آن بوده است؛ کمک به رشد شبکهای غیر متمرکز برای رسیدن به اجماع به روشی ایمن. اما این دو روش در فرآیندهاشان با هم تفاوتهایی دارند و در ادامه ویژگیهای مهم PoS را به صورت مختصر و دستهبندی شده مورد بررسی قرار میدهیم:
- در الگوریتم اثبات سهام، اهمیت داشتن توان محاسباتی با مقدار دارایی به صورت رمز ارز بومی شبکه جایگزین میشود.
- اثبات سهام ماینرها را با اعتبارسنجان جایگزین میکند. اعتبارسنجها کسانی هستند که ارزهای دیجیتال خود را به صورت توکن بومی آن بلاک چین برای به دست آوردن توانایی ایجاد بلاکهای جدید به اشتراک میگذارند.
- اعتبار سنجها برای ایجاد بلاکها با انجام کار و صرف انرژی (مانند آنچه در PoW اتفاق میافتد) رقابت نمیکنند، در عوض آنها به طور تصادفی توسط یک الگوریتم انتخاب میشوند. در صورت تقلب و عدم صداقت، دارایی اعتبار سنجان ضبط میشود.
- در PoS، فینالتی یا تصمیم نهایی برای بستن بلاک واضحتر گرفته میشود؛ اگر دو سوم اعتبارسنجان در مورد وضعیت بلاک توافق کنند، آن بلاک نهایی در نظر گرفته میشود و به زنجیره اضافه میشود.
پس به طور خلاصه، اثبات سهام نسبت به اثبات کار مزایایی دارد که قابل توجهترین آنها طبیعت دوستی و نیاز نبودن مصرف انرژی بسیار زیاد مشابه الگوریتم PoW است؛ نیازی به مزارع ماینینگ پرقدرت در PoS وجود ندارد و برق مصرفی در آن تنها کسر کوچکی از برق مصرفی در PoW است.
در مقابل از نقاط ضعف الگوریتم اجماع اثبات کار میتوان موارد زیر را نام برد:
- اگر می خواهید در شبکههای مبتنی بر الگوریتم اجماع PoW به عنوان ماینر فعالیت کنید، به تجهیزات تخصصی نیاز دارید که سرمایه بزرگی میطلبد.
- استخراج به روش PoW انرژی زیادی مصرف میکند که برای محیط زیست مضر است. برای مثال در اتریوم، سالانه ۷۳/۲ تراوات ساعت، معادل انرژی کشوری به اندازه اتریش، برق مصرف میشود.
- با توجه به اینکه ماینرها با توان محاسباتی بالاتر میتوانند شانس بیشتری برای استخراج داشته باشند، گردانندگان ماینینگ پول یا استخر استخراج به طور بالقوه میتوانند بر این بازی تسلط داشته باشند که خود باعث تجمع قدرت میشوند.
از آنجایی که اثبات سهام به اندازه اثبات کار به قدرت محاسباتی نیاز ندارد، مقیاس پذیرتر است و میتواند تراکنشها را با هزینههای کمتر و با مصرف انرژی کمتر، سریعتر پردازش کند و در ادامه، ارزهای دیجیتال را با محیط زیست سازگارتر کند. با این حال، یکی از مشکلات احتمالی در مورد اثبات سهام این است که شرکت کنندهها با داراییهای بزرگ میتوانند قدرت زیادی داشته باشند و این مسئلهای است که در اثبات کار وجود ندارد و اثبات کار بیشتر از منظر امنیتی اثبات شده است.
به هر حال اما سابقه PoW در بیش از یک دهه، امکان انجام تراکنش با مجموع ارزش تریلیون دلاری را تضمین کرده است. برای اینکه با اطمینان بگوییم که آیا PoS میتواند با امنیت آن رقابت کند، باید در عمل آن را آزمایش کرد. چیزی که عیان است این است که Proof of Work راه حل اصلی برای مشکل دوبار خرج کردن بود و ثابت شده که قابل اعتماد و ایمن است. بیت کوین با الگوریتم اجماع اثبات کار خود ثابت کرد که ما به نهادهای متمرکز برای جلوگیری از دوبار خرج کردن نیاز نداریم. با استفاده هوشمندانه از رمزنگاری، توابع هش و تئوری بازی (game theory)، شرکت کنندگان در یک محیط غیر متمرکز میتوانند در مورد وضعیت یک پایگاه داده مالی به توافق برسند. در کل می توان ویژگیهای مهم اثبات کار را به صورت زیر خلاصه کرد:
- در اثبات کار، برای شروع نیازی به ذخیره اولیه ارزهای دیجتیال ندارید.
- اثبات کار یک مکانیسم اجماع آزمایش شده است که محبوبتترین رمز ارزهای جهان یعنی بیت کوین و اتریوم را برای چندین سال امن و غیر متمرکز نگه داشته است.
- با اینکه PoW امنیت بالایی دارد و در رسیدن به تمرکز زدایی موفق عمل کرده است، در سرعت پایین پردازش تراکنشها و کارمزدهای بالا ناکارآمد بوده است.
مشکلات استفاده از الگوریتم اثبات کار
چندین مشکل در الگوی PoW وجود دارد که عبارتند از:
- مصرف بالای انرژی: بیت کوین بهخاطر الگوریتم اثبات کار خود، بهاندازه کشور سوئیس انرژی مصرف میکند. البته با اینکه بخشی از این میزان توسط انرژی تجدیدپذیر تامین میشود، اما مقدار مصرف با پیوستن ماینرهای بیشتر به شبکه برای کسب رمز ارز BTC رو به افزایش است.
- حمله 51 درصد: اگر یک واحد ماینینگ بتواند 51 درصد از هش ریت استخراج بیت کوین را بهدست آورد، قادر به عدم پیروی موقت از قوانین، انجام دابل اسپندینگ و مسدودسازی تراکنشهاست.
- تمرکزگرایی ماینینگ: اثبات کار یعنی ساخت یک ارز بدون دخالت یک مسئول متمرکز. با این وجود، این سیستم در عمل نسبتا متمرکز است و تنها سه استخر استخراج تقریبا 50 درصد قدرت محاسباتی بیت کوین را کنترل میکنند. با این وجود، توسعهدهندگان بهدنبال بهبود این مشکل هستند.
حمله 51 درصدی
حمله 51 درصد زمانی اتفاق میافتد که کاربری یا گروهی از کاربران کنترل نصف بیشتر قدرت استخراج را بهدست بگیرند. مهاجمان در این حالت، قدرت کافی برای کنترل رویدادهای داخل شبکه را دارند. از آنجایی که این افراد قادر به جلوگیری از تکمیل بلوکها توسط دیگر ماینرها هستند، میتوانند با تولید بلاکهای جدید و کسب پاداش، انحصار خود را داشته باشند. حتی امکان معکوس کردن تراکنشها هم توسط آنها وجود دارد. به طور کلی هرچه قدرت محاسباتی واردشده به شبکه بیت کوین بیشتر باشد، منابع مورد نیاز یک مهاجم بالقوه برای انجام حمله موفق به شبکه نیز بیشتر خواهد بود.
فرض کنید آلیس در یک حمله 51 درصد نقش دارد ولی باب خیر. حال آلیس با استفاده از بلاک چین مقداری پول برای باب میفرستد. این تراکنش در بلاک هم قرار میگیرد. اما مهاجمان اجازه ارسال این پول را نمیدهند. در اینجا یک فورک در حال رخ دادن در زنجیره است.
در ادامه، ماینرها به یکی از این شاخهها میپیوندند. از آنجایی هم که این افراد اکثریت قدرت محاسباتی را در اختیار دارند، زنجیره آنها دارای بلاکهای بیشتری است.
در این شبکه، شاخه طولانیتر باقی مانده و شاخه کوتاهتر رد میشود. بنابراین تراکنش بین آلیس و باب انجام نشده و باب هم پولی دریافت نمیکند. با ادامه این روند، مهاجمان قادر به معکوس کردن تراکنشها خواهند بود.
حمله 51 درصد گزینه سودمندی نیست. این کار نیازمند مقدار بسیار زیادی قدرت محاسباتی است. و البته با عمومی شدن حمله، کاربران شبکه را ترک خواهند کرد. این امر بهناچار باعث ریزش قیمت رمز ارز مربوطه خواهد شد. در نهایت نیز تمام ارزها ارزش خود را از دست خواهند داد.
مزیت استفاده از الگوی اثبات کار
مزیت اصلی استفاده از PoW، محافظت در برابر حملات DoS و اثرگذاری کم روی امکانات ماینینگ است.
- دفاع در برابر حملات DoS: اثبات کار محدودیتهایی را روی فعالیتهای درون شبکه اعمال میکند. برای انجام این کارها هم تلاش زیادی لارم است. یک حمله کارآمد نیازمند قدرت محاسبات بالا و میزان زیادی زمان برای انجام آن محاسبات است. بنابراین، این حمله ممکن است، اما بهخاطر هزینه بر بودن آن تقریبا بیفایده است.
- امکانات ماینینگ: مهم نیست چقدر پول در کیف پولتان داشته باشید. نکته مهم، داشتن قدرت محاسباتی بالا برای حل پازلها و پیدا کردن بلاکهای جدید است. بنابراین، دارندگان پول زیاد مسئول تصمیمگیری بر کل شبکه نیستند.
با وجود استفاده اکثر ارزهای دیجیتال از الگوی PoW، برخی دیگر در حال آزمایش راههای متفاوت تامین امنیت شبکه هستند. از جمله شناختهشدهترین رمز ارزهای مبتنی بر اثبات کار عبارتند از:
- بیت کوین
- اتریوم (البته در اتریوم 2، اثبات سهام جایگزین PoW خواهد شد)
- بیت کوین کش
- لایت کوین
- مونرو
سخن پایانی
اثبات کار الگوریتم زیربنایی است که سختی و قوانین را برای کاری که ماینرها انجام میدهند تعیین میکند. استخراج کردن در این روش یعنی «کار» یا تلاش برای اضافه کردن بلاکهای معتبر به زنجیره. هرچه نرخ کار کردن بیشتر باشد (یا به اصطلاح هش ریت شبکه بزرگتر باشد)، شبکه مطمئنتر و مستحکمتر است. با این حال انتقادات عمده از اثبات کار، مقدار انرژی مورد نیاز برای ایمن نگه داشتن شبکه است.
اثبات کار، مکانیزم اجماع انتخابی برای ارزهای دیجیتال اولیه بود که به روشی امن و غیر متمرکز برای پردازش تراکنشها نیاز داشتند. اگرچه پس از آن اثبات سهام به عنوان جایگزینی با مصرف انرژی کمتر معرفی شده است، PoW هنوز توسط بسیاری از رمز ارزهای مهم و اصلی استفاده میشود.
الگوریتم اثبات کار، راهحل اصلی مقابله با مشکل دابل اسپندینگ بوده و امنیت و قابلیت اطمینان خود را ثابت کرده است. بیت کوین ثابت کرد که برای جلوگیری از دو بار خرج شدن وجوه، به یک مقام متمرکز نیازی نیست. با استفاده هوشمندانه از رمزنگاری، تابع هش و نظریه بازی، مشترکان یک محیط غیر متمرکز قادر به توافق بر سر وضعیت یک مجموعه داده مالی خواهند بود.
تهیه شده در بیت 24