در دنیای رمز ارزها و بلاکچین، توکنها به عنوان اجزای کلیدی برای ایجاد و مدیریت داراییهای دیجیتال عمل میکنند. با توجه به تنوع کاربردها و نیازهای مختلف، استانداردهای مختلفی برای طراحی و پیادهسازی این توکنها وجود دارد. در این راستا، استانداردهای ERC یا Ethereum Request for Comments در شبکه اتریوم به عنوان چارچوبهای معتبر و مورد تأیید برای تعریف ویژگیها و قابلیتهای توکنها شناخته میشوند.
استانداردهای ERC-20 و ERC-721 از جمله مهمترین این استانداردها هستند که به ترتیب برای توکنهای قابل تعویض و توکنهای غیر قابل تعویض طراحی شدهاند. هر کدام از این استانداردها ویژگیها و کاربردهای خاص خود را دارند و در زمینههای مختلفی از جمله امور مالی، تجارت و بازیهای دیجیتال به کار میروند.
در این مقاله، به بررسی نحوه ایجاد توکنها، معرفی استانداردهای ERC-20 و ERC-721، و تفاوتهای کلیدی بین این دو استاندارد خواهیم پرداخت. هدف این است که با درک عمیقتر از این استانداردها، بتوانید تصمیمات بهتری در زمینه طراحی و استفاده از توکنهای مبتنی بر بلاکچین اتخاذ کنید.
استانداردهای ERC چیست؟
استانداردهای ERC یا Ethereum Request for Comments به عنوان راهنماها یا قالبهایی برای توکنهای مبتنی بر اتریوم عمل میکنند. این استانداردها قواعد خاصی را برای توکنها تعیین میکنند که باید رعایت شوند. توکنهایی که بر اساس این استانداردها ساخته میشوند، قابلیتهایی مانند انتقال توکنها از یک حساب به حساب دیگر، مشاهده موجودی توکنهای یک حساب، و بررسی کل عرضه توکن در شبکه را دارند. استانداردهای ERC-20 و ERC-721 از جمله نخستین استانداردهای توکن در اتریوم هستند که نقش مهمی در تعریف عملکرد اکوسیستم اتریوم ایفا میکنند.
نحوه ایجاد توکنها
توکنهای مبتنی بر شبکه اتریوم شامل یک بلاکچین برای ذخیرهسازی تراکنشها و یک ماشین مجازی برای اجرای قراردادهای هوشمند است. توکنها مستقل نیستند و به بلاکچین و پلتفرم اتریوم وابستهاند. ارز بومی شبکه اتریوم، اتر است، اما این شبکه قادر به پشتیبانی از توکنهای دیگر نیز هست و پروژهها میتوانند برنامه ها و توکن های خود را بر روی این شبکه پیادهسازی کنند.
توکنها از طریق قراردادهای هوشمند ایجاد میشوند که این قراردادها مسئول ایجاد توکنها، مدیریت تراکنشها و پیگیری موجودیها هستند. برای دریافت توکنها، باید مقداری اتر به قرارداد هوشمند ارسال شود و سپس توکنها به کاربر داده میشود. اما نکته اینجاست که پس از استقرار یک قرارداد هوشمند، تغییر آن امکانپذیر نیست، که ممکن است در صورت بروز اشتباه، مشکلات جدی ایجاد کند. همچنین، مشکل تعاملپذیری وجود دارد؛ هر قرارداد هوشمند برای هر توکن ممکن است متفاوت باشد و این مسئله نیازمند کدنویسی سفارشی برای پشتیبانی از توکنها در صرافیها و کیف پولهاست. برای رفع این مشکل، استاندارد ERC-20 پیشنهاد شد که به ایجاد ساختار و استانداردسازی در دنیای توکنها کمک میکند.
معرفی توکن ERC-20
ERC-20 یکی از مهمترین استانداردهای توکن در اتریوم است که در سال ۲۰۱۵ پیشنهاد شد و از سال ۲۰۱۷ به طور گسترده مورد استفاده قرار گرفت. این استاندارد شباهتهایی با ارزهایی مانند بیتکوین و لایتکوین دارد. توکنها میتوانند داراییهای دیجیتال یا حتی داراییهای واقعی را نمایندگی کنند و قابل خرید، فروش و تجارت هستند. ارزهای مشهوری مانند BAT ،REP ،MKR از این استاندارد پیروی میکنند. توکنهای ERC-20 قابل تعویض و غیر منحصر به فرد هستند، به این معنی که هر توکن از این نوع میتواند با دیگری جایگزین شود.
توابع اصلی در توکنهای ERC-20 شامل موارد زیر است:
- `transfer()`: مقدار معینی از توکنها را از عرضه کل برمیدارد و به کاربر منتقل میکند.
- `transferFrom()`: توکنها را بین دو کاربر منتقل میکند.
- `approve()`: تأیید میکند که قرارداد شما میتواند مقدار معینی از توکنها را به یک کاربر بدهد.
- `allowance()`: بررسی میکند که آیا کاربر موجودی کافی برای ارسال مقدار معینی توکن به فرد دیگر دارد.
- `balanceOf()`: تعداد توکنهای موجود در یک آدرس خاص را برمیگرداند.
`totalSupply()`: تعداد کل توکنها را تعریف میکند و زمانی که این حد رسید، قرارداد هوشمند از ایجاد توکنهای جدید خودداری میکند.
معایب ERC-20
ERC-20 تنها یک راهنما است و پیادهسازی توابع به عهده توسعهدهندگان است. این موضوع ممکن است مشکلاتی ایجاد کند، مانند ارسال توکنهای ERC-20 به جای اتر برای خرید توکنها، که ممکن است منجر به گم شدن توکنها شود. برای رفع این مشکلات، این استاندارد پیشنهاد شده است که هدف آن رفع برخی از نقص های ERC-20 است. با این حال به طور گسترده پذیرفته نشده است و استفاده محدودی دارد.
معرفی توکن ERC-721
ERC-721 استانداردی برای توکنهای “غیر قابل تعویض” (non-fungible) است. توکنهای غیر قابل تعویض توکنهایی هستند که هرکدام دارای کد و متادیتای منحصر به فردی هستند که آنها را از یکدیگر متمایز میکند. این توکنها در بازیهای مبتنی بر بلاکچین به کار میروند، جایی که هر دارایی منحصر به فرد است و بازیکنان میتوانند آن را خرید و فروش کنند. ویژگی اصلی این توکنها این است که هر توکن منحصر به فرد است و نمیتواند با دیگری جایگزین شود. این استاندارد برای شبیهسازی اقلام نادر و قابل جمعآوری با استفاده از توکنهای اتریوم مناسب است.
توابع اصلی در توکنهای ERC-721 شامل موارد زیر است:
`tokenURI()` | `symbol()` | `name()` |
`balanceOf()` | `totalSupply()` | `onERC721Received()` |
`ownerOf()` | `safeTransferFrom()` | `transferFrom()` |
`approve()` | `setApprovalForAll()` | `getApproved()` |
`isApprovedForAll()` | `takeOwnership()` | `takeOwnership()` |
`tokenMetadata()` | `tokenByIndex()` | `supportsInterface()` |
مقایسه توکنهای ERC-20 و ERC-721
تفاوتهای اصلی بین این دو توکن به ماهیت و کاربردهای آنها بازمیگردد.
1. نوع توکنها:
- ERC-20: این توکنها قابل تعویض (fungible) هستند، به این معنی که هر واحد از این توکنها با واحد دیگری از همان نوع قابل تعویض است. به عنوان مثال، یک توکن BAT با هر توکن BAT دیگری برابر است و تفاوتی ندارد.
- ERC-721: این توکنها غیر قابل تعویض (non-fungible) هستند. هر توکن از این نوع منحصر به فرد است و نمیتوان آن را با توکن دیگر جایگزین کرد. این ویژگی باعث میشود که هر توکن ERC-721، نمایانگر یک دارایی منحصر به فرد باشد، مانند یک قطعه هنری یا آیتم درون بازی.
2. کاربردها:
- ERC-20: عمدتاً برای ایجاد توکنهای دیجیتال و ارزهای جدید استفاده میشود. کاربردهای رایج شامل پرداختها، نمایندگی سهام و دیگر داراییهای مالی است.
- ERC-721: به طور عمده در صنعت بازیهای دیجیتال و جمعآوری اقلام دیجیتال استفاده میشود. این توکنها به کاربران امکان میدهند که اقلام و داراییهای دیجیتال منحصر به فرد را در بستر بلاکچین خریداری، فروش و مبادله کنند.
3. ویژگیها:
- ERC-20: توکنهای این استاندارد از توابعی نظیر `transfer()`, `approve()`, و `balanceOf()` استفاده میکنند که عملیاتهایی مانند انتقال توکنها و بررسی موجودیها را امکانپذیر میسازند.
- ERC-721: توکنهای این استاندارد از توابعی مانند `tokenURI()`, `ownerOf()`, و `safeTransferFrom()` بهره میبرند که اطلاعات دقیقتری از توکن منحصر به فرد، مالکیت آن و انتقال امن آن را فراهم میآورند.
4. پیادهسازی و مقیاسپذیری:
- ERC-20: پیادهسازی این استاندارد نسبتاً ساده است و به دلیل پشتیبانی گسترده صرافیها و کیف پولها، برای توکنها و ارزهای جدید استفاده گستردهای دارد.
- ERC-721: پیادهسازی این استاندارد به دلیل ویژگیهای خاص غیرقابل تعویض بودن و منحصر به فرد بودن توکنها پیچیدهتر است. از آنجا که این توکنها به طور عمده برای داراییهای منحصر به فرد طراحی شدهاند، ممکن است نیاز به توسعه و سازگاری بیشتری برای پشتیبانی از این توکنها وجود داشته باشد.
نتیجهگیری
استانداردهای ERC-20 و ERC-721 هرکدام به نوبه خود کاربردهای خاص و مزایای ویژهای دارند. ERC-20 برای ایجاد و مدیریت توکنهای قابل تعویض طراحی شده و بیشتر در زمینههای مالی و تجاری مورد استفاده قرار میگیرد، در حالی که ERC-721 برای توکنهای غیرقابل تعویض و منحصر به فرد مناسب است و در صنایع دیجیتال و بازیهای آنلاین کاربرد فراوانی دارد. انتخاب استاندارد مناسب بستگی به نوع توکن و هدف نهایی استفاده از آن دارد.