الگوریتم اثبات اعتبار (POA) چیست؟
دنیای ارزهای دیجیتال از زمان انجام اولین تراکنش در شبکه بیت کوین دچار تغییرات بسیار زیادی شده است. از ظهور ارزهای جدید با کاربردهای متنوع گرفته تا نوآوریهای خلاقانه برای بهبود سیستم بلاک چینها همگی جزو این تغییرات هستند که به لطف علاقه روزافزون فعالان صنعت فناوری اطلاعات به این تکنولوژی حاصل شدهاند.
یکی از مفاهیم بنیادین بلاک چین و نحوه کار آن الگوریتم اجماع است که امروزه انواع مختلفی از آن را شاهد هستیم. الگوریتم اجماعی که در بیت کوین از آن استفاده شده الگوریتم اثبات کار نام دارد البته بعدها الگوریتمهای جدیدتر هم در ارزهای دیجیتال دیگر به کار گرفته شدند.
اما اینکه الگوریتم اجماع چه مفهومی دارند و انواع مختلف آن چه تفاوتی با هم دارند، موضوعی است که در این مقاله میخواهیم به طور کامل در مورد آنها و بهخصوص الگوریتم اثبات اعتبار صحبت کنیم. در بخش پایانی مقاله نیز چند نمونه از بلاک چینهایی که از این الگوریتم جدید استفاده میکنند معرفی خواهد شد. پس تا انتها با ما همراه باشید.
الگوریتم اجماع چیست؟
«الگوریتم اجماع» (Consensus Algorithm) به الگوریتمی گفته میشود که براساس آن همه طرفین بلاک چین روی درستی اطلاعات موجود در شبکه با هم توافق میکنند. در واقع به لطف بهکارگیری چنین الگوریتمی تمام کاربران شبکه قبول میکنند، اطلاعات فعلی بلاک چین دچار تغییر نشده و در آن اطلاعات نادرست و غلط وجود ندارد.
همانطور که گفتیم الگوریتمهای اجماع یکی از مفاهیم بنیادی در عملکرد فناوری بلاک چین و ارزهای دیجیتال است. دلیل آن هم کاملا مشخص است. در واقع این الگوریتمهای اجماع هستند که امنیت کل شبکه را با کنترل کردن درستی دادهها تامین میکنند.
اگر الگوریتم اجماع به درستی کار میکرد ممکن بود اطلاعات بلاک چین به چند بخش تقسیم شود و کل عملکرد آن از هم بپاشد. برای مثال ممکن است تراکنش خاصی در یکی از نسخههای بلاک چین ثبت شده باشد ولی در نسخههایی که در اختیار افراد دیگر قرار دارد چنین اتفاقی نیفتاده باشد.
اگر بخواهیم با جزئیات بیشتری الگوریتم اجماع را شرح دهیم باید به نحوه کار بلاک چین نگاهی بیندازیم. در بلاک چین تراکنشها و اطلاعات جانبی در قالب بلاکهایی ذخیره میشوند که طی عملیاتی به نام «استخراج» (Mining) درستی آنها تایید شده و به زنجیره اصلی متصل میشوند.
پس موضوعی که اهمیت پیدا میکند این است که کل شبکه چگونه روی تایید شدن یا نشدن یک تراکنش و اضافه شدن بلاک به بلاک چین توافق کنند؟ این سوالی است که الگوریتم اجماع برای پاسخ دادن به آن ایجاد شده است.
شناختهشدهترین الگوریتم اجماعی که در حال حاضر وجود دارد، همان الگوریتم اجماع به کار گرفته شده در بیت کوین است که الگوریتم «اثبات کار» (Proof of Work) نام دارد. با این حال مشکل مقیاسپذیر نبودن این الگوریتم باعث شده که محدودیتهایی نظیر تعداد پایین تراکنشها در هر ثانیه گریبانگیر ارزهای دیجیتالی شود که از این الگوریتم استفاده میکنند.
دلیل این مشکل هم این است چون بیت کوین و دیگر ارزهایی که از این الگوریتم استفاده میکنند متکی به تعداد زیادی کاربر در سرتاسر جهان هستند و برای اضافه شدن بلاک، تایید اکثریت آنها ضروری است. این موضوع همزمان که یک نکته مثبت برای چنین ارزهایی است باعث عدم «مقیاسپذیری» (Scalability) آنها هم میشوند.
نوع دیگری از الگوریتمهای اجماع هم وجود دارند که در این رابطه نسبت به الگوریتم اثبات کار عملکرد بهتری دارند. این الگوریتم که میتوان گفت دومین الگوریتم پراستفاده ارزهای دیجیتال است، الگوریتم «اثبات سهام» (Proof of Stake) نام دارد. با این حال این الگوریتم هم تفاوت قابل توجهی با الگوریتم اثبات کار ندارد و مشکل مقیاسپذیری هنوز هم پابرجاست.
برای حل همه مشکلات این الگوریتمها، الگوریتم دیگری به نام الگوریتم اثبات اعتبار معرفی شده که موضوع اصلی مقاله امروز ما است. بیایید در بخش بعدی نگاه عمیقتری به این الگوریتم جدید بیندازیم.
الگوریتم اثبات اعتبار
الگوریتم «اثبات اعتبار» (Proof of Authority) یکی از جدیدترین الگوریتمهای اجماع مبتنی بر اعتبار افراد است که راهکار جدید و بهینهتری را برای بلاک چینهای جدید و بهخصوص بلاک چینهای خصوصی به ارمغان میآورد. این الگوریتم برای اولینبار در سال ۲۰۱۷ میلادی توسط همبنیانگذار و مدیر ارشد فناوری سابق اتریوم آقای «گاوین وود» (Gavin Wood) ارائه شد.
برخلاف الگوریتم اثبات کار که در آن قدرت سختافزاری و الگوریتم اثبات سهام که در آن دارایی کاربران از آن رمزارز، تعیینکننده قدرت آنها در تأیید تراکنشها است، در الگوریتم اثبات اعتبار این هویت واقعی افراد است که به آنها اجازه تأیید تراکنشها را میدهد.
در واقع اگر بخواهیم با جزئیات بیشتری صحبت کنیم، در بلاک چینها الگوریتمهای اجماع به دو دسته «بیاجازه» (Permissionless) و «بااجازه» (Permissioned) تقسیم میشوند. در الگوریتمهای بیاجازه همانطور که از اسمشان پیداست هر کاربری میتواند بدون اینکه نیاز باشد از کسی اجازه بگیرد با طی مراحل مشخص شده به تأیید تراکنشها بپردازد. این کار در الگوریتمهای بااجازه تنها توسط کسانی که مجاز باشند امکانپذیر است. الگوریتم اثبات اعتبار هم از همین نوع الگوریتمهای بااجازه است.
این یعنی در ارزهای دیجیتالی که از الگوریتم اثبات اعتبار استفاده کنند تنها کاربرانی که هویتشان مشخص است و از پیش تعیین شدهاند میتوانند عملیات تأیید تراکنشها را انجام دهند. همین محدود بودن کاربرانی که اجازهی تأیید تراکنشها را دارند باعث میشود که دیگر خبری از مشکلاتی نظیر مقیاسپذیری پایین که در بیت کوین شاهد آن هستیم وجود نداشته باشد. با این حال استفاده از الگوریتم اثبات اعتبار ممکن است مشکلات دیگری را به وجود بیاورد که در بخشهای بعدی در مورد آن صحبت خواهیم کرد.
الگوریتم اثبات اعتبار چگونه کار میکند؟
نحوه کار الگوریتم اثبات اعتبار بسیار ساده است. اولین نکته این است که برای فعالیت درست سیستم و تأیید تراکنشها باید یکی از «اعتبارسنجها» (Validators) به صورت تصادفی انتخاب شود. منظور از اعتبارسنجها همان کاربرانی هستند که وظیفه تأیید تراکنشها برعهده آنها است. انتخاب اعتبارسنجهای جدید به وسیله رایگیری در بین اعتبارسنجهای فعلی انجام میشود. بدین ترتیب احتمال انتخاب اعتبارسنجهایی که اهداف خرابکارانه دارند بسیار پایین آمده و مشکلی برای ادامه حیات شبکه به وجود نمیآید.
نکته دیگر این است که هر اعتبارسنج در هر دور از نوبت اعتبار سنجی خود تنها اجازه تأیید یک بلاک را پشت سر هم دارد. به عبارت دیگر هیچ اعتبارسنجی نمیتواند دو بلاک پشت سر هم را تأیید کند. همچنین در الگوریتم اثبات اعتبار نیازی به عملیات استخراج که در ارزهایی مثل بیت کوین شاهد آن هستیم وجود ندارد و به دلیل همین عدم نیاز به رایانهها و سختافزارهای قوی برای تأیید تراکنشها، ارزهای استفاده کننده از الگوریتم اثبات اعتبار از نظر زیست محیطی در شرایط بسیار مناسبی قرار دارند و به اصطلاح دوستدار طبیعت هستند.
همانند الگوریتم اثبات سهام که در آن سهم هر کاربر از موجودی یک رمزارز به عنوان عاملی برای انتخاب و اعتماد به آن کاربر استفاده میشود، در الگوریتم اثبات اعتبار روی هویت و اعتبار افراد تمرکز شده است. در واقع هویت یک شخص یا سازمان تنها منحصر به خودش است و اعتبارش هم ارزش زیادی دارد. هر اعتبارسنج در ارزهایی که از الگوریتم اثبات اعتبار استفاده میکنند به صورت داوطلبانه هویت خود را اعلام میکند.
با در اختیار قرار داشتن هویت این افراد در ملاعام به میتوان روی انجام مسئولیتهای این افراد و عملکرد صحیح بلاک چین حساب باز کرد. به عبارت دیگر مسئولیت هر اقدامی که باعث آسیب به درستی و شفافیت شبکه شود به صورت مستقیم به همان کاربر یا سازمان مربوط میشود و این یعنی اعتبار آنها در همهجا از بین خواهد رفت. بنابراین کمتر فرد یا سازمانی مایل به خرابکاری در شبکه و از دست دادن اعتبار خود خواهد بود.
بدین ترتیب هر کاربر یا سازمانی که نقش اعتبارسنج را به خود میگیرد برای حفظ آبرو و اعتبار خود تمام تلاشش را خواهد کرد و این گونه فعالیت شبکه بدون نقص و با درستی کامل انجام خواهد شد.
با این حال اگر کاربر یا سازمانی مسئولیتهای خود را به درستی انجام ندهد، یا به عبارت دیگر در تأیید تراکنشها خرابکاری کند شبکه آن را تشخیص میدهد و میتواند آن را حذف کند.
محدودیتهای الگوریتم اثبات اعتبار
اما الگوریتم اثبات اعتبار مخالفانی هم دارند که محدودیتهای این الگوریتم را بهانه میگیرند. یکی از بزرگترین ایراداتی که به این نوع الگوریتم گرفته میشود این است که با استفاده از این الگوریتم ایده غیرمتمرکز و توزیعشده بودن رمزارزها نقض میشود. واقعیت هم این است که این الگوریتم با هدف متمرکزسازی توزیعشده ایجاد شده است.
متمرکزسازی از این جهت که تنها افراد خاصی مسئول تأیید تراکنشها هستند و توزیعشده به خاطر این که هر کدام از آنها در جایگاههای جداگانهای از یکدیگر قرار دارند. برای همین است که الگوریتم اثبات اعتبار بهترین گزینه برای بلاک چینهای خصوصی است. این یعنی سازمانهایی که میخواهند از فناوری بلاک چین در کارهای خود استفاده کنند، بهترین انتخاب استفاده از الگوریتم اثبات اعتبار برای اجماع خواهد بود.
محدودیت دیگر این الگوریتم این است که هویت اعتبارسنجها حتما باید برای عموم مردم شناختهشده باشد. این شرایط برای خیلی از کاربران حوزه ارزهای دیجیتال نگرانکننده است زیرا هویتشان فاش میشود و ممکن است باعث سوءاستفاده اشخاص ثالثی شود که میخواهند از نقطه ضعف آن شخص یا سازمانی که نقش اعتبارسنج را دارد.
مورد دیگری که به آن اشاره کردیم زمانی است که یکی از اعتبارسنجها خرابکاری کند یا یکی از رایانههایی که نقش اعتبارسنج را دارد به دست خرابکاران بیفتد. در چنین شرایطی این الگوریتم باید بتواند که از خرابکاریهای احتمالی جلوگیری نماید. همانطور که گفتیم برای کنترل میزان خسارات الگوریتم اثبات اعتبار به گونهای طراحی شده هر اعتبارسنج تنها میتواند یک بلاک پشت سر هم را تأیید کند.
کاربرد الگوریتم اثبات اعتبار
همانطور که گفتیم معمولا از الگوریتم اثبات اعتبار در بلاک چینهای خصوصی استفاده میشود و نباید انتظار داشت که ارز دیجیتالی مثل بیت کوین از این الگوریتم استفاده کند.
یکی از شناختهشدهترین ارزهایی که شاید اسمش را شنیده باشید ارز دیجیتال «وی چین» (VeChain) است که از این الگوریتم استفاده میکند. این بلاک چین را میتوان جزو بلاک چینهای سازمانی در نظر گرفت که با هدف مدیریت شفاف اطلاعات سازمانها ایجاد شده است. تمرکز ویژه این پروژه روی مدیریت زنجیرههای تأمین و لجستیک است.
«مایکروسافت آژور» (Microsoft Azure) یکی دیگر از پروژههایی است که از مزایای این الگوریتم بهره میبرد. این پلتفرم راهکارهایی را برای راهاندازی شبکههای خصوصی ارائه میکند که نیازی هم به داشتن ارز محلی برای تأمین کارمزدهای تراکنشها هم ندارند و دلیل آن هم عدم نیاز به عملیات استخراج است.
سخن پایانی
الگوریتمهای اثبات کار، اثبات سهام و اثبات اعتبار هر سه مزایا و معایب خاص خود را دارند. همه ما میدانیم که در دنیای ارزهای دیجیتال و بلاک چینها بحث غیرمتمرکزسازی اهمیت ویژهای دارد و الگوریتم اثبات اعتبار که جدیدترین الگوریتم اجماع است این ویژگی را قربانی میکند تا به مقیاسپذیری بالا و میزان بالای تراکنشها در هر ثانیه برسد.
ویژگیهای خاص الگوریتم اثبات اعتبار باعث شده که این الگوریتم تقریبا در نقطه مقابل نحوه فعالیت بلاک چینها تاکنون قرار بگیرد. با این حال این الگوریتم راهکار جالبتوجهی را برای ما به ارمغان میآورد و نمیتوان آن را به عنوان یکی از راهکارهای نو و خلاقانه دنیای بلاک چینها نادیده گرفت. به خصوص اینکه استفاده از آن برای بلاک چینهای خصوصی و شرکتهایی که قصد استفاده از این فناوری را در سازمانهای خود دارند، به شدت توصیه میشود.
البته ناگفته نماند که الگوریتمهای دیگری هم برای اجماع وجود دارند که استفاده چندانی از آنها نمیشود. الگوریتمهای ذکر شده در این مقاله مهمترینها بودند که سعی کردیم ابتدا در مورد نحوه کارها اطلاعات کسب کنیم و سپس آنها را با الگوریتم اثبات اعتبار که موضوع اصلی این مقاله بود مقایسه کنیم تا بهتر مفهوم آن را درک کنید.
برای دریافت مشاوره تخصصی رایگان از کارشناسان ما، اطلاعات خواسته شده رو تکمیل فرمایید.