181 / 691BIP370

PSBT v2

आंशिक रूप से हस्ताक्षरित लेनदेन प्रारूप का दूसरा संस्करण

PSBT v2 डेटा को इनपुट और आउटपुट मैप में अलग करता है ताकि कई सहभागी लेनदेन को क्रमशः बना सकें। बदलाव फ्लैग, हस्ताक्षर और संगत समय-ताला शर्तों पर निर्भर करते हैं।

PSBT v2 अधूरे Bitcoin लेनदेन और हस्ताक्षर संबंधी जानकारी के आदान-प्रदान का BIP 370 प्रारूप है। संख्या PSBT आवरण का संस्करण बताती है, अपने आप लेनदेन का संस्करण या नेटवर्क सत्यापन की नई विधि नहीं।

BIP 174 के PSBT v0 में एक वैश्विक अहस्ताक्षरित लेनदेन होता है। BIP 370 उसका निर्माण डेटा अलग-अलग फ़ील्ड में रखता है। सहभागी आवरण बनने के बाद भी नियमों के अनुसार इनपुट और आउटपुट जोड़ सकते हैं। इससे हस्ताक्षरित हिस्सों में मनमाना बदलाव करने की अनुमति नहीं मिलती और फ़ाइल स्वयं भुगतान नहीं बन जाती। [BIP 370 — PSBT Version 2] [BIP 174 — Partially Signed Bitcoin Transaction Format]

PSBT_GLOBAL_VERSION का मान 2 होना चाहिए और PSBT_GLOBAL_UNSIGNED_TX अनुपस्थित होना चाहिए। अनिवार्य PSBT_GLOBAL_TX_VERSION बनाए जा रहे लेनदेन का संस्करण अलग से निर्धारित करता है; वैश्विक मैप में इनपुट और आउटपुट की गिनती भी होती है। पुरानी फ़ाइल में केवल संस्करण संख्या बदलने से वैध PSBT v2 नहीं बनता। [BIP 370 — PSBT Version 2]

इनपुट में पिछला TXID और खर्च किए जाने वाले आउटपुट का सूचकांक होना चाहिए। आउटपुट में satoshi में राशि और scriptPubKey होना चाहिए; जोड़ते समय संबंधित वैश्विक गिनती भी बदलती है। इनपुट sequence न दिए जाने पर उसका मान 0xffffffff माना जाता है। यह निर्माण डेटा UTXO जानकारी और हस्ताक्षर उपकरण को चाहिए अन्य सामग्री के सत्यापन का विकल्प नहीं है। [BIP 370 — PSBT Version 2]

PSBT_GLOBAL_TX_MODIFIABLE में बिट 0 इनपुट और बिट 1 आउटपुट बदलने की अनुमति देता है। बिट 2 SIGHASH_SINGLE हस्ताक्षर की सूचना देता है: उसके इनपुट और संबंधित सूचकांक वाले आउटपुट की जोड़ी बनी रहनी चाहिए। निर्माता को वास्तविक हस्ताक्षर जाँचने होते हैं; फ्लैग चालू होना अपने आप अन्यथा अवैध बदलाव को सुरक्षित नहीं बनाता। [BIP 370 — PSBT Version 2]

nLockTime के लिए सभी इनपुट से संगत शर्त का प्रकार और उसका अधिकतम मान चुना जाता है। दोनों प्रकार संभव हों तो ब्लॉक ऊँचाई को प्राथमिकता मिलती है; असंगत इनपुट नहीं जोड़ा जाता। इनपुट की शर्तें न हों तो वैश्विक वैकल्पिक मान, या शून्य लिया जाता है। हस्ताक्षर पहले से हों तो नया इनपुट nLockTime नहीं बदल सकता। [BIP 370 — PSBT Version 2]

हस्ताक्षरकर्ता SIGHASH के अनुसार फ्लैग बदलता है। SIGHASH_ANYONECANPAY के बिना इनपुट बदलाव बंद करता है; SIGHASH_NONE के बिना आउटपुट बदलाव बंद करता है और SIGHASH_SINGLE होने पर आवश्यक जोड़ी चिह्नित करता है। अंतिम रूप देने के बाद निष्कर्षक फ़ील्ड से नेटवर्क लेनदेन बनाता है। प्रसारण और नेटवर्क द्वारा स्वीकार किया जाना अगले चरण हैं, भेजे गए आवरण के गुण नहीं। [BIP 370 — PSBT Version 2] [BIP 174 — Partially Signed Bitcoin Transaction Format] [Bitcoin Core — PSBT workflow]

PSBT v0 और v2 सीधे एक-दूसरे की जगह नहीं रखे जा सकते। v0 में परिवर्तन के लिए अहस्ताक्षरित लेनदेन बनाना और उस संस्करण के फ़ील्ड नियम मानना आवश्यक है। BIP 371 दोनों संस्करणों के लिए Taproot जानकारी अलग से परिभाषित करता है। इसलिए केवल PSBT या Taproot समर्थन साबित नहीं करता कि वॉलेट PSBT v2 आयात, हस्ताक्षर और निर्यात कर सकता है। [BIP 370 — PSBT Version 2] [BIP 371 — Taproot Fields for PSBT]

विश्वसनीय उपकरण पर प्राप्तकर्ता, राशि, अपना शेष-वापसी आउटपुट और शुल्क मूल इरादे से मिलाएँ। UTXO जानकारी, स्क्रिप्ट और इस्तेमाल किए गए SIGHASH को जाँचें; कुंजी व्युत्पत्ति का मेटाडेटा अकेले आउटपुट का स्वामित्व साबित नहीं करता। विशिष्ट समन्वयक और उपकरण से परीक्षण करना संगतता जाँचता है, भविष्य के सभी लेनदेन की सुरक्षा नहीं। [BIP 174 — Partially Signed Bitcoin Transaction Format] [Bitcoin Core — PSBT workflow]

पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें PSBT, Hardware Wallet, Multisig, Taproot.

DOC · 001BIP 370 — PSBT Version 2विनिर्देशDOC · 002BIP 174 — Partially Signed Bitcoin Transaction Formatविनिर्देशDOC · 003BIP 371 — Taproot Fields for PSBTविनिर्देशDOC · 004Bitcoin Core — PSBT workflowदस्तावेज़
स्रोत पहले · यह निवेश सलाह नहीं है