مقدمه
الگوریتم اجماع چیست و چه ارتباطی با ارزهای دیجیتال دارد؟ الگوریتم اجماع مکانیزمی است که به کاربران یا ماشینها اجازه میدهد در یک محیط توزیع شده، با یکدیگر و با خود بلاک چین هماهنگ شوند. باید اطمینان حاصل شود که همه عوامل در سیستم میتوانند در مورد یک موضوع خاص به توافق برسند، حتی اگر آن عامل منجر به شکست شود! به عبارت دیگر، سیستم باید خطاپذیر باشد.
ما در این مقاله به بررسی ماهیت الگوریتم اجماع، انواع این الگوریتم و کاربرد آن، همچنین ارتباط آن با ارزهای دیجیتال میپردازیم پس با ما همراه باشید.
الگوریتمهای اجماع و ارزهای دیجیتال
در ارزهای دیجیتال، موجودی کاربران در یک پایگاه داده یا همان بلاک چین، ثبت میشود. ضروری است که همه (یا به شکل دقیقتر، هر گره) یک کپی یکسان از این پایگاه داده نگهداری کنند. در غیر این صورت، پیوسته کاربران با اطلاعات متناقضی مواجه میشوند که کل هدف شبکه ارزهای دیجیتال را تضعیف میکند.
کلید عمومی افراد، با فرآیند رمزنگاری تضمین میکند که کاربران نمیتوانند سکههای یکدیگر را خرج کنند. اما هنوز باید یک منبع موثق وجود داشته باشد که مشارکتکنندگان شبکه به آن تکیه کنند و این منبع تعیین کند که آیا داراییها قبلا خرج شده است یا خیر. در حوزه ارزهای دیجیتال از این مورد با عنوان دوباره خرج کردن (Double Spending) یاد میشود.
ساتوشی ناکاموتو، خالق بیت کوین، سیستم اثبات کار (PoW) را برای هماهنگ کردن شرکتکنندگان پیشنهاد کرد. ما در ادامه به نحوه عملکرد این سیستم و سایر سیستمها خواهیم پرداخت، اما پیش از آن تفاوت سیستم متمرکز و غیر متمرکز و برخی از ویژگیهای مشترک بسیاری از الگوریتمهای اجماع موجود را بررسی میکنیم.
سیستم متمرکز در مقابل سیستم غیر متمرکز
در یک سیستم متمرکز، یک موجودیت واحد بر کل سیستم نظارت داشته و آن را کنترل میکند. در بیشتر موارد، آنها میتوانند هر طور که میخواهند تغییراتی را در سیستم ایجاد کنند. همچنین سیستم حاکمیتی پیچیدهای برای دستیابی به اجماع بین بسیاری از مدیران وجود ندارد.
اما در یک ساختار غیر متمرکز، داستان کاملا متفاوت است. در یک ساختار غیر متمرکز، تصمیمات طبق توافق اکثریت کاربران انجام میگیرد. حال سوال اصلی این است که در یک پایگاه داده، چگونه میتوان در مورد تصمیمات یا ورودیهای جدیدی که به این سیستم اضافه میشوند به توافق رسید؟ اینجاست که الگوریتم اجماع کاربرد پیدا میکند.
غلبه بر این چالش در محیطی که کاربران با یکدیگر غریبه هستند و به یکدیگر اعتماد ندارند، شاید مهمترین پیشرفتی بود که راه را برای بلاک چین هموار کرد.
واقعیت الگوریتم اجماع چیست؟
پیش از هر چیز، ما کاربرانی را در بلاک چین نیاز داریم که به زنجیره، بلاک جدید اضافه کنند که به این افراد اعتباردهنده یا نود ولیدیتور میگوییم. سپس درخواست شبکه از اعتباردهندهها این است که در ازای کار در شبکه، سهامی را به عنوان وثیقه در آن قرار دهند تا در صورتی که این افراد کار خود را صادقانه انجام ارائه ندادند، بتوان وثیقهی آنها را جلو گرفت. این ریسک نوعی ارزش در شبکه است که اعتباردهنده را از رفتار غیر صادقانه منصرف میکند. اگر ولیدیتور تقلب کند، سهام خود را از دست خواهد داد. این ارزش به عنوان مثال میتوان قدرت محاسباتی، ارز دیجیتال یا حتی شهرت فرد باشد.
سوال بعدی این است که چرا افراد باید منابع و دارایی خود را در معرض خطر قرار دهند؟ پاسخ ساده است، در ازای این ریسک، جایزه دریافت خواهند کرد. این جایزه معمولا ارز دیجیتالی بومی پروتکل است و از کارمزدهای پرداخت شده توسط سایر کاربران، واحدهای ارز دیجیتال تازه تولید شده یا هر دو تشکیل میشود.
آخرین چیزی که ما نیاز داریم شفافیت است. ما باید بتوانیم تشخیص دهیم که کسی در حال فعالیت صادقانه است یا خیر. در حالت ایدهآل، تولید بلوکها برای افراد هزینهبر است، اما اعتبارسنجی این بلاکها برای هر کسی ارزان است. این مسئله تضمین میکند که اعتبارسنجیها توسط کاربران عادی نیز کنترل میشوند.
کاربرد الگوریتم اجماع چیست؟
همان طور که عنوان شد اولین کاربرد الگوریتم اجماع، هماهنگ کردن تمامی کاربران شبکه است. اما در کنار این، موارد دیگری نیز وجود دارد که باید آنها را هم در نظر بگیریم:
- تایید تراکنشهای شبکه و بررسی صلاحیت آنها
- انتخاب گرهها برای کنترل و مدیریت دفتر کل شبکه
- تضمین یک دستسازی اطلاعات شبکه و بخشهای مختلف آن
برای درک بهتر این موارد، به شکل خلاصه فرآیند ایجاد یک بلاک در بلاک چینها را بررسی میکنیم. در یک واحد بلاک، جزئیاتی مانند اطلاعات فرستنده و گیرنده و میزان دارایی جابهجا شده و هش بلاک قبلی و هش بلاک فعلی ذخیره میشود. حال یک کاربر تراکنشی را به شبکه میفرستد تا گرهها، آن را بررسی کنند. اگر این تراکنش با اطلاعات شبکه و تراکنشهای قبلی سازگار باشد، گرهها آن را تایید میکنند. سپس مقدار مشخصی از تراکنشها در کنار یکدیگر، بلاکها را ایجاد میکنند. مکانیزم اجماع تمام این مسیر را تسهیل میکند، به این شکل که سیستمی برای توافق بین گرهها ایجاد ارائه میدهد.
انواع روشهای الگوریتم اجماع در بلاک چین
ایجاد یک توافق بین اکثر افراد، کار چندان سادهای نیست. به همین دلیل روشهای مختلفی برای اجماع به وجود آمده است که انواع آن عبارتند از:
اجماع اثبات کار (Proof of Work)، اجماع اثبات سهام (Proof of Stake)، الگوریتم تحمل خطای بیزانس (Practical Byzantine Fault Tolerance)، اجماع اثبات سهام وکالتی (Delegated Proof of Stake)، الگوریتم اجماع سوزاندن (Proof of Burn)، اجماع اثبات اعتبار (Proof of Authority)، اجماع اثبات وزن (Proof of Weight)، اجماع اثبات شهرت (Proof of Reputation)، الگوریتم اجماع فضا-زمان (Proof of Spacetime)، اجماع اثبات فعالیت (Proof of Activity)، الگوریتم گراف جهتدار غیر مدور (Directed Acyclic Graphs)، اثبات زمان سپری شده (Proof of Elapsed Time)، اجماع اثبات تاریخچه (Proof of History)، اثبات قابلیت همکاری (Proof of Interoperability)، اجماع اثبات انطباق (Proof of Conformance)، اجماع اثبات اهمیت (Proof of Importance)، اجماع اثبات سهام اجاره شده (Leased Proof of Stake)، اجماع اثبات ظرفیت (Proof of Capacity)، اجماع اثبات کار با تاخیر (Delayed Proof of Work) و غیره.
بررسی دقیق این موارد از حوصله این مقاله خارج است. در نتیجه ما در ادامه فقط به بررسی 2 مورد اصلی یعنی PoW و PoS میپردازیم و در مقالهای مجزا، موارد بالا را شرح خواهیم داد.
الگوریتم اجماع اثبات کار یا Proof of Work (PoW)
الگوریتم اجماع اثبات کار (PoW)، پدرخوانده الگوریتمهای اجماع بلاک چین است. این نوع از اجماع، اولین بار در بیت کوین پیادهسازی شد، گرچه مفهوم واقعی آن از قبل وجود داشته است. در PoW، اعتباردهندهها (که به آنها استخراجکننده گفته میشود) دادهها را هش میکنند. این دادهها در واقع همان اطلاعاتی هستند که اعتباردهنده میخواهد به شبکه اضافه کند.
هش (Hash)، یک رشته به ظاهر تصادفی از حروف و اعداد است که هنگام اجرای دادهها از طریق یک تابع هش ایجاد میشود. نکته مهم در رابطه با هش این است که اگر دوباره همان دادهها را از طریق آن اجرا کنید، همیشه با همان خروجی مواجه خواهید شد. با این حال، حتی اگر یکی از جزئیات خیلی کوچک را تغییر دهید، هش نهایی شما کاملا متفاوت خواهد بود.
با نگاه کردن به خروجی، احتمالاً نمیتوانید بگویید که چه اطلاعاتی به عملگر وارد شده است. همچنین هش با زمان در ارتباط است. زیرا زمان ثبت هر بلاک (که اطلاعات آن هش شدهاند) مشخص است. بنابراین هشها برای اثبات اینکه شما یک قطعه داده را قبل از زمان مشخصی میدانستید، مفید هستند. میتوانید هش آن را به شخص دیگری بدهید و وقتی بعدها دادههای خود را ارائه کردید، آن شخص میتواند آن هش را از طریق تابع اجرا کند تا مطمئن شود خروجی یکسان است.
در Proof of Work، پروتکل شرایطی را برای موارد معتبرکنندهی یک بلوک، تعیین میکند. به عنوان مثال، ممکن است بگوییم، فقط بلوکی که هش آن با 00 شروع میشود معتبر خواهد بود. از طرف دیگر، تنها راه شما برای بازگرداندن سرمایه اولیه، استخراج است که اگر با موفقیت یک بلوک جدید به بلاک چین اضافه کنید، پاداش قابل توجهی به همراه خواهد داشت.
تأیید اینکه شما واقعاً بلوک مناسب را ایجاد کردهاید، برای شبکه امری بی اهمیت است. حتی اگر تریلیونها ترکیب را برای بدست آوردن هش مناسب امتحان کرده باشید، این ترکیبها فقط باید یک بار دادههای شما را از طریق یک تابع به درستی اجرا کنند. اگر دادههای شما یک هش معتبر تولید کند، پذیرفته میشود و پاداشی دریافت خواهید کرد. در غیر این صورت، شبکه آن را رد میکند و شما زمان و برق را بیهوده تلف کردهاید.
الگوریتم اجماع اثبات سهام یا Proof of Stake (PoS)
الگوریتم اجماع اثبات سهام (PoS) در روزهای اولیهی بیت کوین به عنوان جایگزینی برای اثبات کار پیشنهاد شد. در یک سیستم PoS، هیچ مفهومی از ماینرها، سختافزارهای تخصصی یا مصرف انبوه انرژی وجود ندارد. تنها چیزی که نیاز دارید، یک کامپیوتر معمولی است.
البته نه همه چیز! هنوز باید پیشنیازهایی را در این سیستم قرار دهید. در اثبات سهام، شما یک منبع خارجی (مانند برق یا سختافزار) ارائه نمیکنید، بلکه یک منبع داخلی، یعنی ارز دیجیتالی را ارائه میکنید. قوانین این مدل از اجماع در هر پروتکل متفاوت است، اما به طور کلی یک مقدار حداقل از ارز دیجیتال آن پروتکل وجود دارد که برای واجد شرایط بودن برای سهامداری یا استیک (Stake) باید آن را در کیف پول دیجیتال خود یا داخل خود پروتکل نگهداری کنید.
تا اینجای کار، مسیر کلی کمی مشخص شد. یعنی شما باید وجوه خود را در یک کیف پول دیجیتال قفل کنید (در حین فرآیند سهامداری یا استیکینگ، نمیتوان داراییهای دیجیتال را جابهجا کرد). شما معمولاً در مورد اینکه چه تراکنشهایی در بلوک بعدی انجام میشود، با اعتبارسنجهای دیگر موافقت خواهید کرد. به زبان ساده، شما روی بلاکی که احتمال انتخاب شدن دارد، ریسک میکنید و پروتکل یکی را انتخاب میکند.
حال اگر بلوک شما انتخاب شود، بسته به سهم خود، نسبتی از کارمزد تراکنش را دریافت خواهید کرد. هر چه سرمایههای بیشتری را قفل کرده باشید، درآمد بیشتر به دست خواهید آورد. اما اگر با پیشنهاد معاملات نامعتبر سعی کنید تقلبی انجام دهید، بخشی از سهام (یا تمام سهام) خود را از دست خواهید داد. بنابراین، مکانیزم اثبات سهام، الگوریتمی مشابهی با PoW دارد؛ صادقانه عمل کردن سود بیشتری نسبت به رفتار غیر صادقانه دارد.
در این روش به طور کلی، سکههای تازه ایجاد شده به عنوان بخشی از پاداش اعتبارسنجی در نظر گرفته نمیشود. بنابراین، ارز اصلی بلاک چین باید به روش دیگری صادر و توزیع شود. این مسئله را میتوان از طریق توزیع اولیه سکه (یعنی یک ICO یا IEO) و یا با راهاندازی اولیه پروتکل با سیستم PoW و سپس انتقال به PoS انجام داد.
تا به امروز، سیستم اجماع اثبات سهام خالص فقط در ارزهای دیجیتال کوچکتر به کار گرفته شده است. بنابراین، مشخص نیست که آیا میتواند جایگزین مناسبی برای PoW باشد یا خیر. شاید از نظر تئوری، PoS کاملا درست و مفید به نظر برسد، اما در عمل ممکن است چالشهای زیادی داشته باشد.
هنگامی که PoS در شبکهای با ارزش زیاد راهاندازی شود، این سیستم و شبکه، به میدان تقابل مشوقهای مالی و استراتژیهای گوناگون تبدیل میشود. ما به زودی شاهد آزمایش اجماع اثبات PoS در مقیاس بزرگ خواهیم بود. این اتفاق در ارتقا شبکه اتریوم به اتریوم 2.0 پیاده سازی خواهد شد. در این ارتقا که از آن با عنوان ارتقای بزرگ (The Merge) یاد میشود، قرار است کل شبکه اتریم از الگوریتم اجماع اثبات کار به اثبات سهم تبدیل شود. شاید بتوان بسیاری از شک و شبههای آینده در مورد یک سیستم PoS را بعد از این ارتقا پاسخ داد.
جمعبندی
مکانیسمهای دستیابی به اجماع، برای عملکرد سیستمهای توزیع شده حیاتی هستند. بسیاری بر این باورند که بزرگترین نوآوری در بیت کوین استفاده از Proof of Work برای قادر ساختن کاربران به توافق بر سر مجموعهای از حقایق مشترک بوده است.
امروزه الگوریتمهای اجماع نه تنها زیربنای سیستمهای پول دیجیتال، بلکه زنجیرههای بلوکی (Blockchain) هستند که به توسعهدهندگان اجازه میدهند کدهای خود را در یک شبکه توزیع شده اجرا کنند. آنها اکنون سنگ بنای فناوری بلاک چین هستند و برای دوام طولانی مدت شبکههای مختلف، موجود حیاتی و با اهمیت به حساب میآیند.
در بین همه الگوریتمهای اجماع، اثبات کار (PoW) پیشنهاد غالب باقی میماند که هنوز جایگزینی قابل اعتمادتر و مطمئنتر برای آن ارائه نشده است. با این حال، تحقیقات و توسعه عظیمی برای انتخاب جایگزین PoW وجود دارد و احتمالا در سالهای آینده شاهد ظهور تعداد بیشتری از آنها خواهیم بود.