ERC20 مجموعهای از قواعد و مقرراتی است که به شما کمک میکند یک قرارداد هوشمند را به همراه توکنهایش بر بستر اتریوم بسازید. ERC کوتاهشدهی عبارت Ethereum Request for Comment است و عدد ۲۰ شمارهای بوده که به این درخواست تخصیص میشود.
زمانی که یک قرارداد هوشمند قصد ایجاد یک توکن در پلتفرم اتریوم را داشته باشد، توکن ERC20 وارد بازی میشود. در حقیقت ERC20 زبان مشترکی است که تمام قراردادهای هوشمند اتریوم از آن استفاده میکنند. این زبان به توکنها، امکان مبادله شدن توسط یکدیگر را میدهد. برای چگونگی نحوهی کار این استاندارد مثالی میزنیم.
فرض کنید میخواهیم یک بازی بسازیم که کاربران با استفاده از توکنی که برای این بازی طراحی شده است قابلیتهایی را در مراحل مختلف بازی به دست آورده و با یکدیگر به رقابت میپردازند. کاربران برای اینکه بتوانند وارد این بازی شوند باید توکن ما را با استفاده از یکی از ارزهای مجازی مثل بیتکوین یا غیره بخرند.
در ادامه هر یک از قوانین ERC20 را بررسی خواهیم کرد، اما ابتدا با فیلدهای اختیاری این استاندارد شروع میکنیم. فیلدهای اختیاری استاندارد ERC20 شامل موارد زیر است:
- اسم توکن (Token name): نامی است که به توکن پلتفرم خود اختصاص میدهید.
- نماد یا علامت اختصاری (Symbol): نماد اختصاری مربوط به توکن است.
- تعداد اعشار (Decimal): در حقیقت شما در این فیلد، میزان تقسیمپذیری توکن خود را تعیین مینمایید. مثلا اگر مقدار این فیلد را ۱ قرار دهیم، کمترین مقدار توکن در پلتفرم ما ۰/۱ میشود.
برای مثال بازی فیلدهای اختیاری را به شکل زیر قرار میدهیم:
- اسم توکن: ArzdigitalGame
- نماد اختصاری توکن: AGM
- اعشار کمترین مقدار: ۲ رقم اعشار
فیلدهای اجباری استاندارد ERC20 عبارتند از:
- مقدارکلی (Total Supply): تعداد کل توکنهایی است که برای پلتفرم خود در نظر میگیریم.
- موجودی (balance of): این متغیر تعداد توکنهای مربوط به هر آدرس کاربری را نشان میدهد.
- انتقال (Transfer): فرآیند تخصیص توکنهای اولیه به کاربران است.
- انتقال از (Transfer From): تابع transferFrom به یک بازیکن امکان میدهد به بازیکنی دیگر توکن بفرستد.
- تایید (approve): این تابع،تراکنشها را بر مبنای تعداد کلی توکنها میسنجد.
- مجوز (allowance): این تابع، موجودی حساب هر بازیکن را چک کرده و در صورتی که تعداد توکنها کافی نباشد تراکنش را کنسل میکند.
حالا با استفاده از این فیلدها میتوانیم مشخص کنیم که:
- تعداد کل توکنها چقدر باشد.
- موجودی هر کاربری که در ابتدا توکن برای او ارسال میشود چه مقدار باشد.
- به چه کسانی توکنها ارسال شوند.
مزایا
این توکنها، در حقیقت همه چیز را ساده مینمایند. قبل از روی کار آمدن آنها، هر برنامهای زبان و اصطلاحات مخصوص به خود را داشت. مثلا یک توکن برای نشان دادن مقدار کلی از عبارت totalAmount استفاده کرده درحالی که دیگری از عبارت totalNumber استفاده میکرد.
در صورت نبودن این استانداردها، تیم توسعه دهنده نرم افزار باید وقت و هزینه زیادی را صرف ساخت بلاک چین و توکن میکرد. همچنین صرافی و کیفپولها میبایست پلتفرم خود را با تکتک زبانها و استانداردهای توکنها سازگار میکردند. با داشتن یک استاندارد جهانی، هر توکن جدید قادر است به طور خودکار به یک صرافی یا کیف پول اضافه گردد.
استاندارد ERC20، فرآیند ایجاد یک توکن را بسیار آسان کرده است به همین علت بود که اتریوم محبوبترین پلتفرم ICOها در سال ۲۰۱۷ شناخته شد.
معایب
توکنهای ERC20 بدون مشکل نیستند. در حقیقت ممکن است به صورت ناخواسته زمانی که به عنوان یک روش پرداخت به جای اتر در قراردادهای هوشمند به کار میروند، تخریب شوند. ۳ میلیون دلار به علت همین نقص از دست رفته است. برای رفع این مشکل اتریوم به دنبال ایجاد استاندارد جدیدی به نام ERC-223 است.