استاندارد ERC20
مقدمه
اگر به دنبال نوشتن قرارداد هوشمند در بستر بلاک چین اتریوم هستید، حتما واژه ERC20 به گوشتان خورده است. در این مقاله میخواهیم توضیح دهیم که این استاندارد چیست و استفاده از آن در نوشتن قرارداد هوشمند چه مزایا و معایبی دارد.
استاندارد ERC20
بخش ERC در ERC20 مخفف عبارت Ethereum Request for Comments است. RFC خلاصه شده عبارت Request For Comment بوده و اسناد RFC مجموعه اي از يادداشت هاي تکنيکي و سازمان يافته ميباشند که پيرامون اينترنت و مباحث جنبي آن رشد پيدا کردهاند. اين اسناد که از سال ۱۹۶۹ ميلادي تا به امروز در حال تنظيم و توسعه هستند، حاوي بسياري از مفاهيم شبکه هاي کامپوتري مثل قراردادها (پروتکل ها)، رويه ها، برنامه ها و مفاهيم انتزاعي ميباشند. مرکز رسمی برای تبيين و نظارت بر اين قراردادها سازمان IETF ميباشد.
به زبان سادهتر ERC، پروتکل رسمی برای بهبود بلاک چین اتریوم است. عدد ۲۰ هم نشان دهنده یک شناسه خاص برای پروتکل ERC20 میباشد. این پروتکل در سال های اخیر نقش اساسی در صنعت بلاک چین و ارزهای دیجیتالی داشته است و کمک کرده تا هزاران برنامه غیر متمرکز (DApps) در یک پلتفرم به صورت استاندارد توسعه یابند.
استاندارد ERC20 به توسعه دهندگان و شرکت ها اجازه میدهد تا پروژه های خود را توکنیزه کرده و از طریق ICO جذب سرمایه کنند. این استاندارد مجموعهای از توابع پایهای است که توسعه دهندگان برنامه در بستر بلاک چین اتریوم باید آنها را پیادهسازی کنند تا توکن آنها یک توکن ERC۲۰ باشد. هرچند که استفاده از این استاندارد اجباری نیست، ولی اکثر توسعه دهندگان آن را رعایت میکنند تا مطمئن باشند که توکن آنها میتواند با انواع کیف پول ها، صرافی ها و قراردادهای هوشمند بدون مشکل کار کند.
شرایط استاندارد ERC20
برای اینکه توکن شما یک توکن ERC20 باشد و بتواند به راحتی با سایر قراردادهای هوشمند ارتباط بگیرد، ۶ تابع خاص باید در قرارداد هوشمند توکن شما پیاده سازی شده باشد.
خدمات توکن های ERC20
- ارائه تعداد کل توکن های عرضه شده
- ارائه موجودی حساب کاربری
- انتقال توکن از یک فرد به فرد دیگر
- موافقت با استفاده از توکن به عنوان دارایی پولی
تفاوت توکنهای ERC20 و کوین هایی با بلاک چین مستقل
توکن ها در بستر بلاک چین اتریوم، داراییهایی هستند که ارزش دارند. آنها همانند بیت کوین، لایت کوین و اتریوم ارسال و دریافت میشوند. تفاوت این توکن ها با ارزهای دیجیتالی که مانند بیت کوین بلاک چین جداگانه دارند، این است که این توکن ها از آدرس های اتریوم استفاده میکنند و تراکنش های خود را روی بلاک چین اتریوم میفرستند؛ درحالی که کوینی مثل بیت کوین، بلاک چین مخصوص خودش را دارد و تراکنش های آن روی بلاک چین بیت کوین ثبت میشوند.
مزایای توکنهای ERC20
پیش از اینکه این استاندارد به وجود بیاید، برنامه نویسها از اسامی متفاوتی برای نوشتن کد خود استفاده میکردند. برای مثال یکی از اسم تابع totalAmount برای ارائه تعداد کل توکنهای عرضه شده استفاده میکرد و دیگری از totalNumber. به دنبال آن کیف پولها و صرافیها برای ارتباط گرفتن با هر توکن مجبور بودند کد هر توکن را بخوانند و برای ارتباط با آن توکن، تغییرات لازم را در پلتفرم خود اعمال کنند. بنابراین استفاده از یک استاندارد مشخص مزایای زیر را دارد:
- یکریختی توکنها
- سادگی لیست شدن در اکسچنج ها برای ترید
- سادگی برای ارتباط با سایر قراردادهای هوشمند
- سادگی برای تعامل با کیف پول های مختلف
معایب استاندارد ERC20
مسائلی وجود دارد که استاندارد ERC۲۰ به آنها نپرداخته است. در این استاندارد گیرنده از دریافت توکن مطلع نمیشود و این امر میتواند منجر به از دست رفتن سرمایه کاربر شود. برای مثال اگر شما توکنهای خود را به آدرس قرارداد هوشمند یک توکن ERC20 دیگر ارسال کنید، توکن های شما در آن آدرس گیر میافتد؛ درحالی که چنین تراکنش هایی باید برگشت بخورند. تا آخر سال ۲۰۱۷ حدودا ۳ میلیون دلار به این دلیل از دست رفته است.
برای حل این مشکل جامعه اتریوم اکنون استاندارد جدیدی به نام ERC-223 معرفی کرده است. این استاندارد اجازه نمیدهد که توکن به آدرسی که از دریافت آن توکن پشتیبانی نمیکند، ارسال شوند.
مشکل نرم افزاری batchOverflow مشکل دیگری است که این استاندارد محدودیتی برای آن در نظر نگرفته است. وجود این مشکل در یک توکن میتواند منجر به خرج کردن مبلغی بیش از موجودی، از یک آدرس شود. در ماه آوریل سال ۲۰۱۸ به دلیل این مشکل نرم افزاری، تعدادی از صرافیها امکان برداشت و واریز تعدادی از توکنهای ERC20 را موقتا بستند. این مشکل، همان مشکل کلاسیک سرریزی نوعی داده به نام integer است که هکرها از طریق آن میتوانند مقداری زیادی توکن بدست آورند.
منبع : وال هالا کریپتو