در دنیای رمز ارزها و بلاکچین، توکنها به عنوان اجزای کلیدی برای ایجاد و مدیریت داراییهای دیجیتال عمل میکنند. با توجه به تنوع کاربردها و نیازهای مختلف، استانداردهای مختلفی برای طراحی و پیادهسازی این توکنها وجود دارد.
در این راستا، استانداردهای 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 قابل تعویض و غیر منحصر به فرد هستند، به این معنی که هر توکن از این نوع میتواند با دیگری جایگزین شود.
مزایا:
- سادگی و شهرت:
- ERC20 یکی از شناختهشدهترین استانداردهای توکن در اتریوم است، که به آسانی میتوان از آن استفاده کرد و بسیاری از پروژهها از آن بهرهمند شدهاند.
- قابلیت تعامل:
- به دلیل اینکه بسیاری از پروژهها از این استاندارد استفاده میکنند، توکنهای ERC20 به راحتی با کیفپولها، صرافیها و برنامههای دیگر در اکوسیستم اتریوم سازگار هستند.
- توسعهپذیری:
- ERC20 توکنها به راحتی قابلیت اضافه کردن ویژگیهای جدید را دارند، که به توسعهدهندگان اجازه میدهد ویژگیهای خاصی به توکنهای خود اضافه کنند.
- قابلیت خرید و فروش:
- توکنهای ERC20 بهراحتی در صرافیهای متمرکز و غیرمتمرکز معامله میشوند، که این امر به نقدشوندگی آنها کمک میکند.
معایب:
- عدم تمایز:
- توکنهای ERC20 بهعنوان داراییهای یکسان شناخته میشوند و هیچ تفاوتی بین آنها وجود ندارد (فقط یک نوع توکن)، که این امر میتواند در موارد خاص محدودکننده باشد.
- خطرات امنیتی:
- اگر کد قرارداد هوشمند بهدرستی نوشته نشده باشد، میتواند مستعد حملات و آسیبپذیریها باشد.
- محدودیتهای تکنیکی:
- به دلیل عدم وجود ویژگیهای منحصر به فرد برای هر توکن، برخی از توکنها ممکن است نتوانند ویژگیهایی مانند خاصیت غیرقابل تعویض (NFT) را پیادهسازی کنند.
توابع اصلی در توکنهای ERC-20 شامل موارد زیر است:
- `transfer()`: مقدار معینی از توکنها را از عرضه کل برمیدارد و به کاربر منتقل میکند.
- `transferFrom()`: توکنها را بین دو کاربر منتقل میکند.
- `approve()`: تأیید میکند که قرارداد شما میتواند مقدار معینی از توکنها را به یک کاربر بدهد.
- `allowance()`: بررسی میکند که آیا کاربر موجودی کافی برای ارسال مقدار معینی توکن به فرد دیگر دارد.
- `balanceOf()`: تعداد توکنهای موجود در یک آدرس خاص را برمیگرداند.
- `totalSupply()`: تعداد کل توکنها را تعریف میکند و زمانی که این حد رسید، قرارداد هوشمند از ایجاد توکنهای جدید خودداری میکند.
معرفی توکن ERC-721
ERC-721 استانداردی برای توکنهای “غیر قابل تعویض” (non-fungible) است. توکنهای غیر قابل تعویض توکنهایی هستند که هرکدام دارای کد و متادیتای منحصر به فردی هستند که آنها را از یکدیگر متمایز میکند.
این توکنها در بازیهای مبتنی بر بلاکچین به کار میروند، جایی که هر دارایی منحصر به فرد است و بازیکنان میتوانند آن را خرید و فروش کنند.
ویژگی اصلی این توکنها این است که هر توکن منحصر به فرد است و نمیتواند با دیگری جایگزین شود. این استاندارد برای شبیهسازی اقلام نادر و قابل جمعآوری با استفاده از توکنهای اتریوم مناسب است.
مزایا:
- خاص بودن و منحصر به فرد بودن:
- ERC721 برای توکنهای غیرقابل تعویض (NFT) طراحی شده است، به این معنی که هر توکن منحصر به فرد است و میتواند ویژگیهای خاص خود را داشته باشد.
- قابلیتهای متنوع:
- توسعهدهندگان میتوانند ویژگیهای خاصی را برای هر توکن اضافه کنند، که این امر به آنها امکان میدهد که بهراحتی داراییهای دیجیتالی خاصی را مانند هنر دیجیتال، کلکسیونها و غیره ایجاد کنند.
- بازار بزرگ:
- به دلیل محبوبیت NFTs، توکنهای ERC721 بهراحتی در بازارها خرید و فروش میشوند و علاقهمندی زیادی به این نوع توکنها وجود دارد.
معایب:
- پیچیدگی توسعه:
- توسعه و مدیریت توکنهای ERC721 ممکن است پیچیدهتر از توکنهای ERC20 باشد، زیرا هر توکن ویژگیها و متدهای خاص خود را دارد.
- کمبود سازگاری:
- برخی از کیفپولها و صرافیها ممکن است از توکنهای ERC721 پشتیبانی نکنند، که میتواند به محدودیتهایی برای کاربران منجر شود.
- قیمتگذاری و ارزیابی دشوار:
- به دلیل منحصر به فرد بودن هر توکن، تعیین قیمت برای توکنهای ERC721 ممکن است دشوار باشد و به عوامل زیادی بستگی دارد.
توابع اصلی در توکنهای 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 دیگری برابر است و تفاوتی ندارد.
- این توکنها قابل تعویض (fungible) هستند، به این معنی که هر واحد از این توکنها با واحد دیگری از همان نوع قابل تعویض است.
- ERC-721:
- این توکنها غیر قابل تعویض (non-fungible) هستند. هر توکن از این نوع منحصر به فرد است و نمیتوان آن را با توکن دیگر جایگزین کرد.
این ویژگی باعث میشود که هر توکن ERC-721، نمایانگر یک دارایی منحصر به فرد باشد، مانند یک قطعه هنری یا آیتم درون بازی.
- این توکنها غیر قابل تعویض (non-fungible) هستند. هر توکن از این نوع منحصر به فرد است و نمیتوان آن را با توکن دیگر جایگزین کرد.
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 برای توکنهای غیرقابل تعویض و منحصر به فرد مناسب است و در صنایع دیجیتال و بازیهای آنلاین کاربرد فراوانی دارد.
انتخاب استاندارد مناسب بستگی به نوع توکن و هدف نهایی استفاده از آن دارد.