UTXO पुराने लेनदेन में बनी वह रकम है जिसे अभी खर्च नहीं किया गया। इसका पूरा नाम Unspent Transaction Output है। वॉलेट एक बैलेंस दिखा सकता है, लेकिन उसके पीछे कई अलग UTXO होते हैं, जैसे जेब की नकदी कई नोटों से बनती है। भुगतान करते समय वॉलेट चुनता है कि किनका उपयोग हो। एक ही पते पर कई भुगतान आ सकते हैं और कई अलग UTXO मौजूद हो सकते हैं।
आपके पास दो UTXO हैं: 70 000 sat और 50 000 sat, कुल 120 000 sat। sat बिटकॉइन की सबसे छोटी इकाई है। 90 000 sat का भुगतान और 1 000 sat फीस देने के लिए वॉलेट दोनों इस्तेमाल कर सकता है। प्राप्तकर्ता के लिए 90 000 sat का नया आउटपुट और आपके लिए 29 000 sat की बची रकम का नया आउटपुट बनता है। दोनों पुराने UTXO पूरे खर्च होते हैं; उनमें कोई हिस्सा बचा नहीं रहता। यह नोटों से भुगतान करके बाकी पैसे वापस पाने जैसा है, बस रकम तय मूल्य के नोटों तक सीमित नहीं होती। एक ही पते पर भेजे गए दो नए आउटपुट भी मिलते नहीं, दो अलग UTXO रहते हैं। [2]
वॉलेट उन आउटपुटों को जोड़ता है जिन्हें वह देखता है, लेकिन ज़रूरी नहीं कि सबको तुरंत खर्च कर सके। Watch-only Wallet भुगतान देखता है, पर खुद हस्ताक्षर करने वाली निजी कुंजियाँ नहीं रखता। कोई दूसरा आउटपुट निश्चित समय तक बंद हो सकता है। ब्लॉक के पहले लेनदेन, Coinbase Transaction, का इनाम पहले निर्धारित परिपक्वता तक पहुँचता है। बहुत छोटी रकम तकनीकी रूप से खर्च हो सकती है, फिर भी ऊँची फीस के समय उसका उपयोग उसकी रकम से अधिक महँगा पड़ सकता है। उपलब्धता, खर्च करने का अधिकार और आर्थिक उपयोगिता अलग प्रश्न हैं। [1]
हर इस्तेमाल किया गया UTXO लेनदेन में एक इनपुट और आम तौर पर अधिक डेटा जोड़ता है। समान फीस दर और मिलते-जुलते इनपुट प्रकारों पर बहुत-सी छोटी रकम खर्च करना एक बड़ी रकम से महँगा होता है। Coin Control से खास UTXO अपने हाथ से चुने जा सकते हैं। उन्हें कम संख्या की बड़ी रकमों में जोड़ना, यानी समेकन, भविष्य का लेनदेन छोटा कर सकता है, लेकिन आज फीस देनी पड़ती है। निजता पर भी असर होता है: इनपुट जोड़ने से देखने वाला अनुमान लगा सकता है कि उन्हें एक ही व्यक्ति नियंत्रित करता है। यह अचूक सबूत नहीं, फिर भी जिन धनराशियों का इतिहास अलग रखना हो उन्हें अपने आप जोड़ना उचित नहीं। [2] [4]
सिर्फ पता पर्याप्त नहीं। हर आउटपुट की पहचान दो चीज़ों से होती है: लेनदेन का पहचानकर्ता txid और उसमें आउटपुट का क्रमांक। यह संदर्भ outpoint कहलाता है। आउटपुट रिकॉर्ड में satoshi में रकम और scriptPubKey, यानी खर्च करने की शर्तें होती हैं। पुष्ट आउटपुट के लिए नोड उस ब्लॉक की ऊँचाई भी रखता है जिसमें आउटपुट बना था, और यह जानकारी भी कि वह Coinbase Transaction से आया है या नहीं, ताकि परिपक्वता और समय की पाबंदियाँ जाँची जा सकें। पता या outpoint जानना केवल रिकॉर्ड की ओर इशारा करने देता है, पैसे खर्च करने का अधिकार नहीं; उसके लिए शर्तें पूरी करनी होंगी। [1] [2]
पुष्ट UTXO का समूह उस इतिहास के अनुसार होता है जो किसी खास ब्लॉक पर समाप्त होता है। नोड अपने mempool को भी शामिल कर सकता है, जहाँ अपुष्ट लेनदेन इंतज़ार करते हैं: कुछ पुराने आउटपुट वहाँ खर्च हो रहे होते हैं और नए बन रहे होते हैं। नेटवर्क इतिहास की दूसरी वैध शाखा स्वीकार करे, तो पुनर्गठन भी स्थिति बदल सकता है। तकनीकी जाँच के लिए Bitcoin Core में gettxout कमांड है। उसका include_mempool विकल्प तय करता है कि इंतज़ार कर रहे लेनदेन शामिल होंगे या नहीं। null जवाब केवल बताता है कि इस दृष्टि से आउटपुट UTXO के रूप में उपलब्ध नहीं है; उससे यह नहीं पता चलता कि वह कभी था ही नहीं या खर्च हो चुका है। इसलिए तुलना में नोड की स्थिति और पूछने का तरीका दोनों मायने रखते हैं। [3]
पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें लेनदेन, Full Node, Private Key, वॉलेट, Mempool. इस प्रविष्टि का उल्लेख यहाँ भी है Full Node, लेनदेन, Private Key, वॉलेट.
01क्या UTXO और वॉलेट का बैलेंस एक ही चीज़ हैं?+
नहीं। UTXO एक विशिष्ट आउटपुट है; वॉलेट निगरानी किए जा रहे आउटपुट की स्थिति के अनुसार शेष की गणना करता है। दिखाई गई पूरी रकम तुरंत खर्च करने योग्य हो, यह आवश्यक नहीं। नेटवर्क आउटपुट और उनकी खर्च शर्तें ट्रैक करता है, कोई एक बदलता खाता शेष नहीं।
02बहुत से छोटे UTXO फीस क्यों बढ़ाते हैं?+
हर चुना गया इनपुट डेटा जोड़ता है। इनपुट के प्रकार और बाकी आउटपुट तुलनीय हों, तो कई छोटे UTXO खर्च करने में एक बड़े UTXO से अधिक वर्चुअल बाइट लगते हैं। इसलिए sat/vB में दर समान होने पर कुल शुल्क आम तौर पर अधिक होता है।