الگوریتم اجماع چیست؟ معرفی انواع الگوریتم اجماع + کاربرد
فهرست مطالب
الگوریتم اجماع یک فرایند است که توسط سیستمهای توزیع شده (همان پایگاه دادههای توزیع شده یا بلاکچین) استفاده میشود تا یک نظام پذیرش، رأیگیری و اطلاعرسانی جمعی درباره یک تصمیم، ارزش، انتقال و …، در شبکه تعریف گردد. الگوریتم اجماع مولفهای بسیار مهم در تأیید اعتبار دادهها و پایداری یک سیستم با هر فعالیت مرکزی است. به زبانی ساده، الگوریتم اجماع برای اطمینان از مشارکت و پذیرش یک ارزشِ (Value) خاص توسط تمام اعضاء شبکه تدوین میشود. این اصطلاح را گاها مکانیسم اجماع نیز میخوانند و در متون بلاکچین این دو به یک فعالیت و واقعیت دیجیتال اشاره دارند.
به ویژه، در شبکههای مختلف، تأخیر زمانی و اجرایی باعث میشود که سطح و نوع دسترسی اعضاء شبکه متفاوت از هم باشد. الگوریتم اجماع یک مسیر یا الگوی هوشمندانه برای برطرف کردن این دسترسی ناموزون در بین گرههای مختلف شبکه و ایجاد یک انسجام در حضور تمام موانعی است که بر یکپارچگی شبکه تأثیر میگذارند. اما هدف از الگوریتم اجماع در بلاکچین چیست، انواع آن کدامند و تفاوت پایه آنها در چیست؟ در این مقاله به طور مفصل این سوالات را پاسخ میدهیم، کاربرد الگوریتم اجماع را در شبکههای مختلف تفسیر میکنیم و مطالب مرتبط و پیرامون این اصطلاح را شرح و بسط خواهیم داد.
پیشنهاد ما برای درک بهتر آنچه در ادامه میآید، مقالات تکمیلی زیر است:
الگوریتم اثبات زمان سپری شده چیست؟
الگوریتم اجماع چیست؟
برای درک بهتر اینکه الگوریتم اجماع چیست، باید ابتدا به مفهوم سیستم یا محاسبات توزیع شده بپردازیم. سیستم توزیع شده در واقع سیستمی است که مولفههای محاسباتی، ذخیره، مشارکت و…، از آن در موقعیتهای مختلف و متفاوتی قرار دارند و هرکدام از این مولفهها استقلال عملی خاص خود را حفظ میکنند. در دنیای کامپیوتر و فعالیت آنها در بستر اینترنت، هر مولفه یک سیستم کامپیوتری و پردازشی است که بخشی از فرایندهای تعریف شده برای شبکه را به عهده میگیرد. این کامپیوترها اگرچه در مناطق مختلفی پراکندهاند، اما در قالب یک شبکه متمرکز به فعالیت میپردازند. برای مثال، شرکت گوگل در نقاط مختلفی از جهان پایگاه داده دارد، از نظر فیزیکی از یکدیگر مستقلاند، اما با یک سیستم واحد کنترل میشوند و نهادی مرکزی عملکرد یکپارچه آنها را رصد میکند.
در شبکههای غیرمتمرکز، برخلاف پایگاه دادههای گوگل، دیگر نهاد مرکزی در کار نیست و این اعضاء هستند که مسئولیت حفظ ساختار شبکه و سلامت عملیات آن را به عهده میگیرند. بخصوص، بلاکچین یک فناوری مبتنی بر تفکر غیرمتمرکز و سیستمهای توزیع شده است که هدف غیرمتمرکز بودن و مشارکت جمعی را به بهترین شکل ممکن پیگیری میکند. اما هر سیستم توزیع شده که سازمانی بالاسری ندارد، به یک مکانیسم در تعریف قوانین، تغییرات شبکه و اجرای عملیات از پیش تعریف شده نیاز دارد. این مکانیسم باید به گونهای تعریف شود که از شفافیت بسیار بالایی برخوردار باشد، قدرت متناسبی را به هر گره از شبکه بدهد و برای تمام اعضاء دسترسی یکسانی را به ارمغان آورد. به همین دلیل، چنین مکانیسمی را مکانیسم اجماع یا الگوریتم اجماع میخوانند.
عبارت الگوریتم اجماع (Consensus Algorithm) از مجامع حکومتی و دمکراسی دوران یونان باستان گرفته شده است. این واژه لاتین به معنی توافق یا پذیرش جمعی است و در بلاکچین به سلسله قواعد برنامهنویسی اشاره میکند که ماهیت و عملکرد بلاکچین و نحوه مشارکت گرهها را تعریف میکنند. بنابراین، اگرچه کاربران عادی نمیتوانند مجمعهای تشکیل شده برای انجام مقررات یا تغییر در آنها را ببینند، اما مکانیسمهای اجماع به صورت لحظهای، خودکار و مشارکتی در حال انجاماند و بدون آنها هیچ بلاکچین و پلتفرم مبتنی بر آن نمیتواند به بقای خود ادامه دهد.
نحوه عملکرد الگوریتم اجماع
در یک سیستم توزیع شده، به ندرت اتفاق میافتد که تمام گرهها (Nodes) به طور همزمان آنلاین باشند؛ بنابراین، امکان رأیگیری و مشارکت تمام اعضاء وجود ندارد. الگوریتم اجماع این مسئله حیاتی در شبکههای توزیع شده و چند عاملی را حل میکند. با استفاده از این الگوریتم، تنها به 51 درصد از منابع در آن واحد نیاز است. برای مثال، در الگوریتم اجماع از نوع PoW، اگر شخصی بخواهد مقداری بیتکوین را از کیف خود به آدرس دیگری منتقل کند، ماینرها بلوک جدید را به وجود میآورند و با اجماعی با حداقل 6 میانر، تراکنش مورد نظر ثبت میشود.
کاربرد الگوریتم اجماع
انواع مختلفی از الگوریتمهای اجماع در طول سالها برای فعالیتها، بلاکچینها و اهداف مختلف به وجود آمدهاند. اما کاربرد الگوریتم اجماع تنها برای سیستمهای توزیع شده و غیرمتمرکز نیست، در سیستمهای متمرکز و سازمانهای مختلف نیز از این مکانسیم بهره گرفته میشود. اولین و اصلیترین کاربرد الگوریتم اجماع، تشخیص نیاز و اجرای فعالیتهای مرتبط با تراکنشهایی است که در سیستمها و بازارهای مالی استفاده میشوند. تقریبا در تمام شبکههای بلاکچین که برای رد و بدل کردن رمزارز طراحی شدهاند حتما از یک الگوریتم اجماع بهره گرفته میشود. مکانیسم اجماع یک رویکرد قابل اعتماد و پر استفاده در تشخیص نحوه حکمرانی در شبکههای جمعی، تعیین تیمهای عملیاتی و خدماتی و حتی رهبری شبکه است. بخصوص، از این مکانیسم برای مدیریت داده و ایجاد هارمونی در انتقال، تحلیل، ذخیره و بهرهبرداری از آن استفاده میشود.
هدف از الگوریتم اجماع در بلاکچین
هر شبکهای میتواند در قالب یک سیستم توزیع شده با گرههایی از سراسر جهان تعریف شود، اما بلاکچین جذابترینِ این شبکههاست که به شکل همهگیری در حال گسترش و نفوذ به رگههای مختلف مالی، صنعتی، اجتماعی و حتی سیاسی در جوامع مختلف است. هدف از الگوریتم اجماع در بلاکچین اطمینان از تعریف بلوکهای جدید است که توسط تمام اعضاء تأیید میشوند و تمام فعالیتهای بعدی شبکه حول این ماهیت بلوکی تعریف میگردد. یادمان نرود که بلاکچین یک کد برنامهنویسی است و متناظر با آن، مکانیسم اجماع نیز یک دنباله کد پر از if و that است که نحوه حکمرانی در بلاکچین را تعریف میکند و به شفافیت، اصالت و اعتبار بلاکچین مهر درستی میزند.
معرفی انواع الگوریتم اجماع
هر سیستم توزیع بلوکهای عملیاتی خاص خود را دارد، زبان برنامهنویسی آن مختص سیستم است و اعضاء آن با علایق، توقعات و حتی پیشینه حرفهای مشترکی در آن فعالیت میکنند. در نتیجه، معرفی انواع الگوریتم اجماع متناظر با نوع شبکه، نوع خدمات و فعالیتهای آن و نوع مشارکت جمعی است که قرار است موجودیت و شفافیت شبکه را تضمین کند. در ادامه، لیست نسبتا کاملی برای معرفی انواع الگوریتم اجماع ارائه میشود و هر الگوریتم را به صورت خلاصه توضیح میدهیم. برای توضیح مفصلتر از هر الگوریتم میتوانید به مقالات اختصاصی ما برای این الگوریتمها مراجعه کنید.
الگوریتم اثبات کار یا PoW
این الگوریتم توسط خالق بیتکوین یعنی ساتوشی ناکاموتو برای اولین بار در سال 2009 معرفی شده است. PoW قدیمیترین مکانیسم مورد استفاده در حوزه بلاکچین است. این مکانیسم همان قانون ماینینگ است که ماینرها در تناظر با آن بلوکهای جدید را خلق و اطلاعات تراکنشها را در آنها ذخیره میکنند. متناظر با مبانی این مکانیسم، ماینر باید یک پازل ریاضیاتی پیچیده را با استفاده از یک الگوریتم و اپلیکیشن از پیش طراحی شده حل کند. برای حل این پازل به قدرت پردازشی بسیار بالایی نیاز است، انرژی الکتریسیته زیادی صرف میشود و روشهای متفاوتی چون GPU ماینینگ، CPU ماینینگ، ASIC ماینینگ و FPGA ماینینگ در این فرایند به کار گرفته میشود. اولین ماینری که بتواند مسئله را حل کند همان خالق بلوک متناظر و برنده میزان بیتکوین درنظر گرفته شده است.
جالب اینکه، خلق بلوکها به نوعی تعریف شده است که با افزایش زمان از پیش تعریف شده برای خلق یک بلوک، پیچیدگی مسئله ریاضی متناظر با آن نیز بیشتر میشود. در نتیجه، ماینر باید هزینه محاسباتی بیشتری را صرف کند و وقتی قدرت پردازشی بالاتر میرود، مسئله پیچیدهتر شده است تا زمان تقریبا همان مقداری باشد که شبکه در نظر گرفته است. علاوه بر بیتکوین، شبکههای رمزارز دیگری چون Litecoin، ZCash، Primecoin، Monero و Vertcoin نیز از PoW به عنوان الگوریتم اجماع اصلی خود بهره میگیرند. PoW آغازگر شیوههای انجام تراکنش غیرمتمرکز، شیوههای پرداخت آنلاین ایمن در بلاکچین و بسیاری فعالیتهای مشابه دیگر بوده است.
الگوریتم اثبات سهم یا PoS
کاربر پسندترین الگوریتم جایگزین برای PoW، الگوریتم اثبات سهم است که رویکردی دارایی محور را برای مشارکت در ثبت اطلاعات تعریف میکند. در این روش بلاکچین، کسانی که بلوکها را خلق میکنند دیگر ماینرها نیستند، بلکه اعتبار دهندگان به شبکه و سرمایهگذارانی هستند که با استیک کردن داراییهای خود باعث جذب افراد به بلاکچین میشوند. برای کسب اطلاعات بیشتر میتوانید مقاله استیک کردن چیست؟ را مطالعه کنید.
اما ماینرها همچنان نقشی در این نوع پلتفرمها دارند که تقریبا مشابه با همان خلق بلوک و ثبت اطلاعات است؛ با این حال، حق الزحمه آنها در قالب بخشی از کارمزد تراکنش تعریف میگردد (و نه ارائه کوین به صورت خودکار و از جانب خود شبکه). بلاکچینهایی چون Dash، Peercoin، Decred، Reddcoin و PivX قدرت خود را از این الگوریتم اجماع میگیرند. اتریوم هم قرار است در آپدیت Ethereum 2.0 از این مکانیسم استفاده کند. اما PoS هم که در پی حل چالشهای پیرامون PoW بود، خود با موانع و ناکارآمدیهایی همراه است که منجر به خلق الگوریتمهای دیگر شده است. در ادامه دو انشعاب از الگوریتم اثبات سهم تحت عنوان DPoS و LPoS را توضیح میدهیم.
الگوریتم گواه اثبات سهام نیابتی یا DPoS
در الگوریتم اثبات سهام نیابتی، دو دسته از تأیید کنندگان وجود دارند. دسته اول کسانی هستند که سرمایه خود را استک کردهاند و با استفاده از آن قدرت تصمیمگیری و رأی دادن را در شبکه به دست آوردهاند. هر چقدر میزان سرمایهگذاری بیشتر باشد، قاعدتا رأی شخص اعتبار بیشتری خواهد داشت. دسته دوم را نماینده یا Delegate میخوانند که نقشی مشابه با ماینرها دارد. بنابراین، دسته اول تصمیم میگیرند که چه کسی کار را انجام دهد و دسته دوم فنیهای شبکه هستند که عملیات را به اجرا میرسانند. در نهایت، هزینه انجام تراکنش بین این دو دسته و خود پلتفرم تقسیم میشود.
اثبات سهام استیجاری یا LPoS
اثبات سهام استیجاری یک شیوه منشعب از PoS است که به صورت ویژه توسط پلتفرم توسعه اپلیکیشن Waves Platform استفاده میشود. در این نوع از مکانیسم اجماع، شخص اعتبار حاصل از داراییهای خود در پلتفرم را به گرههای دیگر قرض میدهد. قرض گیرندهای که میزان اعتبار تجمیعی آن به عدد مورد نظر پلتفرم برسد امکان خلق بلوک جدید را دارد. در نتیجه، این شیوه از اجماع نوعی قرض دادن اعتبار برای تعریف یک اعتبار کل و کاربردی در شبکه است. در نهایت، کارمزد تراکنش بین قرض دهندهها و قرض گیرندهای که کار اصلی را انجام داده است تقسیم میشود. این نوع از الگوریتم اجماع بخصوص در بلاکچینهای عمومی بسیار کاربرد دارد.
الگوریتم اثبات اعتبار یا PoA
این نوع مکانیسم نیز ویرایش متفاوتی از PoS است که در آن به جای استک کردن دارایی، اعتبار استک میشود. در الگوریتم اثبات اعتبار، گرههای شبکه اسناد هویتی و عملکردی خود را به شبکه ارائه میدهند تا اعتبار اولیه کسب کنند؛ در ادامه، آنها با فعالیت در شبکه و انجام عملیات ثبت بلوک و تراکنشها، اعتبار بیشتری را جذب میکنند. هر چقدر اعتبار یک گره بیشتر باشد، احتمال اینکه فعالیت بیشتری به او محول شود بالاتر خواهد بود. این الگوریتم اما، باعث محدود شدن تعداد تأیید کنندگان و انحصاری شدن آن به جامعه کوچکی، کمتر از 25 ولیدیتور، در شبکه میشود. با این حال، شبکههای مبتنی بر این الگوریتم سریعترند و بیشتر در بلاکچینهای خصوصی از آن بهره گرفته میشود. ازجمله شبکهها با این مکانیسم میتوان به VeChain، Bitgert، Palm Network و Xodex اشاره کرد.
الگوریتم تحمل خطای بیزانس یا BFT
الگوریتم تحمل خطای بیزانس یک رویکرد تصمیمگیری برای مواجه با خطاها یا هکهای فاجعه انگیزی است که ممکن است در درون شبکه اتفاق بیافتند. برای مثال، اگر تعداد قابلتوجهی از گرهها اقدام به تصاحب یا تخریب شبکه کنند، سازوکار BFT میتواند کمک شایانی به بقای شبکه و بازگشت از این موقعیت فاجعهبار کند. در الگوریتم BFT اعضاءی تحت عنوان فرمانده بیزانس وجود دارند؛ تا زمانی که تعداد گرههای مخرب بیشتر از یک سوم فرماندهان بیزانس نشود، همچنان امکان اتخاذ استراتژی نجات از جانب گرههای اصلی وجود خواهد داشت. این الگوریتم خود به دو حالت متفاوت زیر تفکیک میشود:
- الگوریتم تحمل خطای بیزانس عملی (PBFT)
- الگوریتم تحمل خطای بیزانس نیابتی (DBFT)
الگوریتم گراف جهتدار غیرمدور (DAG)
یکی از اصلیترین انواع الگوریتم اجماع مورد استفاده در شبکههای توسعه اپلیکیشن موبایل، الگوریتم گراف جهتدار غیرمدور است. در این الگوریتم، هر کاربر امکان تبدیل شدن به یک ماینر را دارد. بنابراین، کارمزد تراکنش در شبکه تقریبا به صفر میرسد. درنتیجه، گرههایی که به هم نزدیکترند با سرعت بیشتر و ایمنتر تراکنشها را انجام میدهند. IOTA و Hedra Hashgraph دو مثال عینی از کاربرد این الگوریتم اجماع در بلاکچین هستند.
الگوریتم اثبات ظرفیت یا PoC
در الگوریتم اثبات ظرفیت، راهحلهای تمام مسائل ریاضی در هارد دیسکهای فیزیکی ذخیره میشوند. کاربران از این دیسکها برای ساخت بلوکهای جدید از شبکه استفاده میکنند. کسانی که سریعتر به جوابها میرسند، شانس بیشتری برای ساخت بلوکها خواهند داشت. برای مثال، اگر ماینر A ساخت بلوک جدید را روی 40 ثانیه فیکس کرده باشد، و هیچ ماینر دیگری چنین سرعتی را پیشنهاد ندهد، آنگاه A و ظرفیت پردازشی او برنده مزایده ساخت بلوک جدید خواهند بود. Burstcoin و SpaceMint دو بلاکچین با مکانیسم اثبات ظرفیت هستند.
الگوریتم اثبات سوزاندن یا PoB
این الگوریتم یک جایگزین پیشنهادی برای PoW و PoS مشهور است. هدف در این الگوریتم، کاهش میزان مصرف انرژی تا سرحد ممکن در کانون توجه قرار گرفته است. در این الگوریتم، ماینرها اجازه دارند توکنهای مشخصی از بلاکچین را بسوزانند و متناظر با این سوزاندن، حق ساخت بلوکهای جدید را به دست آورند. هر چقدر توکن بیشتری سوزانده شود، شانس بیشتری برای ساخت بلوک بعدی نصیب ماینر میگردد. برای سوزاندن، باید کوینها را به آدرسی منتقل کنند که از آن برای تأیید بلوک استفاده نمیشود. Slim Coin مثال بارزی در استفاده از این مکانیسم اجماع است.
الگوریتم اثبات هویت یا PoI
الگوریتم اثبات هویت تقریبا شبیه همان رویکرد مورد استفاده در الگوریتم اثبات اعتبار است. در این الگوریتم که توسط یک کد الحاق شده به کلیدهای خصوصی کاربر اجرا میشود، هر کاربر تأیید صلاحیت شدهای میتواند بلوک جدیدی را به شبکه اضافه کند. در ادامه، مدیریت دادههای این بلوک نیز در اختیار خود او خواهد بود. این الگوریتم، آغازی بر بلاکچینهایی است که مفهوم شهر هوشمند را تحقق میبخشند (هرکس با یک کار شناسایی معتبر میتواند بلوک ایجاد و مدیریت کند).
الگوریتم اثبات فعالیت یا PoA
در الگوریتم PoA، شبیه PoW، ماینرها از قدرت پردازشی خود برای حل یک مسئله رمزنگاری استفاده میکنند. با این حال، بلوکی که آنها برایش مسابقه محاسباتی میدهند تنها شامل اطلاعات مرتبط با هویت صاحب بلوک و پاداش ثبت تراکنش است. وقتی بلوک جدیدی ایجاد شد، الگوریتم به PoS سوئیچ میکند و تأیید بلوک ایجاد شده را به مزایده میگذارد. حال کسانی که بیشترین مقادیر را در شبکه استک کردهاند برای تأیید بلوک جدید انتخاب میشوند و پس از تأیید آنها، مراحل الحاق بلوک به بلاکچین طی میگردد.
الگوریتم اثبات زمان سپری شده یا PoET
این مکانیسم را برای اولین بار Intel به دنیای بلاکچین معرفی کرد. هدف اشاره به تشخیص معماری CPU از زمان و فرکانسی بود که ماینرها با آن بلوک جدیدی را ایجاد میکنند. در اینجا، هدف اصلی شبکه توزیع عادلانه کار با استفاده از تعیین یک زمان مشخص برای تولید یک بلوک جدید است. بنابراین، از هر گره که قصد مشارکت در تولید بلوک را دارد خواسته میشود که یک بازه زمانی مشخص را منتظر بماند تا فرایند ماینینگ بعدی را شروع کند.
الگوریتم اثبات اهمیت یا PoI
الگوریتم اثبات اهمیت توسط NEM و به عنوان یک انشعاب از پروتکل PoS معرفی شد. منظور از اهمیت، نمره گره از فاکتورهای مختلفی است که سطح ارزش عملیاتی آن در شبکه را مشخص میکند. فاکتورهایی چون میزان دارایی، تأییدهای درست، اعتبار بالانس کلی و … که شانس پیروزی برای تولید یک بلوک را تعیین میکنند. بنابراین، شبکه سعی میکند وضعیت امنیتی خود را با استفاده از فاکتورهای بیشتر در تعیین کاربران شاخص و تولیدکنندگان بلوکهای جدید بالا ببرد. شبکههایی که از PoI استفاده میکنند، سطح امنیت بالاتری دارند، هرچند سرعت آنها به دلایل تأیید گرفتنهای متعدد و ثبت اطلاعات زیاد از گرهها تا حدودی کاهش مییابد.
جمع بندی
الگوریتم اجماع به مجموعه تمام مکانیسمهایی گفته میشود که در سیستمهای توزیع شده مختلف برای توسعه خود سیستم به کار گرفته میشوند. در دنیای بلاکچین، گرههایی که قصد مشارکت در ساخت بلوکهای جدید و تأیید تراکنشها را دارند باید آگاهی دقیقی از نوع، ساختار و نحوه اجرای الگوریتم مبنا داشته باشند تا شانس خود را در تولید بلوک جدید و دریافت پاداش آن بالا ببرند.
هیچ محدودیت خاصی در تعریف الگوریتمهای جدید وجود ندارد؛ در واقع، هر بلاکچین که به دنیای رمزارز معرفی میشود سعی میکند شیوه جدیدی در تأیید صلاحیت و اجماع در شبکه را تعریف کند؛ از این طریق، به یکتایی شبکه خود میافزاید، چالشهای موجود در شبکههای دیگر را پوشش میدهد و قابلیتهای متفاوتی را به کاربران عرضه میکند. اگرچه ما هر الگوریتم را در یک یا دو پاراگراف توضیح دادیم، اما عملکرد آنها و ساختار فنی هر الگوریتم اجماع بسیار پیچیدهتر از این چند خط است و تنها برای کاربرانی مفید است که خواهان مشارکت در فعالیتهای زیربنایی بلاکچین هستند. برای کاربرانی که تنها قصد معامله در پلتفرمها را دارند، این سطح از آگاهی کافی خواهد بود.
سوالات متداول
اولین مکانیسم اجماع کدام است؟
اولین مکانیسم اجماع PoW است که توسط ساتوشی و برای استفاده در بلاکچین بیتکوین خلق شد.
کاربرد الگوریتم اجماع چیست؟
الگوریتم اجماع ساز و کاری است که شبکههای بلاکچین عملکرد خود را بر قوانین آن گره زدهاند. تمام تراکنشها، تأیید و ثبت آنها از صافیهایی میگذرند که در قالب این الگوریتم مبنا برای بلاکچین تعریف شدهاند.
بهترین الگوریتم اجماع کدام است؟
بهترین الگوریتم اجماع، مکانیسمی را تعریف میکند که بهترین تجربه کاربری متناظر با ان حاصل میشود. برای نمونه، PoW بهترین مکانیسم برای بلاکچین و ماهیت آن است. در حالی که برای اتریوم، PoS مطلوبتر است. در واقع هر بلاکچین الگوریتم اختصاصی خود را متناظر با نیاز آن شبکه تعریف میکند.
هدف از الگوریتم اجماع در بلاکچین چیست؟
هدف کاهش یا حذف نیاز کانونی به یک نهاد میانجی است که تراکنشها و دیگر فعالیتهای شبکه را تأیید یا ثبت و ضبط میکند. با استفاده از مکانیسم اجماع، گرههای مختلف شبکه این مسئولیت را بر عهده میگیرند و هیچ مالکیت خاصی برای گرهای که اقدام به تولید یک بلوک میکند تعریف نخواهد شد.
درباره نویسنده
وریا وکیلی
ثبت نظر جدید