در دنیای بلاک چین، نحوه انجام تراکنشها از اهمیت بالایی برخوردار است. UTXO کوتاهشده Unspent Transaction Output به معنی خروجی های خرج نشده تراکنش است و منظور از آن، میزان ارزدیجیتالی است که بعد هر تراکنش در کیف پول می ماند. UTXO یا خروجیهای خرج نشده تراکنش، سیستمی است که در شبکههای بیت کوین، لایت کوین، بیت کوین کش و بسیاری از ارزهای دیجیتال دیگر برای مدیریت جابهجایی کوینها بین آدرسهای مختلف (یا همان کیف پولهای دیجیتال) استفاده میشود.
شاید در نگاه اول، نام UTXO کمی گیج کننده به نظر برسد، اما این سیستم بر اساس یک مفهوم ساده طراحی شده است. در این مقاله، به طور مفصل در مورد UTXO صحبت خواهیم کرد.
برای درک بهتر مطالب این مقاله، لازم است با مفاهیم اولیه بلاک چین و شبکه بیت کوین آشنا باشید. همچنین، توضیح مختصری از ساختار تراکنشها در بلاک چین ارائه خواهیم داد. سپس به سراغ موضوع جذاب UTXO یا خروجیهای خرج نشده تراکنش میرویم. تا پایان همراه ما باشید.
منظور از UTXO یا خروجیهای خرج نشده تراکنش چیست؟
وقتی از UTXO صحبت میکنیم، در واقع داریم به سکههای باقیمانده از هر تراکنش در شبکههای بلاک چینی مثل بیتکوین اشاره میکنیم. این سکهها، که به عبارت کاملتر خروجیهای خرج نشده تراکنش نامیده میشوند، در واقع همان مقدار ارزی هستند که بعد از هر انتقال بین کیف پولها باقی میمانند و میتوان دوباره آنها را خرج کرد.
شاید بگویید که این مفهوم خیلی واضح است و همه میدانند که میتوانند موجودی باقیمانده در کیف پول خود را خرج کنند. اما نکته کلیدی اینجاست که در بلاک چین، نحوهی انجام تراکنشها کمی متفاوت است. برای درک بهتر UTXO، باید بدانیم که تراکنشها در بلاک چین چگونه صورت میگیرند.
برای اینکه بتوانیم UTXO را به طور کامل درک کنیم، ابتدا باید به ساختار تراکنشها در بلاک چین بپردازیم. با درک این ساختار، متوجه میشویم که چرا مفهوم UTXO اینقدر مهم است و چه نقشی در امنیت و کارایی شبکههای بلاک چینی ایفا میکند.
نحوه انجام تراکنشها در بلاک چین بیت کوین (و بلاک چینهای مشابه)
در دنیای رمز ارزها، هر تراکنش مانند یک سفر کوتاه از یک کیف پول به کیف پول دیگر است. این سفر با استفاده از کلید خصوصی شما، که مانند رمز عبور کیف پولتان عمل میکند، آغاز میشود. شما با استفاده از کلید خصوصی، تراکنش را امضا میکنید و آن را به شبکه بلاک چین ارسال میکنید.
شبکه بلاک چین، مانند یک سیستم پیچیده و امن، تراکنش شما را بررسی میکند. نودها، که کامپیوترهای متصل به شبکه هستند، صحت امضا و موجودی کیف پول شما را تأیید میکنند. اگر همه چیز درست باشد، تراکنش شما به یک بلاک اضافه میشود و به زنجیره بلاک چین میپیوندد.
در نهایت، با اضافه شدن تراکنش به بلاک چین، شما و گیرنده تراکنش میتوانید موجودی کیف پول خود را بررسی کنید و از انتقال موفقیتآمیز ارز دیجیتال مطلع شوید.
به یاد داشته باشید که رمز ارزها هیچ شکل فیزیکی ندارند و تنها موجودی کیف پول شما نشان دهنده مقدار رمز ارزتان است.
اگر به ایردراپ ها و بازی های ارزدیجیتال علاقه دارید، دوره رایگان بازی کن پول در بیار آکادمی ولسام مناسب خود شماست:
نحوه عملکرد UTXO یا خروجیهای خرج نشده تراکنش
در دنیای بیت کوین، پول به جای اینکه به صورت یک مبلغ کامل در حساب شما ذخیره شود، به قطعات کوچکی به نام UTXO تقسیم میشود. هر UTXO مثل یک سکه کوچک است که میتوانید آن را خرج کنید. تصور کنید شما یک سکه ۱ بیت کوینی دارید و میخواهید نصف آن را به دوستتان بدهید. در این حالت، شبکه بیت کوین سکه شما را به دو قسمت تقسیم میکند:
- یک سکه ۰.۵ بیت کوینی: به دوستتان داده میشود.
- یک سکه ۰.۵ بیت کوینی: به عنوان سکه جدید به شما برمیگردد.
به این ترتیب، شما همیشه چندین سکه کوچک در حساب خود دارید که میتوانید در تراکنشهای بعدی از آنها استفاده کنید.
مثلا اگر بخواهید ۰.۲ بیت کوین دیگر به دوستتان بدهید، شبکه بیت کوین یکی از سکههای شما را به دو قسمت تقسیم میکند:
- یک سکه ۰.۲ بیت کوینی: به دوستتان داده میشود.
- یک سکه ۰.۸ بیت کوینی: به عنوان سکه جدید به شما برمیگردد.
نکته مهم این است که هر سکه فقط یک بار قابل خرج کردن است. اگر بخواهید مبلغی بیشتر از یک سکه را خرج کنید، شبکه بیت کوین چندین سکه را با هم ترکیب میکند تا مبلغ مورد نظر را تأمین کند. همچنین، کارمزد تراکنش از سکه جدید شما کاسته میشود.
اهمیت سیستم UTXO در بلاک چین
سیستم UTXO، قلب تپنده بلاک چین بیت کوین است که به طور همزمان دو مشکل اساسی را حل میکند:
- اول: مدیریت و ردیابی تراکنشها را سادهتر میکند. به جای اینکه هر تراکنش به طور جداگانه ردیابی شود، سیستم UTXO فقط سکههای خرج نشده (UTXO) را دنبال میکند. این سکهها مثل قطعات کوچکی از بیت کوین هستند که هر کدام فقط یک بار قابل خرج کردن هستند.
- دوم: از مشکل دوبار خرج کردن جلوگیری میکند. هر UTXO فقط یک بار قابل خرج کردن است و نودهای شبکه سابقه تمام UTXOها را در یک پایگاه داده نگهداری میکنند. اگر کسی بخواهد سکهای را که قبلا خرج شده دوباره خرج کند، نودها این تراکنش را رد میکنند.
مشکل سیستم UTXO
سیستم UTXO، با وجود مزایای فراوان، یک چالش اساسی دارد: فضای ذخیرهسازی. هر نود در شبکه بیت کوین، یک نسخه از پایگاه داده UTXO را در حافظه خود (RAM) نگهداری میکند که به آن Chainstate میگویند. با افزایش تعداد تراکنشها و رشد بلاک چین، حجم این پایگاه داده نیز به طور چشمگیری افزایش مییابد.
این افزایش حجم، به طور مستقیم بر هزینه راهاندازی نود کامل در شبکه بیت کوین تاثیر میگذارد. هر نود برای نگهداری Chainstate به حافظه بیشتری نیاز دارد و این هزینه راهاندازی را بالا میبرد. در نتیجه، افراد کمتری قادر به راهاندازی نود کامل خواهند بود و این میتواند به تمرکز بیشتر شبکه منجر شود.
در حال حاضر، هر بلاک در شبکه بیت کوین ۱ مگابایت حجم دارد و سالانه بیش از ۱۰۰ میلیون تراکنش به آن اضافه میشود. هر UTXO حدود ۵۰ بایت فضا اشغال میکند، که به معنای افزایش ۵۰ گیگابایتی حجم Chainstate در هر سال است.
اگر در آینده حجم هر بلاک افزایش یابد (برای افزایش مقیاسپذیری و سرعت شبکه)، حجم UTXOها نیز بیشتر خواهد شد و هزینه راهاندازی نودها به طور قابل توجهی افزایش خواهد یافت.
راه حلهای مشکل کمبود فضای ذخیره UTXOها
برای حل مشکل فضای ذخیرهسازی UTXO، چند راهکار امیدوارکننده وجود دارد:
ذخیرهسازی در هارد دیسک
نودها میتوانند اطلاعات UTXO را به جای RAM، در هارد دیسکهای SSD یا HDD ذخیره کنند. اگرچه سرعت هارد دیسکها به مراتب کمتر از RAM است، اما تا زمانی که بتوانند اطلاعات را در کمتر از ۱۰ دقیقه (مدت زمان تشکیل هر بلاک در شبکه بیت کوین) پردازش کنند، مشکلی ایجاد نمیشود.
بهبودهای فنی
توسعهدهندگان بیت کوین به طور مداوم در حال بهبود تراکنشهای شبکه و پایگاه داده UTXO هستند. راهحلهایی مثل Segwit نیز به طور غیرمستقیم در کاهش سرعت رشد پایگاه داده UTXO تاثیر مثبت دارند.
سخن پایانی
در این مقاله، به بررسی نحوه انجام تراکنشها در بلاک چین، به ویژه بیت کوین، پرداختیم. سیستم UTXO (خروجیهای خرج نشده تراکنش) نقش کلیدی در این فرآیند ایفا میکند. هر UTXO در واقع یک واحد از بیت کوین (یا هر رمزارز دیگری) است که پس از هر تراکنش ایجاد میشود و به کیف پول مقصد یا مبدا اضافه میشود. هر UTXO فقط یک بار قابل خرج کردن است. هنگامی که میخواهید تراکنشی را به شبکه ارسال کنید، شبکه از UTXOهای موجود در کیف پول شما استفاده میکند. ازآنجایی که UTXOها قابل تقسیم نیستند، به طور کامل به شبکه ارسال میشوند و هرگونه مبلغ اضافی به عنوان یک UTXO جدید به کیف پول مبدا بازگردانده میشود.
با این حال، این سیستم با چالش تامین فضای ذخیرهسازی برای پایگاه داده UTXO مواجه است. نودهای شبکه مجبورند این اطلاعات را در حافظه خود (RAM) نگهداری کنند که با افزایش تعداد تراکنشها، به فضای بیشتری نیاز خواهد بود.