الگوریتم اجماع چیست؟ معرفی انواع الگوریتم اجماع در بلاک چین
الگوریتم اجماع (Consensus Algorithm) فرآیندی است که بهمنظور رسیدن به توافق بهصورت غیرمتمرکز در مورد وضعیت و اطلاعات دفتر کل مربوطه، سیستمهای بلاک چینی مورد استفاده قرار میگیرد. الگوریتم اجماع معمولاً در شبکههایی پیادهسازی میشود که فرآیندها و کاربران زیادی را در بر دارند. کاربردها و ویژگی الگوریتم اجماع باعث شده که اینگونه مکانیزمها در فناوریهای رمزارزها، بلاک چین و دفتر کل توزیع شده (DLT) به یک عنصر اساسی تبدیل شوند، چرا که یک مکانیزم اجماع بهمراتب از اعتبارسنجها و حسابرسان انسانی سریعتر و بهینهتر عمل میکند. در این مقاله از صرافی ارز دیجیتال او ام پی فینکس، انواع الگوریتم اجماع و نحوه عملکرد آنها را مورد بررسی قرار میدهیم.
فناوری بلاکچین (Blockchain) شبکهای غیرمتمرکز و شفاف در ارائه اطلاعات است که هیچ نهاد مرکزی در آن، مسئولیت مدیریت و اعتبارسنجی تراکنشها را بر عهده ندارد. بلاک چین یک دفترکل یا پایگاه داده دیجیتالی بوده که تراکنشهای شبکه را ثبت میکند؛ این تراکنشها مطمئن و غیرقابل تغییر بوده و هیچ هَکری قادر به دستکاری اطلاعات آنها نیست و تمامی فعالیتهای درون شبکه مانند تراکنشهای انتقال یا خرید بیت کوین، بهصورت عمومی در اکسپلورر بلاک چین (Blockchain Explorer) مربوطه قابل مشاهده هستند.
بهدلیل این که شبکه بلاک چین خوداجرا و غیرمتمرکز (Decentralized) است، پروتکلهایی خودکار لازم دارد تا نودهای شبکه تنها در مورد تراکنشهای معتبر به توافق برسند. این پروتکلها برای جلوگیری از فعالیتهای مخرب مانند حملات دابل اِسپندینگ (دوبار خرج کردن / Double Spending) بهکار گرفته شدهاند تا عملکرد یک شبکه بلاک چین دچار مشکل نشود.
الگوریتم اجماع در بلاکچین این اطمینان را ایجاد میکند که هر بلوک اضافهشده به آن معتبر و حقیقی است و تمام نودهای شبکه بر سر آن بلوک به توافق جمعی رسیدهاند.
الگوریتم اجماع چیست؟
الگوریتم اجماع یک مکانیزم در علوم کامپیوتری است که جهت رسیدن به توافق روی یک مقدار از داده در فرآیندها و سیستمهای توزیعشده استفاده میشود و بهطور کل، وظیفه برقراری امنیت در یک شبکه بلاک چین را بر عهده دارد.
الگوریتم اجماع یا مکانیزم اجماع (Consensus Mechanism)، پروتکلی است که از طریق آن تمامی اعضای بلاکچین (نودها) به یک توافق مشترک (اجماع) در رابطه با وضعیت دادههای دفترکل میرسند و میتوانند به کاربران ناشناس در یک محیط کامپیوتری توزیعشده اعتماد کنند.
الگوریتم اجماع برای یک شبکه بلاک چین عنصری ضروری است، چرا که باعث شده یکپارچگی و امنیت در این سیستمهای محاسباتی برقرار باشد. این الگوریتمها اهداف و رویههای مشخصی دارند که از میان آنها میتوان برقراری توافق، تعامل، همکاری، حقوق برابر برای هر نود، و مشارکت اجباری هر نود در فرآیند اجماع را نام برد. بنابراین، هدف اصلی در یک الگوریتم اجماع رسیدن به توافق مشترکی است که به نفع تمام عناصر حاضر در شبکه است.
بهتر است بدانید با این که ممکن است شبکههای بلاک چین از الگوریتم اجماع مشابهی استفاده کنند، هرکدام پیادهسازی و نحوه اجرای خاص خود را دارند. برای مثال ریپل (XRP)، از نسخه تحمل خطای بیزانس (BFT) ویژه خود استفاده میکند و شبکه رادیکس (Radix)، الگوریتم اجماع ابداعی خود به نام سربروس (Cerberus) را پیادهسازی کرده است.
کاربرد الگوریتم اجماع چیست؟
همانطور که در بالا به آن اشاره شد، کاربرد الگوریتم اجماع برقراری تعامل و همکاری یکپارچه میان کاربران و کامپیوترها در یک بلاک چین یا بستر غیرمتمرکز است. الگوریتم اجماع این ضرورت را ایجاد میکند که تمام عوامل یک سیستم، حتی در صورت غیاب یا از کار افتادگی برخی از آنها، بتوانند تنها بر سر یک حقیقت و صحت اطلاعات به توافق برسند. چنین سیستمی باید در برابر خطا مقاوم (Fault-Tolerant) باشد.
در سیستمها سنتی، یک نهاد بهتنهایی بر تمام سیستم اشراف و کنترل دارد؛ در اغلب موارد، این نهادها طبق سلیقه و دلخواه خود اقدام به ایجاد تغییرات در سیستم میکنند و خبری از یک نظام مدیریتی پیچیده برای رسیدن به توافق چندین مدیر نیست. اما در سیستمهای غیرمتمرکز همهچیز فرق میکند. فرض کنیم که در یک پایگاه داده (Database) توزیع شده مشغول به فعالیت هستیم؛ چگونه میتوان به توافق رسید که چه دادههایی به سیستم وارد و ثبت شوند؟ غلبه بر این چالش در محیطی که افراد غریبه به یکدیگر اعتماد ندارند، شاید حیاتیترین دستاورد در سیر پیشرفت فناوری بلاک چین و برجستهترین کاربرد الگوریتم اجماع باشد.
در صنعت و بازار ارزهای دیجیتال، موجودی حساب کاربران در یک پایگاه داده که همان بلاک چین باشد به ثبت میرسد. این مسئله بهشدت ضروری است که هر عامل فعال در شبکه، یا به بیان دقیق نودها (Node)، نسخه صحیح و یکپارچه از آن بلاک چین را همیشه در اختیار داشته باشد؛ در غیر این صورت شبکه بهسرعت دچار تناقضهای اطلاعاتی و در نتیجه، زیر سوالرفتن هدف اصلی در استفاده از رمزارزها میشود.
- مطالعه بیشتر: رمز ارز چیست، چه انواع و کاربردهایی دارد؟
رمزنگاری (Cryptography) که در کلیدهای عمومی (Public Key) کیف پول کاربران وجود دارد، مانع از این شده که شخصی بتواند رمزارز کاربر دیگری را خرج کند؛ اما همچنان یک منبع برای استعلام حقیقت اطلاعات نیاز است تا فعالان شبکه بتوانند به آن اعتماد کنند و تشخیص دهند که سرمایه مربوطه، قبلاً خرج نشده است. ساتوشی ناکاموتو (Satoshi Nakamoto)، خالق بیت کوین، سیستم و الگوریتم اجماع اثبات کار (Proof of Work / PoW) را طراحی کرد که افراد بتوانند همکاری صحیحی با یکدیگر داشته باشند.
اکنون که کاربرد الگوریتم اجماع برایتان روشنتر شد، باید بدانید که وجود این مکانیزمهای گوناگون برای عملکرد سیستمهای توزیعشده به معنای واقعی کلمه، حیاتی است. بسیاری از فعالان صنعت رمزارزها معتقدند که بزرگترین نوآوری بیت کوین، بهکارگیری مکانیزم اثبات کار و قابلیت توافق کاربران بر سر مجموعهای از اطلاعات و حقایق به اشتراک گذاشتهشده است.
انواع الگوریتم اجماع
امروزه الگوریتم های اجماع نه تنها زیربنای سیستمهای پولی دیجیتال را تشکیل داده، بلکه در شبکههای بلاک چین نیز این قابلیت را برای توسعهدهندگان بهوجود آورده تا برنامهها و کدهای ویژه خود را تحت یک شبکه توزیع شده اجرا کنند. کاربرد الگوریتم اجماع در واقع عملکرد بهعنوان قلب یک شبکه بلاک چین بوده و در پایداری و اعتبار یک شبکه توزیع شده در درازمدت، مهمترین نقش را ایفا میکند.
بر اساس نحوه عملکرد، اهداف اصلی و شیوه مطلوب در تامین امنیت یک شبکه بلاک چین، الگوریتم های اجماع انواع و نسخههای گوناگونی را پیدا میکنند که در ادامه سعی کردیم مجموعهای کامل از انواع الگوریتم اجماع را برای شما ارائه کنیم:
- مطالعه بیشتر: فناوری دگ چیست و چگونه کار میکند؟
الگوریتم اجماع اثبات کار (Proof of Work / PoW)
الگوریتم اجماع اثبات کار شاید بهدلیل ظهور بیت کوین، شناختهشدهترین شیوه تایید تراکنشها باشد. فرآیند کلی در این الگوریتم به این صورت است که اعضای شبکه بلاکچین با تایید یک تراکنش و استفاده از الگوریتم، عملیات کامپیوتری پیچیدهای را انجام میدهند و نتیجه بهدست آمده را برای بررسی و تایید دیگر نودهای شبکه، در اختیار آنها قرار میدهند.
اثبات کار، فرآیند تولید یک هش (Hash) رمزنگاریشده است و مفهوم آن برای اولین بار در سال ۱۹۹۳، توسط سینتیا دورک و مونی نائور معرفی شد که چندین سال بعد، ساتوشی ناکاموتو آن را در وایتپیپر (Whitepaper) بیت کوین مجدداً ارائه کرد. تاریخچه بلاک چین اثبات کار به استفاده از آن در سیستم «هَشکَش» (Hashcash) بر میگردد که آدام بَک آن را بهعنوان یک سیستم برای مقابله با ایمیلهای اِسپم و حملات منع سرویس (Denial of Service) تعریف کرد.
در یک سیستم اثبات کار، اعتبارسنجهای بلاک چین باید داده را از هِدِر بلوک (Block Header) بهعنوان ورودی گرفته و بهطور مکرر آن را در یک تابع هش رمزنگاریشده اجرا کنند. اعتبارسنجها داده ورودی را با کمی تغییرات، هش کرده و هر مرتبه که داده ورودی در تابع هش رمزنگاریشده اجرا میشود، یک عدد مطلق بهنام تکبار (Nonce) نیز به آن اضافه میکنند.
- مطالعه بیشتر: تابع هش و هشینگ چیست؟
اثبات کار میزان زیادی برق و نیروی پردازش نیاز دارد تا بتواند تصمیم بگیرد که چه دادهای به بلوک بعدی در بلاک چین اضافه شود. برای محاسبه و حل معادلات ریاضی پیچیده در سیستمهای PoW، از کامپیوترها یا ماینرهایی ویژه تحت عنوان اسیک (ASIC) استفاده میشود.
در یک شبکه بلاک چین، اثبات کار بهعنوان یک الگوریتم اجماع جهت تایید تراکنشها و تولید بلوکهای جدید بهکار گرفته میشود. با استفاده از اثبات کار، نودهای مخصوص در شبکه بلاکچین بهنام ماینر (Miner)، با یکدیگر در حل معادلات پیچیده ریاضی رقابت میکنند و این کار را با اجرای پیدرپی الگوریتم تولید هش انجام داده تا به پاسخ موردنظر برسند.
سپس این پاسخ توسط دیگر نودهای شبکه بررسی شده تا اعتبار آن مورد تایید قرار گیرد. با تایید داده، ماینری که به این پاسخ رسیده میتواند بلوک بعدی را ایجاد کند که تمام تراکنشهای جدید در آن ذخیره میشود و بابت تکمیل این عملیات، پاداش دریافت میکند.
الگوریتم اجماع PoW برای توسعهدهندهای کاربرد دارد که هدف او، تولید اپلیکیشنهایی با محوریت امنیت و مدیریت هویت نودها است که طبق آن، کاربران پیش از دسترسی به خدمات و سیستم باید شناسایی، تایید و احراز هویت شوند. بیت کوین که یکی از بزرگترین شبکههای بلاک چین در دنیا است، از این پروتکل استفاده میکند.
یکی از مزایای اثبات کار مقیاسپذیری بالای آن است؛ یعنی کاربردهای زیادی همچون استخراج رمزارزها و توکنهای جدید و اعتبارسنجی تراکنشها دارد. یکی از معایب آن هم امکان ایجاد حملات ۵۱ درصدی است. در این نوع حمله، یک مهاجم میتواند با تامین بیش از نیمی از نیروی محاسباتی شبکه، کنترل امور را بهدست گیرد و فعالیت غیرمتمرکز شبکه را بهطور کل بی اثر کند.
الگوریتم اجماع اثبات سهام (Proof of Stake / PoS)
الگوریتم اجماع اثبات سهام بهعنوان یک جایگزین برای اثبات کار در سال ۲۰۱۱ معرفی شد. با وجود اهداف مشابه در این دو الگوریتم، ویژگیها و عملکرد متفاوتی خصوصاً در مورد نحوه تایید بلوکهای جدید در شبکه دارند.
تفاوت الگوریتم اجماع اثبات سهام با اثبات کار در مکانیزمی است که طبق آن، بلوکها بر اساس میزان سهام یا سپردهگذاری (اِستیکینگ / Staking) اعضای شبکه اعتبارسنجی میشوند. در اینجا بر خلاف اجرای توابع هَش، اعتبارسنجها سهام را در قالب پول یا توکنهای دیجیتال بهعنوان مرجع ذخیره میکنند. اعتبارسنجهای هر بلوک بهصورت تصادفی از بین سهامداران و بر اساس میزان نیروی محاسباتی اختصاص دادهشده آنها انتخاب میشوند.
سیستمهای PoS ممکن است این الگوریتم را بهشکلی متفاوت اجرا کنند اما بهطور کل، بلاک چین توسط فرآیندهای انتخابی شبهتصادفی و بر اساس میزان نیروی اختصاص داده شده یک نود ایمن شده که میزان تعهد یک عضو برای برقراری امنیت در شبکه را نشان میدهد.
بلاکچین اتریوم که بزرگترین شبکه بلاک چین از نظر سطح فعالیت توسعهدهنگان در آن است، برای اولین بار این تغییر را از اثبات کار به اثبات سهام انجام داد تا مقیاسپذیری شبکه را افزایش و مصرف برق را کاهش دهد. ارتقای مرج اتریوم (Ethereum Merge) مرحله اصلی در انتقال این شبکه از اثبات کار به اثبات سهام بود.
ایده اصلی در این سیستم به اینگونه است که برقرار بودن امنیت و اعتبار شبکه بلاک چین، به نفع هر عضوی است که در توکنهای شبکه سرمایهگذاری بزرگی انجام داده است.
اعتبارسنجها (سرمایهگذاران) در کوینهای سیستم سرمایهگذاری کرده و بخشی از آنها را بهعنوان سپرده (Stake) یا سهام بلوکه میکنند. سپس تمامی اعتبارسنجها شروع به تایید بلوکها میکنند. بر اساس تعداد بلوکهای موجود در بلاک چین، اعتبارسنجها طبق میزان سهامشان پاداش دریافت میکنند. در نهایت، یک اعتبارسنج برای تولید بلوک جدید بر اساس سهام مالی آن در شبکه انتخاب میشود.
بنابراین، PoS اعتبارسنجها را طبق یک مکانیزم انگیزشی و پاداشدهنده به توافق مشترک میرساند. از جایی که این الگوریتم از نیروی محاسباتی برای ماینینگ (استخراج ارز دیجیتال) استفاده نمیکند، از لحاظ مصرف برق با محیط زیست سازگارتر است. از اثبات سهام برای بهبود امنیت، اعتبارسنجی تراکنشها و افزایش سطح عملکرد شبکه استفاده میشود. برخی ارزهای دیجیتال مانند اتریوم (Ethereum)، تزوس (Tezos)، اِستیم (Steem) و گریدکوین (Gridcoin) از پروتکل اثبات سهام استفاده میکنند.
مهمترین ویژگی الگوریتم اجماع اثبات سهام، عدم نیاز آن به حل مسائل پیچیده یا رمزنگاریشده است. همچنین، مصرف انرژی یک سیستم اثبات سهام نسبت به اثبات کار بهینه تر است. از معایب آن میتوان گفت که یک مهاجم قادر است تراکنشهای قربانی خود را برگرداند و به اعتبارسنجها برای تایید آن پاداش (رشوه) دهد.
علاوهبر این، الگوریتم اجماع PoS برای افراد ثروتمند مناسب است؛ قدرت ماینینگ در اثبات سهام از طریق تعداد کوینهای سپردهگذاری شده هر اعتبارسنج مشخص میشود. اعضایی که کوینهای بیشتری را سپرده گذاشتهاند شانس بیشتری برای انتخاب شدن و اضافه کردن بلوکهای جدید دارند. برای مثال، جهت تبدیل شدن به یک اعتبارسنج در شبکه اتریوم، استیک اتریوم به میزان حداقل ۳۲ واحد لازم است.
الگوریتم اجماع ترکیبی اثبات کار و سهام (Hybrid PoW/PoS)
هدف اصلی و ویژگی الگوریتم اجماع ترکیب شده اثبات کار و سهام، برخورداری از مزایای هر دو مکانیزمها و استفاده از آنها بهمنظور پوشش و برقراری تعادل میان نقاط ضعف آنها است. دیکرید (Decred / DCR) یکی از شناختهشدن ترین پروژههایی است که از این مکانیزم استفاده میکند و با ادغام اثبات کار و سهام با یکدیگر، امنیت شبکه خود را حفظ و اطلاعات موجود را اعتبارسنجی میکند.
رمزارزهایی که در بلاک چین خود مستر نود (Masternode) دارند نیز، بهنوعی از این الگوریتم اجماع استفاده میکنند؛ به این شکل که این نودها از سختافزارهایی شبیه به سیستمهای اثبات کار تشکیل شده و عملکردی مانند ماینرها در بلاک چین بیت کوین دارند و همچنین، نقش یک نود ویژه را در بلاک چین مربوطه ایفا میکنند. عموماً جهت فعالیت بهعنوان یک مستر نود، لازم تا مقدار مشخصی از رمزارز بومی شبکه را بهعنوان وثیقه (Collateral) نگهداری کرد تا سندی مبنی بر اعتماد و اعتبار نود و فعالیت آن در جهت منافع شبکه باشد.
این رویه تا حد زیادی به اصول بنیادی در شبکههای مبتنی بر اثبات سهام نزدیک است. پروژه دش (Dash / DASH) معرف مستر نودها محسوب میشود و نام مدل اجرایی خود را اثبات خدمات (Proof of Service) گذاشته است.
از دیگر ویژگی الگوریتم اجماع ترکیبی اثبات کار و اثبات سهام، میتوان به بالارفتن قابل توجه هزینه حمله به چنین شبکهای اشاره کرد؛ دلیل هم اینجا است که مهاجم باید دو سیستم مجزا را دور بزند. سیستم اثبات سهام بهگونهای طراحی شده که بلیتهای (Ticket) لازم برای فعالیت در شبکه، به مرور زمان و به آرامی دریافت میشوند و طی تشکیل هر بلوک جدید یا هر دوره زمانی (Interval)، تعداد محدودی از بلیتها قابل خریداری هستند.
در صورت خرید تمام بلیتهای موجود، قیمت آنها بهشدت افزایش پیدا خواهد کرد. بهعلاوه زمانی که بلیتها خریداری شوند، سرمایه پرداختشده در خرید آنها برای مدتی قفل خواهد شد و مهاجم در صورت اجرای حمله، شاهد کاهش ارزش سرمایه خود خواهد بود.
در سیستم اثبات کار نیز اتفاقی مشابه خواهد افتاد. مهاجم در صورت اجرای موفقیتآمیز حمله ۵۱ درصدی، میتواند کنترل شبکه و رمزارزهای موجود را بهدست بگیرد؛ اما بهطور همزمان با خروج سایر نودها و همچنین سرمایهگذاران از شبکه مواجه میشود که یعنی ارزش رمزارزهایی که در اختیار گرفته با ریزش مواجه میشود.
الگوریتم اجماع اثبات سهام نمایندگیشده (Delegated Proof of Stake / DPoS)
اثبات سهام نمایندگیشده یکی از گونههای اثبات سهام است که در آن، بلوکها توسط یک سری نماینده منتخب امضا میشوند. مالکان سنگینترین حسابها، نمایندگان خود را انتخاب کرده و هرکدام حق امضای بلوکهای شبکه بلاکچین را دریافت میکنند.
هر نمایندهای که یک درصد یا بیشتر از آن حق رأی دارد، وارد یک انجمن یا شورا میشود و هر نمایندهای که بلوک بعدی را امضا میکند از آن انجمن انتخاب میشود.
در صورتی که یک نماینده به هر دلیلی نوبت امضای بلوک خود را از دست دهد، از سِمت رأیدهی محروم شده و از انجمن خارج میشود؛ سپس یک کاندید بهتر بهجای آن انتخاب میشود. صاحب حساب در صورت از دست دادن حق رأی، کنترل حساب خود را از دست نداده و میتواند هر زمان که میخواهد آن را از نماینده خود بگیرد.
بسیاری از متخصصان این شیوه را یک نسخه دموکراسی از سیستم اجماع اثبات سهام میدانند، زیرا بهجای استفاده از نودهای مستقل در شبکه، طبق یک فرآیند رأیدهی شبیه به یک دائو (DAO) و انتخاب نماینده عمل میکند. طبقه عقیده آنها، الگوریتم DPoS ظرفیت تراکنشهای بیشتر و زمان تایید کمتری را نسبت به مکانیزمهای اجماع PoW و PoS دارد، چرا که جهت تایید دادههای یک بلوک جدید در بلاک چین از نودهای شبکه یا شاهدان کمتری استفاده میکند.
سیستم رأیدهی در الگوریتم اثبات سهام نمایندگیشده دارای شفافیت کامل است. اگر کاربران متوجه فعالیتی مخرب شوند، میتوانند برای حذف نماینده مربوطه سریعاً رأیگیری کنند. میتوان گفت الگوریتم DPoS تا حدی متمرکز است و افرادی که کوینهای بیشتری سپردهگذاری کرده، قدرت بیشتری در شبکه دارند. همچنین، در برابر حملات آسیبپذیر بوده چون افراد کمتری مسئول برقراری عملکرد صحیح در شبکه هستند.
الگوریتم اجماع اثبات سهام استیجاری (Lease Proof of Stake / LPoS)
یکی دیگر از نمونههای برگرفته شده از نسخه اصلی مکانیزم اثبات سهام، الگوریتم اجماع اثبات سهام اجاره ای یا استیجاری (Lease Proof of Stake / LPoS) است. این نوع مکانیزم در بلاک چین برای نخستین بار توسط پروژه وِیوز (Waves / WAVES) معرفی شد. ویوز با ارائه چنین الگوریتمی، قصد محدود کردن بیشتر مصرف انرژی شبکههای بلاک چین را دارد.
نسخه اصلی و کلاسیک اثبات سهام در رابطه با فعالیتهای سپردهگذاری (استیکینگ / Staking) با چالشها و محدودیتهایی مواجه بود. افرادی که موجودی رمزارز آنها کم باشد، هیچگاه فرصت فعالیت در شبکه و استیک ارز دیجیتال را پیدا نخواهند کرد. در یک شبکه اثبات سهام، در واقع یک جامعه متمرکز تحت یک پلتفرم غیرمتمرکز ایجاد میشود که مشخصاً این شرایط برای یک شبکه بلاک چین ایدهآل و مطلوب نیست.
طبق الگوریتم اجماع اثبات سهام استیجاری، هولدرهایی که موجودی کمی هم دارند، میتوانند به استیک سرمایه خود بپردازند. آنها میتوانند رمزارزهای خود را به شبکه مربوطه اجاره دهند و از این طریق کسب سود کنند. با معرفی الگوریتم اجماع LPoS، شرایط برای فعالیتهای سپردهگذاری دچار تحول شد و محدودیتهای سیستمهای سابق، بدون هیچ دردسری برطرف شد. در اینجا هدف اصلی پلتفرم ویوز، کمک به سرمایهگذاران خرد بود و در عین حال، شفافیت عملکرد که یک ویژگی الگوریتم اجماع بهشمار میآید نیز، بیش از پیش برجسته شد.
سیستم تحمل خطای بیزانس (Byzantine Fault Tolerant / BFT)
تحمل خطای بیزانس (BFT) تعریفی برای یک سیستم توزیعشده است که حتی در صورت خروج برخی اعضای شبکه یا ارسال سیگنالهای متناقض در شبکه، میتواند به عملکرد خود ادامه دهد.
با این که BFT اساساً مخصوص اجماع تا اجرای الگوریتم در یک سیستم است، تا کنون استفاده از آن بهعنوان یک مکانیزم اجماع در شبکههای بلاک چین موفقیتآمیز بوده است. نام این پروتکل از یک تئوری بهنام مسئله فرماندهان بیزانسی (Byzantine Generals’ Problem) میآید.
در این مسئله، هر فرمانده یا ژنرال (General) در منطقهای لشکر خود را دارد و باید برای حمله یا عقبنشینی یک تصمیم بهصورت گروهی بگیرند. چنانچه تمام آنها تصمیمی مشابه بگیرند، موفق میشوند و در صورت برقراری ارتباطی اشتباه یا خیانت کردن، برخی از فرماندهان حمله و بقیه عقبنشینی میکنند و نبرد با شکست مواجه میشود. به اینگونه موارد خطاهای بیزانسی میگویند.
نودها در سیستمهای کامپیوتری حکم همان ژنرالها را دارند. بهدلیل ماهیت غیرمتمرکز ارزهای دیجیتال، هرکدام از آنها با یک نسخه عظیمتر از مسئله فرماندهان بیزانسی مواجه است. بلاکچین باید در صورت اشتباه برخی نودها، بتواند عملکرد خود را حفظ کند. در اینجا شرحی ساده از عملکرد این پروتکل را آوردهایم:
- کاربر درخواست خود را به اولین نود ارسال میکند.
- نود اول آن درخواست را به نودهای بعدی میفرستد.
- نودها درخواست را پردازش کرده و خدمات لازمه را ارائه میدهند و پاسخ را برای کاربر ارسال میکنند.
- کاربر منتظر میماند تا تعداد m+1 نود همان پاسخ را برایش بفرستند، که در اینجا m حداکثر تعداد نودهای خطاکار در سیستم است.
در یک سیستم تحمل خطای بیزانسی حداکثر تعداد نودهای خطاکار نباید برابر یا بیشتر از یک سوم مجموع نودهای سیستم باشد.
در سادهترین حالت، BFT به رأی موافق اکثریت وابسته است. چنانچه بیش از دو سوم نودهای شبکه بر سر یک وضعیت به توافق برسند، آن وضعیت بهعنوان حقیقت و یک وضعیت معتبر در شبکه اعمال میشود. طبق گزارشات، پروتکل BFT بهدلیل ارتباط زیاد نودهای فعال، در رابطه با مقیاسپذیری مشکلاتی دارد.
البته برخی نسخههای مختلف از این مکانیزم طراحی شده که بهنظر این شرایط را در BFT بهبود بخشیدهاند که از بین آنها، میتوان تحمل خطای بیزانس متحد (Federated BFT) و تحمل خطای بیزانس نمایندگیشده (Delegated BFT) در شبکه NEO را نام برد.
یکی از مزایای BFT نمایندگیشده عملکرد پرسرعت آن است و تولید بلوک در چنین بلاک چینی، بین ۱۵ تا ۲۰ ثانیه زمان میبرد. این پروتکل دارای هارد فورک (Fork) نیست و اجازه اعمال تغییرات بزرگ در پروتکل شبکه را نمیدهد تا بتوان بلوکها و تراکنشهای غیرمعتبر را به معتبر تبدیل کرد.
یکی دیگر از مزایای آن تکمیل قطعی تراکنشها پس از تایید است، یعنی این که یک بلوک را نمیتوان تفکیک کرد و تراکنشهای آن را باطل کرد و یا برگشت داد. از معایب این پروتکل عدم ناشناس بودن است، زیرا نمایندگان باید برای انتخاب شدن تحت هویت واقعی خود فعالیت کنند. همچنین، این مکانیزم کاملاً غیرمتمرکز نیست و وجود یک بلاک چین قانونگذاریشده در بستر این پروتکل ضروری است.
تحمل خطای بیزانس عملی (Practical Byzantine Fault Tolerance / PBFT)
پلتفرم هایپرلجر (Hyperledger) از دو الگوریتم اجماع تحمل خطای بیزانس عملی (PBFT) و سیو (SEIVE) پشتیبانی میکند که در اینجا سیو، مسئولیت اجرای کدهای غیر قطعی (non-deterministic) شبکه را بر عهده دارد. الگوریتم اجماع PBFT بهعنوان اولین راهکار جهت رسیدن به توافق، در صورت از کار افتادن مکانیزم بیزانس استفاده میشود. از بین برترین پروژههای برتر بازار که از الگوریتم اجماع تحمل خطای بیزانس عملی استفاده میکنند، میتوان ریپل (Ripple / XRP) و استلار (Stellar / XLM) را نام برد.
در این مکانیزم هر فرمانده یا ژنرال، مدیریت یک وضعیت داخلی در شبکه را بر عهده دارد که در واقع یک وضعیت از دادههای دائماً در حال تغییر و پیشرفت است. پس از اینکه ژنرال پیامی را دریافت کرد، از آن پیام برای ارتباط با وضعیت داخلی شبکه که در اختیار دارد استفاده کرده تا فرآیند محسابات مربوطه را آغاز کند.
طی این فرآیند، از ژنرال در مورد آن پیام نظرخواهی میشود و پس از رسیدن به یک نتیجه، ژنرال آن را با سایر همتاهای خود در شبکه به اشتراک میگذارد. در اینجا تمام تصمیمات و نظرات ثبتشده توسط ژنرالها جمعآوری شده و توافق نهایی بهدست میآید. چنین رویکردی باعث میشود که بار عملیاتی شبکه و فرآیندهای تکراری در آن کاهش پیدا کنند.
تحمل خطای بیزانس ساده شده (Simplified Byzantine Fault Tolerance / SBFT)
در یک سیستم تحمل خطای بیزانس ساده شده یا SBFT، یک تولیدکننده بلوک (Block Generator) در زمانهای مختلف تمام تراکنشهای موجود را جمعآوری و پس از دستهبندی آنها در یک بلوک جدید، تراکنشها را تایید میکند. مکانیزم SBFT نوعی جدید از الگوریتم تحمل خطای بیزانس را پیادهسازی کرده که به چالشهای مقیاسپذیری و تمرکززدایی (Decentralization) این مکانیزم رسیدگی میکند.
برخلاف سیستمهای سنتی بیزانسی که تنها در محیطی متمرکز و با حداکثر ۲۰ نسخه عملکرد خوبی دارند، یک سیستم با مکانیزم تحمل خطای بیزانس ساده شده برای محیطی غیرمتمرکز بهینهسازی شده و بهراحتی قابلیت اجرای ۱۰۰ نسخه فعال را دارد. مکانیزم SBFT یک بستر ویژه برای اجرای قرارداد هوشمند (Smart Contract) نیز دارد که مبتنی بر فناوری ماشین مجازی اتریوم (EVM) است.
یک ویژگی الگوریتم اجماع SBFT این است که در چنین سیستمی، یک بخش مدیریت حساب (Account Manager) وجود دارد که مراحل مختلف در فرآیندهای شبکه را تسهیل میکند. هدف اصلی این ویژگی، ذخیره امن اطلاعات و داراییها است. همچنین، در بخش مدیریت حساب اطلاعات تمام تراکنشها مانند ادرس کانترکت ارزها (Contract Address) ذخیره میشود و قابلیت استفاده از داراییهای مختلف نیز برای کاربران در این قسمت وجود دارد.
تحمل خطای بیزانس نمایندگی شده (Delegated Byzantine Fault Tolerance / DBFT)
تحمل خطای بیزانس نمایندگی شده یا DBFT، یک الگوریتم اجماع طراحی شده توسط شبکه و رمزارز NEO است. در واقع، تحمل خطای بیزانس نمایندگی شده عملکردی شبیه به نظام مدیریتی یک کشور دارد و متشکل از عواملی تحت عنوان شهروند (Citizen)، نماینده (Delegate) و سخنگو (Speaker) است که با همکاری یکدیگر عملکرد صحیح شبکه را حفظ میکنند.
این سیستم بیشتر شبیه به اثبات سهام تا اثبات کار است و یک سیستم رأیگیری جهت انتخاب نمایندگان و سخنگویان دارد.
الگوریتم اجماع اثبات سوزاندن (Proof of Burn / PoB)
با استفاده از الگوریتم اجماع اثبات سوزاندن، اعتبارسنجها بهجای سرمایهگذاری در تجهیزات سختافزاری گرانقیمت، با ارسال کوینها به یک آدرس غیرقابل بازیابی، آنها را در اصطلاح میسوزانند. اعتبارسنجها با ارسال کوینها به یک آدرس غیرقابل دسترس، طبق یک فرآیند انتخاب تصادفی واجد شرایط ماینینگ در سیستم میشوند. اصطلاح فنی این فرآیند توکن سوزی یا Burn نام دارد.
بنابراین، سوزاندن کوینها در اینجا به معنی یک ضرر کوتاهمدت در قبال یک تعهد بلندمدت برای اعتبارسنجها است. با توجه به نحوه پیادهسازی الگوریتم اثبات سوزاندن، ماینرها ممکن است ارز بومی یک بلاک چین یا ارزی جایگزین آن، مثلاً بیت کوین، را بسوزانند. هر چه کوین یا توکن بیشتری سوزانده شود، اعتبارسنجها شانس بیشتری در انتخابشدن برای استخراج بلوک بعدی پیدا میکنند.
- مطالعه بیشتر: تفاوت کوین و توکن ارز دیجیتال در چیست؟
نکته جالب اینجا است که این روش برای انتقال از یک رمزارز قدیمی به نسخه جدید بسیار کارآمد است. مثلاً وقتی یک ارز قدیمی در مراحل پایانی استخراج خود قرار دارد، میتوان از سیستم PoB برای سوزاندن ارز قدیمی و انتقال به ارز جدید استفاده کرد. این الگوریتم در پلتفرم اِسلیم کوین (Silmcoin) مورد استفاده قرار گرفت.
اثبات سوزاندن در مقایسه با اثبات کار، از لحاظ توزیع عادلانه کوینها موثرتر است و مانند ماینینگ بیت کوین در اثبات کار نیست که نیازمند سختافزارهای مخصوص باشد که ممکن است منجر به متمرکزشدن در زمینه استخراج شود. بهعلاوه، ماینرها به سرمایهگذاری بلندمدت در پروژهها تشویق میشوند. احتمال فروش یا خرج کوینها از سوی سرمایهگذاران بلندمدت پایین است و این موجب شده، قیمت آن کوین ثبات بیشتری پیدا کند.
الگوریتم اجماع اثبات سوزاندن برای تراکنشهایی که هشِ سوزاندن تولید میکنند بسیار مناسب است که شبیه به مقادیر هشی است که برای تعیین رهبرهای بلوک در اثبات کار استفاده میشود. همچنین برای کاهش کوینهای در گردش نیز مکانیزم مناسبی است.
یکی از معایب این پروتکل این است که عملیات سوزاندن همیشه بهصورت شفاف انجام نمیشود و کاربران عادی نیز میتوانند آنها را تایید کنند که یعنی در تایید عملکرد ماینرها تاخیر ایجاد میشود. با اینکه PoB انتخاب جذابتری نسبت به اثبات کار است، این پروتکل بیجهت منابع را هدر میدهد و همیشه این مسئله وجود دارد که قدرت ماینینگ به افرادی تعلق میگیرد که میخواهند پول بیشتری بسوزانند.
الگوریتم اجماع اثبات زمان سپریشده (Proof of Elapsed Time / PoET)
سیستم اجماع اثبات زمان سپریشده توسط شرکت Intel جهت مقابله با چالشهای انتخاب تصادفی یک رهبر طراحی شده است. این پروتکل در بخشی از کتاب راهنمای نرمافزاری “Software Guard Extensions (SGX)” منتشر شده است.
الگوریتم اجماع اثبات زمان سپریشده در بسیاری از بلاکچین های خصوصی (Private Blockchain) مانند هایپرلجر ساتوث (Hyperledger Sawtooth) بهکار گرفته شده است، زیرا بهجای استفاده از سختافزارهای ماینینگ، از یک سیستم زمانبندی تصادفی برای اعضای شبکه استفاده میکند.
شبکههای بلاک چین نیازمند مجوز (Permissioned) برای هر شرکتکنندهای که قصد عضویت دارد، احراز هویت انجام میدهند. PoET برای تعداد زیادی از اعضا به یک میزان شانس برندهشدن میدهد و از یک شیوه انتخاب تصادفی شبیه به قرعهکشی استفاده کرده تا از بین نودها، برنده بلوک جدید را مشخص کند.
الگوریتم PoET یک زمان انتظار تصادفی برای هر نود در شبکه تعیین میکند و طی این زمان، نودها فعالیتی انجام نمیدهند. نودی که کمترین زمان به آن اختصاص داده شده از بقیه نودها به اصطلاح سریعتر بیدار شده و بهعنوان نود برنده، به تولید بلوک جدید در شبکه میپردازد.
یکی از مزایای PoET قابلیت مشاهده و تایید نتایج توسط اعضا و نهادهای خارجی است که موجب شده فرآیند اجماع در شبکه از شفافیت بیشتری برخوردار باشد. همچنین اثبات زمان سپری شده این اطمینان را داده که به دو دلیل، همه اعضا به یک اندازه شانس برندهشدن دارند.
اول اینکه زمان برای هر نود کاملاً تصادفی اختصاص داده میشود و زمان کوتاهتر یک نود نسبت به دیگر شرکتکنندگان از قبل انتخابشده نیست. ثانیاً، نود برنده حتماً باید زمان انتظار را به پایان رسانده باشد و اثبات زمان سپری شده، نیازمند سختافزاری است که توسط کمپانی Intel تولید شده است.
پروتکل اثبات زمان سپری شده بهدلیل ضرورت استفاده از سختافزارهای مخصوص، بهترین عملکرد را در بلاک چینهای عمومی بدون نیاز به مجوز (Permissionless) دارند و نمیتوان تعداد زیادی از آنها در یک محل متمرکز کرد. از معایب آن میتوان گفت که نیازمند اعتماد به سختافزار شخص ثالث بوده که در تضاد با مفاهیم اصلی بلاک چین یعنی عدم وجود عامل اعتماد و نهاد مرکزی است.
الگوریتم اجماع اثبات ظرفیت (Proof of Capacity / PoC)
یکی دیگر از انواع الگوریتم اجماع، اثبات ظرفیت یا اثبات فضای ذخیره (Proof of Space / PoSpace) است. در اثبات ظرفیت، اعتبارسنجها بهجای سرمایهگذاری در سختافزارهای گرانقیمت یا توکنسوزی، فضای ذخیره هارد دیسک خود را تحت اختیار شبکه قرار میدهند.
هر چه میزان فضای ذخیره هارد دیسک اعتبارسنجها بیشتر باشد، شانس آنها برای انتخابشدن جهت استخراج بلوک بعدی و دریافت پاداش آن بیشتر است. در حال حاضر بلاک چین بِرست کوین (Burstcoin) از این الگوریتم استفاده میکند.
نحوه عملکرد الگوریتم اجماع اثبات ظرفیت بهشرح زیر است:
- هر ماینر حجم بزرگی از دادهها را محاسبه میکند که در دیسک ذخیره زیرمجموعه یک نود یعنی هارد درایو، فضای ذخیره ابری یا . . . ذخیره میشود. این مجموعه داده اولیه را در الگوریتم اجماع اثبات ظرفیت، فضای ذخیره (Space) میگویند.
- به ازای هر بلوک جدید در بلاک چین، ماینر بخش کوچکی از مجموعه داده را میخواند که برابر با ۱/۴۰۹۶، تقریبا ۰.۰۲۴٪ تمام دادههای ذخیرهشده است. سپس نتیجه (موعد تحویل) را بهعنوان زمان سپریشده از آخرین بلوک ساختهشده در شبکه، برگشت میدهد و پس از آن، ماینر میتواند بلوک جدید را تولید کند.
- ماینری که کمترین زمان تحویل را در اختیار دارد، بلوک را امضا کرده و برای تراکنشها پاداش دریافت میکند.
بنابراین، منابع محاسباتی مورد نیاز این عملیات، زمان لازم برای خواندن فایلها از یک دیسک ذخیره زیرمجموعه است. این اصلیترین شیوهای است که اجرای ماینینگ را در بهینهترین حالت مصرف انرژی انجام میدهد و ماینرها برخلاف سرعت عملکرد تجهیزات، در میزان ذخیرهسازی اطلاعات رقابت دارند.
الگوریتم اجماع اثبات اعتبار (Proof of Authority / PoA)
اثبات اعتبار، یک الگوریتم اجماع بر اساس سابقه هر عضو مورد اعتماد در بلاک چین است. این مکانیزم برای بلاکچینهای خصوصی بسیار کارآمد و بهینه است که در سال ۲۰۱۷، مفهوم آن توسط کمک بنیانگذار و مدیر ارشد فنی سابق اتریوم، گَوین وود، معرفی شد.
الگوریتم اجماع اثبات اعتبار بر اساس ارزش هویتهای داخل یک شبکه عمل میکند و اعتبارسنجها بهجای سپردهگذاری، از هویت، اعتبار و سابقه خود استفاده میکنند. از این رو، امنیت شبکههای بلاک چین اثبات اعتبار از طریق نودهای اعتبارسنجی تامین شده که بهصورت دلخواه از بین اعضای مورد اعتماد انتخاب میشوند.
تعداد اعتبارسنجها در مدل اثبات اعتبار ثابت است و بهراحتی یک سیستم بلاک چین مقیاسپذیر را تشکیل میدهد، چرا که تراکنشها توسط اعضای از پیش تاییدشده در شبکه تایید میشوند.
از مکانیزم اجماع PoA میتوان در زنجیرههای تامین و شبکههای معاملاتی استفاده کرد، زیرا هویت واقعی نودها شناختهشده و مطمئن هستند.
PoA از عملکرد و تحمل خطای بالایی برخوردار است و اجازه تولید بلوکهای جدید در آن به نودهایی داده میشود که توانایی و اعتبار خود را برای انجام این کار ثابت کردهاند. برای بهدست آوردن این توانایی و حق تولید بلوک، در ابتدا نودها باید احراز هویت شوند. در PoA شرایط زیر باید برقرار باشند:
- شناسایی و احراز رسمی درون شبکهای (On-Chain) اعتبارسنجها
- وجود صلاحیت بر اساس معیارهایی مشخص مانند ارتباط با سازمان یا سابقه فعالیت درخشان
- پیروی از فرآیندهای لازم برای تشکیل بلوکها و اعتبارسنجی شبکه
این مکانیزم اجماع به منابع زیادی احتیاج ندارد، اما اعتبارسنجها باید یکپارچگی نودهایشان را حفظ کنند. در تعریف نحوه عملکرد این مکانیزم میتوان گفت که هویت و اعتبار یک کاربر، انگیزه و محرکی برای عملکرد صادقانه، مطابق با اصول شبکه است.
یکی از مزایای این الگوریتم عدم نیاز به ماینینگ بوده که باعث میشود هزینههای تعمیر و نگهداری بهطرز قابل توجهی کاهش پیدا کنند. از معایب آن نیز میتوان گفت اعضای کلیدی و مهم این الگوریتم، اعتبارسنجها هستند که ممکن است در نهایت، منجر به متمرکزشدن سیستم شود. استفاده از این سیستم در صورتی معقول است که هنگام اجرای شبکه، تمام حسابهای آن تا حد امکان مورد اعتماد باشند.
الگوریتم اجماع اثبات اهمیت (Proof of Importance / PoI)
اثبات اهمیت برای نشان دادن سودمندی و کارایی نودها در سیستم رمزارزها است و به آنها اجازه تشکیل بلوکها را میدهد.
الگوریتم اجماع اثبات اهمیت از چندین معیار برای ارزیابی نودها استفاده میکند: خالص انتقالها، میزان ارزهای واگذاریشده و مجموع فعالیتها برخی از این موارد هستند. بلاک چین NEM از این مکانیزم اجماع استفاده میکند؛ وجه تمایز هر کاربر در شبکه NEM، بر اساس موجودی حساب آنها و تعداد تراکنشهای موجود در کیف پولشان مشخص میشود.
برخلاف یک الگوریتم اثبات سهام عادی که فقط موجودی حساب کاربر را ملاک قرار میدهد، اثبات اهمیت موجودی حساب و میزان فعالیت کاربر در شبکه را نیز در نظر میگیرد. این رویکرد کاربران را تشویق میکند که علاوهبر نگهداری سرمایه در حسابشان، بهطور مکرر نیز از آنها استفاده کنند.
مکانیزم اجماع PoI تنها تعداد کوینهای نگهداریشده در کیف پول را در نظر نمیگیرد، بلکه مدت زمان نگهداری آنها نیز حائز اهمیت است. سیستم افراد را به نگهداری کوینها تشویق میکند و پس از گذشت مدت زمانی مشخص، کوینها عنوان واگذاریشده (Vested) را به خود میگیرند و فقط کوینهای واگذاریشده از مزایای اثبات اهمیت برخوردار میشوند.
بهنظر مهمترین عامل در امتیازدهی اثبات اهمیت، تعداد کوینهای واگذاریشده باشد و برای برداشت این کوینها، یک حداقل برای میزان آن تعیین شده است. برخلاف ماینینگ یا استخراج در اثبات کار و عملیات ساخت (Forging) در اثبات سهام، عبارت مورد استفاده در اینجا برداشت (Harvesting) است.
همچنین، الگوریتم اجماع PoI برای سرمایهگذارانی که بهطور منظم با دیگران در شبکه تراکنش انجام میدهند، امتیاز بالاتری در نظر میگیرد. این باعث شده که شبکه اثبات اهمیت، عملکرد پایدار و مطمئنتری داشته باشد؛ زیرا در عوض نگهداری کوینها، بهگردش درآوردن آنها را تشویق میکند.
تراکنشهای ساختگی که فقط برای بالا بردن امتیاز PoI انجام میشوند، توسط سیستم شناسایی و طبق مکانیزم اثبات اهمیت حذف میشوند. بهترین استفاده از PoI در اپلیکیشنهایی است که مدلسازی داده را تشویق کرده و از نگهداری کوینها و دوبار خرجکردن (Double-Spending) جلوگیری میکنند.
اثبات اهمیت به نوع تراکنشها نیز پاداش میدهد. مثلاً، تراکنشهایی با حجم بالا نسبت به تراکنشهای کوچکتر اهمیت بیشتری دارند و به تراکنشهای رایج نسبت به تراکنشهای نامتداول پاداش بیشتری تعلق میگیرد. این قوانین برای اطمینان از افزایش استفاده از رمزارز در گذر زمان ایجاد شده است و این که بتواند به جایگزینی مناسب برای ارزهای فیات تبدیل شود.
یک ویژگی الگوریتم اجماع اثبات اهمیت، کاهش انباشت کوینها است و همچنین، این پروتکل به سختافزاری خاص یا مصرف انرژی و توان محاسباتی بالا احتیاجی ندارد. از معایب آن میتوان گفت که در این پروتکل، میزان درصد ماینینگ محدود شده است؛ یعنی ماینرها بهنسبت دارایی ارز دیجیتال خود میتوانند استخراج کنند و در نتیجه افراد ثروتمند، ثروتمندتر میشوند.
الگوریتم اجماع اثبات فعالیت (Proof of Activity / PoA)
در سال ۲۰۱۴ یک تعریف از این الگوریتم اجماع بهعنوان جایگزینی جدید و مطمئن برای بیت کوین منتشر شد. خالقان الگوریتم اثبات فعالیت دو گونه از معروفترین الگوریتمها یعنی اثبات کار و اثبات سهام را تلفیق کردند تا بتوانند سطح محافظت در برابر حملاتی همچون حمله ۵۱ درصدی و منع سرویس را افزایش دهند.
نحوه عملکرد الگوریتم اجماع اثبات فعالیت به شرح زیر است:
- هر ماینر در شبکه بلاک چین تلاش میکند تا برای یک بلوک خالی هِدِری تشکیل دهد که حاوی هش بلوک قبلی، آدرس عمومی ماینر، فهرست بلوک فعلی در بلاک چین و یک تکبار است.
- پس از تشکیل هدر بلوک خالی، نود این هدر را به شبکه بلاک چین ارسال میکند.
- تمام نودها این هدر بلوک را بهعنوان داده دریافتشده از مالکان شبهتصادفی در نظر میگیرند. با استفاده از هدر بلوک فرستاده شده و هش بلوک قبلی بهعلاوه n پیشفرض و با کمک الگوریتم پیروی از ساتوشی (Follow-the-Satoshi)، سهامداران (افرادی که استیک انجام دادهاند) انتخاب میشوند.
- هر سهامدار که در همان لحظه آنلاین است، اعتبار هدر بلوک خالی را بررسی میکند. طی اعتبارسنجی، دریافتکنندگان هدر بررسی میکنند که آیا جزء اولین n-1 سهامداران خوششانس این بلوک هستند یا خیر؛ و اگر اینطور باشد، هدر بلوک خالی را با یک کلید مخفی امضا میکنند و آن را به شبکه بلاکچین میفرستند.
- زمانی که nامین سهامدار متوجه شد که او باید بلوک و هدر بلوک خالی را امضا کند، یک بلوک با تراکنشهایی که تعدادشان را خودش مشخص کرده همراه با n-1 امضا از دیگر سهامداران اضافه کرده و سپس بلوک را امضا میکند.
- nامین سهامدار یک بلوک جدید را فرستاده و نودها آن را دریافت میکنند و در صورت اطمینان از صحت آن، بلوک را در بلاک چین به ثبت میرسانند.
- پاداش تراکنشی که توسط nامین سهامدار دریافت شده بین ماینر و دیگر سهامداران پخش میشود.
ارز دیجیتال Decred) DCR) شناختهشدهترین رمزارزی است که از الگوریتم اجماع اثبات فعالیت استفاده میکند. در این شبکه بلوکها تقریبا هر پنج دقیقه تشکیل میشوند. فرآیند ماینینگ در آن توسط نودها آغاز میشود که طبق آن، نودها جهت تشکیل یک بلوک جدید بهدنبال راهحلی برای معمایی رمزنگاریشده با یک درجه سختی مشخص میگردند. تا به اینجای کار، عملکرد سیستم شبیه به اثبات کار (PoW) است.
زمانی که راهحل پیدا شد، در شبکه پخش میشود و سپس شبکه آن را تایید میکند. در این مرحله، سیستم تبدیل به اثبات سهام (PoS) میشود. هر اندازه که یک نود، DCR بیشتری استخراج کرده باشد، احتمال انتخاب آن برای رأیدهی جهت تولید بلوک بیشتر میشود.
در بلاکچین DCR سهامداران بلیتهایی بهدست میآورند که به آنها در ازای استخراج DCR قدرت رأی میدهد. از استخر بلیتها، پنج بلیت بهصورت شبه تصادفی انتخاب میشود و اگر حداقل سه بلیت برای اعتبار بلوک رأی مثبت دهند، بهصورت دائمی در بلاک چین ثبت میشود. ماینرها و رأیدهندگان از طریق رمزارز DCR پاداش دریافت میکنند.
مکانیزم اجماع PoA از این جهت امن است که فقط در صورتی یک بلوک بهطور دائمی در بلاک چین ثبت میشود که تعداد مشخصی از اعتبارسنجها، آن را بهعنوان یک بلوک معتبر بشناسند. به عبارت دیگر، نمیتوان یک بلوک مخرب را وارد سیستم کرد.
از معایب آن میتوان به این نکته اشاره کرد که الگوریتم اجماع PoA در بخش اول کار خود، دقیقاً همان فرآیند اثبات کار را انجام میدهد که به نیروی کامپیوتری بسیار زیادی احتیاج دارد و یعنی استفاده از این مکانیزم مصرف بالای برق و هزینههای سختافزاری را در پیش دارد.
الگوریتم اجماع اثبات تاریخچه (Proof of History / PoH)
تحت الگوریتم اجماع اثبات تاریخچه، بهجای اعتماد به برچسب زمانی (Timestamp) یک تراکنش، میتوان ثابت کرد که تراکنش در زمانی قبل و بعد از یک رویداد صورت گرفته است. اثبات تاریخچه یک تابع تاخیر قابل تایید با گنجایش بالا است. این تابع تاخیر قابل تایید، نیازمند مراحلی مشخص برای ارزیابی است که میتواند خروجی منحصربهفردی تولید کند که بهطور موثر و توسط عموم قابل تایید باشد.
اثبات تاریخچه سلسله محاسباتی بوده که میتواند گذر زمان بین دو رویداد را از طریق رمزنگاری تایید کند. این الگوریتم اجماع یک تابع امن رمزنگاریشده مینویسد که طی آن، خروجی از طریق ورودی مربوطه، قابل پیشبینی نیست و فرآیند باید برای شناسایی و تولید خروجی بهطور کامل انجام شود.
سولانا (Solana / SOL) اثبات سهام و اثبات تاریخچه را باهم ترکیب کرده و یک الگوریتم اجماع هیبرید (Hybrid) یا ترکیبی خلق کرده است. اثبات تاریخچه این اطمینان را داده که یک بلاک چین در عین سرعت بالا، تمرکززدایی در امنیت خود را نیز حفظ میکند. تمام رویدادها و تراکنشها در سولانا از طریق تابع “SHA256” هش میشوند.
سولانا با استفاده از این تابع، یک ورودی را گرفته و خروجی منحصربهفردی تولید میکند که پیشبینی آن بسیار مشکل است و خروجی یک تراکنش بهعنوان ورودی برای هش بعدی استفاده میشود.
اکنون زنجیره تراکنشها در خروجی هششده قرار گرفته است و این فرآیند هشسازی، زنجیرهای طویل و بینقص از تراکنشهای هششده ایجاد میکند. این شیوه عملکرد، زنجیرهای شفاف و قابل تایید از تراکنشها را ایجاد کرده که اعتبارسنجها بدون نیاز به برچسب زمان، آنها را به بلوکها اضافه میکنند. عملیات هش نیز زمان مشخصی دارد؛ یعنی اعتبارسنج میتواند بهراحتی میزان زمان سپریشده را بررسی کند.
اصلیترین بخش نوآوری سولانا، اثبات تاریخچه است که یک منبع زمانی بدون نیاز به مجوز و قابل دسترسی برای همه است که قبل از فرآیند اجماع صورت میگیرد. PoH یک مکانیزم اجماع یا پروتکلی برای مقابله با حملات سیبِل (Sybil) نیست؛ بلکه راهکاری برای مسائل مربوط به زمان است.
با توجه به امنیت موجود، در فرآیند اعتبارسنجی نیازی به نیروی انسانی نیست که موجب شده این فرآیند نسبت به اثبات کار و اثبات سهام چندین برابر سرعت داشته باشد. از این رو، سولانا میتواند تا ۶۵۰۰۰ هزار تراکنش در ثانیه (TPS) را انجام دهد؛ این در صورتی است که این عدد برای بیت کوین ۵ تا ۷ و برای اتریوم تقریبا ۳۰ تراکنش بر ثانیه است.
با این حال، الگوریتم اجماع اثبات تاریخچه پتانسیل زیادی از خود نشان داده و عملکرد آن از بسیاری الگوریتمهای دیگر سریعتر و بهینهتر در مصرف انرژی است. البته که اثبات تاریخچه معایب خود را نیز دارد؛ برای مثال، اعتبارسنجها به نیروی محاسباتی و فضای ذخیره زیادی در سختافزارهای خود جهت اجرای موفقآمیز اثبات تاریخچه نیاز دارند.
الگوریتم اجماع اثبات پوششدهی (Proof of Coverage / PoC)
اثبات پوششدهی الگوریتم مورد استفاده در بلاک چین هلیوم (Hellium / HNT) است. این الگوریتم اجماع با استفاده از امواج رادیویی، عملکرد پوششدهی شبکه بهصورت بیسیم توسط دستگاههای هاتاِسپات (Hotspot) را اعتبارسنجی میکنند.
این فرآیند از طریق اضافهشدن بلوکهای جدید، انجام وظایف جدید و پاداش دادن به ماینرها طی میشود. شبکه هلیوم یک شبکه بیسیم فیزیکی است که هدف آن ایجاد پوشش کافی برای کاربرانی است که از طریق دستگاههای خود به آن متصل شدهاند.
از این رو، شبکه هلیوم به یک الگوریتم اجرایی برای رسیدن به این هدف احتیاج دارد. مکانیزم اجماع اثبات پوشش دهی از ویژگیهای برتر و منحصربهفرد امواج رادیویی (RF) استفاده کرده تا اثبات یا سند مورد نظر برای شبکه هلیوم و اعضای آن را ایجاد کند.
بهطور کلی، اثبات پوشش دهی از قواعد زیر پیروی میکند:
- امواج رادیویی از لحاظ فیزیکی در پخش یا همان مسافت محدودیت دارند.
- قدرت سیگنال رادیویی دریافتی، نسبت معکوس با مربع فاصله آن تا فرستنده دارد.
- امواج رادیویی در حالت بهینه با سرعت نور منتقل میشوند.
بلاک چین هلیوم طبق اصول بالا و از طریق مکانیزمی بهنام چالش یا ارزیابی اثبات پوششدهی (PoC Challenge)، بهطور مداوم در حال بازپرسی از هاتاِسپاتها است.
عملکرد بینقص سیستم اثبات پوشش دهی به این صورت مشخص میشود که: پوششدهی بیسیم هاتاِسپاتها در شبکه از طریق تولید داده در قالب سندهای پیدرپی و ثبت آنها در بلاک چین، بهصورت قطعی تایید میشود. تا کنون، دهها میلیون چالش در شبکه هلیوم وارد و پردازش شدهاند.
چالش اثبات پوششدهی حاوی سه نقش اصلی است:
- چالشگر یا ارزیاب (Challenger): دستگاه هاتاِسپاتی که چالش PoC را ایجاد و صادر میکند. هاتاِسپاتها معمولاً هر ۳۶۰ بلوک چالشها را صادر میکنند.
- فرستنده (Transmitter): این هاتاِسپات بهعنوان هدف اصلی چالش PoC قرار میگیرد و مسئول ارسال بستههای داده چالش به نزدیکترین هاتاِسپاتها از لحاظ جغرافیایی جهت بررسی آنها است.
- شاهد (Witness): هاتاِسپاتهایی که از لحاظ جغرافیایی نزدیک به فرستنده هستند و وجود بسته داده چالش را پس از دریافت گزارش میدهند.
چالشگر یا ارزیاب در ابتدا یک جفت کلید عمومی/خصوصی موقتی ایجاد میکند تا در چالش مورد استفاده قرار گیرد. جهت ارسال اثبات پوششدهی، یک هش “SHA256” از کلید عمومی و همچنین کلید خصوصی همراه با هش بلوک فعلی فرستاده میشوند.
چنانچه این درخواست معتبر باشد و بلاک چین آن را بپذیرد، هش بلوک و رسیدی که همراه آن ارسال شده با هش کلید عمومی موقت و شناسه چالشگر ادغام میشود تا یک آنتروپی (Entropy) قابل تایید تولید شود. سپس یک عدد تصادفی از طریق آنتروپی تولید شده که جهت انتخاب هدف توسط تمام هاتاِسپاتهای درون شبکه استفاده میشود.
پس از این که بسته داده چالش ایجاد شد، از طریق شبکه همتا به همتا (P2P) هلیوم به فرستنده تحویل داده میشود. هدف مورد نظر، بسته داده چالش را دریافت کرده و با استفاده از کلید خصوصی خود و کلید عمومی موقت مخصوص چالش، لایه خارجی آن را رمزگشایی میکند. سپس بلافاصله بسته داده ایجادشده را به شبکه هلیوم میفرستد.
هر هاتاِسپات نزدیک به فرستنده، آن بسته را دریافت و بررسی میکند. پس از بررسی بسته داده، هر هاتاِسپات آن را بهعنوان بخشی از رسید چالش PoC ارسال میکند که توسط چالشگر جمعآوری و سرهم شده و به بلاک چین فرستاده میشود.
در این مرحله، بسته داده توسط گروه اجماع فعلی در بلاک چین مورد تایید قرار میگیرد. از جایی که مراحل ساخت و تکمیل این سند توسط چالشگر قطعی و صحیح بوده است، در نتیجه بهراحتی قابل تکرار است و اعضای گروه اجماع میتوانند صحت آن را تایید کنند.
بین هاتاِسپاتهایی که در انجام این فرآیند نقش داشتهاند، در بازههای زمانی مشخص پاداشهای گوناگونی در قالب رمزارز هلیوم (HNT) توزیع میشود و هرچه میزان دادههای ارسالی بیشتر باشد، پاداش بیشتری نصیب اعضا خواهد شد.
شبکه غیرمتمرکز هلیوم کاملاً رمزنگاری شده، لایههای امنیتی قوی دارد و دسترسی گستردهای به اینترنت را با هزینهای بسیار کمتر از شبکههای اینترنت سنتی فراهم میکند و کاربران تنها برای میزان داده مورد استفاده خود هزینه میکنند. لازم به ذکر است که این شبکه در تاریخ ۱۸ آوریل ۲۰۲۳ (۹ فروردین ۱۴۰۲) به بلاک چین سولانا مهاجرت کرد و دستگاههای فعال در این شبکه، از طریق درگاه مربوطه، به فعالیت خود ادامه میدهند.
الگوریتم اجماع اثبات وزن (Proof of Weight / PoWeight)
الگوریتم اجماع اثبات وزن بر اساس تلفیقی از مکانیزم شبکه الگوراند (Algorand / ALGO) و مدلی است که توسط محققان حوزه علوم کامپیوتری و هوش مصنوعی در دانشگاه MIT طراحی شده است. پروتکل الگوراند، پردازش سریع تراکنشها را بر اساس مکانیزم اجماع بیزانس تسهیل کرده است که از ویژگی مقیاسپذیری در سطح بالا نیز برخوردار است.
اگر در یک شبکه اثبات سهام میزان موجودی توکنهای یک نود احتمال کشف و تولید بلوک بعدی را بالا میبرد، تحت الگوریتم اجماع اثبات وزن، معیارهایی دیگر بهکار گرفته میشوند که «وزن» ارزشگذاری بر یک نود را بیشتر میکنند. مثلاً در شبکه فایل کوین (Filecoin / FIL) که از الگوریتم اجماع اثبات فضا-زمان (Proof of Spacetime) استفاده میکند، وزن ارزش و اعتبار یک نود بر اساس میزان ذخیرهسازی اطلاعات IPFS (سیستم فایل بندی بین ستارهای / Inter-Planetary File System) آن سنجیده میشود.
از بین سایر سیستمها که از طریق معیارهای مختلف برای نودها وزن تعیین میکنند، میتوان به الگوریتم اجماع اثبات شهرت (Proof of Reputation) اشاره کرد.
در مکانیزم PoWeight که کاربران دارای وزن هستند، بخشی از وزن آنها از طریق میزان موجودی حسابشان مشخص میشود. این الگوریتم، اعضای کمیته خود را بهصورت تصادفی و بر اساس وزن کاربران انتخاب میکند. این فرآیند انتخاب تصادفی، باعث شده که احتمال انتخاب کاربران خرابکار نزدیک به صفر برسد؛ کاربران درستکار باید در مجموع دو سوم کل پول موجود در شبکه را داشته باشند؛ در غیر این صورت، نودهای خرابکار میتوانند کنترل شبکه را در اختیار گیرند.
با اینکه طراحی الگوریتم اجماع اثبات وزن شبیه به اثبات سهام است، اما کاربران در این سیستم تنها به موجودبودن سرمایه در حسابشان نیاز دارند و لازم نیست که این سرمایه قفل و یا استیک شود.
الگوریتم اجماع اثبات همکاری (Proof of Contribution / PoCo)
پروتکلهای اثبات همکاری، الگوریتمهایی ویژه را پیادهسازی میکنند تا میزان مشارکت و همکاری نودهای فعال شبکه را طی هر دوره رسیدن به اجماع، نظارت کنند و اجازه تولید بلوک بعدی را به نود یا نودهایی دهند که بیشترین سطح مشارکت در شبکه را داشتهاند. در سیستمهای مبتنی بر الگوریتم اجماع PoCo، بهمنظور اعتبارسنجی نود در شبکه، برای هر عملیات اجرایی یک آستانه اطمینان (Confidence) تعلق میگیرد که حداقل سطح اطمینان مورد نیاز برای محاسبات مربوط به آن عملیات را مشخص میکند.
در شبکههای اثبات همکاری، کاربرانی که قصد انجام محاسبات درونشبکهای یا آنچین (Onchain) را دارند، لازم است پیش از محاسبات سرمایهای را در قالب وثیقه و ضمانت (Security Deposit) استیک کنند. در واقع سطح همکاری هر کاربر، تاریخچه عملکرد، میزان سپرده (استیک) و همچنین، میزان دقت نتیجه محاسبات آنها در هر عملیات است.
نتایج محاسبات مربوط به هر دوره اجماع، توسط مجموعهای از کاربران واجد شرایط ارائه میشوند تا زمانی که یک کابر نتیجهای را با سطح اطمینانی ارائه دهد که با آستانه اطمینان مورد نیاز برای آن محاسبات همخوانی داشته باشد. سپس نودهایی که نتایج تاییدشده را محاسبه کردهاند، کارمزد تراکنشی که کاربر برای انجام عملیات آنچین خود پرداخت کرده و همچنین میزان سپرده از دسترفته کاربرانی که محاسبات را اشتباه انجام داده، بهعنوان پاداش دریافت میکنند؛ پس از این مرحله، سابقه عملکرد تمام کاربران مشارکتکننده در شبکه مجدداً تنظیم میشود.
از لحاظ تئوری، همیشه چندین کاربر هستند که نتایج دقیق و مشابهی را برای یک محاسبه بهدست میآورند. در این شرایط، میزان اطمینان کاربران با هم جمع و میانگین آنها گرفته میشود و پاداش اجماع میان کاربران تقسیم میشود. الگوریتم اجماع اثبات همکاری در شبکههای زیادی پیادهسازی نشده است اما در پروژههای نظیر آیاِگزک (iExec) عملکرد خوبی از خود بهجا گذاشته است؛ شبکهای که در آن، اعتبارسنجی عملیات آنچینی که از خارج از شبکه (Off-Chain) آغاز شده با حفظ ویژگی امن و شفافیت، بسیار حائز اهمیت است.
الگوریتم اجماع اثبات فضای ذخیره سازی، اثبات تکثیر و اثبات فضا-زمان
یک ویژگی الگوریتم اجماع اثبات فضای ذخیره سازی (Proof of Storage / PoStorage)، معیار قراردادن دادهها بهجای سپردهگذاری سرمایه است. بهدلیل نحوه عملکرد این مکانیزم، چنین پروتکلی اغلب در شبکههایی پیادهسازی میشود که قابلیت ذخیرهسازی دادهها بهصورت غیرمتمرکز، حرف اول را میزند. در این الگوریتم اجماع میزان احتمال اینکه یک نود برای استخراج بلوک بعدی انتخاب شود را، مقدار فضای ذخیرهای که نود در اختیار شبکه گذاشته تعیین میکند.
از این روز میتوان گفت که اثبات فضای ذخیره شبیه به اثبات سهام است؛ با این تفاوت که در اثبات سهام توکن و سرمایه نودها استیک میشود، اما در اثبات فضای ذخیره سازی، شبکه با تایید اینکه هر نود میزان واقعی فضای ذخیرهای که ادعا کرده را در اختیار شبکه گذاشته به توافق و اجماع میرسد و پاداشها متناسب با همین معیار بین نودها توزیع میشوند.
فایل کوین (FIL) بلاک چینی است که به سازمانها و پلتفرمهای مختلف فضای ذخیره اطلاعات ارائه میدهد که از نمونهای منحصربهفرد از اثبات فضای ذخیره سازی استفاده میکند؛ این مکانیزم، تلفیقی از الگوریتمهای اجماع اثبات تکثیر (Proof of Replication / PoRep) و اثبات فضا-زمان (Proof of Spacetime / PoSpacetime) است. اثبات تکثیر این قابلیت را ایجاد کرده که یک نود بتواند دادهای مشخص را که در فضای ذخیره فیزیکی ویژه خود تکثیر شده، مورد اعتبارسنجی و تایید قرار دهد.
شبکه فایل کوین از طریق الگوریتم اجماع اثبات فضا زمان، ماینرهایی را که دادههای موجود را تایید کردهاند، بهصورت تصادفی انتخاب میکند و دادههای آنها را در یک سند اثبات فضا زمان میگنجاند. سپس ماینرها متقابلاً باید سندی را ارائه دهند که نشان میدهد رمزنگاری دادهها، برای مدتزمانی مشخص در فضای ذخیره فیزیکی مربوطه باقی مانده و سپس تایید کنند که آن دادهها در آن بازه زمانی، عملکرد خود را بهصورت صحیح انجام دادهاند.
به این ترتیب، اثبات تکثیر به این منظور استفاده میشود که ثابت کند یک ماینر نسخهای منحصربهفرد از یک داده را هنگامی که برچسب خورده و مهر و موم شده، ذخیره کرده است؛ در حالی که اثبات فضا-زمان جهت نمونهسنجی تصادفی نودها استفاده میشود، با هدف تایید این موضوع که نودها بهصورت مستمر فضای ذخیره خود را در اختیار دادههای مذکور قرار دادهاند. علاوهبر فایل کوین، شبکه استورج (Storj / STORJ) یکی دیگر از بلاک چینهای شناختهشده است که از الگوریتم اجماع اثبات فضای ذخیره سازی استفاده میکند.
الگوریتم اجماع یک مکانیزم تحمل خطا، مورد استفاده در کامپیوترها و بلاک چینها است که برای یک مقدار داده یا وضعیتی از شبکه در فرآیندهای توزیعشده و سیستمهای چند عاملی مانند رمزارزها، توافق لازم را برقرار میکند. این الگوریتم در عملیات ثبت و ضبط اطلاعات و دیگر موارد کاربرد دارد. در این بخش ما پروتکلهای اجماع مختلفی همراه با مزایا و معایب آنها را مورد بحث قرار دادیم. هیچ الگوریتم اجماعی وجود ندارد که همه قابلیتها را بهصورت یکجا داشته باشد. اکثر بلاک چینها از الگوریتمهای اجماع مانند اثبات کار و اثبات سهام و همینطور گونههای متفاوت آنها استفاده میکنند.
مثلاً الگوریتم اجماع اثبات کار (PoW) در یک پروژه با محوریت ماینینگ کاربرد دارد. اثبات سهام (PoS) برای اعتبارسنجی تراکنشها مناسب است و اثبات سهام نمایندگیشده (DPoS) برای سیستمهای رأیدهی بهصورت شفاف، اثبات اهمیت (PoI) جهت عدم انباشت کوینها، اثبات سوزاندن (PoB) برای کاهش کوینهای در گردش و اثبات زمان سپریشده (PoET) برای برقراری عدالت کاربرد دارند. بنابراین انتخاب هوشمندانه آنها برای شبکه کسب و کارها اهمیت زیادی دارد، چرا که شبکههای بلاک چین بدون الگوریتمهای اجماع عملکرد صحیحی نخواهند داشت و نمیتوان تراکنشهای آنها را بهدرستی تایید کرد.
از میان تمام این الگوریتمها، اثبات کار تا کنون گزینه بهتری بوده است و جایگزینی مطمئنتر و امنتر برای آن هنوز پیدا نشده است. البته اخیراً با توجه به بهروزرسانیهای اخیر شبکه اتریوم و همچنین مسائل مرتبط با حفظ محیط زیست، الگوریتم اثبات سهام توجه جامعه رمزارزها را بیش از پیش به خود جلب کرده است. هماکنون تحقیقات و تلاشهای زیادی برای جایگزینی اثبات کار در حال انجام است و احتمالاً در سالهای پیش رو انواع بیشتری از الگوریتم اجماع را شاهد خواهیم بود. چنانچه در رابطه با این مقاله سوال، پیشنهاد و یا انتقادی داشتید، لطفاً با ثبت نظر خود ما را در جریان بگذارید.
سوالات شما در رابطه با مقاله الگوریتم اجماع
الگوریتم اجماع چیست؟
الگوریتم اجماع یک مکانیزم در علوم کامپیوتری است که جهت برقراری توافق روی یک مقدار از داده در فرآیندها و سیستمهای توزیعشده استفاده میشود و بهطور کل، وظیفه برقراری امنیت در یک شبکه بلاک چین را بر عهده دارد.
نود در بلاک چین چیست؟
در فضای بلاک چین و رمزارزها، نود (Node) به کامپیوتری گفته میشود که نرمافزار بلاک چین مربوطه را جهت تایید اطلاعات و ذخیرهسازی یک نسخه کامل از بلاک چین، اجرا میکند.
ماینر در بلاک چین چیست؟
ماینر نیز مانند نود، عضوی از شبکه بلاک چین است که وظیفه انجام تراکنشها و تولید بلوکها را بهصورت صحیح و دقیق دارد و در روند تولید و صدور رمزارزهای جدید نقش مهمی ایفا میکند.
بهترین الگوریتم اجماع چیست؟
انتخاب بهترین الگوریتم اجماع به اهداف و نحوه عملکرد شبکه مربوطه بستگی دارد و در حال حاضر، رایجترین الگوریتمهای اجماع بلاک چین اثبات کار (PoW) و اثبات سهام (PoS) هستند.