बिटकॉइन कोर 0.19.0 जारी: यहाँ क्या नया है
आज, 24 नवंबर, 2019 को आधिकारिक विज्ञप्ति जारी की गई बिटकॉइन कोर 0.19.0, बिटकॉइन के मूल सॉफ्टवेयर क्लाइंट की 19 वीं बड़ी रिलीज सतोशी नाकामोटो द्वारा लगभग 11 साल पहले शुरू की गई थी और आज भी नेटवर्क पर बिटकॉइन का प्रभावी कार्यान्वयन है। (हालांकि बिटकॉइन कोर 0.19.0 रिलीज प्रक्रिया के एक देर के चरण में एक समस्या के कारण, डाउनलोड के लिए जारी किया गया संस्करण वास्तव में 0.19.0.1 है।) Overseen by बिटकॉइन कोर लीड मेंटेनर व्लादिमीर वैन डेर लान, इस नवीनतम प्रमुख रिलीज को लगभग छह महीने के अंतराल पर सौ से अधिक योगदानकर्ताओं द्वारा विकसित किया गया था.
550 मर्ज किए गए पुल अनुरोधों के परिणामस्वरूप, बिटकॉइन कोर 0.19.0 में प्रदर्शन में सुधार, आधुनिकीकरण और बग फिक्स शामिल हैं, जैसे कि अन्य परिवर्तन.
यहाँ इनमें से कुछ परिवर्तनों का अवलोकन किया गया है.
GUI में डिफ़ॉल्ट रूप से Bech32 पते
“Bech32” पता प्रारूप (बीआईपी 173) को पहले ही 2018 में जारी बिटकॉइन कोर 0.16.0 में पेश किया गया था, लेकिन अब पहली बार बिटकॉइन कोर वॉलेट ग्राफिकल यूजर इंटरफेस (जीयूआई) में डिफ़ॉल्ट विकल्प के रूप में सेट किया गया है।.
Bech32 पते “bc1” से शुरू होने वाले पते हैं (1 या 3 के साथ शुरू होने वाले पते के विपरीत) ये पते थोड़े लंबे हैं, लेकिन वर्तमान पते के प्रारूप की तुलना में कम भिन्न वर्णों का उपयोग करते हैं, क्योंकि अब कोई भेद नहीं है। लोअरकेस और कैपिटल अक्षरों के बीच। (यह मानवीय गलतियों की संभावना को कम कर देता है, उदाहरण के लिए, जब एक पते को जोर से पढ़ा जाता है।) Bech32 के पते भी टाइपोस की वजह से गलतियों को सीमित करने के लिए डिज़ाइन किए गए हैं.
इसके अतिरिक्त, bech32 SegWit के संदर्भ में लाभ प्रदान करता है। कुछ वॉलेट जो SegWit की पेशकश करते हैं – अब तक डिफ़ॉल्ट रूप से बिटकॉइन कोर वॉलेट सहित – इसे “लपेटकर” द्वारा P2SH आउटपुट (एक “3” से शुरू होने वाले पते के साथ) में शामिल करें। इस तरह के पते से बिटकॉइन खर्च करने के लिए, उपयोगकर्ताओं को कोड का एक टुकड़ा – “रिडीम स्क्रिप्ट” प्रकट करना चाहिए – यह दिखाने के लिए कि बिटकॉइन वास्तव में एक SegWit आउटपुट में बंद थे। नए bech32 पतों के साथ, इस कदम को छोड़ दिया जा सकता है, जिसका अर्थ है कि SegWit आउटपुट से खर्च करने के लिए बिटकॉइन नेटवर्क पर प्रसारित करने और ब्लॉकचेन में शामिल करने के लिए थोड़ा कम डेटा की आवश्यकता होगी। यह एक Bech32 आउटपुट से लेनदेन को एक P2SH आउटपुट से SegWit लेनदेन की तुलना में सस्ता बनाता है.
चूंकि सभी बिटकॉइन वॉलेट अभी तक be3232 पते पर भेजने का समर्थन नहीं करते हैं, बिटकॉइन कोर 0.19.0 उपयोगकर्ता अभी भी जीयूआई में टॉगल के माध्यम से वैकल्पिक रूप से पीएस 2 एच प्राप्त करने वाले पते को उत्पन्न करने में सक्षम होंगे।.
डिफ़ॉल्ट रूप से दो ब्लॉक-केवल आउटबाउंड कनेक्शन अतिरिक्त
बिटकॉइन नोड्स कई अन्य बिटकॉइन नोड्स से जुड़ते हैं, साथ में पीयर-टू-पीयर नेटवर्क बनाते हैं। इस नेटवर्क पर, नोड्स ब्लॉक, लेनदेन और कुछ अतिरिक्त लेनदेन डेटा साझा करते हैं.
लेकिन सहकर्मी से सहकर्मी नेटवर्क हमलों के अधीन हो सकता है, जैसे “विभाजन के हमले।” यदि कोई हमलावर पर्याप्त मात्रा में बिटकॉइन नोड्स को नियंत्रित करता है, तो यह सभी ट्रैफ़िक को रोककर बिटकॉइन नेटवर्क (या विशिष्ट नोड्स) के कुछ हिस्सों को संभावित रूप से “काट” सकता है। उदाहरण के लिए, नेटवर्क का विभाजित हिस्सा अल्पसंख्यक श्रृंखला को स्वीकार करने में मूर्ख हो सकता है – सबसे लंबी श्रृंखला नहीं – जैसा कि मान्य है, जो बदले में, डबल-खर्च के हमलों के लिए दरवाजा खोल सकता है।.
एक विभाजन हमले को काउंटर किया जाता है यदि नेटवर्क के विभाजन वाले हिस्से में एक नोड का मुख्य नेटवर्क पर एक ईमानदार नोड से सिर्फ एक कनेक्शन होता है। यह तब सभी लेनदेन और ब्लॉकों को प्राप्त और रिले करेगा और बहुमत श्रृंखला के पक्ष में अल्पसंख्यक श्रृंखला को अस्वीकार कर देगा.
इसका एहसास करने का एक तरीका है, और विभाजन के हमलों को खींचने के लिए कठिन बनाना, नोड्स को एक दूसरे से अधिक कनेक्शन स्थापित करना है। अधिक कनेक्शन अधिक मेमोरी और बैंडविड्थ आवश्यकताओं के साथ आते हैं, हालांकि; एक व्यापार बंद है.
बिटकॉइन कोर 0.19.0 आउटगोइंग कनेक्शन के लिए डिफ़ॉल्ट को दो से बढ़ाता है, लेकिन – चतुराई से – ये दो अतिरिक्त कनेक्शन केवल रिले ब्लॉक के लिए उपयोग किए जाते हैं – वे लेनदेन या अतिरिक्त लेनदेन डेटा को रिले नहीं करते हैं। यह अतिरिक्त बैंडविड्थ आवश्यकताओं को न्यूनतम रूप से बढ़ाता है, जबकि विभाजन विभाजन को सफलतापूर्वक खींचने के लिए कठिन बनाता है.
ब्लूम फ़िल्टर किया गया
बिटकॉइन कोर एक पूर्ण नोड कार्यान्वयन है, जिसका अर्थ है कि यह सभी बिटकॉइन ब्लॉकों को डाउनलोड और सत्यापित करता है। हालांकि यह बेहतर रूप से सुरक्षित है, लेकिन यह मोबाइल फोन जैसे कम-संसाधन कंप्यूटिंग डिवाइसों के लिए बहुत अनुकूल नहीं है। मोबाइल वॉलेट्स (और साथ ही कुछ डेस्कटॉप वॉलेट्स), इसलिए, आमतौर पर “लाइट क्लाइंट” होते हैं: ये केवल डाउनलोड ट्रांजेक्शन और (के कुछ हिस्सों) को ब्लॉक करते हैं जो उन्हें विशेष रूप से चिंतित करते हैं।.
ऐसा करने का एक तरीका ब्लूम फ़िल्टर्स के साथ है, जिसका इस्तेमाल आज कुछ युगल करते हैं। संक्षेप में, ब्लूम फ़िल्टर एक क्रिप्टोग्राफ़िक ट्रिक है जिसका उपयोग प्रकाश क्लाइंट नेटवर्क पर अधिक या कम यादृच्छिक पूर्ण नोड से प्रासंगिक डेटा का अनुरोध करने के लिए करते हैं। दुर्भाग्य से, हालांकि, यह उन वर्षों में स्पष्ट हो गया है कि ब्लूम फ़िल्टर्स गोपनीयता-अमित्र हैं: वे अनिवार्य रूप से अपने सभी पते पूर्ण नोड को प्रकट करते हैं। उसके ऊपर, ब्लूम फ़िल्टर अनुरोधों का समर्थन सीपीयू और डिस्क स्थान में पूर्ण नोड के लिए आता है – पूर्ण नोड के लिए कोई प्रत्यक्ष लाभ नहीं है.
विशेष रूप से बाद के कारण के लिए, बिटकॉइन कोर 0.19.0 अब डिफ़ॉल्ट रूप से ब्लूम फ़िल्टर अनुरोधों का समर्थन नहीं करता है। उपयोगकर्ताओं को अभी भी ब्लूम फ़िल्टर का समर्थन करने के लिए डिफ़ॉल्ट स्विच कर सकते हैं यदि वे ऐसा चुनते हैं.
यह भी ध्यान देने योग्य है कि एक पूरे के रूप में बिटकॉइन नेटवर्क लगभग निश्चित रूप से आने वाले वर्षों के लिए ब्लूम फ़िल्टर्स का समर्थन करना जारी रखेगा, भले ही कोई भी अपनी चूक को स्विच न करे, क्योंकि पुराने बिटकॉइन कोर नोड्स आमतौर पर नए संस्करणों के बाद वर्षों तक उपयोग में रहते हैं जारी किया गया.
कॉम्पैक्ट क्लाइंट-साइड ब्लॉक फ़िल्टरिंग के लिए अधिक समर्थन
ब्लूम फिल्टर का एक विकल्प “कॉम्पैक्ट क्लाइंट-साइड ब्लॉक फ़िल्टरिंग” नामक एक नया समाधान है (बीआईपी 158) का है। कॉम्पैक्ट क्लाइंट-साइड ब्लॉक फ़िल्टरिंग अनिवार्य रूप से अपने सिर पर ब्लूम फ़िल्टर चाल को बदल देता है। पूर्ण नोड्स को भेजने के लिए फ़िल्टर बनाने वाले हल्के पर्स के बजाय, पूर्ण नोड प्रत्येक ब्लॉक के लिए फ़िल्टर बनाते हैं। प्रकाश ग्राहक इन फ़िल्टर का उपयोग यह पता लगाने के लिए कर सकते हैं कि क्या उनके लिए प्रासंगिक लेनदेन एक ब्लॉक में हुआ है। यदि ऐसा है, तो प्रकाश वॉलेट पूरे ब्लॉक को ले जाएगा और इसमें से किसी भी प्रासंगिक लेनदेन डेटा को उठाएगा.
बिटकॉइन कोर 0.19.0 कॉम्पैक्ट क्लाइंट-साइड ब्लॉक फ़िल्टरिंग का समर्थन करना जारी रखता है। बिटकॉइन कोर नोड्स पहले से ही स्थानीय रूप से फिल्टर बना सकते हैं, लेकिन बिटकॉइन कोर 0.19.0 उपयोगकर्ता अब नोड के शीर्ष पर चलने वाले अनुप्रयोगों के लिए एक दूरस्थ प्रक्रिया कॉल (आरपीसी) के माध्यम से उन्हें भी उपलब्ध करा सकते हैं (जैसे बटुआ).
फ़िल्टर अभी तक सहकर्मी से सहकर्मी नेटवर्क पर उपलब्ध नहीं हैं। इसका अर्थ है कि एक बिटकॉइन कोर 0.19.0 नोड स्वचालित रूप से अन्य बिटकॉइन उपयोगकर्ताओं के बटुए को फिल्टर नहीं भेजेगा। इस सुविधा को भविष्य में बिटकॉइन कोर रिलीज़ में जोड़ा जा सकता है – या बिटकॉइन कोर 0.19.0 उपयोगकर्ता अपने बिटकॉइन कोर नोड के शीर्ष पर चल रहे कस्टम एप्लिकेशन के माध्यम से सुविधा की पेशकश करने का विकल्प चुन सकते हैं।.
जीयूआई से अक्षम भुगतान प्रोटोकॉल समर्थन
भुगतान प्रोटोकॉल (बीआईपी 70) बिटकॉइन के भुगतान अनुभव को बेहतर बनाने के लिए कई साल पहले डिजाइन किया गया था। बिटकॉइन नेटवर्क पर प्रसारित नियमित भुगतान के शीर्ष पर, एक उपयोगकर्ता और एक व्यापारी भुगतान के बारे में अतिरिक्त विवरण, जैसे कि मानव-पठनीय गंतव्य पता (व्यापारी का नाम) और धनवापसी पते के मामले में कुछ गलत होने पर संवाद करेंगे। खरीद के साथ.
जबकि बिटकॉइन कोर ने अपने जीयूआई में भुगतान प्रोटोकॉल को एकीकृत किया था, मानक कभी भी व्यापक रूप से नहीं अपनाया गया था। इसके बजाय, अधिकांश वॉलेट अभी भी अधिक मूल यूआरआई योजना का उपयोग करते हैं (बीआईपी २१) भुगतान प्राप्त करने के लिए: क्लिक करने योग्य लिंक या स्कैन योग्य क्यूआर-कोड प्रारूप, उदाहरण के लिए, भुगतान पता और राशि को सूचित करता है। (आज एकमात्र उल्लेखनीय अपवाद भुगतान प्रोसेसर बिटपे है, जो यूआरआई योजना का समर्थन नहीं करता है, लेकिन बीटीएस 70 के संशोधित संस्करण का उपयोग करता है।)
शायद गोद लेने की कमी से अधिक महत्वपूर्ण बात, बीआईपी 70 भुगतान प्रोटोकॉल पीड़ित हैं सुरक्षा और गोपनीयता कमजोरियों की संख्या पिछले कुछ वर्षों में। इसलिए, कुछ पर्स सक्रिय रूप से हैं ठुकरा दिया प्रोटोकॉल लागू करने के लिए। बिटकॉइन कोर, भी कुछ समय से बीआईपी 70 को अपदस्थ करने की योजना बना रहा था, क्योंकि इसके रखरखाव को प्रयास के लायक नहीं माना जाता था – लेकिन बिटपे के इसे अपनाने से यह प्रक्रिया रुक गई।.
Bitcoin Core 0.19.0 में, BIP 70 को सभी के बाद डिफ़ॉल्ट रूप से GUI से हटा दिया गया है। बिटकॉइन कोर 0.19.0 उपयोगकर्ताओं को अभी भी सुविधा का उपयोग करने के लिए एक विशेष कॉन्फ़िगरेशन के साथ अपने नोड को संकलित करना होगा.
अन्य…
ऊपर उल्लिखित परिवर्तनों के अलावा, बिटकॉइन कोर 0.19.0 छोटे सुधार और आधुनिकीकरण की लंबी सूची के साथ आता है.
उदाहरण के लिए, सेटअप से तुरंत एक छोटा नोड शुरू करना संभव है, उदाहरण के लिए, जो थोड़ा डिस्क स्थान वाले उपयोगकर्ताओं को आसानी से एक नया बिटकॉइन नोड शुरू करने देता है। बिटकॉइन कोर 0.19.0 में आंशिक रूप से हस्ताक्षरित बिटकॉइन लेनदेन (पीएसबीटी) प्रोटोकॉल के लिए नई सुविधाएँ भी शामिल हैं, जो बहु-संधि और कॉइनजॉइन लेनदेन के लिए उपयोगी है। इसी तरह, वॉलेट डिस्क्रिप्टर के क्षेत्र में कई सुधार हैं, जो बिटकॉइन अनुप्रयोगों पर काम करने वाले प्रोग्रामर के लिए विशेष रूप से उपयोगी है। बिटकॉइन कोर 0.19.0 नोड्स लेन-देन को भी स्वीकार करेंगे और रिले करेंगे जो भविष्य में सेगविट संस्करण का उपयोग करते हैं ताकि यह सुनिश्चित किया जा सके कि आगामी उन्नयन आसानी से होगा.
उन्नयन की अधिक व्यापक सूची के लिए, यह भी देखें बिटकॉइन कोर 0.19.0.1 रिलीज नोट.
इस लेख पर प्रतिक्रिया के लिए Sjors Provoost का धन्यवाद.