تا به اینجا در مبحث زنجیرهبلوک یا بلاک چین با مفاهیم کلیدی آن یعنی دفترکل توزیعشده، رمزنگاری، اجماع و قرارداد هوشمند آشنا شدید، هدف از توسعه این فناوری یعنی انتقال ارزش را متوجه شدید و علت نامگذاری این فناوری را دانستید. در ادامه همین مبحث و در این نوشتار، اجماع و انواع آن بررسی میشود.
در نوشتار «بلاک چین چیست؟» دیدید که برای پاسخ به سوالاتی مانند «چه چیزی در زنجیرهبلوک ثبت شود؟» یا «چه کسی تراکنشها را ثبت کند؟»، از روشهای اجماع استفاده میشود. برای توضیح اجماع کمی باید درباره ساختار شبکههای مبتنی بر بلاک چین بدانید.
چرا از اجماع استفاده میشود؟
مهمترین اعضای شبکههای مبتنی بر زنجیرهبلوک، گرهها (Nodes) هستند. هر شخصی میتواند با نصب یک نرمافزار، گره این شبکه باشد. گرهها تراکنشهای تایید نشده را از بیرون شبکه دریافت و بین یکدیگر دستبهدست میکنند و پس از تایید شدن یک تراکنش (البته در قالب یک بلوک) آن را به کپی دفترکل خود میافزایند. همانطور که احتمالا متوجه شدید، از میان مراحل دریافت، تایید و ثبت تنها یک مرحله بر عهده گرهها نیست؛ «تایید». تایید تراکنشها چالشبرانگیزترین مرحله است؛ زیرا در این رابطه سوالاتی باید پاسخ داده شود:
چگونه میشود انگیزهای برای تاییدکنندگان ایجاد کرد که نسبت به تراکنشهای غلط بیتفاوت نباشند؟
چگونه میشود برای افراد انگیزهای ایجاد کرد تا در فرایندِ تایید شرکت کنند؟
از میان تاییدکنندگان نظر چه کسی پذیرفته شود؟
و ازایندست سوالات.
بیتکوین؛ اولین پاسخ مناسب!
اولین پاسخ مناسبی که به این سوالات داده شد، به بیتکوین و سازوکار اجماع آن یعنی اثباتِ کار (Proof of work) برمیگردد. در این روش اجماع که در پروتکل بیتکوین نیز از آن استفاده میشود، گرهها نظر کسی را میپذیرند که مسئلهای ریاضی- کامپیوتری را با توان پردازشی که خریداری کرده است، زودتر از دیگران، حل کند.
تاییدکنندگان تراکنشهای تاییدنشده را از گرهها دریافت میکنند. آنها را در قالب یک بلوک و در کنار یکدیگر میچینند. سپس با توان پردازشی سختافزارهای خود به حل مسئله با این بلوک میپردازند. هر تاییدکننده که سریعتر این مسئله را حل کند، به گرهها اعلام میکند. آنها بلوک او را به زنجیرهبلوک اضافه میکنند و دوباره این روند تکرار میشود.
درواقع با یافتن پاسخ مسئله، تاییدکننده اثبات میکند که برای شبکه کار کرده است که مسلما باید در قبال آن پاداش بگیرد. این پاداش در اغلب موارد از جنس توکن شبکه است. بدین ترتیب انگیزه تاییدکننده برای بیتفاوت نبودن به پایداری شبکه نیز تامین میشود. «اگر شبکه ناپایدار شود، پاداش تاییدکننده هم بیارزش میشود».
توکنی که به تاییدکننده منتخب در هر مرحله داده میشود، در همان لحظه ایجاد شده است و به دلیل شباهت به استخراج طلا، به این فرایند استخراج یا ماینینگ و به تاییدکننده استخراجکننده یا ماینر میگویند.
چرخه عمر یک تراکنش
بنا بر مطالب گفتهشده یکبار دیگر چرخه عمر یک تراکنش را مرور میکنیم. تراکنش توسط کاربر ایجاد و از طریق یک گره به شبکه ارسال میشود. گرهها یکی پس از دیگری تراکنش را دریافت میکنند و در اختیار استخراجکنندگان قرار میدهند. استخراجکنندگان چند تراکنش را در کنار یکدیگر قرار میدهند و یک بلوک میسازند. پسازآن استخراجکنندگان با بلوکی که ساختهاند، به حل مسئله میپردازند. هر کس که زودتر از دیگران مسئله را حل کند، بلوک خود را به گرهها ارسال میکند. گرهها بلوک موردنظر را به زنجیرهبلوک خود اضافه میکنند و دوباره این فرایند تکرار میشود. هربار اعضای شبکه برای ثبت بلوک به اجماع میرسند.
لازم به ذکر است، گرهها مختار هستند که بلوک ارسالی را به زنجیرهبلوک خود اضافه نکنند. به این معنی که اگر بلوک و تراکنشهای آن مورد تایید گره نباشد، میتواند آن را نپذیرد. حتی ممکن است گروهی از گرهها یک بلوک را نپذیرند. درحالیکه گروهی دیگر آن را قبول کرده باشند. بدینترتیب شبکه دوشاخه میشود. در این شرایط شاخه قویتر یعنی شاخهای که اعضای بیشتری آن را پذیرفته باشند، انتخاب میشود.
انواع روشهای اجماع
اثباتِ کار در حال حاضر پرکاربردترین سازوکار اجماع در شبکههای مبتنی بر زنجیرهبلوک است. اما سازوکارهای دیگری هم توسعه یافته است. برای مثال در سازوکار اثباتِ سهام، تاییدکننده بلوکها بر اساس مقدار توکنی که در اختیار دارد بههمراه برخی الگوریتمهای تصادفی انتخاب میشود.
مدل متداول دیگری از اجماع نیز وجود دارد که بسیار شبیه به رایگیری است. به این روش تحمل خطای بیزانس گفته میشود. در این روش که معمولا گرهها یا اعضای اصلی شبکه کمتعداد هستند، رای اکثریت (معمولا دوسوم آراء) منجر به ثبت یک تراکنش میشود. شبکه ققنوس از یکی از انواع همین الگوریتم اجماع استفاده میکند.
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.