SegWit क्या है?
साल 2017 में बिटकॉइन के सामने एक ऐसी समस्या खड़ी हो गई थी जिससे पूरा समुदाय बिखरने की कगार पर था। नेटवर्क एक सेकंड में मुश्किल से 3 लेनदेन ही संभाल पा रहा था। फीस आसमान छू रही थी। ब्लॉक पूरी तरह भर चुके थे। और इस समस्या को हल करने के लिए हर किसी के पास अलग-अलग विचार थे।
जिस समाधान को प्राथमिकता मिली, वह था सेगविट (Segregated Witness)। इसे बिटकॉइन कोर के प्रमुख डेवलपर्स में से एक, पीटर वुइल ने प्रस्तावित किया था, और इसने बिटकॉइन के हर लेनदेन की संरचना को पूरी तरह बदल दिया। यह कोई मामूली बदलाव नहीं था। बल्कि ब्लॉक के अंदर डेटा को समाहित करने के तरीके में एक मौलिक बदलाव था। आठ साल बाद, लगभग 96% बिटकॉइन लेनदेन सेगविट पतों का उपयोग करते हैं। यदि आपने पिछले कुछ वर्षों में बिटकॉइन खरीदा या भेजा है, तो आपने लगभग निश्चित रूप से अनजाने में इसका उपयोग किया होगा।
असल समस्या क्या थी?
आइए मैं आपको 2016 की स्थिति का संक्षिप्त विवरण दूं।
बिटकॉइन के हर ब्लॉक पर 1 MB की सीमा थी। सतोशी ने स्पैम हमलों को रोकने के लिए 2010 में यह सीमा लगाई थी, और इसे किसी ने नहीं हटाया। हर 10 मिनट में ब्लॉक माइन किए जाते हैं। 1 MB के हिसाब से, प्रति ब्लॉक लगभग 1,650 लेनदेन होते हैं। अगर आप गणना करें तो पूरे बिटकॉइन नेटवर्क पर प्रति सेकंड लगभग 2-3 लेनदेन होते हैं। पूरी दुनिया इतने पतले पाइप से जुड़ी हुई है।
वैसे, वीज़ा प्रति सेकंड 65,000 लेनदेन करता है। तो हाँ। समस्या है।
2016 के अंत तक, हर ब्लॉक 1 एमबी की सीमा तक पहुँच रहा था। जब जगह खत्म हो गई, तो बिटकॉइन उपयोगकर्ता लेन-देन शुल्क को लेकर एक-दूसरे से होड़ करने लगे, ताकि खनिकों को रिश्वत देकर अपना लेन-देन पहले चुनवा सकें। शुल्क बेतहाशा बढ़ गए। 10 डॉलर मूल्य के बिटकॉइन भेजने पर 15 डॉलर तक का शुल्क लग सकता था। यह बिल्कुल समझ से परे था।
और फिर एक और पेचीदा सवाल था: लेन-देन में हेरफेर करने की क्षमता। मैं इसे सरल शब्दों में समझाने की कोशिश करूंगा। जब आप बिटकॉइन भेजते हैं, तो नेटवर्क उस लेन-देन के लिए एक आईडी बनाता है। SegWit से पहले, वह आईडी पूरे लेन-देन से बनती थी, जिसमें हस्ताक्षर भी शामिल होते थे। लेकिन दिक्कत क्या थी? कोई भी आपके अपुष्ट लेन-देन को हथिया सकता था, हस्ताक्षर की एन्कोडिंग में हेरफेर कर सकता था (तकनीकी रूप से उसे वैध रखते हुए), और उसी भुगतान के लिए एक अलग आईडी बना सकता था। भेजने वाला वही, पाने वाला वही, राशि वही। लेकिन आईडी नंबर अलग।
आपको इसकी परवाह क्यों करनी चाहिए? क्योंकि माउंट गोक्स, वह एक्सचेंज जिसने 2014 में 840,000 बीटीसी खो दिए थे, इसी बग का शिकार हुआ था। और इससे भी महत्वपूर्ण बात यह है कि बिटकॉइन के ऊपर निर्मित किसी भी द्वितीयक प्रणाली (जैसे भुगतान चैनल) को लेनदेन को उनकी आईडी के माध्यम से संदर्भित करने की आवश्यकता होती है। यदि वे आईडी बदल जाती हैं, तो पूरी प्रणाली ध्वस्त हो जाती है।
बिटकॉइन एक साथ दो समस्याओं से जूझ रहा था: ब्लॉक का आकार बहुत छोटा था और ट्रांजैक्शन आईडी पर भरोसा नहीं किया जा सकता था। SegWit ने इन दोनों समस्याओं को एक ही झटके में हल कर दिया।
SegWit कैसे काम करता है (कंप्यूटर विज्ञान की डिग्री के बिना)
बिटकॉइन लेनदेन को एक चेक की तरह समझें। इसमें एक हिस्सा होता है जो बताता है कि कौन किसे और कितना भुगतान कर रहा है। फिर नीचे आपका हस्ताक्षर होता है जो इसे वैध साबित करता है। SegWit से पहले, ये दोनों हिस्से एक ही ब्लॉक में समाहित होते थे, और यह सब 1 MB ब्लॉक आकार सीमा के अंतर्गत आता था।
पीटर वुइल को जो बात खटक रही थी, वह यह थी: हस्ताक्षर डेटा हर लेनदेन का लगभग 65% हिस्सा खा जाता था। हर ब्लॉक का अधिकांश हिस्सा यह रिकॉर्ड नहीं कर रहा था कि क्या हुआ। यह तो बस इस बात का सबूत रिकॉर्ड कर रहा था कि किसी ने इसे मंजूरी दे दी है। यह फिजूलखर्ची लग रही थी।
उनका सुझाव था: हस्ताक्षरों को अलग कर लें। उन्हें "गवाह" नामक एक अलग अनुभाग में रखें। लेन-देन का डेटा मुख्य ब्लॉक में ही रहता है। गवाह का डेटा अलग से संग्रहीत किया जाता है। नेटवर्क पर मौजूद प्रत्येक नोड द्वारा इसकी जाँच की जाती है। ब्लॉक की पूर्णता की गणना करते समय इसका महत्व पहले जैसा नहीं रहता।
व्यवहार में क्या हुआ? ब्लॉक में लगभग 1,650 लेनदेन की क्षमता बढ़कर लगभग 2,700 हो गई। बिटकॉइन की लेनदेन दर 2-3 लेनदेन प्रति सेकंड से बढ़कर लगभग 7-10 हो गई। वीज़ा की तुलना में यह अभी भी हास्यास्पद है। लेकिन एक ऐसे नेटवर्क के लिए जो अपनी ही सफलता के कारण घुट रहा था, यह राहत की सांस थी।

ब्लॉक का भार: नया गणित
अब आती है असली चतुराई। सबसे आसान तरीका होता कि 1 MB की सीमा को बढ़ाकर 2 MB कर दिया जाए। लेकिन इससे हार्ड फोर्क हो जाता। बिटकॉइन नेटवर्क पर मौजूद हर नोड को अपडेट करना पड़ता, वरना वे नेटवर्क से बाहर हो जाते। हार्ड फोर्क बहुत जटिल होते हैं। कई लोग पीछे छूट जाते हैं।
पीटर वुइल ने एक बेहतर तरीका निकाला। ब्लॉक को सीधे बाइट्स में मापने के बजाय, SegWit "ब्लॉक वेट" का उपयोग करता है। सामान्य लेनदेन डेटा को प्रति बाइट 4 वेट यूनिट के रूप में गिना जाता है। विटनेस डेटा को प्रति बाइट केवल 1 वेट यूनिट के रूप में गिना जाता है। कुल सीमा 4 मिलियन वेट यूनिट है।
व्यवहार में इसका क्या अर्थ है? बिना विटनेस डेटा वाला ब्लॉक हमेशा की तरह अधिकतम 1 MB तक ही सीमित रहता है। पुराने नोड्स को इसमें कुछ भी असामान्य नहीं दिखता। सैद्धांतिक रूप से, SegWit लेनदेन से भरा ब्लॉक लगभग 4 MB तक पहुंच सकता है। लेकिन असल में, अधिकांश ब्लॉक 1.5 से 2 MB के आसपास होते हैं।
इसकी खूबी यह थी: SegWit को सॉफ्ट फोर्क के रूप में लॉन्च किया गया। जिन नोड्स ने अपग्रेड नहीं किया, वे सुचारू रूप से काम करते रहे। वे नए सेक्शन में विटनेस डेटा नहीं देख पा रहे थे। बिटकॉइन ब्लॉकचेन विभाजित नहीं हुआ। कोई "पुराना बिटकॉइन" और "नया बिटकॉइन" नहीं था। एक ही चेन, एक ही नेटवर्क, बैकवर्ड कम्पैटिबल। यह अपने आप में एक इंजीनियरिंग की ऐसी उपलब्धि थी जिसे पर्याप्त श्रेय नहीं मिलता।
| SegWit से पहले | सेगविट के बाद |
|---|---|
| ब्लॉक का आकार: अधिकतम 1 एमबी | ब्लॉक का भार: अधिकतम 4 मिलियन भार इकाइयाँ |
| प्रति ब्लॉक लगभग 1,650 लेनदेन | प्रति ब्लॉक लगभग 2,700 लेनदेन |
| 2-3 टीपीएस | 7-10 टीपीएस |
| ब्लॉक के अंदर हस्ताक्षर डेटा | हस्ताक्षर डेटा अलग गवाह क्षेत्र में |
| लेनदेन आईडी में हस्ताक्षर शामिल थे | केवल कोर डेटा पर आधारित लेनदेन आईडी |
लेनदेन अनुकूलन क्षमता का समाधान
लोग ब्लॉक साइज़ की समस्या के बारे में लगातार बात करते रहते हैं। ठीक है, यह सबसे चर्चित समस्या थी। लेकिन मुझे लगता है कि ट्रांज़ैक्शन मैलिएबिलिटी का समाधान ज़्यादा महत्वपूर्ण था, और डेवलपर समुदाय से बाहर के ज़्यादातर लोग इसके बारे में जानते ही नहीं हैं।
तो बात ये है। SegWit से पहले, जब आपका बिटकॉइन वॉलेट कोई लेन-देन बनाता था, तो लेन-देन आईडी (जिसे TXID कहा जाता था) लेन-देन में मौजूद हर चीज़ से गणना करके बनाई जाती थी। इसमें हस्ताक्षर भी शामिल थे। और यहाँ अजीब बात ये है: डिजिटल हस्ताक्षर एक से अधिक मान्य प्रारूपों में व्यक्त किए जा सकते हैं। एक ही हस्ताक्षर, स्वामित्व का एक ही प्रमाण, लेकिन बाइट अनुक्रम थोड़ा अलग।
इसका मतलब यह था कि कोई भी आपके अपुष्ट लेनदेन को हथिया सकता था, हस्ताक्षर को एक अलग लेकिन समान रूप से मान्य तरीके से पुनः एन्कोड कर सकता था और उसे प्रसारित कर सकता था। नेटवर्क संशोधित संस्करण की पुष्टि कर देता। प्रेषक, प्राप्तकर्ता और राशि वही रहती। लेकिन TXID पूरी तरह से अलग होता।
मुझे पता है। सुनने में थोड़ा अटपटा लग रहा है। लेकिन यह बहुत मायने रखता था। कल्पना कीजिए कि आप एक ऐसा सिस्टम बना रहे हैं जहाँ चरण B, चरण A की ID को संदर्भित करता है। यदि कोई व्यक्ति चरण A की ID को सबमिट होने के बाद लेकिन पुष्टि होने से पहले बदल देता है, तो चरण B विफल हो जाता है। आपकी पूरी तार्किक श्रृंखला ध्वस्त हो जाती है।
SegWit ने गैर-गवाह भागों से ही TXID की गणना करके इस समस्या को हल कर दिया। अब हस्ताक्षर, ID से अलग, गवाह फ़ील्ड में मौजूद है। कोई भी इसमें छेड़छाड़ नहीं कर सकता। लेन-देन ID हमेशा के लिए सुरक्षित हो गई है।
SegWit और लाइटनिंग नेटवर्क
इसीलिए अनुकूलन क्षमता में सुधार करना महत्वपूर्ण था। लाइटनिंग नेटवर्क वह तरीका है जिससे बिटकॉइन प्रति सेकंड लाखों भुगतानों को संभालने की योजना बना रहा है। आप और मैं एक भुगतान चैनल खोलते हैं। हम मुख्य ब्लॉकचेन से अलग, आपस में बिटकॉइन भेजते और प्राप्त करते हैं। जब हमारा काम पूरा हो जाता है, तो केवल अंतिम शुद्ध शेष राशि ही ब्लॉकचेन पर सेटल होती है। बिटकॉइन ब्लॉकचेन पर सैकड़ों लेन-देनों के बजाय केवल एक लेन-देन होता है।
लाइटनिंग लेन-देन की ऐसी श्रृंखला बनाकर काम करता है जो एक-दूसरे को आईडी के माध्यम से संदर्भित करती हैं। यदि कोई बीच में ही आईडी बदल देता है, तो आपको सुरक्षित रखने वाला रिफंड लेन-देन अमान्य हो जाता है। इससे आपको नुकसान हो सकता है। संपूर्ण भुगतान चैनल अवधारणा आईडी की स्थिरता पर निर्भर करती है।
SegWit ने इन्हें स्थिर बनाया। बस। उस समाधान के बिना, लाइटनिंग को तैनात करना बहुत जोखिम भरा होता। और लाइटनिंग के बिना, बिटकॉइन हमेशा के लिए 7-10 लेनदेन प्रति सेकंड पर अटका रहता। यह कोई भुगतान नेटवर्क नहीं है। यह तो बड़े निवेशकों के लिए एक निपटान परत है।
मैं इसे इस तरह समझता हूँ: SegWit महज़ एक अपग्रेड नहीं था। यह नींव का पत्थर था। 2021 में Taproot, Lightning Network, यहाँ तक कि 2023 में Ordinals का प्रकाशन भी, अगस्त 2017 में किए गए संरचनात्मक परिवर्तनों के बिना संभव नहीं था।
पता प्रारूप: लेगेसी, रैप्ड और नेटिव सेगविट
क्या आपने कभी गौर किया है कि कुछ बिटकॉइन पते "1" से शुरू होते हैं, कुछ "3" से और कुछ "bc1" से? यह आपके वॉलेट में दिखने वाला SegWit अपग्रेड है।
"1" से शुरू होने वाले पते पुराने फॉर्मेट के हैं। इनमें SegWit का इस्तेमाल नहीं होता। इनमें सबसे ज़्यादा फीस लगती है। अगर आपका वॉलेट अभी भी आपको ये पते दे रहा है, तो अपना सॉफ़्टवेयर अपडेट करें।
"3" से शुरू होने वाले पते SegWit से सुरक्षित हैं। बिटकॉइन लेनदेन आंतरिक रूप से SegWit का उपयोग करता है, लेकिन इसे इस तरह से सुरक्षित किया गया है कि पुराने वॉलेट, जिन्होंने SegWit के बारे में नहीं सुना है, वे भी बिटकॉइन भेज सकें। यह पारंपरिक तरीकों से सस्ता है, लेकिन सबसे सस्ता विकल्प नहीं है।
"bc1q" से शुरू होने वाले पते नेटिव SegWit (Bech32) हैं। ये सबसे बढ़िया हैं। सबसे कम शुल्क। त्रुटि जाँच में सबसे बेहतर (पते का प्रारूप टाइपिंग की गलतियों को बेहतर ढंग से पकड़ता है)। और आज 96% लेनदेन इसी प्रारूप का उपयोग करते हैं।
आपको "bc1p" पते भी दिख सकते हैं। ये Taproot के पते हैं, जो 2021 में आया एक नया अपग्रेड है और SegWit पर आधारित है। यह एक अलग विषय है, लेकिन इनके अस्तित्व के बारे में जानना उपयोगी है।
| पता मुद्रलेख | इसके साथ आरंभ होता है | शुल्क स्तर | सेगविट? |
|---|---|---|---|
| विरासत (पी2पीकेएच) | 1 | उच्चतम | नहीं |
| रैप्ड सेगविट (P2SH) | 3 | मध्यम | हाँ (लिपटा हुआ) |
| नेटिव सेगविट (बेच32) | bc1q | सबसे कम | हाँ (मूल निवासी) |
| टैपरूट (बेच32 मीटर) | बी.सी.1पी | सबसे कम | हाँ + टैपरूट |
आप वास्तव में फीस पर कितनी बचत करते हैं?
मेरे गैर-तकनीकी दोस्तों को असल में यही जानना है। कितना सस्ता पड़ेगा?
अनचेन्ड ने आंकड़ों का विश्लेषण किया। एक मानक सिंगल-सिग्नेचर सेगविट लेनदेन से पारंपरिक तरीकों की तुलना में शुल्क में लगभग 53% की बचत होती है। यदि आप 2-में-से-3 मल्टीसिग सेटअप (जो कस्टडी में आम है) का उपयोग करते हैं, तो लगभग 64% की बचत होती है। यह कोई मामूली त्रुटि नहीं है। व्यस्त दिनों में जहां पारंपरिक उपयोगकर्ता प्रति लेनदेन 30 डॉलर का भुगतान करते हैं, वहीं नेटिव सेगविट के साथ आपको 15 डॉलर से भी कम का भुगतान करना पड़ता है।
क्यों? ब्लॉक वेट का गणित फिर से। विटनेस डेटा को 1 के बजाय 0.25 वर्चुअल बाइट्स के रूप में गिना जाता है। आपका लेनदेन ब्लॉक में कम जगह लेता है। माइनर्स इसके लिए कम शुल्क लेते हैं। सरल।
अगर आपका बिटकॉइन वॉलेट अभी भी आपको "1" से शुरू होने वाले पते देता है, तो आप हर बार पैसे भेजते समय बेवजह पैसा बर्बाद कर रहे हैं। नेटिव सेगविट पर स्विच करें। बस पाँच मिनट का काम है। कॉइनबेस, लेजर, ट्रेज़र, ब्लूवॉलेट, स्पैरो, ये सभी इसे सपोर्ट करते हैं। इसमें कोई नुकसान नहीं है।

विवाद का विषय: SegWit लगभग लागू ही क्यों नहीं हो पाया?
यह हिस्सा तकनीकी पहलुओं से कहीं अधिक रोचक है। SegWit लॉन्च होने से पहले ही लगभग खत्म हो गया था।
ऊपरी तौर पर तो यह लड़ाई सीधी-सादी लग रही थी। एक गुट, जिसे "बड़े ब्लॉकर" कहा जा रहा था, ब्लॉक साइज़ की सीमा को 1 MB से बढ़ाकर 8 MB या उससे भी ज़्यादा करना चाहता था। ज़्यादा जगह, ज़्यादा लेन-देन। सीधा-सा समाधान। दुनिया की सबसे बड़ी बिटकॉइन माइनर कंपनी बिटमेन ने इस गुट का ज़ोरदार समर्थन किया। कुछ लोगों ने बिटमेन पर सेगविट का विरोध करने का आरोप लगाया क्योंकि इससे ASICBOOST खत्म हो जाएगा, जो उनकी माइनिंग चिप्स में छिपी एक गुप्त तकनीक थी जिससे उन्हें प्रतिस्पर्धियों पर गति का लाभ मिलता था। बिटमेन ने इस आरोप को नकार दिया। क्रिप्टो जगत ने उनकी बात पर विश्वास नहीं किया।
दूसरा समूह मुख्य रूप से बिटकॉइन कोर डेवलपर्स और घर पर फुल नोड चलाने वाले लोगों का था। उनका तर्क था: ब्लॉक को 8 गुना बड़ा बनाने पर नोड चलाने के लिए 8 गुना अधिक बैंडविड्थ, स्टोरेज और प्रोसेसिंग पावर की आवश्यकता होती है। कुछ वर्षों बाद, केवल डेटा सेंटर और माइनिंग फार्म ही बिटकॉइन ब्लॉकचेन को मान्य करने का खर्च उठा सकेंगे। विकेंद्रीकरण धीरे-धीरे समाप्त हो जाएगा।
मैं इस पूरे घटनाक्रम को लाइव देख रहा था और सचमुच ऐसा लग रहा था कि बिटकॉइन इस बहस में टिक नहीं पाएगा। लोग ट्विटर, रेडिट और सम्मेलनों में एक-दूसरे पर जमकर चिल्ला रहे थे। न्यूयॉर्क में एक गुप्त बैठक भी हुई ("न्यूयॉर्क समझौता") जहाँ कई कंपनियों ने सेगविट को ब्लॉक साइज में बाद में होने वाली वृद्धि के साथ जोड़ने का समझौता करने की कोशिश की। वह समझौता भी विफल हो गया।
असल में हुआ ये कि 1 अगस्त 2017 को यूज़र द्वारा किए गए सॉफ्ट फोर्क के रूप में SegWit सक्रिय हो गया। इसका विरोध करने वाले बिटकॉइन माइनर्स ने उसी दिन अलग होकर Bitcoin Cash (BCH) बनाया। BCH 8 MB के ब्लॉक (अब 32 MB) के साथ आया और इसमें SegWit का इस्तेमाल नहीं हुआ। यह अभी भी मौजूद है। इसकी कीमत बिटकॉइन की कीमत के मुकाबले बहुत कम है।
कुछ लोग 1 अगस्त को "बिटकॉइन स्वतंत्रता दिवस" कहते हैं। इसका सार यह था कि बिटकॉइन के नियमों पर अंतिम निर्णय लेने का अधिकार माइनिंग कंपनियों के पास नहीं, बल्कि नोड ऑपरेटरों के पास है। यह मिसाल SegWit अपग्रेड में लिखे गए किसी भी कोड से कहीं अधिक महत्वपूर्ण है।
आज SegWit को अपनाना
बहस खत्म हो चुकी है। 2025 तक बिटकॉइन के 96% लेनदेन SegWit का उपयोग करेंगे। सभी प्रमुख वॉलेट इसे सपोर्ट करते हैं। सभी एक्सचेंज इसे सपोर्ट करते हैं। अगर आप अभी भी पुराने एड्रेस का इस्तेमाल कर रहे हैं, तो इसका एकमात्र कारण यह है कि आपने कई सालों से सॉफ्टवेयर अपडेट नहीं किया है।
SegWit अपग्रेड ने आगे आने वाली हर चीज़ के लिए रास्ता खोल दिया। Taproot नवंबर 2021 में आया और इसने SegWit की संरचना के ऊपर Schnorr हस्ताक्षर जोड़ दिए। Ordinals 2023 में सामने आए और SegWit द्वारा बनाए गए विटनेस डेटा स्पेस में JPEG फ़ाइलों को शामिल करना शुरू कर दिया। इस आखिरी वाले के बारे में लोगों की राय अलग-अलग है, लेकिन बात वही है: SegWit ने स्पेस बनाया और डेवलपर्स ने उसे भर दिया।
तो क्या SegWit आपके लिए व्यक्तिगत रूप से मायने रखता है? अगर आप बिटकॉइन का इस्तेमाल करते हैं, तो हाँ। अपने वॉलेट की सेटिंग खोलें और अपने एड्रेस फॉर्मेट की जाँच करें। अगर यह "bc1q" से शुरू होता है, तो सब ठीक है। अगर यह "1" से शुरू होता है, तो आपको आज ही SegWit पर स्विच कर लेना चाहिए। इससे कम फीस, भीड़भाड़ के दौरान तेज़ कन्फर्मेशन और लाइटनिंग पेमेंट की पूरी सुविधा मिलती है।
आप रोजमर्रा की जिंदगी में कभी SegWit के बारे में नहीं सोचेंगे। यह फर्श के नीचे की पाइपलाइन की तरह है। लेकिन अगर इसे 2017 में स्थापित नहीं किया गया होता, तो अब तक पूरा घर पानी से भर गया होता।