نماد سایت دروازه اقتصاد

الگوریتم اجماع چیست؟ همه چیز درباره انواع مختلف مکانیسم اجماع در بلاکچین

الگوریتم اجماع

الگوریتم اجماع

الگوریتم اجماع را بیشتر با اصطلاح‌هایی چون اثبات کار (PoW)، اثبات سهم (PoS) یا اثبات اعتبار (PoA) می‌شناسند؛ اما اینها تنها انواعی از مکانیسم‌های تصمیم‌‌گیری در بلاکچین هستند؛ تاکنون تعداد بسیار زیادی از این سازوکارهای تصمیم‌گیری تعریف شده‌اند و هیچ محدودیتی در تعریف انواع جدیدتر وجود ندارد.

به زبانی ساده، منظور از Consensus در عبارت الگوریتم اجماع (Consensus Algorithm) به توافق رسیدن تعداد مورد نیاز از اعضاء بلاکچین (معمولا 51 درصد و بیشتر) است. این اجماع همان مسیر اصلی بلاکچین در حذف نهاد واسطه برای تضمین عملکرد خود است. بدون چنین مکانیسم هوشمندانه‌ای، هرگز قابلیت غیرمتمرکز شدن برای بلاکچین‌ها محقق نمیشد.

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

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

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

الگوریتم اجماع یا مکانیسم اجماع مهر تأییدی بر عملکرد درست بلاکچین‌ها در تولید، ثبت و انتشار داده‌ها است. چنانکه بلاکچین یک کد بلند برنامه نویسی است، الگوریتم اجماع نیز یک کد در قلب کد اصلی بلاکچین است که نحوه مشارکت اعضاء کنونی و آتی آن را تعریف می‌کند. این کد در برخی از بلاکچین‌ها به عنوان یک قرارداد هوشمند یا Smart Contract شناخته می‌شود.

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

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

کاربردهای مکانیسم اجماع

الگوریتم اجماع به تمام ذینفعان بلاکچین این اطمینان را می‌دهد که وضعیت، ارزش و هر اطلاعات مندرج در شبکه درست است و توسط تعداد زیادی از اعضاء آن تأیید شده است. نحوه طراحی، ایجاد و اجرای این مکانیسم اجماع می‌تواند سطح اختیار جمعی بر شبکه را تعیین کند.

علاوه بر این، مکانیسم اجماع می‌تواند عاملی در ایجاد رقابت در شبکه، تزریق ریسک به بازار، رصد فرایندهای منتج به پایگاه داده و حتی پایداری یا ناپایداری یک سیستم مالی در بلندمدت باشد.

هدف اصلی در تعریف الگوریتم اجماع، ایجاد یک مکانیسم اجرایی و اعمالی بر شبکه بلاکچین است که به گره‌های اصلی شبکه استقلال لازم در تصمیم‌گیری برای شبکه را بدهد، نیاز به نهاد کانونی و واسطه را برطرف نماید و محیط یا سازوکار لازم برای تغییر در شبکه را تعریف کند.

تاریخچه مکانیسم اجماع

هم‌زمان با نفوذ کامپیوترها و شبکه‌ها در فعالیت‌های بشر در ده‌های 80 و 90 میلادی، پایگاه‌ داده‌های اشتراکی خلق شدند تا امکان فعالیت هم‌زمان افراد مختلف بر روی مجموعه‌ای مشترک از اطلاعات فراهم شود. بیشتر این پایگاه‌ها مرکزی یا Centralized بودند و افراد بسته به موقعیت و سطح اختیار خود به میزانی از داده‌های آن‌ها دسترسی پیدا می‌کردند. در این شبکه‌های متمرکز، اختیار هرگونه تولید، تغییر، استفاده و رای‌گیری در شبکه را سازمانی تعریف می‌کرد که مالک پایگاه داده به حساب می‌آمد.

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

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

این نیاز در ادامه به آنچه اجماع مستقل توزیع شده یا Distributed Autonomous Consensus خوانده می‌شد انجامید. در این سازوکار، برنامه‌های اجرایی شبکه با استفاده از یک تکنیک در رمزنگاری محافظت می‌شدند و تنها در صورت تحقق نیازمندی‌های الگوریتم رمزنگاری بود که امکان اجرا داشتند.

به طور ساده‌تر، هر الگوریتمی که قرار بود در شبکه اجرا شود، ابتدا باید از یک فیلتر تأیید رد می‌شد، این فیلتر چیزی نبود جز یک الگوریتم رمزنگاری که رشته‌های بلندی از اعداد و حروف را در کنار هم می‌چید (Hash) و تنها امکان عبور و اجرای برنامه‌هایی را میداد که همان رشته رمز را در خود داشتند.

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

مکانیسم اجماع چگونه عمل می‌کند؟

مکانیسم اجماع چگونه عمل می‌کند

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

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

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

انواع الگوریتم اجماع

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

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

الگوریتم اثبات کار یا Proof of Work

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

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

تصویر زیر شماتیک ساده‌ای از نحوه عملکرد الگوریتم اجماع PoW است.

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

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

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

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

مزایای رویکرد اثبات کار

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

الگوریتم اثبات سهم یا Proof of Stake

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

قاعده اصلی در این الگوریتم بر مبنای فعالیت استکینگ یا Staking تعریف شده است. استک کردن فرایندی است که در قالب آن، شخص دارایی‌های خود را در یک استخر نقدینگی از جنس توکن بومی آن بلاکچین به اشتراک می‌گذارد تا سرمایه جمعی به یک اعتبار برای فعالیت‌های بلاکچین و رسالت آن بدل شود.

منظور از به اشتراک گذاری در اینجا، نوعی وام دادن به پلتفرم است؛ یعنی شما ارز فیات خود را به توکن آن تبدیل می‌کنید، سپس همان توکن‌ها را در استخرهای استک کردن قفل می‌کنید تا پلتفرم از این دارایی تجمیع شده به عنوان انگیزه‌ای برای انجام امورات خود استفاده کند.

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

در قبال این اشتراک سرمایه به شما قدرت تصمیم‌ گیری، مشارکت در فعالیت‌های حکمرانی و خدماتی بلاکچین و سود سرمایه‌گذاری تخصیص می‌یابد؛ هرچقدر بیشتر پول بگذارید، مطمئنا قدرت و منفعت شما در هر کدام از این فاکتورها نیز بیشتر خواهد بود.

به ویژه، به سرمایه گذاران این الگوریتم اجماع تأیید کنندگان یا Validator گفته می‌‎شود. آن‌ها قدرت خلق بلوک‌های جدید را دارند، یا می‌توانند این قدرت خود را در اختیار یک ماینر دیگر بگذارند. بنابراین، فرایند تأیید تراکنش‌های پلتفرم و انتشار آن‌ها در بلوک‌های جدید بلاکچین توسط ولیدیتورها یا نمایندگان آن‌ها انجام می‌شود و آن‌ها سهمی از کارمزدی که پلتفرم بابت هر تراکنش می‌گیرد را دریافت می‌کنند.

مزایای مکانیسم اجماع PoS

معایب الگوریتم اثبات سهم

الگوریتم گواه اثبات سهام نیابتی یا DPoS

الگوریتم اثبات سهام نیابتی یا Delegated Proof of Stake یک تعمیم از PoS است که در سال 2014 و با هدف افزایش سرعت و امنیت بلاکچین‌های مبتنی بر PoS معرفی شد. در بلاکچین‌هایی چون Cosmos، Tron و EOS از این الگوریتم اجماع بهره می‌گیرند.

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

مکانیسم اجماع DPoS

مزایا مکانیسم اجماع DPoS

معایب الگوریتم اجماع DPoS

الگوریتم اجماع تحمل خطای بیزانس یا pBFT

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

به عبارتی، ابتدا اشخاصی به عنوان گره‌های وفادار و با عملکرد مطلوب انتخاب می‌شوند. در ادامه، هر تصمیمی که قرار است برای کل شبکه بلاکچین گرفته شود، باید ابتدا توسط دو سوم این افراد تأیید گردد. بلاکچین‌های Hyperledger و Fabric از جمله پلتفرم‌هایی هستند که از این مکانیسم اجماع بهره می‌گیرند.

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

مزایای الگوریتم pBFT

معایب الگوریتم pBFT

الگوریتم اجماع اثبات وزن یا Proof of Weight

الگوریتم اجماع اثبات وزن توسط چند محقق از دانشگاه MIT و به طور اختصاصی برای بلاکچین Algorand طراحی شد. هدف آن‌ها حل مسئله متناظر با حاکمیت مخربانه بیزانس (Byzantine Generals) بود. به همین دلیل، آن‌ها الگوریتمی را خلق کردند که با وزن‌دهی به تأیید کنندگان معتبر، امکان مشارکت، قدرت و تضمین آن‌ها در شبکه را بالا می‌برد.

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

مزایای الگوریتم اجماع PoWeights

معایب الگوریتم اثبات وزن

الگوریتم اجماع اثبات ظرفیت یا Proof of Capacity

الگوریتم اثبات ظرفیت یا اثبات فضا در سال 2015 و توسط Stefan Dziembowski و  Sebastian Faust به دنیای دیفای معرفی شد. از این الگوریتم برای اولین بار در پروژه Burstcoin بهره گرفته شد که از در قالب آن ماینرها می‌توانند از فضای ذخیره خود برای استخراج کریپتو بهره بگیرند.

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

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

الگوریتم اثبات فضا

مزایای الگوریتم اثبات فضا

معایب الگوریتم اثبات فضا

الگوریتم اثبات اعتبار یا Proof of Authority

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

الگوریتم اثبات اعتبار یا هویت، نه به فضا یا قدرت سرمایه‌گذاری، بلکه بر اساس اعتبار و هویت واقعی افراد تعریف شده است. به عبارتی، ماینر هویت خود را در این الگوریتم استک می‌کند؛ در الگوریتم اجماع PoA، ابتدا هویت واقعی تأیید کنندگان توسط شبکه احراز می‌شود. در ادامه، مدیران شبکه میزان اعتبار آن‌ها را بررسی می‌کنند.

در نتیجه، هر خرابکاری به سرعت و دقت بالایی ردیابی می‎شود و شخص ممکن است به دلیل خطاهای مکرر اعتبار خود را کلا از دست بدهد. همچنین، هر تأیید کننده علاوه بر هویت و اعتبار خود، باید میزانی از دارایی‌های خود را استک کند؛ به عبارتی الگوریتم PoA ترکیبی از استک کردن اعتبار و دارایی است.

مزایای الگوریتم PoA

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

الگوریتم اثبات اهمیت یا Proof of Importance

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

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

مزایایی الگوریتم اثبات اهمیت

معایب الگوریتم PoI

جمع‌بندی:

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

به طور کلی، هدف از تعریف یک الگوریتم اجماع جدید، پرداختن به یک پارامتر مهم درباره توسعه الگوریتم‌ها از میان سه پارامتر مقیاس پذیری، غیرمتمرکز بودن و امنیت است. هر الگوریتم به نوعی با این سه مولفه دست‌وپنجه نرم می‌کند و معمولا تنها می‌تواند یک یا دو پارامتر را به بهینگی برساند.

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

سوالات متداول

بهترین مکانیسم اجماع کدام است؟

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

انواع مختلف الگوریتم اجماع کدامند؟

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

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

منظور استراتژی تعیین شده در بلاکچین برای توافق بین اعضاء شبکه آن و انجام امورات بلاکچین بر طبق این توافق است. برای مثال، با استفاده از مکانیسم اجماع می‌توان شیوه ثبت بلوک‌های جدید یا تغییر در قوانین بلاکچین را اجرایی کرد.

خروج از نسخه موبایل