چگونه تراکنش های تایید نشده خود را با RBF کانفرم کنیم؟

امروزه ترافیک بالای شبکه بیت کوین ، ممکن است برای معامله گران دردسر هایی را ایجاد کند . از جمله می توان به تایید نشدن تراکنش ها و منتظر ماندن برای ساعات طولانی جهت کانفرم شدن معاملات اشاره کرد.از دیگر دلایلی که می توان در تایید نشدن یک تراکنش برشمرد، کارمزد پایین معاملات است .اما سوال اینجاست که افرادی که معاملات خود را درشبکه ثبت کرده اند اما کارمزد کافی را برای تایید تراکنش خود انتخاب نکرده اند باید چه کنند؟جواب ساده است : جایگزینی کارمزد (Replace-By-Fee)در این مقاله می خواهیم علاوه برتوضیح مفهوم RBF ، به شما آموزش دهیم که چگونه می توانید با استفاده از آن با خیال راحت دست به معامله در شبکه بیت کوین زده و دیگر ساعت ها برای کانفرم شدن تراکنش های خود منتظر نمانید.جایگزینی کارمزد یا RBF چیست و چگونه کار می کند؟در حقیقت یک ویژگی است که به شما کمک می کند تا با افزایش کارمزد معامله ، تراکنش شما سریع تایید شده و به اصطلاح “گیر” نکند.همانطور که در بالا نیز اشاره شد اگر شما در مقام فرستنده در یک معامله کارمزد کافی یا حتی بالایی را پرداحت نکنید در نهایت به دلیل فضای محدود بلوک در بلاکچین,ماینر ها تصمیم می گیرند که تراکنش های با کارمزد بالا تر را تایید نمونده و در نتیجه معامله شما گیر می کند.در ابتدای کار باید این نکته را دانست که انواع مختلفی از RBF وجود دارد ، اما به طور کلی اساس همه آن ها تغییر کارمزد معامله ی فعلی با کارمزد بالاتر است.فرض کنید که کارمزد معامله ی خود را بر روی 1 ساتوشی / بایت تنظیم کرده اید که کمترین کارمزد قابل انتخاب برای یک معامله است، سپس این تراکنش را در بلاکچین منتشر می کنید و تنها چیزی که نصیب‌تان می شود صبر است و صبر؛ زیرا شما در همین ابتدا در شبکه گیر افتاده اید و گیرنده نیز هیچ سیگنالی از معامله دریافت نمی کند.اما شما زمان ندارید و می خواهید سریع معامله را ببندید؛ در این زمان کاری که باید انجام دهید این است که یک معامله جدید باز کنید، این معامله جدید مشابه معامله قدیمی است،با این تفاوت که کارمزد بالاتری پرداخت می کنید.بنابراین ماینر ها وسوسه می شوند و برای دریافت کارمزد بالاتر مجبور به تایید تراکنش اصلی می شوند.در واقع ، یک معامله جدید با همان ورودی ها و خروجی ها ایجاد می شود. تنها تفاوت این است که فرستنده قادر است کارمزد بالاتری را به عنوان مشوقی برای ماینرها در نظر بگیرد تا سریعتر چنین معامله ای را در یک بلوک لحاظ کنند.کیف پول هایی که از RBF پشتیبانی می کنند کدامند؟تا به امروز کیف پول های نظیر Bitcoin Core ، الکتروم ، Blockstream Green و کیف پول Samourai از این قابلیت بهره می برنددر ادامه برای هدف آموزش ، از کیف پول Electrum نسخه 2.8.2 استفاده خواهیم کرد. این روند در کیف پول های دیگری نیز که از ویژگی RBF پشتیبانی می کنند بسیار شبیه است.چگونه از قابلیت RBF در کیف پول الکتروم استفاده کنیم؟قبل از انجام هرگونه معامله با کارمزد کم ، مطمئن شوید گزینه Replace-By-Fee روشن است.سپس به مسیر Tools -> Electrum preferences رفته و گزینهPropose Replace-By-Fee را مانند عکس زیر به Always (همیشه) یا If the fee is low (اگر کارمزد کم باشد) تغییر دهید.برای مثال و اینکه مطمئن شویم که معامله ما به این زودی تایید نمی شود مقدار 0.0001 BTC را به عنوان کارمزد تعیین می کنیم.حال گزینه Replaceable را انتخاب کرده و تراکنش را ارسال کنید.طبیعتاً این معامله در Mempool و در لیست تایید نشده ها قرار می گیرد. و در این حالت ممکن است چندین روز طول بکشد تا همچین معامله ای تایید شود.همانطور که در تصویر زیر مشاهده می کنید معاملاتی که ازقابلیت RBF بهره بردند و هنوز تایید نشده اند با مثلث زرد از باقی معاملات جدا شده.صبرکنید تا معامله در مدت زمان قابل قبول البته برای شما تایید شود.اگر اگر چنین نشد ، روی معامله “تایید نشده” راست کلیک کرده و افزایش کارمزد را انتخاب کنید، سپس پنجره ای مانند عکس زیر حهت افزایش کارمزد باز می شود.برای دریافت برآورد تأیید جدید ، نوار لغزنده را به عقب و جلو ببرید.همچنین می توانید کارمزد مورد نیاز را خودتان با استفاده از داده های سایت 21.co محاسبه کنید.در این معامله ، پرداخت 201 تا 220 ساتوشی به ازای هر بایت به عنوان کارمزد باید کافی باشد تا معامله در 25 بلوک بعدی یا تقریباً در 4 ساعت تأیید شود.برای محاسبه کل کارمزد مورد نیاز بر روی OK کلیک کنید تا جزئیات معامله ظاهر شود ( دقت شود که هنوز دکمه ثبت (Sign) را نزنید).همانطور که مشاهده می کنید اندازه معامله 226 بایت است. اگر این مقدار را در نرخ کارمزد ضرب کنیم کل کارمزدی که باید پرداخت شود معلوم می گردد.که در این معامله: 226 B x 220 satoshi = 49 720 satoshi کارمزد معامله می شود.حال پنجره را بسته و به صفحه RBF باز گردید.در قمسمت New fee field ( کارمزد جدید) کارمزد جدیدی که به معامله اعمال می کنید(همان عدد BTC 0.0004972 در بالا ) تایپ کرده و گزینه OK را فشار دهید.در نهایت برای ارسال تراکنش جدید بر روی Sign و سپس Broadcast کلیک کنید.بنابراین معامله قبلی با معامله جدید جایگزین خواهد شد که به زودی توسط ماینر ها تایید می شود.آیا RBF می تواند از دوبار خرج کردن یا Double Spending جلوگیری کند؟بسیاری در ابتدا گمان می کردند که RBF باعث دوبار خرج کردن می شود و دلیل آن ها این بود که ، اگر می توان معامله ای را جایگزین کرد ، پس امکان این که گیرنده را نیز تغییر داد وجود دارد.اما بیایید نگاهی کوتاه به مفهوم Double Spending یا دوبار خرج کردن بیاندازیم :دوبار خرج کردن به این معنی است که شخصی یک بیت کوین را دو بار خرج کند. آنها با ارسال بیت کوین به بسیاری از افراد به واسطه UTXO (خروجی معاملات مصرف نشده) به این هدف دست می یابند.اما به چند دلیل می توان اثبات کرد که وجود RBF نمی تواند باعث دوبار خرج کردن شود:اول اینکه ، تمام هدف RBF کمک کردن به معاملات گیر کرده در بلوک و تایید اینگونه تراکنش ها می باشد ؛ بنابراین اگر بخواهید پذیرنده معامله را تغییر دهید ، دریافت کننده اصلی سریعاً به این موضوع پی می برد و پس از تایید معامله نیز دریافت کننده اصلی به آسانی متوجه می شود که بیت کوینی برای او فرستاده نشده.این استدلال که RBF دوبار خرج کردن را ممکن می سازد فرض می کند که گیرنده بیت کوین سیگنالی مبنی در دریافت بیت کوین دریافت نمی کند. اما اگر این چنین نیز باشد شما اصلاً در ابتدا نیازی به جایگزینی کارمزد نخواهید داشت.بعلاوه،در انواع مختلف نسخه های RBF فرستنده مستلزم این هست که در تراکنش همان خروجی های معامله اصلی را پرداخت کند.و در آخر اینکه ، برای دوبار خرج کردن شما نیازی به RBF ندارید،شما فقط می توانید چندین معامله را با استفاده از ورودی های مشابه ایجاد کنید.بسیاری از کیف های پول دوبار خرج کردن را به نوعی دیگر ارائه می کنند مثلاً در کیف پول الکتروم گزینه “paytomany” را داریم و یا در Bitcoin Core گزینه “abandontransaction” را مشاهده می کنیم.آیا می توان از روش های دیگر غیر از RBF استفاده کرد؟اگر تمایلی به استفاده از روش جایگزینی کارمزد ندارید یا تکنیک های دیگری می پسندید،چند گزینه برای انتخاب دارید.یکی از این روش ها Accelerator Services یا خدمات شتاب دهنده می باشد.در واقع بسیاری از استخر های ماینیگ استفاده از این خدمات را به شما پیشنهاد می دهند ؛ شما در این روش مستقیماً به این استخر ها کارمزد اضافی پرداخت می کنید و آن ها نیز معاملات شما را در بلوک بعدی تایید می کنند.به طور مثال ViaBTC یکی از معروف ترین استخرهای استخراج است که خدمات شتاب دهنده را ارائه می دهد.فعالیت ViaBTC مبتنی بر کشور چین است. در حال حاضر ، هیچ شتاب دهنده مستقر در اروپا ، انگلیس ، کانادا یا ایالات متحده وجود ندارد اما این احتمال وجود دارد که به زودی شاهد این خدمات در کشور های ذکر شده باشیم.اما سوال اصلی این است که آیا استفاده از شتاب دهنده ها همیشه مفید است؟ معمولاً استفاده از این نوع خدمات توصیه نمی شود زیرا شما به جای بهره گیری از پروتکل ها ی پایه ای و امن شبکه بیت کوین و بدون هزینه اضافی محبور هستید که به یک شخص ثالث اعتماد کنید.بنابر این پیشنهاد ما استفاده از RBF و CPFP است.پرداخت فرزند برای والدین یا Child Pays for Parentدر روش پرداخت فرزند برای والدین (CPFP) گیرنده معامله باید کارمزد بالاتری را پرداخت کند ؛ برای این کار او باید یک معامله جدید (فرزند) را از یکی از خروجی های تأیید نشده معامله اول (والدین) باز کند. در حقیقت او باید معامله جدید را با بیت کوینی که هنوز به دستش نرسیده باز کند. بنابراین نوید کارمزد بالاتر به ماینر ها باعث تشویق آن ها به تایید تراکنش می شود.تفاوت میان RBF و CPFP در چیست؟همانطور که اشاره شد تفاوت میان این دو به موقعیت شما به عنوان فرستنده یا گیرنده در یک معامله بستگی دارد.RBF به این معنی است که فرستنده برای تأیید سریع تر معامله کارمزد بیشتری پرداخت می کند. اگر فرستنده هستید که برای انجام سریع تر تراکنش نیاز به RBF دارید .CPFP به این معنی است که گیرنده برای تأیید سریع تر معامله کارمزد بیشتری پرداخت می کند. اگر گیرنده ای هستید که برای انجام سریع تر تراکنش نیاز به CPFP دارید .انواع مختلف RBFاز آنجا که نود ها یا گره ها از RBF های متفاوتی پشتیبانی می کنند ، بنابراین این که کدام نود از کدام نوع RBF پشتیبانی می کند کاملاً بستگی به نود ها دارد. بنابراین ممکن است برخی از گره ها RBF شما را رد کنند در حالی که برخی دیگر رد نمی کنند.Full RBF : این نسخه از RBF محدودیت کمی دارد. به سادگی با پرداخت کارمزد معامله اصلی و معامله جدید انجام می گیرد.Opt-in RBF : این نوع RBF مستلزم آن است که فرستنده تراکنش را فلگ یا علامت گذاری کند تا تایید شود. مشکل اینجاست که ارسال کننده باید زمان تایید تراکنش را قبل از انتشار در شبکه بداند. برای همین، بسیاری از کیف پول‌ها از این نوع RBF به صورت پیش فرض استفاده می‌کنند تا کار را برای افراد راحت کنند.First-Seen-Safe RBF : این همان RBF است که قبلاً در مورد آن در موضوع دو بار خرج کردن بحث شده بود. فرستنده تنها زمانی می تواند از این نوع استفاده کند که تراکنش جدید خروجی‌های یکسانی با تراکنش تایید نشده قبلی داشته باشد. این نوع RBF میزان خطا در ارسال تراکنش را کاهش می‌دهد؛ اما حمله دو بار خرج کردن را ساده‌تر می‌کند.Delayed RBF : این نوعی است که اجازه می دهد تراکنش ها بدون قید و شرط جایگزین شوند ، اما فقط پس از استخراج تعداد مشخصی از بلوک ها از زمان مشاهده معاملات جایگزین شده توسط گره.با این RBF، فرستنده به ماینرها زمان می‌دهد تا تراکنش‌هایشان را با کارمزد کمتری داخل یک بلاک قرار دهند. بنابراین می‌تواند در پول ارسال کننده تراکنش صرفه جویی کند.در پایان قصد داریم که به چند سوال متداول راجع به RBF و شبکه بیت کوین پاسخ دهیم:آیا RBF از حملات DoS جلوگیری می کند؟قبل از پیدایش RBF، تغیر معامله منتشر شده نیز امکان پذیر بود اما تنها چیزی که بعد از RBF تغییر کرد پرداخت یک هزینه اضافی برای کارمزد بود.اما سوال اینجاست که چرا پرداخت کارمزد بالاتر خوب است؟تمام شبکه ها (networks) علی الخصوص شبکه بیت کوین دارای محدودیت در پهنای باند هستند. هر موقع که معامله ای در شبکه منتشر می شود گره های موجود در شبکه باید آن را دریافت کنند. نود ها فقط می تواند همزمان داده ها را دریافت کند.قبل از RBF یک مهاجم می توانست به هر اندازه که می خواست معاملات جایگزینی بدون هیچ هزینه اضافی ایجاد کند و تنها هزینه ای که باید پرداخت می کرد بابت تایید معامله بود.پس از آن هر کسی می تواند باعث اسپم شبکه با ایجاد میلیون ها معامله جایگزین شود که در اصطلاح به آن حمله DoS (Denial of Service) می گویند.با افزودن هزینه های اضافی یا همان RBF ، حملات DoS در مقیاس بسیار بزرگ و بعید به نظر می رسد است.چه مدت یک معامله بیت کوین می تواند به صورت تایید نشده باقی بماند؟از لحاظ تئوری ، معاملات بیت کوین شما تا زمانی که معاملاتی دیگر با کارمزد های بالاتر وجود دارند می تواند برای همیشه تأیید نشده باقی بماند و معامله شما هرگز در یک بلوک قرار نمی گیرد.اما اگر به اندازه کافی صبور باشید احتمالاً در یک زمانی معامله شما نیز تایید می شود البته در حال حاضر. اما در آینده فضای اصلی بلاکچین و شبکه بیت کوین محدود تر خواهد شد و در آن زمان دیگر قادر نخواهید بود که معامله خود را با هزینه های تعیین شده در 1 بیت / بایت در نظر بگیرید.آیا کارمزد همان مالیات است که پرداخت می شود؟در حال حاضر کارمزدی که کاربران پرداخت می کنند به هیچ عنوان به معنی پرداخت مالیات نیست بلکه صرفاً هزینه هایی هستند که کاربران برای استفاده از شبکه بیت کوین به ماینر ها پرداخت می کنند.چرا هنگام استفاده از RBF باید کارمزد هر دوتراکنش را پرداخت کرد؟زیرا با انجام این کار و با پرداخت هزینه اضافی برای معامله ی جایگزین از حملات Dos به شبکه جلوگیری می کنید.معمولاً از RBF در کجا استفاده می شود؟RBF برای مبادلات بزرگ مانند Coinbase که اغلب نیاز به تسریع در معاملات بزرگ برای سرمایه گذاران خود دارند ، مفید است.چرا از آلتکوین ها به عنوان کارمزد معاملات استفاده نمی شود؟در حقیقت آلتکوین ها کارمزد کمتری دارند اما امنیتشان بسیار پایین تر از بیت کوین است.به صورت کلی بهتر است که برای تمام معاملات به طور پیش فرض گزینه RBF را روشن کنید. به این دلیل که با وجود تراکم بالای شبکه ممکن است در هر آن کارمزد شما نتواند مورد تایید واقع شود و مجبور شوید کارمزد بالاتر پرداخت کنید.به خصوص اگر که معاملات تجاری و اصلی خود را با بیت کوین انجام می دهید و زمان برای شما بسیار مهم است.