HD Wallet एक गुप्त शुरुआती आधार, यानी सीड, से कई संबंधित कुंजियाँ निकालता है। निजी कुंजियाँ भुगतान पर हस्ताक्षर करती हैं और वॉलेट उनकी संबंधित सार्वजनिक कुंजियों से प्राप्ति के पते बनाता है। इसलिए हर पते का अलग बैकअप बनाए बिना नए पते इस्तेमाल किए जा सकते हैं।
ऐलिस प्राप्ति की स्क्रीन खोलती है और वॉलेट एक पता दिखाता है। उस पर उसे 10 000 satoshi मिलते हैं; satoshi बिटकॉइन की छोटी इकाई है। अगले भुगतान के लिए ऐप दूसरा पता देता है, जिस पर 20 000 satoshi आते हैं। यदि यही उसकी अभी तक खर्च न की गई प्राप्तियाँ हैं, तो वॉलेट कुल 30 000 satoshi दिखाएगा। नए पते से कोई अलग खाता नहीं बना और पुराने पैसे अपने आप कहीं गए भी नहीं। ऐप दोनों प्राप्तियों की कुंजियाँ संभाल रहा है। HD Wallet इसे सुविधाजनक बनाता है। HD का पूरा नाम Hierarchical Deterministic है: कुंजियाँ शाखाओं वाली संरचना बनाती हैं, इसलिए hierarchical; और समान सीड तथा पथ से रिकवरी में भी समान कुंजियाँ बनती हैं, इसलिए deterministic। पथ संख्याओं का क्रम है जो प्रोग्राम को बताता है कि किस शाखा की कौन-सी कुंजी निकालनी है। रोज़मर्रा में भुगतान लेते समय ऐलिस को इससे जूझना नहीं पड़ता, लेकिन रिकवरी में सही पथ इस्तेमाल होना चाहिए। शुरुआती गोपनीय जानकारी का एक बैकअप भविष्य के पते भी समेट सकता है; फिर भी वॉलेट की सेटिंग सुरक्षित रखना जरूरी है। नए पते पुराने पते का दोबारा इस्तेमाल टालने में मदद करते हैं, पर अपने आप गुमनामी की गारंटी नहीं देते। [1] [12]
विस्तारित सार्वजनिक कुंजी, जिसे आम तौर पर xpub कहते हैं, इस संरचना के एक हिस्से की सार्वजनिक कुंजियाँ निकालने देती है। इसमें भुगतान पर हस्ताक्षर करने वाली निजी कुंजियाँ नहीं होतीं। इसलिए अकेले xpub से राशि खर्च नहीं की जा सकती; वास्तविक पते बनाने के लिए ऐप को उनका प्रारूप भी जानना चाहिए। उपयुक्त xpub वाला watch-only वॉलेट हस्ताक्षर चाबियों के बिना पते बना सकता है और भुगतान देख सकता है। लेकिन xpub लीक होने से उस शाखा के पुराने और भविष्य के पते, बैलेंस और लेनदेन आपस में जुड़ सकते हैं। केवल जरूरी शाखा साझा करें। सही xpub भी संक्रमित कंप्यूटर को किसी और का पता दिखाने से नहीं रोकता। प्राप्ति का पता ऐसे भरोसेमंद हस्ताक्षर उपकरण पर जाँचें जो उस वॉलेट को जानता हो। [1] [12] [14]
दुकान हर ऑर्डर के लिए अलग पता बना सकती है। वेबसाइट को पते चाहिए, लेकिन कमाई खर्च करने वाली चाबियाँ नहीं होनी चाहिए। BIP32 इस प्राप्ति शाखा को बाकी वॉलेट से अलग करता है। प्रस्ताव Pieter Wuille ने लिखा; इसकी आवंटन तिथि 11 फ़रवरी 2012 है। यह वॉलेट का मानक है, सहमति नियम नहीं। BIP39 बैकअप शब्द, स्क्रिप्ट के प्रकार और पूरी रिकवरी प्रक्रिया अन्य परतों का विषय हैं। [1] [11] [12]
BIP32 चाबी में 256-बिट chain code जोड़ता है, यानी आगे की व्युत्पत्ति के लिए 32 बाइट। निजी रूप में secp256k1 का अदिश k और chain code c होता है; सार्वजनिक रूप K = point(k) और वही c इस्तेमाल करता है। मुख्य चाबी HMAC-SHA512 से बनती है, जिसमें फ़ंक्शन की कुंजी ठीक “Bitcoin seed” पाठ और डेटा सीड होता है। बाएँ 32 बाइट निजी चाबी के उम्मीदवार और दाएँ 32 बाइट chain code हैं। शून्य या वक्र के क्रम n से कम न होने वाला मान मुख्य चाबी को अमान्य बनाता है। [1]
व्युत्पत्ति गणना है, सहेजी हुई सूची में खोज नहीं। व्युत्पत्ति के दो तरीके हैं: सामान्य और hardened। सामान्य तरीके में जनक की विस्तारित सार्वजनिक कुंजी से आगे की सार्वजनिक कुंजियाँ निकाली जा सकती हैं; hardened चरण के लिए जनक की विस्तारित निजी कुंजी चाहिए। CKDpriv, I = HMAC-SHA512(cpar, data) की गणना करता है, उसे IL और IR में बाँटता है और parse256(IL) को जनक निजी चाबी में जोड़कर modulo n लेता है। IR नया chain code बनता है। सामान्य शाखा serP(Kpar) || ser32(i) और hardened शाखा 0x00 || ser256(kpar) || ser32(i) इस्तेमाल करती है, जहाँ i ≥ 2^31 है। CKDpub केवल सामान्य सार्वजनिक शाखाएँ बनाता है: Kpar में point(parse256(IL)) जोड़ता है। शाखा का नंबर बदलने से आगे की चाबियाँ बदल जाती हैं। [1]
जब तक पथ hardened चरण पार नहीं करता, xpub से सार्वजनिक चाबियाँ निकाली जा सकती हैं। लेकिन इससे एक जोखिम भी जुड़ा है: जनक का xpub और उसके सामान्य वंशज की लीक हुई निजी चाबी मिलकर जनक की निजी चाबी की गणना संभव बनाते हैं। उसकी अन्य शाखाएँ भी जोखिम में आ जाती हैं। Hardened इस उलटी गणना को रोकता है, लेकिन चोरी हुए सीड, कमजोर यादृच्छिकता या दुर्भावनापूर्ण लेनदेन को गलत मंजूरी देने से नहीं बचाता। [1]
mainnet में मानक सार्वजनिक लेखन xpub और निजी लेखन xprv से शुरू होता है; उनके संस्करण 0x0488B21E और 0x0488ADE4 हैं। Base58Check से पहले रिकॉर्ड 78 बाइट का है: संस्करण 4, गहराई 1, जनक का फिंगरप्रिंट 4, वंशज नंबर 4, chain code 32 और चाबी डेटा 33। परिणाम 111 अक्षरों का होता है। छोटा फिंगरप्रिंट चाबियाँ मिलाने में मदद करता है, पहचान का प्रमाण नहीं है। SLIP132 के ypub/zpub उपसर्ग कभी स्क्रिप्ट का प्रकार बताते हैं; सिर्फ उपसर्ग बदलने से चाबियाँ या वॉलेट के नियम नहीं बदलते। [1] [9]
BIP43 ने पहला hardened स्तर उपयोग के उद्देश्य के लिए रखा। BIP44 में m / 44' / coin_type' / account' / change / address_index है। खाते के बाद प्राप्ति की शाखा 0 या बची राशि लौटाने की शाखा 1 आती है, फिर पते का नंबर। एपोस्ट्रॉफ़ या h का अर्थ इंडेक्स में 2^31 जोड़ना है। BIP44 खोज में gap limit 20 है: लगातार 20 अप्रयुक्त प्राप्ति पते मिलने पर खोज रुकती है। BIP48, Multisig को; BIP84 का उद्देश्य 84', मूल SegWit को; और BIP86 का 86', एक चाबी वाले Taproot को बताता है। ये परंपराएँ सीड में दर्ज नहीं होतीं और नोड इन्हें लागू नहीं करते। [2] [3] [4] [5] [6]
चाबियाँ अकेले यह नहीं बतातीं कि सिक्कों को कौन-सी स्क्रिप्ट सुरक्षित रखती है। Output Descriptor में चाबियों का स्रोत, पथ, wpkh() जैसी संरचना, जरूरी हस्ताक्षरों की संख्या, दूसरे Multisig सहभागी और चेकसम दर्ज हो सकते हैं। Multipath descriptor प्राप्ति और बची राशि लौटाने की शाखाएँ साथ बता सकता है। एक सहभागी का सीड दूसरे xpub या साझा नियम नहीं बनाता। सत्यापित सार्वजनिक descriptor या सेटिंग के निर्यात का भी बैकअप रखें और उसकी गोपनीयता बचाएँ। निर्यात में निजी चाबियाँ हों तो उसे गोपनीय जानकारी मानकर सुरक्षित रखें। [7] [8] [10] [13]
सीड से चाबियाँ फिर बन सकती हैं, लेकिन ऐप को सीड का प्रारूप, इस्तेमाल की गई BIP39 passphrase, नेटवर्क, स्क्रिप्ट प्रकार, coin type, खाते, दोनों शाखाएँ और खोज का दायरा चाहिए। Multisig में साझा सेटिंग भी जरूरी है। रिकवरी के बाद शून्य बैलेंस का मतलब हमेशा सिक्के खोना नहीं; कारण अलग पथ हो सकता है। भरोसेमंद उपकरण पर सुरक्षित परीक्षण में सही UTXO, यानी अभी तक खर्च न किए गए लेनदेन आउटपुट, ढूँढ़ें और हस्ताक्षर की जाँच करें। असली सीड या बैकअप शब्द कभी वेब टूल या सामान्य ऑनलाइन कंप्यूटर में न डालें। [3] [7] [10] [11]
BIP32 दुर्लभ अमान्य परिणाम भी संभालता है: parse256(IL) ≥ n, निकली निजी चाबी का शून्य होना या सार्वजनिक बिंदु का अनंत पर होना। ऐसे वंशज के लिए अगला इंडेक्स आजमाया जाता है। रिकवरी में अक्सर पथ, बची राशि की शाखा या स्क्रिप्ट प्रकार का समर्थन नहीं मिलता। ऐप बदलने से पहले सिक्के मिलने और छोटी परीक्षण राशि भेजने की जाँच करें। नई प्रक्रिया काम करने तक पुराना बैकअप और सेटिंग बनाए रखें। xprv से हस्ताक्षर के लिए जरूरी कुंजियाँ निकाली जा सकती हैं, xpub वित्तीय संबंध उजागर करता है और descriptor वॉलेट की रचना बताता है। [1] [7] [9] [10]
पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें वॉलेट, Seed Phrase, Extended Public Key (xpub), Derivation Path, Gap Limit, Bitcoin. इस प्रविष्टि का उल्लेख यहाँ भी है बिटकॉइन पता, BIP 39, Cold Storage, Watch-only Wallet.