اهمیت اجماع در سیستم های غیر متمرکز (بخش چهارم)

 “پروتکل اثبات سرمایه

روال استخراج سکه و رسیدن به توافق و اجماع همگانی در روال کنترل شبکه بیت کوین بسیار انرژی بر است چرا که در سیستم مذکور تمامی ماینر های درون شبکه طی رقابتی مشغول انجام عملی مشابه می شوند که تنها یکی از آنها موفق به دریافت سکه های جدید شبکه یا حاصل استخراج می شود.

طی این پروسه به میزان بسیار زیاد الکتریسیته مصرف می شود که عملاً تنها الکتریسیته مصرف شده توسط ماینر برنده به هدر نرفته است.

پروتکل اجماع اثبات کار یا Proof of Stake برای از بین بردن نیاز به پردازش بسیار زیاد در ماینر ها و در نتیجه هدر رفت الکتریسیته به موضوع توافق و اجماع طور دیگری نگریست.

اثبات کار معتقد است فردی که بیشترین میزان سرمایه از سکه مورد استخراج در دست داشته باشد یا به مدت زمان بیشتری میزان مشخصی از سکه را دارا باشد کمترین انگیزه برای ضربه زدن به سیستم را خواهد داشت چرا که با آسیب رسیدن به شبکه و کم شدن قیمت سکه بیشترین ضرر را فردی خواهد دید که به میزان بیشتری سکه اندوخته بوده است.

Btc Clec - اهمیت اجماع در سیستم های غیر متمرکز (بخش چهارم)

واژه Stake برگرفته از ادبیات شرط بندی است که در آن میزان آورده افراد به شرط بندی که می توانست از انوع کارت بازی باشد یا شرط بندی روی اسب های مسابقه Stake نامیده می شود.

این ایده ابتدا در اوایل سال ۲۰۱۱ در bitcointalk مورد بحث قرار گرفت و به صورت تکمیل شده در آگوست ۲۰۱۲ توسط Sunny King و Scott Nadal در مقاله ای مطرح گردید.

در مقاله مذکور که برای بهبود مسئله مصرف انرژی شبکه بیت کوین پایه ریزی شده بود از تلفیقی از اثبات کار و اثبات سرمایه بهره برده شده است.

در این مقاله مفهوم Coin Age مورد استفاده قرار گرفته، مفهوم Coin Age  در سیستم بیت کوین برای اولویت بندی تراکنش ها مورد استفاده قرار گرفته است اگرچه در مدل امنیتی بیت کویت خیلی روی آن حسابی باز نشد در سیستم اثبات سرمایه Coin Age به میزان مدت زمان نگهداری سکه ها توسط افراد گفته می شود.

 به عنوان مثال اگر فرد دوم از فرد اول میزان ۱۰ سکه را دریافت کند و به مدت ۹۰ روز آنها را خرج نکند به میزان ۹۰۰ سکه-روز اعتبار برای خود خواهد اندوخت و در زمان خرج کردن این مبلغ میزان اعتبار ۹۰۰ سکه-روز وی نیز خرج خواهد شد و از بین خواهد رفت. برای ایجاد امکان محاسبه این اعتبار در هر تراکنش مهر زمانی یا Time Stamp گنجانده می شود.

تولید بلوک های اطلاعات در مقاله مذکور، تلفیقی از روال اثبات کار و اثبات سرمایه توصیف شده است. در هر بلوک اطلاعات بخشی همتراز مفهوم Coinbase در بیت کوین وجود دارد که طی آن تراکنش پدید آورنده بلوک جدید بیت کوین های استخراج شده را به حساب خود واریز می کند و در روال اثبات کار این مفهوم Coinstake نام گذاری شده است.

در زمانی که تولید کننده بلوک جدید که در واقع دارای بیشترین میزان اعتبار Coin Age بوده در بخش Coinstake مبلغ جایزه را به حساب خود واریز می کند، اعتبار خود را نیز مصرف می نماید.

pos Elec - اهمیت اجماع در سیستم های غیر متمرکز (بخش چهارم)

اولین بخش هر Coinstake  به Kernel معروف است که باید شامل شرایط مشخص شده در Hash Target شبکه باشد درست همانند روال اثبات کار در بیت کوین به صورت اتفاقی صورت خواهد گرفت و نیاز به پردازش دارد با این تفاوت که جستجو برای حل پازل در محدوده عددی کوچکتری صورت می گیرد و میزان پردازش قابل توجهی برای این کار نیاز ندارد.

Target Hash در تراکنش های اثبات سرمایه معرفی شده بر اساس Coin Age ایجاد می شود و برای هر تراکنش به صورت اختصاصی محاسبه می گردد برخلاف سیستم اثبات کار بیت کوین که یک روال کلی برای تمامی ماینر ها به کار گرفته می شد درنتیجه هرچه میزان Coin Age استفاده شده در Kernel بیشتر باشد رسیدن به Target Hash برای ماینر آسان تر خواهد بود. در نتیجه میزان زمان صرف شده در تولید بلوک برای ماینری که از Coin Age با مقدار ۱۰۰ در کرنل استفاده کرده تقریبا دو برابر فردی است که با Coin Age  با مقدار ۲۰۰ استفاده نموده است.

در زمان رخداد فورک برای تشخیص زنجیره اصلی بر خلاف بیت کوین که میزان کار صرف شده در زنجیره مورد قضاوت قرار می گرفت در این سیستم پیشنهادی میزان Coin Age استفاده شده در زنجیره ها مورد قیاس خواهند بود و زنجیره ای به عنوان زنجیره اصلی شناخته خواهد شد که بیشرین میزان Coin Age را در مجموع دارا باشد.

در بررسی امنیتی سیستم و اخصاً در مفهوم حمله ۵۱% روال شبکه بیت کوین که اگر فردی قادر به کنترل ۵۱% توان پردازشی شبکه باشد قادر خواهد بود اجماع مورد نیازش را به شبکه القاء کند، نویسنده های این مقاله معتقد هستند صاحب شدن ۵۱% Stake درون شبکه از کنترل ۵۱% قدرت پردازش هزینه بر تر خواهد بود و علاوه بر این اعتبار Coin Age فرد حمله کننده در زمان حمله استفاده خواهد شد و این امر به سختی این کار خواهد افزود.

اما برای اجرا و به کار گیری اثبات سرمایه به صورت خالص و نه با استفاده از مفاهیم تکمیلی چالش هایی وجود دارد:

  • توزیع : با توجه به اینکه سکه های جدید به دارندگان سکه های قدیمی در روال استخراج اهدا می شود چگونه باید توزیع اولیه را انجام داد؟
  • انحصار: با توجه به اینکه دارندگان سکه به میزان بیشتر شانس دریافت سکه های جدید را دارند خطر ایجاد انحصار در شبکه برای دارندگان سکه های زیاد وجود خواهد داشت.
  • حمله ۵۱ درصدی : ایجاد خطر ۵۱% با داشتن ۵۱% دارایی ها اگرچه سخت تر از شبکه بیت کوین است ولی کماکان از بین نرفته است.
  • خطر Nothing at Stake (NoS) : در این روال، تولید بلوک جدید توسط ماینر با دارایی بیشتر و شرایط خاص صورت می گیرد و امکان دارد دو ماینر با شرایط مشابه ایجاد فورک نمایند. با توجه به اینکه تولید بلوک در این روال هزینه ای برای ماینر ها ندارد، در زمان ایجاد فورک در شبکه اگر ۹۹% ماینر ها به دلایل ترجیح امنیت داراییشان در هر دو فورک مشغول استخراج شوند و در هر دو زنجیره اطلاعات را ثبت کنند احتمال ایجاد خطر Double Spend یا خرج مجدد دارایی وجود خواهد داشت، به این صورت که آن ۱% باقی مانده در یک زنجیره پرداخت پرداخت انجام دهند ولی زنجیره دوم را تایید نمایند که هزینه در آن انجام نشده.

برای حل مشکلات لیست بالا تلاش های مختلفی در اجرای این پروتکل انجام شد به عنوان مثال PeerCoin(PPC)  که اولین سکه ای بود که از پروتکل اثبات کار همزمان با اثبات سرمایه استفاده کرد به صورت زیر به مشکلات فوق رسیدگی کرد:

  • توزیع : برای فاز توزیع اولیه از اثبات کار با توزیع کاهشی استفاده شد.
  • انحصار: مشکل ایجاد انحصار در شبکه با توجه به بکارگیری مفهوم Coin Age برطرف شد.
  • حمله ۵۱ درصدی : با توجه به هزینه بسیار هنگفت اجرای این حمله PPC معتقد است چنین اتفاقی بسیار احتمال ضعیفی دارد.
  • خطر Nothing at Stake (NoS) : در ابتدا با اینکه خطر رخداد این اتفاق کم در نظر گرفته شده، از checkpoint هایی برای ذخیره اطلاعات استفاده شده که در آن اطلاعات به صورت دوره ای قطعی و غیر قابل تغییر می شوند ولی با پخته شدن این شبکه احتمال حذف آن نیز می رود.

تلاش دوم برای استفاده از اثبات سرمایه توسط Blackcoin در سال ۲۰۱۳ بود. Pavel Vasin خالق این سکه معتقد بود مفهوم Coin Age از طرفی خطر رخداد حمله ۵۱% را بالاتر برده و از سویی دیگر نگهداری دراز مدت سکه ها انگیزه کاربران را از آمدن به سوی این سکه کم می کند درحالی که افراد مالک سکه ها با استفاده نکردن سکه هایشان برای ۹۰ روز به جهت بالابردن شانسشان آفلاین می مانند شبکه را نا امن تر می کنند و با توجه به دلایل فوق از استفاده از مفهوم Coin Age خود داری نمود. این سکه از روال استخراج و ماینینگ بهره نمی برد به همین دلیل از بخش اثبات کار در Kernel تراکنش ها نیز استفاده نکرد. برای حل مشکلات چهار گانه بیان شده تلاش های زیر انجام شد:

  • توزیع : فاز اولیه توزیع سکه ها با اثبات کار موقت انجام شد.
  • انحصار: با توجه به نوع توزیع اولیه این مشکل وجود نداشت.
  • حمله ۵۱ درصدی : با توجه به هزینه بسیار هنگفت اجرای این حمله احتمال آن بسیارضعیف در نظر گرفته شد.
  • خطر Nothing at Stake (NoS) : با اینکه خطر رخداد این اتفاق کم در نظر گرفته شده است ولی از checkpoint برای جلوگیری از ایجاد فورک استفاده شد.

شبکه اتریوم که ابتدا به امر با روال اثبات کار مشغول فعالیت شد در حال آماده سازی شبکه برای استفاده از اجماع POS خود است و با توجه به اینکه مدت زیادی از عمرش گذشته اکثر مشکلات بیان شده را نخواهد داشت ولی برای حل مشکل Nothing at Stake تایید کنندگان خاطی جریمه خواهند شد و این کار دیگر برایشان منطقی نخواهد بود.

pos - اهمیت اجماع در سیستم های غیر متمرکز (بخش چهارم)
مجتبی عنایتی