وانفینکس

خروجی خرج‌نشده تراکنش (Unspent Transaction Output)

13 آبان 1405

319

زمان تقریبی مطالعه: 3 دقیقه

خروجی خرج‌نشده تراکنش، یا UTXO، مقدار مشخصی بیت‌کوین در خروجی یک تراکنش است که هنوز خرج نشده و می‌تواند ورودی تراکنشی دیگر باشد. موجودی‌ای که کیف پول نشان می‌دهد، ممکن است از چند خروجی خرج‌نشده تشکیل شده باشد. این مفهوم کمک می‌کند بفهمیم بیت‌کوین هنگام پرداخت چگونه از تراکنش‌های قبلی به تراکنش‌های تازه منتقل می‌شود.

هر خروجی مقدار و شرایطی برای خرج‌شدن دارد. تا زمانی که تراکنش معتبری آن را به‌عنوان ورودی مصرف نکند، خرج‌نشده باقی می‌ماند. بنابراین UTXO نام یک ارز جداگانه یا نوعی حساب نیست؛ بخشی از شیوه ثبت و بررسی تراکنش‌ها در بیت‌کوین است.

advertise blog post start

UTXO چگونه کار می‌کند؟

وقتی تراکنشی ساخته می‌شود، ورودی‌های آن به خروجی‌های تراکنش‌های پیشین اشاره می‌کنند. هر ورودی باید نشان دهد که شرایط خرج‌کردن خروجی موردنظر برآورده شده است. تراکنش تازه نیز یک یا چند خروجی ایجاد می‌کند که در صورت خرج‌نشدن، UTXO خواهند بود. این زنجیره از ورودی‌ها و خروجی‌ها در بلاک چین ثبت می‌شود.

برای مشخص‌کردن یک خروجی، تنها دانستن تراکنش سازنده آن کافی نیست؛ یک تراکنش می‌تواند چند خروجی داشته باشد. به همین دلیل، ورودی به شناسه تراکنش پیشین و شماره همان خروجی اشاره می‌کند. شناسه تراکنش را گاهی هش تراکنش می‌نامند. این دو داده با هم روشن می‌کنند کدام خروجی قرار است خرج شود.

هر خروجی در زنجیره فقط یک بار می‌تواند خرج شود. اگر خروجی قبلاً مصرف شده باشد، نمی‌توان همان خروجی را دوباره در پرداختی معتبر به کار برد. هنگام بررسی تراکنش، شبکه همچنین شرایط تعیین‌شده برای خرج‌کردن خروجی را ارزیابی می‌کند. نتیجه این بررسی‌ها تعیین می‌کند ورودی‌های تراکنش قابل پذیرش هستند یا نه.

یک مثال ساده

فرض کنید کیف پول سارا یک UTXO به ارزش ۰٫۵ بیت‌کوین دارد و او می‌خواهد ۰٫۳ بیت‌کوین برای رضا بفرستد. کیف پول می‌تواند آن خروجی ۰٫۵ بیت‌کوینی را ورودی تراکنش قرار دهد. تراکنش سپس خروجی‌ای برای پرداخت به رضا و خروجی دیگری برای بازگرداندن باقی‌مانده به سارا می‌سازد. خروجی دوم «باقی‌مانده» نام دارد.

اگر کارمزد فرضی این تراکنش ۰٫۰۰۱ بیت‌کوین باشد، خروجی رضا ۰٫۳ و خروجی باقی‌مانده سارا ۰٫۱۹۹ بیت‌کوین خواهد بود. جمع این دو خروجی، به‌علاوه کارمزد، برابر با ورودی ۰٫۵ بیت‌کوینی است. خروجی اولیه سارا پس از خرج‌شدن دیگر UTXO نیست؛ دو خروجی تازه، تا پیش از خرج‌شدن، UTXO هستند.

ممکن است سارا به جای یک خروجی بزرگ، چند خروجی کوچک داشته باشد. در آن صورت کیف پول می‌تواند بیش از یک UTXO را برای تأمین مبلغ پرداخت انتخاب کند. گیرنده همچنان مبلغ تعیین‌شده در خروجی مربوط به خود را دریافت می‌کند و اگر مقداری اضافه بماند، تراکنش می‌تواند آن را در خروجی باقی‌مانده به فرستنده برگرداند.

این مفهوم چه کاربردی دارد؟

UTXO برای فهم موجودی کیف پول مفید است. عددی که کاربر روی صفحه می‌بیند، لزوماً یک واحد یکپارچه نیست؛ کیف پول ممکن است آن را از چند خروجی قابل خرج جمع کرده باشد. هنگام ساخت پرداخت، نرم‌افزار باید خروجی‌های مناسب را انتخاب کند و برای مبلغ ارسالی، کارمزد و باقی‌مانده جا بگذارد.

این مدل به بررسی دوباره‌خرج‌نشدن بیت‌کوین هم کمک می‌کند. بررسی‌کنندگان تراکنش می‌توانند ببینند ورودی به خروجی‌ای اشاره می‌کند که هنوز مصرف نشده است یا خیر. همین ارتباط میان خروجی قبلی و ورودی جدید، بخشی از منطق اعتبارسنجی پرداخت در شبکه همتا به همتا بیت‌کوین است.

شناخت UTXO هنگام خواندن جزئیات یک تراکنش نیز کاربرد دارد. ممکن است کاربر در یک تراکنش، چند ورودی و چند خروجی ببیند و تصور کند همه خروجی‌ها به گیرندگان متفاوت تعلق دارند. در حالی که یکی از خروجی‌ها می‌تواند باقی‌مانده‌ای باشد که دوباره به کنترل فرستنده برمی‌گردد. برای تشخیص آن باید جزئیات همان تراکنش را بررسی کرد.

محدودیت‌ها و نکته‌های مهم

خرج‌نشدن یک خروجی به‌تنهایی به معنی قابل خرج بودن آن برای هر شخصی نیست. برای مصرف خروجی باید شرایطی که هنگام ایجاد آن تعیین شده، برآورده شود. کیف پولی که کلید یا داده لازم برای این کار را در اختیار ندارد، نمی‌تواند صرفاً با دیدن خروجی روی زنجیره آن را خرج کند.

انتخاب تعداد بیشتری ورودی می‌تواند اندازه تراکنش را افزایش دهد و بر کارمزد لازم اثر بگذارد. مبلغ کارمزد برای همه تراکنش‌ها یکسان نیست؛ به ویژگی‌های تراکنش و شرایط پذیرش آن در شبکه بستگی دارد. مثال عددی بالا فقط سازوکار ورودی، خروجی و باقی‌مانده را نشان می‌دهد و کارمزد واقعی یک پرداخت را پیش‌بینی نمی‌کند.

تراکنش‌های بیت‌کوین در دفتر عمومی ثبت می‌شوند. کنار هم قرار گرفتن چند ورودی یا استفاده مکرر از یک نشانی می‌تواند سرنخ‌هایی درباره ارتباط پرداخت‌ها بدهد. از سوی دیگر، تشخیص مالک هر خروجی فقط از روی ظاهر یک تراکنش همیشه ممکن نیست. برای فهم درست موجودی یا مسیر یک پرداخت باید خروجی‌ها، شرایط خرج‌شدن و وضعیت تراکنش‌های مربوط را با هم دید.

آیا مطالعه این مقاله برای شما مفید بود؟!

advertise blog post end