🪙 دانشکدهٔ ۳ · بیتکوین و شبکههای قرارداد هوشمند
اتریوم و قرارداد هوشمند: EVM، گس و سوزاندن کارمزد
Ethereum and smart contracts: EVM, gas and EIP-1559
پیشنیازها: بیتکوین: فلسفه، سقف عرضه و هاوینگ
📚 آموزش در سه سطح
از سطح ساده شروع کنید؛ اگر روشن بود، سطح بعد را بخوانید. سطح مناسب شما ذخیره میشود.
🌱 توضیح ساده
اگر بیتکوین را ماشینحسابی بدانیم که یک کار را بسیار خوب انجام میدهد، یعنی انتقال ارزش، اتریوم شبیه رایانهای مشترک و جهانی است که هر کسی میتواند برنامهای روی آن اجرا کند. ویتالیک بوترین ایدهٔ اتریوم را در اواخر ۲۰۱۳ مطرح کرد و شبکهٔ اصلی آن در ۳۰ ژوئیهٔ ۲۰۱۵ راه افتاد. ارز بومی این شبکه اتر (ETH) است که برای پرداخت کارمزد استفاده میشود.
«قرارداد هوشمند» برنامهای است که روی بلاکچین ذخیره میشود و وقتی شرایطش برقرار شود، خودکار اجرا میشود. نزدیکترین تشبیه، دستگاه فروش خودکار نوشابه است: پول را میاندازید، دکمه را میزنید و دستگاه بدون فروشنده، طبق قاعدهای از پیش تعیینشده نوشابه را تحویل میدهد. صرافیهای غیرمتمرکز، وامدهی غیرمتمرکز، NFTها و بیشتر توکنها همین قراردادها هستند. اما «هوشمند» به معنای بیخطا نیست؛ اگر کد اشکال داشته باشد، دستگاه هم دقیقاً همان اشکال را اجرا میکند.
هر کاری روی اتریوم «گس» مصرف میکند؛ مثل بنزین برای خودرو. انتقال سادهٔ اتر گس کمی میخواهد و اجرای یک معاملهٔ پیچیده در صرافی غیرمتمرکز گس بیشتری. گس باعث میشود کسی نتواند با برنامهای بیپایان شبکه را قفل کند، چون هر مرحله هزینه دارد. از سپتامبر ۲۰۲۲ اتریوم با رویدادی به نام «مِرج» (The Merge) از اثبات کار به اثبات سهام مهاجرت کرد و از اوت ۲۰۲۱ هم بخشی از کارمزدها برای همیشه سوزانده میشود.
📘 توضیح متوسط
ماشین مجازی اتریوم (EVM) محیط اجرای قراردادهاست. همهٔ نودها همان کد را با همان ورودی اجرا میکنند و باید به همان نتیجه برسند؛ یعنی اجرا باید «قطعی» باشد. اتریوم برخلاف بیتکوین «مدل حساب» دارد: دو نوع حساب وجود دارد؛ حسابهای خارجی که با کلید خصوصی کنترل میشوند (EOA) و حسابهای قراردادی که کد دارند. قراردادها معمولاً به زبان Solidity یا Vyper نوشته و به بایتکد EVM ترجمه میشوند.
کارمزد یک تراکنش برابر است با «گس مصرفشده × قیمت هر واحد گس». قیمت گس معمولاً به gwei بیان میشود (هر gwei برابر ۰٫۰۰۰۰۰۰۰۰۱ ETH). یک انتقال سادهٔ ETH همیشه ۲۱٬۰۰۰ گس مصرف میکند. اگر کارمزد پایه ۲۰ gwei و انعام ۲ gwei باشد، کارمزد کل ۲۱٬۰۰۰ × ۲۲ = ۴۶۲٬۰۰۰ gwei یعنی ۰٫۰۰۰۴۶۲ ETH است. کاربر سقف گس (gas limit) را تعیین میکند؛ گس مصرفنشده برمیگردد، اما اگر گس در میانهٔ اجرا تمام شود، تراکنش برگشت میخورد و کارمزد مصرفشده پس داده نمیشود.
EIP-1559 در هارد فورک لندن (۵ اوت ۲۰۲۱) بازار کارمزد را عوض کرد. حالا هر بلاک یک «کارمزد پایه» (base fee) دارد که پروتکل تعیین میکند: اگر بلاک قبلی از ظرفیت هدف (نیمی از سقف گس بلاک) پرتر بوده باشد، کارمزد پایه حداکثر ۱۲٫۵٪ بالا میرود و اگر خالیتر بوده باشد، پایین میآید. کارمزد پایه سوزانده میشود و فقط «انعام» (priority fee) به اعتبارسنج میرسد. کاربر علاوه بر انعام، سقف کل قیمت هر واحد گس (maxFeePerGas) را هم تعیین میکند و تفاوت آن با مبلغ واقعاً پرداختشده برمیگردد.
🔬 توضیح تخصصی
EVM «تورینگکامل» است اما با گس محدود میشود؛ مسئلهٔ توقف با هزینه حل شده، نه با محدود کردن زبان. هزینهٔ عملیاتها نامتقارن است: نوشتن در حافظهٔ دائمی (storage) از گرانترین کارهاست، چون هر نود باید آن را برای همیشه نگه دارد. پیچیدگی بیشتر یعنی سطح حملهٔ بیشتر. حملهٔ The DAO در ژوئن ۲۰۱۶ با بهرهبرداری از ضعف «ورود مجدد» (reentrancy) بخش بزرگی از اتر صندوق را خارج کرد و جامعه در ۲۰ ژوئیهٔ ۲۰۱۶ با هارد فورکی بحثبرانگیز آن را برگرداند؛ گروهی که با این کار مخالف بودند زنجیرهٔ قبلی را با نام اتریوم کلاسیک ادامه دادند. این رویداد نشان داد «کد قانون است» در نهایت تابع اجماع اجتماعی است.
قراردادهای «قابل ارتقا» (proxy) امکان رفع اشکال را میدهند، اما یعنی کسی کلید مدیریتی دارد که میتواند منطق قرارداد را عوض کند. وقتی پروژهای ادعای غیرمتمرکز بودن میکند، باید پرسید چه کسی کلید ارتقا را دارد، آیا چندامضایی است و آیا تأخیر زمانی (timelock) وجود دارد. سطح اعتماد واقعی در همین جزئیات است، نه در کلمهٔ «بلاکچین».
EIP-1559 کارمزد را لزوماً ارزانتر نکرد؛ پیشبینیپذیرتر کرد و بخشی از ارزش را از اعتبارسنجها به همهٔ دارندگان ETH منتقل کرد. اتریوم سقف عرضهٔ ثابت ندارد: عرضهٔ خالص برابر است با صدور جدید برای اعتبارسنجها منهای مقدار سوزاندهشده. در دورههای پرترافیک، سوزاندن از صدور بیشتر بوده و عرضه کاهش یافته و در دورههای کمترافیک برعکس. پس از بهروزرسانی Dencun (۱۳ مارس ۲۰۲۴) و معرفی «بلاب»ها در EIP-4844، هزینهٔ رولآپهای لایهٔ دوم بهشدت کم شد و بخشی از فعالیت از لایهٔ اول به لایهٔ دوم رفت؛ برای وضعیت روز عرضه باید به داشبوردهای آنچین مراجعه کرد، نه به شعار «پول فراصوتی».
ترتیب تراکنشها در بلاک نیز ارزش دارد (MEV): کسی که بلاک را میسازد میتواند با جلو انداختن یا پشت سر گذاشتن تراکنشها سود بگیرد. انعام بالاتر، اولویت را بیشتر میکند اما شما را از معاملهٔ «ساندویچی» در صرافیهای غیرمتمرکز محافظت نمیکند؛ تنظیم درست لغزش قیمت (slippage) و استفاده از مسیرهای ارسال خصوصی، بخشی از دانش عملی کاربر اتریوم است.
🌍 مثال واقعی: هارد فورک لندن و شروع سوزاندن کارمزد: ۵ اوت ۲۰۲۱
در ۵ اوت ۲۰۲۱ هارد فورک لندن در بلاک ۱۲٬۹۶۵٬۰۰۰ اتریوم فعال شد و EIP-1559 را به اجرا درآورد. از آن بلاک به بعد، کارمزد پایهٔ هر تراکنش سوزانده میشود و فقط انعام به تولیدکنندهٔ بلاک میرسد.
این تغییر بدون موافقت همهٔ ماینرهای آن زمان انجام شد، چون بخشی از درآمد آنها را حذف میکرد؛ اما نودها و کاربران نرمافزار جدید را پذیرفتند و زنجیرهٔ اصلی همان شد. این نمونهای از این است که قدرت نهایی در بلاکچین با کسانی است که نرمافزار نود را اجرا میکنند.
برای بررسی، در etherscan.io یک بلاک جدید را باز کنید و فیلدهای Base Fee Per Gas و Burnt Fees را ببینید. سپس یک تراکنش انتقال سادهٔ ETH را باز کنید و تأیید کنید که Gas Used برابر ۲۱٬۰۰۰ است.
🔤 واژگان تخصصی
برنامهای ذخیرهشده روی بلاکچین که طبق کد خود و بدون واسطه اجرا میشود.
مثال: قرارداد یک صرافی غیرمتمرکز که با دریافت یک توکن، توکن دیگری را طبق فرمول قیمت میپردازد.
محیط اجرای قطعی که همهٔ نودهای اتریوم با آن کد قراردادها را اجرا و نتیجه را بررسی میکنند.
مثال: شبکههایی مثل BNB Chain و بسیاری از لایههای دوم «سازگار با EVM» هستند و همان قراردادها را اجرا میکنند.
واحد سنجش مقدار محاسبه و ذخیرهسازی که یک تراکنش مصرف میکند.
مثال: انتقال سادهٔ ETH دقیقاً ۲۱٬۰۰۰ گس مصرف میکند.
قیمت هر واحد گس که پروتکل بر اساس پری بلاک قبلی تعیین میکند و پس از EIP-1559 سوزانده میشود.
مثال: اگر بلاک قبلی کاملاً پر باشد، کارمزد پایهٔ بلاک بعد ۱۲٫۵٪ بالاتر میرود.
مبلغی که کاربر علاوه بر کارمزد پایه برای اولویت بیشتر به تولیدکنندهٔ بلاک میدهد.
مثال: در زمان شلوغی، کیف پول پیشنهاد انعام بالاتری میدهد تا تراکنش زودتر وارد بلاک شود.
واحد رایج بیان قیمت گس، برابر یک میلیاردم ETH.
مثال: قیمت گس ۲۰ gwei یعنی هر واحد گس ۰٫۰۰۰۰۰۰۰۲ ETH.
🔑 نکات کلیدی
- قرارداد هوشمند دقیقاً همان کاری را میکند که کدش میگوید؛ اشکال کد هم دقیقاً اجرا میشود.
- کارمزد = گس مصرفشده × (کارمزد پایه + انعام)؛ انتقال سادهٔ ETH همیشه ۲۱٬۰۰۰ گس است.
- از هارد فورک لندن (۵ اوت ۲۰۲۱) کارمزد پایه سوزانده میشود و فقط انعام به اعتبارسنج میرسد.
- اتریوم سقف عرضهٔ ثابت ندارد؛ عرضهٔ خالص به تعادل صدور و سوزاندن بستگی دارد و باید از دادههای روز بررسی شود.
- قراردادهای قابل ارتقا کلید مدیریتی دارند؛ پرسیدن «چه کسی میتواند کد را عوض کند» بخشی از ارزیابی ریسک است.
⚠️ اشتباهات رایج
- این تصور که «هوشمند» یعنی بدون اشکال یا امن؛ قراردادها بارها بهدلیل اشکال کد هک شدهاند.
- پایین گذاشتن بیش از حد سقف گس برای صرفهجویی؛ اگر گس تمام شود تراکنش برگشت میخورد و کارمزد مصرفشده از دست میرود.
- فکر کردن به اینکه EIP-1559 کارمزدها را همیشه ارزان کرده است؛ این تغییر کارمزد را پیشبینیپذیرتر کرد، نه لزوماً ارزانتر.
- تکرار شعار «اتر حتماً کاهشی است» بدون نگاه به داده؛ عرضهٔ خالص در دورههای مختلف هم کاهشی و هم افزایشی بوده است.
🛠 تمرین عملی: محاسبهٔ کارمزد و مقدار سوزاندهشده در یک تراکنش واقعی
- در etherscan.io یک تراکنش انتقال سادهٔ ETH پیدا کنید (از صفحهٔ آخرین تراکنشها).
- مقادیر Gas Used، Base Fee و Max Priority Fee یا Priority Fee پرداختشده را یادداشت کنید.
- کارمزد کل را با رابطهٔ «گس مصرفشده × (کارمزد پایه + انعام)» حساب کنید و به ETH تبدیل کنید.
- مقدار سوزاندهشده را با «گس مصرفشده × کارمزد پایه» حساب کنید و با فیلد Burnt Fees مقایسه کنید.
- همین کار را برای یک تراکنش تعامل با قرارداد (مثلاً یک swap) تکرار کنید و توضیح دهید چرا گس مصرفی بیشتر است.
✅ معیار درستی: عدد محاسبهشدهٔ شما برای کارمزد کل و کارمزد سوزاندهشده باید با اعداد etherscan (با اختلاف گرد کردن ناچیز) یکی باشد و Gas Used انتقال ساده دقیقاً ۲۱٬۰۰۰ باشد.
🔒 در هیچ تمرینی از سرمایهٔ واقعی، عبارت بازیابی (Seed Phrase)، کلید خصوصی یا اتصال کیف پول اصلی استفاده نکنید.
📝 آزمون تطبیقی
هر بار ۵ سؤال از بانک ۹ سؤالی این درس انتخاب میشود؛ سؤالهایی که قبلاً اشتباه زدهاید زودتر برمیگردند. حدنصاب قبولی ۸۰٪ (۴ از ۵) است و درس بعد با قبولی باز میشود.
✍️ پرسش تشریحی
سازوکار کارمزد اتریوم را قبل و بعد از EIP-1559 مقایسه کنید و توضیح دهید چرا عرضهٔ ETH میتواند در دورهای کاهشی و در دورهای افزایشی باشد.
بعد از نوشتن، پاسخ خود را با این معیارها بسنجید
خودارزیابی: هر نکتهای را که پاسخ شما بهروشنی پوشش داده علامت بزنید.
🤖 دستیار آموزشی
دستیار آفلاین آکادمی: پاسخها فقط از متن درسها و واژگان همین آکادمی پیدا میشوند و منبع هر پاسخ نشان داده میشود. هوش مصنوعی مولد نیست، حدس نمیزند و هیچ سیگنال خرید و فروشی نمیدهد.
📎 منابع مطالعاتی
- ethereum.org — Gas and fees
- ethereum.org — Ethereum Virtual Machine (EVM)
- EIP-1559: Fee market change for ETH 1.0 chain
- ethereum.org — Smart contracts
🏁 معیار تسلط بر این درس: میتوانید کارمزد کل و مقدار سوزاندهشدهٔ یک تراکنش اتریوم را از روی etherscan محاسبه کنید و ریسک کلید مدیریتی یک قرارداد قابل ارتقا را توضیح دهید.