مقدمه
الگوریتم اجماع مکانیسمی است که به کاربران یا ماشینها اجازه میدهد در یک موقعیت توزیعی به نحوی هماهنگ عمل کنند. باید اطمینان حاصل شود که تمام عوامل موجود در سیستم میتوانند در مورد یک منبع حقیقت واحد به توافق برسند، حتی اگر موجب ناکامی برخی عوامل شود. به عبارت دیگر، سیستم باید نسبت به خطا تحملپذیر باشد.
در تشکیلات متمرکز، موجودیت واحدی بر سیستم تسلط دارد. در بیشتر موارد، آنها میتوانند هر طور که میخواهند تغییراتی ایجاد کنند. سیستم حکمرانی پیچیدهای برای دستیابی به اجماع بین بسیاری از مدیران وجود ندارد.
اما در ساختار غیرمتمرکز، داستان کاملاً متفاوت است. فرض کنیم با یک پایگاه داده توزیعشده کار میکنیم – چگونه میتوانیم در مورد ورودیهایی که اضافه میشوند به توافق برسیم؟
شاید غلبه بر این چالش در محیطی که غریبهها به یکدیگر اعتماد ندارند، مهمترین پیشرفتی بود که راه را برای بلاکچین هموار کرد. در این مقاله، نگاهی خواهیم داشت به اینکه چگونه الگوریتمهای اجماع برای عملکرد ارزهای دیجیتال و دفتر کل توزیعشده از اهمیت حیاتی برخوردارند.
الگوریتمهای اجماع و ارز دیجیتال
در ارزهای رمزنگاریشده، موجودی کاربران در یک پایگاه داده -بلاک چین- ثبت میشود. ضروری است که همه (یا به عبارت دقیقتر، هر گره) رونوشت یکسانی از پایگاه داده در اختیار داشته باشند. در غیر این صورت، به زودی با اطلاعات متناقضی مواجه میشوید که کل هدف شبکه ارزهای دیجیتال را تضعیف میکند.
رمزنگاری کلید عمومی[1] تضمین میکند که کاربران نمیتوانند سکههای یکدیگر را خرج کنند. اما باز هم منبع حقیقتی ضرورت دارد که مشارکتکنندگان شبکه به آن تکیه کنند تا بتوانند تعیین کنند که آیا بودجه قبلاً خرج شده است یا خیر.
ساتوشی ناکاموتو، خالق بیتکوین، سیستم اثبات کار[2] را برای هماهنگسازی شرکتکنندگان پیشنهاد کرد. به زودی به نحوه عملکرد PoW خواهیم پرداخت. در این بخش به بحث درباره برخی ویژگیهای مشترک بسیاری از الگوریتمهای اجماع موجود میپردازیم.
اولاً، ما از کاربرانی که میخواهند قطعاتی را اضافه کنند (که آنها را اعتباردهنده[3] مینامیم) میخواهیم یک سهام ارائه دهند. سهام نوعی ارزش است که اعتباردهنده باید ارائه کند و مانع از رفتار غیر صادقانه در افراد میشود، زیرا در صورت تقلب، سهام از دست خواهد رفت. به عنوان مثال میتوان به قدرت محاسباتی، ارز دیجیتال یا حتی شهرت اشاره کرد.
چرا آنها به خود زحمت میدهند که منابعشان را به خطر بیندازند؟ خوب، پاداشی نیز وجود دارد که معمولاً شامل ارز رمزنگاریشده مطابق با پروتکلهای بومی است و از کارمزدهای پرداختشده توسط سایر کاربران، واحدهای ارز دیجیتال تازه تولید شده یا هر دو تشکیل شده است.
آخرین چیزی که نیاز داریم شفافیت است. باید بتوانیم تشخیص دهیم که کسی در حال خیانت است. در حالت ایدهآل، تولید قطعات برای افراد پرهزینه است، اما اعتبارسنجی همواره ارزان است که تضمین میکند اعتبارسنجیها توسط کاربران عادی کنترل میشوند.
انواع الگوریتم های اجماع
اثبات کار (PoW)
اثبات کار (PoW) پدرخوانده الگوریتمهای اجماع بلاکچین است که نخستین بار در بیتکوین پیادهسازی شد، اما به مفهوم واقعی از مدتها پیش وجود داشته است. در اثبات کار، اعتباردهندهها (که به آنها ماینر گفته میشود) دادههایی را که مایل به افزودن آنها تا زمان دستیابی به راهکاری خاص هستند، ترکیب (هش)[4] میکنند.
هش یک رشته به ظاهر تصادفی از حروف و اعداد است که هنگام اجرای دادهها از طریق یک تابع هش ایجاد میشود. اما اگر دوباره همان دادهها را از طریق آن اجرا کنید، با همان خروجی مواجه خواهید شد. با این حال، اگر حتی یکی از جزئیات را تغییر دهید، هش شما کاملاً متفاوت خواهد بود.
احتمالاً با نگاه به خروجی، نمیتوان گفت که چه اطلاعاتی به تابع وارد شده است. بنابراین برای اثبات این امر مفیدند که یک قطعه داده را قبل از زمان مشخصی میدانستید. میتوانید هش را به شخصی بدهید و وقتی بعداً دادهها را فاش کردید، آن شخص میتواند آن را از طریق تابع اجرا کند تا مطمئن حاصل شود که خروجی یکسان است.
در اثبات کار، پروتکل شرایطی را درباره اعتبار قطعه، تعیین میکند. برای مثال ممکن است بگوییم، فقط قطعهای که هش آن با 00 شروع میشود معتبر خواهد بود. تنها راه برای ماینر برای استخراج قطعهای که با این ترکیب مطابقت دارد، ورودیهای حاصل از روش جستجوی فراگیر[5] است که میتوانند پارامتری را در دادههای خود تغییر دهند تا برای هر حدس، نتیجهای متفاوت ایجاد کنند. این فرایند تا زمانی ادامه دارد که هش مناسب به دست آید.
ستون با بلاکچینهای اصلی، به طور باورنکردنی بالا است. برای رقابت با سایر ماینرها، به یک انبار پر از سختافزار هشینگ ویژه[6] (ASIC) نیاز دارید تا شانس تولید یک قطعه معتبر را داشته باشید.
سهم شما در هنگام استخراج، هزینه این ماشینها و برق مورد نیاز برای راهاندازی آنهاست. ASIC ها برای یک هدف ساخته شدهاند، بنابراین در برنامههای غیر از استخراج ارزهای دیجیتال کاربرد ندارند. تنها راه برای بازپرداخت سرمایه اولیه استخراج است که اگر قطعه جدیدی را با موفقیت به بلاکچین اضافه کنید، پاداش قابل توجهی به همراه خواهد داشت.
تأیید اینکه واقعاً قطعه مناسب را ایجاد کردهاید برای شبکه امری بیاهمیت است. حتی اگر تریلیونها ترکیب را برای به دست آوردن هش مناسب امتحان کرده باشید، فقط باید یک بار دادههای شما از طریق یک تابع اجرا میشود. اگر دادههایتان یک هش معتبر تولید کند، پذیرفته میشود و پاداشی دریافت خواهید کرد. در غیر این صورت، شبکه آن را رد میکند و زمان و برق را بیهوده هدر دادهاید.
[1] Public-key cryptography
[2] Proof of Work (PoW)
[3] validator
[4] hash
[5] brute-force inputs
[6] special hashing hardware (ASICs)
دیدگاهتان را بنویسید