الگوریتم اجماع (Consensus) چیست؟ | معرفی رایج ترین الگوریتم های اجماع
الگوریتم اجماع در حوزه فناوری بلاک چین یکی از مفاهیم مهم است که در فرایند تأیید تراکنشها و ایجاد توافق بین استفاده کنندگان شبکه استفاده میشود. این الگوریتم برای حل مسئلهی انتخاب رهبر در شبکههای غیر متمرکز به کار میرود و نقش کلیدی در تضمین امنیت و قابلیت اطمینان شبکه دارد. بلاک چین یک فناوری توزیع شده است که به صورت پیوسته رکوردهای تراکنشها را در بلوکهایی آرشیو میکند. هر بلوک شامل مجموعهای از تراکنشها است که توسط شبکهی بلاک چین تأیید و تولید میشود. اما چگونه میتوان از این بلوکها برای اطمینان از صحت تراکنشها و ایجاد توافق استفاده کرد؟
در اینجا الگوریتم اجماع وارد عمل میشود. در این مکانیزم، شبکهی بلاک چین توسط یک گروه از نودها تشکیل میشود که هر کدام از آنها بلافاصله به تراکنشها پاسخ میدهند. این الگوریتم به صورت مرحله به مرحله اجرا میشود. در هر مرحله، نودها به یکدیگر پیامهای خود را ارسال میکنند و سعی میکنند به توافق برسند.
این توافق معمولاً در مورد تراکنشهایی است که در یک بلوک قرار میگیرند و باید توسط رهبر انتخاب شده تأیید شوند. برای انتخاب رهبر، الگوریتم اجماع از معیارهای مختلفی استفاده میکند. معیارهایی مانند سن، قدرت محاسباتی، تعداد سکهها و … میتوانند برای انتخاب رهبر در نظر گرفته شوند. هدف اصلی این انتخاب، ایجاد یک سیستم قابل اعتماد و امن برای تأیید تراکنشها و اجرای توافق است.
کاربرد الگوریتم اجماع
این مکانیزم در دو نوع بلاک چینهای تغییرپذیر و تغییرناپذیر استفاده میشود.
در بلاک چینهای تغییرپذیر، تراکنشها بهطور مداوم اضافه و حذف میشوند. این مکانیزم برای تأیید تراکنشها و حل مشکلات قابلیت اطمینان استفاده میشود. در بلاک چینهای تغییرناپذیر تراکنشها برای همیشه در بلوکها ثبت میشوند. این الگوریتم برای تراکنشهای جدید و تغییرات در شبکه استفاده میشود.
یکی از مهمترین کاربردهای الگوریتم اجماع در بلاک چین، تأیید تراکنشهای ارزهای دیجیتال مانند ارزهای رمزنگاری شده است. در یک شبکه بلاک چین، تراکنشها ابتدا به صورت پیشنهادی توسط اعضا ارسال میشود و سپس باید توسط تمام اعضای شبکه تأیید شوند تا به یک توافق قطعی برسند. الگوریتم اجماع نقش مهمی در این فرآیند دارد و میتواند از حملاتی نظیر حملات دوبار خرج کردن (Double-spending) جلوگیری کند.
در این مکانیزم، تمام اعضای شبکه بلاک چین باید به یک توافق برسند تا تراکنشها را تأیید کنند. برای این منظور، هر عضو میتواند نظر خود را درباره صحت تراکنشها بیان کند. این فرآیند تا زمانی ادامه مییابد که تمام اعضا به یک نتیجه مشترک برسند. در این صورت، تراکنش تأیید میشود و به بلاک چین اضافه میشود. این الگوریتم به شبکه بلاک چین امکان میدهد تا بدون نیاز به یک مرکز کنترلی، به صورت جمعی و توافقی تراکنشها را تأیید کند و از تقلب و تغییرات غیرمجاز جلوگیری کند. با اعتماد به این الگوریتم، کاربران میتوانند به طور مطمئن تراکنشهای خود را در شبکه انجام دهند و از امنیت و صحت آنها مطمئن باشند.
انواع الگوریتم اجماع
انتخاب الگوریتم مناسب برای یک شبکه بلاک چین بستگی به نیازها و برنامههای آن شبکه دارد.انتخاب درست این مکانیزم میتواند تأثیر قابل توجهی در امنیت، کارایی و مقیاسپذیری شبکه بلاک چین داشته باشد. در ادامه به بررسی انواع مختلف الگوریتمهای اجماع خواهیم پرداخت.
(PoW) الگوریتم اثبات کار
این مورد در بیت کوین استفاده میشود. در این الگوریتم، اعضا شبکه باید محاسبات سختی را انجام دهند تا از صحت معاملات و بررسی تغییرات اطمینان حاصل کنند. این محاسبات شامل حل یک مسئله ریاضی پیچیده است که نیاز به قدرت محاسباتی بالا دارد. اعضایی که این مسئله را حل کنند، بلوک جدیدی به شبکه اضافه میکنند و به عنوان جایزه، بیت کوین دریافت میکنند. مسئله ریاضی سخت از این جهت مهم است که حل آن زمان بسیار زیادی میبرد و نیاز به قدرت محاسباتی بالا دارد. عملیات حل مسئله ریاضی سخت به عنوان استدلال هش (Hashing) شناخته میشود.
در الگوریتم PoW، شبکه بلاک چین به صورت مستقل و بدون وجود یک شخص یا سازمان مرکزی کار میکند. هر کامپیوتر شبکه (که به آن ماینر یا ماینرها گفته میشود) سعی میکند این مسئله را حل کند و اگر موفق شود، بلوک جدید را ایجاد میکند و به شبکه اضافه میکند. به این ترتیب، تمام ماینرها در شبکه بلاک چین به یک نتیجه مشترک میرسند و همگامی در شبکه حفظ میشود. الگوریتم PoW از نظر محیط زیستی مشکلاتی دارد. به همین دلیل، مکانیزم های دیگری مانند PoS (Proof of Stake) و PoA (Proof of Authority) نیز در بلاک چینها استفاده میشوند. این الگوریتمها از منابع کمتری استفاده میکنند و به همین دلیل مضرات زیست محیطی کمتری دارند.
(PoS) الگوریتم اثبات سهام
در این الگوریتم، به جای محاسبات سخت، معیار مشارکت و سرمایهگذاری در شبکه برای انتخاب بلوک بعدی استفاده میشود. اعضا که دارای تعداد بیشتری از واحد پول مبنا در حساب خود هستند، بیشترین احتمال برای انتخاب بلوک بعدی را دارند. این الگوریتم اجماع کارایی بالاتری نسبت به PoW دارد و به مصرف انرژی کمتری نیاز دارد.
(DPoS) گواه اثبات سهام وکالتی
این الگوریتم بر پایه PoS است و در آن، حامیان انتخاب شده توسط اعضای شبکه، مسئول انتخاب بلوکهای جدید هستند. اعضا شبکه با رای دادن برای حامیان، قدرت انتخاب آنها را تأیید میکنند. این الگوریتم سرعت بالاتری نسبت به PoW و PoS دارد و میتواند به صورت موازی عمل کند. این روش به عنوان یک جایگزین برای روش های سنتی اثبات کار (PoW) و اثبات سهام (PoS) مطرح شده است و از قابلیت های منحصر به فردی برخوردار است.
در سیستم DPoS، حق تصمیم گیری و انتخاب بلوک های جدید بر عهده یک گروه انتخاب شده از معدود شرکت کنندگان است. این گروه به عنوان شاهدان (witnesses) یا تولیدکنندگان بلوک (block producers) شناخته می شوند. این شاهدان به طور معمول توسط کاربران و نودهای شبکه انتخاب می شوند و از طریق رای دادن برای آنها اعتماد کنندگان استخراج می شوند.
یکی از مزیت های اصلی DPoS نسبت به روش های دیگر اثبات کار، مقیاس پذیری است. با توجه به اینکه تنها تعداد محدودی از شاهدان بلوک وجود دارند، فرآیند اتصال بلوک ها به شبکه بسیار سریعتر انجام می شود و تاخیرهای کمتری در تایید تراکنش ها به وجود می آید. علاوه بر این، DPoS همچنین برای جلوگیری از حملات ۵۱٪ مؤثر است.
در روش اثبات کار سنتی، یک حمله ۵۱٪ رخ می دهد وقتی که یک شخص یا یک گروه از افراد بیش از ۵۰٪ قدرت محاسباتی شبکه را کنترل می کنند و می توانند تغییراتی در بلاک چین ایجاد کنند. با استفاده از DPoS، این حملات به این دلیل کاهش می یابد که تنها اعتماد کنندگان شاهدان بلوک را انتخاب می کنند و قدرت تصمیم گیری را به نحوی تقسیم می کنند که حملات ۵۱٪ غیر ممکن شود. همچنین، DPoS به عنوان یک روش پویا برای انتخاب شاهدان بلوک عمل می کند. اعتماد کنندگان می توانند به دلخواه خود رای دهند و شاهدان بلوک می توانند به شرایط جدیدی توسعه یابند. این رویکرد، انعطاف پذیری بیشتری به شبکه ها ارائه می دهد و امکان بهبود سرعت و امنیت را فراهم می کند.
(PBFT) الگوریتم اجماع تحمل خطای بیزانس
این الگوریتم برای شبکههای خصوصی بلاک چین استفاده میشود. در این الگوریتم، تعدادی از اعضا به عنوان نودهای اصلی انتخاب میشوند و برای اتخاذ تصمیمها و توافق، در مورد تغییرات در شبکه به صورت دورهای رای میدهند. روش تحمل خطای بیزانس (PBFT) یک الگوریتم مهم در زمینه بلاک چین و رمزارزها است. این الگوریتم برای حل مشکلات امنیتی به کار میرود. الگوریتم PBFT از روشهای رمزنگاری و امضای دیجیتال استفاده میکند تا تمامی پیامها را امن کند و از تغییرات ناخواسته جلوگیری کند.
در حالت کلی، تحمل خطای بیزانس به معنی تحمل خطاهایی است که به صورت هماهنگ و همزمان توسط چندین شرکتکننده در سیستم اجرا میشوند. در بلاک چین، این خطاها میتوانند شامل تغییر دادن اطلاعات یا انکار ارسال پیامها باشند. الگوریتم PBFT برای حل این مشکلات استفاده میشود. این الگوریتم توسط میلی پاری و راکل پاسکوال در سال ۱۹۹۹ ارائه شد و در بلاک چینهایی مانند Hyperledger Fabric استفاده میشود. در این الگوریتم، یک شخص مسئول به عنوان رئیس انتخاب میشود که مسئول تصمیمگیری در مورد بلاکهای جدید است. بقیه شرکتکنندگان به عنوان جایگزین انتخاب میشوند که در صورت اختلاف نظر با رئیس اصلی، نظر اکثریت را در نظر میگیرند.
- رئیس پیشنهادی را به بقیه شرکتکنندگان میفرستد.
- بقیه شرکتکنندگان پیشنهاد را تأیید یا رد میکنند.
- در صورتی که پیشنهاد تأیید شود، رئیس آن را به بلاک چین اضافه میکند.
- در غیر این صورت، رئیسجمهور دیگری انتخاب میشود و مراحل ۱ تا ۳ تکرار میشوند.
با توجه به اینکه الگوریتم PBFT بر اساس توافق اکثریت است، تعداد شرکتکنندگان در شبکه باید به اندازهای بزرگ باشد تا امنیت سیستم تضمین شود. همچنین، این الگوریتم برای شبکههایی با تراکنشهای سریع و حجم بالا مناسب است.
گواه اثبات سوزاندن (PoB)
گواه اثبات سوزاندن (Proof of Burn) یک الگوریتم محافظتی است که در برخی از سیستمهای رمزارزی استفاده میشود. این الگوریتم به منظور تأیید تراکنشها و ایجاد امنیت در شبکههای بلاک چین استفاده میشود. در این الگوریتم، کاربران سرمایه خود را به صورت غیرقابل بازیابی سوزانده و به عنوان معیاری برای سازگاری و اعتبار تراکنشها به کار میبرند.
اصل کار این الگوریتم به این صورت است که کاربران میتوانند سکههای خود را به صورت دائمی سوزانده و در مقابل آنها امتیازهای جدیدی دریافت کنند. این سکههای سوخته به طور دائمی از چرخه سیستم خارج میشوند و قابل بازیابی نیستند. بنابراین، کاربران برای اثبات سودمندی خود و عدم انتقال سکههای خود به کاربران دیگر، میتوانند آنها را سوزانده و در ازای آن امتیازهای جدید دریافت کنند. استفاده از گواه اثبات سوزاندن در سیستمهای رمزارزی دارای چندین مزیت است.
- اولاً، این الگوریتم به کاربران امکان میدهد سودمندی خود را اثبات کنند و امنیت شبکه را تضمین کنند.
- دوماً، با سوزاندن سکهها، تراکنشهای مشکوک و تقلبی را میتوان شناسایی کرد و از آنها جلوگیری کرد.
- سوماً، این الگوریتم از لحاظ محیطی نیز مزیت دارد زیرا با سوزاندن سکهها، مصرف انرژی در شبکه را کاهش میدهد و این برای محیط زیست مفید است.
با این حال، گواه اثبات سوزاندن نیز دارای برخی محدودیتها است.
- اولاً، این الگوریتم به مقدار سرمایه سوزانده شده توجه میکند و به همین دلیل کاربران با سرمایه بیشتر در این سیستم بیشترین امتیازها را دریافت میکنند. بنابراین، ممکن است تمرکز سرمایه در دستگاههای خاصی رخ دهد که ممکن است باعث ایجاد تمرکز قدرت و نقض اصل آزادی و دموکراسی شود.
- دوماً، این الگوریتم قابلیت انجام حملات ۵۱٪ را نیز دارد که به معنای این است که یک تهاجمگر با کنترل بیش از نیمی از سرمایه سیستم، میتواند کنترل کامل بر شبکه را به دست آورد.
گواه اثبات ظرفیت (PoC)
گواه اثبات ظرفیت (Proof of Capacity) یا به اختصار PoC یک الگوریتم است که در صنعت رمزارزها و بلاک چین استفاده میشود. PoC به عنوان جایگزینی برای الگوریتمهای معروف مثل گواه اثبات کار (PoW) و گواه اثبات سهام (PoS) در ارزهای دیجیتال مطرح شده است. در PoC، مفهوم اصلی اثبات ظرفیت استفاده میشود. به عبارت ساده، این الگوریتم بر اساس میزان فضای ذخیرهسازی قابل دسترسی توسط یک کاربر تعیین میشود.
با استفاده از این الگوریتم، کاربران میتوانند مقداری از فضای ذخیره سختافزاری خود را به عنوان ظرفیت مورد استفاده قرار دهند و بر اساس آن، حق ایجاد بلوک در شبکه را کسب کنند. افرادی که در PoC شرکت میکنند، معمولاً به عنوان “کشاورزان” شناخته میشوند. آنها با استفاده از فضای ذخیره شده در سیستم خود، پازلهایی را حل میکنند و به بلاک چین اضافه میکنند. کشاورزان با اثبات ظرفیت خود، اعتماد شبکه را تأمین میکنند و در مقابل این خدمت، پاداش دریافت میکنند. این پاداش معمولاً به شکل توکنهای رمزنگاری شبکه (مانند بیت کوین) یا هر نوع ارز دیجیتال دیگری که در شبکه استفاده میشود، انجام میشود.
یکی از مزایای اصلی PoC این است که به طور معمول از مقدار کمی انرژی برای حل پازلها استفاده میکند. این در مقایسه با الگوریتمهای مانند PoW که نیازمند به میزان زیادی از انرژی برای استخراج بلوکها هستند، بسیار مقرون به صرفه است. این الگوریتم همچنین میتواند به عنوان یک راه برای استفاده از ارزهای دیجیتال در سیستمهای قدرتمند محاسباتی مانند ابرشبکهها مورد استفاده قرار بگیرد.
اما یکی از معایب الگوریتم اجماع PoC این است که سرعت استخراج بلوکها نسبتاً پایین است. این به دلیل نیازمندی به زمان برای خواندن اطلاعات از فضای ذخیره شده و حل پازلها است. این باعث میشود که شبکه PoC کمترین توان پردازش را نسبت به سایر الگوریتمها داشته باشد. با این حال، PoC همچنان به عنوان یک الگوریتم جذاب در صنعت رمزارزها و بلاکچین محسوب میشود. با توجه به مزایا و معایب آن، PoC میتواند به عنوان یک گزینه برای استخراج بلوکها در شبکههای بلاک چین استفاده شود و به تعداد بیشتری از افراد اجازه دهد در فرآیند استخراج بلوکها مشارکت کنند.
گواه اثبات ذخیره سازی (Proof of Storage)
گواه اثبات ذخیره سازی (Proof of Storage) یک روش مبتنی بر فناوری بلاک چین است که برای اثبات وجود و صحت ذخیره سازی اطلاعات استفاده میشود. در این روش، شبکه بلاک چین به عنوان یک وسیله برای تایید و ثبت اطلاعات در محیط های ذخیره سازی مورد استفاده قرار میگیرد. با گسترش فناوری بلاک چین و رشد روزافزون حجم داده ها، نیاز به روش هایی برای اطمینان از اینکه اطلاعات در محیط های ذخیره سازی درست و بدون تغییر ذخیره میشوند، احساس میشود.
مزایای گواه اثبات ذخیره سازی
این الگوریتم مزایای قابل توجهی دارد.
تایید اطلاعات
یکی از مزیت های استفاده از الگوریتم اجماع گواه اثبات ذخیره سازی در بلاک چین، این است که می توان به راحتی از طریق آن، اطلاعاتی که در سرویس های ذخیره سازی مورد استفاده قرار میگیرند، را تایید کرد. این به کاربران امکان می دهد تا به راحتی مطمئن شوند که اطلاعاتشان به درستی و بدون تغییر در سرویس ها ذخیره شده است.
تولید مجموعه اطلاعات
در گواه اثبات ذخیره سازی، هر بار که یک فایل یا اطلاعات جدید به سرویس ذخیره سازی اضافه میشود، یک مجموعه از عملیات رمزنگاری و تابع های هش بر روی این اطلاعات انجام میشود. این عملیات ها باعث تولید یک مجموعه یکتا از اطلاعات به نام “گواهی اثبات” میشوند. این گواهی اثبات به عنوان نشانگری برای اطلاعات ذخیره شده استفاده میشود و میتواند به راحتی توسط هر کسی بررسی شود.
مقایسه و صحت سنجی اطلاعات
همچنین، در گواه اثبات ذخیره سازی، برای تایید وجود و صحت اطلاعات، تعدادی از گواهی اثبات های قبلی از سرویس های دیگر در شبکه بلاک چین دریافت میشوند و به عنوان مقایسه استفاده میشوند. اگر اطلاعاتی که در هر سرویس ذخیره شده است با گواهی اثبات های قبلی مطابقت داشته باشد، آنگاه اثبات ذخیره سازی قابل قبول است و اطلاعات تایید میشوند. الگوریتم اجماع نقش کلیدی در امنیت و اعتماد به بلاک چین و ارزهای رمزنگاری شده ایفا می کنند. با توجه به توسعه روزافزون بازار ارزهای دیجیتال، الگوریتم های اجماع نیز بهبود و پیشرفت میکنند تا به نیازهای روز به روز این بازار پاسخ دهند.