कॉइनबेस एक सहमतिपूर्ण प्रकार का लेनदेन है, कॉइनबेस कंपनी या नियमित भुगतान नहीं। ब्लॉक के साथ, नोड शून्य आउटपॉइंट, BIP34 के अनुसार ऊंचाई, इनाम सीमा, शून्य स्थिति, परिपक्वता और संभावित सेगविट प्रतिबद्धता की पुष्टि करता है। इसे मेमपूल में अलग से स्वीकार नहीं किया जाता है।
एक ब्लॉक में कम से कम एक लेनदेन होना चाहिए और कॉइनबेस केवल पहला हो सकता है। बिटकॉइन कोर इसे इसकी सटीक संरचना से पहचानता है: पिछले आउटपुट के हैश में 32 शून्य बाइट्स वाला एक एकल इनपुट और 0xffffffff का सूचकांक। इनपुट मौजूदा UTXO को अनलॉक नहीं करता है, इसलिए इसका कोई नियमित हस्ताक्षर या प्रीवाउट मान नहीं है। एक लेन-देन में अभी भी कई आउटपुट हो सकते हैं, एक नियमित संस्करण के साथ-साथ एक लॉकटाइम और एक कस्टम txid। [बिटकॉइन डेवलपर संदर्भ - कॉइनबेस इनपुट] [बिटकॉइन डेवलपर संदर्भ - ब्लॉक चेन] [बिटकॉइन कोर - लेनदेन.एच (IsCoinBase)]
कॉइनबेस आउटपुट का योग उस राशि के लिए GetBlockSubsidy और ब्लॉक में अन्य सभी वैध लेनदेन की फीस से अधिक नहीं हो सकता है। केवल नया जारी किया गया इनाम घटक ही नई सातोशी बनाता है; फीस पहले से मौजूद सातोशी को परिवर्तित करती है। एक खनिक कम दावा कर सकता है और अंतर हमेशा के लिए खत्म हो जाता है, लेकिन सीमा से अधिक एक भी सातोशी पूरे ब्लॉक को अमान्य कर देता है। आम सहमति एक पूल, खनिकों या एकाधिक स्क्रिप्ट के बीच विभाजन का निर्धारण नहीं करती है। [बिटकॉइन कोर - सत्यापन.सीपीपी] [बिटकॉइन कोर - माइनर.सीपीपी]
BIP34 के अनुसार, स्क्रिप्टसिग कॉइनबेस को न्यूनतम एन्कोडेड CScript संख्या के रूप में वर्तमान ब्लॉक ऊंचाई से शुरू होना चाहिए। संपूर्ण स्क्रिप्टसिग 2 से 100 बाइट्स का है। बाकी में एक अतिरिक्त नॉन, एक पूल टैग, या एक मर्ज की गई खनन प्रतिबद्धता हो सकती है, लेकिन यह नियमों से बाहर नहीं है: एक गलत ऊंचाई या लंबाई ब्लॉक को अमान्य कर देगी, और एम्बेडेड हस्ताक्षर ऑपकोड सिगोप सीमा का उपभोग कर सकते हैं। [बिटकॉइन डेवलपर संदर्भ - कॉइनबेस इनपुट] [बीआईपी 34 - कॉइनबेस में ब्लॉक ऊंचाई]
ASIC हेडर में नॉन को बदल देता है, लेकिन 32-बिट स्थान जल्दी खत्म हो जाता है। इसलिए खनन सॉफ्टवेयर अतिरिक्त नॉन को कॉइनबेस में बदल देता है; इससे इसका txid, मर्कल रूट लेनदेन और बाद में ब्लॉक हेडर बदल जाएगा, इसलिए इसे एक नया हैश स्पेस मिलेगा। पूल प्रोटोकॉल इस स्थान को श्रमिकों के बीच विभाजित करते हैं ताकि उनके शेयर टकराएं नहीं। अतिरिक्त नॉन एक समन्वय टुकड़ा है, अतिरिक्त उत्सर्जन नहीं। [बिटकॉइन कोर - miner.cpp] [बीआईपी 22 - गेटब्लॉकटेम्पलेट] [स्ट्रैटम वी2 - माइनिंग प्रोटोकॉल विनिर्देश]
कॉइनबेस आउटपुट सामान्य लॉक स्क्रिप्ट का उपयोग करते हैं और इन्हें कई पतों या नीतियों के बीच विभाजित किया जा सकता है। पूल संग्रह पते पर भुगतान कर सकता है, राजस्व को तुरंत विभाजित कर सकता है, या ऑपरेटर के लिए आउटपुट आरक्षित कर सकता है। हालाँकि, नोड मात्राओं और स्क्रिप्टों का सत्यापन करता है, अनुबंधों या वास्तविक मालिकों का नहीं। भुगतान सीमा, पीपीएस, एफपीपीएस, पीपीएलएनएस और बाद में निकासी गैर-प्रोटोकॉल पूल नियम हैं। [बिटकॉइन कोर - miner.cpp] [बीआईपी 22 - getblocktemplate]
यदि ब्लॉक में गवाह लेनदेन शामिल है, तो BIP141 को एक आउटपुट में कॉइनबेस गवाह प्रतिबद्धता की आवश्यकता होती है: OP_RETURN 6a24aa21a9ed और 32-बाइट प्रतिबद्धता से शुरू होता है। कॉइनबेस इनपुट गवाह में एकल 32-बाइट आरक्षित मान होता है। यदि अधिक मिलान वाले आउटपुट हैं, तो सर्वसम्मति उच्चतम सूचकांक लेती है। यह आउटपुट गवाह मर्कल रूट को बांधता है; खनिकों के लिए कोई पुरस्कार नहीं। [बीआईपी 141 - अलग गवाह प्रतिबद्धता]
कॉइनबेस के आउटपुट को UTXO सेट में एक विशेष ध्वज के साथ चिह्नित किया गया है और इसे केवल तभी खर्च किया जा सकता है जब खर्च और ब्लॉक बनाने की ऊंचाई का अंतर COINBASE_MATURITY, आज 100 तक पहुंच जाता है। इसलिए, ऊंचाई H से इनाम पहली बार ब्लॉक H+100 में खर्च किया जा सकता है। वॉलेट एक पुष्टिकरण का स्पष्ट अंतर दिखा सकता है क्योंकि जनरेटिंग ब्लॉक पहले गिना जाता है। परिपक्वता अंतिम बात नहीं है. [बिटकॉइन कोर - सर्वसम्मति.एच (COINBASE_MATURITY)]
यदि एक खनन ब्लॉक पुनर्गठन के दौरान सबसे अधिक काम के साथ सक्रिय श्रृंखला से बाहर हो जाता है, तो इसके कॉइनबेस आउटपुट सक्रिय यूटीएक्सओ सेट से गायब हो जाएंगे। बाद के लेन-देन जिनमें परिपक्व इनाम पहले ही खर्च हो चुका है, अमान्य भी हो सकते हैं। 100 ब्लॉकों की देरी छोटे पुनर्गठन की क्षति को सीमित करती है, लेकिन अपरिवर्तनीयता की गारंटी नहीं देती है। एक पूल को सक्रिय श्रृंखला, परिपक्वता और खनिकों के प्रति अपनी प्रतिबद्धताओं की अलग से निगरानी करनी चाहिए। [बिटकॉइन कोर - सत्यापन.सीपीपी] [बिटकॉइन कोर - सर्वसम्मति.एच (COINBASE_MATURITY)]
पूर्ण नोड को सत्यापन के दौरान स्थिति शून्य पर कॉइनबेस की आवश्यकता होती है, अतिरिक्त कॉइनबेस को अस्वीकार करता है, स्क्रिप्टसिग लंबाई और बीआईपी34 ऊंचाई की जांच करता है, अन्य लेनदेन की फीस की गणना करता है और नए इश्यू प्लस फीस से ऊपर के इनाम को अस्वीकार करता है। यह मूल्य सीमा, वजन, गवाह प्रतिबद्धता और बाद में खर्च की परिपक्वता की भी पुष्टि करता है। ऊंचाई और ब्लॉक संदर्भ के बिना एक अलग कॉइनबेस मेमपूल में शामिल नहीं है। [बिटकॉइन कोर - लेनदेन.एच (IsCoinBase)] [बिटकॉइन कोर - सत्यापन.सीपीपी] [बीआईपी 141 - अलग गवाह प्रतिबद्धता]
शुरुआती ब्लॉकों में, समान txid कॉइनबेस बनाया जा सकता था क्योंकि ऊंचाई अभी तक अनिवार्य नहीं थी। BIP30 पुराने लेनदेन के अव्ययित आउटपुट को ओवरराइट होने से रोकता है, और BIP34 आधुनिक कॉइनबेस को आमतौर पर एक अद्वितीय ऊंचाई बनाता है। जेनेसिस एक ऐतिहासिक अपवाद है: इसका कॉइनबेस एक क्रमबद्ध ब्लॉक में है, लेकिन इनिशियलाइज़ेशन कोड ने इसके आउटपुट को कभी भी व्यय योग्य UTXO डेटाबेस में नहीं डाला है। इसलिए, प्रसिद्ध 50 बीटीसी खर्च नहीं किया जा सकता। [बीआईपी 30 - डुप्लिकेट लेनदेन] [बीआईपी 34 - कॉइनबेस में ब्लॉक ऊंचाई] [बिटकॉइन कोर - चेनपरम्स.सीपीपी (उत्पत्ति निर्माण)]
पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें Block, ब्लॉक की जारीकरण इनाम, लेनदेन शुल्क, बिटकॉइन माइनिंग, Block Template, Bitcoin. इस प्रविष्टि का उल्लेख यहाँ भी है ब्लॉक की जारीकरण इनाम, पुष्टिकरण, Reorg, Stale Block.