اتریومبلاکچینتحلیل بلاکچینمقالات تحلیلی

proof of stake یا گواه اثبات سهام چیست؟

لایه هماهنگی یا توافق جمعی (consensus) در هر سیستمِ مبتنی بر زنجیره بلاک یا همان بلاکچین، یکی از مهمترین لایه‌ها است. به رغم وجود این احتمال که اعضایی در سیستم وجود خواهند داشت که قابل اعتماد نیستند و عمدا یا سهوا باعث ایجاد مشکل در روند اضافه شدن تراکنش ها به سیستم خواهند شد، سیستم باید قابل اعتماد بماند. این لایه قسمتی ست که با وجود اینگونه مسائل، باعث می شود بتوان به سیستم اعتماد کرد.

در این مقاله که بخش دوم از این سری مقاله‌ها است،  قصد داریم  گواه-اثبات-سهام  یا همان proof-of-stake را به زبان ساده توضیح دهیم.

گواه-اثبات-سهام چیست

ابتدا توضیحی رسمی از گواه اثبات سهام ارائه می کنیم سپس سعی می کنیم مواردی که ناآشناتر به نظر می رسند را توضیح دهیم.

گواه اثبات سهام الگوریتمی برای رسیدن به توافق جمعی در یک سیستم پولی مبتنی بر بلاکچین (cryptocurrency) است که روشی متفاوت از گواه اثبات کار (Proof of work) در پیش می گیرد. در این سیستم، انتخاب سازنده بلاک بعد کاملا تصادفی -مانند(POW)- نیست و با اضافه شدن پارامترهایی سیستم از حالت کاملا تصادفی خارج می شود. پارامتر‌های معرفی شده با الگوریتم جدید، باعث ایجاد رابطه مستقیم بین “شانس یک فرد برای موفقیت در پیدا کردن جواب معمای ریاضیاتی برای ایجاد بلاک” و میزان “پولی که فرد در سیستم دارد” می شود. ساده شده این پاراگراف را در دو جمله خلاصه زیر می توانید ببینید:

در گواه اثبات کار هر چه توان محاسباتی بیشتری داشته باشید، شانس موفقیت بیشتری برای ایجاد بلاک دارید یعنی استخراج کننده ای موفق تر است که کامپیوتر های قوی‌تر داشته باشد. در سیستم گواه اثبات سهام هرچه پول بیشتری در سیستم  داشته باشید شانس بیشتری برای ایجاد بلاک دارید.
نکته: در سیستم گواه اثبات اثبات سهام استخراج کنندگان دیگر وجود ندارند و گره هایی که مشغول اعتبار سنجی و تولید بلاک های جدید هستند را سازنده بلاک می نامند.

باید به این امر توجه داشته باشیم که معمولا در سیستم های POS (گواه اثبات سهام) با ایجاد بلاک جدید پول جدیدی ایجاد نمی شود و معمولا همه پول‌ها از ابتدا ایجاد شده  و میزان آنها ثابت است. ‏‏‎(تلاش هایی برای تغییر این سیستم شده است) در نتیجه سازندگان بلاک( معادل ماینر ها در POW)  بر هزینه ای که بابت تراکنش‌ها پرداخت می شود، به عنوان منبع درآمد تکیه خواهند کرد.

یکی از مشکلات اساسی سیستم‌های بر پایه گواه اثبات کار نیاز زیاد به منابع پردازشی برای ایجاد بلاک به شکل امن در سیستم است. مثلا تخمین زده میشود که شبکه بیتکوین در حال حاضر ۱۱/۸۶ ترا وات (در حد کل کشور بوسنی) انرژی مصرف می کند.

با این اوصاف بیاید نگاهی به ساده شده الگوریتم گواه اثبات سهام بیاندازیم.
برای اینکه یک نفر بتواند وارد گردونه افراد سازنده بلاک شود باید توانایی محاسباتی داشته باشد که تاثیر چندانی در شانس موفقیت ندارد و فقط برای انجام پردازش های ساده سیستم، مثل جمع کردن و اعتبار سنجی تراکنش ها استفاده می شود.  همینطور برای اینکه اعداد مربوط به  فرمول را محاسبه کند نیاز به داشتن پول یا سهام (عددی محاسبه شده از پول در گردش یا در حالت ایستای فرد یا هر فرمول وابسته دیگر) در سیستم است. در ادامه ما الگوریتم استفاده شده در Nxt را توضیح می دهیم که البته 
قبل از آن باید با چند مفهوم اولیه آشنا شویم.

مقدار هدف پایه ای (Base Target Value)

 عددی  که با فرمولی خاص از بلاک قبلی بدست می‌آید. دلیل وجود این عدد تنظیم زمان ایجاد بلاک در حدودی خاص و تعیین شده از طرف پروتکل است. مثلا در Nxt حدود ۶۰ ثانیه. 

مقدار هدف (Target Value)

مقدار هدف (که هدف فردی است) یک عدد وابسته به حساب کاربر است. برای محاسبه این عدد دو پارامتر مشترک برای همه شرکت کنندگان و یک پارامتر مختص هر فرد استفاده می شود که به شرح ذیل است:

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

T = Tb * S * Be
(مقدار هدف جدید) is the new target value
(مقدار هدف پایه ای) Tb is the base target value
(تعداد ثانیه های گذشته از آخرین بلاک) S is the time since the last block, in seconds
(موجودی موثر حساب) Be is the effective balance of the account

ساخت بلاک

الگوریتم ساختن بلاک در سیستم بدین صورت است:

  1.  امضا‌ی ساخت بلاک قبلی را در کنار کلید عمومی خود می گذارید و حاصل را هش می کنید
  2.  عدد هدف را برای حساب خود در زمان فعلی محاسبه کنید
  3.  ۸ بایت اول هش بدست آمده را با مقدار عدد هدف مقایسه کنید، اگر کوچکتر نبود به مرحله ۲ برمی گردید
  4.  ۲۵۵ تا از تراکنش‌های تایید نشده را جمع کنید و یک بلاک جدید بسازید و با همه اطلاعات دیگر برای همه کسانی که میشناسید بفرستید.
  5.  پایان

مهمترین بخش این سیستم و سیستم های مشابه ایجاد رابطه بین موجودی حساب کاربر،  و شانس او برای امکان ایجاد بلاک بعد است. وجود فاکتور زمان در فرمول برای تضمین ایجاد بلاک است و طولانی شدن زمان، اجازه ایجاد بلاک را نمی‌دهد.

این روش چه مشکلاتی را بر طرف می کند
  1. با انتقال دادن تضمین امنیت شبکه از انرژی مصرف شده به پول و ارزشی که در شبکه وجود دارد حمله ۵۱ درصدی یا حملات مشابه از لحاظ فنی سخت تر می شوند و جلوگیری از آن ها آسان تر خواهد بود. در صورت وجود چنین حمله هایی و در بدترین حالت، شبکه توسط هاردفورک به حالت قبلی برمی گردد.
  2.  کاهش مصرف انرژی شبکه و نیاز شبکه به دستگاه ها و سیستم های بزرگ،  آسیب کمتری به محیط زیست وارد می کند و باعث هدر رفتن منابع نمی شود.
  3.  از لحاظ تئوری بازی ها (Game theory) کسی که قصد حمله به شبکه دارد چون نیازمند داشتن مقدار زیاد پول در شبکه است انگیزه پایین و هزینه بسیار بالا برای ایجاد آسیب به شبکه دارد. در مقابل مثلا در سیستم های گواه اثبات کار یک نیروی مهاجم که توانایی محاسباتی بیشتر از نیمی از شبکه را دارد با هزینه فقط انرژی ( دستگاه‌ها همچنان قابل استفاده هستند) و به صورت مستمر می تواند به یک شبکه حمله کند تا شبکه را به طور کامل از کار بیاندازد.
آیا از این روش تا کنون استفاده شده است

روش گواه اثبات سهام با پیاده سازی های متفاوت در کریپتوکارنسی های مختلفی استفاده شده است برای نمونه در Peercoin, Nxt , blackcoin . اتریوم هم قصد دارد که به نسخه خاص خود از این سیستم با اسم کسپر مهاجرت کند که در صورتی که این اتفاق بیافتد باید منتظر نتایج آماری سیستم در آینده ای نه چندان دور باشیم.

 این روش چه مشکلاتی ممکن است داشته باشد؟
  1. ابتدایی ترین مشکلی که برای این سیستم ها مطرح می شود مساله در خطر نبودن منبع است (nothing at stake) که در سیستم های اولیه وجود داشته.  مهاجم می تواند در زمان ایجاد انشعاب (Fork) با هر دو شاخه همراهی کند. هر کدام از الگوریتم ها روش خاصی برای مواجه با این مشکل دارند. مثلا در روش پیشنهادی در اتریوم احتمالا کسی که قصد آسیب زدن به سیستم را داشته باشد مبالغی را که به عنوان تضمین برای ورود به فرایند ساختن بلاک در جایی ذخیره کرده را از دست خواهد داد.
  2. خطر مرکزیت: کسانی که بیشترین میزان پول را در سیستم دارند قاعدتا می توانند سیستم را کنترل کنند. در صورت داشتن میزان کافی سهام می توان سانسور در سیستم و جلوگیری از بعضی تراکنش ها را اعمال نمود.


دیدگاه هایی که در این مقاله ارائه شده اند، متعلق به نویسنده می باشند و لزوماً مربوط به Coiniran نمی باشد و نباید به آن نسبت داده شود.



 

نوشته های مشابه

2 thoughts on “proof of stake یا گواه اثبات سهام چیست؟”

  1. نخست سپاس فراوان برای جمع آوری این مطالب و به اشتراک گذاری و آرزوی موفقیت برای شما دوست عزیز و تیم کوین ایران.

    به جز دو روش pow و pos روش های دیگه ای که برای این ساختار بلاک سازی دیده شده است را می تونید نام ببرید یا منبعی را معرفی
    کنید که بنده مطالعه کنم !؟

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *