الگوریتم اجماع چیست ؟
غیرمتمرکز بودن یعنی تمامی اطلاعات و دادهها ، بر روی چندین رایانهی گوناگون در سراسر جهان ذخیره و نگهداری میشود که همین موضوع از مهمترین ویژگیهای شبکههای بلاکچین و سایر دفاتر توزیع شده است . به سرورهایی که مسئولیت نگهداری و حفظ این دادهها را دارند ، نود (Node) یا گره گفته میشود. (الگوریتم اجماع چیست)
مکانیزم الگوریتم اجماع چیست ؟
الگوریتم اجماع (Consensus Algorithms) روشی است که توسط آن همه گرهها یا نودهای فعال در شبکه بلاک چین قادر هستند تا در مورد تأیید تراکنشهای انجامشده به توافق یا اجماع کلی در دفترکل توزیع شده برسند .
الگوریتمهای اجماع ضمانت می دهند که مقررات مرتبط با پروتکلها بهصورت کاملاً صحیح رعایت و اجراشده و تمامی تراکنشها و نقل و انتقالات ارزهای دیجیتال در شبکهی بلاک چین با رعایت مقررات مربوط به آن در محیط محاسباتی توزیع شده است .
در واقع الگوریتم اجماع بدین معنی است که باید تعداد معین و مشخصشده از نودها (حداقل بیش از نیمی از نودهای شبکه )، درباره انجام و انتقال یک تراکنش به اجماعی رسیدند ، تا چنین انتقالی در داخل یک شبکه ی بلاک چین انجام شود .
در نتیجه، الگوریتم اجماع در صدد دستیابی به توافق مشترکی است که توسط کاربران کل شبکه حاصل شده باشد .
دادههای ثبتشده بر روی یک شبکهی بلاک چین میتوانند شامل هر دستهبندی از جمله : هویت یک کاربر در شبکه ، انتقال یک یا چند ارز دیجیتال ، توافق میان دو کاربر ، تعیین مالکیت یک رمز ارز مشخص ، یا مقدار برق مصرف شده باشند .
در حقیقت هر نود شبکه ، تراکنش را ثبت کرده و دادههای مربوط به آن تراکنش را به نسخهی دفتر کل خود اضافه خواهد کرد .
بنابراین اگر دادهها از روی دفتر کل یک نود پاک شده و یا آن نود دچار مشکل گردد ، گرههای دیگر همچنان میتوانند به آن اطلاعات دسترسی داشته باشند . همچنین الگوریتم اجماع کمک میکند که سیستم تحمل خطا را داشته باشد .
پس در تعریف کلی : الگوریتم اجماع جهت توافق نودها در مورد تأیید صلاحیت یا عدم صلاحیت یک تراکنش استفاده میشود ، انتخاب نودها برای مدیریت امور دفتر کل توزیعشده ، یکدست کردن دادههای ذخیرهشده بر روی سیستمهای هر نود و… نیز استفاده میشود .
تفاوت سیستم متمرکز و غیرمتمرکز در چیست ؟
مدیریت کل در سیستم متمرکز را ، یک نهاد مرکزی بر عهده دارد . این نهاد قادر است هر نوع تغییراتی ایجاد کند . نهادهایی که مدیریت و ایجاد تغییر در آنها در اختیار یک قدرت مرکزی است سیستمهای متمرکزی مانند بانکها و دولتها ، هستند .
در یک سیستم غیرمتمرکز، در بلاکچین نودهایی (کاربران شبکه) که هیچ شناختی نسبت به هم ندارند، در حال ایجاد تغییر روی یک سیستم توزیع شده هستند . الگوریتمهای اجماع یعنی چطور میتوان وحدت سیستم را حفظ کرد تا همه روی یک نسخه از سیستم توافق کنند ؟ بزرگترین دلیل استفاده از انواع دفاتر کل توزیع شده مانند بلاکچین، بالا بردن امنیت و مطمئن بودن از عدم نابودی و خرابی داده هاست . اگر اطلاعات در یکی از سرورها (گرهها) به هر دلیلی از بین برود ، چندین هزار و حتی میلیونها سرور دیگر آن اطلاعات را در خود ذخیره کردند .
همچنین الگوریتم اجماع زمانی کاربرد دارد که هنگام استفاده از بلاکچین یا انواع دیگر، اطلاعات باید آپدیت و به روز رسانی شوند ، که به کمک الگوریتم اجماع این اتفاق باید در سیستم همه نودها بیفتد .
کاربرد الگوریتم اجماع چیست ؟
الگوریتم اجماع در بلاکچین کاربردهای مختلفی دارد. مهمترین کاربرد آن، هماهنگی توافق تمام نودهای شبکه در یک تغییر یا به روزرسانی در شبکه است . این توافق بر سر هر یک از عملکردهای : تایید تراکنشها ، انتخاب گره برای نمایندگی شبکه در دفتر توزیع ، تضمین یکدستی اطلاعات در شبکه ،از طریق رایگیری بین اعضای شبکه انجام میشود.
هر گره یا نود با حق رای که دارد می تواند صلاحیت یک تراکنش را برای ثبت در بلاکچین تایید کند، در این صورت تراکنش انجام خواهد شد و اگر آن را رد کند ، ثبت تراکنش لغو میشود .
الگوریتم اجماع و رمز ارزها
در رمزارزها، که سیستم غیرمتمرکز دارند دارایی کاربران در یک پایگاه داده در بلاکچین ذخیره میشود و همه کاربران یک نسخه واحد از این پایگاه داده را در اختیار خواهند داشت . در غیر این صورت ، خیلی زود کاربران با تضادهای زیادی مواجه خواهند شد که برخلاف هدف اصلی بلاکچین است .
رمزنگاری کلید عمومی ضمانت میکند که کاربران نمیتوانند کوین های یکدیگر را خرج کنند . همچنین مشارکتکنندگان شبکه باید با تکیه به یک منبع واحد بتوانند تعیین کنند که آیا منابع مالی قبلا خرج شده است یا خیر. بنابراین با استفاده از الگوریتم اجماع مشکل دو مرتبه خرج کردن که شبکههای رمز ارزی غیر متمرکز را تهدید میکند جلوگیری خواهد شد .
ساتوشی ناکاموتو (خالق بیت کوین) سازوکار اثبات کار (Proof of Work) را برای معضل دوباره خرج کردن (Double-spending) ارزها پیشنهاد کرده است .
معرفی انواع الگوریتم های اجماع
در شبکه بلاکچین ازالگوریتمهای مختلفی برای رسیدن به اجماع و توافق میان نودها استفاده میشود. الگوریتم اجماع انواع مختلفی دارد اما چهار نوع پر کاربرد آن در بلاکچین ، الگوریتم تحمل خطای بیزانس (PBFT) ، الگوریتم گواه اثبات کار (PoW) ، گواه اثبات سهام (PoS) و گواه اثبات سهام وکالتی (DPos) است . در پس زمینه فعالیت هر رمز ارز معتبر و محبوب ، یک الگوریتم اجماع قوی در حال اجرا است. هرکدام از الگوریتمهای اجماع ، خصوصیات و ویژگیهای منحصربهفرد خود را دارد و هرکدام از آنها معایبی نیز دارد . نخستین الگوریتمی شناخته شده در میان کاربران الگوریتم گواه اثبات کار است.
ارزهای دیجیتالی مانند بیت کوین و اتریوم از گواه اثبات کار ( PoW ) استفاده میکنند و به دلیل اینکه در این روش با بالا رفتن سختی شبکه مصرف انرژی افزایش پیدا می کند ، این شبکه ها سعی دارند به سمت الگوریتم های دیگر مانند گواه اثبات سهام ( PoS ) حرکت کنند . اتریوم سعی دارد که شبکه خود را در سال ۲۰۲۰ به گواه اثبات سهام منتقل کند .
از جمله مهمترین الگوریتمهای اجماع در بلاکچین :
. الگوریتم گواه اثبات کار( Proof of Work )
مکانیزم الگوریتم گواه اثبات کار در رمز ارزها ابتدا ، در شبکهی بلاک چین بیت کوین مورداستفاده قرار گرفت . در واقع در انتخاب استخراجکننده برای ساخت بلوک بعدی از این الگوریتم استفاده میشود.
بیت کوین نیز از الگوریتم اجماع استفاده میکند . ایدۀ اصلی الگوریتم اثبات کار، حل یک معمای پیچیده ریاضی و به دست آوردنِ یک راهحل درست است .
استخراج بلوک بعدی توسط نودی که این معمای ریاضی را با قدرت محاسباتی زیاد حل کند ، انجام می شود .
. الگوریتم گواه اثبات سهام ( Proof of Stake )
به کاربرانی که در مکانیزم الگوریتمهای بلاک چین ، بلاک اضافه کنند تا در آن بتوان تراکنشهای جدید را ثبت کنند نود ولیدیتور میگویند . هر ولیدیتور، باید یک ارزش به شبکه اضافه کند و بابت این کار پاداشی که معمولاً ارزی در همان بلاکچین است به کاربر تعلق می گیرد تا او را به ماندن در شبکه تشویق کند . این پاداش یا از کارمزدهایی که سایر کاربران پرداخت میکنند تشکیل می شود یا کوینهای جدیدی که در بلاک جدید نهفته است .
اگر هر ولیدیتور عملی خرابکارانه در شبکه انجام دهد ، سهام خود را که میتواند قدرت پردازش کامپیوتری، یا رمزارز در شبکه باشد از دست بدهد .
الگوریتم گواه اثبات سهام (Proof of Stake) می تواند جایگزین برای الگوریتم اجماع اثبات کار باشد. در این نوع الگوریتم اجماع ، ولیدیتورها (اعتبارسنجها) با فریز کردن برخی از کوینهای خود به عنوان سهام ، به جای سرمایهگذاری روی سخت افزارهای گرانقیمت برای حل یک معمای پیچیده، روی کوینهای شبکه سرمایهگذاری میکنند . سپس، تمام ولیدیتورها به بلاکها اعتبار میدهند . اگر اعتبارسنجها بلاکی را کشف کنند که میتواند به زنجیره اضافه شود ، با تأیید آن، بلاک را معتبر میکنند . الگوریتم اجماع اثبات سهام، ولیدیتورها را از طریق یک مکانیزم انگیزشی برای به توافق رسیدن تشویق میکند و یک ولیدیتور بر اساس سهم خود در شبکه ، برای ایجاد بلاک جدید انتخاب میشود .
. الگوریتم گواه اثبات مالکیت ( Proof of Ownership )
الگوریتم گواه اثبات مالکیت (Proof of Ownership) روشی است که جهت ردیابی مالکیت اطلاعات خاصی در زمانهای خاص بهوسیله ی بلاک چین یا دیگر فناوریهای مرتبط با بیت کوین ، استفاده میشود . تأیید مالکیت اطلاعاتی خاص در بلاک چین ، ثابت خواهد کرد که این اطلاعات در زمانی مشخص وجود داشتهاند ، بنابراین رابطهای مستقیم بین این الگوریتم و یک دادهی حقیقی خاص وجود دارد . در شبکههای بلاک چین مبتنی بر این الگوریتم ، تنها کاربرانی که دارای کلید خصوصی مرتبط با امضاها باشند میتوانند مالکیت خود را ثابت کنند .
در الگوریتم گواه اثبات مالکیت دادهها پس از تأیید اعتبار آنها در شبکه ، امکان تغییر را نخواهند داشت بنابراین اگر دادهای حتی بهاندازه یک bit تغییر کند ، تمامی گواهی مالکیت صادرشده نامعتبر میگردد . زیرا در این مکانیزم اثبات مالکیت با استفاده از توابع رمزنگاریشده است که به دادهای خاص ارتباط پیدا میکند .
. الگوریتم گواه اثبات مسئولیت ( Proof of Authority )
در شبکههایی مبتنی بر الگوریتم گواه اثبات مسئولیت (Proof of Authority) با نام اختصاری PoA ، تراکنشها و بلوکها بهوسیله ی حسابهایی که به نام تأییدکنندگان معتبر شبکه است تأیید میگردند . درواقع ، آن ها با اجرای نرمافزارهایی بهصورت خودکار ، قادرند تا تراکنشها را در داخل بلوکها قرار دهند . در الگوریتم گواه اثبات مسئولیت، تضمین انجام معاملات بهوسیله ی نودهای معتبری که بهعنوان گرههای قابلاعتماد انتخاب شدهاند، انجام میگیرد . و مانند الگوریتم گواه اثبات سهام نیازی نیست تا مقداری از رمز ارز شبکه در داخل خود شبکه تحت عنوان تضمین انجام کار گرهها بهعنوان ضمانت نگه داشته شود .
. الگوریتم گواه اثبات وجود ( Proof of Existence )
الگوریتم گواه اثبات وجود (Proof of Existence) در سال ۲۰۱۳ بهوسیله ی مانوئل آراوز (Manuel Araoz) و استبان اردانو (Esteban Ordano) و با عنوان پروژه متنباز ایجاد شد . الگوریتم گواه اثبات وجود نوعی سرویس آنلاین است که وجود فایلهای رایانهای را بهوسیله ی تراکنشهایی که در بلاک چین بیت کوین دارای برچسب زمانی هستند تأیید میکند . از کاربردهای این الگوریتم میتوان به اثبات تملک دادهها، توافق امضاهای دیجیتال بدون افشای محتوای حقیقی این امضاها، بدون افشای محتوای حقیقی آنها، افزودن برچسب زمانی به اسناد موجود در شبکهی بلاک چین و بررسی یکپارچه بودن دادههای موجود در شبکه اشاره کرد . پروژههایی همچون DragonChain، Poex.io، HeroNode از الگوریتم کواه اثبات وجود استفاده کرده اند .
. الگوریتم گواه اثبات پرداخت ( Proof of payment )
از الگوریتم گواه اثبات پرداخت (Proof of Payment) برای نقل و انتقالات درونشبکهای استفاده می شود . این الگوریتم نوعی سند پرداختی یا مدرک انتقال بانکی جهت پوشش نیازهای جانبی و دیگر اهداف تجاری کاربران شبکه است که با بارگذاری آن شبکه این امکان را به کاربر خواهد داد تا پیش از پرداخت وجه ، حساب وی دارای اعتبار گردد .
زمانی که مبلغی را برای فردی دیگر انتقال می دهید و سیستم نقل و انتقالات بانکی نمیتواند بهسرعت این کار را برای شما انجام دهد ، میتوانید بهصورت آنی این کار را بهوسیله ی مکانیزم گواه اثبات پرداخت انجام دهید .
اگرچه باید به این نکته نیز توجه داشته باشید که تا زمان تسویهحساب وجه درخواستی خود با شبکه ، امکان برداشت وجه یا انتقال آن به حسابهای بیرون از شبکه وجود ندارد . (الگوریتم اجماع چیست)
. الگوریتم گواه اثبات هویت ( Proof of Identity )
الگوریتم گواه اثبات هویت (Proof of Identity) با علامت اختصاری PoI تأیید میکند که هر کاربری که تراکنشی را در شبکه انجام داده باشد ، به کلید خصوصی دسترسی دارد .
این الگوریتم نوعی مدرک رمزنگاری شده است که تأیید میکند کاربرانی که کلید خصوصی داشته باشند ، دارای هویتی معتبر در شبکه هستند و از لحاظ رمزنگاری به تراکنشی خاصی مربوط میشوند .
در شبکههای بلاک چینی که از این الگوریتم استفاده میکنند ، هر کاربر میتواند یک مدرک رمزنگاری (PoI) ایجاد کند و آن را به هرنودی که مدنظر دارد ارائه کند تا هویت وی مورد تأیید قرار بگیرد.
. گواه اثبات سوزاندن (PoB)
در الگوریتم اجماع اثبات سوزاندن (Proof of Burn) ولیدیتورها با ارسال رمز ارزها به آدرسی که از آنجا قابل استرداد نیستند ، به جای سرمایهگذاری بر تجهیزات سخت افزاریِ گرانقیمت ، شروع به سوزاندن رمز ارزها می کنند . ولیدیتورها با سپردن توکنها به یک آدرس غیرقابل استرداد ، بر اساس یک فرآیند انتخاب تصادفی ، اعتبار استخراج در سیستم را کسب میکنند . بنابراین، سوزاندن توکنها در اینجا به این معنی است که اعتبارسنجها در ازای زیان کوتاهمدت خود ، تعهدی بلندمدت به دست میآورند .
استخراجکنندگان می توانند توکن اختصاصی برنامه بلاکچین یا واحد پول یک بلاکچین دیگر مانند بیت کوین را بسوزانند . هر چقدر آنها توکن یا کوینهای بیشتری بسوزانند ، شانس انتخابشان برای استخراج بلاک بعدی بیشتر میشود . با اینکه قدرت استخراج صرفاً به کسانی میرسد که مایل هستند توکنهای بیشتری بسوزانند ، نسبت به استفاده از این الگوریتم تردیدهایی وجود دارد .
تحمل خطای بیزانس (PBFT)
هدفِ تحمل خطای بیزانس (Practical byzantine fault tolerance) ، محافظت در برابر خرابیهای سیستم با استفاده از روش تصمیمگیریِ جمعی توسط هر دو نودهای صحیح و معیوب بوده و در نتیجه تأثیر نودهای معیوب را کاهش می یابد . تحمل خطای بیزانس از ویژگیهای شبکۀ توزیع شده برای رسیدن به الگوریتم اجماع است . این روش زمانی که نودهای شبکه قادر به پاسخگویی نباشند یا این کار را با اطلاعات نادرستی انجام دهند ، به کار میرود. (الگوریتم اجماع چیست)