Randstorm / BitcoinJS
Randstorm: पुराने Bitcoin वॉलेट्स के पीछे ब्राउज़र दोष
किन सॉफ़्टवेयर के बारे में प्रमाण उपलब्ध हैं, कौन से संस्करण मायने रखते हैं, और पुराने वॉलेट की असुरक्षित कुंजियों का दोबारा इस्तेमाल किए बिना उससे कैसे बाहर निकलें।
सामग्री सूची
असल में क्या गलत हुआ
Randstorm पुराने ब्राउज़र सॉफ़्टवेयर में कुंजी निर्माण से संबंधित है। JSBN का SecureRandom() अपर्याप्त एंट्रॉपी स्रोत को एक पूर्वानुमेय ब्राउज़र Math.random() के साथ मिला सकता था। Unciphered ने 14 नवंबर 2023 को इस समस्या का खुलासा किया और 2011–2015 में बनाए गए कमजोर वॉलेट्स की रिपोर्ट की। यह एक देखी गई अवधि है, न कि उन वर्षों के हर वॉलेट पर फैसला।
SecureRandom नाम सुरक्षा की गारंटी नहीं है। Coinpunk के निरीक्षित स्रोत में, फॉलबैक Math.random() का उपयोग करके 256-बाइट पूल भरता है, घड़ी को मिलाता है और Arcfour जनरेटर को खिलाता है। एक बड़ा पूल अपनी इनपुट की कमी वाली अनिश्चितता प्रदान नहीं कर सकता। उसी स्रोत में मजबूत Web Crypto और Node.js पथ भी हैं: फॉलबैक तक पहुंचना महत्वपूर्ण भेद है।
यह निजी कुंजी चयन में एक दोष है। यह Bitcoin के हस्ताक्षर सत्यापन का उल्लंघन नहीं है। एक पुराने बैकअप को नए ऐप में खोलना उन कुंजियों को संरक्षित करता है; स्वतंत्र रूप से उत्पन्न कुंजियों में धन स्थानांतरित करना खर्च करने के अधिकार को बदलता है।
वॉलेट्स, संस्करण और साक्ष्य की सीमाएं
एक लाइब्रेरी संस्करण को वॉलेट संस्करण से अलग पढ़ें। होस्ट की गई वेबसाइट के लिए, कुंजी निर्माण के दिन पर परोसा गया कोड आज के ऐप संस्करण से अधिक महत्वपूर्ण होता है। तालिका एक दस्तावेजीकृत घटना को स्रोत-कोड निष्कर्षों से अलग करती है।
| परियोजना | संस्करण या अवधि | यह क्या स्थापित करता है |
|---|---|---|
| BitcoinJS / bitcoinjs-lib | 0.1.3 | खुलासे में उदाहरण के रूप में नामित। JSBN मार्च 2014 तक उपयोग किया गया था; यह हर व्युत्पन्न के लिए पूर्ण प्रभावित-संस्करण सीमा स्थापित नहीं करता। |
| Blockchain.info Blockchain.com | ऐतिहासिक वेब वॉलेट; कोई संख्याबद्ध प्रभावित सीमा सत्यापित नहीं | Unciphered की जांच की शुरुआत एक ग्राहक वॉलेट से हुई। यह हर Blockchain.com वॉलेट या वर्तमान ऐप को दोषी नहीं ठहराता। |
| bitaddress.org | 2.6.5 · 2.8.0 2013-12-01 · 2014-01-18 | 2.6.5 ने JSBN को 1.4 में अपडेट किया। 2.8.0 ने पूरे पूल के Web Crypto प्रारंभ और अनिवार्य माउस/कीबोर्ड एंट्रॉपी जोड़ी। ये दस्तावेजीकृत परिवर्तन हैं, न कि सिद्ध “सभी पुराने संस्करण कमजोर / सभी नए संस्करण सुरक्षित” सीमा। |
| Coinpunk | 0.2.1 63ca325be538 | निरीक्षित रिपॉजिटरी स्नैपशॉट स्वयं को 0.2.1 लेबल करता है और Math.random()/Arcfour फॉलबैक के साथ मजबूत पथ रखता है। यह कोड निष्कर्ष है, यह प्रमाण नहीं कि हर तैनाती ने फॉलबैक का उपयोग किया। विकास बंद हो चुका है। |
यह अवलोकन यहां सत्यापित किए गए कार्यान्वयनों तक सीमित है; यह प्रभावित वॉलेटों की पूरी सूची नहीं है। किसी उत्पाद का सूची में न होना यह साबित नहीं करता कि वह अप्रभावित है। केवल पुरानी निर्माण तिथि या 1 से शुरू होने वाला पता कुंजी बनाने वाले जनरेटर की पहचान के लिए पर्याप्त नहीं है।
गंतव्य को एक बार तैयार करें
नीचे तीन मार्ग एक नए Electrum Desktop वॉलेट को गंतव्य के रूप में उपयोग करते हैं। मेनू नाम अंग्रेज़ी 4.8.2 डेस्कटॉप इंटरफ़ेस के लिए हैं जो इस लेख के लिए जांचा गया। आधिकारिक साइट से वर्तमान रिलीज़ डाउनलोड करें; 4.8.2 निर्देशों के लिए संदर्भ है, स्थायी न्यूनतम संस्करण नहीं।
हम नए गंतव्य के रूप में अनुशंसित हार्डवेयर वॉलेट्स →
Electrum — आधिकारिक डाउनलोड और हस्ताक्षर जांच ↗
- एक विश्वसनीय, अपडेटेड कंप्यूटर पर, अपने ऑपरेटिंग सिस्टम के लिए Electrum डाउनलोड करें। आधिकारिक हस्ताक्षर निर्देशों का पालन करें और स्थापना से पहले स्वतंत्र रूप से साइनर फिंगरप्रिंट जांचें।
- File → New/Restore चुनें, वॉलेट का नाम randstorm-new रखें, फिर Standard wallet → Create a new seed चुनें। नए शब्दों को कागज पर लिखें और पुष्टि करें, और वॉलेट-फ़ाइल पासवर्ड सेट करें। पुराना सीक्रेट इम्पोर्ट न करें।
- जमा करने से पहले, File → New/Restore → Standard wallet → I already have a seed के साथ केवल NEW पेपर बैकअप का उपयोग करके recovery-check बनाएं। दोनों वॉलेट्स में View → Addresses और Addresses टैब के माध्यम से पहला प्राप्त पता तुलना करें। इस जांच के दौरान दोनों वॉलेट रखें।
- randstorm-new में, Receive → Request (यदि Lightning सक्षम है तो Onchain) का उपयोग करें। Bitcoin पता कॉपी करें। नीचे वॉलेट-विशिष्ट मार्ग को इस पते पर भेजना होगा, शुल्क और पूर्ण गंतव्य अनुमोदन से पहले जांचें।
Blockchain.info: पुराने पतों वाले वॉलेट का उपयोग करें
यह मार्ग एक ऐतिहासिक Blockchain.info वॉलेट के लिए है जिसे आप अभी भी Blockchain.com के माध्यम से एक्सेस कर सकते हैं। वर्तमान भेजने के निर्देश आज के वेब इंटरफ़ेस का वर्णन करते हैं, 2012 के अनसत्यापित स्क्रीन का नहीं। Trading Account बैलेंस एक अलग उत्पाद है।
- मूल एन्क्रिप्टेड बैकअप और लॉगिन रिकॉर्ड रखें। वेब वॉलेट में, Settings → Wallets & Addresses → Bitcoin में अलग से आयात किए गए पतों की जांच करें। अपने ज्ञात पुराने सार्वजनिक पतों को प्रदर्शित होल्डिंग्स से मिलाएं; नया रिकवरी वाक्यांश आयातित कुंजियों को कवर करने का अनुमान नहीं होना चाहिए।
- Wallet डैशबोर्ड में Send खोलें, Bitcoin चुनें और नए Electrum पते को बाहरी गंतव्य के रूप में दर्ज करें। छोटी राशि से शुरू करें, Continue चुनें, पता, राशि और शुल्क की समीक्षा करें, फिर Send करें।
- Electrum के History में पुष्टि की प्रतीक्षा करें। फिर शेष खर्च योग्य बैलेंस भेजें, शुल्क का ध्यान रखते हुए। प्रत्येक अलग से फंडेड आयातित पते की जांच करें; सफल परीक्षण अकेले पुराने वॉलेट को खाली नहीं करता। सभी सेवानिवृत्त प्राप्त पतों का उपयोग बंद करें।
bitaddress.org: Sweep के साथ पेपर वॉलेट ट्रांसफर करें
एक bitaddress प्रिंटआउट आमतौर पर एक कुंजी का प्रतिनिधित्व करता है, आधुनिक रिकवरी वाक्यांश नहीं। कागज और कोई मूल HTML फ़ाइल सुरक्षित रखें: इसका फ़ाइलनाम या फुटर रिलीज़ की पहचान कर सकता है। संस्करण इतिहास सेटअप पुनर्निर्माण में मदद करता है; यह व्यक्तिगत कुंजी प्रमाणित नहीं करता।
- निजी कुंजी पहचानें, सार्वजनिक प्राप्त पता नहीं। मुख्यनेट WIF आमतौर पर 5, K या L से शुरू होता है; BIP38-एन्क्रिप्टेड कुंजी 6P से शुरू होती है। उपसर्ग केवल प्रारूप संकेत है। मूल संपीड़न रूप रखें क्योंकि यह संबद्ध पता निर्धारित करता है।
- BIP38 के लिए, पहले आधिकारिक bitaddress रिपॉजिटरी से सत्यापित प्रति का उपयोग करके स्थानीय और ऑफ़लाइन डिक्रिप्ट करें: Wallet Details → एन्क्रिप्टेड कुंजी दर्ज करें → View Details → पासफ़्रेज़ दर्ज करें → Decrypt BIP38। मेल खाते WIF को आगे बढ़ाने से पहले परिणामस्वरूप पते की तुलना कागज से करें। कभी भी कुंजी लाइव वेबसाइट पर न डालें या इस पुराने टूल से प्रतिस्थापन वॉलेट न बनाएं।
- NEW Electrum गंतव्य वॉलेट में, Wallet → Private keys → Sweep खोलें। केवल इस स्थानीय संवाद में अनएन्क्रिप्टेड WIF दर्ज करें। जांचें कि गंतव्य randstorm-new का है, फिर प्रसारण से पहले लेनदेन और शुल्क की समीक्षा करें।
- Sweep एक लेनदेन में प्रदान की गई कुंजी द्वारा नियंत्रित खर्च योग्य बैलेंस स्थानांतरित करता है। यह आयात नहीं है और ऊपर दिए गए छोटे परीक्षण अनुक्रम से अलग है। अन्य फंडेड पेपर-वॉलेट कुंजियों के लिए दोहराएं और सभी अपेक्षित प्राप्तियों की पुष्टि तक मूल रखें।
bitaddress.org — आधिकारिक रिपॉजिटरी और हस्ताक्षरित फ़ाइलें ↗
Coinpunk: पुराने सर्वर को छूने से पहले बैकअप सुरक्षित करें
Coinpunk स्व-होस्टेड था, इसलिए कोई सार्वभौमिक वर्तमान लॉगिन साइट या रिकवरी सेवा नहीं है। ये लेबल रिपॉजिटरी स्नैपशॉट 63ca325be538 से हैं, जिसका package.json संस्करण 0.2.1 घोषित करता है। संशोधित तैनाती भिन्न हो सकती है।
- यदि आपकी मूल विश्वसनीय स्थापना अभी भी काम करती है, तो Backup → Download खोलें और एन्क्रिप्टेड वॉलेट की कई प्रतियां रखें। लॉगिन पहचानकर्ता, पासवर्ड और सर्वर बैकअप भी सुरक्षित रखें। केवल जीवित उदाहरण को पहले अपडेट या पुनर्स्थापित न करें।
- ऐतिहासिक Send Bitcoins फ़ॉर्म में Bitcoin address to send to, Amount और प्रदर्शित शुल्क होता है। इसे केवल तभी उपयोग करें जब मूल उदाहरण अभी भी विश्वसनीय रूप से काम करता हो और गंतव्य पता समर्थित हो। इस पुराने सॉफ़्टवेयर में bc1 पता जबरदस्ती न डालें; निरीक्षित पता पार्सर Base58Check का उपयोग करता है।
- असंगत गंतव्य या ऑफ़लाइन सर्वर के लिए, बैकअप सुरक्षित रखें और स्थानीय रूप से इसकी कुंजियों को पुनर्प्राप्त करें जो इस Coinpunk संस्करण को समझता हो। वॉलेट मॉडल keyPairs संग्रहीत करता है, जिसमें परिवर्तन कुंजियाँ भी शामिल हैं, एक एन्क्रिप्टेड पेलोड के अंदर। यह Electrum सीड या Bitcoin Core wallet.dat नहीं है; फ़ाइल का नाम बदलना इसे परिवर्तित नहीं कर सकता।
- एक बार पुनर्प्राप्त WIF कुंजियाँ मूल पतों से मेल खाने के बाद, ऊपर दिए गए Electrum के Sweep प्रक्रिया का उपयोग प्रत्येक फंडेड कुंजी के लिए करें। पूर्ण सेट की जांच करें, जिसमें परिवर्तन पते भी शामिल हैं। गंतव्य प्राप्तियों के अपेक्षित बैलेंस से मेल खाने तक एन्क्रिप्टेड बैकअप और उसका पासवर्ड रखें।
हम नए गंतव्य के रूप में अनुशंसित हार्डवेयर वॉलेट्स
इस माइग्रेशन के लिए, यदि आप भौतिक बटन पसंद करते हैं तो Trezor Safe 3 की सिफारिश करते हैं, या यदि बड़ा टचस्क्रीन पता जांच को आसान बनाता है तो Trezor Safe 5। दोनों नए हस्ताक्षर कुंजियों को अलग डिवाइस पर रख सकते हैं। एक खरीदना पुराने कुंजी को ठीक नहीं करता: डिवाइस पर पूरी तरह नया वॉलेट बनाएं।
Amazon लिंक क्षेत्रीय उत्पाद खोज खोलते हैं, सत्यापित विक्रेता सूची नहीं। विक्रेता की जांच Trezor के आधिकारिक Amazon स्टोरफ्रंट या अधिकृत पुनर्विक्रेताओं से करें। सेटअप के दौरान डिवाइस प्रमाणीकरण जांच का उपयोग करें; कभी भी आपूर्ति किए गए, पूर्व-लिखित वॉलेट बैकअप का उपयोग न करें।
- trezor.io/start पर शुरू करें और Trezor Suite इंस्टॉल करें। डिवाइस-विशिष्ट सेटअप और प्रमाणीकरण जांच का पालन करें, Create a new wallet चुनें और डिवाइस पर बैकअप जांच पूरी करें। बैकअप ऑफ़लाइन रखें। ऊपर दिए गए उदाहरण से पुराना वॉलेट या सॉफ़्टवेयर-वॉलेट सीड इस डिवाइस पर पुनर्स्थापित न करें।
- सामान्य भेजने के लिए, Trezor Suite में Bitcoin खाता चुनें, Receive चुनें और जुड़े डिवाइस पर पूरा पता सत्यापित करें। इस पते का उपयोग Blockchain.com मार्ग में सॉफ़्टवेयर-वॉलेट पते के बजाय करें। प्राप्त ट्रांसफ़र और उसकी पुष्टियों को Electrum के History के बजाय Trezor Suite में जांचें।
- Electrum Sweep मार्ग के लिए, नए कॉन्फ़िगर किए गए Trezor को कनेक्ट करें और File → New/Restore → Standard wallet → Use a hardware device के साथ Electrum वॉलेट बनाएं। Trezor की Electrum गाइड का पालन करें और मेल खाते Bitcoin खाता और पता प्रकार का उपयोग करें। Trezor पर प्राप्त पता सत्यापित करें, फिर इसे sweep गंतव्य के रूप में उपयोग करें। Sweep में केवल OLD WIF कुंजी दर्ज करें; कभी भी Trezor बैकअप शब्द Electrum या वेबसाइट में टाइप न करें।
स्रोत और दायरा
यह केस स्टडी ऐतिहासिक ब्राउज़र कार्यान्वयन और उनके विभिन्न माइग्रेशन मार्गों को कवर करती है। एंट्रॉपी, सीड वाक्यांश और हार्डवेयर वॉलेट्स के व्यापक संबंध के लिए पृष्ठभूमि लेख जारी रखें।
पृष्ठभूमि: कमजोर वॉलेट सीड कैसे उत्पन्न होते हैं →
- Unciphered — Randstorm खुलासा, 14 नवंबर 2023
- bitaddress.org — हस्ताक्षरित संस्करण इतिहास
- Coinpunk — निरीक्षित RNG और रिपॉजिटरी स्नैपशॉट · package.json · README
- Electrum — रिकवरी, स्वीपिंग और गोपनीयता FAQ
- Electrum 4.8.2 — डेस्कटॉप वॉलेट विज़ार्ड · Desktop menus
- Blockchain.com — आयातित Bitcoin पते
- bitaddress.org — BIP38 और Wallet Details कार्यान्वयन
- Coinpunk — एन्क्रिप्टेड वॉलेट मॉडल और परिवर्तन कुंजियाँ · Backup · Send
- Trezor Safe 3
- Trezor Safe 5
- Trezor Suite — trezor.io/start
- Trezor — आधिकारिक स्टोर और अधिकृत पुनर्विक्रेता
- Trezor — दूसरे वॉलेट से माइग्रेट करना
- Trezor Suite — पता प्राप्त करना और सत्यापित करना
19 सितंबर 2026 को प्राथमिक दस्तावेज़ और स्रोत कोड के खिलाफ जांचा गया। परीक्षण में कोई वास्तविक धन या निजी कुंजी उपयोग नहीं हुई। तालिका आपकी वॉलेट की व्यापक सूची या निदान नहीं है।
सामान्य प्रश्न
क्या BitcoinJS 0.1.3 मेरी वॉलेट संस्करण पहचानता है?
नहीं। यह Randstorm खुलासे में उद्धृत एक लाइब्रेरी उदाहरण की पहचान करता है। एक वॉलेट उस लाइब्रेरी को बंडल या संशोधित कर सकता है बिना उपयोगकर्ता को इसका संस्करण दिखाए। मूल वॉलेट निर्माण और ब्राउज़र वातावरण अभी भी पहचानने की आवश्यकता है।
क्या bitaddress.org 2.8.0 प्रमाणित करता है कि मेरा पेपर वॉलेट सुरक्षित है?
चेंजलॉग 2.8.0 में मजबूत एंट्रॉपी संग्रह को दस्तावेजीकृत करता है। यह प्रमाणित नहीं करता कि व्यक्तिगत कुंजी कैसे उत्पन्न हुई, कौन से ब्राउज़र फीचर उपलब्ध थे, या फ़ाइल संशोधित हुई या नहीं। इसलिए लेख इसे एक दस्तावेजीकृत परिवर्तन के रूप में मानता है, सार्वभौमिक सुरक्षा सीमा के रूप में नहीं।
पेपर-वॉलेट मार्ग Sweep का उपयोग क्यों करता है बजाय Import के?
Import मूल निजी कुंजी को उपयोग में रखता है। Sweep एक लेनदेन बनाता है जो खर्च योग्य धन को तैयार गंतव्य वॉलेट में स्थानांतरित करता है। नया वॉलेट स्वतंत्र रूप से उत्पन्न कुंजियाँ रखता है, और प्रसारण से पहले गंतव्य और शुल्क जांचे जाते हैं।
क्या Electrum सीधे Coinpunk बैकअप खोल सकता है?
निरीक्षित Coinpunk संस्करण एक एन्क्रिप्टेड वॉलेट पेलोड संग्रहीत करता है, Electrum सीड नहीं। बैकअप, लॉगिन पहचानकर्ता और पासवर्ड सुरक्षित रखें। कुंजियों को संस्करण-विशिष्ट विशेषज्ञता के साथ स्थानीय रूप से पुनर्प्राप्त करें, फिर उन्हें मूल पतों से मिलाएं और फिर sweep मार्ग का उपयोग करें।