Skip to content

استیکینگ ​

DotOne Smart Chain بر پایه‌ی بلاک‌چین اثبات مشارکت مجاز (PoSA) عمل می‌کند، با مکانیزم استیکینگی که در BEP-294 پیشنهاد شده است. این مکانیزم به دارندگان DOTO امکان می‌دهد توکن‌های خود را نزد اعتبارسنج‌های مشخص استیک کنند تا شبکه را ایمن کرده و پاداش استیکینگ کسب کنند. در ادامه، نگاهی کلی به مفاهیم و عملیات اصلی استیکینگ در DotOne ارائه می‌شود.

مفاهیم پایه ​

موتور اجماع ​

DotOne از مکانیزمی ترکیبی از DPoS و PoA برای اجماع استفاده می‌کند. در این سیستم:

  • بلاک‌ها توسط مجموعه‌ای محدود از اعتبارسنج‌ها تولید می‌شوند.
  • اعتبارسنج‌ها به‌نوبت و به‌شیوه‌ی PoA بلاک تولید می‌کنند.
  • مجموعه‌ی اعتبارسنج‌ها بر اساس حکمرانی مبتنی بر استیک، انتخاب و کنار گذاشته می‌شوند.

مکانیزم استیکینگ برای تعیین صلاحیت اعتبارسنج‌ها جهت تولید بلاک ضروری است.

مجموعه‌ی اعتبارسنج ​

مجموعه‌ی اعتبارسنج، گروهی از نودها هستند که مسئول اعتبارسنجی تراکنش‌ها و تولید بلاک در DotOne هستند. این مجموعه بر اساس میزان استیک هر اعتبارسنج تعیین می‌شود، که منعکس‌کننده‌ی میزان DOTO استیک‌شده توسط اعتبارسنج و تفویض‌کنندگان آن است. اعتبارسنج‌های برتر با بیشترین استیک، به‌عنوان مجموعه‌ی اعتبارسنج فعال انتخاب می‌شوند و به‌نوبت بلاک‌ها را پیشنهاد و رأی می‌دهند. باقی‌ی اعتبارسنج‌ها در مجموعه‌ی آماده‌به‌کار (standby) قرار دارند و در صورت افزایش استیک خود یا کنار رفتن برخی اعتبارسنج‌های فعال، می‌توانند به مجموعه‌ی فعال بپیوندند.

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

اعتبارسنج‌ها همچنین می‌توانند از طریق جریمه (Slashing) — که مجازاتی برای رفتار نادرست یا آفلاین بودن است — از مجموعه‌ی اعتبارسنج حذف شوند.

انتخاب اعتبارسنج ​

نقش‌های مختلفی برای اعتبارسنج‌ها وجود دارد:

  • کابینت (Cabinet): K اعتبارسنج برتر (که در حال حاضر ۲۱ عدد است) با بیشترین شانس تولید بلاک.
  • کاندیدا (Candidate): اعتبارسنج‌های در بازه‌ی (K, K+NumOfCandidates] (که در حال حاضر (۲۱، ۴۵] است) با شانس کمی برای تولید بلاک.
  • غیرفعال (Inactive): باقی‌ی اعتبارسنج‌ها که هیچ شانسی برای تولید بلاک ندارند.

نقش‌های مجموعه‌ی اعتبارسنج هر ۲۴ ساعت بر اساس آخرین اطلاعات استیکینگ تعیین می‌شود.

پس از ساعت ۰۰:۰۰ UTC، موتور اجماع اعتبارسنج‌ها را مرتب کرده و مجموعه‌ی اعتبارسنج DotOne را با اطلاعات رتبه‌بندی به‌روزرسانی می‌کند.

قراردادهای سیستمی ​

چندین قرارداد داخلی (یعنی قراردادهای سیستمی) برای تسهیل استیکینگ در DotOne وجود دارد.

  • قرارداد مجموعه‌ی اعتبارسنج (Validator Set Contract). این قرارداد به‌طور دوره‌ای مجموعه‌ی اعتبارسنج را انتخاب می‌کند. این قرارداد همچنین به‌عنوان یک صندوق برای نگهداری موقت پاداش‌های اعتبارسنج عمل می‌کند.
  • قرارداد پاداش سیستمی (System Reward Contract). این قرارداد به‌عنوان صندوقی برای جمع‌آوری بخشی از کارمزد تراکنش عمل می‌کند. این وجوه برای اهداف عمومی گوناگون، مانند توزیع پاداش‌های Fast Finality، استفاده می‌شوند.
  • قرارداد جریمه (Slash Contract). این قرارداد برای پیگیری تعداد دفعاتی که یک اعتبارسنج در دسترس نیست استفاده می‌شود و پس از رسیدن به آستانه‌ی مشخص، جریمه‌ها را فعال می‌کند. علاوه‌بر این، این قرارداد سایر انواع رویدادهای جریمه، مانند امضای دوگانه و رأی‌دهی مخرب در Fast Finality را نیز مدیریت می‌کند.
  • قرارداد Stake Hub. این قرارداد نقطه‌ی ورود مدیریت اعتبارسنج‌ها و تفویض‌ها است، در حالی که منطق جریمه‌ی اعتبارسنج‌های خاص را نیز پیاده‌سازی می‌کند. برای عملیات تفویض/لغو تفویض/تفویض مجدد، این قرارداد قراردادهای پیاده‌سازی اعتبارسنج‌های مختلف را برای مدیریت استیک کاربر فراخوانی می‌کند.

قرارداد کردیت (Credit Contract) ​

هر اعتبارسنج قرارداد اختصاصی خود را دارد که کردیت استیکینگ را مدیریت کرده و تبادل میان کردیت و DOTO را تسهیل می‌کند. نام توکن کردیت استیکینگ "stake {validator moniker} credit" و نماد آن "st{validator moniker}" است. این قرارداد توسط قرارداد Stake Hub هنگام ایجاد اعتبارسنج ساخته می‌شود.

هر گاه کاربری DOTO تفویض کند، مقدار معادلی از توکن‌های کردیت ساخته می‌شود. از طرف دیگر، وقتی کاربر تفویض خود را برداشت کند، مقدار متناظری از توکن‌های کردیت نابود شده و DOTO آزاد می‌شود.

توزیع پاداش ​

پاداش استیکینگ از کارمزد تراکنش می‌آید - وقتی بلاکی تولید می‌شود، بخش عمده‌ی کارمزد بلاک به‌عنوان پاداش برای اعتبارسنجی که بلاک را پیشنهاد داده، جمع‌آوری می‌شود.

هر روز، بخشی از پاداش‌های جمع‌آوری‌شده مستقیماً به حساب اپراتور اعتبارسنج به‌عنوان کمیسیون ارسال می‌شود، در حالی که بخش باقی‌مانده به قرارداد کردیت اعتبارسنج مربوطه ارسال می‌شود. و وقتی کاربری تفویض خود را لغو کرده و استیک خود را مطالبه می‌کند، پاداش انباشته‌شده و استیک اصلی به او بازگردانده می‌شود.

عملیات اعتبارسنج ​

اعتبارسنج‌ها نودهایی هستند که نرم‌افزار DotOne Smart Chain را اجرا می‌کنند و در فرآیند اجماع مشارکت دارند. آن‌ها به حداقل استیک DOTO در آدرس اعتبارسنج خود نیاز دارند و می‌توانند از سایر دارندگان DOTO تفویض دریافت کنند. اعتبارسنج‌ها از کارمزد تراکنش پاداش کسب کرده و بیشتر این پاداش‌ها را با تفویض‌کنندگان خود به اشتراک می‌گذارند.

ایجاد اعتبارسنج ​

برای تضمین امنیت شبکه، تبدیل شدن به اعتبارسنج در DotOne نیازمند حداقل خوداستیک ۳۰۰,۰۰۰,۰۰۰ DOTO است. دارندگان DOTO می‌توانند با تراکنش CreateValidator از طریق قرارداد StakeHub، اعتبارسنج شوند. برای اطلاعات بیشتر، به راه‌اندازی اعتبارسنج مراجعه کنید.

ویرایش اعتبارسنج ​

اعتبارسنج‌ها می‌توانند اطلاعات خود را با تراکنش‌هایی مانند EditConsensusAddress، EditCommissionRate، EditDescription و EditVoteAddress به‌روزرسانی کنند.

عملیات تفویض‌کننده (Delegator) ​

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