اتریوم Ethereum چیست؟

۱. معرفی اتریوم (Ethereum)
- تعریف:
- اتریوم (Ethereum) یک پلتفرم بلاکچین Blockchain غیرمتمرکز Decentralized است که شبکهای همتابههمتا (Peer-to-Peer) را برقرار میکند تا قراردادهای هوشمند (Smart Contracts) را بهصورت ایمن اجرا و تأیید کند.
- قراردادهای هوشمند Smart Contracts :
- به مشارکتکنندگان امکان میدهند بدون نیاز به مرجع متمرکز مورد اعتماد، با یکدیگر تراکنش داشته باشند.
- سوابق تراکنشها تغییرناپذیر (Immutable)، قابلراستیآزمایی (Verifiable) و بهصورت امن در سراسر شبکه توزیع میشوند.
- تراکنشها و هزینهها:
- تراکنشها از طریق حسابهای کاربری اتریوم (Ethereum) انجام میشوند.
- فرستنده باید تراکنشها را امضا کند و برای پردازش آنها در شبکه، کارمزدی بهصورت اِتر (رمزارز اصلی اتریوم) پرداخت نماید.
- پیام اصلی:
- اتریوم (Ethereum) شبکهای برای سازندگان است؛ یعنی محیطی برای توسعهدهندگان جهت ایجاد و استقرار اپلیکیشنهای غیرمتمرکز Decentralized فراهم میکند.
در واقع اتریوم (Ethereum) پلتفرم اصلی برای هزاران اپلیکیشن و بلاکچین Blockchain است که همگی بر پایهی پروتکل اتریوم(Ethereum) فعالیت میکنند. این اکوسیستم پویا، نوآوری و مجموعه متنوعی از برنامهها و خدمات غیرمتمرکز (dApps) را ممکن میسازد.
- حسابهای اتریوم (Ethereum) :
- رایگان
- در دسترس جهانی
- شبهخصوصی (Pseudo-private): نیازی به ارائه اطلاعات شخصی نیست
- بدون محدودیت: هر کسی میتواند در آن مشارکت کند
- مالکیت و کنترل:
- هیچ شرکتی مالک اتریوم (Ethereum) نیست و هیچ نهادی دربارهی آینده آن تصمیم نمیگیرد.
۲. چه کسی اتریوم(Ethereum) را اداره میکند؟
- مدیریت غیرمتمرکز Decentralized :
- اتریوم (Ethereum) تحت کنترل هیچ نهاد یا شخص خاصی نیست.
- هر زمان که رایانههایی بههم متصل شده و نرمافزاری مطابق با پروتکل اتریوم (Ethereum) اجرا کنند و به دفترکل اضافه شوند، اتریوم (Ethereum) فعال است.
- نودها (Nodes):
- هر یک از این رایانهها «نود» نامیده میشوند.
- هر کس میتواند یک نود را اجرا کند.
- استیکینگ (Staking):
- برای مشارکت در ایمنسازی شبکه، لازم است توکن اتریوم(Ethereum) اِتر یا (ETH) را استیک کنید.
- هر فرد با داشتن ۳۲ اتر میتواند بدون دریافت مجوز در فرآیند مشارکت داشته باشد.
- کد منبع و توسعه:
- کد منبع اتریوم (Ethereum) توسط یک نهاد منفرد تولید نمیشود؛
- هر کس میتواند پیشنهاد تغییر در پروتکل ارائه دهد.
- چندین پیادهسازی مستقل و متنباز از پروتکل اتریوم (Ethereum) وجود دارد که مشارکت جامعه را ترغیب میکنند.
۴. مرج (The Merge)
- تاریخ و زمان:
- در ۱۵ سپتامبر ۲۰۲۲، ساعت ۰۶:۴۲:۴۲ به وقت جهانی (UTC) و در بلوک شماره ۱۵۵۳۷۳۹۳، رویداد «مرج» کامل شد.
- تغییر الگوریتم اجماع:
- اتریوم (Ethereum) از الگوریتم اثبات کار (Proof of Work - PoW) به الگوریتم اثبات سهام (Proof of Stake - PoS) منتقل شد.
- تأثیرات:
- ادغام شبکه اصلی اتریوم (Ethereum) با زنجیره بیکن (Beacon Chain) مبتنی بر PoS، منجر به کاهش مصرف انرژی و بهبود پایداری اتریوم شد.
- بخشی از ارتقاهای مداوم بنیاد اتریوم (Ethereum) برای بهبود مقیاسپذیری، امنیت و پایداری است.
۵. مزایای ساخت برنامه بر بستر اتریوم (Ethereum)
- انعطافپذیری بالا:
- اتریوم (Ethereum) بستری انعطافپذیر برای ساخت برنامههای غیرمتمرکز (dApps) است.
- ابزارهای توسعه:
- استفاده از زبان برنامهنویسی بومی سالیدیتی (Solidity) و ماشین مجازی اتریوم
(Ethereum Virtual Machine) - اکوسیستم غنی ابزارهای توسعه و بهترین شیوهها به همراه بلوغ پروتکل.
- استفاده از زبان برنامهنویسی بومی سالیدیتی (Solidity) و ماشین مجازی اتریوم
- تجربه کاربری (UX):
- کیف پولهای محبوب مانند MetaMask، Argent، Rainbow و غیره رابطهای کاربرپسندی ارئه میدهند.
- تشویق توسعهدهندگان:
- جامعه کاربری بزرگ اتریوم (Ethereum) توسعهدهندگان را تشویق میکند تا اپلیکیشنهای خود را روی این شبکه عرضه کنند.
- حمایت از صنایع نوین:
- اتریوم Ethereum بستر اصلی برای برنامههای غیرمتمرکزی مانند Decentralized Finance (DeFi) (امور مالی غیرمتمرکز) و NFTs (توکنهای غیرمثلی)
(Non-Fungible Tokens) است.
- اتریوم Ethereum بستر اصلی برای برنامههای غیرمتمرکزی مانند Decentralized Finance (DeFi) (امور مالی غیرمتمرکز) و NFTs (توکنهای غیرمثلی)
۶. موارد استفاده (Use Cases)
۶.۱ امور مالی غیرمتمرکز Decentralized Finance (DeFi)
- تعریف:
- دیفای مجموعهای از برنامههای مالی است که بر روی بلاکچین Blockchain ساخته میشوند.
- ویژگیها:
- باز (Open)، قابل برنامهنویسی و بدون مرجع متمرکز.
- امکان ارائه مدلهای نوین پرداخت، سرمایهگذاری، وامدهی و مبادله.
- نمونهها:
- پلتفرمهای معروف مانند Compound، Aave، UniSwap و MakerDAO.
۶.۲ توکنهای غیرمثلی(NFTs: Non-Fungible Tokens)
- تعریف:
- NFTها ( Non-Fungible Tokens) توکنهای دیجیتال منحصربهفرد و تقسیمناپذیر هستند که برای اثبات منشأ داراییهای کمیاب، چه دیجیتال و چه فیزیکی، بهکار میروند.
- کاربردها:
- هنرمندان میتوانند آثار خود را توکنیزه کنند تا منحصربهفرد بودن و مالکیت اثبات شود.
- در صنعت بازیسازی، NFTها (Non-Fungible Tokens)امکان همکاری و تعامل میان پلتفرمهای مختلف بازی را فراهم میکنند.
- نمونهها:
- اولین پروژه NFT روی اتریوم: CryptoKitties
- بازی Gods Unchained: یک بازی کارتی که مالکیت کامل آیتمهای درون بازی را به بازیکنان واگذار میکند.
- رشد و محبوبیت:
- با روی آوردن شرکتهای بیشتری به توکنیزه کردن داراییها، محبوبیت NFTها رو به افزایش است.
ERC20 چیست؟
ERC20 یک استاندارد برای توکنهای قابل تعویض (Fungible Tokens) در بلاکچین اتریوم Ethereum Blockchain است. این عبارت مخفف Ethereum Request for Comments 20 بوده و مجموعهای از قوانین و توابع را تعریف میکند که توکنهای مبتنی بر اتریوم Ethereum باید از آن پیروی کنند. این امر باعث تعاملپذیری (Interoperability) و سازگاری (Compatibility) آنها با اپلیکیشنها، کیف پولها، صرافیهای رمز ارز و قراردادهای هوشمند Smart Contractsمختلف در سراسر اکوسیستم اتریوم Ethereum میشود.
از زمانی که ERC20 خود را بهعنوان استانداردی برای ایجاد توکنهای قابل تعویض Fungible Tokens تثبیت کرد، به یکی از ستونهای اصلی اکوسیستم بلاکچین اتریوم Ethereum Blockchain تبدیل شد و به توسعهدهندگان امکان داده است تا راهکارهای نوآورانه بسازند و موجب رشد بیشتر این پلتفرم شوند.
مانند توکنهای سنتی اتر (Ether)، تمام تراکنشهای مربوط به توکنهای ERC20 روی بلاکچین اتریوم Ethereum Blockchain ثبت میشوند و این ویژگی امکان ردیابی تمام انتقالها و عملیات مرتبط با توکن در شبکه را فراهم میکند.
استاندارد ERC-20 چگونه کار میکند؟
در هسته خود، استاندارد ERC20 توابعی را تعریف میکند که یک قرارداد توکن (Token Contract) باید پیادهسازی کند تا بهعنوان یک توکن ERC20 سازگار شناخته شود. این توابع نقشی حیاتی در عملکرد توکنهای ERC20 ایفا میکنند: از ردیابی کل عرضه Total Supply توکنها گرفته تا مدیریت نحوه انتقال توکنها بین آدرسهای مختلف.
توابع اصلی ERC-20
استاندارد ERC20 مستلزم است که هر توکن شش تابع اجباری را پیادهسازی کند:
- totalSupply: مجموع عرضهٔ کل توکنهای ERC-20
- balanceOf: موجودی توکنهای ERC-20 که در یک آدرس کیف پول واحد نگهداری میشود
- transfer: امکان ارسال توکنهای ERC20 از یک آدرس کیف پول به آدرس دیگر
- approve: صدور مجوز برای یک آدرس بهمنظور خرجکردن توکنها از طرف آدرس دیگر
- transferFrom: اجازه میدهد یک آدرس، توکنها را از آدرس تأییدشده (Approved) ارسال کند
- allowance: میزان توکنهایی که یک آدرس تأییدشده اجازه دارد به نمایندگی از آدرس دیگر خرج کند
برخی از این توابع قرارداد هوشمند ERC20 برای مقاصد امنیتی در نظر گرفته شدهاند. آنها پیش از انتقال توکنها، موجودی فرستنده و مجوزهای صادرشده (Approvals) را بررسی میکنند. این کار کمک میکند مجوزها بهدرستی اعمال و از تراکنشهای غیرمجاز Unauthorized Transactions جلوگیری شود.
علاوه بر این، تعدادی تابع اختیاری نیز وجود دارد که توسعهدهندگان میتوانند از طریق سالیدیتی (Solidity) در قراردادهای ERC20 اضافه کنند:
- name: نام توکن ERC-20
- symbol: نماد (تیکر) توکن ERC-20
- decimals: حداکثر تعداد اعشار قابل تقسیم برای یک توکن
تصویری از لوگوی اتریوم که جهان را به هم متصل میکند
ERC-20 توکنها نقش مهمی در قدرتبخشیدن به شبکه اتریوم Ethereum Network دارند
اگرچه این توابع اجباری نیستند، اما ممکن است برای کاربران و توسعهدهندگانی که با کوین Coin یا توکن موردنظر در تعاملاند مفید باشند. بهعنوان مثال، استفاده از name و symbol میتواند به شناسایی بهتر توکن کمک کند و از خرید یا ارسال اشتباه یک توکن توسط کاربران جلوگیری کند.
ERC721 چیست؟
ERC721 استانداردی برای نمایش توکنهای غیرمثلی (NFTs: Non-Fungible Tokens) در بلاکچین اتریوم Ethereum Blockchain است. برخلاف توکنهای مثلی Fungible Tokens مانند رمزارزها که هر توکن کاملاً مشابه و قابلتعویض با توکن دیگر است، توکنهای غیرمثلی (NFTs: Non-Fungible Tokens) منحصربهفرد هستند و میتوانند نشاندهندهٔ مالکیت داراییها یا اقلام خاص باشند.
استاندارد ERC721 مجموعهای از قوانین و توابع را تعریف میکند که یک قرارداد هوشمند Smart Contract باید برای مدیریت این توکنهای منحصربهفرد Unique Token پیادهسازی کند. این استاندارد امکان ایجاد، انتقال و پرسوجوی جزییات مالکیت را فراهم میآورد.
توابع ERC-721
این استاندارد توابع کلیدیای فراهم میکند که برای مدیریت توکنهای غیرمثلی (NFTs: Non-Fungible Tokens) روی بلاکچین اتریوم Ethereum Blockchain به کار میروند:
- BalanceOf
این تابع تعداد NFTهای متعلق به یک آدرس مشخص را برمیگرداند. بهعبارت دیگر، مشخص میکند چه تعداد توکن غیرمثلی(NFTs: Non-Fungible Tokens) منحصربهفرد تحت مالکیت یک شخص است. - OwnerOf
تابع ownerOf برای شناسایی صاحب یک توکن خاص (بر اساس شناسه منحصربهفردش) استفاده میشود. شبیه فهمیدن اینکه چه کسی مالک یک خانه خاص با آدرس ویژه است. - SafeTransferFrom بدون پارامتر داده
این تابع انتقال ایمن مالکیت یک توکن را از یک آدرس به آدرس دیگر تضمین میکند. همچنین در صورتی که گیرنده یک قرارداد هوشمندSmart Contract باشد، بررسی میکند که آیا آن قرارداد میتواند این توکن را دریافت کند یا خیر. - TransferFrom
برای جابهجایی مالکیت توکن از یک آدرس به آدرس دیگر به کار میرود. معمولاً هنگامی استفاده میشود که فرستنده مجوز انجام انتقال را داشته باشد. - Approve
با استفاده از این تابع میتوانید آدرسی را برای انتقال یک توکن مشخص تأیید (Approve) کنید. این قابلیت امکان انتقالهای مورد اعتماد را فراهم میسازد و به مالک اجازه میدهد فرد یا نهاد دیگری را برای مدیریت توکن به نمایندگی از خود، مجاز کند. - GetApproved
این تابع آدرسی که برای انتقال یک توکن خاص تأیید شده است را برمیگرداند. اگر هیچ آدرسی تأیید نشده باشد، مقدار آدرس خالی (Null) را برمیگرداند که نشان میدهد هیچ مجوزی صادر نشده است. - SetApprovalForAll
این تابع به مالک یک یا چند توکن اجازه میدهد تا مجوز مدیریت تمام توکنهایش را به یک «اپراتور» بدهد یا از او پس بگیرد. شبیه اینکه یک فرد را برای مدیریت کل مجموعه داراییهای دیجیتال خود منصوب یا عزل کنید. - IsApprovedForAll
بررسی میکند آیا اپراتور مذکور برای مدیریت همه توکنهای متعلق به یک مالک خاص مجوز دارد یا خیر. به عبارت دیگر، مشخص میکند که آیا اپراتور اجازه نظارت بر کل مجموعه توکنهای آن مالک را دارد یا نه. - SafeTransferFrom بههمراه داده
مشابه تابع SafeTransferFrom بدون داده است، اما یک پارامتر داده اضافی دارد. این پارامتر امکان اضافه کردن اطلاعات بیشتر هنگام انتقال یک توکن را فراهم میکند، بهخصوص اگر گیرنده یک قرارداد هوشمند Smart Contract باشد. همچنین بررسی میکند که آیا قرارداد هوشمند قابلیت دریافت توکن را دارد یا خیر (از طریق اجرای تابع onERC721Received)، تا انتقال بدون مشکل صورت گیرد.
استاندارد ERC-721 چگونه کار میکند؟
استاندارد ERC-721 الگویی (Blueprint) برای توسعهدهندگان ارائه میکند تا توابع خاصی را در قراردادهای هوشمند Smart Contracts آنها قرار دهند. این توابع امکان ایجاد، انتقال و مدیریت توکنهای غیرمثلی (NFTs: Non-Fungible Tokens) را فراهم میکنند.
هر توکن ایجادشده دارای متادیتای منحصربهفردی است و از این راه، هویت و ویژگیهای یکتای خود را حفظ میکند. قراردادهای هوشمندSmart Contracts ERC-721 مانند یک دفترکل دیجیتال Digital Ledger عمل میکنند و جزییات مالکیت توکنها را بهدقت ثبت میکنند. این دفترکل Ledger امکان تبادل ایمن و شفاف توکنها بین کاربران را فراهم میسازد و در عین حال اطلاعات مربوط به عرضه کل توکن و نحوه توزیع آنها در آدرسهای مختلف را نیز ذخیره میکند.