حسابرسان تأیید شده می توانند شروع به حسابرسی این قرارداد هوشمند کنند. اولویت بالا (مستهلک) کاهش یافته: از اولویت 1 یا اولویت 2 برای افزایش اولویت حسابرسی قرارداد استفاده کنید. استحکام SMART-CONTRAPTER به زبان استحکام (Ethereum) نوشته شده است.
نظرات
Carlossampol اظهار نظر در 10 ژوئیه 2019 • ویرایش شده توسط yuriy77k
درخواست حسابرسی
حسابرسی 200 توکن برتر CoinmarketCap.
Unus sed Leo (لئو)
رمز منبع
- https://etherscan. io/address/0x2af5d2ad76741191d15dfe7bf6ac92d4bd912ca3#code (توکن لئو)
- https://etherscan. io/address/0xf17ebb3a24dc6d6b56d38adf0df499c1cd9e5672#code (کنترل کننده قرارداد فعلی توکن)
سیاست افشای
سکو
تعداد خطوط:
متن با موفقیت به روز شد ، اما این خطاها با آن روبرو شدند:
عضو yuriy77k در 10 ژوئیه 2019 اظهار نظر کرد آقای کرامبو 11 ژوئیه 2019 اظهار داشت
گزارش من تمام شده است
عضو Dexaran در 12 ژوئیه 2019 نظر داد
@yuriy77k به من اختصاص دهید. زمان حسابرسی 4 روز.
Gorbunovperm در 12 ژوئیه 2019 اظهار نظر کرد عضو yuriy77k در 12 ژوئیه 2019 اظهار نظر کرد عضو Dexaran در 15 ژوئیه 2019 اظهار داشت
گزارش من تمام شده است
Dexaran اضافه شده اولویت بالا (مستهلک) را کاهش داد: از اولویت 1 یا اولویت 2 برای افزایش اولویت حسابرسی قرارداد استفاده کنید. برچسب 17 ژوئیه 2019
Danbogd در 18 ژوئیه 2019 اظهار نظر کرد
زمان حسابرسی: 3 روز.
عضو yuriy77k در 18 ژوئیه 2019 اظهار نظر کرد Danbogd در 20 ژوئیه 2019 اظهار نظر کرد
گزارش من تمام شده است
عضو yuriy77k در 20 ژوئیه 2019 اظهار نظر کرد
گزارش حسابرسی امنیتی Unus Sed Leo
1. خلاصه
گزارش حسابرسی امنیتی قرارداد هوشمند Unus Sed Leo که توسط بخش حسابرسی امنیتی Callisto انجام شده است
2. در دامنه
- https://etherscan. io/address/0x2af5d2ad76741191d15dfe7bf6ac92d4bd912ca3#code (قرارداد توکن لئو)
- https://etherscan. io/address/0xf17ebb3a24dc6d6b56d38adf0df499c1cd9e5672#code (کنترل کننده قرارداد لئو توکن در لحظه ممیزی امنیتی)
3. یافته ها
در کل ، 7 شماره از جمله گزارش شده است:
- 3 مسئله شدت کم.
- 2 امتیاز مالک (توانایی یک مالک در دستکاری قرارداد ، ممکن است برای سرمایه گذاران خطرناک باشد).
- 2 مشاهده جزئی / مسئله غیر امنیتی
هیچ مسئله امنیتی مهم یافت نشد.
3. 1 نحو عملکرد پروکسیپیم
شدت: مشاهده جزئی / مسئله غیر امنیتی
قطعه کد
تابع مجاورت(نشانی _ صاحب) عمومی قابل پرداخت بازگرداندن(بول مجاز) مجاز = دروغ; >
شرح
استفاده از نحو مختلف برای عملکردهای برگشتی.
توصیه
به منظور تسهیل خوانایی ، توصیه می شود از همان نحو برای کلیه قطعات کد استفاده کنید. اگر قطعات دیگر از بازگشت نادرست استفاده می کنند. نحو ، سپس توصیه می شود از همان نحو در این عملکرد نیز استفاده کنید.
3. 2 تعادل در آینده
شدت: کم
قطعه کد
تابع تعادل(نشانی _ صاحب, عود _blocknumber) عمومی چشم انداز بازگرداندن (عود) if ((موازنه[_ صاحب].طول == 0) || (موازنه[_ صاحب][0].از روی > _blocknumber)) if (نشانی(پدر و مادر) != نشانی(0)) برگشت پدر و مادر.تعادل(_ صاحب, حداقل(_blocknumber, پدر و مادر)); > دیگر برگشت 0; > > دیگر برگشت getValueat(موازنه[_ صاحب], _blocknumber); > >
تابع totalsupplyat(عود _blocknumber) عمومی چشم انداز بازگرداندن(عود) if ((دارای تاریخچه.طول == 0) || (دارای تاریخچه[0].از روی > _blocknumber)) if (نشانی(پدر و مادر) != نشانی(0)) برگشت پدر و مادر.totalsupplyat(حداقل(_blocknumber, پدر و مادر)); > دیگر برگشت 0; > > دیگر برگشت getValueat(دارای تاریخچه, _blocknumber); > >
تابع getValueat(محل بازرسی[] ذخیره سازی محل بازرسی, عود _مسدود کردن ) چشم انداز درونی؛ داخلی بازگرداندن (عود) if (محل بازرسی.طول == 0) برگشت 0; if (_مسدود کردن >= محل بازرسی[محل بازرسی.طول-1].از روی) برگشت محل بازرسی[محل بازرسی.طول-1].ارزش; if (_مسدود کردن محل بازرسی[0].از روی) برگشت 0; // جستجوی باینری مقدار موجود در آرایه عود حداقل = 0; عود حداکثر = محل بازرسی.طول-1; عود میانه = 0; در حالی که (حداکثر > حداقل) میانه = (حداکثر + حداقل + 1)/ 2; if (محل بازرسی[میانه].از روی_مسدود کردن) حداقل = میانه; > دیگر حداکثر = میانه-1; > > برگشت محل بازرسی[حداقل].ارزش; >
شرح
ممکن است تعادل برای بلوک هایی که هنوز استخراج نشده اند درخواست شود. در مورد CHIS ، قرارداد تعادل واقعی آدرس پرس و جو را باز می گرداند در حالی که این یک اطلاعات صحیح نیست زیرا قرارداد در آینده تعادل آدرس پرس و جو را نمی داند.
این نمی تواند به قرارداد Leo Token آسیب برساند ، اما این ممکن است خدمات شخص ثالثی را که با توابع TotalSupplyat یا TaleOfat کار می کنند ، گیج کند.
3. 3 عملکرد void eciveapproval
شدت: کم
قطعه کد
تابع تصویب(نشانی _spender, uint256 _میزان, بایت خاطره _extradata ) عمومی بازگرداندن (بول موفقیت) نیاز(تایید(_spender, _میزان)); تصویب(_spender).دریافتی( مگس.فرستنده, _میزان, نشانی(این), _extradata ); برگشت درست است، واقعی; >
قرارداد تصویب تابع دریافتی(نشانی از جانب, uint256 _میزان, نشانی _خاش, بایت خاطره _داده ها) عمومی; >
شرح
بهتر است اگر عملکرد ReceiveApproval در اجرای موفقیت آمیز برگردد. در غیر این صورت ، عملکرد احتمالی برگشتی ممکن است فراخوانی دریافت کننده دریافت را انجام دهد بدون اینکه باعث عدم موفقیت معامله شود ، حتی اگر قرارداد گیرنده عملکرد دریافتی را اجرا نکند.
3. 4 Tokenfective قابل ارتقا نیست
شدت: مشاهده جزئی / مسئله غیر امنیتی
شرح
پیش فرض Minime Token با ارتقاء قابل ارتقاء طراحی شده است ، اما قرارداد TokenFactory که مسئولیت فرآیند ارتقاء را بر عهده دارد ، امکان اجرای ویژگی ها/عملکردهای جدید را ندارد زیرا فقط با استفاده از همان نسخه از قرارداد Minimetoken استفاده می شود.
آدرس TokenFactory را نمی توان در قرارداد مستقر به روز کرد.
3. 5 مالک ممکن است انتشار را به صورت دستی کنترل کند
شدت: امتیازات مالک / مسئله غیر امنیتی
قطعه کد
/// @اطلاع`OnlyOwner" می تواند قرارداد کنترلر را ارتقا دهد /// پارام_newControllerAddress آدرس که منطق کنترل توکن را خواهد داشت تابع کنترل کننده(نشانی _newControllerAddress) عمومی تنها صاحب توکن.تغییر دهنده(_newControllerAddress); بیرون ریختن کنترولر ارتقاء(_newControllerAddress); >
تابع ژنراتوکسن(نشانی _ صاحب, عود _میزان ) عمومی تنها کنترل کننده بازگرداندن (بول) عود curtotalsupply = مطبوع(); نیاز(curtotalsupply + _میزان >= curtotalsupply); // بررسی سرریز عود قبلی = تعادل(_ صاحب); نیاز(قبلی + _میزان >= قبلی); // بررسی سرریز به روزرسانی valueatnow(دارای تاریخچه, curtotalsupply + _میزان); به روزرسانی valueatnow(موازنه[_ صاحب], قبلی + _میزان); بیرون ریختن انتقال(نشانی(0), _ صاحب, _میزان); برگشت درست است، واقعی; >
تابع Destroytokens(نشانی _ صاحب, عود _میزان ) تنها کنترل کننده عمومی بازگرداندن (بول) عود curtotalsupply = مطبوع(); نیاز(curtotalsupply >= _میزان); عود متعادل قبلی = تعادل(_ صاحب); نیاز(متعادل قبلی >= _میزان); به روزرسانی valueatnow(دارای تاریخچه, curtotalsupply - _میزان); به روزرسانی valueatnow(موازنه[_ صاحب], متعادل قبلی - _میزان); بیرون ریختن انتقال(_ صاحب, نشانی(0), _میزان); برگشت درست است، واقعی; >
شرح
مالک می تواند قرارداد کنترلر را بدون هیچ گونه محدودیتی به روز کند.
از لحاظ تئوریکی ، قرارداد کنترلر می تواند به روز شود تا بتواند نشانه های جدید را نعناع کند یا هر نشانه ای را در هر آدرس سوزاند. اگر این اتفاق بیفتد ، معاملات برای مشاهده همه در دسترس خواهد بود.
3. 6بررسی آدرس صفر
شدت: کم
قطعه کد
تابع تغییر دهنده(نشانی _newController) عمومی تنها کنترل کننده بیرون ریختن کنترل شده(کنترل کننده, _newController); کنترل کننده = _newController; >
شرح
هیچ بررسی آدرس صفر در توابع ChangeController در خط 76 وجود ندارد.
3. 7امتیازات مالک
شدت: امتیازات مالک / مسئله غیر امنیتی
شرح
مالک می تواند نقل و انتقالات را در هر زمان که بخواهد غیرفعال کند.
4. نتیجه گیری
قرارداد هوشمند بررسی شده حاوی هیچگونه آسیب پذیری امنیتی با شدت متوسط یا بالا یا مسائل دیگر نیست. این قرارداد می تواند بدون هیچ گونه خطر جدی از طرف فنی استفاده شود.
- توکن LEO با استاندارد Token ERC20 سازگار است.
- توکن لئو مستعد آسیب پذیری های امنیتی ERC20 نیست.
- Leo Token مستعد حمله مجدد نیست.
5. آشکار کردن گزارش های حسابرسی
بازار فارکس...
ما را در سایت بازار فارکس دنبال می کنید
برچسب :
نویسنده : زکریا هاشمی
بازدید : <-PostHit->
تاريخ : دوشنبه
16 مرداد
1402 ساعت: 17:20