مدیریت دسترسی اکانت (Permission Management) در EOS
یکی از تفاوتهای اصلی میان EOS و بلاکچینهای دیگر، در نوع سیستم اکانت آن است. در EOS بین شما و پولهایتان یک اکانت وجود دارد که یک نام با 12 کاراکتر است. هنگامی که میخواهید پولهای خود را خرج کنید، باید برای اکانت تراکنش امضاء کنید که مستقیما با کلید سروکار ندارد. برای پشتیبانی اکانت میتوانید یک یا چند کلید داشته باشید. این کلیدها درون – زنجیرهای هستند و میتوانید آنها را تغییر دهید. امکان تغییر این کلیدها وجود دارد و به طور کلی سطوح دسترسی مختلفی وجود دارد. این امکانات واقعا فوقالعاده هستند و به شما اجازه میدهند دسترسیها را از اکانت خود مدیریت کنید.
حالت پیشفرض دسترسی
همان طور که گفتیم در EOS یک سیستم اکانت ویژه وجود دارد. کاربران به کمک این سیستم میتوانند دسترسیها را در اکانت خود تنظیم کنند. برای هر دسترسی باید یک یا چند تراکنش معتبر به بلاکچین انتقال داده شود. در حالت پیشفرض، هر اکانت EOS دو دسترسی دارد به نامهای فعال (active) و صاحب (owner). اختیارات دسترسی «فعال» برای جابهجایی پول، رای دادن به تولیدکنندگان و انجام تغییرات سطح بالای اکانت استفاده میشود. دسترسی «صاحب» همان طور که از نامش پیداست برای دارندهی اکانت است. تنها چند تراکنش وجود دارد که انجام آنها به این دسترسی نیاز دارد. مهمتر از آن، این دسترسی برای انجام هرگونه تغییر در اختیارات صاحب اکانت لازم است. توصیه شده که دسترسی «صاحب» به شیوهی ذخیره سرد نگهداری شود و صاحب اکانت آن را با هیچکس به اشتراک نگذارد. میتوان از این دسترسی برای بازیابی دیگر دسترسیها که لو رفتهاند استفاده کرد.
در حالت پیشفرض، وزن هر دو کلید «فعال» و «صاحب» 1 است. همچنین آستانهی پیشفرض هر دو دسترسی «فعال» و «صاحب» 1 است. یعنی برای انجام هر کاری که نیازمند دسترسی «صاحب» است، تنها 1 امضاء از کلید «صاحب» کافی است. در مورد دسترسی «فعال» هم همینطور است. تنها 1 امضاء از کلید «فعال» نیاز است تا کاری که دسترسی «فعال» میخواهد انجام شود.
تغییر و افزودن دسترسی
خوشبختانه میتوان دسترسیها را تغییر داد و ایجاد کرد. به این ترتیب میتوانیم اکانت چندامضایی بسازیم، دسترسیهای تازه بیفزاییم و بسیاری کارهای دیگر انجام دهیم. برای نشان دادن دامنهی کارهایی که با تغییر و افزودن دسترسی میتوان انجام داد، یک نمونه بیان میکنیم.
اکانت چندامضایی
در این نمونه، توضیح میدهیم کیف پول چندامضایی چگونه کار میکند و راهاندازی آن به چه صورت است.
در شکل بالا میبینید که یک اکانت چندامضایی ایجاد شده است. در این نمونه، دسترسی «صاحب» آستانهی 2 دارد. این دسترسی همچنین 2 کلید دارد که وزن هر دوی آنها 1 است. این یعنی امضای هر دو کلید برای انجام هر کاری که دسترسی «صاحب» میخواهد لازم است.
دسترسی «فعال» یک آستانه 1 و 2 کلید دارد که هر دو وزن 1 دارند. این یعنی برای انجام هر کاری که نیاز به دسترسی «فعال» دارد تنها 1 امضا از 2 کلید کافی است.
چگونه این کار را در اکانت خود انجام دهیم (toolkit)
اگر تا به اینجای کار متوجه شرایط شدهاید اکنون به شما آموزش میدهیم چگونه میتوانید به وسیلهی toolkit EOS) EOSToolkit) متعلق به جنروس (Genereos) برای خود اکانت چندامضایی ایجاد کنید. ما این اکانت را درست مانند نمونهی اکانت چندامضایی بالا درست میکنیم.
پیش از هر چیز باید یک افزونهی مرورگر به نام Scatter را دانلود کنید. میتوانید آن را از اینجا بگیرید. اکنون دستورات راهنمای راهاندازی اکانت Scatter را انجام دهید و وارد افزونه Scatter خود شوید. سپس به toolkit بروید و به اکانت EOS خود متصل گردید.
فراموش نکنید پشت کلیدهای عمومی ‘@permission’ را وارد کنید و دسترسی را به دسترسی عملی (فعال، صاحب یا …) تبدیل کنید.
پس از اینکه به اکانت Scatter خود رفتید وارد تب advanced permissions (دسترسیهای پیشرفته) شوید. ابتدا دسترسی «صاحب» اکانت را تغییر میدهیم. جاهای خالی را با اطلاعات درست و کلیدها پر کنید و روی update کلیک نمایید. همچنین میتوانید کلیدهای بیشتری اضافه کنید و آستانه و وزن کلیدها را به دلخواه تغییر دهید.
پس از آنکه دسترسی «صاحب» را آپدیت کردید میتوانید این کار را برای دسترسی «فعال» انجام دهید. جاهای خالی را با اطلاعات درست و کلیدها پر کنید و باز هم روی update کلیک کنید. درست همانند دسترسی «صاحب» در اینجا هم میتوانید کلیدهای بیشتر بیفزایید و آستانه و وزن کلیدها را تغییر دهید.
اکنون یک اکانت چندامضایی دارید که درست همانند نمونهی بالا است.
دسترسیهای سفارشی
اکانت چندامضایی تنها یکی از امکانات دسترسیهای EOS است. برای ساخت چنین اکانتی تنها باید دسترسیهای پیشفرض را تغییر دهید. برای ساختن دسترسیهای پیشرفته میتوانید دسترسی تازه بسازید یا دسترسیهای موجود را تنظیم کنید. در اینجا نشان میدهیم که چگونه با toolkit ساخت جنروس و کلیوس (cleos) میتوانید دسترسی جدید بسازید.
چگونه دسترسی جدید بسازیم (toolkit)
مدیریت، تنظیم و ساخت دسترسیهای تازه به لطف toolkit اکنون بسیار آسان و ساده شده است. فرض کنید شما یک اکانت EOS دارید ولی نمیخواهید از کلید «فعال» خود برای رای دادن با آن اکانت استفاده کنید، زیرا لو رفتن این کلید دردسر دارد. در این صورت میتوانید به اکانت دیگری دسترسی دهید تا با اکانت شما رای دهد. (شما میتوانید با پروکسیها هم این کارها را انجام دهید. این توضیحات تنها برای آگاهی بخشی است).
در شکل بالا میبیدید که چگونه میتوان با پر کردن جاهای خالی به یک اکانت دیگر اجازه داد از دسترسی رای دادن در اکانت اصلی استفاده کند. تنها کافی است به دسترسی «فعال» در اکانت دوم دسترسی داشته باشید.
پس از تایید تراکنشهای بالا باید دسترسی رای جدید خود را به یک کنش eosio لینک کنید. از آنجا که میخواهیم اکانت دوم دارای این دسترسی بتواند در اکانت اول رای دهد، با استفاده از ابزار Link Auth دسترسی رای را به voteproducer (رایساز) لینک میکنیم.
اکنون اکانت دوم میتوان از دسترسی رای روی اکانت اصلی استفاده کند.
چگونه دسترسی جدید ایجاد کنیم (cleos)
شما میتوانید با استفاده از cleos برای خود دسترسی تازه ایجاد کنید و دسترسیها را به دلخواه خود درآورید. در ادامه نمونهای از EOS کانادا میبینیم و توضیح میدهیم چگونه میتوان برای گرفتن پاداش، با استفاده از cleos دسترسی جدید ساخت.
بلوکسازان EOS هر روز دستمزد دریافت میکنند به همین خاطر باید هر روز برای پاداش خود درخواست دهند. اگر آنها پاداش خود را درخواست نکنند، پاداش از بین میرود. به همین خاطر هر بلوکسازی که دستمزد میگیرد دوست دارد هر روز پاداش خود را درخواست نماید. در حالت پیشفرض درخواست پاداشها نیاز به کلید فعال دارد ولی گذاشتن کلید فعال روی سروری که هر روز پاداشها را جمع میکند بسیار پرریسک است. به همین خاطر بهتر است دسترسی تازهای برای این کار بسازید و برای این کار از کلید تازهای استفاده نمایید که اهمیت آن به مراتب کمتر است.
به این منظور باید در cleos دستور زیر را اجرا کنید:
1 |
cleos set account permission PRODUCERACCT claimer '{"threshold":1,"keys":[{"key":"YOUR_PUB_KEY","weight":1}]}' "active" -p PRODUCERACCT@active |
PRODUCERACCT نام 12 کاراکتری اکانت است که پاداشها را جمع میکند. claimer (درخواست کننده) نام دسترسی جدید است. “key”:”YOUR_PUB_KEY”,”weight”:1 کلید عمومی جدید است که وزن آن 1 است و دسترسی جدید دارد. “active” -p PRODUCERACCT@active یعنی دسترسی مادر دسترسی جدید همان دسترسی «فعال» است.
پس از اجرای دستور بالا باید دسترسی را به یک کنش مشخص لینک کنید. برای انجام این کار دستور زیر را اجرا نمایید:
1 |
cleos set action permission PRODUCERACCT eosio claimrewards claimer |
با این کار، کنش claimrewards (درخواست پاداش) به claimerpermission (دسترسی درخواست) لینک میشود. Eosio همان قرارداد هوشمند است.
اکنون تنها برای استفاده از claimrewards به کلید جدید نیاز داریم. لو رفتن این کلید مشکل بزرگی ایجاد نخواهد کرد، زیرا تنها کاری که میشود با این کلید انجام داد درخواست پاداش در اکانت سازنده است.
- از این راهنما و این ابزارها با ریسک خود استفاده کنید. اشتباه در استفاده از ابزارها میتواند به از دسترس خارج شدن اکانت بینجامد.
- به خاطر داشته باشید این آموزشها میتواند استفاده از اکانت را دشوارتر سازد. (هنوز) ابزارهای زیادی برای پشتیبانی از دسترسیهای سفارشی وجود ندارد.