हमने Blockchain के आर्टिकल को Hindi में लिखा है। जिससे Hindi Users को Blockchain आसानी से समझ आ सके। हमें Blockchain के Hindi आर्टिकल को आप तक पहुंचने में खुशी होगी।

Blockchain रिकॉर्ड की बढ़ती सूची है, जिसे block कहा जाता है, जो Cryptography का उपयोग करके जुड़े हुए हैं। प्रत्येक ब्लॉक में पिछले ब्लॉक का एक Cryptography hash, एक टाइमस्टैम्प और लेनदेन डेटा होता है। Blockchain इन दिनों काफी चर्चा में है। और यह मुख्य रूप से है क्योंकि यह दुनिया में बहुत प्रसिद्ध cryptocurrency की backbone है – Bitcoin। कई सरकारों और अग्रणी बैंकों ने blockchain अवधारणा के आधार पर अपने कई पारंपरिक लेनदेन लाने का फैसला किया है। इस ढांचे के अनुप्रयोग और क्षमता बहुत बड़ी है और माना जाता है कि विभिन्न डोमेन में लेनदेन का तरीका बदल रहा है।

हाल के वर्षों में, blockchain पर बहुत चर्चा है। कई लोगों ने इसे दशक की सबसे विघटनकारी तकनीक बताया है। विशेष रूप से, वित्तीय बाजार सबसे अधिक प्रभावित हो सकते हैं।

प्रौद्योगिकी को कई वर्टिकल जैसे हेल्थकेयर, मेडिसिन्स, इंश्योरेंस, स्मार्ट प्रॉपर्टीज, ऑटोमोबाइल्स और यहां तक ​​कि सरकारों में भी रूपांतरित किया जा रहा है।

हालांकि, अब तक blockchain का सबसे सफल कार्यान्वयन Bitcoin –  Peer-to-Peer Electronic Cash System है, जो इत्तिफ़ाक से blockchain तकनीक का पहला कार्यान्वयन (Implementation) भी है। इस प्रकार, blockchain तकनीक को समझने के लिए, यह समझना सबसे अच्छा है कि bitcoin सिस्टम कैसे डिज़ाइन और कार्यान्वित (Executed) किया जाता है।

इस लेख में, आप सीखेंगे कि blockchain , इसकी Architecture, इसे कैसे लागू किया जाता है और इसकी विभिन्न विशेषताएं हैं। मैं blockchain की पेचीदगियों का वर्णन करते हुए bitcoin कार्यान्वयन को सूचीबद्ध (listed) करूंगा।

Blockchain आर्किटेक्चर इतना छोटा नहीं है और कई ने कई वीडियो सहित अच्छे लेख, tutorial लिखे हैं। इनमें नौसिखिए से लेकर पेशेवर तक के श्रोता हैं। इस ट्यूटोरियल में, मैं Novice और Professionals को ध्यान में रखते हुए, blockchain आर्किटेक्चर की वैचारिक समझ पर ध्यान केंद्रित करूँगा। Blockchain में जाने से पहले, यह जानना महत्वपूर्ण है कि इस नई तकनीक की आवश्यकता क्यों उत्पन्न हुई? इस प्रश्न का उत्तर Double − Spending  के रूप में जाना जाता है।

Double Spending

Imaage में दिखाई गई स्थिति पर विचार करें−

Double Spending
tutorialspoint

जैसा कि यहाँ स्पष्ट रूप से देखा गया है, Bob एक पुस्तक के बदले में Lisa को $ 10 का बिल दे रहा है। एक बार जब Lisa को यह भौतिक $ 10 बिल प्राप्त होता है, तो Bob के लिए इस पैसे को कुछ अन्य लेनदेन के लिए फिर से उपयोग करने का कोई रास्ता नहीं है, क्योंकि भौतिक मुद्रा अब Lisa के कब्जे में है।

अब, ऐसी स्थिति पर विचार करें जहां पैसे का भुगतान डिजिटल रूप में किया जाता है। यह चित्र में चित्रित किया गया है-

paid digital form
tutorialspoint

जैसा कि Currency Exchange का प्रारूप डिजिटल प्रारूप में है, यह अनिवार्य रूप से एक बाइनरी भौतिक फ़ाइल है जो Bob के डिवाइस पर कहीं Stored है। के बाद बॉब लिसा को यह फाइल (Digital money) देता है, वह एलिस को फाइल की एक प्रति भी दे सकता है। दोनों अब सोचते हैं कि डिजिटल सिक्के को प्रमाणित करने का कोई साधन न होने के कारण उन्हें यह धन प्राप्त हुआ है और इस तरह वे बॉब को अपना सामान वितरित करेंगे। इसे डबल-खर्च कहा जाता है, जहाँ प्रेषक एक ही पैसा कई विक्रेताओं से सेवाएँ या सामान प्राप्त करने के लिए एक से अधिक स्थानों पर खर्च करता है।

दोहरे खर्च की इस समस्या को हल करने के लिए, सभी लेनदेन की निगरानी के लिए एक केंद्रीकृत प्राधिकरण को नियुक्त करेगा। यह चित्र में चित्रित किया गया है −

Centrailized Authority

केंद्रीयकृत प्राधिकरण (Centralized authority), जो सामान्य शब्दों में आपका बैंक है, सभी लेनदेन को रिकॉर्ड करने वाली एक बही खाता रखता है। अब, बॉब को अपना डिजिटल पैसा बैंक को भेजना होगा जो अपने खाताधारक के बॉब के खाते में प्रवेश करेगा। यह सुनिश्चित करने के बाद कि बॉब के पास डिजिटल पैसे का भुगतान करने के लिए पर्याप्त शेष राशि है जिसे वह भेजना चाहता है, लिसा को उसके खाता में उसके खाते में जमा करने के लिए पैसा भेजेगा।

अब, यह गारंटी है कि बॉब दोगुना पैसा खर्च नहीं कर सकता है। यदि प्रत्येक डिजिटल लेनदेन को इस तरह एक केंद्रीकृत प्राधिकरण के माध्यम से रूट किया जाता है, तो दोहरे खर्च की समस्या हल हो जाएगी। यह लेनदेन में प्राप्त होने वाले प्रत्येक सिक्के (Digital money) की प्रामाणिकता को प्रमाणित करने में एक और लाभ प्रदान करता है। तो नकली पैसा (डुप्लीकेट पैसा बॉब के मामले में ऐलिस को एक कॉपी का उपयोग करके भुगतान) आसानी से पता लगाया जाएगा और प्रचलन से रोका जा सकेगा।

केंद्रीयकृत प्राधिकरण (Centralized authority), का परिचय हालांकि यह दोहरे खर्च की समस्या को हल करता है, एक और प्रमुख मुद्दे का परिचय देता है – केंद्रीय प्राधिकरण को स्वयं बनाने और बनाए रखने की लागत।

जैसा कि बैंकों को अपने संचालन के लिए धन की आवश्यकता होती है, वे अपने ग्राहकों के लिए प्रत्येक मुद्रा लेनदेन पर कमीशन काटना शुरू करते हैं। यह कभी-कभी बहुत महंगा हो सकता है, विशेष रूप से धन के विदेशी हस्तांतरण में जहां पूरे सौदे में कई एजेंट (बैंक) शामिल हो सकते हैं।

उपरोक्त सभी मुद्दों को बिटकॉइन नामक डिजिटल मुद्रा की शुरूआत द्वारा हल किया जाता है। अब मैं आपको इसकी संक्षिप्त पृष्ठभूमि दूंगा कि बिटकॉइन अपने डिजाइन और वास्तुकला में क्या है।

Bitcoin – Brief History

बिटकॉइन को इस दुनिया में सतोशी नाकामोटो द्वारा बिटकॉइन: A peer-to-peer electronic cash system नामक अनुसंधान शैली के माध्यम से वर्ष 2008 में पेश किया गया था।

Bitcoin ने न केवल दोहरे खर्च की समस्या को हल किया है, बल्कि कई और फायदे भी पेश किए हैं, यहाँ उल्लेख के लायक एक ऐसा फायदा है जो लेन-देन में अज्ञात है। सातोशी जिन्होंने इस प्रणाली का निर्माण किया और इस प्रणाली पर कुछ सिक्कों का लेन-देन किया वह पूरी दुनिया के लिए पूरी तरह से गुमनाम हैं।

जरा सोचिए, सोशल मीडिया की इस दुनिया में, जब प्रत्येक व्यक्ति की गोपनीयता दांव पर है, तो दुनिया अब तक यह पता लगाने में सक्षम नहीं है कि सतोशी कौन है? वास्तव में, हम नहीं जानते कि सतोशी एक व्यक्ति है या लोगों का समूह है। Googling ने इस तथ्य को भी उजागर किया कि Bitcoin Satoshi Nakamoto की कीमत लगभग 19.4 बिलियन डॉलर है – यह पैसा अब Bitcoin प्रणाली में लावारिस बना हुआ है। तो Bitcoin क्या है – आइए हम एक नज़र डालते हैं!

What is Bitcoin (Bitcoin क्या है)?

जैसा कि आपने पहले देखा, बैंक प्रत्येक लेन-देन को दर्ज करने वाला खाता बही रखता है। यह खाता निजी रूप से बैंक द्वारा रखा और बनाए रखा जाता है। सातोशी ने प्रस्ताव दिया कि इस बही को सार्वजनिक किया जाए और समुदाय द्वारा इसे बनाए रखा जाए।

जिस क्षण आप इस तरह के बही को सार्वजनिक करते हैं, आपके दिमाग में कई विचार आते हैं। इस बहीखाता को छेड़छाड़-सबूत होना चाहिए ताकि कोई भी इसकी प्रविष्टियों को संशोधित न कर सके। जैसा कि खाता बही में प्रत्येक प्रविष्टि सार्वजनिक रूप से दिखाई देती है, हमें यह पता लगाना होगा कि गुमनामी को कैसे बनाए रखा जाए – जाहिर है कि आप दुनिया में हर किसी को यह जानना पसंद नहीं करेंगे कि मैंने आपको एक मिलियन डॉलर का भुगतान किया।

इसके अलावा, जैसा कि दुनिया में प्रत्येक लेनदेन का केवल एक ही खाता बही है, बही के आकार में एक और बड़ी चिंता होगी। इन पेचीदगियों का हल प्रदान करना तुच्छ नहीं था और यही मैं यहाँ कोशिश कर रहा हूँ ताकि आप सरल शब्दों में bitcoin की Inherent Architecture को समझ सकें।

यह Inherent Architecture ब्लॉकचेन है और इस tutorial के बारे में यही है। ब्लॉकचेन Architecture  को समझने के लिए, आपको कुछ प्रमुख विशेषताओं को समझने की आवश्यकता है, जिस पर यह आधारित है। तो, चलिए PKI – पब्लिक की क्रिप्टोग्राफी के साथ शुरुआत करते हैं।

Public Key Cryptography

सार्वजनिक कुंजी Cryptography या संक्षेप में PKI को असममित Cryptography के रूप में भी जाना जाता है। यह दो जोड़ी कुंजियों का उपयोग करता है – सार्वजनिक और निजी। एक कुंजी कुछ लंबी बाइनरी संख्या है। सार्वजनिक कुंजी दुनिया भर में वितरित की जाती है और वास्तव में सार्वजनिक होती है जैसा कि इसके नाम से पता चलता है। निजी कुंजी को सख्ती से निजी रखा जाना चाहिए और किसी को इसे कभी नहीं खोना चाहिए।

Bitcoin के मामले में, यदि आप कभी भी अपने बिटकॉइन वॉलेट में निजी कुंजी खो देते हैं, तो आपके पर्स की पूरी सामग्री तुरंत चोरी हो जाएगी और इससे पहले कि आप यह जानते हैं, आपके सभी पैसे (आपके बटुए की सामग्री) बिना नहीं जाएंगे सिस्टम में तंत्र यह पता लगाने के लिए कि किसने चुराया है – यह उस सिस्टम में गुमनामी है जिसे मैंने पहले उल्लेख किया था।

PKI दो कार्यों – प्रमाणीकरण और संदेश गोपनीयता को एन्क्रिप्शन / डिक्रिप्शन तंत्र के माध्यम से पूरा करता है। अब मैं इन दोनों कार्यों की व्याख्या करूंगा –

Authentication

जब दो पक्ष संदेशों का आदान-प्रदान करते हैं, तो प्रेषक और रिसीवर के बीच एक विश्वास स्थापित करना महत्वपूर्ण है। विशेष रूप से, रिसीवर को संदेश के स्रोत पर भरोसा करना चाहिए। बॉब के हमारे पहले के परिदृश्य (चित्र 1 में दर्शाए गए) पर जाने से लिसा को उसके पास से कुछ सामान खरीदने के लिए कुछ पैसे भेजे गए, आइए देखें कि पीकेआई बॉब और लिसा के बीच इस विश्वास को कैसे बनाता है। नीचे देखें छवि –

Authentication

पहली जगह में, यदि बॉब कुछ पैसे लिसा को भेजना चाहता है, तो उसे अपनी खुद की एक निजी / सार्वजनिक कुंजी बनानी होगी। ध्यान दें कि दोनों कुंजियों को हमेशा एक साथ रखा जाता है और आप अलग-अलग व्यक्तियों या अलग-अलग उदाहरणों की निजी और सार्वजनिक कुंजियों को नहीं मिला सकते हैं।

अब, बॉब का कहना है कि वह लिसा को $ 10 भेज रहा है। इसलिए वह बॉब (प्रेषक) सार्वजनिक कुंजी, लिसा (रिसीवर) सार्वजनिक कुंजी, और राशि ($ 10) युक्त एक संदेश (A plain text message) बनाता है।

इस प्रेषण (Despatch) का उद्देश्य जैसे “मुझे आपसे कद्दू खरीदना है” भी संदेश में जोड़ा गया है। संपूर्ण संदेश अब बॉब की निजी कुंजी का उपयोग करके हस्ताक्षरित है। जब लिसा को यह संदेश मिलता है, तो वह पीकेआई और बॉब की सार्वजनिक कुंजी के हस्ताक्षर सत्यापन एल्गोरिथ्म का उपयोग करेगी ताकि यह सुनिश्चित किया जा सके कि संदेश वास्तव में बॉब से उत्पन्न हुआ था। पीकेआई कैसे काम करता है इस ट्यूटोरियल के दायरे से परे है। इच्छुक पाठक को पीकेआई पर अधिक विस्तृत चर्चा के लिए इस साइट पर भेजा जाता है। यह संदेश प्रवर्तक की प्रामाणिकता स्थापित करता है। अब, हम संदेश की गोपनीयता देखें।

Message Privacy

अब, जैसा कि लिसा ने अपना भुगतान प्राप्त कर लिया है, वह अपने ईबुक की लिंक भेजना चाहती है जिसे बॉब खरीदना चाहता है। इसलिए लिसा एक संदेश बनाएगी और छवि में दिखाए गए अनुसार बॉब को भेजेगी −

Message Privacy

लिसा एक संदेश बनाता है जैसे “यहां मेरी ईबुक की लिंक है जिसे आपने अनुरोध किया था”, यह बॉब की सार्वजनिक कुंजी के साथ संकेत करता है कि उसे बॉब के अनुरोध संदेश में मिला है और कुछ गुप्त कुंजी का उपयोग करके संदेश को एन्क्रिप्ट (Encrypt) भी करता है। जिसे HTTPS हैंडशेक के दौरान दोनों के बीच साझा किया जाता है।

अब, लिसा सुनिश्चित है कि केवल बॉब निजी कुंजी का उपयोग करके संदेश को डिकोड कर सकते हैं। जो बॉब द्वारा अकेले आयोजित किया जाता है। साथ ही, संदेश को बाधित करने वाला कोई व्यक्ति इसकी सामग्री को पुनर्प्राप्त नहीं कर पाएगा क्योंकि सामग्री केवल बॉब और एलिस द्वारा रखी गई एक गुप्त कुंजी द्वारा एन्क्रिप्ट (Encrypt) की गई है। यह लिसा को गारंटी देता है कि उसकी ईबुक तक पहुंच केवल बॉब को दी गई है।

PKI द्वारा निहित, दोनों विशेषताओं, प्रमाणीकरण और संदेश गोपनीयता को देखने के बाद, हम आगे देखते हैं कि बिटकॉइन कैसे पीकेआई का उपयोग करता है ताकि सार्वजनिक बही को सुरक्षित करने के लिए जिसका मैंने अध्याय “Bitcoin?”

Blockchain – Hashing

PKI में सबसे महत्वपूर्ण कार्य Hashing फ़ंक्शन है। एक Hashing function निश्चित आकार के डेटा के लिए किसी भी मनमाने आकार के डेटा को मैप करता है। Bitcoin SHA-256 hash function का उपयोग करता है जो 256 बिट्स (32 बाइट्स) के हैश (आउटपुट) का उत्पादन करता है। यह चित्र में चित्रित किया गया है−

Hashing

बॉब, लिसा के साथ एक आदेश रखते हुए, ऊपर दिखाए गए संदेश के समान एक संदेश बनाता है। यह संदेश एक Hashing function के माध्यम से हैशेड है जो 32 बाइट हैश का उत्पादन करता है। इस हैश की सुंदरता सभी व्यावहारिक उद्देश्यों के लिए हैश (256-बिट संख्या) संदेश की सामग्री के लिए अद्वितीय माना जाता है। यदि संदेश संशोधित किया गया है, तो Hash मान बदल जाएगा। इतना ही नहीं कि एक हैश मूल्य दिया, मूल संदेश को फिर से संगठित करना असंभव है।

हैशिंग के महत्व को देखने के बाद, हम बिटकॉइन में एक और विचार पर चलते हैं

Bitcoin – Mining

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

Mining

संदेश सभी जुड़े नोड्स (मशीनों) को जाता है। Diagram में कुछ नोड्स को Miner के रूप में चिह्नित किया गया है। ये ऐसी मशीनें हैं जो Bitcoin संदेश के Mining के लिए सॉफ्टवेयर का एक टुकड़ा चलाते हैं। मैं अब आपको समझाता हूं कि इस Mining का क्या मतलब है।

Mining Process

जैसा कि पूरे नेटवर्क को व्यापक रूप से Delivered किया गया है, नेटवर्क के प्रत्येक miner को किसी भी समय की अवधि में कई विक्रेताओं से कई संदेश प्राप्त होने की उम्मीद है। Miner क्या करता है वह इन संदेशों को एक ब्लॉक में जोड़ता है। यह छवि में सचित्र है –

Mining Process

संदेशों का एक ब्लॉक बनने के बाद, Miner पहले से वर्णित (Described) Hashing function का उपयोग करके ब्लॉक पर एक Hash बनाता है। अब, जैसा कि आप जानते हैं कि यदि कोई तीसरा पक्ष इस ब्लॉक की सामग्री को संशोधित (Revised) करता है, तो उसका हैश अमान्य हो जाएगा। संयोग से, प्रत्येक संदेश को Time stamped किया जाता है ताकि ब्लॉक के हैश मूल्य को प्रभावित किए बिना कोई भी अपने कालानुक्रमिक (Chronological) क्रम को संशोधित न कर सके। इस प्रकार, ब्लॉक में संदेश छेड़छाड़ से पूरी तरह से सुरक्षित हैं। इस तथ्य का उपयोग नेटवर्क में सभी लेनदेन को सुरक्षित करने के लिए कैसे किया जाता है, इसके बारे में आगे बताया गया है।

Chaining Blocks

विभिन्न Miners द्वारा बनाए गए ब्लॉकों को एक साथ Chain से बांधने के लिए तैयार किया जाता है जिन्हें वास्तव में वितरित सार्वजनिक खाता बही (Public ledger) के रूप में जाना जाता है।

Chaining Blocks

Chain में प्रत्येक ब्लॉक में कई संदेश (लेनदेन) होते हैं जैसा कि पहले चित्र 8 में देखा गया है। श्रृंखला में एक ब्लॉक किसी भी miner से आ सकता है। ब्लॉक की Chain बनाते समय, हम नियम का पालन करते हैं कि पिछले ब्लॉक का हैश वर्तमान ब्लॉक में जोड़ा जाता है।

इस प्रकार, ब्लॉक बनाते समय एक miner, श्रृंखला में अंतिम ब्लॉक के हैश को चुनता है, इसे अपने स्वयं के संदेशों के साथ जोड़ता है और अपने नए बनाए ब्लॉक के लिए एक हैश बनाता है। यह नया बनाया गया ब्लॉक अब श्रृंखला के लिए नया अंत बन गया है और इस प्रकार श्रृंखला बढ़ती रहती है क्योंकि miners द्वारा अधिक से अधिक ब्लॉक इसमें जोड़े जाते हैं।

Proof of Work

चूंकि सभी लेन-देन पर मुहर लगी है, इसलिए हमें पीयर-टू-पीयर नेटवर्क पर एक वितरित टाइमस्टैम्प सर्वर को लागू करने की आवश्यकता है। इसके लिए कुछ अतिरिक्त कार्यान्वयन की आवश्यकता होती है और यह है कि मैं अब जो वर्णन करूंगा उसका प्रमाण है प्रत्येक ब्लॉक में, अब हम Nonce नामक एक और आइटम जोड़ते हैं जैसा कि नीचे दिए गए चित्र में दिखाया गया है −

Proof of Work

Nonce एक ऐसी संख्या है जो ब्लॉक की हैश एक निश्चित मानदंड (criteria) को पूरा करती है। यह मानदंड हो सकता है कि उत्पन्न हैश के शून्य होने के लिए उसके चार अंक होने चाहिए।

इस प्रकार, उत्पन्न हैश 0100010101010xxx की तरह दिखाई देगा। आम तौर पर, माइनर 0 के Nonce वैल्यू से शुरू होता है और इसे तब तक बढ़ाता रहता है जब तक कि जेनरेट हैश Specified criteria को पूरा नहीं करता है।

ध्यान दें कि Hash generation random रूप से काम करती है और आपके नियंत्रण से बाहर है – यानी आप एक निश्चित हैश उत्पन्न करने के लिए हैश फ़ंक्शन को बाध्य (Bound) नहीं कर सकते हैं। इस प्रकार, चार प्रमुख शून्य के साथ Desired हैश उत्पन्न होने तक इसमें कई पुनरावृत्तियां (In repetition) हो सकती हैं। Bitcoin system में ब्लॉक उत्पन्न करने का expected time 10 मिनट है। एक बार जब miner सफलतापूर्वक ब्लॉक को बंद कर देता है, तो वह जारी करता है कि सिस्टम में यह अब chain का अंतिम ब्लॉक है।

ध्यान दें कि Valid block उत्पन्न करने के लिए कई miner प्रतिस्पर्धा कर रहे हैं। Bitcoin system उसे कुछ बिटकॉइन देकर पहला सफल Miner Provide करती है। सामान्य तौर पर, अधिक कंप्यूटिंग शक्ति वाला miner एक Starting winner हो सकता है। यह उन लोगों द्वारा पूरी system पर हमले का कारण बन सकता है जिनके पास एक विशाल Processing power है। मैं Attacks का description करूंगा और इस tutorial के अंत में इन्हें कैसे कम किया जाएगा।

Network & Mining

अब मैं ऊपर Described steps को मुख़्तसर में बताऊंगा; नेटवर्क में ऐसा ही होता है −

  • जो कोई भी तीसरे पक्ष से सेवाएं प्राप्त करना चाहता है, जिसने पहले नेटवर्क पर विज्ञापन दिया है, एक लेनदेन (वांछित प्राप्तकर्ता को संदेश) बनाता है।
  • एक निश्चित अवधि में, इस तरह के लेनदेन को बनाने वाले कई प्रेषक (खरीदार) और रिसीवर (विक्रेता) हो सकते हैं।
  • सभी लेनदेन नेटवर्क पर सभी नोड्स में प्रसारित किए जाते हैं। ध्यान दें कि यह आवश्यक नहीं है कि किसी दिए गए लेनदेन को नेटवर्क में प्रत्येक और प्रत्येक नोड तक पहुंचना चाहिए।
  • प्रत्येक नोड नए लेनदेन को एक ब्लॉक में असेंबल करता है। ध्यान दें कि प्रत्येक ब्लॉक में लेनदेन का सेट दूसरों द्वारा बनाए गए ब्लॉकों में सेट से स्वतंत्र है और स्वाभाविक रूप से दूसरों की तुलना में अलग होगा। इससे कोई फर्क नहीं पड़ता; सिस्टम यह सुनिश्चित करता है कि नेटवर्क पर प्रसारित प्रत्येक लेनदेन उचित समय पर कुछ ब्लॉक में शामिल हो जाए। आम तौर पर, प्रेषक अपने प्रयासों के लिए खननकर्ता को एक निश्चित मात्रा में बिटकॉइन की पेशकश करके नोड को प्रोत्साहित करेगा। miner उच्च प्रोत्साहन वाले लोगों को ब्लॉक में शामिल करने के लिए प्राथमिकता देने का विकल्प चुन सकता है।
  • नोड अब अपने इकट्ठे ब्लॉक के लिए प्रूफ-ऑफ-वर्क खोजने पर काम करता है।
  • जब नोड प्रूफ-ऑफ-वर्क पाता है, तो यह नेटवर्क पर इकट्ठे ब्लॉक को प्रसारित करता है।
  • नया ब्लॉक प्राप्त करने वाले नोड्स यह सत्यापित करने के बाद ही स्वीकार करेंगे कि ब्लॉक में सभी लेनदेन वैध हैं और पहले से ही खर्च नहीं किए गए हैं।
  • यदि ब्लॉक को मान्य माना जाता है, तो नोड जो अपने नए ब्लॉक पर काम कर रहा है, उसे अपने ब्लॉक में लेनदेन को फिर से सुनिश्चित करना होगा ताकि लेनदेन डुप्लिकेट न हो। नोड अब अपने नए बनाए ब्लॉक पर प्रूफ-ऑफ-वर्क खोजने पर काम करता है; ऐसा करते समय यह पिछले हैश के रूप में स्वीकृत ब्लॉक का हैश ले जाएगा।
  • इसी तरह, ब्लॉकचेन हमेशा के लिए बढ़ रहा है।

अब, जैसा कि हमने देखा है कि पूरी प्रणाली कैसे काम करती है, मुझे कुछ दुष्प्रभावों का वर्णन करने और उन्हें कैसे हल करना है।

Incentives to Miners

जैसा कि हमने अध्याय बिटकॉइन – माइनिंग में देखा, किसी भी समय किसी भी अवधि में कई लेनदेन के साथ एक Miners बाढ़ आ सकती है। एक ब्लॉक के लिए अधिकतम आकार पूर्व-परिभाषित प्रणाली में आवश्यक है कि ब्लॉक में केवल एक निश्चित संख्या में लेनदेन शामिल हो।

ब्लॉक में लेनदेन की संख्या पूर्व-परिभाषित ब्लॉक आकार और प्रत्येक ब्लॉक की औसत लंबाई से निर्धारित होती है। यहां एक महत्वपूर्ण टिप यह है कि Sender को अपने संदेश में बहुत अधिक जानकारी शामिल नहीं करनी चाहिए ताकि इसे संक्षिप्त किया जा सके और जिससे अन्य छोटे संदेशों से पहले इसे स्वीकार करने के लिए miner को प्रोत्साहित किया जा सके।

एक Sender आम तौर पर बिटकॉइंस की एक निश्चित संख्या के संदर्भ में एक लेनदेन शुल्क भी जोड़ देगा ताकि अपने ब्लॉक में शुरुआती Including के लिए miner को प्रोत्साहित (Encouraged) किया जा सके।

ब्लॉकचेन के निर्माण में अन्य परिणाम इसका मात्र आकार है। समय की अवधि के दौरान, पूरे ब्लॉकचैन नोड के लिए बहुत बड़ी हो सकती है ताकि इसे उसकी डिस्क पर Stored किया जा सके। यह Merkle Tree का उपयोग करके हल किया जाता है जो आगे Described है।

Merkle Tree

एक नोड में disk स्थान का मुद्दा आसानी से दूर हो जाता है क्योंकि एक ब्लॉक में सभी लेनदेन मर्कल ट्री में हैशेड होते हैं जैसा कि छवि में दिखाया गया है −

Merkle Tree

ब्लॉक हेडर में अब पिछले ब्लॉक का हैश है, एक नॉनकस, और एक मेर्कल ट्री में मौजूदा ब्लॉक में सभी लेनदेन का रूट हैश। चूंकि इस रुट हैश में ब्लॉक के भीतर सभी लेन-देन के हैश शामिल हैं, इन लेनदेन को डिस्क स्थान को बचाने के लिए छंटनी हो सकती है। तो अब आपका blockchain नीचे दी गई छवि की तरह दिखाई देगा –

Root Hash

इसके परिणामस्वरूप डिस्क स्थान में बहुत सारी बचत हो सकती है। इस रणनीति का उपयोग एक सामान्य ग्राहक द्वारा किया जाता है जो केवल दूसरों से भुगतान प्राप्त करने में रुचि रखता है। हालांकि, miners को पूर्ण ब्लॉकचेन को बचाने की आवश्यकता है। अब सवाल यह उठता है कि एक रिसीवर अपने मूल के अधिकार को प्राप्त सिक्के का पता लगाने की क्षमता के बिना भुगतान का सत्यापन कैसे करता है। यह आगे बताया गया है।

Payment Verification

एक ऐसे मामले पर विचार करें जिसके तहत एक विक्रेता (seller) के रूप में आप पहले किए गए एक निश्चित भुगतान को सत्यापित करना चाहते हैं। जैसा कि blockchain आप अपनी मशीन पर रख रहे हैं उसमें केवल ब्लॉक हेडर हैं जैसा कि पहले के आंकड़े में दिखाया गया है, जो लेनदेन आप खोज रहे हैं वह आपके ब्लॉकचेन की कॉपी में गायब है।

अब आप ब्लॉकचैन की अपनी कॉपी में पीछे की ओर तब तक खोज सकते हैं जब तक आपको एक ऐसा ब्लॉक न मिल जाए जिसमें Desired लेनदेन समयावधि में हो। अब, चयनित ब्लॉक के मर्कल ट्री का अनुरोध करें और आपके पास वह लेनदेन होगा जिसकी आपको तलाश है। इसका चित्र नीचे दिया गया है –

Payment Verification

यहां, हम मानते हैं कि आप Tx103 की तलाश कर रहे हैं। यद्यपि (अगरचे) आप Tx103 की सामग्री को देखने में सक्षम नहीं हो सकते हैं, आप जानते हैं कि यह उस ब्लॉक को स्वीकार कर लिया गया है जिसके अंतर्गत यह है और chain के सभी बाद के ब्लॉक। इस प्रकार, आप सुरक्षित रूप से इस लेनदेन पर भरोसा कर सकते हैं और अपने व्यवसाय के साथ आगे बढ़ सकते हैं।

Resolving Conflicts

जैसा कि हमने देखा है कि bitcoin नेटवर्क में कई miner होते हैं। यह संभव है, कि दो अलग-अलग miner एक ही समय में proof के काम को हल करते हैं और इस प्रकार श्रृंखला में अंतिम ज्ञात ब्लॉक में अपने ब्लॉक को जोड़ते हैं। इसका चित्र नीचे चित्र में दिया गया है –

Resolving Conflicts

अब, ब्लॉक 3 के बाद हमारी दो शाखाएँ हैं। दोनों शाखाएँ मान्य हैं। तो अगले खनन किए गए ब्लॉक को दोनों शाखाओं में जोड़ा जा सकता है। मान लीजिए, miners नए खनन किए गए ब्लॉक को ब्लॉक 104-ए में जोड़ता है, ब्लॉक 104-ए युक्त शाखा ब्लॉक 104-बी वाली शाखा से अधिक लंबी होगी। इसका चित्र नीचे चित्र में दिया गया है –

Bitcoin Architecture

Bitcoin आर्किटेक्चर में, सबसे लंबी branches हमेशा जीतती है और छोटे लोगों को पर्स दिया जाता है। तो ब्लॉक 104-बी को शुद्ध करना होगा। इस ब्लॉक को शुद्ध करने से पहले, इस ब्लॉक के सभी लेन-देन को लेन-देन पूल में लौटा दिया जाएगा ताकि उन्हें खनन करके भविष्य के किसी ब्लॉक में जोड़ा जाए। इस तरह से संघर्षों का समाधान होता है और सिस्टम द्वारा केवल एक ही ब्लॉक की श्रृंखला को बनाए रखा जाता है।

Privacy

जैसा कि सभी बिटकॉइन लेनदेन को रिकॉर्ड करने वाला खाता बही वास्तव में सार्वजनिक किया जाता है, गोपनीयता दांव पर है। दुनिया में कोई भी यह जानने में सक्षम होगा कि किसने किसे भुगतान किया? पारंपरिक बैंकिंग प्रणाली अपने रिकॉर्ड को गोपनीय रखकर इस तरह की गोपनीयता बनाए रखने में सक्षम है।

Bitcoin सिस्टम में गोपनीयता एक अलग रणनीति द्वारा प्राप्त की जाती है। ध्यान दें कि हमने कहा कि एक बिटकॉइन भेजने वाले को यह जानना होगा कि किसको भुगतान करना है। इसलिए वह उस विक्रेता की सार्वजनिक कुंजी मांगता है जिससे वह भुगतान करने की इच्छा रखता है। यह सार्वजनिक कुंजी अनाम (गुमनाम) हो सकती है।

इस अर्थ में, कुछ सेवाओं के विक्रेता के रूप में, जब कोई आपसे पूछता है कि भुगतान कहां भेजना है, तो आप बस उसे अपनी public key भेजेंगे। आपके साथ इस public key का जुड़ाव खाता बही में कहीं भी दर्ज नहीं है। इस तरह से इस लेनदेन के बाहर किसी को भी पता होगा कि कितने पैसे का लेन-देन किया जाता है और किस public key से पैसे का भुगतान किया जाता है।

प्रत्येक लेन-देन के लिए एक उच्च स्तर की गोपनीयता प्राप्त करने के लिए, आप प्रत्येक लेनदेन के लिए एक new private / public key उत्पन्न कर सकते हैं ताकि आपके द्वारा किए गए कई लेनदेन एक तीसरे पक्ष द्वारा एक साथ Grouped न हो सकें। एक बाहरी व्यक्ति के लिए, इसका सीधा मतलब यह होगा कि छोटे मूल्यों के कई लेनदेन किए गए थे और वे कभी भी एक सामान्य source से नहीं जुड़े होंगे।

अंत में, कोई भी ऑनलाइन इंटरनेट आधारित प्रणाली गालियों की चपेट में है। अब मैं bitcoin सिस्टम पर कुछ संभावित प्रकार के हमलों का वर्णन करूंगा और उन लोगों को कैसे कम किया जा सकता है।

Bitcoin – Mitigating Attacks

मैं bitcoin system में तीन अलग-अलग प्रकार के संभावित हमलों पर चर्चा करूंगा –

Race Attack

एक हमलावर के रूप में, आप तेजी से उत्तराधिकार में विभिन्न विक्रेताओं को एक ही coin भेज सकते हैं, शायद दो अलग-अलग मशीनों का उपयोग करके। यदि विक्रेता सामान देने से पहले ब्लॉक की पुष्टि का इंतजार नहीं करते हैं, तो उन्हें बहुत जल्द पता चल जाएगा कि miner प्रक्रिया के दौरान लेनदेन को अस्वीकार कर दिया गया था। इस तरह के हमले का समाधान यह है कि सामान भेजने से पहले विक्रेता (seller) को कम से कम एक ब्लॉक की पुष्टि (Confirmation) का इंतजार करना चाहिए।

Finney Attack

इस मामले में, हमलावर miner है। Miner अपने लेनदेन के साथ ब्लॉक करता है और इसे सिस्टम में जारी नहीं करता है। वह अब एक दूसरे लेन-देन में समान coins का उपयोग करता है और फिर Pre-mining block को जारी करता है। जाहिर है, दूसरे miners द्वारा अंततः दूसरे लेनदेन को अस्वीकार कर दिया जाएगा, लेकिन इसमें कुछ समय लगेगा। इस जोखिम को कम करने के लिए, विक्रेता को माल छोड़ने से पहले कम से कम छह ब्लॉक पुष्टिकरण का इंतजार करना चाहिए।

The 51% Attack

इस तरह के हमले में, हम एक अव्यवहारिक धारणा के साथ आते हैं कि कोई व्यक्ति नेटवर्क की कंप्यूटिंग शक्ति का 51% हिस्सा है। इस तरह के हमले में हमलावर एक Private blockchain की Mine करता है जहां वह coins को दोहराता है।

जैसा कि वह Computing power के majority का मालिक है, उसे गारंटी है कि किसी समय उसका Private blockchain “ईमानदार” नेटवर्क की chain से अधिक लंबा होगा। उसके बाद वह अपने Private blockchain को सिस्टम में जारी करता है, जो पहले किए गए सभी लेन-देन को Invalid blockchain में दर्ज किया गया है जो Invalid है।

इस तरह का हमला काल्पनिक है क्योंकि यह Computing power हासिल करने के लिए बहुत महंगा है जो पूरे नेटवर्क की कंप्यूटिंग शक्ति के 51% के बराबर या उससे अधिक है।

ये पूरा आर्टिकल www.tutorialspoint.com से लिया गया है। जो English में लिखा हुआ है। हमने Blockchain को Hindi में convert किया है।