مقدمه
الگوریتم اجماع مکانیزمی است که به کاربران اجازه می دهد در فرآیند توزیع شده مشارکت کنند. این مکانیزم به توافق همه عامل های سیستم بر یک منبع حقیقی نیاز دارد٬ حتی اگر برخی عامل ها خطا کنند. به عبارت دیگر٬ سیستم باید بدون خطا (fault-tolerant) باشد.
در یک سیستم متمرکز٬ یک موجودیت واحد روی سیستم سیطره دارد. در اغلب موارد می توانند هر تغییری که بخواهند بدهند.
اما در یک سیستم غیرمتمرکز٬ جریان کاملا متفاوت است. مثلا هنگام کار با یک پایگاه داده غیرمتمرکز چگونه توافق شود که چه داده ای اضافه شود؟
فائق آمدن بر این موضوع در محیطی که افراد غریبه اند و به هم اعتماد ندارند احتمالا بحرانی ترین مساله در مسیر توسعه بلاکچین بوده است.
الگوریتم های اجماع و ارزهای دیجیتال
در ارزهای دیجیتال دارایی های کاربران در پایگاه داده (بلاکچین) ثبت می شود. خیلی حیاتی است که همه (یا دقیق تر هر نود) کپی همسانی از پایگاه داده را داشته باشند. درغیر اینصورت خیلی سریع به مغایرت اطلاعات دچار می شویم٬ رسیدگی به این موضوع زیربنای شبکه تمامی ارزهای دیجیتال می باشد.
رمزنگاری کلید عمومی اطمینان حاصل می کند که کاربران نمی توانند ارزهای یکدیگر را خرج کنند. اما هنوز مور دیگری جهت اطمینان اعضای شبکه لازم است و آن تعیین محل خرج شدن ارزها می باشد.
ساتوشی ناکاموتو (خالق بیت کوین) سیستم اثبات کار را برای مشارکت اعضا پیشنهاد نمود. به زودی طرز کار Pow را بررسی خواهیم کرد فعلا سایر الگوریتم های اجماع برا به اجمال بررسی خواهیم کرد.
ابتدا می خواهیم کاربرانی که قصد افزودن یک بلاک را دارند (تاییدکننده ها) استیک کنند. استیک اعتباری است که تایید کننده به عنوان ضمانت می گذارد تا جلوی رفتار غیرصادقانه آن ها را بگیرد. اگر تقلب کنند استیک خود را از دست می دهند. مثال ها شامل توان محاسباتی٬ ارز دیجیتال٬ یا حتی اعتبار می باشد.
چرا باید منابع خود را به خطر بیاندازند؟ تازه امکان دریافت پاداش هم دارند. این معمولا در پروتکل بومی ارز دیجیتال تعبیه شده است و از کارمزدهای پرداختی سایر کاربران٬ ارزهای تولید شده یا هر دو تشکیل شده است.
در نهایت شفافیت را لازم داریم. باید بتوانیم تقلب را شناسایی کنیم. اصولا باید ساخت بلاک هزینه بر باشد اما تایید آن برای سایرین ارزان باشد. این مورد اطمینان می دهد که تایید کننده ها توسط کاربران مرتبا بررسی می شوند.
انواع الگوریتم های اجماع
Proof of Work (PoW)الگوریتم اثبات کار:
الگوریتم PoW پدرخوانده الگوریتم های اجماع بلاکچین می باشد. اولین بار در بیت کوین پیاده سازی شد٬ اما مفهوم آن از پیش تر وجود داشته است. در PoW تایید کننده ها (همان ماینرها) داده ای را که می خواهند اضافه کنند هش می کنند تا زمانی که راهکار مشخصی ایجاد کنند.
هش مجموعه ای از اعداد و حروف می باشد که وقتی داده را در تابع هش اجرا می کنید ایجاد می شود. اگر همان داده را دوباره در تابع هش اجرا کنید همان خروجی را بدست می آورید. با حتی یک تغییر جزیی هش کاملا متفاوتی بدست خواهد آمد.
با دیدن تابع خروجی نمی توان حدس زد که داده اولیه چه بوده است. این موضوع برای اثبات این که شما بخشی از داده را تا قبل از زمان مشخصی می شناختید بسیار موثر است. می توان داده هش شده را به شخصی داد و زمانی که داده اصلی در اختیارش قرار داده شود با اعمال آن در تابع هش می تواند از صحت داده اطمینان حاصل کند.
در PoW پروتکل شرایطی را برای ساخت بلاک معتبر دارد. به طور نمونه ممکن است بگوید فقط بلاکی که هش آن با 00 شروع می شود مورد تایید است. تنها راه برای ماینر که بتواند نمونه سازگار با آن ترکیب ایجاد کند ورود انبوه اطلاعات است (brute-force) . باید هربار پارامتری را در داده تغییر دهند تا خروجی متفاوتی تولید شود تا زمانی که به هش صحیح دست یابند.
در بلاکچین های اصلی بار این کار بسیار زیاد است. برای رقابت با سایر ماینرها به انباری از سخت افزارهای ویژه هش نیاز دارید (ASIC) تا شانس بیشتری برای تولید بلاک معتبر داشته باشید.
استیک شما برای استخراج٬ هزینه دستگاه ها و برق مورد نیاز آن ها می باشد. ASIC ها فقط برای یک هدف ساخته شده اند پس در دنیای خارج از ارزهای دیجیتال کاربردی ندارند. تنها راه شما برای بازیابی سرمایه اولیه استخراج کردن می باشد٬ که در ازای افزودن موفقیت آمیز یک بلاک به بلاکچین پاداش قابل توجهی ارایه می شود.
شبکه می خواهد بداند که شما بلاک معتبری را ایجاد کرده اید. حتی اگر تریلیون ها ترکیب را برای رسیدن به هش صحیح امتحان کرده باشید٬ لازم است داده شما را یک بار درون تابع اجرا کنند. اگر داده شما هش معتبری را ایجاد کند٬ پذیرفته می شود و شما پاداش را دریافت می کنید. در غیر اینصورت شبکه آن را رد می کند و زمان و برق مصرفی شما به هدر رفته است.
الگوریتم اثبات سهام: Proof of Stake (PoS)
در همان روزهای اولیه شروع کار بیت کوین٬ الگوریتم PoS به عنوان راهکار جایگزین برای PoW مطرح شد. در سیستم PoS مفهوم ماینر٬ سخت افزار مخصوص٬ یا مصرف زیاد انرژی وجود ندارد. همه آنچه مورد نیاز است یک کامپیوتر معمولی می باشد.
البته این کل ماجرا نیست. هنوز باید گزینه ای برای روی میز گذاشتن داشته باشید. ینجا نیازی به گذاشتن منابع خارجی (مثل سخت افزار یا برق) نمی باشد٬ اما یک منبع داخلی مورد نیاز است (ارز دیجیتال). قوانین برای هر پروتکل متفاوت است٬ اما عموما باید حداقل مقداری از آن ارز دیجیتال را برای اخذ صلاحیت استیکینگ نگهداری کنید.
برای این کار باید مقداری از ارز دیجیتال را در یک کیف پول قفل کنید (در طول فرآیند استیکینگ قابل جابجایی نمی باشند) با دیگر تاییدکننده ها بر سر اینکه کدام مبادلات در بلاک بعدی قرار می گیرند توافق می کنید. گویی شما بلاک بعدی انتخابی را حدس می زنید و پروتکل یکی را انتخاب می کند.
گر بلاک انتخابی شما انتخاب شود٬ بخشی از کارمزد را مبادله را بسته به میزان استیک خود دریافت می کنید. هرچه دارایی بیشتری را قفل کرده باشید بهره بیشتری خواهید برد. اما اگر بخواهید با پیشنهاد مبلادلات نامعتبر تقلب کنید بخشی (یا تمام) استیک خود را از دست می دهید. در نتیجه مکانیزم مشابهی با PoW داریم- رفتار صادقانه سودآورتر از رفتار غیرصادقانه می باشد.
عموما ارز تولیدی جدیدی به عنوان پاداش برای تایید کننده ها وجود ندارد. پس ارز بلاکچین باید به شیوه دیگری عرضه شود. این امر می تواند توسط عرضه اولیه (مثل ICO یا IEO ) یا با راه اندازی پروتکل PoW قبل از مهاجرت به PoS محق گردد.
امرزوه PoS خالص فقط در ارزهای دیجیتال کوچک تر راه اندازی می شوند. بنابراین هنوز خیلی واضح نیست که آیا می تواند جایگزین مناسبی برای PoW باشد٬ از آنجا که چیزی که در تئوری بررسی می شود با عمل بسیار متفاوت است.
از آنجا که PoS روی شبکه های با موجودی زیاد راه اندازی شده است سیستم وارد فرآیند تئوری بازی و محرک اقتصادی می شود. هر کس که بداند چگونه سیستم PoS را هک کند (مانند حمله ۵۱٪) ممکن است بخواهد این کار را بکند لذا تنها راه برای امکان سنجی آن در شبکه های فعال می باشد.
به زودی با راه اندازی شبکه اتریوم ۲ می توان PoS تست شده در مقیاس بزرگ را مشاهده نمود.
سخن مترجم: البته لازم به یادآوری است که در این راستا شبکه کاردانو پیشگام شد و نمونه کارآمد مهاجرت به PoS در مقیاس بزرگ را قبل از اتریوم ۲ به نمایش گذاشت.
سایر الگوریتم های اجماع
الگوریتم های PoW و PoS بیشترین نقد و بررسی را داشته اند. اما با اینحال انواع دیگری نیز با معایب و مزایای مربوطه وجود دارد. برخی ایز این نمونه ها از این قرارند:
- الگوریتم Delayed Proof of Work
- الگوریتم Leased Proof of Stake
- الگوریتم Proof of Burn
- الگوریتم Delegated Proof of Stake
- الگوریتم Hybrid PoW/PoS
- الگوریتم Proof of History
سخن پایانی
مکانیزم های دستیابی به اجماع از بخش های حیاتی عملکرد سیستم های توزیع شده می باشند. ده ای معتقد هستند که مهم ترین اختراع بیت کوین استفاده از اثبات کار برای امکان توافق کاربران روی مجموعه ای از حقایق می باشد.
الگوریتم های اجماع امروزه نه فقط روی سیستم های مالی کاربرد دارند٬ بلکه بلاکچین ها به توسعه دهنده ها اجازه می دهند که کدهای خود را در شبکه های توزیع شده اجرا کنند. آن ها امروزه جزء مهمی از تکنولوژی بلاکچین می باشند و در بلند مدت برای موجودیت شبکه ها بسیار حیاتی هستند.