मुख्य आशयावर जा

ब्लॉकचेन 101: एक व्हिज्युअल डेमो

ब्लॉकचेन तंत्रज्ञान कसे कार्य करते याचे प्रात्यक्षिक, ज्यामध्ये हॅशिंग, ब्लॉक्स, चेन्स, डिस्ट्रिब्युटेड लेजर्स आणि टोकन्स समाविष्ट आहेत जेणेकरून ब्लॉकचेन संकल्पना मूर्त आणि समजण्यास सोप्या होतील.

Date published: 13 नोव्हेंबर, 2016

अँडर्स ब्राउनवर्थ यांचे ब्लॉकचेन तंत्रज्ञान कसे कार्य करते याचे व्हिज्युअल प्रात्यक्षिक, ज्यामध्ये SHA-256 हॅशिंग, ब्लॉक्स, खनन, ब्लॉकचेन्स, डिस्ट्रिब्युटेड लेजर्स, टोकन्स आणि बरेच काही समाविष्ट आहे.

ही ट्रान्सक्रिप्ट अँडर्स ब्राउनवर्थ यांनी प्रकाशित केलेल्या मूळ व्हिडिओ ट्रान्सक्रिप्टची (opens in a new tab) एक अ‍ॅक्सेसिबल प्रत आहे. वाचनीयतेसाठी यात थोडे संपादन केले आहे.

SHA-256 हॅश (0:01)

हा एक ब्लॉकचेन डेमो आहे. आपण हे अतिशय व्हिज्युअल पद्धतीने करणार आहोत — ब्लॉकचेन म्हणजे काय याच्या मुख्य भागांमधून टप्प्याटप्प्याने जाऊन आपण हे समजायला अतिशय सोपे बनवणार आहोत.

सुरुवात करण्यापूर्वी, आपल्याला SHA-256 हॅश नावाच्या या गोष्टीवर एक नजर टाकणे आवश्यक आहे. हॅश हा काही यादृच्छिक संख्यांच्या समूहासारखा दिसतो, आणि मुळात तो काही डिजिटल डेटाचा फिंगरप्रिंट असतो. योगायोगाने, मी या बॉक्समध्ये जे काही टाईप करतो त्याचा तो फिंगरप्रिंट आहे. जर मी माझे नाव "Anders" या बॉक्समध्ये टाईप केले, तर तुम्हाला दिसेल की हॅश बदलला आहे. खरे तर, मी प्रत्येक वेळी अक्षर टाईप केल्यावर तो बदलला.

तर हा "Anders" या नावाचा हॅश आहे, सर्व लोअरकेसमध्ये — तो 19ea ने सुरू होतो. जर मी ते खोडून पुन्हा "Anders" टाईप केले, तर तुम्हाला दिसेल की तो 19ea ने सुरू होतो — अगदी तोच हॅश. त्या अर्थाने हा या डेटाचा डिजिटल फिंगरप्रिंट आहे. येथे जो काही डेटा आहे, प्रत्येक वेळी तुम्ही अगदी तोच डेटा टाईप केल्यास तुम्हाला अगदी तोच हॅश मिळतो.

मी मला हवे ते काहीही टाईप करू शकतो. तुम्ही काहीही नसू शकता — e3b0 — हा कशाचाही नसलेला हॅश आहे. किंवा तुम्ही खूप साऱ्या गोष्टी टाईप करू शकता. खरे तर, तुम्ही येथे लायब्ररी ऑफ काँग्रेस टाकू शकता आणि तुम्हाला एक हॅश मिळेल. मनोरंजक गोष्ट अशी आहे की, माहितीचे प्रमाण थोडे असले, कोणतीही माहिती नसली, किंवा संपूर्ण लायब्ररी ऑफ काँग्रेस असली तरीही, तुम्हाला नेहमी एवढाच लांब हॅश मिळेल. तुम्ही याचा आधीच अंदाज लावू शकणार नाही — हॅश काय आहे हे शोधण्यासाठी तुम्हाला डेटा टाकावाच लागेल, परंतु तुम्ही कितीही वेळा अगदी तीच माहिती टाकली तरी तुम्हाला नेहमी अगदी तोच हॅश मिळेल.

ब्लॉक (2:10)

मी काय करणार आहे तर हॅशच्या या कल्पनेचा विस्तार करून त्याला आपण ब्लॉक म्हणणार आहोत. ब्लॉक हा अगदी हॅशसारखाच असतो, परंतु डेटा विभाग तीन विभागांमध्ये विभागला गेला आहे: एकाला "ब्लॉक" म्हणतात — फक्त एक संख्या, हा ब्लॉक क्रमांक 1 आहे — एक "नॉन्स", जी फक्त दुसरी एक संख्या आहे, आणि नंतर पूर्वीसारखाच काही डेटा.

या सर्व माहितीचा हॅश खाली येथे आहे, आणि तो चार शून्यांनी सुरू होतो. हा तुलनेने असामान्य हॅश आहे — त्यापैकी बहुतांश असे चार शून्यांनी सुरू होणार नाहीत. पण हा होतो, आणि तो तसा होत असल्यामुळे, पूर्णपणे स्वेच्छेने, मी असे म्हणेन की हा ब्लॉक "स्वाक्षरीकृत" आहे.

जर मी या माहितीचा कोणताही भाग बदलला तर काय होईल? समजा मी येथे काहीतरी टाईप केले — हॅश बदलणार आहे, आणि तो चार शून्यांनी सुरू होण्याची शक्यता किती आहे? खूपच कमी. मी फक्त "hi" म्हणणार आहे — ते पहा, हा हॅश चार शून्यांनी सुरू होत नाही, आणि पार्श्वभूमी लाल झाली आहे. तर आता तुम्हाला माहित आहे की ही माहिती असलेला हा ब्लॉक वैध किंवा स्वाक्षरीकृत ब्लॉक नाही.

तिथेच नॉन्सचा उपयोग होतो. नॉन्स ही फक्त एक संख्या आहे जी तुम्ही सेट करून असे मूल्य शोधण्याचा प्रयत्न करू शकता ज्यामुळे हॅश पुन्हा चार शून्यांनी सुरू होईल. मी दिवसभर येथे बसून संख्या टाईप करू शकतो, पण माझ्याकडे हे छोटे "Mine" बटण आहे. जेव्हा मी ते दाबेन तेव्हा काय होईल की ते 1 पासून वरच्या सर्व संख्यांमधून जाऊन अशी संख्या शोधण्याचा प्रयत्न करेल जिथे हॅश चार शून्यांनी सुरू होतो. या प्रक्रियेला खनन म्हणतात.

ते 59,396 वर थांबले आहे — आणि योगायोगाने त्याचा हॅश चार शून्यांनी सुरू होणाऱ्या कशात तरी बदलतो. हे स्वाक्षरीकृत ब्लॉक म्हणजे काय याच्या माझ्या व्याख्येची पूर्तता करते.

ब्लॉकचेन (5:16)

तर तुम्ही मला सांगू शकता का की ब्लॉकचेन म्हणजे काय? ती कदाचित या ब्लॉक्सची फक्त एक चेन आहे. ही माझी ब्लॉकचेन आहे — ब्लॉक क्रमांक एकमध्ये पूर्वीसारखाच एक नॉन्स आहे, एक डेटा क्षेत्र आहे, पण नंतर त्यात हे "previous" फील्ड आहे जे शून्यांचा एक समूह आहे. पुढे जाताना, हा ब्लॉक दोन, ब्लॉक तीन, ब्लॉक चार आहे — या ब्लॉकचेनवर पाच ब्लॉक्स आहेत.

प्रत्येक ब्लॉकसाठी "previous" फील्ड हा त्याच्या आधीच्या ब्लॉकचा हॅश असतो. तुम्ही पाहू शकता की प्रत्येक ब्लॉक त्याच्या आधीच्या ब्लॉककडे मागे निर्देश करतो. त्या पहिल्या ब्लॉकला कोणताही मागील ब्लॉक नाही, त्यामुळे तो फक्त शून्यांचा एक समूह आहे.

जर मी येथे काही माहिती बदलली तर काय होईल? ते या ब्लॉकचा हॅश बदलेल आणि त्याला अवैध करेल. पण जर मी आधीच्या ब्लॉकमध्ये काही बदलले तर काय? ते तो हॅश बदलेल, पण तो हॅश पुढील ब्लॉकच्या "previous" फील्डमध्ये कॉपी केला जातो, त्यामुळे ते दोन्ही ब्लॉक्स खंडित करते. आपण भूतकाळात आपल्याला हवे तितके मागे जाऊन तो ब्लॉक खंडित करू शकतो, आणि ते तेव्हापासूनचे सर्व ब्लॉक्स खंडित करेल. त्याआधीचे सर्व काही अजूनही हिरवे आहे, पण त्यानंतरचे सर्व काही लाल होते.

जर मी जाऊन शेवटचा ब्लॉक बदलला, तर मला फक्त तो एक ब्लॉक पुन्हा-खनन करावा लागेल. जर मी खूप मागे जाऊन बदल केला, तर मला हा, हा, हा आणि हा ब्लॉक खनन करावा लागेल. जितके जास्त ब्लॉक्स पुढे जातील, तितका बदल करणे कठीण आणि कठीण होत जाते. अशा प्रकारे ब्लॉकचेन बदलाला विरोध करते — अपरिवर्तनीय राहते.

डिस्ट्रिब्युटेड ब्लॉकचेन (9:18)

तर माझी ब्लॉकचेन पुन्हा-खनन केली गेली आहे हे मला कसे कळेल? आता आपल्याकडे एक डिस्ट्रिब्युटेड ब्लॉकचेन आहे. ती अगदी मागील ब्लॉकचेनसारखीच दिसते, पण हा पीअर A आहे. जर तुम्ही खाली गेलात, तर तुम्हाला पीअर B दिसेल, आणि त्याच्याकडे ब्लॉकचेनची अगदी तंतोतंत प्रत आहे. एक पीअर C देखील आहे — हे असेच चालू राहू शकते. इंटरनेटवर अनेक पीअर्स आहेत, आणि त्या सर्वांकडे ब्लॉकचेनची संपूर्ण प्रत आहे.

जर मी या हॅशकडे पाहिले, तर तो e4b आहे. जर मी खाली पुढच्याकडे गेलो, तर त्यातही e4b आहे. ते एकसारखेच असले पाहिजेत. आता जर मी येथे जाऊन काहीतरी टाईप केले, हा ब्लॉक पुन्हा-खनन केला, आणि नंतर पुढील ब्लॉक्स खनन केले — सर्व चेन्स हिरव्या आहेत. तथापि, ही चेन सांगते की शेवटचा हॅश e4b आहे, तळाची चेन देखील e4b सांगते, आणि ही मधली चेन 4cae सांगते.

त्यामुळे या एका छोट्या हॅशकडे नुसती नजर टाकून मला समजते की या ब्लॉकचेनमध्ये काहीतरी चुकीचे आहे. जरी सर्व हॅश चार शून्यांनी सुरू होत असले तरी, हा वेगळा आहे. हे मुळात एकाविरुद्ध दोन असे आहे — आपण येथे एक छोटी लोकशाही आहोत. त्यामुळे e4b जिंकतो. अशा प्रकारे अनेक वेगवेगळ्या संगणकांवर पूर्णपणे डिस्ट्रिब्युटेड प्रत असल्यामुळे सर्व ब्लॉक्स एकसारखे आहेत की नाही हे तुम्हाला पटकन पाहता येते.

ब्लॉकचेन्समध्ये 400,000 किंवा 500,000 ब्लॉक्स अगदी सहज असू शकतात. त्या सर्वांमधून तपासणी करण्याऐवजी, तुम्हाला खरोखर फक्त सर्वात अलीकडील ब्लॉकचा हॅश पाहावा लागतो, आणि भूतकाळात काही बदलले गेले होते का हे तुम्ही पाहू शकता.

टोकन्स (12:17)

ही संपूर्ण गोष्ट आहे — यात यापेक्षा जास्त काही नाही. पण हे खरोखर उपयुक्त नाही कारण आपल्याकडे डेटा क्षेत्रात अर्थपूर्ण असे काहीही नाही. आपल्याला खरोखर जे हवे आहे ते म्हणजे एक टोकन.

आता माझ्याकडे ही टोकन्स आहेत — पूर्णपणे स्वेच्छेने, मी त्यांना डॉलर्स म्हणत आहे. आपल्याकडे डार्सीकडून बिंगलेला पंचवीस डॉलर्स, एलिझाबेथकडून जेनला चार डॉलर्स आणि सत्तावीस सेंट्स आहेत — तुम्हाला कल्पना आली असेल. हे सर्व व्यवहार होत आहेत, आणि मी फक्त डेटाच्या जागी हे व्यवहार टाकले आहेत. पूर्वीप्रमाणेच, जर आपण खाली गेलो तर आपल्या लक्षात येईल की आपल्याकडे त्याच ब्लॉकचेनच्या या इतर सर्व प्रती आहेत.

येथेच अपरिवर्तनीयता महत्त्वाची आहे. जर मी येथे मागे काही बदलले, तर हॅश इतर प्रतींवर असलेल्या हॅशपेक्षा वेगळा असेल. हे खूप महत्त्वाचे आहे की जर तुम्ही भूतकाळात जाऊन काही मूल्य बदलले, तर ते आपल्या लक्षात येईल. पैशांच्या बाबतीत तुम्ही ट्रॅक गमावू नये हे खूप महत्त्वाचे आहे, आणि ब्लॉकचेन वापरण्याचा मुख्य उद्देश हाच आहे — भूतकाळात घडलेल्या गोष्टींमध्ये कोणत्याही प्रकारच्या बदलांना विरोध करणे.

एक गोष्ट मी नमूद करू इच्छितो: आपण "डार्सीकडे शंभर डॉलर्स आहेत आणि तो बिंगलेला 25 देत आहे" अशी नोंद करत नाही आहोत. आपण फक्त पैशांच्या हालचाली लक्षात ठेवत आहोत, बँक खात्यातील शिल्लक नाही. यामुळे हा प्रश्न निर्माण होतो — डार्सीकडे $25 आहेत का?

कॉइनबेस व्यवहार (14:34)

ब्लॉकचेनच्या या आवृत्तीमध्ये आपल्याला एक समस्या आहे: डार्सीकडे $25 आहेत की नाही हे आपल्याला प्रत्यक्षात माहित नाही. तर आपण कॉइनबेस व्यवहाराकडे पाहूया. आपण आपल्या ब्लॉक्समध्ये एक कॉइनबेस व्यवहार जोडतो — तो सांगतो की आपण शून्यातून शंभर डॉलर्स निर्माण करणार आहोत आणि ते अँडर्सला देणार आहोत. या ब्लॉकमध्ये इतर कोणतेही व्यवहार नाहीत कारण यापूर्वी कोणाकडेही पैसे नव्हते.

पुढच्या ब्लॉकमध्ये, आणखी शंभर डॉलर्स कुठूनतरी येतात आणि अँडर्सकडे जातात. आता आपल्याकडे काही व्यवहार आहेत — ते सर्व अँडर्सकडून आहेत कारण या क्षणी फक्त माझ्याकडेच पैसे आहेत. मी माझे दहा डॉलर्स सोफीला पाठवत आहे. माझ्याकडे दहा डॉलर्स आहेत का? होय — मी मागे वळून पाहतो आणि मला दिसते की कॉइनबेस व्यवहाराने मला शंभर दिले होते, त्यामुळे माझ्याकडे किमान दहा आहेत.

तुम्ही या सर्वांची बेरीज करा आणि ते शंभरच्या वर जात नाहीत. हे चलनाच्या मूलभूत नियमाचे पालन करते: तुम्ही शून्यातून पैसे निर्माण करू शकत नाही, आणि त्याचे वितरण नियंत्रित असते.

जर आपण वेळेत पुढे गेलो, तर आपल्याला दिसते की जॅक्सन अलेक्साला दोन डॉलर्स देत आहे. जॅक्सनकडे खरोखर दोन डॉलर्स आहेत का? आपण एक ब्लॉक मागे जातो आणि पाहतो की एमिलीला अँडर्सकडून दहा डॉलर्स मिळाले होते आणि तिने जॅक्सनला दहा दिले. त्यामुळे जॅक्सनकडे पैसे आहेत. आपण मागे जाऊन ते शोधू शकतो — "previous" फील्ड असण्याचा हा एक फायदा आहे.

समारोप (16:30)

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

भूतकाळात काय घडले आहे यावरील सहमती हाताळण्यासाठी ब्लॉकचेन्स हा एक अतिशय कार्यक्षम मार्ग आहे — हा अपरिवर्तनीय इतिहास जो वेळेनुसार पुढे जातो. आपण काही मुख्य मुद्द्यांवरून वरवर जात आहोत, पण जर तुम्ही डेमोमध्ये खोलवर गेलात आणि या गोष्टींवर क्लिक करून त्या हाताळून पाहिल्यात, तर हे कसे कार्य करते याची तुम्हाला अधिकाधिक चांगली कल्पना येईल.

हे पृष्ठ उपयुक्त होते का?