لغو دسترسی قرارداد هوشمند؛ کاری که باید عادت شود

به روزرسانی: ۷ دقیقه مطالعه
۲۴۳بازدید ۰اشتراک
دارای مجوزهای رسمی انتشار:

برای ثبت سفارش به حساب نیاز دارید. ثبت نام رایگان است.

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

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

آن پنجره «Approve» دقیقا چه چیزی را امضا می کند

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

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

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

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

چرا این مسیر، مسیر اصلی از دست رفتن دارایی است

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

اما برای کاربر معمولی، هیچ کدام از آنها مسیر اصلی نیست. مسیر اصلی این است: کاربر روی یک سایت جدید مجوز نامحدود می دهد، سایت هفته ها عادی کار می کند، و بعد یک روز موجودی خالی می شود.

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

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

اتریومقیمت لحظه ای اتریوم ۱.۱۵٪تومانی
۶۲۳,۲۷۱,۵۷۰ تومان
$2,339.61 ▼ ۲.۲۳٪دلاری نرخ جهانی
تغییر ۲۴ ساعته، تومانی و دلاری - بروزرسانی ۰۲:۰۷ مشاهده نرخ

لغو مجوز؛ کاری که باید عادت شود

خود بنیاد اتریوم راهنمای این کار را منتشر کرده و مراحلش کوتاه است.

ابزارهایی وجود دارند که کیف پول شما را وصل می کنند و فهرست تمام قراردادهایی را که به توکن هایتان دسترسی دارند، همراه با سقف هر کدام، نشان می دهند. قرارداد مورد نظر را انتخاب می کنید و لغو را می زنید.

سه نکته که آدم ها را گیر می اندازد:

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

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

سه چیز متفاوت که همه شان «تایید» به نظر می رسند

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

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

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

پیشگیری ارزان تر از پاکسازی است

لغو دوره ای خوب است، ولی بهترش این است که اصلا مجوز نامحدود ندهید.

بیشتر کیف پول های امروزی اجازه می دهند موقع تایید، سقف را دستی عوض کنید. یعنی به جای «نامحدود»، همان مقداری را بنویسید که واقعا می خواهید خرج کنید. کارمزدش این است که دفعه بعد باید دوباره تایید کنید؛ در برابر ریسکی که حذف می کنید، معامله بدی نیست.

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

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

از ایران چه چیزی فرق می کند

دو نکته که مخصوص کاربر ایرانی است و در راهنماهای ترجمه شده نیست.

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

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

سوال های پرتکرار

قطع کردن اتصال کیف پول با لغو مجوز فرق دارد؟

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

مجوز قرارداد چه زمانی منقضی می شود؟

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

لغو مجوز باعث از دست رفتن دارایی می شود؟

نه، اگر از ابزارهای معتبری که راهنمای رسمی معرفی کرده استفاده کنید. موقعیت های استیکینگ و استخر هم بسته نمی شوند. فقط کارمزد تراکنش لغو را می پردازید.

چرا پروژه ها مجوز نامحدود می خواهند؟

برای اینکه کاربر فقط یک بار تایید کند و یک بار کارمزد بدهد. راحتی اش واقعی است و ریسکش هم واقعی است. روی سایتی که سابقه و بررسی امنیتی ندارد، این راحتی نمی ارزد.

حرف آخر

امنیت قرارداد هوشمند برای کاربر معمولی یعنی یک کار، نه یک دانش: فهرست مجوزهایتان را ببینید و آنهایی را که لازم ندارید لغو کنید.

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

منابع اولیه: راهنمای رسمی لغو دسترسی قرارداد به دارایی در ethereum.org و راهنمای امنیت و پیشگیری از کلاهبرداری بنیاد اتریوم.