الگوریتم اجماع اثبات کار چیست؟ PoW در بلاک چین و ارز دیجیتال


الگوریتم اجماع مفهوم اساسی در بلاک چین است و اثبات کار- Proof of Work یکی از امن‌ترین آن‌هاست. الگوریتم PoW در بلاکچین و ارز دیجیتال چیست؟

تمرکز زدایی بخش کلیدی در چشم انداز اولیه ارزهای دیجیتال بود. برای دستیابی به آن، باید به دنبال راهی برای تایید تراکنش‌ها بدون دخالت موسسات مالی بود. اولین راه حل برای این چالش اثبات کار نام داشت. اثبات کار (PoW) شکلی از افزودن بلاک‌های جدید حاوی تراکنش به بلاک چین یک کریپتوکارنسی است که به عنوان اولین روش برای اعتبارسنجی تراکنش‌های بلاک چین، نقش مهمی در تاریخچه رمز ارزها ایفا کرده است.

مفهوم اولیه الگوریتم اثبات کار در سال 1993 به منظور جلوگیری از حملات به سرویس‌های اینترنتی ارائه شد اما هیچ‌گاه کاربردی نشد. در سال 2009، بیت کوین شکل جدیدی از اثبات کار را برای استفاده به عنوان الگوریتم اجماع (Consensus Algorithm) معرفی کرد. افراد فعال در شبکه با استفاده از الگوریتم اثبات کار (PoW) بلاک حاوی تراکنش‌های تایید شده Bitcoin را می‌سازند و بدین ترتیب شبکه بلاک چین بیت کوین شکل می‌گیرد.

اثبات کار مکانیزمی است که به شبکه‌ای غیر متمرکز اجازه می‌دهد تا به اجماع و توافق برسند. این کار باعث می‌شود تا کاربران نتوانند کوین‌های خود را دو بار خرج کنند و تضمین می‌کند که شبکه برای هجوم یا دستکاری بسیار مقاوم است.

از ارزهای دیجیتال مهمی که از اثبات کار استفاده می‌کنند، می‌توان به بیت کوین (BTC)، اولین رمز ارز جهان که در سال 2009 راه اندازی شد و مفهوم اثبات کار در ارزهای دیجیتال را معرفی کرد اشاره کرد. لایت کوین (LTC) نیز در سال 2011 بر اساس کد بیت کوین به وجود آمد و مدعی شد که سرعت انجام تراکنش‌ها را بهبود بخشیده است. در میان میم کوین‌های محبوبی که از PoW استفاده می‌کنند نیز دوج کوین (DOGE) را می توان نام برد. اما این روش اجماع چیست و مهم‌ترین ویژگی‌های آن کدام است؟

الگوریتم اجماع اثبات کار چیست؟

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

در الگوریتم اجماع اثبات کار (PoW)، برای ایجاد یک بلاک در بلاک چین، باید یک بازی انجام دهید! بازی حدس زدن! فرض کنید تابعی وجود دارد (مثلا تابعی که بیت کوین استفاده می‌کند SHA-256 نام دارد)، که جواب یا ویژگی‌های خاص جواب مورد قبولی که با آن بدست آورده می‌شود، توسط پروتکل مشخص شده است.

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

الگوریتم اجماع اثبات کار

هر بلاک حاوی اطلاعات مربوط به تمام تراکنش‌هایی است که در آن قرار گرفته که ترکیب آن داده‌ها با هم یک هش ثابت (فرض کنید A) را تولید می‌کند. از آنجایی که A همیشه ثابت است، برای تولید هش و دستیابی به محدوده جواب مورد قبول (فرض کنید Y محدوده جواب و یا پاسخی با شرایط و ویژگی‌های خاصی است که سیستم آن را قبول دارد)، باید اطلاعات اضافی را با این داده‌ها به عنوان متغیر تصادفی ترکیب کنید. این داده متغیر همان چیزی است که ما آن را نانس (nonce) می‌نامیم، عددی که هر بار آن را تغییر می‌دهید، یک پاسخ متفاوت از تابع یا هش متفاوتی دریافت می‌کنید. در واقع با ترکیب کردن نانس‌های متفاوت با A، هر بار هش متفاوتی تولید می‌کنید تا تصادفا به جواب مورد نظر در محدوده Y برسید و با اعلام آن به شبکه، در ماینینگ به روش اثبات کار، شانس خود را برای به اصطلاح بستن و استخراج یک بلاک در زنجیره امتحان کنید.

خلاصه کلام این است که در الگوریتم PoW شما با به دست آوردن نانس مورد نظر، در فرآیند استخراج یا ماینینگ شرکت کرده و به شبکه اثبات می‌کنید که وقت و انرژی لازم را صرف کرده و مستحق پاداش هستید.

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

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

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

بیایید آنچه را که تا کنون درمورد الگوریتم اثبات کار می‌دانیم را خلاصه کنیم:

  • برای استخراج کردن به روش الگوریتم PoW باید از توان محاسباتی دستگاه ماینر استفاده کنید.
  • اگر یک بلاک معتبر در زنجیره تولید کنید، به شما به صورت رمز ارز بومی آن بلاک چین خاص پاداش داده می‌شود.
  • یک شبکه مبتنی بر بلاک چین توسط تعداد بسیاری گره‌ (Node) نگهداری می‌شود و فقط برخی از این گره‌ها تحت عنوان ماینر شناخته می‌شوند و مسئول اضافه کردن بلاک‌های جدید به شبکه هستند. با ارایه نانس توسط یک ماینر، هر کاربر می‌تواند به راحتی آن را با داده‌های بلاک ترکیب کرده و هش آن را بررسی کند. در اصل محاسبه و جاگذاری یک نانس خاص برای کاربران غیر ماینر نیز ممکن است و آن‌ها می‌توانند اعتبار یک بلوک را بدون صرف توان محاسباتی زیادی تأیید کنند.

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

امنیت در الگوریتم PoW

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

از زیبایی‌های الگوریتم PoW این است که تقلب در آن گران تمام می‌شود، در حالی که صادقانه عمل کردن آن را سودآور می‌کند. هر ماینر که بخواهد منطقی عمل کند و به دنبال بازگشت سرمایه باشد، به گونه‌ای رفتار می‌کند که درآمدش را تضمین کند.

از سویی دیگر هم هدف اثبات کار، گسترش زنجیره است. طولانی‌ترین زنجیره به‌عنوان معتبرترین زنجیره پذیرفته می‌شود، زیرا بیشترین کار محاسباتی را انجام داده است. تقلب در این روش تقریبا غیرممکن است و دلیلش این است که یک ماینر مخرب باید همیشه نانس بلاک را سریعتر از دیگران پیدا کرده و آن را به اصطلاح ماین کند. برای ایجاد پیوسته بلاک‌های مخرب و دستکاری شده و در عین حال معتبر، به بیش از 51 درصد از قدرت استخراج شبکه نیاز است تا بتوان دیگران را شکست داد. این عمل به حمله 51 درصد معروف است و  برای اینکه این مقدار “کار” انجام شود، به قدرت محاسباتی زیادی نیاز است، در حالی که انرژی صرف شده حتی ممکن است بیشتر از دستاوردهای یک حمله باشد.

الگوریتم اثبات کار در مقابل الگوریتم اجماع اثبات سهام

الگوریتم‌های اجماع زیادی به غیر از اثبات کار وجود دارد، که یکی از معروف ترین آن ها الگوریتم‌ اثبات سهام (PoS) یا Proof-of-Stake است؛ این مفهوم به سال 2011 برمی‌گردد و در برخی از پروتکل‌های کوچکتر پیاده سازی شده است، اما هنوز در هیچ یک از بلاک چین‌های بزرگ شاهد به کار گیری آن نبوده‌ایم.

الگوریتم PoW در مقابل PoS

در سیستم‌های (PoS) Proof of Stake، ماینرها با اعتبارسنج‌ها جایگزین می‌شوند. هیچ رقابت ماینینگی در کار نیست و مسابقه‌ای برای حدس زدن هش وجود ندارد. در عوض، کاربران به‌طور تصادفی انتخاب می‌شوند و اگر انتخاب شوند، باید یک بلاک برای افزودن به بلاک چین پیشنهاد کنند که اگر معتبر باشد، پاداشی از کارمزد تراکنش‌های تشکیل دهنده بلاک و کوین‌های تازه استخراج شده دریافت خواهند کرد.

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

شکی در آن نیست که اثبات سهام همان هدفی را دارد که اثبات کار به دنبال آن بوده است؛ کمک به رشد شبکه‌ای غیر متمرکز برای رسیدن به اجماع به روشی ایمن. اما این دو روش در فرآیندهاشان با هم تفاوت‌هایی دارند و در ادامه ویژگی‌های مهم PoS آورده شده‌اند:

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

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

در مقابل از نقاط ضعف الگوریتم اجماع اثبات کار می‌توان موارد زیر را نام برد:

  • اگر می خواهید در شبکه‌های مبتنی بر الگوریتم اجماع PoW به عنوان ماینر فعالیت کنید، به تجهیزات تخصصی نیاز دارید که سرمایه بزرگی می‌طلبد.
  • استخراج به روش PoW انرژی زیادی مصرف می‌کند که برای محیط زیست مضر است. برای مثال در اتریوم، سالانه ۷۳/۲ تراوات ساعت، معادل انرژی کشوری به ​​اندازه اتریش، برق مصرف می‌شود.
  • با توجه به اینکه ماینرها با توان محاسباتی بالاتر می‌توانند شانس بیشتری برای استخراج داشته باشند، گردانندگان ماینینگ پول یا استخر استخراج به طور بالقوه می‌توانند بر این بازی تسلط داشته باشند که خود باعث تجمع قدرت می‌شوند.

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

به هر حال اما سابقه PoW در بیش از یک دهه، امکان انجام تراکنش با مجموع ارزش تریلیون دلاری را تضمین کرده است. برای اینکه با اطمینان بگوییم که آیا PoS می‌تواند با امنیت آن رقابت کند، باید در عمل آن را آزمایش کرد. چیزی که عیان است این است که Proof of Work راه حل اصلی برای مشکل دوبار خرج کردن بود و ثابت شده که قابل اعتماد و ایمن است. بیت کوین با الگوریتم اجماع اثبات کار خود ثابت کرد که ما به نهادهای متمرکز برای جلوگیری از دوبار خرج کردن نیاز نداریم. با استفاده هوشمندانه از رمزنگاری، توابع هش و تئوری بازی (game theory)، شرکت کنندگان در یک محیط غیر متمرکز می‌توانند در مورد وضعیت یک پایگاه داده مالی به توافق برسند. در کل می توان ویژگی‌های مهم اثبات کار را به صورت زیر خلاصه کرد:

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

جمع بندی الگوریتم PoW

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

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


برچسب ها:

ثبت نظر
نظرات کاربران (0 نظر)