مقدمه
زمان زیادی از معرفی بلاکچین، یک شبکۀ غیرمتمرکز توزیعشده و از امنترین پلتفرمهای معاملاتی نگذشته و در همین مدت نیز بسیاری از معاملهگران بهخوبی از تغییرناپذیری، توجه ویژه به حریم خصوصی، امنیت بالا و شفافیت قابلتوجه آن باخبر شدهاند. البته باید اشاره کرد که هیچ مرجع مرکزی برای تأیید تراکنشها در این سیستم وجود ندارد؛ با این حال، هر تراکنش در بستر بلاکچین، کاملاً ایمن بوده و در زمان کوتاهی تأیید میشود. اما چگونه؟
این فرایند تأیید و توافق بر سر موضوعات و گرههای گوناگون و ... تنها بهدلیل وجود الگوریتم اجماع امکانپذیر است؛ الگوریتمی که یکی از بخشهای اصلی هر شبکۀ بلاکچین به شمار میرود.
اگر شما هم کنجکاو هستید تا در مورد این الگوریتم، کاربردهای آن، انواع الگوریتم اجماع و مزایا و معایب هرکدام و ... بیشتر بدانید، پس به هیچ وجه ادامۀ این متن را از دست ندهید.
الگوریتم اجماع چیست؟
الگوریتم اجماع یا Consensus Algorithms مکانیزمی است که در سیستمهای کامپیوتری و بلاکچین برای دستیابی به توافق لازم روی یک مقدار داده یا وضعیت واحد شبکه در میان فرایندهای توزیعشده یا سیستمهای چندعاملی، مانند ارزهای دیجیتال، استفاده میشود که هر تعداد روشی که برای دستیابی به توافق، اعتماد و امنیت در سراسر یک شبکۀ غیرمتمرکز را شامل خواهد شد.
به بیانی دیگر، الگوریتم اجماع در بلاکچین روشی است که از طریق آن همۀ همتایان شبکۀ بلاکچین به یک توافق مشترک در مورد وضعیت فعلی دفتر کل توزیعشده میرسند. الگوریتمهای اجماع به قابلیت اطمینان در شبکۀ بلاکچین دست مییابند و اعتماد بین همتایان ناشناخته را در یک محیط محاسباتی توزیعشده ایجاد خواهند کرد.
ضرورت الگوریتمهای اجماع
کاملاً ضروری است که همۀ عوامل در یک سیستم غیرمتمرکز توزیعشده بتوانند در مورد یک موضوع به توافق برسند؛ حتی اگر برخی از عوامل به شکست بینجامد. به عبارت دیگر، سیستم باید کاملاً تحملپذیر باشد و بتواند از موانع عبور کند.
در یک شبکۀ متمرکز، یک موجودیت واحد بر کل شبکه احاطه داشته و به دور از سیستم حاکمیتی پیچیده و بروز مشکلات گوناگون در بحث اجماع بین مدیران، در بیشتر مواقع آنها میتوانند هر تغییری را که میخواهند، ایجاد نمایند.
اما در یک ساختار غیرمتمرکز، داستان کاملاً فرق میکند؛ فرض کنید که با یک پایگاه داده توزیعشده کار میکنید؛ چگونه میتوانید در مورد ورودیهایی که اضافه میشوند، با همتایان خود به توافق برسید؟ چگونه میتوانید با افرادی که حتی یکبار در زندگی آنها را ملاقات نکردهاید، بر سر مسائل مهم و اساسی مالی و مدیریتی به یک توافق مشترک برسید؟
در ارزهای رمزنگاریشده، موجودی کاربران در یک بلاکچین جمع میشود و ضروری است که همه یک کپی مشابه از پایگاه داده را نگهداری کنند؛ در غیر این صورت، بهزودی افراد با اطلاعات متناقضی مواجه خواهند شد که میتواند کل هدف شبکۀ ارزهای دیجیتال را تضعیف کند.
بلاکچینهای عمومی که بهعنوان سیستمهای غیرمتمرکز و با قابلیت تنظیم خودکار فعالیت میکنند، در مقیاس جهانی بدون هیچگونه مرجع واحدی کار میکنند. این پلتفرم به مشارکت صدها هزار شرکتکننده نیاز دارد تا بر تأیید و احراز هویت تراکنشهای انجامشده و همچنین، فعالیتهای استخراج در بلاکچین کار کنند.
در چنین وضعیتی، دفتر کل به اشتراک گذاشتهشدۀ عمومی نیاز به مکانیزمی کارآمد، منصفانه، بدون تأخیر، با عملکردی قابلاعتماد و ایمن دارد تا اطمینان حاصل شود که تمام تراکنشهای انجامشده در شبکه واقعی هستند و همۀ شرکتکنندگان بر سر یک اجماع توافق دارند.
رمزنگاری کلید عمومی تضمین میکند که کاربران نمیتوانند سکههای یکدیگر را خرج کنند؛ اما هنوز باید یک منبع وجود داشته باشد که مشارکتکنندگان شبکه بتوانند به آن تکیه کنند یا بتوانند تعیین کنند که آیا بودجه پیش از این خرج شده است یا خیر؟
به جرأت میتوان غلبه بر این چالش از طریق الگوریتم اجماع را در محیطی که غریبهها به یکدیگر اعتماد ندارند، یکی از مهمترین پیشرفتهای شبکۀ بلاکچین به شمار آورد.
کاربردهای الگوریتمهای اجماع در بلاکچین
الگوریتم اجماع در بلاکچین دارای کاربردهای متفاوتی است اما معمولاً اساسیترین کاربرد این الگوریتم، به تصمیمگیری در مورد نیاز به پیادهسازی یک تراکنش در یک محیط توزیعشده برمیگردد که اکثر شبکههای بلاکچین از آن استفاده میکنند. همچنین، از این پلتفرم برای همگامسازی دادهها در سراسر شبکۀ غیرمتمرکز و اطمینان از دستیابی به سازگاری نیز استفاده میشود.
محبوبیت روزافزون بلاکچین، الهامبخش بسیاری از افراد برای ایجاد فعالیتی در این زمینه بوده و یکی از کاربردیترین بخشهای این سیستم که باید بسیار موردتوجه قرار گیرد، Consensus Algorithms است که از اهداف خاصی نظیر توافق، همکاری، حقوق برابر برای هر گره و مشارکت اجباری هر گره در فرایند اجماع برخوردار است.
علاوه بر رسیدن به یک توافق مشترک، باید به ضرورت شفافیت و امکان تشخیص و اعتبارسنجی توسط کاربران عادی شبکه با استفاده از این الگوریتم نیز اشاره کنیم.
درست کارنکردن الگوریتمهای اجماع چه مشکلاتی در پی دارد؟
همانگونه که پیشتر نیز گفته شد، الگوریتم اجماع یکی از بخشهای مهم یک شبکۀ بلاکچین به شمار رفته که در رسیدن به توافق مشترک و تأیید تراکنشها و ایجاد شفافیت و ... نقش فوقالعاده مهمی ایفا خواهد کرد؛ پس طبیعتاً عدم فعالیت صحیح این الگوریتمها، موجب بروز اختلالات جدی در شبکه خواهد شد.
به بیان بهتر، امروزه الگوریتمهای اجماع نه تنها زیربنای سیستمهای پول دیجیتال، بلکه زنجیرههای بلوکی هستند که به توسعهدهندگان اجازه میدهند تا کد را در یک شبکۀ توزیعشده اجرا کنند. آنها اکنون سنگبنای فناوری بلاکچین هستند و برای دوام طولانیمدت شبکههای مختلف، بهشدت حیاتی هستند و انتخاب عاقلانۀ یکی براساس نیاز شبکۀ تجاری، بسیار مهم است؛ زیرا شبکههای بلاکچین بدون الگوریتمهای اجماع برای تأیید نمیتوانند بهدرستی کار کنند.
الگوریتم اجماع بهینه چه ویژگیهایی دارد؟
الگوریتم اجماعی که بهصورت بهینه فعالیت میکند، باید تضمین کند که اجماع با حداقل منابع، حفظ یکپارچگی و شفافیت در تصمیماتی که افراد خواهند گرفت، حاصل شده و از پس حلکردن مشکلات ریز و درشت یک شبکۀ بلاکچین بر بیاید.
انواع الگوریتم اجماع در بلاکچین و مزایا و معایب هر الگوریتم
وجود انواع الگوریتم اجماع که براساس اصول متفاوتی عمل میکنند، یکی از مباحث بسیار مهم در بحث شناخت این پروتکل است که در ادامه، به توضیح کامل آنها و بررسی مزایا و معایب استفاده از هر کدام میپردازیم.
- الگوریتم اثبات کار (PoW)
اثبات کار یا Proof of Work، محبوبترین مورد در بین انواع الگوریتم اجماع است که بیتکوین، لایتکوین و اتریوم از آن استفاده میکنند. با این حال، یکی از دشوارترین راهها برای دستیابی به اجماع در یک بلاکچین به شمار میرود؛ چرا که به مقدار قابلتوجهی از قدرت محاسباتی نیاز دارد.
این الگوریتم با درخواست از ماینرها برای حل مسائل پیچیدۀ ریاضی فعالیت کرده و به محض اینکه هش حل شد، بلوک استخراج میشود و تراکنش در همان زمان اعتبارسنجی خواهد شد.
هش یک رشتۀ بهظاهر تصادفی از حروف و اعداد است که هنگام اجرای دادهها از طریق یک تابع هش ایجاد میشود و اگر دوباره همان دادهها را از طریق آن اجرا کنید، همواره با همان خروجی مواجه خواهید شد، اما اگر حتی یکی از جزئیات را تغییر دهید، هش شما کاملاً متفاوت خواهد بود.
در PoW، الگوریتم آنچه را که یک بلوک معتبر میکند، تعیین میکند؛ بهعنوان مثال، ممکن است فقط بلوکی که هش آن با 00 شروع میشود، معتبر باشد و تنها راه ماینر برای ایجاد یکی که با آن ترکیب منطبق است، ورودیهای brute-force است. آنها میتوانند پارامتری را در دادههای خود تغییر دهند تا برای هر حدس، نتیجۀ متفاوتی ایجاد کنند تا زمانی که هش مناسب را به دست آورند.
تأیید اینکه شما واقعاً بلوک مناسب را ایجاد کردهاید یا خیر، برای شبکه چندان مهم نسیت؛ چرا که اگر تریلیونها ترکیب را برای بهدستآوردن هش مناسب نیز امتحان کرده باشید، آنها فقط باید یک بار دادههای شما را از طریق یک تابع اجرا خواهند کرد. اگر دادههای شما یک هش معتبر تولید کند، پذیرفته میشود و پاداش دریافت خواهید کرد و در غیر این صورت، شبکه آن را رد خواهد کرد و شما زمان و برق را بیهوده تلف کردهاید.
- اثبات سهام (PoS)
اثبات سهام یا Proof of Stake یکی از محبوبترین انواع الگوریتم اجتماع است که بهعنوان جانشین PoW از آن یاد میشود که Peer coin، Decreed و به احتمال قوی در آیندهای نزدیک، اتریوم از آن استفاده میکنند. گرههایی که سکههای خود را شرطبندی کردهاند، در صورت نیاز به اجماع، نظر خود را بیان خواهند کرد.
یکی از مزیتهای PoS نسبت به PoW این است که نیاز به توان محاسباتی ندارد. همچنین، منبع هزینه در این الگوریتم، خود توکنها هستند که طبق آن، اگر یک گره سهامداری نتواند به تراکنش صحیح رأی دهد، سهام خود را از دست خواهد داد و در صورت موفقیت، شانس بیشتری برای سهام در هنگام انجام معاملۀ بعدی خواهد داشت.
در این نوع الگوریتم اجماع، اعتبارسنجیها به جای سرمایهگذاری روی سختافزار گرانقیمت با توان محاسباتی بالا برای حل یک معمای پیچیده، روی سکههای سیستم با قفلکردن برخی از سکههای خود بهعنوان سهام سرمایهگذاری خواهند کرد.
طبق این الگوریتم براساس بلاکهای واقعی اضافهشده در بلاکچین، همۀ اعتباردهندهها پاداشی متناسب با شرطبندیهای خود دریافت کرده و بر این اساس، سهام آنها افزایش مییابد.
- اثبات سوختگی (PoB)
PoB نیز برخلاف PoW، بهجای سرمایهگذاری روی تجهیزات سختافزاری گرانقیمت، اعتبارسنجیهای سکهها را با ارسال به آدرسی غیرقابل بازیابی انجام میدهند؛ به بیانی بهتر، با تخصیص سکهها به آدرسی غیرقابل دسترسی، اعتبارسنجیها این امتیاز را به دست میآورند که براساس فرایند انتخاب تصادفی، در سیستم استخراج کنند. بنابراین، سوزاندن سکهها در اینجا به این معنی است که اعتبارسنجیها در ازای ضرر کوتاهمدت خود، یک تعهد بلندمدت دارند.
با وجود اینکه PoB جایگزین مناسبی برای PoW است، این الگوریتم همچنان منابع را بیهوده هدر داده و حتی شاید قدرت استخراج را بهسادگی به کسانی واگذار کند که مایل هستند سکۀ بیشتری بسوزانند!
از دیگر موارد الگوریتم اجماع در بلاکچین نیز میتوان به اثبات ظرفیت (PoC)، اثبات اعتبار (PoA) و اثبات زمان سپریشده (PoET) نیز اشاره کرد که هر کدام عملکرد متفاوتی را از خود به نمایش میگذارند.
سخن پایانی
Consensus Algorithms یکی از اصلیترین بخشهای سیستمهای غیرمتمرکز توزیعشده به شمار میرود که دارای انواع مختلفی بوده که هر کدام براساس اصولی خاص عمل کرده و مزایا و معایب مختص به خود را دارند.
حتی بسیاری بر این باور هستند که بزرگترین نوآوری در بیتکوین، استفاده از الگوریتم اجماع Proof of Work برای قادرساختن کاربران به توافق بر سر مجموعهای از دادههای مشترک بود.
در بین همۀ الگوریتمها، Proof of Work کماکان قابلاعتمادترین و مطمئنترین گزینه است، هر چند که تحقیقات و توسعۀ عظیمی برای جایگزینی برای PoS به جای PoW صورت گرفته و احتمالاً در سالهای آینده، بیشتر از آن خواهیم شنید.