توکن ERC20 توکن هایی هستند که در پلتفرم اتریوم طراحی و در آن استفاده میشوند. آنها مجموعهای از استانداردها را دنبال میکنند تا بتوانند به اشتراک گذاشته شوند، با سایر توکنها تبادل شوند و یا به کیف پول دیجیتال منتقل شوند. جامعه اتریوم (Ethereum) این استانداردها را با سه قانون اختیاری و شش قانون اجباری ایجاد کرده است.
قوانین اختیاری
- نام توکن (Token Name)
- سمبل (Symbol)
- اعشار (حداکثر ۱۸) (Decimal)
قوانین اجباری
- عرضهی کل (totalSupply)
- تعادل (balanceOf)
- انتقال (transfer)
- انتقال از (transferFrom)
- تایید (approve)
- کمک هزینه (allowance)
سردرگم شدید؟ بیایید کمی به عقب برگردیم.
در وهله اول، اتریوم چیست؟
اتریوم (ETH) یک شبکهی غیرمتمرکز از رایانهها با دو عملکرد اساسی است.
آنها عبارتند از: بلاک چین که میتواند تراکنشها را ثبت کند و یک ماشین مجازی که میتواند قراردادهای هوشمند ایجاد کند.
به دلیل این دو عملکرد، اتریوم قادر است از برنامههای غیرمتمرکز (DApps) پشتیبانی کند. این Dappها با بلاک چین اتریوم موجود ساخته شدهاند و از فنآوری اساسی آن استفاده میکنند. در عوض، اتریوم از توسعه دهندگان بابت نیروی محاسبه در شبکهی خود هزینه میگیرد که فقط با اتر، تنها ارز بین پلتفرمی، قابل پرداخت است.
DAPP ها بسته به هدفشان ممکن است توکنهای ERC-20 را با عملکرد ارز ایجاد کنند، بعنوان سهمی در شرکت، برای امتیاز در برنامهی متعهد بودن و یا حتی اثبات مالکیت، مثلاً مقدار طلا یا سند خانه.
قراردادهای هوشمند در کجای این سیستم قرار دارد؟
از قراردادهای هوشمند برای ایجاد توکنهای ERC-20 استفاده میشود. آنها همچنین برای تسهیل تراکنشهای توکنها و ثبت موجودی توکن هر حساب استفاده میشوند. قراردادهای هوشمند بر اساس منطق If-This-then-That) IFTTT) به زبان برنامه نویسی “Solidity” نوشته میشوند. به این بعنوان یک ماشین فروش نگاه کنید.
پس از اینکه یک قرارداد هوشمند یک توکن ایجاد میکند، چه اتفاقی میافتد؟
اینجاست که ERC 20 وارد میشود. پس از ایجاد توکن، میتوان از آن برای معامله، خرج کردن و یا ارائه به شخص دیگری استفاده کرد. ERC-20 یک زبان جهانی است که تمام توکنهای شبکهی اتریوم از آن استفاده میکنند و اجازه میدهد تا یک توکن با توکن دیگر معامله شود.
بیایید تصور کنیم که میخواهیم یک کازینوی ارز دیجیتال درست کنیم. درست مثل یک کازینوی معمولی، ما میخواهیم بازیکنانمان برای سادگی از ژتونهای ما استفاده کنند. بنابراین، یک بازیکن فیات خود را با توکنهای ما عوض میکند و به یک میز پوکر میرود.
متوجه شباهت مثال شدم، اما ERC-20 دقیقاً چگونه کار میکند؟
بیایید به هر یک از قوانین ERC-20 در مثال “کازینوی دیجیتال” خود نگاه کنیم. رعایت آنها توسط توسعه دهندگان بسیار مهم است.
بیایید با قوانین اختیاری شروع کنیم:
- نام توکن: Blue Chip
- نماد: BLU
- اعشار: ۲ *
* ما میخواهیم توکنهایمان قابل تقسیم باشد تا حداقل شرط بندی بازیکنان ۰.۰۱ BLU باشد. ما میتوانیم اعشار را ۰ بگذاریم و ۱ BLU را حداقل قرار دهیم یا اعشار را به ۱۸ برسانیم و در نتیجه ۰.۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱ BLU را بعنوان کمترین تقسیم شود، اما اجازه دهید مثال را ساده نگه داریم.
و حالا قوانین اجباری: totalSupply چیست؟
totalSupply تعداد کل توکنهای ERC-20 ایجاد شده را مشخص میکند.
اولین چیزی که کازینوی ما باید داشته باشد، تعداد کل توکنهای BLU در گردش است. فرض کنیم میز پوکر ما در کل ۱۰ BLU و ده بازیکن دارد.
انتقال(transfer) چیست؟
انتقال اجازه میدهد تعداد مشخصی از توکنها از کل منبع(total supply) به حساب کاربری منتقل شود. قبل از شروع بازی، بازیکنان باید BLU خود را از فروشنده دریافت کنند. هر بازیکن ۱ BLU دریافت میکند.
عملکرد [balanceOf] چه کاری انجام میدهد؟
هنگامی که عملکرد [balanceOf] انجام میشود، تعداد توکنهایی را که آدرس داده شده در حساب خود دارد، برمیگرداند.
در دست اول بازی پوکر ما، ۵ بازیکن به کارتهای خود نگاه میکنند و تصمیم میگیرند بازی نکنند. هر ۵ نفر باقیمانده تصمیم میگیرند .۰.۵ BLU شرط بندی کنند. با استفاده از [balanceOf]، میبینیم که پنج بازیکن دارای ۱ BLU و پنج بازیکن دیگر دارای ۰.۵ BLU هستند.
چگونه میتوان از سایر کاربران توکنهای ERC20 دریافت کرد؟
[transferFrom] عملکردی است که به کاربر اجازه میدهد توکنها را به کاربر دیگری منتقل کند.خبر خوب! شما دست اول را بردید و ۲.۵ BLU از بازیکنان دیگر دریافت کردید.
اما برای گرفتن توکنها از آنها، شما به [transferFrom] نیاز دارید. بدون این عملکرد، چه چیزی مانع از سرقت BLU توسط دیگران شود؟
آیا راهی برای ساختن توکن جعلی وجود دارد؟
در واقع نه، زیرا [تأیید (approve)] تراکنشها را درمقابل عرضهی کل توکنها بررسی میکند.
به این ترتیب اطمینان حاصل میکند که هیچ توکن گم شده یا اضافی وجود ندارد.
راه دیگر برای محافظت از امنیت بازی پوکر فرضی ما این است که اطمینان حاصل شود که هیچکس BLU اضافی به میز نیاورده است. بنابراین، [تأیید] با بررسی اینکه تعداد کل BLU روی میز برابر ۱۰ است، امکان مبادله را فراهم میکند.
آیا میتوانم به دروغ بگویم که تعداد توکنهای من بیش از حد واقعی است؟
خیر. قبل از انجام تراکنش، عملکرد [allowance] موجودی حساب کاربر را بررسی میکند و در صورت عدم وجود توکن کافی، تراکنش را لغو میکند. ما اجازه پرداخت اعتباری را در “کازینوی رمزنگاری” خود نمیدهیم، بنابراین باید اطمینان حاصل کنیم که هر بازیکن BLU کافی برای شرط بندی خود را دارد. اگر آنها فقط ۱ BLU داشته باشند، نمیتوانند ۲ BLU شرطب ندی کنند.
مزایای ERC-20 چیست؟
اصولاً همه چیز را سادهتر میکند. قبل از توکنهای ERC-20، توسعه دهندگان ممکن است از اصطلاحات دیگری در کد استفاده کرده باشند. به عنوان مثال یک توکن از [totalAmount] استفاده میکند در حالی که دیگری از [totalNumber] استفاده میکند. صرافیها و کیف پولها هر یک نیاز به ساخت پلتفرم خود داشتند تا بتوانند به کد توکن خود اختصاص دهند. با یک استاندارد جهانی میتوان به صورت خودکار، توکنهای جدید را پس از ساخته شدن در صرافیها قرار داد یا به کیف پول منتقل کرد. ERC-20 همچنین ایجاد توکنهای جدید را بسیار آسان میکند و به همین دلیل اتریوم به محبوب ترین پلت فرم ICO در سال ۲۰۱۷ تبدیل شده است.
تفاوت تتر trc20 با erc20
آیا ERC-20 مشکلی دارد؟
ERC20 کامل نیست. چندین مشکل وجود دارد که استانداردهای توکن ERC-20 به آنها پاسخ نمیدهد. موقعیتهایی وجود دارد که در آنها ممکن است به جای استفاده از اتر، توکنها به عنوان هزینهی یک قرارداد هوشمند استفاده شوند و بدین گونه ناخواسته از بین بروند. حدود ۳ میلیون دلار به دلیل این مشکل از دست رفته است.
برای رفع این اشکال، مجموعهی اتریوم در حال حاضر روی استاندارد جدیدی به نام ERC-223 کار میکند. این استانداردها با ERC-20 سازگار نیستند، بنابراین توسعه دهندگان تمایل دارند تا زمان دستیابی به سازگاری، استفاده از ERC-20 را ادامه دهند.
در آپریل ۲۰۱۸، تعدادی از صرافیها به دلیل اشکال batchOverflow، سپردههای توکن و برداشت توکنهای مبتنی بر اتریوم را به حالت تعلیق درآوردند. این مسئله به عنوان “مسئله integer overflow” توصیف میشود و به طور بالقوه ممکن است به یک مهاجم اجازه دهد “مقدار زیادی از توکنها را در اختیار بگیرد”.
اشاره شده است که هیچ رویکرد امنیتی سنتی برای رفع این آسیب پذیری در حال حاضر وجود دارد.
فرضیه کافی است، مثال دنیای واقعی چیست؟
هر توکن در پلت فرم اتریوم یک توکن ERC-20 است. در حال حاضر تعداد آنها ۸۲۸۱۵ است، بیایید نگاهی به برخی ار آنها بیندازیم.
ایاس (EOS)، در حال حاضر شانزدهم ارز دیجیتال بزرگ با تقریبا ۲ میلیارد دلار سرمایه در بازار، در تلاش است تا شبکه ای بسازد که بتواند ارتباطات بین بلاک چینی را به کار بگیرد.
ترون (TRX) در حال حاضر در رتبهی ۱۹ در میان همهی ارزهای دیجیتال قرار دارد و به عنوان “پروتکل منبع باز برای صنعت سرگرمی دیجیتال” توصیف میشود. هدف آن راه اندازی یک پلتفرم محتوا با اکوسیستمی است که افراد خالق محتواهای مختلف را بخ یکدیگر متصل میکند.
ویچین(VEN) ، یک پلت فرم بلاک چین عمومی بسیار مهم و بیستمین ارز دیجیتال از نظر سقف بازار است که در حال برنامه ریزی برای اجرای فنآوری اینترنت اشیا (IoT) میباشد تا به این وسیله با ارائهی کلیدهای خصوصی برای هر محصول، آنها را قابل ردیابی کند.