امنیت توکن و پروژه های ارز دیجیتال
این قسمت دوم از سری مقالات امنیت توکنها است اگر قسمت قبلی را مطالعه نکردید میتوانید از لینک امنیت توکنها – قسمت 1 مشاهده کنید. در قسمت قبل خیلی خلاصه و مفید گفتیم قرارداد هوشمند و کد یک پروژه و توکن چیست و از کجا میتوان آن را پیدا کرد. در ادامه به این میپردازیم که اگر هرکدام از عبارات زیر در آن کد باشد چه تاثیری دارد.
تابع یا Function
هر کدام از دستورات برنامه نویسی در کد هر پروژه که عمدتا با زبان سالیدیتی برنامه نویسی شده است درون یک تابع پیادهسازی میشود و خیلی ساده ما چندین تابع داریم که هر کدام یک بخش پروژه را کارکردش را توضیح میدهند وجود بعضی تابعها امکان و دسترسی تغییرات و دستکاری و مسدود کردن پروژه را به صاحب پروژه و توکن میدهد. ما به دنبال بررسی این هستیم که بعضی از این تابعها در پروژه وجود نداشته باشد چون بعدا دردرسر ساز میشوند.
ما وجود تابع را در دو سطح بررسی میکنیم بعضی توابع در سطح هشدار هستند یعنی اگر نباشند بهتر است ولی در صورت وجود هم میتوان همچنان آن پروژه را خوب توصیف کرد. سطح بعدی بحرانی هستند یعنی اگر آن تابع باشد باید از خرید آن پروژه و معامله روی آن صرف نظر کنید.
تابع Mint Function
سطح: هشدار
این تابع به صاحب و Owner آن توکن اجازه میدهد هر زمانی بتواند تعداد توکنها را زیاد کند یعنی یک پروژه در شروع عنوان کرده حداکثر تعداد توکنها 1 میلیون عدد است و هر زمانی اجازه دارد هر تعدادی اضافه کند. این دسترسی و اجازه به صاحب پروژه همیشه بد نیست ولی به هر حال نبودش بهتر است ولی تا امروز مورد خاصی نبوده که با وجود این تابع مشکل ساز شده باشد.
تابع Owner Can Change Balance
سطح: بحرانی
این تابع به صاحب پروژه این امکان را میدهد تا موجودی کیف پولها را تغییر دهد یعنی شما 1000 توکن خریدید و بعد میبینید در کیف پول خود هیچ توکنی ندارید! کاملا مشخص است این تابع کاملا دسترسی عجیبی به صاحب پروژه میدهد و بسیار ریسکی است.
تابع Proxy Contract
سطح: بحرانی
بسیار مهم و خطرناک، این تابع به صاحب پروژه دسترسی میدهد که هر زمانی دلش خواست کدهای داخل قرارداد هوشمند یا اسمارت کانترکت را تغییر دهد! این موضوع بسیار خطرناک است. هیچ زمانی سمت این توکنها نرید.
تابع Blacklist
سطح: بحرانی
این مورد هم فوق العاده خطرناک است و اصلا سمت این پروژهها نرید. این تابع اجازه میدهد صاحب پروژه آدرس شما را در بلک لیست قراردهد و شما نتوانید خرید و فروش کنید. بسیار مورد بدی است و اصلا نباید این مورد در قرارداد باشد.
تابع Trading Cooldown
سطح: هشدار
این تابع اجازه میدهد صاحب پروژه یک بازه زمانی تعریف کند تا شما بلافاصله بعد از خرید نتوانید بفروشید مثلا تعریف کند 5 روز بعد از خرید بتوانید بفروشید و عملا شما در آن 5 روز هیچ کاری نمیتوانید انجام دهید.
ادامه بررسی توابع و توضیحات را در قسمت بعدی همراه ما باشید.