गौरव सोमवंशी
‘ब्लॉकचेन’ तंत्रज्ञानावर आधारित ‘बिटकॉइन’च्या चलनवलनात कोणतीही केंद्रीय संस्था नाही, कोणा एकाकडेच खास अधिकारही नाहीत. तरीही आर्थिक व्यवहारांची ही साखळी बहुमताने सुरळीत कशी पार पडते, हे कोडे आकळण्यासाठी क्रूर राजा आणि त्याच्या राजधानीला घेरून असणाऱ्या चार सेनापतींच्या गोष्टीत डोकावायला हवे..
एक विमान, अंतराळात जाणारे रॉकेट आणि एक अणुऊर्जा केंद्र मनात आणून पाहा. या तिन्हींत तुम्हाला दोन गोष्टी प्रकर्षांने जाणवतील : एक म्हणजे, काहीही कारणाने यात तांत्रिक बिघाड झाल्यास मोठी आपत्ती उद्भवेल. दुसरे, हे तिन्ही अनेक छोटय़ा-मोठय़ा प्रणालींनी बनले आहेत; त्यामधील काही स्वतंत्रपणे काम करतील, तर काही पूर्णपणे दुसऱ्या प्रणाली वा तंत्रांवर अवलंबून असतील. म्हणजेच त्यातील कोणतीही एक प्रणाली वा तंत्र बिघडले तर सगळेच बंद पडेल. यावरून ध्यानात येईल की, आदर्श संरचना ती असते, ज्यात काही घटकांत बिघाड झाला तरी इतर कामे नियमितपणे सुरू राहतात.
हाच विचार ‘ब्लॉकचेन’ तंत्रज्ञानावर आधारित ‘बिटकॉइन’च्या संदर्भात करू या.. बिटकॉइनमध्ये कोणतीही केंद्रीय संस्था नाही. कोणा एकाकडे काही खास अधिकारही दिलेले नाहीत. बिटकॉइनमध्ये प्रत्येक गोष्ट बहुमताने ठरते, कारण अधिकारांबाबत सर्वच समान आहेत. मात्र असे असले तरी, ज्यांना तांत्रिक गोष्टींची जाण आहे असे काही लोक यात स्वार्थासाठी चुकीच्या कृती करायलाही टपून बसलेले आहेतच. त्यामुळे त्यापैकी कोणी येऊन काही खोडी करणारच नाही हे खात्रीने कसे सांगायचे? अशा परिस्थितीत प्रस्थापित चलनाला समर्थ पर्याय म्हणून जागतिक पातळीवर आर्थिक व्यवहार कसे करायचे?
यासंदर्भात आपण मागील लेखात क्रूर राजा आणि त्याच्या राजधानीला घेरून असणाऱ्या सेनापतींचे उदाहरण पाहिले. हेच उदाहरण १९८२ मध्ये लेस्ली लॅम्पोर्ट यांच्याकडून आणि पुढे २००८ मध्ये सातोशी नाकामोटोनेही विचारात घेतले होते. बहुमत मिळवताना असत्य, अफवा किंवा चुका कशा टाळायच्या, हे या उदाहरणातून कळेल.
त्यासाठी मागील लेखातील कोडे पुन्हा पाहू. आठवते का कोडे? त्या कोडय़ात एका क्रूर राजाची राजधानी आहे. त्याला चार (कोणताही आकडा चालेल, आपण चार घेऊ या) सेनापतींनी आपल्या सैन्यासमवेत चारही बाजूंनी घेरले आहे. त्यांना राजधानीला सामोरे जाताना दोनच पर्याय आहेत : पलायन किंवा आक्रमण. कमीत कमी तीन सैन्यांनी तरी एकाच निर्णयावर बहुमत मिळवून काम करायला हवे, म्हणजे तीन किंवा चारही सैन्यांनी एकच काही तरी ठरवावे आणि त्याप्रमाणे वागावे. जर का अर्ध्यानी पलायन आणि अर्ध्यानी आक्रमण (दोन आक्रमणे आणि दोन पलायने) केले, तर ते ठेचले जातील. ते एकमेकांशी दूतांमार्फत बोलू शकतात, पण दूतांना एकीकडून दुसरीकडे क्रूर राजाच्या राजधानीतूनच पाठवावे लागतील, कारण बाहेरून मार्ग नाही. राजधानीतून जाताना दूत पकडले गेल्यास संदेशसुद्धा बदलला जाऊ शकतो. पण हे कोडे इथे थोडे अवघड झाले आहे. कारण चारांपैकी कोणी तरी एक सेनापती हा अगोदरच क्रूर राजाला फितूर झाला आहे. नक्की कोणता सेनापती ते कळायला मार्ग नाही. हा फितूर झालेला सेनापती एका सेनापतीला ‘चला, आक्रमण करू’ आणि दुसऱ्या कोणा सेनापतीला ‘चला, पलायन करू’ असे काहीही सांगू शकतो. त्याचे म्हणणे जर सैन्यांनी ऐकले तर अर्धे आक्रमण करतील व अर्धे पलायन करतील आणि यामुळे अंती क्रूर राजा जिंकेल. तर हे नि:संदिग्ध बहुमत कसे मिळवायचे?
यासाठी आपल्याला गणित.. विशेषत: कूटशास्त्राची (क्रिप्टोग्राफी) मदत घ्यावी लागेल. समजा, प्रत्येक सेनापती संदेशात नुसते ‘पलायन करा’ किंवा ‘आक्रमण करा’ इतकेच न पाठवता, त्याला अशा पद्धतीने गुंडाळून पाठवेल की प्रत्येक वेळा संदेश इकडून तिकडे पाठवला जाईल तेव्हा या संदेशांची मिळून एक साखळी व्हायला हवी. कशी? तर समजा, प्रत्येक सैन्याने अगोदरच ठरवले आहे की गणिताचे कोडे आपण एकाच वेळी सोडवत जाऊ. हे कोडे कसे असेल? तर या गणिताच्या कोडय़ामध्ये आपण सेनापतीचा संदेशसुद्धा एक इनपुट म्हणून ठेवू शकू. दुसरे म्हणजे हे कोडे सोडवायला कठीण असले पाहिजे. उदाहरणार्थ सुडोकू किंवा शब्दकोडय़ासारखे. शब्दकोडे नीट सोडवायला कधी कधी तासभर किंवा त्याहूनही अधिक वेळ लागू शकतो. पण एकदा का कोणी ते सोडवले, की ते बरोबर सोडवले आहे की नाही हे कळायला फारसा वेळ लागत नाही. तुमच्यासमोर जर ‘आक्रमण करा’ या संदेशाला मिसळून बनवलेले एक शब्दकोडे कोणी सोडवून ठेवले, तर तुम्हाला हे नक्की कळेल की कोणी तरी यामध्ये वेळ आणि ऊर्जा लावली आहे.
आता त्या चार सेनापतींकडे येऊ. यातील कोणी एक अगोदरच फितूर झाला आहे. तो कोण हे आपल्याला माहीत नाहीये. आता ते बहुमताचे (पलायन वा आक्रमणाचे) कोडे सोडवायला घेऊ. पहिला सेनापती ‘आक्रमण करा’ या संदेशाला शब्दकोडय़ात मिसळून, स्वत:च सोडवून ते इतर तीन सेनापतींकडे पाठवतो. यास आपण ‘आक्रमण करा + कोडे १ चे उत्तर’ असे म्हणू या. इतर तीन सेनापतींकडे हा संदेश पोहोचतो, ज्यामध्ये ‘आक्रमण करा + कोडे १ चे उत्तर’ असते. आता इतर तीन सेनापती एकच काम करतात. ते आलेल्या कोडय़ाच्या उत्तराला (‘आक्रमण करा + कोडे १चे उत्तर’) एका नवीन मोठय़ा कोडय़ात सामावून घेत आणखी मोठे कोडे बनवतात आणि स्वत: सोडवतात. संदेश पोटात सामावून घेतलेले हे सोडवलेले कोडे (‘आक्रमण करा + कोडे १चे उत्तर + कोडे २ चे उत्तर’) सेनापती आपल्या दूताकरवी पुढे इतर तिघांकडे पाठवेल. सुडोकू किंवा शब्दकोडे जसे कोणी हुशार असेल तो/ती नेहमी अगोदर सोडवेल, अशी इथे परिस्थिती नाही. प्रत्येक सेनापती तितकाच हुशार आहे आणि म्हणून चार सेनापतींना प्रत्येक वेळी कोडे सोडवायची सारखीच शक्यता आणि संधी असते.
आपण पाहिल्याप्रमाणे, हे विशिष्ट प्रकारचे कोडे आहे- जे सोडवायला वेळ लागतो, पण ते बरोबर आहे की चूक हे लगेच ओळखता येते. त्यामुळे इतर सेनापतींना मिळालेले सोडवलेले कोडे बरोबर आहे की चूक हे पटकन कळते. मग हे इतर तीन सेनापती पुन्हा ‘आक्रमण करा + कोडे १ चे उत्तर + कोडे २ चे उत्तर’ यास एका नवीन कोडय़ात इनपुट बनवून आणखी मोठे कोडे बनवतात आणि स्वत: सोडवू लागतात. ज्याला कोणाला उत्तर सापडते तो इतरांना ते पाठवतो आणि मग इतर मंडळी आलेले उत्तर एका क्षणात पडताळून परत इतर तिघांमध्ये पाठवतात. असे करत करत आपल्याकडे एक साखळी तयार होते, जी अशी दिसते – ‘आक्रमण करा + कोडे १चे उत्तर + कोडे २चे उत्तर + कोडे ३चे उत्तर +..’!
समजा, आता तो फितूर झालेला सेनापती खोडी करायची ठरवतो. मध्येच तो ‘पलायन करा’ असे बोलतो आणि या संदेशाला कोडय़ात टाकून, ते सोडवून पुढे पाठवतो. मात्र असे केल्याने काहीही फरक पडणार नाही. कारण ‘पलायन करा’ या खोटय़ा माहितीची साखळीच बनणार नाही. कारण बहुसंख्य सेनापती हे ‘आक्रमण करा’ या संदेशाला मागे-पुढे करून कोडे सोडवीत आहेत. फितूर झालेल्या सेनापतीने सर्वाच्या आधी कोडे सोडवून ते पुढे पाठवून नवीन साखळी बनवू पाहण्याचा प्रयत्न केला तरी, खोटय़ा माहितीवर आधारित साखळी बनवण्यासाठी त्या सेनापतीला प्रत्येक वेळी ते कोडे सर्वाच्या आधी सोडवावे लागेल आणि मोठे करत करत नवनवीन उत्तरांची साखळी बनवावी लागेल. पण हे प्रत्येक वेळी शक्य आहे का? त्याच्याविरुद्ध तीन सेनापती हे ‘आक्रमण करा’ या संदेशाला धरून साखळी बनवणार असतील, तर काही काळ लोटल्यानंतर जी जास्त लांब साखळी असेल ती हमखास ‘आक्रमण करा’ या संदेशाचीच असेल.
म्हणजे फितूर झालेला सेनापती हा बहुमत खराब करू शकत नाही. तसेच तो राजासुद्धा स्वत: अशी साखळी बनवू शकत नाही, कारण हे कोडे सोडवण्याची शक्यता प्रत्येकाला सारखीच असल्यामुळे त्याने काही जरी केले तरी काही काळ लोटल्यानंतर सर्वात जास्त लांब साखळी ही ‘आक्रमण करा’ या संदेशाचीच असेल. म्हणून काही काळ जाऊ देणे गरजेचे असते. या लांब साखळीकडे पाहून कोणीही म्हणू शकते की, बहुमत हे ‘आक्रमण करा’ यावर आहे. कारण प्रत्येकाला कोडे सोडवण्याची समान संधी असल्यामुळे काही काळ लोटल्यानंतर बहुमताचेच खरे ठरेल. याला ‘ब्लॉकचेन’च्या परिभाषेत ‘प्रूफ ऑफ वर्क’ असे म्हणतात. ही संकल्पना बिटकॉइनचा पाया आहे. सातोशी नाकामोटोने इथे बहुमत नक्की कोणाचे खरे आहे हे ओळखण्यासाठी ही युक्ती केली होती. ‘बहुमत मिळवायची कार्यप्रणाली’ (कन्सेन्सस अल्गोरिदम) या संकल्पनेत हे मोडते.
आपल्या कोडय़ातला राजा, चार सेनापती, त्यातील एकाचे फितूर होणे या सगळ्यांचा तंत्रज्ञानाशी संबंध कसा, ते आपण पुढे पाहूच..
लेखक ब्लॉकचेन तंत्रज्ञानाच्या उपयोजन क्षेत्रात कार्यरत आहेत. ईमेल : gaurav@emertech.io