الگوریتم اجماع در بلاکچین
در این مقاله قصد داریم شما را با مفهومی به نام مکانیزم اجماع آشنا کنیم. اولین موضوعی که در صنعت بلاکچین از اهمیت ویژهای برخوردار است، انجام تراکنشها درفضایی غیر متمرکز میباشد. در بلاکچین، نهاد واسطه و یا سروری مرکزی که تمامی تراکنشها در آنجا تایید شوند وجود ندارد و تایید تراکنشها، ثبت و ضبط و تغییرهای انجام شده همگی توسط کامپیوترهای مختلفی که تمایل به تایید تراکنشهای بلاکچین در ازای گرفتن پاداش دارند انجام میشوند. در واقع همه کاربران در صورت داشتن برخی قابلیتها میتوانند تراکنشهای شبکه را تایید کرده و در ازای تایید تراکنشهای شبکه پاداش دریافت نمایند.
ممکن است سوالی در اینجا به ذهن شما خطور کند و آن اینکه طبق چه دستور العمل و یا مکانیزمی این تاییدها انجام میشود و یا به عبارتی دیگر افرادی که به عنوان نود شبکه در بلاکچین امنیت شبکه را تامین میکنند طبق چه الگوریتمی به توافق میرسند که مثلا یک تراکنش خاص اعتبار دارد و یا اینکه توسط هکرهای مخرب صورت گرفته است؟! در واقع به ساز و کاری که با آن نودهای شبکه با هم بر سر وضعیت بهروز شده یا تغییر یافته بلاکچین توافق میکنند، مکانیزم یا الگوریتم اجماع میگوییم که در این مقاله بیشتر با آن آشنا میشویم.
الگوریتم اجماع چیست؟
فرض کنید شما دفتری دارید که در آن حسابهای مالی خود را یادداشت میکنید. تمام خریدها و فروشهای شما و تمامی معاملات شما در این دفتر قرار دارد و شما تمامی معاملات خود را در آن دفتر یادداشت میکنید. حال فرض کنید این دفتر شما بنا به دلیلی گم شود و یا از بین برود. در این صورت تمام اطلاعات شما از بین میرود و برای بازیابی اطلاعات شما نمیتوانید کاری انجام دهید. همین موضوع را شما برای نهادهای متمرکز مختلفی که خدمات مالی به مشتریان خود میدهند میتوانید تصور کنید. البته در این موسسات متمرکز راهکارهای مختلفی اعمال میشود تا از نابود شدن اطلاعات و از بین رفتن سوابق جلوگیری شود ولی همواره خطر هک شدن توسط گروههای خرابکار و یا اعمال سانسور و یا محدودیت و یا حتی تغییر توسط مدیران این نهاد متمرکز وجود دارد. بنابراین اطلاعات شما از امنیت مطلوبی که مورد نظر شماست برخوردار نیست.
دفتر کل توزیع شده به عنوان راهکاری ارائه شده است که در آن اطلاعات در یک نهاد متمرکز و یا یک سرور مرکزی نباشد و بطور گستردهای بین کامپیوترهای مختلف توزیع شود. با این کار یک نهاد مرکزی خاص نمیتواند سلیقههای خود را به سیستم تحمیل کند بلکه یک نسخه از دفتر کل بین همه نودهای شبکه توزیع شده و این نودها همواره با آخرین تغییرات بوجود آمده در بلاکچین، بهروز شده و خود را آپدیت میکنند. بنابراین اگر اطلاعات به هر دلیلی در یکی از نودها از بین برود هیچ جای نگرانی نیست، زیرا یک نسخه بهروز شده از اطلاعات شبکه بین همه نودهای شبکه توزیع شده است.
نکتهای که در اینجا وجود دارد لزوم وجود مکانیزم و سازکاری است تا تمامی تغییرات حاصل شده در شبکه بلاکچین در اختیار تمامی نودها قرار گرفته شود و این نودها بر سر آخرین تغییرات اعمال شده در بلاکچین با هم به توافق برسند. در واقع الگوریتم اجماع روشی است برای به توافق رسیدن نودهای شبکه بر سر تغییرات اعمال شده در شبکه بلاکچین. برای رسیدن به اجماع روشهای مختلفی وجود دارد که در ادامه به تعدادی از آنها اشاره نموده و توضیحاتی را نیز برای برخی از متداول ترین الگوریتمهای اجماع ارائه میکنیم.
انواع الگوریتم اجماع در بلاکچین
همانطور که پیشتر اشاره شد روشهای مختلفی برای به توافق رسیدن نودهای شبکه وجود دارد. برخی از این روشها عبارتند از الگوریتم گواه اثبات کار (PoW) ، الگوریتم گواه اثبات سهام (PoS)، الگوریتم تحمل خطای بیزانس (BFT) و گواه اثبات اعتبار (PoA). هر کدام از این روشهای اجماع دارای مزایا و معایب مختلفی هستند که در اینجا به توضیحاتی درباره دو نمونه پرکاربرد از الگوریتمهای اجماع یعنی گواه اثبات کار و گواه اثبات سهام میپردازیم.
گواه اثبات کار (PoW)
گواه اثبات کار به عنوان الگوریتم اجماع بکار رفته برای شبکه بیت کوین از متداول ترین الگوریتمهای اجماع است. نودهای شبکه با در اختیار گذاشتن قدرت پردازشی کامپیوترهای خود معادلات پیچیده رمز نگاری شده را حل کرده و در ازای این کار از شبکه پاداش دریافت میکنند. همانطور که از نام این الگوریتم اجماع دریافت میشود هر چه مقدار قدرت پردازشی نود شبکه بالاتر باشد میزان پاداشی که شبکه به آن نود میدهد بیشتر میشود.
این موضوع یکی از معایب این مکانیزم اجماع است زیرا افراد زیادی با متصل کردن ماینرهای مختلف و تشکیل استخرهای ماینینگ باعث ایجاد تمرکز شده که با ذات غیر متمرکز بلاکچین تناقض دارد و از طرفی دیگر الگوریتم گواه اثبات کار مصرف انرژی بالایی دارد و از لحاظ زیست محیطی میتواند آسیب زا باشد.
گواه اثبات سهام (PoS)
در گواه اثبات سهام مکانیزمی عمل میکند که نودی که بلاک بعدی را تایید میکند توسط ساز و کاری خاص انتخاب میشود و بنابراین برخلاف الگوریتم اثبات کار همه ماینرها برای تشکیل و تایید بلاک بعدی با هم رقابت نمیکنند بلکه نودهایی که این کار را باید انجام دهند و به آنها ولیدیتور (Validator) میگویند توسط مکانیزمی انتخاب میشوند. برای این منظور نودهایی که میخواهند در تایید تراکنشها شرکت نمایند باید مقداری از کوین شبکه را در شبکه سپردهگذاری یا استیک (Stake) نمایند و هر چه مقدار این استیک و زمان آن بیشتر باشد احتمال اینکه آن ولیدیتور بتواند برای تایید بلاک بعدی انتخاب شود بیشتر میشود.
کاربرد الگوریتم اجماع در بلاکچین
الگوریتم اجماع در واقع روشی برای به توافق رسیدن نودهای شبکه بر سر تحولاتی است که در شبکه رخ میدهد. هر تراکنشی که در شبکه انجام میشود باید به تایید نودهای شبکه برسد و این نودها باید بر سر آن به اجماع برسند. از این دیدگاه تمامی تحولاتی که در شبکه رخ میدهد را میتوانیم به عنوان کاربردهایی در نظر بگیریم که با الگوریتم اجماع انجام میشود.
بنابراین ایجاد بلاک جدید و تمامی بهروز رسانیهایی که انجام میشود جزء کاربردهای الگوریتم اجماع است. از کاربردهای دیگر میتوان به انتخاب نودها برای مدیریت اطلاعات روی شبکه و یا تصمیم گیری برای تایید کردن یک تراکنش برای ثبت آن در دفتر کل توزیع شده اشاره نمود که هر کدام از این موارد نقش مهمی در چگونگی مدیریت سیستمهای اطلاعاتی دارند و از کاربردهای الگوریتم اجماع به حساب میآیند.
جمعبندی
در شبکههای بلاکچینی به دلیل داشتن ذات غیر متمرکز آن لزوم وجود مکانیزمی که نودهای شبکه با آن روش به توافق برسند از اهمیت بالایی برخوردار است. شبکههای بلاکچینی هر لحظه در حال بهروز شدن هستند، در واقع با انجام هر تراکنش جدید وضعیت بلاکچین تغییر کرده و نودهای شبکه همواره باید آخرین نسخه بهروز شده از وضعیت بلاکچین را در اختیار داشته و بر سر این تغییرات با هم به توافق برسند. به روشهایی که نودهای شبکه با هم برای تایید تراکنشها به توافق میرسند، الگوریتم اجماع میگویند. الگوریتمهای اجماع مختلفی وجود دارند که از این میان به مهمترین آنها که الگوریتم گواه اثبات کار و الگوریتم گواه اثبات سهام است میتوان اشاره نمود.