فصل 6 - 0 آزمون از 10 آزمون گذرانده شده است
تراکنشها، باقیمانده و کارمزدها
تراکنشهای Bitcoin از یک موجودی کسر نمیکنند؛ بلکه خروجیهای قدیمی را مصرف کرده و خروجیهای جدیدی میسازند.
- ردیابی یک تراکنش از ورودیها تا خروجیها، باقیمانده و کارمزد ماینر
- محاسبهٔ کارمزد بر اساس وزن و نرخ کارمزد، و توضیح اینکه وقتی تراکنشی گیر میکند چه اتفاقی میافتد
پاسخهای کوتاه
یک تراکنش Bitcoin چگونه کار میکند؟
این تراکنش خروجیهای خرجنشده (UTXO) را به عنوان ورودی مصرف میکند و خروجیهای جدیدی میسازد که معمولاً یکی برای گیرنده و یکی برای باقیماندهٔ شماست.
کارمزد تراکنشهای Bitcoin چگونه محاسبه میشود؟
کارمزد برابر است با مجموع ارزش ورودیها منهای مجموع ارزش خروجیها، و نرخ کارمزد به ازای هر واحد وزن تراکنش بیان میشود.
اگر یک تراکنش Bitcoin گیر کند چه اتفاقی میافتد؟
در mempool منتظر میماند؛ شما میتوانید کارمزد آن را با جایگزینی با کارمزد (RBF) افزایش دهید یا از سمت گیرنده با روش پرداخت هزینهٔ والد توسط فرزند (CPFP) به آن سرعت ببخشید.
مدل UTXO
شبکهٔ Bitcoin موجودی حسابها را نگه نمیدارد، بلکه خروجیهای خرجنشدهٔ تراکنش یا همان UTXOها را نگه میدارد: سکههایی که روی آنها قفل گذاشته شده است.
- یک UTXO مقدار مشخصی است که تحت یک شرط خرج کردن قفل شده است.
- «موجودی» کیف پول (wallet) شما مجموع UTXOهایی است که میتواند خرج کند.
- گرههای کامل مجموعهٔ تمام UTXOها را نگه میدارند تا بتوانند یک تراکنش جدید را بدون بازپخش تمام بلاکها بررسی کنند.
ورودیها و خروجیها
یک تراکنش، خروجیهای قدیمی را مصرف میکند و خروجیهای جدیدی میسازد.
- ورودیها به خروجیهای قبلی اشاره میکنند و قفل آنها را، معمولاً با یک امضا و یک کلید عمومی، باز میکنند.
- خروجیها قفلهای جدیدی ایجاد میکنند که هر کدام مقدار مشخصی دارند.
- ورودیها به طور کامل خرج میشوند، نه بخشی از آنها. اگر ۱ BTC از یک سکهٔ ۵ BTC بفرستید، کیف پول یک خروجی برای بازگرداندن باقیمانده به شما اضافه میکند.
- هر مقدار از ورودیها که به خروجیها اختصاص نیابد، به کارمزد ماینر تبدیل میشود.
محتویات یک تراکنش
در اینجا پرداخت مربوط به مثال حلشدهٔ زیر را میبینید که فیلد به فیلد رمزگشایی شده است. رنگ آبی مقدار خرجشده، رنگ سبز سهم گیرنده، رنگ بنفش باقیماندهٔ شما و رنگ قرمز کارمزد است.
نسخه (version)2مشخص میکند تراکنش از کدام مجموعه قوانین استفاده میکند.ورودیها (۱): سکههایی که خرج میشوند
خروجی قبلی (prevout)7f3a…c91e : 0به یک خروجی قبلی به ارزش 0.50000000 BTC اشاره میکند.شاهد (witness)امضا + کلید عمومیثابت میکند که صاحب کلید این خرج کردن را تأیید کرده است.توالی (sequence)0xfffffffdسیگنال اعلام رضایت BIP125. نرمافزار Bitcoin Core از نسخهٔ ۲۸ به طور پیشفرض جایگزینی را بدون آن میپذیرد و نسخهٔ ۲۹ امکان انصراف (RBF) را حذف کرد.خروجیها (۲): سکههای جدید ایجادشده
خروجی 00.10000000 BTCقفلشده به آدرس گیرنده (bc1q…).خروجی 10.39998880 BTCباقیماندهٔ پول، قفلشده به یک آدرس جدید متعلق به خود شما.زمان قفل (locktime)0معتبر در هر بلاک؛ بدون تأخیر زمانی.در هیچجا نوشته نمیشود
کارمزد1,120 satsورودیها منهای خروجیها. ماینر مابهالتفاوت را برمیدارد.txidhash تراکنشنام آن در شبکه: دو بار SHA-256 از دادههای بالا، بدون بخش شاهد.اسکریپتها همان قفلها هستند
هر خروجی دارای یک اسکریپت است که مشخص میکند چه کسی میتواند آن را خرج کند. «ارسال به یک آدرس» عبارتی کوتاه برای ساختن یک خروجی با یک قفل خاص است؛ دفتر کل اسکریپت را اجرا میکند، نه یک نام یا یک حساب را.
- P2WPKH: یک امضا از کلیدی که با hash کلید عمومی تعهدشده مطابقت دارد.
- multisig: امضای M از N، مانند هر ۲ از ۳ کلید یا ۳ از ۵ کلید.
- Taproot: یک مسیر کلید، به همراه یک درخت اختیاری از مسیرهای اسکریپت.
- ورودیِ خرجکننده، دادههای شاهد را که شرایط اسکریپت را برآورده میکند، فراهم میسازد.
کارمزدها یک نرخ هستند، نه یک مبلغ ثابت
ماینرها به ازای فضای بلاک دستمزد میگیرند، نه به ازای مقدار Bitcoin جابهجاشده.
- اندازه بر حسب بایت مجازی (vB) اندازهگیری میشود. ورودیها، خروجیها و دادههای شاهد همگی به اندازه میافزایند.
- نرخ کارمزد بر حسب satoshi بر بایت مجازی (sat/vB) اعلام میشود.
- کارمزد = اندازه × نرخ کارمزد. یک تراکنش ساده SegWit با ۱ ورودی و ۲ خروجی حدود ۱۴۰ vB است؛ با نرخ ۱۰ sat/vB، کارمزد آن ۱٬۴۰۰ sats میشود.
- ورودیهای بیشتر به معنای تراکنش بزرگتر و کارمزد بالاتر در همان نرخ است.
mempool و هدفگذاری تأیید
تراکنشهای معتبرِ تأییدنشده در mempool هر گره منتظر میمانند: این فضا یک اتاق انتظار است، نه یک صفِ واحد و مشترک.
- ماینرها بلاک پیشنهادی را ابتدا با بالاترین نرخهای کارمزد پر میکنند.
- وقتی بلاکها پر هستند، یک تراکنش با کارمزد کم ممکن است زمان زیادی منتظر بماند.
- تراکنش گیر کرده است؟ آن را با نسخهای با کارمزد بالاتر جایگزین کنید (جایگزینی با کارمزد یا RBF؛ قابلیت full-RBF از نسخه ۲۸ پیشفرضِ Bitcoin Core است)، یا یکی از خروجیهای آن را در تراکنش فرزندی خرج کنید که کارمزد اضافی میپردازد (CPFP).
یک ورودیِ mempool شامل چه چیزهایی است
هر گره رکورد مخصوص به خود را از تمام تراکنشهای در انتظار نگه میدارد. اینها فیلدهایی هستند که Bitcoin Core برای یک ورودی گزارش میدهد و جایگاه آن را در صف مشخص میکنند.
txid / wtxid7c2e…04abشناسهها بدون دادههای شاهد و همراه با آن.اندازهٔ مجازی (vsize)140 vBوزن 560 WU؛ فضای بلاکی که نیاز دارد.کارمزد1,120 satsورودیها منهای خروجیها.نرخ کارمزد8 sat/vBکارمزد ÷ vsize. ماینرها بر این اساس مرتبسازی میکنند.زماناولین مشاهدهزمانی که این گره آن را دریافت کرده است.اجداد / فرزندان0 / 0تراکنشهای والد یا فرزندِ تأییدنشدهای که به آنها وابسته است (بستههای CPFP).bip125-replaceableبلهدارای سیگنال اعلام رضایت است. در حالت full-RBF نیازی به سیگنال نیست، اما تراکنش جایگزین همچنان باید کارمزد بیشتری بپردازد و قوانین جایگزینی گره را رعایت کند.جایی که منتظر میماند: مرتبشده بر اساس نرخ کارمزد
- 45 sat/vBبرداشت از صرافی
- 22 sat/vBپرداخت
- 12 sat/vBپرداخت
- بلاک بعدی در اینجا پر میشود (≈ 10 sat/vB)
- 8 sat/vBتراکنش شما
- 3 sat/vBتجمیع
با نرخ 8 sat/vB، تراکنش شما منتظر بلاکهای بعدی میماند، مگر اینکه کارمزدها کاهش یابد یا کارمزد آن را با RBF یا CPFP افزایش دهید.
تخمین کارمزد در عمل
هر کیف پول (wallet) نرخ کارمزد را بر اساس بلاکهای اخیر و mempool فعلی تخمین میزند.
- هدفِ «سریع» از نرخ بالاتری نسبت به هدفِ «اقتصادی» استفاده میکند.
- پرداخت بیشتر انعام نیست؛ بلکه پیشنهادی رقابتی برای فضای کمیاب بلاک است.
- وقتی mempool خلوت میشود، همان تراکنش میتوانست با کارمزد کمتری تأیید شود. وقتی بلاکها پر هستند، یک پیشنهاد پایین ممکن است ساعتها در انتظار بماند.
- کیف پولهای خوب این مصالحه را بر حسب زمان نشان میدهند، نه فقط بر حسب satoshi.
یک مثال حلشده
شما یک UTXO به مقدار ۰٫۵ BTC دارید و ۰٫۱ BTC ارسال میکنید. کیف پول شما نرخ ۸ sat/vB را انتخاب میکند و اندازه را ۱۴۰ vB تخمین میزند.
۱. قیمتگذاری فضا 140 vB × 8 sat/vB = 1,120 sats
۲. تقسیم کردن ورودی
۳. بررسی تراز بودن 0.50000000 BTC − 0.10000000 BTC − 0.39998880 BTC = 0.00001120 BTC
به استثنای تراکنش کوینبیس (coinbase) ماینر که سکههای جدید ایجاد میکند، مجموع خروجیها هرگز نمیتواند بیشتر از ورودیها باشد؛ تراکنشی که ارزش جدید خلق کند نامعتبر است.
حریم خصوصی و حالتهای خطا
خروجیهای باقیمانده (change) و استفادهٔ مجدد از آدرسها باعث میشوند بتوان تراکنشها را به هم مرتبط کرد. کنترل سکه به شما امکان میدهد انتخاب کنید کدام UTXOها خرج شوند؛ این کار برای حفظ حریم خصوصی و وارد نکردن یک سکهٔ بزرگ به یک پرداخت کوچک اهمیت دارد. مشکلات رایجی که ممکن است برای یک پرداخت پیش بیاید:
- هرگز به سایر گرهها مخابره نمیشود.
- پایینتر از کف کارمزد فعلی قرار میگیرد.
- با نسخهای که کارمزد بالاتری دارد جایگزین میشود.
- هنگام پر شدن mempoolها حذف میشود، یا Bitcoin Core پس از حدود دو هفته آن را از mempool خود کنار میگذارد. این تراکنش لغو نشده است: میتوان آن را دوباره مخابره کرد و همچنان ممکن است تأیید شود.
- «تأییدنشده» یک تعهد قطعی نیست. تأییدهای بیشتر معمولاً ریسک بازگشت تراکنش را کاهش میدهند، اما هیچ عدد ثابتی قطعیت نهایی را تضمین نمیکند؛ گیرنده متناسب با مبلغ موردنظر، آستانهٔ مناسب را انتخاب میکند.
نکات کلیدی که باید به خاطر بسپارید
یک تراکنش UTXOها را مصرف میکند و خروجیهای جدیدی میسازد. کارمزد برابر است با ارزش ورودی منهای ارزش خروجی و بر اساس وزن و نرخ کارمزد محاسبه میشود. سیاست mempool، سازوکارهای RBF و CPFP و مدیریت خروجی برگشت مشخص میکنند که آیا تراکنش بهسرعت تأیید میشود و چه اطلاعاتی را آشکار میسازد.
یادآوری کنید، سپس به کار ببرید
مقدار باقیمانده را برای یک ورودی ۲۰۰٬۰۰۰ sats، یک پرداخت ۵۰٬۰۰۰ sats و یک تراکنش ۱۵۰ vB با نرخ ۶ sat/vB محاسبه کنید.
توضیح خود را بررسی کنید
کارمزد = ۱۵۰ × ۶ = ۹۰۰ sats. باقیمانده = ۲۰۰٬۰۰۰ − ۵۰٬۰۰۰ − ۹۰۰ = ۱۴۹٬۱۰۰ sats. مجموع خروجیهای گیرنده و باقیمانده برابر با ۱۹۹٬۱۰۰ sats است.
ارزیابی
اصطلاحات کلیدی
منابع
بازبینیشده در ۲۵ اکتبر ۲۰۲۶ · توصیهٔ مالی نیست