توکن ERC-721 از همان ابتدا به عنوان یک پروتکل توسعهای معرفی شد و مورد استقبال زیادی قرار گرفت.
این توکنها را عموما با نامهایی چون توکنهای غیر قابل تعویض و غیر قابل تبدیل (NFT) میشناسند.
این توکن، استانداردی است که از طریق آن میتوان هر دیتای دلخواهی را به توکن تبدیل کرد. استاندارد ERC-721، استاندارد ساخته شده روی اتریوم است.
عناوین مطلب:
برای آشنایی بیشتر درباره این استاندارد و عملکرد و ویژگیهایی آن تا پایان این مطلب همراه ما باشید.
توکن ERC-721 چیست؟
عملکرد این استاندارد هم مشابه استاندارد توکن ERC-20 برای ایجاد توکنهای مثلی است.
یکی از شناختهشدهترین توکنهای غیرقابل تعویضی که روی این استاندارد ساخته شده است، توکنهای بازی کریپتو کیتیز است. این بازی در واقع یک توکن غیرقابلجایگزین است که هر گربهای که در آن متولد میشود، منحصر بهفرد است!
ایده ایجاد این نوع توکن اولینبار در سال 2017 و توسط دیتر شرلی (Dieter Shirley) مطرح شد. هدف اصلی این توکنها غیر قابل خرجکردن یا منحصر بهفرد بودن بود.
با استفاده از این استاندارد میتوان توکنهای کمیابی که در بازار ارز دیجیتال وجود دارند را توسعه داد و از این روش، ارزش ذاتی مشخصی برای آنها تعیین کرد. این موضوع اصلیترین دلیلی است که باعث شده از این توکنها برای تایید اعتبار استفاده کنند.
از طرفی، ارزش یک توکن را میتوان بر اساس کمیابی و ویژگیهای خاص آن تعریف کرد. این اکوسیستم در بلاکچین اتریوم بر مبنای مفهوم کمیابی دیجیتال ساخته شده و ویژگیهای منحصر بهفرد توکن را افزایش میدهد.
به همین دلیل است که توکن یا دیتایی که قابل تکرار است مورد استقبال زیادی قرار نمیگیرد.
بیشتر بخوانید: ارزش ذاتی اتریوم در چیست و چگونه افزایش مییابد؟
دلیل ایجاد توکن ERC-721
ازآنجاییکه در بخش قبلی و در بررسی چیستی ERC-721 تاکید زیادی روی منحصر بهفرد بودن توکن کردیم، میتوان دلیل ایجاد این توکن را هم همین موضوع دانست.
بااینحال سوالی که در این باره به وجود میآید این است که این ویژگی چه کاربردی دارد و چه تاثیری روی شبکه بلاکچین دارد؟ این نوع توکنها برای افرادی که خواستار ویژگی منحصر بهفرد بودن هستند، بسیار مناسب است و کمیاب بودن آنها، امتیاز ویژه این ارزهای دیجیتال است.
قابلیت جایگزینی
برای درک عدم قابلیت جایگزینی، ابتدا نگاهی به مفهوم جایگزینی داشته باشیم. همه توکنهای قابل جایگزین دو ویژگی اصلی دارند:
قابلیت معاوضه: قابلیت معاوضه به این معنی است که کاربران میتوانند توکنها را با یکدیگر معاوضه یا جابهجا کنند. برای مثال تصور کنید شما دارای یک اسکناس 10 هزار تومانی هستید و میخواهید این اسکناس را با یک اسکناس 10 هزار تومانی نو تعویض کنید.
چیزی که شما دارید و چیزی که قصد تعویض با آن را دارید، ارزش کاملا یکسانی دارد و اگر آنها را با هم تعویض کنید، هیچ چیزی از ارزش آن کم نمیشود. آنها ارزش مشابهی دارند و با یکدیگر قابل تعویض هستند.
مقدار: در داراییهای قابل جایگزینی، میتوان واحدهای یک دارایی را جایگزین کرد تا به ارزش بالاتری در کمیت و مقدار رسد. برای مثال میتوان بهجای یک عدد گندم، تعداد زیادی دانه گندم را جمعآوری کرد. در چنین شرایطی چیزی که دارید ماهیت یکسان با تعداد و کمیت بالاتر دارد.
عدم قابلیت جایگزینی
یک توکن غیرقابلجایگزین توکن منحصر بهفردی است که ویژگیهای خاص خودش را دارد.
ویژگیهایی که در هیچ توکن مشابه دیگری نیست و حتی اگر مشابه آن باشد، باز هم خود آن ویژگی نیست. به همین دلیل نمیتوان آن را با توکن دیگری معاوضه کرد.
در واقع نمیتوان برای رسیدن به کمیت بالاتر، به تقسیم یا جمعکردن بپردازید؛ زیرا هر واحد منحصر بهفرد است و با داراییهای دیگری جابهجایی با معاوضه نمیشود.
مثالی از توکنهای غیرقابلجایگزین
در بازار امروز میتوان توکنهای غیرقابلجایگزین زیادی پیدا کرد و تعداد این توکنها هم همواره درحالرشد است.
مشهورترین توکنهای غیرقابلجایگزین ERC-721 شامل موارد زیر است:
- CryptoKitties
- Etheremons
- Crypto Bots
- Blockchain Cuties
ویژگیهای استاندارد ERC-721
استاندارد ERC-721 از نظر ساختاری شباهتهای زیادی با استاندارد ERC-20 دارد.
قراردادهای هوشمندی که در این نوع توکن وجود دارد مشابه با قراردادهای هوشمند ERC-20 است. بااینحال ویژگیها و برخی از خصوصیات آنها متفاوت است و همین تفاوتها، اصلیترین ویژگی استاندارد ERC-721 محسوب میشود.
در ادامه نگاهی به این ویژگیها میاندازیم:
- هر یک از توکنهای ERC-721 یک نام مشخص دارند که برای نشاندادن اپلیکیشنهای بیرونی استفاده میشوند.
- این ویژگیها، خصیصههایی را تعریف میکنند که به برنامههای غیرمتمرکز اجازه میدهد تا بتوانند به یک نام کوتاه برای توکن دسترسی پیدا کنند.
- این ویژگیها عرضه کل توکن را مشخص میکنند.
- هر توکن ERC-721 یک فیلد تعریف شده دارد که عملکردهای مالک، تعریف مالکیت توکن و روش انتقال آن را توضیح میدهد.
- غیر قابل تعویض بودن توکنها با فیلدی به نام owners که قابلیت تعویض و شناسایی است مشخص میشود.
- فیلد دیگری به نام Approval اجازه میدهد تا بهجای یک فرد، یک نهاد توکن را منتقل کند.
- فیلد Thomas de possession امکان مالکیت تعداد معینی توکن را به کاربر میدهد. همچنین میتواند توکنهایی که مالکیت آنها را به عهده دارد از موجودی یک کاربر دیگر برداشت کند.
- فیلدی به نام submission در توکن وجود دارد که اجازه ارسال توکنها به دیگر کاربران را میدهد. این فیلد درست مشابه با ارسال یک ارز دیجیتال قابل تعویض است.
- منحصر بهفرد بودن توکنها و مالکیت آنها باعث شده تا مالک توکنهای مختلف ERC-721 بتواند از فیلدی به نام owner token bu index استفاده کند و بتواند ریدبایل توکن را توسط یک آیدی یکتا انجام دهد.
- در نهایت، توکنهای ERC-721 فیلدی به نام Metadata of the token دارند که این فیلد وضعیت غیر قابل خرج شدن توکنها را به وجود میآورد.
رویدادها در استاندارد 721
به طور خلاصه رویدادهایی که در استاندارد ERC-721 موثر هستند و انتقال و تایید توکنها را صادر میکنند شامل عملکردهای زیر است:
عملکردهای ERC-721
- balanceOf: برگشت موجودی یک آدرس
- ownerOf: برگشت آدرس مالک یک توکن
- safeTransferFrom: انتقال توکن از یک آدرس به آدرس دیگر برای اطمینان از پذیرش توکن توسط گیرنده و منهدم یا گم نشدن توکن
- transferFrom: انتقال توکن از یک آدرس به آدرس دیگر (استفاده از این عملکرد توصیه نمیشود)
- Approve : تصویب هر آدرس دیگر برای ارسال یک تراکنش از اکانت مالک توکن به اکانت دیگر
- setApprovalForAll : اجازه دسترسی به یک اپراتور (هر آدرسی، بیشتر کیف پولها و صرافیها) برای ارسال توکنها از آدرس مالک به آدرس دیگر
- getApproved : برگشت آدرس مجاز به انتقال توکن برای مالکان
- isApprovedForAll: برگشت آدرس در صورت تایید نشدن آدرس توسط مالک
کاربردهای توکن ERC-721
بازی کریپتو کیتیز یا دیسنترالند (decentraland) از جمله مهمترین نمونههای کاربرد توکن ERC-721 است.
کریپتو کیتیز یک بازی بلاکچین است که به افراد اجازه میدهد در مزرعهای که صاحب آن هستند گربههای مجازی خود را پرورش دهند یا گربههایی را به مالکیت بگیرند. هر بچه گربه نماینده یک توکن ERC-721 است و ویژگیهای منحصر بهفرد و خاصی دارد که آن را از دیگر گربهها متمایز میکند.
این بازی و شخصیتها آن را تداعیگر نوعی خوششانسی و خوشیمنی دیجیتال روی بلاکچین میدانند. بازیکنانی که در این بازی شرکت میکنند، میتوانند گربههای مختلفی را به سرپرستی بگیرند یا از طریق تولیدمثل، گربههای دیگری را پرورش دهند.
مهمترین رکن در این بازی این است که بازیکنان تلاش میکنند صاحب گربههایی شوند که کمیاب و منحصر بهفرد هستند و ویژگیهای تکرار نشدهای دارند.
اتفاقی مشابه در دسنترالند هم میافتد. دسنترالند بازی دیگری است که در آن کاربران میتوانند زمین مجازی برای ساختوساز دریافت کنند. در این بازی موقعیتهایی پیشآمده است که محوطهای با قیمت 9000 دلار به حراج گذاشته شده است.
بیشتر بخوانید: زمین مجازی در متاورس چیست؟
همچنین توکنهای 721 برای ارائه مالکیت به افراد هم استفاده میشود. اگر قصد توکنیزه کردن موردی را دارید، با درنظرگرفتن اینکه وسیله موردنظر شما از همه جنبهها منحصر بهفرد باشد، استاندارد ERC-721 به شما کمک میکند تا دیتای موردنظرتان را در بلاکچین اتریوم توکنیزه کنید.
بیشتر بخوانید: توکنیزه کردن (Tokenization) چیست و چه کاربردی دارد؟
ساخت یک توکن ERC-721
کاربران برای ساخت یک توکن ERC-721 باید مراحل زیر را دنبال کنند:
مرحله اول: آزمایش اتریوم
در این مثال از شبکه آزمایشی Ropsten برای استقرار قرارداد استفاده خواهیم کرد.
برای شروع این فرآیند، به یک افزونه مرورگر به نام Metamask از طریق Ropsten نیاز دارید تا مقداری ETH آزمایشی و یک کیف پول ETH ایجاد کنید.
سپس گزینه Ropsten test network موجود در کیف پول Metamask را انتخاب کرده و آدرس کیف پول را در قسمت مشخص شده بعدی کپی کنید. در قدم بعدی گزینه دریافت اتر آزمایشی را انتخاب کنید.
مرحله دوم: افزودن فایلها به IPFS
مرحله بعدی اضافهکردن فایلها به IPFS است. باید هنر خود را برای ساخت یک NFT به کار بگیرید و قبل از نوشتن قرارداد NFT یک فایل متادیتا بسازید.
ما از سیستم ذخیرهسازی فایلهای نظیر به نظیر و اشتراکگذاری سیستم توزیع شده (IPFS) استفاده خواهیم کرد. با دانلود IPFS شروع کنید و سپس آن را با توجه به سیستم عاملتان نصب کنید.
برای میزبانی یک تصویر و یک فایل فراداده مراحل زیر را دنبال کنید:
با ایجاد مخزن IPFS با تایپ کد زیر در پنجره cmd/terminal شروع کنید.
$ ipfs init
سپس با باز کردن جداگانه پنجره cmd/terminal با daemon IPFS شروع کنید و کد را وارد کنید.
$ ipfs daemon
سپس با رفتن به اولین پنجره ترمینال مطابق کد زیر، یک تصویر به IPFS اضافه کنید.
$ ipfs add art.png
سپس هش را از Qm کپی کنید و پیشوند «https://ipfs.io/ipfs/» را ضمیمه کنید.
در مرحله بعد، باید یک فایل JSON را به IPFS اضافه کنید. این کار را با ایجاد یک فایل JSON و ذخیره آن در همان دایرکتوری در فرم تصویر انجام دهید.
فرمت فایل JSON ذکر شده در زیر را بررسی کنید.
name: NFT Art
description: This image shows accurate nature of NFT
image: https://ipfs.io/ipfs/QmZzBdKF7sQX1Q49CQGmreuZHxt9sVB3hTc3TTXYcVZ7jC
مرحله بعدی اضافهکردن فایل JSON به عنوان
$ ipfs add nft.json
سپس هش را با شروع از Qm کپی کنید و پیشوند «https://ipfs.io/ipfs/» را ضمیمه کنید. خروجی به این شکل خواهد بود:
https://ipfs.io/ipfs/QmUFbUjAifv9GwJo7ufTB5sccnrNqELhDMafoEmZdPPng7
این URL را ذخیره کنید زیرا در مراحل دیگر ساخت توکن به کار خواهد آمد.
مرحله سوم: ایجاد توکن
در این مثال ما از قرارداد ERC-721 برای ایجاد یک فرآیند NFT استفاده خواهیم کرد.
به طور کلی رابط ERC-721 نخواهیم نوشت زیرا از Ethereum ERC-721 استفاده میکنیم. ما همچنین از توابع قرارداد کتابخانه با وارد کردن آنها استفاده میکنیم.
از Ethereum IDE استفاده کنید و یک فایل solidity ایجاد کنید. سپس کد زیر را به اسکریپت solidity خود اضافه کنید:
// SPDX-License-Identifier: MIT
pragma solidity 0.8.0;
import https://github.com/0xcert/ethereum-erc721/src/contracts/tokens/nf-token-metadata.sol,
import https://github.com/0xcert/ethereum-erc721/src/contracts/ownership/ownable.sol,
contract newNFT is NFTokenMetadata, Ownable {
constructor() {
nftName = Synth NFT;
nftSymbol = SYN;
}
function mint(address _to, uint256 _tokenId, string calldata _uri) external onlyOwner {
super._mint(_to, _tokenId);
super._setTokenUri(_tokenId, _uri);
}
}
کدی که در بالا ذکر شده به این صورت است:
- خط 1 نوع مجوز SPDX را مشخص میکند. این مجوزها به حل مشکلات کپیرایت کمک میکند.
- خط 2 نسخه solidity را اعلام میکند.
- خط 4 و 5 فرمان وارد کردن قراردادهای اتریوم ERC-721 را توضیح میدهد.
- دستور خط 7 در مورد شروع قرارداد با نام newNFT و به طور خاص به گسترش قراردادهای Ownable و ابر داده توکن NFT اشاره میکند.
- خط 9-12 در مورد مقداردهی اولیه یک نماد برای توکن، سازنده و تنظیم یک نام بیان میکند.
- خط 14 تابع ضرب شده را با سه آرگومان اعلام میکند، متغیر _uri از نوع رشته، فرآیند ذخیرهسازی URI فایل JSON، متغیر _to از نوع آدرس که به ذخیره آدرس گیرنده توکن NFT کمک میکند، متغیر _tokenId از uint256 را تایپ کنید که شناسه توکن را نگه میدارد.
- خط 15 دستور ضرب توکن را با کمک شناسه توکن و آدرس گیرنده میدهد.
- خط 16 در مورد راهاندازی Token URI با کمک URI فایل JSON و شناسه توکن بیان میکند.
- با کمک Web3 اضافه شده، قرارداد هوشمند کامپایل شده را مستقر کنید و سپس تراکنش را از metamask تأیید کنید.
پس از استقرار قرارداد هوشمند، آن را از بخش «قراردادهای مستقر» در Remix گسترش دهید. بسیاری از توابع/روشها را منعکس خواهد کرد. سپس عملکرد نعناع را گسترش دهید و جزئیات ذکر شده در زیر را ضمیمه کنید:
- آدرس Ropsten
- اضافهکردن یک حجم بالا در فیلد tokened
- URI فایل JSON را در قسمت _uri که قبلاً بهدستآمده اضافه کنید.
کلیک کنید و تراکنش را از metamask تأیید کنید. سپس یک توکن روی زنجیره Ropsten خواهید داشت. همچنین میتوانید اعتبارنامههای دیگر مانند نام، نماد، مالک یا نشانی URI را با درج شناسه رمز تأیید کنید.
بیشتر بخوانید: نحوه یادگیری زبان برنامهنویسی سالیدیتی (Solidity)
امتحان کردن توکن
بعد از ساخت توکن، بهتر است جهت اطمینان یکبار نمونه ساختهشده توکن خود را بررسی کنید.
پیشنهاد میکنیم از یک بلاکچین محلی تعبیه شده داخل برای بررسی و امتحان کردن توکن خود استفاده کنید. مراحل تست توکن در این بلاکچین به روش زیر است:
truffle develop
این میز امکان استفاده از فرمان Truffle آسان میکند.
به یاد داشته باشید که برای نصب قرارداد لازم است یک فایل migration اضافه کنید.
truffle compile
migrate –reset
SIMPLEToken.deployed().then((simple) => {token = simple;})
در ادامه برای تعدادی توکن یک تست تایید و انتقال انجام دهید:
oken._mint(web3.eth.accounts[0]) // will mint a new tokentoken.totalSupply() // check token’s total supplytoken.safeTransferFrom(web3.eth.accounts[0] , web3.eth.accounts[1], 1) // transfer token (token id 1) from 0’th account to 1st accounttoken.ownerOf(1) // check owner of token id 1token._mint(web3.eth.accounts[0]) // will mint another tokentoken.approve(web3.eth.accounts[3] , 2) // approve token id 2 to account[3]token.safeTransferFrom(web3.eth.accounts[0] , web3.eth.accounts[1], 2 , {from:web3.eth.accounts[3]}) // Note that we are adding {from:web3.eth.accounts[3]}, this mean that we are invoking this function using account[3]
چشماندازیهای توکن ERC-721
بهاینترتیب میتوان هر دیتا یا وسیلهای که ارزش توکنیزه شدن را دارد به یک توکن تبدیل و وارد بازار nftها کرد؛ از شناسنامه شخص گرفته تا دارایی، هنر و حتی موارد نادری که در بازیهای ویدئویی دیده میشوند.
در کنار همه این ویژگیها، مهمترین پتانسیل توکنهای erc-721 مشاهده روش استفاده از آنها در قراردادهای هوشمند، برای ایجاد مدلهای تجاری کاملا جدید و روشهای معامله است.
تفاوت توکن ERC-20 با توکن ERC-721
دو تفاوت مهم برای توکنهای ERC-20 و توکنهای ERC-721 میتوان ذکر کرد:
- توکنهای ERC-721 بر خلاف توکنهای ERC-20 غیر قابل تعویض هستند. این توکنها ارزش منحصر بهفردی دارند، از بین نمیروند و از همه مهمتر، کمیاب هستند. هیچ توکن ERC-72 مشابه توکن دیگری نیست.
- توکنهای ERC-72 غیرقابلتقسیم هستند و نمیتوان آن را به بخشها و واحدهای یکسان، با ارزش یکسان تبدیل کرد.
معروفترین NFTها
معروفترین NFTهایی که در استاندارد شبکه ERC-721 ساخته شدهاند، نمونههای زیر است:
- Etherscan NFT Tracker: بهترین NFT در اتریوم را بر اساس حجم نقل و انتقالات فهرست میکند.
- CryptoKitties: یک بازی است که حول محور موجودات قابل پرورش و کلکسیونی فعالیت میکند.
- Sorare: یک بازی فوتبال فانتزی جهانی است که در آن می توانید مجموعه های محدودی را جمع آوری کنید، تیم های خود را مدیریت کنید و برای کسب جوایز رقابت کنید.
- سرویس نام اتریوم (ENS): روشی امن و غیرمتمرکز برای آدرسدهی منابع هم در داخل و هم خارج از بلاکچین با استفاده از نامهای ساده و قابل خواندن برای انسان ارائه میدهد.
- Unstoppable Domains: یک شرکت مستقر در سانفرانسیسکو است که دامنههای خود را بر روی بلاکچین میسازد. دامنههای بلاکچین آدرسهای ارزهای دیجیتال را با نامهای قابل خواندن برای انسان جایگزین میکنند و میتوانند برای فعالکردن وبسایتهای مقاوم در برابر سانسور استفاده شوند.
- Gods Unchained Cards: یک TCG در بلاکچین اتریوم است که از NFT برای ایجاد مالکیت واقعی بر داراییهای درون بازی استفاده میکند.
- Bored Ape Yacht Club: مجموعهای از 10000 NFT منحصر بهفرد است که علاوه بر اینکه یک اثر هنری نادر است، به عنوان نماد عضویت در باشگاه عمل میکند و امتیازات و مزایایی را برای اعضا فراهم میکند که در نتیجه تلاشهای جامعه در طول زمان افزایش پیدا میکند.
بیشتر بخوانید: با گرانترین NFT موجود در بازار آشنا شوید!
جمعبندی
درباره استاندارد ERC-72، توکنهای ساخته شده روی این شبکه و همه ویژگیها و پتانسیلهای مهم این شبکه صحبت کردیم.
با استفاده از این توکنها میتوان ارزش معنوی دیتاها و داراییهای مختلف را حفظ کرد و علاوهبرآن ارزش، ارزش مادی هم به آنها اضافه کرد.
این شبکه و توکنهای ساخته شده روی آن کاربردهای مختلفی دارند و میتوانند در صنعتهای مختلفی، از جمله صنعت بازی استفاده شوند.
قصد خرید یا فروش ارز دیجیتال در ایران را دارید؟ در این سایت میتوانید با اطمینان و با چند کلیک خرید کنید:
نام | ویژگیها | امتیاز | لینک ثبتنام |
---|---|---|---|
نوبیتکس |
| ||
صرافی خارجی MEXC |
|