UTXO چیست؟ منطق واقعی موجودی کیف پول بیت کوین

به روزرسانی: ۵ دقیقه مطالعه
۴۰۹بازدید ۰اشتراک
دارای مجوزهای رسمی انتشار:

برای ثبت سفارش به حساب نیاز دارید. ثبت نام رایگان است.

کیف پول شما می نویسد ۰.۰۵ بیت کوین دارید. حالا یک خبر عجیب: چنین عددی هیچ جای شبکه بیت کوین ذخیره نشده است. نه در حسابی به نام شما، نه در دفتری، هیچ جا.

آن عدد را کیف پولتان همان لحظه محاسبه کرده است، از روی چیزهایی به نام UTXO. اگر بدانید UTXO چیست، سه چیز دیگر هم برایتان روشن می شود: چرا کارمزد تراکنش هایتان گاهی بی دلیل بالاست، چرا گاهی مبلغی «باقی مانده» به کیف پولتان برمی گردد، و چرا بیت کوین اصلا این طور طراحی شده است.

UTXO چیست؟

UTXO مخفف Unspent Transaction Output است، یعنی خروجی خرج نشده یک تراکنش.

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

ساده ترین تشبیه: هر UTXO یک اسکناس است. اسکناس ها مبلغ های مختلفی دارند، در جیب شما هستند، و هر کدام فقط یک بار خرج می شوند.

چرا بیت کوین اصلا حساب ندارد؟

بانک شما مدل حساب دارد: یک عدد که کم و زیاد می شود. اتریوم هم همین طور کار می کند. بیت کوین نه.

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

چرا ساتوشی این راه را انتخاب کرد؟ چون بررسی اینکه یک خروجی خرج شده یا نه، کار ساده ای است و هر گره می تواند مستقل انجامش دهد. همین سادگی است که جلوی خرج کردن یک بیت کوین برای دو نفر را می گیرد؛ همان مشکلی که خرج مضاعف و انواع حمله به آن درباره اش نوشته شده است.

چرا پول خرد به شما برمی گردد

اینجا همان جایی است که تشبیه اسکناس بیشترین کارایی را دارد.

فرض کنید یک اسکناس ۱۰ هزار تومانی دارید و می خواهید ۶ هزار تومان خرید کنید. اسکناس را نصف نمی کنید؛ کل آن را می دهید و ۴ هزار تومان باقی مانده می گیرید.

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

تفاوت مجموع ورودی ها و مجموع خروجی ها هم جایی نمی رود: همان کارمزدی است که ماینر برمی دارد. یعنی کارمزد را شما جداگانه پرداخت نمی کنید، از دل همین حساب درمی آید.

مجموعه UTXO؛ حافظه واقعی شبکه

مجموع تمام UTXO های موجود در هر لحظه را «مجموعه UTXO» می نامند و در نرم افزار بیت کوین با نام chainstate ذخیره می شود.

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

سوال های پرتکرار

تفاوت UTXO با مدل حساب چیست؟

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

کلید خصوصی در بیت کوین چیست و چه ربطی به UTXO دارد؟

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

اولین UTXO ها از کجا می آیند؟

از تراکنش coinbase، یعنی اولین تراکنش هر بلاک که پاداش ماینر را می سازد. این تنها تراکنشی است که ورودی ندارد و از هیچ، خروجی جدید تولید می کند. هر بیت کوینی که امروز در گردش است، اگر تاریخچه اش را عقب بروید، به یکی از همین تراکنش ها می رسد.

آیا UTXO فقط در بیت کوین وجود دارد؟

نه. شبکه هایی که از کد بیت کوین منشعب شده اند، مثل لایت کوین و دوج کوین، همین مدل را دارند. در مقابل اتریوم و شبکه هایی مثل ترون از مدل حساب استفاده می کنند، و به همین دلیل تجربه کار با آنها فرق می کند.

منابع: تعریف فنی UTXO و مجموعه UTXO در مستندات فنی learnmeabitcoin و طراحی اولیه در مقاله اصلی بیت کوین نوشته ساتوشی ناکاموتو.