ERC20 & ERC721: چگونه کار می کنند؟
توکن ERC20 یک قرارداد هوشمند با کد است که استاندارد ERC20 را رعایت می کند. در عمل، این بدان معنی است که عملکردهای قرارداد هوشمند به رابط تعریف شده در استاندارد ERC20 احترام می گذارد.
توکنهای اتریوم در سالهای ۲۰۱۶/۲۰۱۷ زمانی که به طور گسترده توسط ICOها برای نشان دادن ابزار یا مالکیت مورد استفاده قرار گرفتند، محبوب شدند. بعداً، در سال ۲۰۱۷، اتریوم توکنهای نیز مانند بازی معروف CryptoKitties برای نشان دادن داراییهای درون بازی مورد استفاده قرار گرفتند.
یکی از جالب ترین ویژگی های توکن ها این است که می توان آنها را معامله کرد. اگر توکنی بخرم، میخواهم بتوانم آن را با یک توکن دیگر یا برای اتر بفروشم. برای فعال کردن این کار، باید توکنها را استاندارد کنیم – این همان چیزی است که ERC (درخواست اتریوم برای نظرات) برای آن ساخته شده است. ERC با الهام از RFCهای اینترنتی معروف (درخواست نظرات) یک سیستم عمومی و باز است که در آن هر کسی می تواند پیشنهاداتی را برای استاندارد کردن قراردادها و توکن های هوشمند اتریوم ایجاد کند و در مورد آن نظر دهد. توجه داشته باشید که این با EIP (پیشنهادهای بهبود اتریوم) که با خود پروتکل اتریوم سروکار دارد متفاوت است.
دو مورد از رایج ترین استانداردهای توکن ERC ERC20 و ERC721 هستند. آنها به ترتیب برای نشان دادن دارایی های قابل تعویض و دارایی های غیرقابل تعویض استفاده می شوند. در این مقاله ساختار توکن های ERC20 و ERC721 را تجزیه می کنیم و نحوه کار آنها را می بینیم.
دارایی های تعویض پذیر در مقابل دارایی های غیرقابل تعویض
دارایی قابل تعویض WA داراییای است که میتوان آن را با دیگری مانند یک ارز مبادله کرد. به عنوان مثال، اگر من یک اسکناس ۱ دلاری داشته باشم، می توان آن را با هر اسکناس ۱ دلاری دیگری تعویض کرد. فرقی نمی کند که کدام اسکناس ۱ دلاری را دارم، همه آنها ارزش یکسانی دارند. سهم یک شرکت به همین صورت است. اگر من ۱۰۰ سهم مایکروسافت را بخرم، برایم مهم نیست که کدام سهم را بگیرم، فقط می خواهم ۱۰۰ سهم دریافت کنم.
دارایی غیرقابل تعویض دارایی است که نمی توان آن را با دیگری مبادله کرد. به عنوان مثال، خانه یک دارایی غیر قابل تعویض است. هر خانه دارای ویژگی های منحصر به فردی است که آن را متفاوت می کند. وقتی از سر کار بر می گردید، (احتمالاً) نمی خواهید همسایه تان با این جمله “سلام رفیق، خانه شما را با خانه خود عوض کردم، اینها کلیدهای جدید شما هستند، به سلامتی!”
دارایی های تعویض پذیر در مقابل دارایی های غیرقابل تعویض در سرزمین رمزنگاری شده
در دنیای ارزهای دیجیتال اتریوم، دارایی ها نیز به دو دسته قابل تعویض و غیر قابل تعویض دسته بندی می شوند.
دارایی قابل تعویض را توکن های ERC20 نشان می دهند. این توکنها نشاندهنده مالکیت در پروژهها، کوپنهای قابل بازخرید برای خدمات، توکنهای سهام یا توکنهای حکومتی هستند.
دارایی های غیر قابل تعویض توسط توکن های ERC721 نشان داده می شوند. در حال حاضر، تنها استفاده برجسته از توکن های ERC721 دارایی های درون بازی هستند. به عنوان مثال، در CryptoKitties، یک بازی که در آن شما بچه گربه های مجازی را جمع آوری و پرورش می دهید، هر بچه گربه با یک توکن منحصر به فرد ERC721 نشان داده می شود. توکنسازی آینده داراییهای دنیای واقعی، مانند خانه شما، میتواند از توکنهای ERC721 استفاده کند.
یک سکه در سکه
قبل از اینکه عمیقتر به مشخصات ERC20 و ERC721 بپردازیم، مهم است که بدانیم توکنها در قراردادهای هوشمند زندگی میکنند که خود در بلاک چین اتریوم زندگی میکنند. توکن ها را می توان به عنوان “سکه در یک سکه” نگاه کرد:
بلاک چین اتریوم خود هیچ تمایز برجسته ای از ERC20، ERC721 به عنوان توکن ندارد. برای اتریوم، توکن فقط متغیری است که در قراردادهای هوشمند تعریف می شوند. فقط انسان ها هستند که قراردادها را می نویسند که تصمیم می گیرند معنای خاصی را به برخی از متغیرها در قراردادهای هوشمند اختصاص دهند.
تا کنون ما در مورد استانداردهای ERC20 و ERC721 از منظر سطح بالا صحبت کرده ایم، اما در چند بخش بعدی قصد داریم به بررسی این استانداردها بپردازیم و نحوه عملکرد آنها را ببینیم.
استاندارد ERC20
استاندارد ERC20 توسط Fabian Vogelsteller در سال ۲۰۱۵ ایجاد شد. (کل مشخصات را می توانید در این بیابید لینک .) برای اختصار، اجازه دهید مهمترین بخش ها را در اینجا خلاصه کنیم.
اول، درک این نکته مهم است که استاندارد ERC20، مانند سایر استانداردهای توکن، فقط رابط / API یک قرارداد هوشمند را تعریف می کند، اما اجرای آن را تعریف نمی کند.
وقتی به مکدونالد میروید و برگر سفارش میدهید، فقط به صندوقدار میگویید که چه نوع همبرگری میخواهید، اما تمام جزئیات کوچک در مورد نحوه پخت همبرگر را به او نمیگویید. در آشپزخانه، آشپزها با این کار برخورد می کنند. سفارش همبرگر رابط مکدونالد است و پختن برگر اجرای آن.
در قراردادهای هوشمند، کد به گروههای منطقی به نام «توابع» سازماندهی میشود. رابط قرارداد هوشمند توصیفی از عملکردهای آن است و پیاده سازی کد واقعی توابع است.
اگر میخواهیم استاندارد ERC20 را درک کنیم، باید به رابطهای تابع تعریف شده در داخل نگاهی بیندازیم.
گروهی از توابع وجود دارند که ابرداده های قراردادهای هوشمند را تعریف می کنند مانند:
- نام
- سمبل
- اعداد اعشاری
هر کسی می تواند این توابع را فراخوانی کند. قرارداد هوشمند با اطلاعات مربوطه پاسخ خواهد داد.
اما گوشت استاندارد ERC20 سیستم حساب است. یک توکن ERC20 دفتر کل آدرسها و موجودی توکنهای اتریوم را مدیریت میکند، درست همانطور که یک بانک دفتر کل صاحبان حساب و موجودی پول فیات را مدیریت میکند:
در حالی که یک بانک این دفتر کل را در یک پایگاه داده سنتی مدیریت می کند، یک توکن ERC20 می توان از متغیر قراردادهای هوشمند استفاد بکنند. اگر تا به حال نام متغیرها را در زبان های برنامه نویسی نشنیده اید، آنها اساساً اسلات هایی هستند که می توانید برای ذخیره و ارجاع داده ها از آنها استفاده کنید.
علاوه بر ذخیره توکن ها، یک توکن ERC20 باید بتواند توکن ها را نیز منتقل کند. ۲ عملکرد در استانداردهای ERC20 برای آن وجود دارد:
- انتقال
- انتقال از
چرا ما به ۲ تابع نیاز داریم و نه فقط یک عملکرد؟
اولین تابع به صاحب یک توکن (که با آدرس اتریوم او مشخص می شود) اجازه می دهد تا توکن ها را به آدرس اتریوم دیگری منتقل کند. سیستم رمزنگاری بلاک چین اتریوم تضمین می کند که مالک قانونی توکن ها این عملکرد را راه اندازی کرده است.
تابع دوم به یک آدرس اتریوم شخص ثالث اجازه می دهد تا از طرف صاحب واقعی سکه انتقال رمز را انجام دهد. این بسیار شبیه به کارتهای اعتباری است که در آن بازرگانان میتوانند از طرف صاحب خود کارتهای اعتباری را بدهی کنند. تفاوت بزرگ این است که در مورد توکنهای ERC20، ما فقط به شخص ثالث اجازه میدهیم مقدار مشخصی از توکنها را خرج کند، اما نه یک مقدار بالقوه زیاد یا نامحدود، مانند کارتهای اعتباری.
فرآیند کامل پرداخت شخص ثالث شامل ۲ مرحله است:
- ابتدا، صاحب توکن ها شخص ثالثی را تأیید می کند که مبلغی را از طرف او خرج کند.
- سپس، شخص ثالث تأیید می شود و می تواند تا این مبلغ رمز هزینه کند. این توکن ها را می توان به هر آدرس اتریوم ارسال کرد.
اگر از صرافی های غیرمتمرکز مانند IDEX استفاده کرده اید، ممکن است قبلاً از این مکانیسم آگاه باشید. این توضیح می دهد که چرا برای تجارت با آنها به چندین تراکنش نیاز دارید.
استاندارد ERC721
استاندارد ERC721 در اواخر سال ۲۰۱۷ توسط بازی محبوب CryptoKitties معرفی شد. همانطور که قبلا ذکر شد در این بازی، بازیکنان کیت های مجازی را جمع آوری می کنند که هر کدام را به عنوان یک توکن ERC721 نشان می دهند.
این آشنا به نظر می رسد… تفاوت توکن های ERC20 چیست؟ خوب، در حالی که یک توکن ERC20 نشان دهنده یک نوع دارایی است، یک توکن ERC721 نشان دهنده یک کلاس از دارایی ها است. در مورد CryptoKitties، قرارداد توکن ERC721 آن نشان دهنده همه بچه گربههای منحصر به فرد در بازی و همچنین مالکیت آن است.
در مقایسه با ERC20، در مورد ERC721، مالکیت ساده شده است: یک بازیکن به طور کامل مالک یک دارایی است یا خیر. مثلاً در Cryptokitties نمیتوانید «نیم بچه گربه» داشته باشید. به همین دلیل است که می گوییم استاندارد توکن ERC721 برای دارایی های غیرقابل تعویض است.
این مهمترین چیزی است که برای استاندارد ERC721 باید بدانید. بقیه استانداردها بسیار شبیه به استاندارد ERC20 است، به ویژه از نظر انتقال توکن. اگر می خواهید در مورد عملکردهای خاص استاندارد بیشتر بدانید، می توانید سند استاندارد ERC721 را مطالعه کنید.