Derivation Path उन सटीक चरणों का क्रम है जिनसे वॉलेट शुरुआती कुंजी से कोई खास कुंजी निकालता है। कंप्यूटर के फोल्डर सोचिए: सही ड्राइव होने पर भी गलत फोल्डर खोलने से सही जगह नहीं पहुँचेंगे। मगर वॉलेट की कुंजियाँ सहेजी हुई फाइलों में खोजी नहीं जातीं, गणित से निकाली जाती हैं। वही शुरुआती जानकारी और वही रास्ता वही परिणाम देते हैं। दूसरा रास्ता उसी वॉलेट के दूसरे हिस्से तक जा सकता है। यह भुगतान का पता, पासवर्ड या बैकअप का विकल्प नहीं है।
अन्ना वॉलेट बहाल कर रही है और प्रोग्राम ऐसा रास्ता पूछ रहा है जिसके बारे में पहले सोचना नहीं पड़ा था। वॉलेट बिटकॉइन पाने और भेजने वाला ऐप या उपकरण है। m/0/7 जटिल लगता है, लेकिन क्रम से पढ़ें: m मुख्य निजी नोड है, जिससे उपकुंजी 0 और फिर उससे उपकुंजी 7 निकाली जाती है। यहाँ नोड कुंजियों के पेड़ की एक जगह है, Bitcoin नेटवर्क का कंप्यूटर नहीं। संख्याएँ इंडेक्स यानी क्रम की जगहें हैं, रकम या लेनदेन नंबर नहीं। BIP 32 मानक विस्तारित कुंजी का उपयोग करता है। उसमें कुंजी के साथ chain code, आगे की कुंजियाँ निकालने के लिए अतिरिक्त डेटा, होता है। इसलिए शुरुआती कुंजी के बिना केवल लिखा हुआ रास्ता भुगतान पर हस्ताक्षर नहीं कर सकता। [1] [10]
m/84'/0'/0'/0/7 लें। m के बाद पहला भाग नेटिव SegWit की BIP 84 व्यवस्था बताता है, जो पते और खर्च की संरचना बनाने का तरीका है। फिर आते हैं Bitcoin mainnet, असली बिटकॉइन वाला मुख्य नेटवर्क, खाता 0, बाहरी प्राप्ति शाखा 0 और इंडेक्स 7। यह आठवें पते की जगह है क्योंकि गिनती शून्य से होती है। खाता धन के समूह अलग करता है और शाखा पतों का उद्देश्य बताती है। BIP 44 व्यवस्था में शाखा 1 अपने बचे हुए पैसे के लिए है, यानी भुगतान के बाद भी भेजने वाले की रहने वाली राशि। पहले तीन चरणों पर अपॉस्ट्रॉफी है और वे hardened हैं; अंतिम दो सामान्य हैं। यह निशान क्या बदलता है? [2] [5]
निजी कुंजी एक गुप्त संख्यात्मक मान है, जिससे वॉलेट पैसे खर्च करने की अनुमति देने वाला डिजिटल हस्ताक्षर बनाता है। Hardened ऐसा व्युत्पादन है जिसके लिए मूल की निजी कुंजी चाहिए। सामान्य चरण में xpub, यानी विस्तारित सार्वजनिक कुंजी, से भी सार्वजनिक उपकुंजी निकाली जा सकती है। सही स्क्रिप्ट प्रकार के साथ इससे पते बनते हैं, पर भुगतान पर हस्ताक्षर करने की शक्ति नहीं मिलती। अकेला xpub hardened चरण पार नहीं कर सकता। BIP 380 के अनुसार 0' और 0h एक ही बात हैं, सामान्य 0 नहीं। तकनीकी पाठकों के लिए: BIP 32, 32-बिट इंडेक्स को सामान्य 0 से 2^31−1 और hardened 2^31 से 2^32−1 में बाँटता है। निशान शून्य को इंडेक्स 2^31 बनाता है। लिखते समय इसे छोड़ने से सिर्फ रूप नहीं, गणना बदलती है। [1] [7] [10]
BIP 43 पहले hardened स्तर को purpose, यानी संरचना का उद्देश्य, कहता है। तय मानों से वॉलेट पहचानता है कि शाखा सामान्यतः कैसे इस्तेमाल होती है। संदर्भ के लिए, 44' पारंपरिक P2PKH है, जिसमें भुगतान सार्वजनिक कुंजी के हैश से सुरक्षित होता है; 49' P2SH-P2WPKH है, अनुकूलता के लिए पुराने आवरण में SegWit; 84' नेटिव P2WPKH है; और 86' single-key P2TR है, एक आंतरिक कुंजी वाला Taproot ढाँचा। ये पैसे खर्च करने की शर्तें बनाने के अलग तरीके हैं। संख्या अकेले रास्ते को सही स्क्रिप्ट में नहीं बदलती और नेटवर्क की सर्वसम्मति से उसे लागू नहीं करती। प्रोग्राम को सही आउटपुट वास्तव में बनाना होता है। हर वॉलेट इन परंपराओं का उपयोग भी नहीं करता। [3] [2] [4] [5] [6]
अन्ना आने वाले भुगतान देखने के लिए पूरे वॉलेट के बजाय सिर्फ एक खाते का xpub जोड़ सकती है। अगर वह m/84'/0'/0' से आया है तो पहले ही खाते के स्तर पर है। पिछले उदाहरण तक पहुँचने के लिए सापेक्ष प्रत्यय /0/7 ही बचता है। पूरा मूल रास्ता दोबारा जोड़ना गलत जगह से आगे का व्युत्पादन शुरू करेगा; उसके hardened चरण xpub से वैसे भी नहीं चल सकते। निर्यात की गई विस्तारित कुंजी में पेड़ की गहराई और मूल का fingerprint, छोटा पहचान चिह्न, होता है; पिछले सभी चरणों का पूरा रिकॉर्ड नहीं। इसलिए गायब मूल रास्ता हमेशा अकेले xpub को पढ़कर नहीं मिल सकता। [1] [7]
Descriptor कुंजियों और खर्च की शर्तों का विवरण है जिससे प्रोग्राम निगरानी वाले आउटपुट बनाता है। BIP 380 कुंजी से पहले वर्ग कोष्ठकों में उसके मूल का fingerprint और रास्ता लिखने देता है। वे चरण पहले ही पूरे हो चुके हैं। कुंजी के बाद का प्रत्यय आगे का व्युत्पादन बताता है; तारांकन * उपकुंजियों की श्रृंखला दिखा सकता है। Fingerprint चार बाइट का है और उसमें टकराव संभव है: अलग कुंजियों के छोटे पहचान चिह्न एक हो सकते हैं। वह पहचान का प्रमाण या कुंजी का विकल्प नहीं। Bitcoin Core 29.0 नोड के प्रोग्रामिंग इंटरफेस RPC में deriveaddresses देता है। वह descriptor और जरूरत पर दिए गए दायरे से पतों की गणना करता है; केवल यह गणना न शेष जाँचती है, न पैसे भेजती है। [7] [1] [9]
शुरुआती जानकारी के बिना रास्ता अकेले आपकी कुंजियाँ नहीं बना सकता। xpub साझा करना अलग है: पाने वाला उपलब्ध शाखा की सार्वजनिक कुंजियाँ निकाल सकता है और सही स्क्रिप्ट प्रकार से उसके पते देख सकता है। उसे खर्च का अधिकार नहीं मिलता, लेकिन गोपनीयता प्रभावित हो सकती है। BIP 32 एक कम स्पष्ट खतरा भी बताता है: मूल का xpub और सामान्य चरणों से पहुँच सकने वाली लीक हुई निजी उपकुंजी साथ हों तो मूल की विस्तारित निजी कुंजी उजागर हो सकती है। Hardened सीमा मूल तक लौटने के इस खास तरीके को रोकती है। वह लीक हुई कुंजी को अमान्य नहीं करती और उससे नियंत्रित पैसे नहीं बचाती। [1]
बहाली पर लौटें। Seed Phrase बैकअप के शब्द हैं। BIP 39 के अनुसार ये शब्द और वैकल्पिक passphrase मिलकर seed बनाते हैं, कुंजियाँ बनाने का शुरुआती रहस्य। Passphrase अतिरिक्त गुप्त पाठ है, ऐप का सामान्य पासवर्ड नहीं। अलग seed के साथ वही रास्ता अलग कुंजियों तक जाता है। नेटवर्क, खाता, शाखा और स्क्रिप्ट प्रकार भी मेल खाने चाहिए। प्रोग्राम को पर्याप्त पते और इतिहास खोजना चाहिए: Gap Limit अप्रयुक्त पतों की कतार के बाद खोज रोकता है। इसलिए शून्य शेष अपने आप कुंजियाँ खोने का प्रमाण नहीं है। अन्ना परिणाम को ज्ञात प्राप्ति पते और पुराने भुगतानों से मिला सकती है। प्रोग्राम का रास्ता स्वीकार करना केवल बताता है कि वह उसे संसाधित कर सकता है, न कि उसने पूरा मूल वॉलेट खोज लिया है। [8] [2] [7]
पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें HD Wallet, Extended Public Key (xpub), Gap Limit, Output Descriptor, BIP 39, Seed Phrase. इस प्रविष्टि का उल्लेख यहाँ भी है HD Wallet, Watch-only Wallet, Change Address, Extended Public Key (xpub).