ब्लॉकचेन 101: एक विज़ुअल डेमो
ब्लॉकचेन तकनीक कैसे काम करती है, इसका एक प्रदर्शन, जिसमें हैशिंग, ब्लॉक, चेन, डिस्ट्रिब्यूटेड लेजर और टोकन शामिल हैं ताकि ब्लॉकचेन अवधारणाओं को मूर्त और सहज बनाया जा सके।
Date published: 13 नवंबर 2016
एंडर्स ब्राउनवर्थ का विज़ुअल प्रदर्शन कि ब्लॉकचेन तकनीक कैसे काम करती है, जिसमें SHA-256 हैशिंग, ब्लॉक, खनन, ब्लॉकचेन, डिस्ट्रिब्यूटेड लेजर, टोकन और बहुत कुछ शामिल है।
यह ट्रांसक्रिप्ट एंडर्स ब्राउनवर्थ द्वारा प्रकाशित मूल वीडियो ट्रांसक्रिप्ट (opens in a new tab) की एक सुलभ कॉपी है। इसे पढ़ने में आसानी के लिए थोड़ा संपादित किया गया है।
SHA-256 हैश (0:01)
यह एक ब्लॉकचेन डेमो है। हम इसे बहुत ही विज़ुअल तरीके से करने जा रहे हैं — हम ब्लॉकचेन के प्रमुख हिस्सों को एक-एक करके समझाकर इसे समझना बहुत आसान बनाने जा रहे हैं।
शुरू करने से पहले, हमें SHA-256 हैश नामक इस चीज़ पर एक नज़र डालनी होगी। एक हैश रैंडम नंबरों के एक समूह जैसा दिखता है, और अनिवार्य रूप से यह किसी डिजिटल डेटा का फिंगरप्रिंट होता है। यह बस ऐसा होता है कि मैं इस बॉक्स में जो कुछ भी टाइप करता हूं, यह उसका फिंगरप्रिंट बन जाता है। अगर मैं इस बॉक्स में अपना नाम "Anders" टाइप करता हूं, तो आप देखेंगे कि हैश बदल गया है। वास्तव में, हर बार जब मैंने कोई अक्षर टाइप किया, तो यह बदल गया।
तो यह "Anders" नाम का हैश है, सभी छोटे अक्षरों (lowercase) में — यह 19ea से शुरू होता है। अगर मैं इसे हटा दूं और फिर से "Anders" टाइप करूं, तो आप देख सकते हैं कि यह 19ea से शुरू होता है — बिल्कुल वही हैश। इस अर्थ में यह इस डेटा का एक डिजिटल फिंगरप्रिंट है। यहां जो भी डेटा है, हर बार जब आप बिल्कुल वही डेटा टाइप करते हैं तो आपको बिल्कुल वही हैश मिलता है।
मैं जो चाहूं टाइप कर सकता हूं। आप कुछ भी नहीं रख सकते — e3b0 — यह कुछ भी नहीं (nothing) का हैश है। या आप बहुत सारी चीज़ें टाइप कर सकते हैं। वास्तव में, आप यहां पूरी लाइब्रेरी ऑफ कांग्रेस (Library of Congress) डाल सकते हैं और आपको एक हैश मिल जाएगा। दिलचस्प बात यह है कि, चाहे थोड़ी सी जानकारी हो, कोई जानकारी न हो, या पूरी लाइब्रेरी ऑफ कांग्रेस हो, आपको हमेशा एक हैश मिलेगा जो इतना ही लंबा होगा। आप पहले से यह अनुमान नहीं लगा पाएंगे कि यह क्या है — आपको यह पता लगाने के लिए डेटा डालना होगा कि हैश क्या है, लेकिन आप चाहे कितनी भी बार बिल्कुल वही जानकारी डालें, आपको हमेशा बिल्कुल वही हैश मिलेगा।
ब्लॉक (2:10)
मैं जो करने जा रहा हूं वह हैश के इस विचार को उस चीज़ में विस्तारित करना है जिसे हम ब्लॉक कहने जा रहे हैं। एक ब्लॉक बिल्कुल हैश की तरह होता है, लेकिन डेटा सेक्शन को तीन सेक्शन में बांट दिया गया है: एक जिसे "ब्लॉक" कहा जाता है — बस एक नंबर, यह ब्लॉक नंबर 1 है — एक "नॉन्स", जो बस एक और नंबर है, और फिर कुछ डेटा बिल्कुल वैसे ही जैसे हमारे पास पहले था।
इस सारी जानकारी का हैश यहां नीचे है, और यह चार शून्य (zeros) से शुरू होता है। यह अपेक्षाकृत एक असामान्य हैश है — उनमें से अधिकांश इस तरह चार शून्य से शुरू नहीं होने वाले हैं। लेकिन यह होता है, और क्योंकि यह होता है, पूरी तरह से मनमाने ढंग से, मैं यह कहने जा रहा हूं कि यह ब्लॉक "हस्ताक्षरित (signed)" है।
क्या होगा अगर मैं इस जानकारी के किसी भी हिस्से को बदल दूं? मान लीजिए कि मैं यहां कुछ टाइप करता हूं — हैश बदलने वाला है, और इसके चार शून्य से शुरू होने की क्या संभावना है? बहुत कम। मैं बस "hi" कहने जा रहा हूं — उसे देखें, यह हैश चार शून्य से शुरू नहीं होता है, और बैकग्राउंड लाल हो गया है। तो अब आप जानते हैं कि इस जानकारी वाला यह ब्लॉक एक वैध या हस्ताक्षरित ब्लॉक नहीं है।
यहीं पर नॉन्स काम आता है। नॉन्स बस एक नंबर है जिसे आप एक ऐसा मान खोजने की कोशिश करने के लिए सेट कर सकते हैं जो हैश को फिर से चार शून्य से शुरू कर दे। मैं यहां पूरे दिन बैठकर नंबर टाइप कर सकता हूं, लेकिन मेरे पास यह छोटा "Mine" बटन है। जब मैं इसे दबाऊंगा तो क्या होगा कि यह 1 से ऊपर के सभी नंबरों को चलाकर यह खोजने की कोशिश करेगा कि हैश चार शून्य से कहां शुरू होता है। इस प्रक्रिया को खनन कहा जाता है।
यह 59,396 पर रुक गया है — और यह संयोग से एक ऐसा हैश निकालता है जो चार शून्य से शुरू होता है। यह मेरी इस परिभाषा को संतुष्ट करता है कि एक हस्ताक्षरित ब्लॉक क्या है।
ब्लॉकचेन (5:16)
तो क्या आप मुझे बता सकते हैं कि ब्लॉकचेन क्या है? यह शायद बस इन ब्लॉकों की एक चेन है। यह मेरी ब्लॉकचेन है — ब्लॉक नंबर एक में पहले की तरह ही एक नॉन्स है, एक डेटा क्षेत्र है, लेकिन फिर इसमें यह "पिछला (previous)" फ़ील्ड है जो शून्य का एक समूह है। आगे बढ़ते हुए, यह ब्लॉक दो, ब्लॉक तीन, ब्लॉक चार है — इस ब्लॉकचेन पर पांच ब्लॉक हैं।
प्रत्येक ब्लॉक के लिए "पिछला" फ़ील्ड उसके पहले वाले ब्लॉक का हैश है। आप देख सकते हैं कि प्रत्येक ब्लॉक अपने से पहले वाले ब्लॉक की ओर पीछे की तरफ इशारा करता है। उस पहले ब्लॉक का कोई पिछला नहीं है, इसलिए यह बस शून्य का एक समूह है।
क्या होगा अगर मैं यहां कुछ जानकारी बदल दूं? यह इस ब्लॉक के हैश को बदल देगा और इसे अमान्य कर देगा। लेकिन क्या होगा अगर मैं किसी पहले के ब्लॉक में कुछ बदल दूं? यह उस हैश को बदल देगा, लेकिन वह हैश अगले ब्लॉक के "पिछले" फ़ील्ड में कॉपी हो जाता है, इसलिए यह दोनों ब्लॉकों को तोड़ देता है। हम अतीत में किसी बिंदु तक जितना चाहें उतना पीछे जा सकते हैं और उस ब्लॉक को तोड़ सकते हैं, और यह तब से लेकर अब तक के सभी ब्लॉकों को तोड़ देगा। इससे पहले की हर चीज़ अभी भी हरी है, लेकिन इसके बाद की हर चीज़ लाल हो जाती है।
अगर मैं जाकर अंतिम ब्लॉक को बदलता हूं, तो मुझे बस उस एक ब्लॉक का फिर से खनन करना होगा। अगर मैं समय में बहुत पीछे जाता हूं और कोई बदलाव करता हूं, तो मुझे इसका, इसका, इसका और इसका खनन करना होगा। जितने अधिक ब्लॉक बीतते हैं, बदलाव करना उतना ही कठिन होता जाता है। इस तरह एक ब्लॉकचेन म्यूटेशन का विरोध करती है — बदलाव का विरोध करती है।
डिस्ट्रिब्यूटेड ब्लॉकचेन (9:18)
तो मुझे कैसे पता चलेगा कि मेरी ब्लॉकचेन का फिर से खनन किया गया है? अब हमारे पास एक डिस्ट्रिब्यूटेड ब्लॉकचेन है। यह बिल्कुल पिछली ब्लॉकचेन की तरह दिखती है, लेकिन यह पीयर A है। अगर आप यहां नीचे जाते हैं, तो आप पीयर B देख सकते हैं, और इसके पास ब्लॉकचेन की बिल्कुल वैसी ही कॉपी है। एक पीयर C भी है — यह हमेशा के लिए चल सकता है। इंटरनेट पर कई पीयर हैं, और उन सभी के पास ब्लॉकचेन की पूरी कॉपी है।
अगर मैं इस हैश को देखूं, तो यह e4b है। अगर मैं अगले वाले पर नीचे जाऊं, तो उसमें भी e4b है। वे समान होने चाहिए। अब अगर मैं यहां जाऊं और कुछ टाइप करूं, इस ब्लॉक का फिर से खनन करूं, और फिर अगले ब्लॉकों का खनन करूं — सभी चेन हरी हैं। हालांकि, यह चेन कहती है कि अंतिम हैश e4b है, नीचे वाली भी e4b कहती है, और यह बीच वाली 4cae कहती है।
तो मैं इस एक छोटे से हैश को देखकर ही जान जाता हूं कि इस ब्लॉकचेन में कुछ गलत है। भले ही सभी हैश चार शून्य से शुरू होते हैं, यह वाला अलग है। यह अनिवार्य रूप से एक के खिलाफ दो है — हम यहां एक छोटा सा लोकतंत्र हैं। इसलिए e4b जीतता है। इस तरह कई अलग-अलग कंप्यूटरों पर पूरी तरह से डिस्ट्रिब्यूटेड कॉपी होने से आप जल्दी से देख सकते हैं कि क्या सभी ब्लॉक समान हैं।
ब्लॉकचेन में बहुत आसानी से 400,000 या 500,000 ब्लॉक हो सकते हैं। उन सभी की जांच करने के बजाय, आपको वास्तव में बस सबसे हालिया वाले के हैश को देखना है, और आप देख सकते हैं कि क्या अतीत में कुछ भी बदला गया था।
टोकन (12:17)
बस यही पूरी बात है — इसमें इससे ज्यादा कुछ नहीं है। लेकिन यह एक तरह से वास्तव में उपयोगी नहीं है क्योंकि हमारे पास डेटा क्षेत्र में ऐसा कुछ भी नहीं है जिसका कोई मतलब हो। हम वास्तव में जो चाहते हैं वह एक टोकन है।
अब मेरे पास ये टोकन हैं — पूरी तरह से मनमाने ढंग से, मैं उन्हें डॉलर कह रहा हूं। हमारे पास डार्सी से बिंगले को पच्चीस डॉलर, एलिजाबेथ से जेन को चार डॉलर और सत्ताईस सेंट हैं — आप समझ गए होंगे। ये सभी लेन-देन हो रहे हैं, और मैंने बस डेटा को इन लेन-देन से बदल दिया है। पहले की तरह ही, अगर हम नीचे जाते हैं तो हम देखते हैं कि हमारे पास उसी ब्लॉकचेन की ये सभी अन्य प्रतियां हैं।
यहीं पर अपरिवर्तनीयता महत्वपूर्ण है। अगर मैं यहां पीछे कुछ बदलता हूं, तो हैश अन्य प्रतियों पर मौजूद हैश से अलग होने वाला है। यह बहुत महत्वपूर्ण है कि यदि आप समय में पीछे जाते हैं और कोई मान बदलते हैं, तो हम उस पर ध्यान देंगे। पैसे के साथ यह बहुत महत्वपूर्ण है कि आप हिसाब न खोएं, और ब्लॉकचेन का उपयोग करने का पूरा उद्देश्य यही है — अतीत में हुई चीजों में किसी भी प्रकार के संशोधन का विरोध करना।
एक बात जिसका मैं उल्लेख करूंगा: हम यह सूचीबद्ध नहीं कर रहे हैं कि "डार्सी के पास सौ डॉलर हैं और वह बिंगले को 25 दे रहा है।" हम केवल पैसे की आवाजाही को याद रख रहे हैं, बैंक खाते के बैलेंस को नहीं। इससे यह सवाल उठता है — क्या डार्सी के पास $25 हैं?
कॉइनबेस लेन-देन (14:34)
ब्लॉकचेन के इस संस्करण में हमारे पास एक समस्या है: हम वास्तव में नहीं जानते कि डार्सी के पास $25 हैं या नहीं। तो आइए एक कॉइनबेस लेन-देन को देखें। हम अपने ब्लॉकों में एक कॉइनबेस लेन-देन जोड़ते हैं — यह कहता है कि हम हवा से सौ डॉलर का आविष्कार करने जा रहे हैं और इसे एंडर्स को देने जा रहे हैं। इस ब्लॉक में कोई अन्य लेन-देन नहीं है क्योंकि इससे पहले किसी के पास कोई पैसा नहीं था।
अगले ब्लॉक में, एक और सौ डॉलर कहीं से आते हैं और एंडर्स के पास जाते हैं। अब हमारे पास कुछ लेन-देन हैं — वे सभी एंडर्स की ओर से हैं क्योंकि इस समय केवल मेरे पास ही पैसा है। मैं अपने दस डॉलर सोफी को भेज रहा हूं। क्या मेरे पास दस डॉलर हैं? हां — मैं पीछे मुड़कर देखता हूं और पाता हूं कि कॉइनबेस लेन-देन ने मुझे सौ दिए थे, इसलिए मेरे पास कम से कम दस हैं।
आप इन सभी को जोड़ते हैं और वे सौ से अधिक नहीं होते हैं। यह मुद्रा के एक बुनियादी नियम का पालन करता है: आप हवा से पैसा नहीं बना सकते हैं, और इसका फैलाव नियंत्रित होता है।
अगर हम समय में आगे बढ़ते हैं, तो हम देखते हैं कि जैक्सन एलेक्सा को दो डॉलर दे रहा है। क्या जैक्सन के पास वास्तव में दो डॉलर हैं? हम एक ब्लॉक पीछे जाते हैं और देखते हैं कि एमिली को एंडर्स से दस डॉलर मिले थे और उसने जैक्सन को दस दिए थे। तो जैक्सन के पास पैसा है। हम पीछे जा सकते हैं और इसका पता लगा सकते हैं — "पिछले" फ़ील्ड के होने का यह एक लाभ है।
समापन (16:30)
यह एक बुनियादी ब्लॉकचेन है जिसके ऊपर एक मुद्रा चल रही है। जैसा कि आप जानते हैं, ब्लॉकचेन की कई प्रतियां होती हैं — हर किसी के पास एक प्रति होती है। अगर हम कुछ म्यूटेट करते हैं और इसे छह डॉलर कर देते हैं, तो ब्लॉक अमान्य हो जाते हैं और अन्य प्रतियों से सहमत नहीं होते हैं। यह छेड़छाड़ का विरोध करता है, जो आप एक मुद्रा के लिए चाहते हैं। यह उन चीजों के लिए बहुत अच्छी तरह से काम करता है जो छोटी और लेन-देन वाली होती हैं।
ब्लॉकचेन अतीत में क्या हुआ है, इस पर सहमति को संभालने का एक बहुत ही कुशल तरीका है — यह अपरिवर्तनीय इतिहास जो समय के साथ आगे बढ़ता है। हम कुछ मुख्य बिंदुओं को छोड़ रहे हैं, लेकिन अगर आप डेमो में गहराई से जाते हैं और इन चीजों पर क्लिक करते हैं और इसके साथ खेलते हैं, तो आपको इस बात का बेहतर और बेहतर विचार मिलेगा कि यह कैसे काम करता है।