क्रिप्टो बग्स का गुप्त इतिहास

क्रिप्टो बग्स का गुप्त इतिहास

अंग्रेज़ी से अनूदित

क्रिप्टोकरेंसी में एक लगभग पवित्र सूत्र है: "डोंट ट्रस्ट, वेरीफाई"। हर उपयोगकर्ता अपना नोड चला सकता है, नेटवर्क के नियम स्वयं जाँच सकता है, और विकास टीम या किसी केंद्रीय प्राधिकारी पर निर्भर नहीं कर सकता।

लेकिन इस सूत्र की एक गंभीर सीमा है। चाहे मैं कितना ही सावधानी से कोड ऑडिट करूं, मैं उस भेद्यता का पता नहीं लगा पाऊंगा जिसे खोजने के लिए असली हैकर की विशेषज्ञता चाहिए — मेरे पास बस वह कौशल नहीं है। तो मुझे फिर भी भरोसा करना पड़ता है: उन लोगों पर भरोसा करना जो मेरी तरफ से सब कुछ जाँचते हैं और मुझे बताते हैं कि उन्होंने क्या पाया।

5 मई 2026 को, Bitcoin Core डेवलपर्स ने भेद्यता CVE-2024-52911 का खुलासा किया। यह Bitcoin Core के 0.14.0 से आगे के संस्करणों को प्रभावित करता था और 29.0 में ठीक किया गया था। यह बग एक माइनर को दूरस्थ रूप से दूसरों के नोड क्रैश करने की अनुमति देता था।

लेकिन यहां सबसे चौंकाने वाली बात यह है कि यह बग कितने समय से जाना हुआ था। Cory Fields ने इसे निजी तौर पर डेवलपर्स को 2 नवंबर, 2024 को रिपोर्ट किया था। 6 नवंबर, 2024 तक, Pieter Wuille ने एक छिपा हुआ फिक्स कमिट कर दिया था। 3 दिसंबर, 2024 को पैच आधिकारिक रिपोजिटरी में बिना किसी सार्वजनिक घोषणा के दिखाई दिया और सिर्फ "छोटे अपडेट" के रूप में वर्णित किया गया। 12 अप्रैल, 2025 को Bitcoin Core 29.0 उस फिक्स के साथ जारी किया गया। सार्वजनिक प्रकटीकरण केवल 5 मई, 2026 को आया, उस समय तक अंतिम संवेदनशील शाखा, 28.x, ने अपना समर्थन समाप्त कर दिया था।

CVE-2024-52911 timeline

मैं इसी तरह के अन्य उदाहरणों से गुजरना चाहता हूँ, और अंततः इस प्रश्न का उत्तर देना चाहता हूँ: क्या वास्तव में अपनी बचत को क्रिप्टोकरेंसी में रखना सुरक्षित है?

बिटकॉइन: कैसे एक डॉस बग नासमझी में मुद्रास्फीति बग बन गया

सितंबर 2018 में, Bitcoin Core ने जल्दबाजी में संस्करण 0.16.3 जारी किया। उपयोगकर्ताओं को बताया गया कि यह एक डिनायल-ऑफ-सर्विस (DoS) भेद्यता को ठीक करता है।

दो दिन बाद, पता चला कि यह केवल कहानी का आधा हिस्सा था। 0.15.x और 0.16.x संस्करणों में वही कमजोरी एक माइनर को बिटकॉइन आपूर्ति बढ़ाने की अनुमति दे सकती थी — प्रभावी रूप से एक ही आउटपुट को एक ही ब्लॉक के भीतर दो बार खर्च करना और अतिरिक्त BTC अपने पास रखना। डेवलपर्स ने स्वीकार किया कि उन्होंने शुरू में सिर्फ कम खतरनाक DoS कंपोनेंट का खुलासा किया था, और मुद्रास्फीति के खतरे का पूरा विवरण जान-बूझकर रोक दिया ताकि माइनर्स, व्यवसायों और अन्य महत्वपूर्ण प्रतिभागियों को अपडेट करने का समय मिल सके।

सबसे बुरे मामले में, यह किसी व्यक्तिगत वॉलेट पर हमला नहीं बल्कि बिटकॉइन के मूल वादे पर हमला होता: निश्चित आपूर्ति। अगर 21 मिलियन नियम क्लाइंट के बग से टूटा जा सकता है, तो बिटकॉइन की पूरी आर्थिक मिथकशास्त्र ध्वस्त हो जाती है।

यह भेद्यता कभी शोषित नहीं हुई। लेकिन CVE-2018-17144 नैतिक दुविधा को खूब दर्शाता है। एक ओर, तत्काल पूर्ण प्रकटीकरण हमलावरों को एक तैयार-निर्मित प्लेबुक दे सकता था। दूसरी ओर, उपयोगकर्ताओं को जरा भी यह बताया नहीं गया था कि अपडेट कितना महत्वपूर्ण था।

Zcash: अदृश्य नक़ली कॉइन्स

Zcash की कहानी और भी परेशान करने वाली थी, क्योंकि यह एक प्राइवेसी कॉइन है जहाँ सब कुछ ब्लॉकचेन पर दिखाई नहीं देता। 2018 में, टीम ने इसके जीरो-नॉलेज प्रूफ़्स के अंतर्निहित क्रिप्टोग्राफी में एक भेद्यता पाई। ठीक होने से पहले, एक हमलावर बिना किसी के पता चले नकली ZEC बना सकता था। एक पारदर्शी चेन के साथ, बैलेंस विश्लेषण के जरिए सिद्धांततः मुद्रास्फीति का पता चलता; प्राइवेसी सिस्टम उस तरह की सत्यापन प्रक्रिया को बहुत कठिन बना देता है।

Zcash ने इस मुद्दे को Sapling अपग्रेड में ठीक किया, जो 28 अक्टूबर, 2018 को सक्रिय हुआ, और सार्वजनिक रूप से केवल महीनों बाद इसका खुलासा किया गया। आधिकारिक प्रकटीकरण में, टीम ने स्पष्ट रूप से लिखा: "ग्यारह महीने पहले हमने एक भेद्यता खोजी" — और स्वीकार किया कि फिक्स से पहले, एक हमलावर बिना पता चले नकली Zcash मिंट कर सकता था।

यहाँ चुप्पी का तर्क समझना आसान है। पैच के ठीक होने से पहले इस दोष का खुलासा करना किसी को Zcash को नष्ट करने की विधि सौंपने जैसा होता। लेकिन दूसरी तरफ स्पष्ट है: लगभग एक साल तक, उपयोगकर्ताओं के पास एक ऐसा संपत्ति था जिसमें सिद्धांततः अदृश्य नकलीकरण संभव था — और उन्हें कुछ पता नहीं था।

यह एक सच्चा विरोधाभास इंगित करता है:

  • कितनी गंभीर भेद्यता है, गोपनीयता का तर्क उतना ही मजबूत होता है।
  • लेकिन गोपनीयता जितनी अधिक होती है, सत्यापन योग्य होने के विचार को उतना ही कमजोर करती है। (यदि मैं यह समझने की क्षमता नहीं रखता कि मैं किस चीज़ को देख रहा हूँ, और योग्य ऑडिटर्स मुझे नहीं बताते कि उन्होंने क्या पाया, तो "सब कुछ सत्यापित करें" का क्या मतलब?)

Monero: गैर-मौजूद DoS के पीछे छुपी सच्चाई

2017 में, Monero को एक समान खतरे का सामना करना पड़ा। टीम ने CryptoNote में एक गंभीर बग पाया, जो Monero और कई अन्य प्राइवेसी कॉइन्स का आधार प्रोटोकॉल है। यह भेद्यता अनगिनत सिक्कों के निर्माण की अनुमति देती थी ऐसे तरीके से जो किसी भी पर्यवेक्षक के लिए अदृश्य होता जो बिल्कुल नहीं जानता कि किस चीज़ की तलाश करनी है।

Monero में पैच को छिपाकर लागू किया गया था। और भी—रिलीज को सार्वजनिक रूप से RingCT डिनायल-ऑफ-सर्विस हमले से सुरक्षा के रूप में समझाया गया था — ऐसा हमला जो, टीम की अपनी बाद की मान्यता के अनुसार, वास्तव में कभी मौजूद ही नहीं था। यह एक कवर स्टोरी थी, जो एक्सचेंजों और माइनिंग पूलों को अपडेट करवाने के लिए बनाई गई थी बिना वास्तविक, मुद्रास्फीति संबंधी जोखिम को प्रकट किए।

Monero के लिए कहानी अच्छी समाप्त हुई: टीम ने रिपोर्ट किया कि उसने ब्लॉकचेन की जाँच की और किसी शोषण के संकेत नहीं पाए। लेकिन भेद्यता Monero से परे भी फैली हुई थी। Monero अपडेट करने के बाद, टीम ने अन्य CryptoNote-आधारित प्रोजेक्ट्स को सूचित करना शुरू किया। लेकिन उनमें से एक, Bytecoin, पर जल्द ही हमला हुआ, और उसमें 693 मिलियन अतिरिक्त सिक्के बनाए गए।

यह भेद्यता छुपाने की समस्या की एक और परत खोलता है। जब कोड दर्जनों प्रोजेक्ट्स में साझा होता है, तो किसी एक जगह पर खोजी गई धमकी की घोषणा हमलावरों के लिए दूसरे लक्ष्यों के लिए टिप-ऑफ बन सकती है। डेवलपर्स को यह तय करना पड़ता है कि वे केवल अपने उपयोगकर्ताओं को कब बताएँ, बल्कि किस प्रतिद्वंदी प्रोजेक्ट को चेतावनी दें, और किस क्रम में — यह जानते हुए कि जिसने जानकारी पहले पाई वह इसे दूसरे के खिलाफ इस्तेमाल कर सकता है जिसने अभी तक नहीं पाई।

Monero फिर: वह बग जिसने हमलावरों को दूसरों के पैसे जला देने दिया

2018 में, Monero को एक अलग, कम मूलभूत — पर अत्यन्त शिक्षाप्रद — घटना का सामना करना पड़ा, जिसे burning bug कहा जाता है। यह किसी को भी हवा में XMR प्रिंट करने या आपूर्ति अनुसूची तोड़ने की अनुमति नहीं देता था। लेकिन इसने हमलावर को एक्सचेंजों, व्यापारियों और अन्य सेवाओं को वास्तविक वित्तीय नुकसान पहुंचाने की क्षमता दी। बग ने कुछ रिसीव्ड आउटपुट्स को अस्पेंड करने जैसा बना दिया, जिससे वे खर्च करने योग्य नहीं रहे।

एक स्वैपिंग सेवा जैसे rabbit.io उस तरह के हमले के प्रति संवेदनशील हो सकती थी।

यहाँ बताया गया है कि rabbit.io पर क्रिप्टोकरेंसी स्वैپس कैसे काम करते हैं:

  • एक उपयोगकर्ता ऑर्डर फॉर्म में दिखाई गई डिपॉज़िट एड्रेस पर—for उदाहरण XMR—क्रिप्टो भेजता है;
  • हमारी स्वचालित प्रणाली इनकमिंग पेमेंट का पता लगाती है, और उपयोगकर्ता द्वारा निर्दिष्ट पेआउट एड्रेस पर अनुरोधित क्रिप्टो भेज देती है।

हमारी सेवा उस समय मौजूद नहीं थी, लेकिन अगर होती, तो हमला ऐसा दिख सकता था:

  • एक हमलावर XMR को BTC में स्वैप करने के लिए ऑर्डर बनाता है;
  • हमलावर XMR भेजता है और BTC प्राप्त करता है;
  • हमें न तो BTC मिलता है और न ही XMR क्योंकि प्राप्त XMR आउटपुट्स उपयोगयोग्य नहीं होते;
  • हमलावर को सीधे कुछ हासिल नहीं होता, पर वह XMR स्वीकार करने वाले व्यवसायों को नष्ट कर देता है।

Monero टीम ने एक चुपके से पैच तैयार किया और सीधे उन एक्सचेंजों और ज्ञात XMR दुकानदारों को सूचित किया जिन तक वे पहुँच सके। पोस्ट-मॉर्टम में, डेवलपर्स ने ईमानदारी से स्वीकार किया कि इस दृष्टिकोण ने अनिवार्य रूप से उन संगठनों को छोड़ दिया जिनके साथ उनका कोई मौजूदा संपर्क नहीं था, और इससे जानकारी तक विशेष पहुंच का भ्रम पैदा हुआ।

यह चयनात्मक प्रकटीकरण की व्यावहारिक वास्तविकता है: कुछ बाजार प्रतिभागी हमेशा दूसरों से पहले किसी जोखिम के बारे में जानेंगे। वह विषमता स्वयं एक सुरक्षा समस्या है।

Stellar: एक छुपा हुआ बग जिसे पहले ही प्रयोग में लाया जा चुका था

Stellar की कहानी अन्य कई मामलों से अलग है क्योंकि बग केवल डेवलपर्स तक ही सीमित चुप्पी में मौजूद नहीं था। इसका पहले ही शोषण हो चुका था।

2017 में, एक हमलावर ने Stellar प्रोटोकॉल में एक समकालिकता (concurrency) दोष का शोषण किया और 2.25 अरब XLM बना दिए — उस समय लगभग $10 मिलियन और प्रचलन में मौजूद कुल टोकनों का लगभग एक चौथाई। Messari के अनुसार, नव-निर्मित XLM को एक्सचेंजों को ट्रांसफर किया गया और संभवत: बेचा गया।

Stellar Development Foundation ने बाद में अपनी खुद की रिजर्व से समकक्ष मात्रा के XLM जला दिए ताकि सप्लाई की पतलीपन रोकी जा सके। पर उन्होंने कोई सार्वजनिक घोषणा नहीं की — जब तक कि Messari ने 2019 में इस घटना को उजागर नहीं किया, दो साल बाद। प्रतिक्रिया में, Stellar प्रतिनिधियों ने कहा कि उन्होंने अपने प्रोटोकॉल अपडेट रिलीज नोट्स में बग का उल्लेख किया था। तकनीकी रूप से, यह पूर्ण मौन नहीं है। लेकिन तकनीकी रिलीज नोट्स में एक शांत एंट्री जिसे बाजार ने Messari की जांच से दो साल बाद ही जाना, व्यवहार में मौन के बराबर है।

यह मामला उद्योग के लिए खासकर असहज है। आप नहीं कह सकते, "हमने भेद्यता छुपाई ताकि किसी ने इसका शोषण न कर सके।" किसी ने पहले ही किया हुआ था। चुप्पी ने उपयोगकर्ताओं को हमले से नहीं बचाया — बल्कि डेवलपर्स को जाँच से बचाया।

Ethereum Geth: कैसे एक शांत पैच ने नेटवर्क को विभाजित कर दिया

Geth, सबसे व्यापक रूप से इस्तेमाल किए जाने वाले Ethereum क्लाइंट पर, शांत पैच करने का अभ्यास लगभग औपचारिक रूप से मानकीकृत कर दिया गया था। टीम की दस्तावेज़ीकरण स्पष्ट रूप से कहता है कि Ethereum मुख्यनेट के स्वास्थ्य को धमकी देने वाली भेद्यताओं के लिए, यह अधिकार सुरक्षित रखती है कि वह नए रिलीज़ में बिना भेद्यता का खुलासा किए शांति से फिक्स भेज सकती है। तर्क सीधा है: नोड ऑपरेटर्स हफ्तों या महीनों तक अपडेट नहीं कर सकते, और अगर आप स्पष्ट रूप से बताएँ कि कौन सा बग एक रिलीज़ ठीक कर रहा है, तो कोई व्यक्ति उस जानकारी का फायदा उठा सकता है इससे पहले कि अधिकांश नोड्स अपग्रेड हो पाएं।

लेकिन अगस्त 2021 में, यह तर्क उल्टा पड़ गया। Geth ने CVE-2021-39137 को पैच किया, 24 अगस्त को फिक्स जारी किया बिना विवरण जारी किए। किसी ने, हालांकि, यह समझ लिया कि क्या फिक्स किया गया था — और 27 अगस्त को, भेद्यता का शोषण किया गया, जिससे पुराने Geth नोड्स का एक हिस्सा मुख्य चेन से अलग फोर्क हो गया।

यह गोपनीयता के धार के दूसरे किनारे को दिखाता है। बहुत ज़्यादा कहा तो आप हमले को तेज़ कर सकते हैं। बहुत कम कहा तो कुछ ऑपरेटर यह नहीं समझेंगे कि अपडेट करना तत्काल है। नेटवर्क अंततः वही पा सकता है जिसकी वह परहेज़ कर रहा था: भेद्यता का सक्रिय शोषण।

Polygon: $24 बिलियन खतरे में, वास्तविक नुकसान हुआ

दिसंबर 2021 में, Polygon ने वही दुविधा झेली। सुरक्षा शोधकर्ताओं ने Polygon PoS जिनेसिस कॉन्ट्रैक्ट में एक गंभीर भेद्यता की रिपोर्ट की — एक ऐसी भेद्यता जो एक हमलावर को लगभग $24 बिलियन मूल्य के MATIC टोकनों को निकालने की अनुमति दे सकती थी। टीम ने चुपचाप आगे बढ़ने का फैसला किया: जैसा कि बाद में उन्होंने कहा, "इस अपग्रेड की प्रकृति को देखते हुए, इसे बहुत अधिक ध्यान आकर्षित किए बिना निष्पादित करने की जरूरत थी।" वेलिडेटर्स और फुल-नोड ऑपरेटरों को सूचित किया गया, और नेटवर्क ने तेज़ी से अपग्रेड किया।

पर तेज़ प्रतिक्रिया भी पूरी विंडो बंद करने के लिए तेज़ नहीं थी। अपग्रेड लागू होने से पहले, एक हमलावर ने 801,601 MATIC चुरा लिए — लगभग $2 मिलियन से कम। डेवलपर्स ने पुष्टि की कि Polygon Foundation नुकसान को कवर करेगी। जिन्होंने भेद्यता रिपोर्ट की थी उन्हें लगभग $3.46 मिलियन के बाउंटी इनाम दिए गए।

टीम ने मुद्दे को दबाने की कोशिश नहीं की, पर उपयोगकर्ताओं ने जो कुछ निकट रहा उसकी पूरी सीमा तब ही सीखी जब सब खत्म हो चुका था। इस दृष्टिकोण के पीछे दो कारण थे: पहला, प्राथमिकता कार्रवाई करना थी, विचार-विमर्श नहीं; दूसरा, समस्या हल होने से पहले जितने अधिक लोगों को इसके बारे में पता होता वह उतना ही अधिक संभावित दुरुपयोग कर सकते थे।

शायद यही एक व्यवहारिक समझौता दिखता है: पैच होने से पहले हमले का खुलासा न करें, पर फिक्स को महीनों या वर्षों तक गुप्त न रखें।

क्या डेवलपर्स उपयोगकर्ताओं की रक्षा कर रहे हैं, या उन्हें धोखा दे रहे हैं?

How a quiet patch works

कभी-कभी गोपनीयता वास्तव में नेटवर्क को बचा लेती है। बिना शांत फिक्स के, Zcash अदृश्य मुद्रास्फीति का शिकार हो सकता था। बिना छिपे पैच के, Monero को अनदेखा नकलीकरण का सामना करना पड़ सकता था। बिना Polygon की तेज़, बंद दरवाज़ों के कार्रवाई के, उस नेटवर्क को अपार नुकसान होता।

लेकिन गोपनीयता मुफ़्त नहीं है। यह अंदरूनी लोगों और बाहर वालों की परतें बनाती है। यह उस व्यक्ति को लाभ देता है जिसे टीम निजी तौर पर चेतावनी दे पाती है। यह रिलीज़ को रूटीन रखकर नोड ऑपरेटरों की अपडेट करने की तात्कालिकता को कम कर देता है। और यह क्रिप्टोकरेंसी उपयोग करने की मनोवैज्ञानिक बुनियाद — यह भावना कि खेल के नियम सभी के लिए एक ही समय में समान रूप से ज्ञात हैं — में से एक को कमजोर कर देता है।

यह भावना, जैसा कि पता चलता है, एक भ्रांति है। इन कहानियों में से हर एक समान वक्र का पालन करती है: एक शांत पैच, लंबी चुप्पी, और फिर यह स्वीकार करना कि हमेशा से नेटवर्क की सुरक्षा उन少 लोगों के भरोसे रही जो सब से अधिक जानते थे।