اثبات صلاحیت (PoA)
آخرین ویرایش: @sharifi.masoud(opens in a new tab), ۱۳ تیر ۱۴۰۳
اثبات صلاحیت (PoA) یک الگوریتم اجماع مبتنی بر شهرت است که یک نسخه اصلاح شده از proof-of-stake است. بیشتر در زنجیرههای خصوصی، تستنتها و شبکههای توسعه محلی مورد استفاده قرار میگیرد. PoA یک الگوریتم اجماع مبتنی بر اعتبار است که به جای یک مکانیسم مبتنی بر سهام در PoS، نیاز به اعتماد به یک مجموعه از امضاکنندگان مجاز برای تولید بلوکها دارد.
پیش نیازها
برای درک بهتر این صفحه، توصیه میکنیم ابتدا تراکنشها، بلوکها، و مکانیسمهای اجماع سازوکارهای اجماع را مطالعه کنید.
اثبات صلاحیت (PoA) چیست؟
اثبات صلاحیت یک نسخه اصلاح شده از **اثبات سهام (PoS) است که یک الگوریتم اجماع مبتنی بر اعتبار به جای مکانیسم مبتنی بر سهام در PoS است. این اصطلاح برای اولین بار در سال 2017 توسط گاوین وود معرفی شد و این الگوریتم اجماع بیشتر توسط زنجیرههای خصوصی، شبکههای آزمایشی و شبکههای توسعه محلی استفاده شده است، زیرا مانند PoW بر نیاز به منابع با کیفیت بالا غلبه میکند و بر مقیاسپذیری غلبه میکند. با داشتن زیرمجموعه کوچکی از گرهها که بلاکچین را ذخیره میکنند و بلوکها را تولید میکنند، بر مشکلات مقیاسپذیری با PoS غلبه میکند.
اثبات صلاحیت مستلزم اعتماد به مجموعهای از امضاکنندگان مجاز است که در [بلوک پیدایش] (/ واژهنامه/#genesis-block) تنظیم شدهاند. در اکثر اجراهای فعلی، همه امضاکنندگان مجاز هنگام تعیین اجماع زنجیره، از قدرت و امتیازات برابر برخوردار هستند. ایده مبنای سهام گذاری شهرت این است که هر اعتبارسنج مجاز از طریق مواردی مانند شناخت مشتری خود (KYC)، یا داشتن یک سازمان شناخته شده که تنها اعتباردهنده است، برای همه شناخته شده است - به این ترتیب اگر اعتبارسنج کار اشتباهی انجام دهد، هویت او مشخص می شود.
چندین اجرای PoA وجود دارد، اما اجرای استاندارد اتریوم کلیک است که [EIP-225] (https://eips.ethereum.org/EIPS/eip-225(opens in a new tab)) را اجرا میکند. کلیک یک استاندارد توسعهدهندهپسند و آسان برای اجرا است که از همه انواع همگامسازیهای کاربر پشتیبانی میکند. اجراهای دیگر عبارتند از IBFT 2.0(opens in a new tab) و Aura(opens in a new tab).
چگونه کار میکند
در PoA، مجموعه ای از امضاکنندگان مجاز برای ایجاد بلوک های جدید انتخاب می شوند. امضاکنندگان بر اساس شهرت خود انتخاب می شوند و آنها تنها کسانی هستند که اجازه ایجاد بلوک های جدید را دارند. امضاکنندگان به صورت چرخشی انتخاب می شوند و هر امضاکننده مجاز است در یک بازه زمانی خاص یک بلوک ایجاد کند. زمان ایجاد بلوک ثابت است و امضاکنندگان ملزم به ایجاد بلوک در آن چارچوب زمانی هستند.
اعتبار در این زمینه یک چیز کمّی نیست بلکه اعتبار شرکتهای شناخته شدهای مانند مایکروسافت و گوگل است، از این رو روش انتخاب امضاکنندگان مورد اعتماد الگوریتمی نیست بلکه یک عمل انسانی معمولی اعتماد است که در آن یک نهاد مثلاً مایکروسافت یک شبکه خصوصی PoA را بین صدها یا هزاران استارتاپ ایجاد میکند و نقش خود را به عنوان تنها امضاکننده مورد اعتماد با امکان افزودن سایر امضاکنندگان شناخته شده مانند گوگل در آینده ایفا میکند. استارتاپها بدون شک به مایکروسافت اعتماد میکنند که همیشه صادقانه عمل کند و از شبکه استفاده کند. این امر نیاز به مشارکت در شبکههای کوچک/خصوصی مختلف را که برای اهداف مختلف ساخته شدهاند تا غیرمتمرکز بودن و کارکرد آنها را حفظ کند، همراه با نیاز به استخراجگرها که انرژی و منابع زیادی صرف میکنند، برطرف میکند. برخی از شبکه های خصوصی از استاندارد PoA مانند VeChain استفاده می کنند و برخی آن را تغییر می دهند مانند Binance که از [PoSA] استفاده می کند (https://academy.binance.com/en/glossary/proof-of-staked-authority-posa(opens in a new tab)) که یک نسخه تغییر یافته سفارشی از PoA و PoS است.
فرآیند رای گیری توسط خود امضا کنندگان انجام می شود. هر امضاکننده هنگام ایجاد بلوک جدید به اضافه یا حذف یک امضاکننده در بلوک خود رأی میدهد. آرا توسط گرهها جمعآوری میشوند و امضاکنندگان بر اساس آرایی که به آستانه معین SIGNER_LIMIT
میرسند، اضافه یا حذف میشوند.
ممکن است موقعیتی وجود داشته باشد که فورک های کوچک رخ دهد. سختی یک بلوک به این بستگی دارد که آیا بلوک به نوبت امضا شده است یا خارج از نوبت. بلوک های "نوبتی" سختی 2 دارند و بلوک های "خارج از نوبت" سختی 1 دارند. در مورد فورکهای کوچک، زنجیرهای که اکثر امضاکنندگان آن بلوکها را "نوبتی" مهر و موم میکنند، بیشترین سختی را جمع میکند و برنده میشود.
بردارهای حمله
امضاکنندگان مخرب
ممکن است یک کاربر مخرب به لیست امضاکنندگان اضافه شود، یا ممکن است کلید/ماشین امضا در خطر باشد. در چنین سناریویی، پروتکل باید بتواند از خود در برابر سازماندهی مجدد و ارسال اسپم دفاع کند. راهکار پیشنهادی این است که با توجه به لیستی از N امضاکننده مجاز، هر امضاکننده تنها میتواند 1 بلوک از هر K بلوک را ایجاد کند. این تضمین میکند که خسارت محدود شده و باقی اعتبارسنجها میتوانند کاربر مخرب را اخراج کنند.
سانسور
یکی دیگر از بردارهای جالب حمله این است که یک امضاکننده (یا گروهی از امضاکنندگان) سعی کند بلوک هایی را که به حذف آنها از لیست مجوز رأی می دهند، سانسور کند. برای حل این مشکل، فرکانس ضرب مجاز امضاکنندگان به 1 از N/2 محدود شده است. این امر تضمین می کند که امضاکنندگان مخرب باید حداقل 51٪ از حساب های امضا را کنترل کنند، در این مرحله آنها به طور مؤثر منبع جدیدی از حقیقت برای زنجیره خواهند بود.
اسپم
یکی دیگر از بردارهای کوچک حمله، امضاکنندگان مخربی است که پیشنهادات رای جدید را در داخل هر بلوکی که ضرب میکنند، تزریق میکنند. از آنجا که گره ها برای ایجاد لیست واقعی امضاکنندگان مجاز باید همه آرا را جمعآوری کنند، باید تمام آرا را در طول زمان ثبت کنند. بدون محدود کردن پنجره رأیگیری، این مقدار میتواند به آرامی اما بدون محدودیت افزایش یابد. راه حل این است که یک پنجره متحرک بلوک های W ایجاد کنیم که پس از آن آرا منسوخ در نظر گرفته میشوند. یک پنجره معقول ممکن است 1-2 ایپوک باشد.
بلوک های همزمان
در یک شبکه PoA، زمانی که N امضاکننده مجاز وجود دارد، هر امضاکننده مجاز به ایجاد یک بلوک از هر K بلوک است که به این معنی است که N-K+1 اعتبارسنج در هر لحظه مجاز به ایجاد بلوک هستند. برای جلوگیری از رقابت این اعتبارسنجها برای ایجاد بلوک، هر امضاکننده باید یک "جابجایی" تصادفی کوچک به زمان انتشار بلوک جدید خود اضافه کند. اگرچه این فرآیند تضمین می کند که فورکهای کوچک نادر هستند، فورکهای گاه به گاه هنوز هم می توانند اتفاق بیفتند، درست مانند شبکه اصلی. اگر مشخص شود که یک امضاکننده از قدرت خود سوء استفاده کرده و باعث ایجاد آشفتگی شده است، امضاکنندگان دیگر میتوانند او را اخراج کنند.
به عنوان مثال، اگر 10 امضاکننده مجاز وجود داشته باشد و هر امضاکننده مجاز باشد از 20 بلوک، 1 بلوک ایجاد کند، در هر زمان، 11 اعتبارسنج می توانند بلوک ایجاد کنند. برای جلوگیری از رقابت آنها برای ایجاد بلوک، هر امضاکننده یک "جابجایی" تصادفی کوچک به زمانی که یک بلوک جدید را منتشر می کند اضافه می کند. این امر احتمال وقوع فورکهای کوچک را کاهش میدهد اما همچنان به فورکهای گاه به گاه مانند آنچه در شبکه اصلی اتریوم دیده میشود اجازه میدهد. اگر یک امضاکننده از صلاحیت خود سوء استفاده کرده و باعث اختلال شود، ممکن است از شبکه حذف شود.
مزایا و معایب
نقاط مثبت | نقاط منفی |
---|---|
مقیاس پذیرتر از مکانیسم های محبوب دیگر مانند PoS و PoW، زیرا بر اساس تعداد محدودی از امضاکنندگان بلوک است | شبکههای PoA معمولاً تعداد نسبتاً کمی گره اعتبارسنج دارند. این، شبکه PoA را متمرکزتر می کند. |
بلاک چین های PoA برای اجرا و نگهداری بسیار ارزان هستند | معمولاً برای یک فرد عادی تبدیل شدن به یک امضاکننده مجاز غیرقابل دسترس است، زیرا بلاک چین به نهادهایی با شهرت اثبات شده نیاز دارد. |
تراکنشها خیلی سریع تأیید میشوند، زیرا ممکن است به کمتر از ۱ ثانیه برسد، زیرا فقط تعداد محدودی امضاکننده برای اعتبارسنج بلوکهای جدید لازم است | امضاکنندگان مخرب می توانند دوباره سازماندهی کنند، دو برابر هزینه کنند، و تراکنش ها را در شبکه سانسور کنند. این حملات کاهش می یابد، اما همچنان ممکن است |
ادامه مطلب
- EIP-225(opens in a new tab) Clique standard
- مطالعه اثبات صلاحیت(opens in a new tab) Cryptoeconomics
- اثبات صلاحیت چیست(opens in a new tab) OpenZeppelin
- شرح اثبات صلاحیت(opens in a new tab) binance
- PoA در بلاک چین(opens in a new tab)
- شرح دسته(opens in a new tab)
- [PoA منسوخ شده، مشخصات Aura] (https://openethereum.github.io/Chain-specification(opens in a new tab))
- IBFT 2.0، اجرای دیگر PoA(opens in a new tab)
با توضیحات تصویری راحتترید؟
توضیح تصویری اثبات صلاحیت را تماشا کنید: