गौरव सोमवंशी

क्रूर राजा आणि त्याचे राज्य घेरण्यासाठी जमलेले सेनापती यांच्या गोष्टीत उद्भवलेल्या समस्येचा संगणक-शास्त्राशी काय संबंध? आणि त्या समस्येच्या निराकरणाचे प्रयत्न ‘ब्लॉकचेन’च्या उगमापर्यंत कसे घेऊन आले?

आजच्या लेखात एक राजा आणि दोन सेनापतींची एक मजेदार गोष्ट वा कोडे पाहू. याचा संबंध ‘ब्लॉकचेन’ तंत्रज्ञानाशी, इंटरनेटशी किंवा त्याही आधी लॅण्डलाइन टेलिफोनशी कसा आहे, ते नंतर कळेल. या एका कोडय़ाचे उत्तर अनेक लोकांना गवसत नव्हते आणि ‘ब्लॉकचेन’ तंत्रज्ञानाचे जनक सातोशी नाकामोटोने ते सोडवल्यामुळे ‘बिटकॉइन’ हे ‘ब्लॉकचेन’वर आधारित चलन व्यापक होऊ शकले. खरे तर ‘बिटकॉइन’सदृश अनेक प्रयोग त्याआधीही झालेच होते. पण अनेकदा उत्तर किंवा उपाय यापेक्षा प्रश्न समजून घेणे जास्त महत्त्वाचे असते. कारण त्यामध्येच नवे उत्तर वा उपाय शोधून काढण्याची शक्यता दडलेली असते. मला वाटते की, प्रश्न नीट समजून घेण्यासाठी आपण पुरेसा वेळ दिल्यास ठरीव उत्तरावर पूर्णपणे अवलंबून न राहता त्यापेक्षा सरस उत्तर स्वत:हून शोधून काढण्याची शक्यता निर्माण होते.

तर.. समजा, एका क्रूर राजाच्या राजधानीवर आक्रमण करायला दोन सैन्ये सरसावली आहेत. दोन्ही सैन्यांचे आपापले सेनापती आहेत. दोघांनी राजधानीला विरुद्ध दिशेने (असे समजा की पूर्व आणि पश्चिम बाजूने) घेरले आहे. त्यात अशी परिस्थिती उद्भवली आहे की, जर दोन्ही सैन्यांनी एकाच वेळी आक्रमण करायचे ठरवले तरच ते राजधानी जिंकू शकतात. फक्त एकानेच आक्रमण केले तर त्या राजधानीचे सैन्य त्यांना सहज चिरडून टाकेल आणि नंतर दुसऱ्या सैन्याचाही काही उपयोग होणार नाही. म्हणून दोन्ही विरुद्ध दिशेने असलेल्या सेनापतींमध्ये आक्रमणाबाबत एकमत होणे फार गरजेचे आहे. त्यासाठी एकीकडून दुसरीकडे संदेश पाठवणे गरजेचे आहे.

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

या कोडय़ाचे निराकरण कसे करायचे?

१९७५ साली संगणकीय संपर्कपद्धतींचा अभ्यास करीत असलेल्या तीन शास्त्रज्ञांनी गणित व तर्कशास्त्राच्या आधारे हे सिद्ध केले की, (सगळ्या विशिष्ट परिस्थिती तशाच ठेवल्या तर) या कोडय़ाचे शंभर टक्के समाधानकारक उत्तर असूच शकत नाही. इथे कोणास प्रश्न पडला असेल की, संगणकीय संपर्कपद्धतींचा आणि या कोडय़ाचा काय संबंध?

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

दोन ठीक, अनेक असतील तर?

आपण वर जे कोडे पाहिले त्याला संगणकशास्त्रात ‘टू जनरल्स प्रॉब्लेम’ असे म्हणतात. यालाच मग थोडे मोठे करून १९७८ मध्ये रॉबर्ट शोस्टॅक यांनी ते दोन संगणकांवरून (किंवा आपले दोन सेनापती) अनेक संगणकांवर नेले. १९८२ मध्ये लेस्ली लॅम्पोर्ट नामक दुसऱ्या संगणकशास्त्रज्ञाने याला ‘बायझन्टाइन जनरल्स प्रॉब्लेम’ असे नाव दिले. यामध्ये कितीही सेनापती असू शकतात आणि त्यांना बहुमत मिळवून क्रूर राजाच्या राजधानीवर हल्ला करायचाय. बायझन्टाइन हे एक इतिहासातील साम्राज्य होते, आणि हे नाव निवडण्यामागे काही विशिष्ट असे कारण नाही. एक वितरित संगणक प्रणाली- म्हणजे ज्यात अनेक ‘नोड्स’ (माहिती बिंदू) एकमेकांशी बोलतात आणि एकमेकांच्या माहितीवर अवलंबून राहतात, अशा प्रणालीत चुका व्हायला अनेक कारणे असतात. त्यामधील सर्वात साधे सोपे कारण म्हणजे एक संगणक किंवा ‘नोड’ हा बंदच पडणे. म्हणजे एक सेनापती पळून गेल्यासारखेच. ही सर्वात सोपी समस्या झाली आणि यास संगणकशास्त्रात ‘फेल-स्टॉप’ म्हणतात, जिथे आपल्याला पुरेपूर खात्री असते की हा सेनापती शंभर टक्के पळून गेलाय आणि त्याचे इथून पुढे काही काम नाही. पण हे फेल-स्टॉप जसे सोडवायला आणि समजायला सर्वात सोपे आहे, तितकेच सर्वात अवघड समस्या म्हणजे ‘बायझन्टाइन जनरल्स प्रॉब्लेम’! यामध्ये काही निवडक सेनापती हे क्रूर राजाला फितूर झाले आहेत आणि ते एकाला एक आणि दुसऱ्याला दुसरी माहिती देऊ शकतात. तसेच हे नक्की कोणते सेनापती आहेत आणि ते कधी खोटे बोलतील, हे कळायलाही काही मार्ग नाही.

हे नवीन कोडे पुन्हा नीट समजून घेऊ या. कारण हेच एक कोडे आहे, जे सोडवण्यासाठी ‘सायफरपंक’ तंत्रचळवळीतील मंडळी किंवा इतर संगणकशास्त्रातील मंडळी अनेक दशके आपले डोके लावत होती. तर आधीच्या गोष्टीप्रमाणे इथेसुद्धा एका क्रूर राजाची राजधानी आहे. त्याला समजा चार (कोणताही आकडा चालेल, आपण चार घेऊ या) सेनापतींनी चारही बाजूंनी घेरले आहे. क्रूर राजाला सामोरे जायला दोनच पर्याय आहेत : पलायन किंवा आक्रमण. कमीतकमी तीन सैन्यांनी तरी एकाच निर्णयावर बहुमत मिळवून काम करायला हवे, म्हणजे तीन किंवा चारही सैन्यांनी एकच काही तरी ठरवावे आणि त्याप्रमाणे वागावे. जर का अर्ध्यानी पलायन आणि अर्ध्यानी आक्रमण (दोन आक्रमण आणि दोन पलायन) केले, तर ते ठेचले जातील. आधीसारखेच ते एकमेकांशी बोलू शकतात, पण दूतांना पाठवण्यासाठी त्यांना क्रूर राजाच्या राजधानीतूनच पाठवावे लागतील. कारण बाहेरून मार्ग नाही आणि इथून जाताना संदेशसुद्धा बदलला जाऊ शकतो. पण हे कोडे इथे अवघड होते, जेव्हा आपल्याला कळते की एक कोणता तरी सेनापती हा अगोदरच क्रूर राजाला फितूर झाला आहे. तो नक्की कोणता ते कळायला मार्ग नाही. हा फितूर झालेला सेनापती एका सेनापतीला ‘चला, आक्रमण करू’ आणि दुसऱ्या कोणा सेनापतीला ‘चला, पलायन करू’ असे काहीही सांगू शकतो. यातून मार्ग कसा काढायचा?

आता विचार करा, जर आपण जागतिक पातळीवर कोणत्याही व्यक्तींमध्ये काही आर्थिक व्यवहार घडवू इच्छितो आणि यामध्ये कोणती बँक वा सरकार किंवा कोणतीही बाहेरील संस्था अस्तित्वात नसेल, तर काही लोकांना या प्रणालीत खोटे बोलून वा लबाडी करून स्वत:चा फायदा व दुसऱ्याचे नुकसान करायची इच्छा येईलच की नाही? अशांना रोखायचे कसे? कारण इथे कोणी मध्यस्थही नाहीत?

हेच एक मोठे कोडे सातोशी नाकामोटोने सोडवून दाखवले होते. तिथूनच मग ‘ब्लॉकचेन’ तंत्रज्ञानाचा उगम आणि ‘बिटकॉइन’चा उदय झाला. ते कसे, हे पुढे पाहूच!

लेखक ब्लॉकचेन तंत्रज्ञानाच्या उपयोजन क्षेत्रात कार्यरत आहेत. ईमेल : gaurav@emertech.io