تراکنش اتریوم در هسته خود، واحد بنیادین تعامل با بلاکچین اتریوم است. این تراکنش به عنوان یک دستورالعمل با امضای رمزنگاریشده، از یک «حساب با مالکیت خارجی» (EOA) – آدرسی تحت کنترل کاربر که توسط یک کلید خصوصی محافظت میشود – منشأ میگیرد و هدف آن تغییر وضعیت شبکه اتریوم است. برخلاف تراکنشهای بانکی سنتی که شامل دفترکلهای متمرکز هستند، تراکنشهای اتریوم در یک دفترکل غیرمتمرکز، عمومی و تغییرناپذیر به نام بلاکچین پردازش و ثبت میشوند.
هر اقدامی که در اتریوم انجام میشود، از ارسال اتر (ETH) به شخصی دیگر گرفته تا استقرار یک قرارداد هوشمند جدید یا تعامل با یک اپلیکیشن غیرمتمرکز (dApp) موجود، در قالب یک تراکنش بستهبندی میشود. این اقدامات صرفاً ورودیهای داده نیستند؛ بلکه دستورات اجرایی هستند که محاسبات خاص یا انتقال ارزش را در شبکه فعال میکنند. هنگامی که یک تراکنش با موفقیت پردازش و در یک بلاک گنجانده شد، به بخشی دائمی و شفاف از تاریخچه اتریوم تبدیل میشود که برای همه قابل مشاهده است.
بسیار مهم است که بین تراکنش «حساب با مالکیت خارجی» و آنچه برخی ممکن است به صورت غیررسمی «تراکنش داخلی» بنامند، تمایز قائل شویم. در حالی که قراردادهای هوشمند میتوانند قراردادهای هوشمند دیگر را فراخوانی کنند و باعث اقدامات و انتقال ارزشهای بعدی شوند، اینها تراکنشهای مستقل و دارای امضای رمزنگاریشده به همان شیوهای که یک EOA آغاز میکند، نیستند. در عوض، این فراخوانیهای داخلی نتیجه یک تراکنش واحد و فراگیر هستند که توسط EOA شروع شده است و اجرای آنها به عنوان بخشی از رسید کلی و لاگهای آن تراکنش ثبت میشود. این تمایز بر نقش اساسی EOAها به عنوان نقطه شروع تمام تغییرات وضعیت در اتریوم تأکید میکند.
یک تراکنش اتریوم صرفاً یک دستور ساده «ارسال پول» نیست؛ بلکه یک ساختار داده شامل چندین فیلد حیاتی است. هر فیلد نقش مشخصی در تعریف هدف تراکنش، پارامترهای اجرای آن و اصالت آن ایفا میکند. درک این اجزا برای فهم نحوه عملکرد تراکنشها ضروری است.
در اینجا فیلدهای اصلی که معمولاً در یک تراکنش اتریوم یافت میشوند، آورده شده است:
nonce: این یک شمارنده متوالی مخصوص هر حساب است که از حملات بازپخش (replay attacks) جلوگیری میکند. برای هر تراکنش ارسال شده از یک EOA خاص، نانس باید به صورت افزایشی بالا برود. اگر یک EOA تراکنشی با نانس N ارسال کند، تراکنش بعدی آن باید دارای نانس N+1 باشد. این امر تضمین میکند که هر تراکنش از یک حساب دقیقاً یک بار و به ترتیب صحیح پردازش میشود.gasPrice: این مقدار که با واحد Gwei اندازهگیری میشود (1 Gwei = 10^9 wei، که در آن 1 ETH = 10^18 wei)، نشاندهنده مقدار اتری است که فرستنده مایل است به ازای هر واحد «گس» (gas) محاسباتی مصرف شده توسط تراکنش بپردازد. gasPrice بالاتر معمولاً به این معنی است که تراکنش برای اعتبارسنجها (validators) جذابتر است و احتمال بیشتری دارد که سریعتر در بلاک بعدی گنجانده شود. با معرفی EIP-1559، این مفهوم به maxFeePerGas و maxPriorityFeePerGas (انعام) تکامل یافت که در بخش «گس» در مورد آن بحث خواهیم کرد.gasLimit: این فیلد حداکثر تعداد واحدهای گسی را که فرستنده مایل است اجازه دهد تراکنش مصرف کند، مشخص میکند. این به عنوان یک مکانیسم ایمنی عمل کرده و از اجرای نامحدود تراکنشها به دلیل باگها (مثلاً حلقههای بیپایان در قراردادهای هوشمند) یا کدهای مخرب جلوگیری میکند. اگر تراکنش با موفقیت اجرا شود و کمتر از gasLimit مصرف کند، گس استفاده نشده به فرستنده مسترد میشود. اگر بیشتر مصرف کند، تراکنش با شکست مواجه میشود، اما گس مصرف شده تا نقطه شکست همچنان به اعتبارسنج پرداخت میشود.to: این آدرس عمومی اتریومِ دریافتکننده است.
to آدرس یک EOA دیگر یا یک قرارداد هوشمند خواهد بود.to خالی میماند (یا روی آدرس صفر تنظیم میشود).value: این فیلد مقدار اتری را بر حسب wei نشان میدهد که فرستنده مایل است به آدرس to منتقل کند. برای انتقالهای ساده ETH، این مقدار غیرصفر خواهد بود. برای تعامل با قرارداد هوشمند، ممکن است صفر باشد (اگر تابع به ETH نیاز نداشته باشد) یا مقدار مشخصی باشد (اگر تابع payable باشد).data: این فیلد یک آرایه بایت با طول متغیر و اختیاری است که برای اهداف مختلف استفاده میشود:
to خالی باشد، فیلد data حاوی کد بایت (bytecode) کامپایل شده قرارداد هوشمندی است که قرار است روی بلاکچین مستقر شود.to آدرس یک قرارداد هوشمند باشد، فیلد data حاوی انتخابگر تابع (function selector) فراخوانی شده و پس از آن آرگومانهای کدگذاری شده با ABI برای آن تابع است.v, r, s: این سه مقدار، امضای دیجیتال تراکنش را تشکیل میدهند. آنها با استفاده از کلید خصوصی فرستنده تولید میشوند و به هر شرکتکننده در شبکه اجازه میدهند تأیید کند که تراکنش واقعاً توسط فرستنده مجاز شده و دستکاری نشده است. مولفه v به بازیابی کلید عمومی از امضا کمک میکند، در حالی که r و s مولفههای استاندارد امضای منحنی بیضوی هستند.این اجزا در مجموع تراکنش خام (raw transaction) را تشکیل میدهند که سپس به صورت رمزنگاریشده امضا و در شبکه اتریوم پخش میشود.
اگرچه همه تراکنشهای اتریوم ساختار مشترکی دارند، اما هدف آنها اغلب آنها را در دستههای متمایزی قرار میدهد. درک این انواع، گستره تعاملات ممکن در شبکه را روشن میکند.
این مستقیمترین نوع تراکنش است، شبیه به ارسال پول از یک حساب بانکی به حساب دیگر.
to حاوی آدرس EOA دریافتکننده یا یک قرارداد هوشمند است.value مقدار غیرصفری از ETH را برای ارسال مشخص میکند.data معمولاً خالی است، اگرچه در صورت تمایل میتوان یک پیام کوتاه دلخواه را در آن گنجاند.این نوع تراکنش برای انتشار کد قرارداد هوشمند جدید روی بلاکچین اتریوم استفاده میشود و آن را برای همیشه در دسترس و قابل اجرا توسط هر کسی قرار میدهد.
to خالی است (یا آدرس صفر 0x0). این به شبکه سیگنال میدهد که یک قرارداد جدید در حال ایجاد است.data حاوی کد بایت کامپایل شده قرارداد هوشمند است.value ممکن است حاوی ETH باشد اگر سازنده (constructor) قرارداد از نوع payable باشد و در هنگام استقرار به واریز اولیه نیاز داشته باشد.پس از استقرار یک قرارداد هوشمند، کاربران و سایر قراردادها میتوانند از طریق این تراکنشها با توابع آن تعامل داشته باشند. این سنگ بنای اپلیکیشنهای غیرمتمرکز است.
to آدرس قرارداد هوشمند مستقر شده را مشخص میکند.data حاوی انتخابگر تابع (یک هش چهار بایتی از نام تابع و انواع آرگومانها) و پس از آن آرگومانهای کدگذاری شده با ABI مورد نیاز آن تابع خاص است.value بسته به اینکه آیا تابع قرارداد هوشمند به عنوان payable اعلام شده و نیاز به ارسال ETH همراه با فراخوانی دارد یا خیر، ممکن است وجود داشته باشد یا نداشته باشد.این انواع تراکنش، اکوسیستم غنی و متنوع اپلیکیشنهای غیرمتمرکز و خدمات مالی را که معرف اتریوم هستند، ممکن میسازند.
سفر یک تراکنش اتریوم، از زمان شروع در کیف پول کاربر تا ثبت تغییرناپذیر آن در بلاکچین، شامل چندین مرحله بحرانی است. این چرخه حیات، یکپارچگی، امنیت و قطعیت تمام عملیات در شبکه را تضمین میکند.
ایجاد و امضای تراکنش:
nonce، gasPrice، gasLimit، to، value و data را جمعآوری میکند.v، r، s) مالکیت را اثبات کرده و از دستکاری جلوگیری میکند. کلید خصوصی هرگز از کنترل کاربر خارج نمیشود.پخش تراکنش (Broadcast):
انتخاب تراکنش و گنجاندن در بلاک:
gasPrice (یا maxPriorityFeePerGas در EIP-1559) بالاتری دارند در اولویت قرار میدهند، زیرا این تراکنشها پاداش بیشتری ارائه میدهند.gasLimit بلاک است.انتشار بلاک و اعتبارسنجی:
تأیید تراکنش (Confirmation):
این فرآیند دقیق تضمین میکند که هر تغییر وضعیت در اتریوم به طور کامل تأیید شده، توسط شبکه مورد توافق قرار گرفته و به طور دائمی ثبت شده است که ستون فقرات عملیات بدون نیاز به اعتماد و امن آن را تشکیل میدهد.
درک مفهوم «گس» برای فهم چگونگی قیمتگذاری و اجرای تراکنشهای اتریوم ضروری است. گس یک ماده فیزیکی نیست؛ بلکه یک واحد انتزاعی از تلاش محاسباتی مورد نیاز برای انجام عملیات در شبکه اتریوم است.
gasLimit حداکثر تعداد واحدهای گسی است که فرستنده مایل است برای یک تراکنش خاص خرج کند.
gasLimit خود مصرف کند، تراکنش برگشت میخورد (شکست میخورد) و هرگونه تغییر وضعیتی که در طول اجرای آن ایجاد شده باشد لغو میشود. با این حال، گس مصرف شده تا نقطه شکست همچنان به اعتبارسنج پرداخت میشود و به فرستنده مسترد نمیگردد. این امر کاربران را تشویق میکند تا سقف گس مناسبی تنظیم کنند.gasLimit مصرف کند، بخش استفاده نشده گس به فرستنده مسترد میشود.gasPrice تعیین میکند که به ازای هر واحد گس چه مقدار اتر میپردازید. این مقدار با واحد Gwei (1 Gwei = 0.000000001 ETH) مشخص میشود.
gasPrice صرفاً یک پیشنهاد قیمت (bid) بود. کاربران یک gasPrice تنظیم میکردند و اعتبارسنجها تراکنشهایی با پیشنهادهای بالاتر را در اولویت قرار میدادند. کل کارمزد تراکنش gasUsed * gasPrice بود.baseFee سوزانده میشود (از گردش خارج میشود) و به اعتبارسنجها پرداخت نمیگردد.maxFeePerGas: کاربران اکنون یک maxFeePerGas را مشخص میکنند که حداکثر قیمت کل به ازای هر واحد گس است که مایل به پرداخت آن هستند (مجموع baseFee و priorityFee). اگر baseFee برای یک بلاک کمتر از maxFeePerGas منهای priorityFee باشد، تراکنش انجام میشود. هر مقدار اضافی فراتر از baseFee واقعی و priorityFee مسترد میشود.(baseFee + priorityFee) * gasUsed.baseFee در EIP-1559 فشار تورمزدایی بر عرضه ETH وارد کرده است که با اهداف اقتصادی گستردهتر اتریوم همسو است.در اصل، گس مانند کنتور است، gasLimit نشاندهنده این است که چقدر حاضر هستید در باک بنزین بریزید و gasPrice (یا maxFeePerGas/priorityFee) هزینه هر لیتر است. پرداخت مقدار مناسب گس تضمین میکند که تراکنش شما به طور کارآمد و اقتصادی پردازش شود.
پس از اینکه یک تراکنش اتریوم پخش شد و در نهایت در بلاکچین تأیید گردید، دو بخش مهم از اطلاعات در دسترس قرار میگیرد: هش تراکنش و رسید تراکنش. اینها به عنوان شناسههای منحصر به فرد و سوابق دقیق نتیجه تراکنش عمل میکنند.
هش تراکنش که اغلب با TxID یا TxHash مخفف میشود، یک رشته هگزادسیمال ۶۴ کاراکتری منحصر به فرد است که یک تراکنش خاص را در شبکه اتریوم شناسایی میکند. این در واقع اثر انگشت تراکنش شماست.
مثال: 0x88f28d8441f71a938c0f1624c9c67672522e84c98e21a224c65e8a0f91a56c0b
رسید تراکنش شیئی است که حاوی اطلاعات جامع درباره اجرای یک تراکنش خاص است. این رسید تنها پس از اینکه تراکنش پردازش و در یک بلاک گنجانده شد، در دسترس قرار میگیرد. رسید بخشی از خود تراکنش نیست، بلکه سوابقی است که توسط شبکه تولید شده و جزئیات نتیجه تراکنش را شرح میدهد.
اطلاعات کلیدی یافت شده در رسید تراکنش شامل موارد زیر است:
blockHash: هش بلاکی که تراکنش در آن گنجانده شده است.blockNumber: شماره بلاکی که تراکنش در آن گنجانده شده است.transactionHash: هش خود تراکنش.transactionIndex: ایندکس (موقعیت) تراکنش در داخل بلاک.from: آدرس فرستنده.to: آدرس دریافتکننده (یا null برای استقرار قرارداد).gasUsed: مقدار واقعی گس مصرف شده توسط اجرای تراکنش. این مقدار میتواند کمتر یا مساوی gasLimit باشد.cumulativeGasUsed: کل گس استفاده شده توسط تمام تراکنشهای بلاک تا این تراکنش و شامل خود آن.contractAddress: اگر تراکنش از نوع استقرار قرارداد بوده باشد، این فیلد حاوی آدرس قرارداد تازه مستقر شده خواهد بود.logs: این یک فیلد حیاتی حاوی «رویدادهایی» (events) است که توسط قراردادهای هوشمند در حین اجرای تراکنش صادر شدهاند. رویدادها راهی برای قراردادها هستند تا دادههای ساختاریافته را در بلاکچین به شکلی ذخیره کنند که به راحتی توسط dAppها و خدمات خارج از زنجیره قابل جستجو و دسترسی باشد. آنها برای ردیابی فعالیتهای قرارداد، مانند انتقال توکن (رویدادهای Transfer برای توکنهای ERC-20) حیاتی هستند.status: نشان میدهد که آیا تراکنش موفقیتآمیز بوده است (1) یا برگشت خورده/شکست خورده (0). اگر تراکنشی شکست بخورد، معمولاً به این معنی است که گس آن تمام شده یا یک تابع قرارداد هوشمند با خطا مواجه شده است، اما gasUsed تا نقطه شکست همچنان پرداخت میشود.رسیدهای تراکنش برای عیبیابی، حسابرسی و ارائه بازخورد به کاربر در اپلیکیشنهای غیرمتمرکز بسیار ارزشمند هستند. آنها رکورد قطعی از آنچه در بلاکچین در نتیجه یک تراکنش خاص رخ داده است را ارائه میدهند.
امنیت و تغییرناپذیری تراکنشهای اتریوم سنگ بنای ارزش شبکه است که تعاملات بدون نیاز به اعتماد را بدون واسطهها ممکن میسازد. این ویژگیها از طریق تکنیکهای رمزنگاری پیشرفته و ماهیت فناوری بلاکچین اعمال میشوند.
هر تراکنش اتریوم از طریق امضای رمزنگاریشده ایمن میشود، فرآیندی که دو ویژگی حیاتی را تضمین میکند:
v، r، s) به صورت ریاضی ثابت میکند که تراکنش از حسابی منشأ گرفته است که کلید خصوصی آن برای امضای تراکنش استفاده شده است. این کار از جعل تراکنش توسط افراد غیرمجاز از طرف دیگران جلوگیری میکند.این تکیه بر رمزنگاری کلید عمومی به این معنی است که فقط دارنده کلید خصوصی میتواند تراکنشها را از یک EOA آغاز کند و مسئولیت امنیت را مستقیماً بر عهده کاربر میگذارد.
هنگامی که یک تراکنش با موفقیت پردازش، تأیید و در بلاکی در بلاکچین اتریوم گنجانده شد، به بخشی تغییرناپذیر از تاریخچه شبکه تبدیل میشود.
تمام تراکنشها در بلاکچین اتریوم ذاتا عمومی و شفاف هستند.
در حالی که مکانیسمهای امنیتی اتریوم قدرتمند هستند، ریسکهای خاصی همچنان وجود دارد، عمدتاً در سطح کاربر:
به طور خلاصه، تراکنشهای اتریوم توسط اصول بنیادین رمزنگاری و ماهیت تغییرناپذیر بلاکچین ایمن میشوند. در حالی که خود شبکه برای امنیت بالا طراحی شده است، کاربران مسئولیت سنگینی برای محافظت از کلیدهای خصوصی خود و احتیاط در تعاملات خود دارند تا به طور کامل از این محیط امن بهرهمند شوند.
تراکنشهای اتریوم فراتر از انتقال پول دیجیتال هستند؛ آنها عملیات بنیادینی هستند که زیربنای پارادایم کاملاً جدیدی از پول برنامهریزیپذیر و اپلیکیشنهای غیرمتمرکز را تشکیل میدهند. اهمیت آنها در حوزههای متعددی گسترش یافته و آینده امور مالی، حاکمیت و تعامل دیجیتال را شکل میدهد.
هر جنبه نوآورانه اتریوم – از امور مالی غیرمتمرکز (DeFi) گرفته تا توکنهای غیرمثلی (NFT)، سازمانهای خودگردان غیرمتمرکز (DAO) و بیشمار dApp دیگر – بر پایه توانایی اجرای تراکنشهای ایمن و قابل تأیید بنا شده است.
برخلاف ارزهای دیجیتال سادهتر که عمدتاً انتقال ارزش را تسهیل میکنند، تراکنشهای اتریوم اجرای منطق محاسباتی دلخواه را از طریق قراردادهای هوشمند ممکن میسازند. این جوهره «پول برنامهریزیپذیر» است.
یکی از انقلابیترین جنبههای تراکنشهای اتریوم، ماهیت بدون نیاز به مجوز (permissionless) آنهاست.
استحکام و تطبیقپذیری تراکنشهای اتریوم موج بیسابقهای از نوآوری در فناوری بلاکچین را به راه انداخته است. با بلوغ شبکه، مکانیسم زیربنایی تراکنش نیز به تکامل خود ادامه میدهد.
در نتیجه، تراکنشهای اتریوم مایه حیات اکوسیستم غیرمتمرکز آن هستند. آنها دستورالعملهایی با امنیت رمزنگاری، قابل تأیید عمومی و تغییرناپذیر هستند که نوآوری را پیش میبرند، پول برنامهریزیپذیر را ممکن میسازند و یک اقتصاد دیجیتال بدون نیاز به مجوز و جهانی را تقویت میکنند. تکامل مداوم آنها شکلدهی به چشمانداز فناوری بلاکچین را برای سالهای آینده ادامه خواهد داد.



