Skip to main content

ERC-20 چیست

توجه: این سند ترجمه خودکار نسخه اصلی انگلیسی است.

ERC-20 چیست

ERC-20 پرکاربردترین استاندارد توکن در بلاکچین اتریوم است. این استاندارد یک رابط مشترک — مجموعه‌ای از توابع و رویدادها — را تعریف می‌کند که یک قرارداد هوشمند باید برای ایجاد توکن مثلی (fungible) پیاده‌سازی کند. «مثلی» یعنی هر واحد توکن یکسان و قابل تعویض است، همان‌طور که هر اسکناس یک‌دلاری با هر اسکناس یک‌دلاری دیگر برابر است.

ERC مخفف Ethereum Request for Comments است و ۲۰ شمارهٔ پیشنهاد است. این استاندارد در سال ۲۰۱۵ پیشنهاد شد و به الگوی بالفعل ساخت توکن روی اتریوم و زنجیره‌های سازگار با EVM تبدیل شده است. وقتی پروژه‌ای می‌گوید توکنش «ERC-20» است، یعنی قرارداد توکن از این رابط استاندارد پیروی می‌کند و همین، سازگاری با کیف‌پول‌ها، صرافی‌های غیرمتمرکز، رهگیرهای پورتفولیو و سایر قراردادهای هوشمند در سراسر اکوسیستم اتریوم را تضمین می‌کند.

خلاصه: ERC-20 یک استاندارد فنی است که تعریف می‌کند توکن‌های مثلی روی اتریوم چگونه کار کنند — و تضمین می‌کند هر توکن ERC-20 را هر کیف‌پول یا اپلیکیشنی که استاندارد را پشتیبانی می‌کند بتواند ارسال، دریافت و مدیریت کند.

ERC-20 چگونه کار می‌کند

رابط استاندارد

در هستهٔ خود، ERC-20 مجموعه‌ای از توابع را مشخص می‌کند که هر قرارداد توکن سازگار باید پیاده‌سازی کند. این توابع زبان مشترکی فراهم می‌کنند که اپلیکیشن‌های بیرونی (کیف‌پول‌ها، صرافی‌ها، قراردادهای دیگر) می‌توانند بدون هیچ آگاهی از منطق داخلی توکن، از طریق آن با توکن تعامل کنند.

توابع کلیدی عبارت‌اند از:

تابع چه می‌کند
totalSupply() تعداد کل توکن‌های موجود را برمی‌گرداند
balanceOf(address) برمی‌گرداند یک آدرس مشخص چند توکن دارد
transfer(to, amount) توکن‌ها را از آدرس فراخواننده به آدرس دیگری می‌فرستد
approve(spender, amount) به آدرس دیگری (قرارداد هوشمند یا کاربر) اجازه می‌دهد تا سقف مشخصی از توکن‌های فراخواننده را خرج کند
transferFrom(from, to, amount) به یک خرج‌کنندهٔ از پیش تأییدشده اجازه می‌دهد از طرف مالک توکن انتقال انجام دهد
allowance(owner, spender) برمی‌گرداند خرج‌کننده هنوز مجاز است چند توکن از طرف مالک منتقل کند

استاندارد همچنین دو رویداد — Transfer و Approval — را تعریف می‌کند که هنگام جابه‌جایی توکن‌ها یا تغییر مجوزهای خرج صادر می‌شوند. این رویدادها به سیستم‌های بیرونی (مرورگرهای بلاک، ایندکسرها، ابزارهای تحلیلی) امکان می‌دهند فعالیت توکن را بدون پرس‌وجوی مستقیم از قرارداد رهگیری کنند.

چرا استاندارد اهمیت دارد

پیش از پذیرش گستردهٔ ERC-20، هر پروژهٔ توکن رابط سفارشی خودش را می‌ساخت. یعنی کیف‌پول‌ها، صرافی‌ها و سایر اپلیکیشن‌ها باید برای هر توکن جدید کد اختصاصی می‌نوشتند. ERC-20 این مشکل را با ایجاد یک رابط قرارداد جهانی حل کرد: هر اپلیکیشنی که ERC-20 را پشتیبانی می‌کند، به‌طور خودکار همهٔ توکن‌های ERC-20 را پشتیبانی می‌کند؛ چه دیروز ساخته شده باشند چه سال‌ها پیش.

این ترکیب‌پذیری یکی از پایه‌های اکوسیستم اتریوم است. یک صرافی غیرمتمرکز نیازی ندارد بداند یک توکن مشخص چه چیزی را نمایندگی می‌کند یا چه کسی آن را ساخته — اگر توکن رابط ERC-20 را پیاده‌سازی کند، صرافی می‌تواند آن را فهرست کند، معامله کند و تراکنش‌هایش را تسویه کند.

استقرار یک توکن ERC-20

ساخت یک توکن ERC-20 یعنی استقرار قرارداد هوشمندی روی شبکهٔ اتریوم (یا یک زنجیرهٔ سازگار با EVM) که توابع لازم را پیاده‌سازی می‌کند. مستقرکننده نام توکن، نماد، دقت اعشاری و عرضهٔ اولیه را مشخص می‌کند. پس از استقرار، قرارداد تغییرناپذیر است — رابط اصلی توکن قابل تغییر نیست، هرچند برخی پیاده‌سازی‌ها قابلیت‌های اضافی مانند ضرب، سوزاندن یا توقف را از طریق سازوکارهای حاکمیتی دارند.

پایین بودن مانع فنی استقرار توکن ERC-20 هم نقطهٔ قوت است و هم ریسک. نوآوری و آزمایش سریع را ممکن می‌کند، اما یعنی هرکسی می‌تواند توکنی با هر نام و هر هدف اعلامی بسازد. وجود یک توکن ERC-20 دلالتی بر کیفیت، مشروعیت یا ارزش ندارد.

ERC-20 و زنجیره‌های سازگار با EVM

اگرچه ERC-20 برای اتریوم ساخته شد، این استاندارد روی هر بلاکچین سازگار با EVM کار می‌کند. زنجیره‌هایی مانند BNB Smart Chain، Polygon، Arbitrum One، Base و Avalanche همگی توکن‌های ERC-20 را به‌طور بومی پشتیبانی می‌کنند، چون ماشین مجازی اتریوم را پیاده‌سازی کرده‌اند. در برخی از این زنجیره‌ها ممکن است استاندارد نام رسمی متفاوتی داشته باشد (مثلاً BEP-20 در BNB Smart Chain)، اما رابط از نظر کارکردی یکسان است.

یعنی توکن یک پروژه ممکن است «ERC-20» توصیف شود حتی اگر روی زنجیره‌ای غیر از اتریوم مستقر شده باشد. استاندارد یک رابط فنی است، نه یک عنوان مختص زنجیره. آنچه اهمیت دارد این است که قرارداد توکن مجموعه توابع ERC-20 را پیاده‌سازی کند، نه اینکه روی کدام شبکه اجرا شود.

ERC-20 در مقایسه با سایر انواع توکن

بُعد ERC-20 ERC-721 (NFT) ERC-1155 (چندتوکنی) توکن بومی (ETH، SOL)
مثلی بودن مثلی (همهٔ واحدها یکسان) غیرمثلی (هر توکن یکتا) هم مثلی و هم غیرمثلی مثلی
نحوهٔ استقرار قرارداد هوشمند قرارداد هوشمند قرارداد هوشمند تعبیه‌شده در پروتکل
رابط استاندارد transfer، approve، balanceOf ownerOf، safeTransferFrom عملیات دسته‌ای بدون رابط قراردادی استاندارد
کاربرد ارزها، توکن‌های کاربردی، توکن‌های حاکمیتی هنر دیجیتال، دارایی‌های یکتا، هویت آیتم‌های بازی، مجموعه‌های ترکیبی کارمزد گس، استیکینگ، پول پایه

توکن‌های ERC-20 با توکن‌های بومی مانند ETH متفاوت‌اند. در حالی که ETH مستقیماً در پروتکل اتریوم تعبیه شده و بدون قرارداد هوشمند وجود دارد، توکن‌های ERC-20 با استقرار قراردادی که از استاندارد پیروی می‌کند ساخته می‌شوند. هر دو قابل نگهداری و انتقال‌اند، اما ویژگی‌های فنی و نقش‌های متفاوتی در شبکه دارند.

محدودیت‌ها و افزونه‌های ERC-20

اگرچه ERC-20 پرکاربردترین استاندارد توکن است، محدودیت‌های شناخته‌شده‌ای دارد که به افزونه‌ها و بهبودهایی انجامیده است:

  • نبود اعلان هنگام دریافت. وقتی توکن‌ها به یک قرارداد هوشمند فرستاده می‌شوند، قرارداد گیرنده راه خودکاری برای واکنش ندارد. این باعث شده توکن‌ها برای همیشه در قراردادهایی که انتقال ERC-20 را مدیریت نمی‌کنند قفل شوند. استانداردهای ERC-223 و ERC-777 برای حل این مسئله پیشنهاد شدند، هرچند ERC-20 همچنان غالب است.
  • الگوی تأیید دومرحله‌ای. انتقال توکن از طرف آدرس دیگر دو تراکنش می‌خواهد: ابتدا approve و سپس transferFrom. این اصطکاک و هزینهٔ گس اضافه می‌کند. افزونهٔ ERC-2612 (Permit) تأییدهای بدون گس را از طریق امضاهای off-chain ممکن می‌کند.
  • نبود متادیتای درونی. توکن‌های ERC-20 نام و نماد دارند اما راه استانداردی برای گنجاندن متادیتای بیشتر (توضیح، آیکون، لینک مستندات) ندارند. افزونه‌ها و رجیستری‌های off-chain این خلأ را پر می‌کنند.

این محدودیت‌ها از سودمندی عملی ERC-20 نمی‌کاهد. سادگی استاندارد و پشتیبانی جهانی از آن، برای اکثریت قاطع کاربردها بر نقص‌های فنی‌اش می‌چربد.

چرا ERC-20 برای پروژه‌های کریپتو AI اهمیت دارد

بیشتر پروژه‌های کریپتو AI که روی اتریوم یا زنجیرهٔ سازگار با EVM توکن منتشر می‌کنند، از استاندارد ERC-20 استفاده می‌کنند. توکن ممکن است نقش توکن کاربردی (پرداخت محاسبات، دسترسی به خدمات AI)، توکن حاکمیتی (رأی دادن به پارامترهای پروتکل) یا سازوکار کارمزد (پرداخت هزینهٔ استفاده از شبکه) داشته باشد. صرف‌نظر از نقش موردنظر، استفاده از ERC-20 سازگاری توکن با اکوسیستم گسترده‌تر را تضمین می‌کند: کاربران می‌توانند آن را در کیف‌پول‌های استاندارد نگه دارند، در صرافی‌های غیرمتمرکز معامله کنند و از طریق رابط‌های شناخته‌شده با آن تعامل کنند.

برای خوانندگانی که یک پروژهٔ کریپتو AI را ارزیابی می‌کنند، دانستن اینکه توکن ERC-20 است دربارهٔ قالب فنی آن می‌گوید — نه دربارهٔ کاربرد، ضرورت یا ارزش آن. استاندارد توکن به پرسش «توکن از نظر فنی چگونه کار می‌کند؟» پاسخ می‌دهد، اما نه به «چرا پروژه به توکن نیاز دارد؟» یا «آیا توکن واقعاً در خط لولهٔ AI نقشی دارد؟».

کجا در کارت‌های پروژهٔ DecAIHub دیده می‌شود

در یک کارت پروژهٔ DecAIHub، ERC-20 در فیلد Token standard ظاهر می‌شود. وقتی کارت Token standard: ERC-20 را نشان می‌دهد، یعنی توکن پروژه به‌صورت یک قرارداد هوشمند ERC-20 پیاده‌سازی شده است.

فیلد استاندارد توکن صرفاً توصیفی است: قالب فنی توکن را به خوانندگان می‌گوید. باید در کنار فیلد Token model (که نقش توکن را توصیف می‌کند: کاربردی، حاکمیتی، سازوکار کارمزد) و فیلد Main chain (که می‌گوید توکن روی کدام شبکه مستقر است) خوانده شود.

یک پروژه ممکن است روی چند زنجیره توکن داشته باشد — مثلاً یک توکن ERC-20 روی اتریوم و نسخهٔ بریج‌شده روی یک L2 مانند Arbitrum. فیلد استاندارد توکن معمولاً استقرار اصلی را بازتاب می‌دهد.

ERC-20 به‌تنهایی چه چیزی را اثبات نمی‌کند

  • ERC-20 کاربرد توکن را اثبات نمی‌کند. هر قرارداد هوشمندی می‌تواند رابط ERC-20 را پیاده‌سازی کند. استاندارد رفتار فنی توکن را تعریف می‌کند، نه نقش اقتصادی یا ضرورت آن را. پروژه‌ای می‌تواند توکن ERC-20 داشته باشد که هیچ نقشی در خط لولهٔ AI یا اپلیکیشن آن ندارد.
  • ERC-20 مشروعیت را اثبات نمی‌کند. ساخت و استقرار توکن ERC-20 تلاش و هزینهٔ فنی اندکی می‌خواهد. وجود یک توکن شاهدی بر واقعی، کارا یا معتمد بودن پروژهٔ پشت آن نیست.
  • ERC-20 اثبات نمی‌کند پروژه روی اتریوم است. توکن‌های ERC-20 روی بسیاری از زنجیره‌های سازگار با EVM وجود دارند. استاندارد توکن نشان نمی‌دهد توکن روی کدام زنجیره مستقر است — برای این اطلاعات فیلد Main chain را ببینید.
  • ERC-20 توانمندی AI را اثبات نمی‌کند. استاندارد فنی توکن هیچ ارتباطی با این ندارد که پروژه مؤلفهٔ AI واقعی، inference کارا یا مدل‌های قابل راستی‌آزمایی دارد یا نه.
  • ERC-20 عدم تمرکز را اثبات نمی‌کند. خود قرارداد توکن ممکن است کنترل‌های متمرکز داشته باشد: کلیدهای ادمین برای ضرب یا سوزاندن، توابع توقف، پراکسی‌های ارتقا تحت کنترل یک آدرس واحد. استاندارد رابط را تعریف می‌کند، نه مدل حاکمیت را.

اشتباه نگیرید با

  • استاندارد توکن — مفهوم چتری. ERC-20 یک استاندارد توکن مشخص است. دیگر استانداردها شامل ERC-721 (NFTها)، ERC-1155 (چندتوکنی)، BEP-20 (BNB Smart Chain)، SPL (Solana) و توکن‌های بومی‌اند.
  • توکن بومی — ETH توکن بومی اتریوم است که در خود پروتکل تعبیه شده. توکن‌های ERC-20 با استقرار قراردادهای هوشمند روی پروتکل ساخته می‌شوند. هم‌زیست‌اند اما از نظر فنی متفاوت.
  • مدل توکن — مدل توکن نقش توکن را توصیف می‌کند (کاربردی، حاکمیتی، سازوکار کارمزد). استاندارد توکن قالب فنی را توصیف می‌کند. یک توکن می‌تواند هم‌زمان ERC-20 (استاندارد) و توکن کاربردی (مدل) باشد.
  • BEP-20 — استاندارد توکن در BNB Smart Chain. BEP-20 از نظر کارکردی با ERC-20 یکسان است اما قرارداد نام‌گذاری زنجیرهٔ دیگری است.
  • ERC-721 — استاندارد توکن‌های غیرمثلی (NFT) روی اتریوم. توکن‌های ERC-721 یکتا هستند؛ توکن‌های ERC-20 قابل تعویض‌اند.

پرسش‌های متداول

«مثلی» در بافت ERC-20 یعنی چه؟

مثلی یعنی هر واحد توکن از نظر ارزش و کارکرد با هر واحد دیگر یکسان است. اگر ۱۰۰ واحد از یک توکن ERC-20 داشته باشید، هر یک از آن واحدها با هر واحد دیگر همان توکن قابل تعویض است. این همان اصلی است که یک اسکناس یک‌دلاری را با هر اسکناس یک‌دلاری دیگر برابر می‌کند. در مقابل، توکن‌های غیرمثلی (ERC-721) هر کدام یکتا هستند — یک NFT با NFT دیگر قابل تعویض نیست.

آیا توکن ERC-20 را می‌توان روی زنجیره‌هایی غیر از اتریوم ساخت؟

بله. هر بلاکچینی که ماشین مجازی اتریوم (EVM) را پیاده‌سازی کند، توکن‌های ERC-20 را پشتیبانی می‌کند. این شامل زنجیره‌هایی مانند Polygon، Arbitrum One، Base، BNB Smart Chain، Avalanche و بسیاری دیگر است. در BNB Smart Chain استاندارد معادل BEP-20 نامیده می‌شود اما همان رابط را پیاده‌سازی می‌کند. توکنی که از مجموعه توابع ERC-20 پیروی کند، صرف‌نظر از زنجیرهٔ مشخص، با هر کیف‌پول، صرافی یا قرارداد هوشمند سازگار با EVM کار می‌کند.

تفاوت ERC-20 با توکن بومی مانند ETH چیست؟

ETH توکن بومی اتریوم است — در خود پروتکل تعبیه شده و بدون قرارداد هوشمند وجود دارد. ETH برای پرداخت کارمزد گس و مشارکت در استیکینگ استفاده می‌شود. در مقابل، توکن‌های ERC-20 با استقرار قراردادهای هوشمند روی اتریوم ساخته می‌شوند. برای انتقال‌ها و تعامل‌ها به ETH برای پرداخت کارمزد گس نیاز دارند. هر دو نوع توکن را می‌توان در یک کیف‌پول نگه داشت، اما پیاده‌سازی فنی آن‌ها اساساً متفاوت است.

آیا استقرار توکن ERC-20 تخصص فنی زیادی می‌خواهد؟

استقرار یک توکن ERC-20 پایه به دانش متوسطی از توسعهٔ قرارداد هوشمند نیاز دارد. کتابخانه‌های استاندارد (مانند OpenZeppelin) پیاده‌سازی‌های ممیزی‌شده و آمادهٔ ERC-20 ارائه می‌دهند که با کمترین سفارشی‌سازی قابل استقرارند. پایین بودن مانع استقرار هم یک قابلیت است (آزمایش و نوآوری سریع را ممکن می‌کند) و هم یک ریسک (به هرکسی امکان می‌دهد برای هر هدفی توکن بسازد). وجود یک توکن مستقرشده به‌خودیِ خود شاهدی بر توانمندی فنی نیست.

منابع خارجی

همچنین ببینید