استاندارد ERC۲۰ چیست؟

اگر به دنبال نوشتن قرارداد هوشمند در بستر بلاک چین اتریوم هستید، حتما واژه ERC۲۰ به گوشتان خورده است. در این مقاله می‌خواهیم توضیح دهیم که این استاندارد چیست و استفاده از آن در نوشتن قرارداد هوشمند چه مزایا و معایبی دارد.

بخش ERC در ERC۲۰ مخفف عبارت Ethereum Request for Comments است. RFC خلاصه شده عبارت Request For Comment بوده و اسناد RFC مجموعه اي از يادداشت هاي تکنيکي و سازمان يافته مي‌باشند که پيرامون اينترنت و مباحث جنبي آن رشد پيدا کرده‌اند. اين اسناد که از سال ۱۹۶۹ ميلادي تا به امروز در حال تنظيم و توسعه هستند، حاوي بسياري از مفاهيم شبکه هاي کامپوتري مثل قراردادها (پروتکل ها)، رويه ها، برنامه ها و مفاهيم انتزاعي مي‌باشند. مرکز رسمی برای تبيين و نظارت بر اين قراردادها سازمان IETF مي‌باشد.

به زبان ساده‌تر ERC، پروتکل رسمی برای بهبود بلاک چین اتریوم است. عدد ۲۰ هم نشان دهنده یک شناسه خاص برای پروتکل ERC۲۰ می‌باشد. این پروتکل در سال های اخیر نقش اساسی در صنعت بلاک چین و ارزهای دیجیتالی داشته است و کمک کرده تا هزاران برنامه غیر متمرکز (DApps) در یک پلتفرم به صورت استاندارد توسعه یابند.

استاندارد ERC۲۰ به توسعه دهندگان و شرکت ها اجازه می‌دهد تا پروژه های خود را توکنیزه کرده و از طریق ICO جذب سرمایه کنند. این استاندارد مجموعه‌ای از توابع پایه‌ای است که توسعه دهندگان برنامه در بستر بلاک چین اتریوم باید آنها را پیاده‌سازی کنند تا توکن آنها یک توکن ERC۲۰ باشد. هرچند که استفاده از این استاندارد اجباری نیست، ولی اکثر توسعه دهندگان آن را رعایت می‌کنند تا مطمئن باشند که توکن آنها می‌تواند با انواع کیف پول ها، صرافی ها و قراردادهای هوشمند بدون مشکل کار کند.

شرایط استاندارد ERC۲۰

برای اینکه توکن شما یک توکن ERC۲۰ باشد و بتواند به راحتی با سایر قراردادهای هوشمند ارتباط بگیرد، ۶ تابع خاص باید در قرارداد هوشمند توکن شما پیاده سازی شده باشد. این توابع و ورودی و خروجی آنها عبارتند از:

// ----------------------------------------------------------------------------
// ERC Token Standard #۲۰ Interface
// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-۲۰-token-standard.md
// ----------------------------------------------------------------------------
contract ERC۲۰Interface {
    function totalSupply() public constant returns (uint);
    function balanceOf(address tokenOwner) public constant returns (uint balance);
    function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
    function transfer(address to, uint tokens) public returns (bool success);
    function approve(address spender, uint tokens) public returns (bool success);
    function transferFrom(address from, address to, uint tokens) public returns (bool success);

    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}

 

دو مورد آخر رویداد هستند و برای نوشتن روی لاگ بلاک چین استفاده می‌شوند.

با پیاده‌سازی این توابع، توکن های ERC۲۰ باید بتوانند ۴ فعالیت زیر را انجام دهند:

  • ارائه تعداد کل توکن های عرضه شده
  • ارائه موجودی حساب کاربری
  • انتقال توکن از یک فرد به فرد دیگر
  • موافقت با استفاده از توکن به عنوان دارایی پولی

تفاوت توکن‌های ERC۲۰ و کوین های با بلاک چین مستقل

توکن ها در بستر بلاک چین اتریوم، دارایی‌هایی هستند که ارزش دارند. آنها همانند بیت کوین، لایت کوین و اتریوم ارسال و دریافت می‌شوند. تفاوت این توکن ها با ارزهای دیجیتالی که مانند بیت کوین بلاک چین جداگانه دارند، این است که این توکن ها از آدرس های اتریوم استفاده می‌کنند و تراکنش های خود را روی بلاک چین اتریوم می‌فرستند؛ درحالی که کوینی مثل بیت کوین، بلاک چین مخصوص خودش را دارد و تراکنش های آن روی بلاک چین بیت کوین ثبت می‌شوند.

مزایای توکن‌های ERC۲۰

پیش از اینکه این استاندارد به وجود بیاید، برنامه نویس‌ها از اسامی متفاوتی برای نوشتن کد خود استفاده می‌کردند. برای مثال یکی از اسم تابع totalAmount برای ارائه تعداد کل توکن‌های عرضه شده استفاده می‌کرد و دیگری از totalNumber. به دنبال آن کیف پول‌ها و صرافی‌ها برای ارتباط گرفتن با هر توکن مجبور بودند کد هر توکن را بخوانند و برای ارتباط با آن توکن، تغییرات لازم را در پلتفرم خود اعمال کنند. بنابراین استفاده از یک استاندارد مشخص مزایای زیر را دارد:

  1. یکریختی توکن‌ها
  2. سادگی لیست شدن در اکسچنج ها برای ترید
  3. سادگی برای ارتباط با سایر قراردادهای هوشمند
  4. سادگی برای تعامل با کیف پول های مختلف

معایب ERC۲۰

مسائلی وجود دارد که استاندارد ERC۲۰ به آنها نپرداخته است. در این استاندارد گیرنده از دریافت توکن مطلع نمی‌شود و این امر می‌تواند منجر به از دست رفتن سرمایه کاربر شود. برای مثال اگر شما توکن‌های خود را به آدرس قرارداد هوشمند یک توکن ERC۲۰ دیگر ارسال کنید، توکن های شما در آن آدرس گیر می‌افتد؛ درحالی که چنین تراکنش هایی باید برگشت بخورند. تا آخر سال ۲۰۱۷ حدودا ۳ میلیون دلار به این دلیل از دست رفته است.

برای حل این مشکل جامعه اتریوم اکنون استاندارد جدیدی به نام ERC-۲۲۳ معرفی کرده است. این استاندارد اجازه نمی‌دهد که توکن به آدرسی که از دریافت آن توکن پشتیبانی نمی‌کند، ارسال شوند.

مشکل نرم افزاری batchOverflow مشکل دیگری است که این استاندارد محدودیتی برای آن در نظر نگرفته است. وجود این مشکل در یک توکن می‌تواند منجر به خرج کردن مبلغی بیش از موجودی، از یک آدرس شود. در ماه آوریل سال ۲۰۱۸ به دلیل این مشکل نرم افزاری، تعدادی از صرافی‌ها امکان برداشت و واریز تعدادی از توکن‌های ERC۲۰ را موقتا بستند. این مشکل، همان مشکل کلاسیک سرریزی نوع داده‌ای integer است که هکرها از طریق آن می‌توانند مقداری زیادی توکن بدست آورند.


54321
امتیاز 4.6 از 15 رای

منبع میهن بلاکچین
ممکن است شما دوست داشته باشید

ارسال نظر

  اشتراک  
جدید ترین قدیمی ترین محبوب ترین
اطلاع از
Erfn Aqapour

ادرسشو از کجا بگیرم ادرس کیف پولو

ادمین سایت

با سلام
آدرس کدوم کیف پول رو منظورتونه؟

mohammad g

سلام.من در ایردراپها شرکتمیکنم ک اکثرا RC20پخش میکنن اما ایا اینکافی است که من فقط ادرس کیف پول اتریومم را که از RC20پشتیبانی میکند میفرستم؟یا حتما ان کیف ک پول ک دارم باید ان توکن را در لیست خود داشته باشد؟چون یکماهه کار میکنم و هیچ توکنی نگرفتم خیلی گیج شدم لطفا راهنماییم کنید و کاملا توضیح بدیدن با تشکر

ادمین سایت

با سلام
شرکت در ایردراپ ها یک سری ملزوماتی داره که باید انجام بدید، بعضیاش خودکار به هر کیف پول اتریوم ریخته میشه بعضیا هم باید ثبت نام کنید، پیشنهاد میکنم مقاله ایردراپ چیست رو مطالعه کنید.

mohammad g

تشکر

عضویت در کانال تلگرام میهن بلاکچین