DApp از چه لایههایی تشکیل میشود؟
| لایه | نمونه وظیفه | نقطه شکست |
|---|---|---|
| رابط | نمایش و ساخت تراکنش | دامنه جعلی یا کد آلوده |
| کیف پول | مدیریت حساب و امضا | نمایش مبهم یا بدافزار |
| RPC | اتصال به شبکه | قطعی یا سانسور پاسخ |
| قرارداد | منطق و نگهداری وضعیت | باگ یا ارتقای مخرب |
| اوراکل | داده بیرونی | قیمت اشتباه یا دستکاری |
Read، Sign، Send و Approve را اشتباه نگیرید
- Read: پرسوجوی وضعیت؛ معمولاً بدون هزینه و بدون تغییر زنجیره.
- Sign message: امضای پیام؛ ممکن است ورود ساده یا مجوزی قابل سوءاستفاده باشد.
- Send transaction: درخواست تغییر وضعیت با گس.
- Approve: تعیین سقف خرج توکن برای یک spender؛ مجوز نامحدود دامنه زیان را بیشتر میکند.
- Permit: مجوز مبتنی بر امضا که میتواند بعداً به زنجیره ارسال شود؛ رایگان بودن امضا آن را بیخطر نمیکند.
قبل از امضا چه کنیم؟
- ۱
دامنه را مستقل باز کنید
از لینک تبلیغ، پیام خصوصی یا نتیجه اسپانسری وارد نشوید.
- ۲
شبکه و آدرس قرارداد
از مستندات رسمی و مرورگر بلاک تطبیق دهید.
- ۳
اثر تراکنش
دارایی ورودی و خروجی، spender، مبلغ و تابع فراخوانی را بررسی کنید.
- ۴
مجوز محدود
در صورت امکان فقط مقدار لازم و مدت کوتاه را مجاز کنید.
- ۵
کیف پول مجزا
برای DAppهای تازه از حسابی با موجودی محدود استفاده و مجوزهای قدیمی را لغو کنید.
ارتقاپذیری و کلید مدیریت
برخی قراردادها تغییرناپذیرند و برخی از الگوی proxy استفاده میکنند تا منطق بعداً ارتقا یابد. ارتقا میتواند باگ را اصلاح کند، اما اعتماد به مالک، چندامضایی و تأخیر زمانی را اضافه میکند.
بررسی حسابرسی بدون خواندن دامنه آن کافی نیست. نسخه قرارداد، یافتههای حلنشده، باگبانتی، وقفه اضطراری و سابقه رخداد را کنار هم ببینید.