چگونه تراکنشهای معلق اتریوم را ویرایش یا لغو کنیم
اتریوم یک پلتفرم نرمافزاری منبع باز مبتنی بر بلاکچین است که هزاران برنامهی کاربردی غیرمتمرکز (DApps) روی آن ایجاد شده است. رمز ارز داخلی این شبکه اتر (ETH) نام دارد که میتوان آن را بدون دخالت افراد شخصثالث ارسال و دریافت کرد.
اتریوم اولینبار توسط یک برنامهنویس روسی-کانادایی بهنام ویتالیک بوترین طراحی شد. این پلتفرم بهعنوان بستری برای برنامههای کاربردی غیرمتمرکز دائمی و تغییرناپذیرِ خودکار توسعه داده شده است که میتوان از آن در امور مالی، بازی و هنر بهره گرفت.
به گزارش کوین تلگراف، اپلیکیشن غیرمتمرکز، اغلب به قرارداد هوشمندی اطلاق میشود که بر پایهی پروتکلهای تراکنشهای اتریوم بوده و بهطور خودکار عملکردها و اقدامات خاصی مثل پردازش معاملات با شرایط و توافقهای از پیشتعیینشده را انجام میدهد. ارسال یک تراکنش، لغو یا حلوفصل معاملات اتریومیِ درحال انجام، از جمله اقدامات مربوط به عملکرد قراردادهای هوشمند است.
تراکنش اتریوم چیست؟
تراکنشها، دستورالعملهای امضاشده و رمزنگاریشدهی حسابها هستند. شبکه اتریوم از دو نوع اصلی تراکنش پشتیبانی میکند: تراکنشهای استقرار قرارداد که نوعی تراکنش بدون گیرنده است و تراکنشهای معمولی که برای انتقال اتر از یک کیف پول به کیف پول دیگر مورد استفاده قرار میگیرد.
یک تراکنش عادی و ارسال شدهی اتریوم شامل شناسهی فرستنده یا امضائی است که وقتی کلید خصوصی فرستندهی تراکنش امضاء شود، این مورد تأیید خواهد شد که فرستنده، ارسال مقدار خاصی از اتریوم را مجاز کرده است. آدرس دریافتکننده، مقدار اتر انتقال دادهشده از فرستنده و اطلاعات مربوط به کارمزد تراکنش در شبکهی اتریوم و یک فیلد اختیاری برای قراردادن دادههای دلخواه ارائه میدهد. یک تراکنش عادی در شبکهی اتریوم، شامل همهی این موارد میشود.
تأیید تراکنشهای اتریوم منوط به استخراج است که هزینهی آن توسط شخص ارسال کننده پرداخت خواهد شد.
استخراجکنندههای اتریوم، تراکنشهای قانونی را تأیید میکنند و در ازای انجام این کار، پاداش دریافت خواهند کرد. هنگامی که یک ماینر یک مسئلهی رمزنگاری (ریاضی) را حل میکند، یک تراکنش در شبکهی این ارز دیجیتال تأیید خواهد شد. اتریوم مثل بیت کوین از مکانیزم اثبات انجام کار (PoW) بهمنظور جلوگیری از حملات سایبری یک فرد یا گروه بهره میبرد.
تعهد کاربران به پرداخت کارمزد تراکنش هنگام استفاده از بلاکچین، شبکهی اتریوم را در برابر وظایف محاسباتی مخرب مثل ارسال هرزنامه توسط کاربران به زنجیرهی بلوکی با بار بیش از حد تراکنشهای بیهدف، محافظت میکند.
چرخهی عمر تراکنشها در اتریوم
یک معاملهی اتریوم، مراحلی را طی میکند که این مراحل از حالت ناشناخته شروع شده و تا زمانیکه تراکنش در یک بلاک تأیید شود، ادامه خواهد یافت.
ناشناخته (Unknown): حالت ناشناخته به معاملهای اشاره دارد که شبکه هنوز آن را ندیده یا پردازش نکرده است.
در انتظار (Pending): هنگامی که یک معامله در حالت تعلیق است، در انتظار استخراجکنندهها باقی خواهد ماند تا آن را مشاهده و پردازش کنند؛ به این مرحله، معاملهی تلفیقی (pooled transaction) یا میمپول (mempool) گفته میشود. از آنجا که ماینرها قیمت گَس بیشتر (Gas Price) را در اولویت قرار میدهند، امکان دارد معاملاتی که ارزش گس آنها پایینتر است، برای مدت طولانیتری در حالت تعلیق باقی بمانند. حتی این احتمال وجود دارد که معاملاتی که هزینهی گس آنها پایین است، هیچوقت انجام نشوند و برای همیشه در حالت تعلیق باقی بمانند.
در بلوک (In block): پس از اینکه یک استخراجکننده، تراکنشی را با موفقیت انتخاب و آن را در یک بلوک استخراج میکند، معاملهی یادشده در بلوک پیشرفت خواهد کرد. معاملات درونبلوکی را معاملات استخراجشده نامیدهاند.
اگر بلوک، فورکشده باشد، ممکن است تراکنش در آن بلوک به حالت معلق بازگردد. وقتی معاملهی استخراجشده (یعنی تراکنشی که در حالت بلوک قرار دارد) توسط شبکه معکوس میشود، بهعنوان یک تراکنش فورک شناخته خواهد شد.
جایگزین (Replaced): درصورت بروز هر یک از حالتها زیر، میتوان یک تراکنش را از حالت معلق به حالت جایگزین منتقل کرد.
- یک تراکنش جدید با همان nonoce از همان فرستنده، وارد حالت بلوک شود.
- معاملهی دیگری از طرف همان فرستنده، با قیمت یکسان و ۱۲ درصد هزینهی گس بیشتر، وارد مرحلهی تعلیق شود.
تأیید تراکنش اتریوم
تأیید تراکنش اتریوم شامل تعداد بلوکهایی ایجاد شده از زمان ورود تراکنش به اولین بلوک است که تراکنش مورد نظر را در خود جای دادهاند.
برای تأیید نهایی یک تراکنش اتریومی، آن معامله باید تعداد مشخصی تأییدیه دریافت کند و هرچه هزینهی گس بیشتر باشد، اطمینان بیشتری برای پردازش و تشخیص آن تراکنش در شبکهی اتریوم وجود دارد.
میتوان با سازماندهی مجدد بلوکهای اخیر، این تصور را بهوجود آورد که پردازش معامله شکست خورده است. با این وجود، ممکن است معاملهی مورد نظر در یک بلوک دیگر نیز گنجانده شود و همچنان معتبر باقی بماند. احتمال سازماندهی مجدد، با استخراج بلوکهای بعدی کاهش پیدا میکند؛ این یعنی هرچه تعداد تأییدیهها بیشتر باشد، معامله تغییرناپذیرتر خواهد شد.
هزینهی تراکنش اتریوم
هزینهی انجام تراکنش، باعث میشود تا استخراجکنندگان نسبت به تأیید آن ترغیب شوند. در واقع هزینهها برای ارسال یک تراکنش خاص در بلاکچین اتریوم کاربرد دارند.
هزینهی انجام تراکنش در بلاکچین اتریوم، هزینهی گس (Gas Fee) نامیده میشود. مکانیزم قیمتگذاری مورد استفاده در شبکهی اتریوم، به مقدار محاسبهی مورد نیاز برای پردازش معامله توسط یک ماینر اشاره دارد. وظیفهی محاسبات مربوط به یک معامله، برحسب هزینهی گس، اندازهگیری میشود.
از طرف دیگر، قیمت واحدهای گس در اتریوم متفاوت است. اگرچه مقدار هزینهی گس، بر اساس میزان پیچیدگی معامله تعیین میشود، اما کاربران میتوانند قیمت و محدودیت هزینهی گس مورد نظر خود را در معامله تعیین کنند.
نانس (nonce) چیست؟
nonce مخفف عبارت «تعداد فقط یکبار استفاده شده» است که به تعداد کل تراکنشهای تأیید شدهی ارسال شده، از آدرس اتریوم اشاره دارد.
کیف پول اتریوم امکان ارسال چندین تراکنش از یک حساب را بدون تأخیر زیاد فراهم میکند؛ مکانیزم nonce تعیین میکند که کدام تراکنشها باید زودتر پردازش شوند. کیف پولهای اتریمی معمولا مدیریت nonce را بهطور خودکار برای کاربران انجام میدهند.
روش لغو معاملهی اتریوم
دو روش اصلی برای لغو معاملههای معلق در اتریوم وجود دارد: لغو درونبرنامهای و تنظیم یک nonce سفارشی.
معاملات اتریوم معمولا ساعتها در حالت معلق باقی میمانند. مدت معلق ماندن تراکنش بهخصوص زمانی که کاربر هزینهی گس پایینی را تعیین کرده باشد، بیشتر خواهد شد و بههمین دلیل آگاهی از روش تغییر تراکنشها در این بلاکچین برای کاربران ضروری است.
بهیاد داشته باشید که لغو تراکنش در شبکهی اتریوم فقط در شرایطی امکانپذیر است که آن تراکنش هنوز در مرحلهی معلق قرار داشته باشد. اولین قدم برای انجام این کار، این است که با استفاده از کاوشگر بلوک (Block Explorer)، بررسی کنید آیا تراکنش هنوز درحال معلق قرار دارد یا خیر. بدین منظور باید شناسهی تراکنش (Transaction ID) یا هش معامله را در کاوشگر بلوک وارد کنید تا وضعیت آن به شما نشان داده شود. در صورتی که کاوشگر وضعیت تراکنش را «Pending» تعیین کرده است، امکان لغو آن معامله فراهم خواهد بود.
سادهترین روش برای لغو معاملات معلق، استفاده از روش لغو درون برنامهای است. بدین منظور کاربران باید از برنامهی کیف پول اتریوم خارج شده و مرورگر خود را ببندند و سپس مجددا آن را باز کرده و وارد برنامه شوند.
اگر انجام مراحل فوق، مشکل را رفع نکرد، میتوان از روش دوم آن را انجام داد.
برای ایجاد nonce سفارشی، باید یک معاملهی اترِ صفر با قیمت گس بالا به آدرس خود کاربر ثبت شود تا از گیر کردن معاملهی قبلی جلوگیری بهعمل آید. کاربران باید توجه داشته باشند، قبل از ارسال تراکنش دوم، nonce برای تراکنش معلقِ اول مورد استفاده قرار گرفته است و سپس از همان nonce برای معامله دوم نیز استفاده شود.
اگر کاربران چندین تراکنش معلق اتریوم داشته باشند، این فرایند را ترجیحا با قدیمیترین یا کمترین مقدار nonce آغاز میکنند.
چگونه میتوان معاملات اتریوم را سرعت بخشید؟
کاربران میتوانند با افزایش گس تراکنش، سرعت تأیید آن را بیشتر کنند. این مرحله ممکن است بهماینرهای اتریوم انگیزه دهد تا تراکنشها را در اولویت قرار بدهند. البته باید به این نکته توجه داشت که مقدار گس هر تراکنش تنها یکبار قابل ویرایش خواهد بود؛ بنابراین، کاربران باید دقت زیادی در انتخاب مقدار گس داشته باشند.
اگر یک کاربر قیمت گس را بسیار پایین تعیین کند، سایر کاربران فرصتی برای پیشی گرفتن از این پیشنهاد اولیه خواهد داشت و معامله در انتظار باقی خواهد ماند. وقتی معامله گیر کند، تا زمانیکه اولین تراکنش تأیید نشده باشد، شبکه هیچ تراکنش جدیدی از آن آدرس کیف پول را تأیید نخواهد کرد.
در این شرایط، کاربران میتوانند منتظر بمانند تا شبکه، تراکنش یادشده را با قیمت تعیینشده یا با هزینهی گس بیشتر، انجام دهد. با کلیک روی دکمهی speed up در کیف پول اتریوم، میتوان تراکنشها را با سرعت بیشتر پردازش کرد.
اگر مرحلهی قبل جواب نداد، کاربران میتوانند برای تنظیم دستی قیمت گس، به برگهی Advanced مراجعه کنند.
در نهایت توصیه میشود کاربران با استفاده از هش تراکنش یا شناسهی آن، وضعیت تراکنش را در کاوشگر بلاکچین جستوجو کنند تا ببینید آیا با موفقیت تأیید شده است یا خیر. اگر تراکنش بلافاصله در کاوشگر نشان داده نشد، باید چند دقیقه منتظر بمانید و صفحه را رفرش کنید.
آیا معاملات اتریوم قابل برگشت است؟
کیف پولهای اتریومی نمیتوانند معاملاتی که قبلا در آنها انجام شده را برگشت بزنند.
هنگامی که کاربران اتریوم بهطور تصادفی وجوهی را به آدرس اشتباه ارسال میکنند یا مقدار اتر ارسالی آنها اشتباه وارد شده باشد، در شرایطی که تراکنش هنوز درحالت معلق قرار داشته باشد، امکان لغو کردن آن وجود خواهد داشت. هنگامی که معامله تأیید و بهعنوان «موفق» نشان داده شد، این یعنی معامله به بلوک بعدی اضافه شده است و قابل برگشت نیست. بنابراین دادههای واردشده به بلوکها برگشتناپذیر محسوب میشوند. با آگاهی از این امر، اطمینان از صحت جزئیات معامله قبل از کلیک روی دکمهی ارسال، بسیار ضروری است.
گفتنی است بسیاری از استارتاپهای بلاکچین، مکانیزمهایی را توسعه دادهاند که امکان معکوس کردن معاملات اتریوم را در دسترس کاربران قرار میدهد.
این مقاله حاوی توصیه یا پیشنهاد اقتصادی از سوی زومیت نیست. خطر ازدستدادن سرمایه در هر سرمایهگذاری وجود دارد و سرمایهگذار باید پس از مطالعه و تحقیق، خود تصمیم نهایی را اتخاذ کند و مسئولیت تبعات آن را برعهده بگیرد.