62 / 736BIP174

PSBT

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

कंप्यूटर भुगतान तैयार कर सकता है, जबकि कुंजियाँ हार्डवेयर वॉलेट में ही रहती हैं। PSBT दोनों के बीच प्रस्ताव और उसकी जाँच के लिए ज़रूरी जानकारी पहुँचाता है। मंज़ूरी मिलने पर डिवाइस हस्ताक्षर जोड़ता है। एक भुगतान पर कई लोगों या डिवाइसों के हस्ताक्षर चाहिए हों, तब भी यही प्रारूप काम आता है।

PSBT तैयार हो रही Bitcoin ट्रांज़ैक्शन को उसकी जाँच और हस्ताक्षर करने वाले वॉलेट तथा डिवाइसों के बीच भेजने का मानक प्रारूप है। इसका पूरा नाम Partially Signed Bitcoin Transaction है, यानी आंशिक रूप से हस्ताक्षरित ट्रांज़ैक्शन, लेकिन फ़ाइल में अभी एक भी हस्ताक्षर न हो तो भी वह PSBT हो सकती है। इसमें प्रस्ताव, सहायक जानकारी और हस्ताक्षर होते हैं, निजी कुंजियाँ नहीं। ज़रूरी सामग्री पूरी होने पर इससे नेटवर्क को भेजने योग्य सामान्य ट्रांज़ैक्शन बनाई जा सकती है। डिजिटल हस्ताक्षर ऐसी मंज़ूरी का प्रमाण है जिसे जाँचा जा सकता है। इसे निजी कुंजी से बनाया जाता है—यह गुप्त डेटा हस्ताक्षर करने की क्षमता देता है, लेकिन हस्ताक्षर करते समय कुंजी खुद उजागर नहीं होती।

Multisig: हस्ताक्षर सीमा सिम्युलेटरदेखें कि m-of-n मॉडल में बची हुई कुंजियाँ हस्ताक्षर की आवश्यक सीमा पूरी कर सकते हैं या नहीं। परिणाम हस्ताक्षरों की उपलब्धता बताता है, वॉलेट की सुरक्षा या पूर्ण पुनर्प्राप्ति नहीं।

अन्ना पावेल को 60 000 sat भेजना चाहती है, यानी साठ हज़ार सातोशी, बिटकॉइन की सबसे छोटी इकाई। उसका वॉलेट पहले मिला हुआ 100 000 sat का एक आउटपुट चुनता है, जिसे अभी खर्च नहीं किया गया है। आउटपुट में रकम और उसे खर्च करने की शर्तें दर्ज होती हैं। इस उदाहरण में प्रस्ताव पावेल को 60 000 sat देता है, 39 000 sat बची रकम के रूप में अन्ना को लौटाता है और 1 000 sat शुल्क के लिए छोड़ता है। अभी ये सिर्फ़ निर्देश हैं। ऐप इन्हें PSBT में रखकर हार्डवेयर वॉलेट को भेजता है—डिवाइस के अनुसार केबल, QR कोड या मेमोरी कार्ड से। अन्ना डिवाइस की स्क्रीन पर भुगतान जाँचकर हस्ताक्षर की मंज़ूरी देती है। वापस हस्ताक्षर आता है, गुप्त कुंजी नहीं। इसलिए भुगतान तैयार करने वाला डिवाइस और उसे हस्ताक्षर करने का अधिकार रखने वाला डिवाइस अलग हो सकते हैं। [1] [4]

फ़ाइल का नाम .psbt से समाप्त होने भर से भुगतान सुरक्षित नहीं हो जाता। उसे बनाने वाला कंप्यूटर हैक हुआ हो सकता है या उसकी सेटिंग गलत हो सकती है। अन्ना प्राप्तकर्ता का पता पावेल से विश्वसनीय तरीके से मिले पते से मिलाती है। वह रकम, कुल शुल्क और बची रकम अपने वॉलेट में लौटने की भी जाँच करती है। हार्डवेयर वॉलेट में वह डिवाइस की भरोसेमंद स्क्रीन और निर्माता की प्रक्रिया का पालन करती है। हस्ताक्षर करने वाला सॉफ़्टवेयर सहायक जानकारी और हस्ताक्षर से तय होने वाली बातों को भी जाँचता है। तकनीकी शब्द sighash बताता है कि हस्ताक्षर ट्रांज़ैक्शन के किन हिस्सों को बदलाव से बचाता है। किसी नए उपयोगकर्ता को असामान्य मोड समझे बिना मंज़ूर नहीं करना चाहिए। पता गलत हो या शुल्क सत्यापित न हो सके, तो जाँच छोड़ने के बजाय प्रस्ताव की समीक्षा करें। [1]

तीन में से दो हस्ताक्षर माँगने वाले Multisig वॉलेट में अन्ना पहला हस्ताक्षर और पावेल दूसरा जोड़ सकते हैं, दोनों अपने डिवाइस से। उन्हें रिकवरी शब्द आपस में देने या एक ही समय ऑनलाइन होने की ज़रूरत नहीं है। समन्वयक, यानी प्रक्रिया व्यवस्थित करने वाला ऐप, उसी भुगतान की सामग्री इकट्ठी करता है और हस्ताक्षर जोड़ता है। फिर भी हर हस्ताक्षरकर्ता को खुद जाँचना है कि भुगतान उसकी मंशा के अनुसार है; समन्वयक उसके लिए निर्णय नहीं लेता। BIP 174 प्रस्ताव शुरू करने वाले को creator, जानकारी जोड़ने वाले को updater, हस्ताक्षर करने वाले को signer और संबंधित संस्करण मिलाने वाले को combiner कहता है। finalizer इनपुट खर्च करने की शर्तें पूरी करने वाला अंतिम डेटा तैयार करता है, और extractor नेटवर्क के लिए सामान्य ट्रांज़ैक्शन निकालता है। एक कार्यक्रम अक्सर कई भूमिकाएँ निभाता है। ये कामों के नाम हैं, छह अलग प्रतिभागियों की अनिवार्यता नहीं। [1] [4]

PSBT से पता चल सकता है कि आप कौन-से सिक्के खर्च करने वाले हैं, किसे भुगतान कर रहे हैं, कितनी बची रकम मिलेगी और पतों का आपस में क्या संबंध है। इसमें xpub भी हो सकता है—ऐसी सार्वजनिक जानकारी जिससे और सार्वजनिक कुंजियाँ, तथा वॉलेट के नियमों की मदद से पते निकाले जाते हैं—या derivation paths, जो वॉलेट की संरचना में कुंजियों की जगह बताते हैं। सिर्फ़ सामग्री पढ़ने के लिए इसे किसी अनजान ऑनलाइन सेवा पर न भेजें। यदि ज़रूरी सामग्री पूरी है, तो हस्ताक्षरित PSBT किसी दूसरे व्यक्ति को आपके द्वारा मंज़ूर की गई खास ट्रांज़ैक्शन पूरी करके नेटवर्क पर प्रसारित करने दे सकती है। अपनी प्रति मिटाने से हस्ताक्षर रद्द नहीं होता। यह फ़ाइल Seed Phrase (कुंजियाँ वापस पाने के लिए इस्तेमाल होने वाले बैकअप शब्द) या Multisig की पूरी सेटिंग के बैकअप का विकल्प भी नहीं है: इसका काम एक खास भुगतान में मदद करना है, पूरे वॉलेट की रिकवरी करना नहीं। [1] [4]

हस्ताक्षर जोड़ने का मतलब यह नहीं कि नेटवर्क को भुगतान की जानकारी मिल गई। अंतिम ट्रांज़ैक्शन तैयार होने के बाद किसी को उसे प्रसारित करना होता है। नोड वह कंप्यूटर है जिस पर Bitcoin की ट्रांज़ैक्शन और ब्लॉक जाँचने वाला सॉफ़्टवेयर चलता है। फिर नोड नेटवर्क के नियमों और अपनी ट्रांज़ैक्शन स्वीकार करने की नीति के अनुसार उसे जाँचता है; कोई माइनर उसे ब्लॉक में शामिल कर सकता है। हस्ताक्षर की कमी, पहले ही खर्च हो चुका इनपुट और अपर्याप्त शुल्क अलग समस्याएँ हैं। केवल ‘पूरा करें’ बटन इन्हें नहीं सुलझाता। इस प्रक्रिया पर भरोसा करने से पहले ऐप, डिवाइस और वॉलेट के प्रकार के अपने खास संयोजन को आज़माएँ। Bitcoin Core 29 में analyzepsbt गायब डेटा या हस्ताक्षर दिखा सकता है। finalizepsbt पूरी ट्रांज़ैक्शन बना सकता है; उसे भेजना अगला चरण है। सफलतापूर्वक पूरा हो जाना भी ब्लॉक में पुष्टि मिलना नहीं है। [4] [5] [6]

BIP 174 PSBT को बाइनरी प्रारूप के रूप में परिभाषित करता है, जिसमें जानकारी key–value जोड़ों में रखी जाती है। यहाँ key का अर्थ फ़ील्ड का पहचानकर्ता है, उसे Bitcoin की निजी कुंजी न समझें। एक global map पूरी ट्रांज़ैक्शन को बताता है, input maps खर्च किए जा रहे पुराने आउटपुट को, और output maps बनने वाले नए आउटपुट को बताते हैं। प्रस्ताव के साथ इनमें scripts, यानी खर्च करने की शर्तें, कुंजियों के मूल की जानकारी और आंशिक हस्ताक्षर भी हो सकते हैं। डेटा .psbt फ़ाइल में रखा जा सकता है या Base64 में दिखाया जा सकता है, जो बाइनरी डेटा को पाठ के रूप में लिखने की एन्कोडिंग है। Base64 एन्क्रिप्शन नहीं है। PSBT Bitcoin के नियमों में कोई नई तरह की ट्रांज़ैक्शन भी नहीं है: नेटवर्क को अंतिम ट्रांज़ैक्शन मिलती है, पूरी कार्यशील फ़ाइल नहीं। [1]

नेटवर्क से अलग डिवाइस को भी पता होना चाहिए कि उससे किस बात पर हस्ताक्षर माँगे जा रहे हैं। UTXO पहले बना हुआ ऐसा आउटपुट है जो अभी खर्च नहीं हुआ; नया इनपुट उसी का संदर्भ देता है। Non-Witness UTXO पिछली पूरी ट्रांज़ैक्शन ला सकता है, जबकि Witness UTXO खास आउटपुट को उसकी रकम और शर्तों के साथ लाता है। कौन-से प्रमाण चाहिए, यह इनपुट के प्रकार और हस्ताक्षर सॉफ़्टवेयर के नियमों पर निर्भर है। जाँच में पिछली ट्रांज़ैक्शन का पहचानकर्ता और संबंधित आउटपुट, scripts के बीच संबंध तथा स्वीकार्य sighash शामिल हैं। रकम न होने को शून्य शुल्क और प्रमाण की कमी को सफल सत्यापन नहीं मानना चाहिए। जानकारी अनुमान से भरने के बजाय भरोसेमंद प्रक्रिया से पूरी करें। [1]

PSBT का संस्करण प्रारूप की संरचना बताता है, हस्ताक्षरों की संख्या या Bitcoin ट्रांज़ैक्शन का अपना संस्करण नहीं। PSBT v0 बिना हस्ताक्षर वाली ट्रांज़ैक्शन को global फ़ील्ड में रखता है; PSBT का संस्करण न दिया हो तो उसका अर्थ v0 होता है। BIP 370 में परिभाषित PSBT v2 उस फ़ील्ड को शामिल नहीं करता और ट्रांज़ैक्शन बनाने की जानकारी अलग-अलग फ़ील्ड में रखता है। इससे अनुमत बदलावों और मौजूदा हस्ताक्षरों की सीमाओं के भीतर इनपुट तथा आउटपुट जोड़ना संभव होता है। इसका अर्थ यह नहीं कि हस्ताक्षरित भुगतान मनमाने ढंग से बदला जा सकता है। दोनों पक्षों को इस्तेमाल किया गया संस्करण समझना चाहिए; सिर्फ़ ‘PSBT समर्थित है’ कहना संगतता की पर्याप्त जानकारी नहीं देता। [2]

BIP 371 Taproot के लिए आवश्यक जानकारी जोड़ता है, जिसमें हस्ताक्षर, scripts और कुंजियों के मूल की जानकारी शामिल है। ये फ़ील्ड PSBT v0 और PSBT v2 दोनों के साथ काम करते हैं। इसलिए कोई वॉलेट पहले प्रारूप में Taproot संभाल सकता है, भले ही दूसरे को न संभाले। इसी तरह केवल v2 समर्थन का मतलब हर Taproot स्थिति का समर्थन नहीं है। key path से हस्ताक्षर करना और script की शाखा के जरिए खर्च करना, Taproot आउटपुट की शर्तें पूरी करने के अलग तरीके हैं। उपयोगकर्ता के लिए सवाल सीधा है: क्या मेरा खास सेटअप उस भुगतान को संभाल सकता है जिस पर मैं हस्ताक्षर करना चाहता हूँ? इसका जवाब दस्तावेज़ और आज़माई गई प्रक्रिया देते हैं, सुविधाओं की सूची में लिखा संक्षिप्त नाम नहीं। [3]

पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें Multisig, Hardware Wallet, Cold Storage, Output Descriptor. इस प्रविष्टि का उल्लेख यहाँ भी है Multisig, Cold Storage, Hardware Wallet, Watch-only Wallet.

DOC · 001BIP 174 — PSBTविनिर्देश DOC · 002BIP 370 — PSBT Version 2विनिर्देश DOC · 003BIP 371 — Taproot Fields for PSBTविनिर्देश DOC · 004Bitcoin Core — PSBT Howtoदस्तावेज़ DOC · 005Bitcoin Core 29 RPC — analyzepsbtदस्तावेज़ DOC · 006Bitcoin Core 29 RPC — finalizepsbtदस्तावेज़
समीक्षा की गई: स्रोत पहले · यह निवेश सलाह नहीं है