4
ध्यान केंद्रित करना
1090
समर्थक

बिटकॉइन प्रोटोकॉल कैसे काम करता है (भाग 1)

में बनाया: 2017-01-19 18:04:02, को अपडेट: 2017-01-19 18:11:24
comments   0
hits   1295

बिटकॉइन प्रोटोकॉल कैसे काम करता है (भाग 1)

पिछले साल, मैंने यहां बिटकॉइन के बारे में 5 विचार लिखे थे, और ऐसा लगता है कि यह बिटकॉइन के बारे में मेरा पहला लेख है, आज मैं आपको बिटकॉइन के प्रोटोकॉल के बारे में बताने जा रहा हूं।

यह लेख माइकल नीलसन के लेख का अनुवाद है Bitcoin प्रोटोकॉल के बारे में, यह लेख सबसे स्पष्ट है कि अनुवादक को लगता है कि यह Bitcoin के बारे में लिखा गया है. माइकल नीलसन एक वैज्ञानिक, लेखक और प्रोग्रामर है जो क्वांटम कंप्यूटिंग का अध्ययन करता है, विवरण के लिए कृपया उसकी अपनी प्रस्तुति देखें। इस लेख का अनुवाद इसलिए किया गया है क्योंकि अनुवादक का मानना है कि बिटकॉइन के बारे में लेख और चर्चा बहुत, बहुत समर्थित है और बहुत कुछ के खिलाफ है। लेकिन अधिकांश अवधारणाओं, कीमतों और व्यक्तिपरक सोच पर रुकते हैं, मैं बिटकॉइन की वर्तमान कीमतों और सतहों को फेंकना चाहता हूं, और इस लेख के माध्यम से, बिटकॉइन प्रोटोकॉल के काम करने के सिद्धांतों को विस्तार से प्रस्तुत करना चाहता हूं। मुझे विश्वास है कि चीजों के पीछे काम करने वाले सिद्धांतों को समझना मेरे लिए बहुत महत्वपूर्ण है। जैसा कि अधिकांश लोगों की तरह, जब मैंने इसे प्रकाशित करना शुरू किया, तो मुझे लगा कि यह पागलपन है, न कि एक छोटी सी धोखाधड़ी।

केवल लोगों को यह जानने के लिए कि यह क्या है, जहां यह इलेक्ट्रॉनिक धन अंतरिक्ष में फिट बैठता है, उन्हें यह समझाने की कोशिश नहीं करता है कि यह अच्छा है। एक और मूल वाक्य यह है कि यदि आप मुझे विश्वास नहीं करते हैं या इसे प्राप्त नहीं करते हैं, तो मेरे पास आपको समझाने की कोशिश करने का समय नहीं है, क्षमा करें।

  • ### यहाँ इसका मूल पाठ है।

हजारों लेख Bitcoin, एक ऑनलाइन, Peer-to-Peer मुद्रा की व्याख्या करने का प्रयास करते हैं। अधिकांश लेखों ने अपने अंतर्निहित प्रोटोकॉल के बारे में एक लेख लिखा है, जिसमें कई विवरणों को छोड़ दिया गया है। यहां तक कि बहुत गहन लेख भी महत्वपूर्ण स्थानों पर अटक गए हैं। इस लेख का उद्देश्य Bitcoin प्रोटोकॉल के पीछे के बिंदुओं को यथासंभव स्पष्ट और समझने योग्य तरीके से समझाना है। हम पहले सिद्धांत से शुरू करते हैं, Bitcoin प्रोटोकॉल की एक व्यापक सैद्धांतिक समझ का निर्माण करते हैं, और फिर विवरण में गहराई से जाते हैं, और Bitcoin लेनदेन में डेटा की जांच करते हैं।

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

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

बिटकॉइन की नींव क्रिप्टोलॉजी पर है, और यह आपको आश्चर्यचकित कर सकता है कि क्या बिटकॉइन एक मुद्रा है? क्या यह एक गुप्त संदेश भेजने का एक तरीका है? वास्तव में, बिटकॉइन जो समस्याएं हल करना चाहता है उनमें से अधिकांश लेनदेन की सुरक्षा के बारे में हैं, यह सुनिश्चित करने के लिए कि लोग दूसरों की चीजों को चोरी नहीं कर सकते हैं या दूसरों का नाम नहीं ले सकते हैं। परमाणुओं से बनी भौतिक दुनिया में, हम ताले, हस्ताक्षर, बैंक की तिजोरी आदि के माध्यम से सुरक्षा सुनिश्चित करते हैं। सूचना की दुनिया में हम क्रिप्टोलॉजी के माध्यम से सुरक्षा सुनिश्चित करते हैं। यही कारण है कि बिटकॉइन के मूल में क्रिप्टोलॉजी का समझौता है।

इस आलेख की रणनीति बिटकॉइन को एक स्तर पर बनाने की है। हम एक बहुत ही सरल डिजिटल मुद्रा के साथ शुरू करेंगे, जिसे हम बिटकॉइन से अलग करने के लिए अस्थायी रूप से इंफोकोइन कोट कहेंगे। बेशक हमारे पहले संस्करण के इंफोकोइन में कई कमियां होंगी, इसलिए हम कई पुनरावृत्तियों के माध्यम से जाएंगे, प्रत्येक पुनरावृत्ति में एक या दो नए अवधारणाओं को पेश किया जाएगा। कई बार के बाद, हम एक पूर्ण बिटकॉइन प्रोटोकॉल प्राप्त करेंगे। हम एक साथ बिटकॉइन का फिर से आविष्कार करेंगे।

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

अंत में, मैं यह कहना चाहूंगा कि मैं बिटकॉइन की दुनिया में अपेक्षाकृत नया हूं। 2011 में मेरे पास एक संक्षिप्त ध्यान था, लेकिन 2013 की शुरुआत में मैंने वास्तव में इसके बारे में गंभीरता से अध्ययन किया।

  • पहला कदम: हस्ताक्षरित इच्छा पत्र

    • #### एक मुद्रा कैसे डिजाइन की जाती है?

    एक डिजिटल मुद्रा की कल्पना करना असंभव लगता है. मान लीजिए कि एक व्यक्ति - हम उसे एलिस कहेंगे - के पास कुछ डिजिटल मुद्रा है जिसे वह खर्च करना चाहता है. यदि एलिस को एक ही स्ट्रिंग को पैसे के रूप में उपयोग करने की अनुमति है, तो हम उसे उसी स्ट्रिंग का बार-बार उपयोग करने से कैसे रोक सकते हैं? यदि हम इस समस्या को हल कर सकते हैं, तो हम दूसरों को एक स्ट्रिंग को नकली बनाने और एलिस से चोरी करने से कैसे रोक सकते हैं?

    यह जानकारी के रूप में मुद्रा के साथ हल करने के लिए कई समस्याओं में से केवल दो है. पहले संस्करण में Infocoin में, हम एलिस को पैसे के रूप में एक स्ट्रिंग देने के लिए और इसे नकली होने से बचाने के लिए एक तरीका ढूंढते हैं. मान लीजिए कि एलिस एक infocoin एक और व्यक्ति बॉब को देना चाहती है. एलिस को एक संदेश लिखने की आवश्यकता हैः अरे मुझे एलिस बॉब को एक infocoin देना चाहती है.

    इस तरह से, यह प्रोटोकॉल प्रदान करता है कि एलिस वास्तव में Bob को infocoin देने का इरादा रखता है। इसी तरह, यह प्रोटोकॉल किसी और को एलिस की जानकारी को फर्जी बनाने से रोकता है। बेशक, जब एलिस ने अपना संदेश प्रकाशित किया है, तो अन्य लोगों के लिए इस संदेश की नकल करने की संभावना है, लेकिन इसे प्रकाशित करने से पहले यह संभव नहीं है। इसलिए, इस प्रोटोकॉल में दो विशेषताएं हैं जो वास्तव में ध्यान देने योग्य हैं। इरादा साबित करना और संदेश को प्रकाशित होने से पहले नकली होने से रोकना।

    मैंने अभी तक यह नहीं कहा है कि इस समझौते में पैसा क्या है। यह स्पष्ट है कि पैसा वास्तव में संदेश है। यानी, उस अनुक्रम में हस्ताक्षर करने वाले वर्णों का प्रतिनिधित्व करता है कि मेरी एलिस बॉब को एक infocoin देने जा रही है। बाद के समझौते इस बिंदु पर समान होंगे, यानी सभी डिजिटल मुद्राएं केवल अधिक से अधिक विस्तृत संदेश वर्ण हैं।

  • सीरियल नंबरों के साथ एक मुद्रा का एक अद्वितीय पहचान

हमारे पहले संस्करण के Infocoin के साथ समस्या यह थी कि एलिस बार-बार बॉब को एक ही हस्ताक्षरित संदेश भेज सकती थी। मान लीजिए कि बॉब को 10 ऐसे संदेश मिले। मुझे आश्चर्य है, एलिस, बॉब को एक infocoin देना है। क्या यह एलिस ने बॉब को 10 अलग-अलग infocoins दिए थे? या एलिस ने बॉब को एक infocoin दिया, बस गलती से संदेश दोहराया गया था? या वह बॉब को यह विश्वास दिलाना चाहती थी कि उसने उसे 10 infocoins दिए थे, जबकि वास्तव में बाहर की दुनिया को भेजे गए संदेशों ने साबित कर दिया कि उसने केवल एक infocoin दिया था।

हम चाहते हैं कि infocoin की एक विशिष्ट पहचान हो। इसके लिए एक लेबल या सीरियल नंबर की आवश्यकता होती है। एलिस को एक संदेश में एक infocoin सिक्के पर हस्ताक्षर करना होगा जिसका सीरियल नंबर 8740348 है। फिर एलिस को एक अन्य संदेश में हस्ताक्षर करना होगा जिसका सीरियल नंबर 8770431 है, ताकि बॉब और अन्य लोग जान सकें कि ये दो अलग-अलग infocoin सिक्के हैं।

इस योजना को लागू करने के लिए, हमें एक विश्वसनीय सीरियल नंबर स्रोत की आवश्यकता होगी। सीरियल नंबर उत्पन्न करने का एक तरीका एक बैंक जैसी संस्था बनाना है। यह बैंक इंफोकोइन के लिए सीरियल नंबर उत्पन्न करेगा, यह रिकॉर्ड करेगा कि कौन सा इंफोकोइन किसके पास है, और लेनदेन की प्रामाणिकता की पुष्टि करेगा।

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

  • ### हर कोई बैंक बन सकता है

ऊपर दिए गए इस समाधान में काफी संभावनाएं हैं। लेकिन हम और भी अधिक महत्वाकांक्षी कार्य कर सकते हैं। हम इस समझौते से बैंकों को हटा सकते हैं। इस प्रकार इस मुद्रा के गुणों को काफी हद तक बदल दिया गया है। इसका मतलब है कि इस मुद्रा के लिए एक अलग संगठन जिम्मेदार नहीं होगा। जब आप सोचते हैं कि केंद्रीय बैंकों के पास कितना अधिकार है (और मुद्रा जारी करने पर नियंत्रण) तो यह बहुत बड़ा बदलाव है।

यह एक तरीका है कि हर कोई एक बैंक के रूप में एक साथ काम कर सकता है। विशेष रूप से, हम मानते हैं कि प्रत्येक व्यक्ति जो infocoin का उपयोग करता है वह एक पूर्ण रिकॉर्ड रखता है, जिसमें यह भी शामिल है कि कौन सा infocoin किसके लिए है। आप इसे एक साझा सार्वजनिक बही के रूप में सोच सकते हैं, जो सभी infocoin लेनदेन के रिकॉर्ड को दर्शाता है। हम इसे एप्पल ब्लॉकचेन ब्लॉकचेन एप्पल कहते हैं, क्योंकि यह बिटकॉइन में है।

अब, मान लीजिए कि एलिस बॉब को एक इंफोकोइन देने जा रही है. वह संदेश बॉक्स में मुझे एलिस को 1234567 के साथ एक इंफोकोइन बॉक्स पर हस्ताक्षर करने के लिए कहती है. और साइन किए गए संदेश को बॉब को आउटपुट करती है, बॉब अपनी ब्लॉकचेन का उपयोग करके जांच कर सकता है, और ठीक है, यह सही है कि इंफोकोइन एलिस द्वारा मुझे दिया गया था. अगर वह जांच ठीक है, तो वह एलिस के संदेश और अपने इंफोकोइन को स्वीकार करता है और इसे पूरे नेटवर्क में प्रकाशित करता है. और फिर सभी लोग अपने ब्लॉकचेन को अपडेट करते हैं.

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

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

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

अधिक विशेष रूप से, मान लीजिए कि एलिस बॉब को एक infocoin देना चाहती है। पहले की तरह, वह एक संदेश पर हस्ताक्षर करती है, और मुझे बताती है कि एलिस बॉब को 1234567 के साथ एक infocoin सिक्का देगी, और बॉब को एक प्रसिद्ध संदेश पर हस्ताक्षर करेगी। पहले की तरह, बॉब ने अपनी खुद की ब्लॉकचेन का उपयोग करके एक जांच की, यह सिक्का वास्तव में एलिस का है। लेकिन प्रोटोकॉल अलग है, बॉब ने इसे सीधे स्वीकार नहीं किया, बल्कि एलिस के संदेश को पूरे नेटवर्क पर प्रकाशित किया। नेटवर्क के अन्य सदस्यों ने जांच की कि एलिस के पास यह infocoin है या नहीं, और यदि हां, तो उन्होंने इस संदेश को प्रकाशित किया और कहा कि यह सही है, एलिस के पास वास्तव में infocoin 1234567 है, और अब इसे बॉब को हस्तांतरित किया जा सकता है। एक बार जब पर्याप्त लोग इस संदेश को प्रकाशित करते हैं, तो प्रत्येक व्यक्ति अपने ब्लॉकचेन को अपडेट करता है ताकि यह प्रदर्शित हो सके कि 1234567 अब बॉब का है, और लेनदेन पूरा हो गया है।

इस प्रोटोकॉल में अभी भी कई अनिश्चित कारक हैं। उदाहरण के लिए, यदि पर्याप्त लोग इस संदेश को प्रकाशित करते हैं, तो इसका क्या मतलब है कि कितने लोग पर्याप्त हैं? यह पूरे इंफोकोइन नेटवर्क नहीं हो सकता है, क्योंकि हम पहले से नहीं जानते कि कौन इंफोकोइन नेटवर्क पर है।

  • ### काम का प्रमाणपत्र

मान लीजिए कि एलिस को उपरोक्त समझौते में डुप्लिकेट करना है, उसे पूरे इंफोकोइन नेटवर्क पर नियंत्रण रखना होगा। मान लीजिए कि उसने एक स्वचालित प्रणाली का उपयोग करके इंफोकोइन नेटवर्क पर कई अलग-अलग पहचान वाले खाते बनाए हैं, मान लीजिए कि 1 बिलियन हैं। पहले की तरह, उसने बॉब और चार्ली को एक ही इंफोकोइन देने के लिए डुप्लिकेट करने की कोशिश की, लेकिन जब बॉब और चार्ली ने इंफोकोइन नेटवर्क से इस सौदे की जांच करने के लिए पूछा, तो एलिस के एस्क्वाड ने पूरे नेटवर्क को डुबो दिया, बॉब और चार्ली को बताया कि वे इस सौदे के माध्यम से जा सकते हैं और संभवतः उनमें से एक या दोनों को इस सौदे को स्वीकार करने के लिए धोखा दे सकते हैं।

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

यह सब एक प्रमाण पत्र के बारे में है। लेकिन वास्तव में एक प्रमाण पत्र को समझने के लिए, हमें और अधिक विशिष्ट विवरणों में जाने की आवश्यकता है।

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

बिटकॉइन प्रोटोकॉल कैसे काम करता है (भाग 1)

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

तो डेविड को किस समस्या का समाधान करना है? इसे समझाने के लिए, हम एक निश्चित हैश फ़ंक्शन का उपयोग करते हैं जो कि नेटवर्क पर हर कोई जानता है। इसे प्रोटोकॉल में शामिल करें। बिटकॉइन एक प्रसिद्ध SHA-256 हैश फ़ंक्शन का उपयोग करता है, लेकिन यहां किसी भी क्रिप्टोग्राफिक हैश फ़ंक्शन का उपयोग किया जा सकता है। हम डेविड के इस सेट को एक लंबित लेनदेन चिह्न देते हैं, जो कि L है, जिसे बाद में संदर्भित किया जा सकता है। यह लंबित लेनदेन ब्लॉकचेन के भीतर ब्लॉक के बराबर है। ब्लॉक को समझना महत्वपूर्ण है, जो लेनदेन की जानकारी का एक समूह है, जिसमें कई लेनदेन शामिल हैं।

बिटकॉइन प्रोटोकॉल कैसे काम करता है (भाग 1)

डेविड को एक समस्या का हल करना है (प्रमाणित कार्य) एक यादृच्छिक संख्या x का पता लगाना है, जब हम इस x को L के पीछे जोड़ते हैं और इस संयोजन को हैश करते हैं, तो परिणाम कई 0 से शुरू होता है। इस समस्या की कठिनाई को शुरू करने वाले शून्य की संख्या को समायोजित करके समायोजित किया जा सकता है। एक सरल पहेली प्रमाणीकरण पहेली को केवल 3 या 4 शून्य से शुरू होने वाले हैश की आवश्यकता होती है, एक कठिन पहेली प्रमाणीकरण पहेली को अधिक शून्य से शुरू करने की आवश्यकता हो सकती है, जैसे कि 15 लगातार शून्य। ऊपर उल्लिखित मामलों में, x = 0 से लेकर हैश सफल नहीं होता है, क्योंकि परिणाम 0 से शुरू नहीं होता है। तो हम x = 1 की कोशिश करते हैं

और आप देख सकते हैं कि यह तब भी काम करता है जब x = 1

बिटकॉइन प्रोटोकॉल कैसे काम करता है (भाग 1)

और फिर हम x=2, और फिर x=3,4,5… और अंत में, जब हम पाते हैं कि x=4350 है, तो हम पाते हैं कि x=4350 है.

बिटकॉइन प्रोटोकॉल कैसे काम करता है (भाग 1)

यह यादृच्छिक संख्या x हमें एक परिणाम देता है जो चार शून्य से शुरू होने वाले हैश है। यह एक साधारण पहेली को हल करने के लिए पर्याप्त है जो पहेली को साबित करने के लिए काम करता है।

इस पहेली को हल करने में कठिनाई यह है कि कोड हैश फ़ंक्शन के परिणाम हमेशा यादृच्छिक होते हैं, और इनपुट मानों में कोई भी छोटा बदलाव पूरी तरह से पूरे हैश फ़ंक्शन के आउटपुट परिणाम को बदल देगा, जिससे भविष्यवाणी करना मुश्किल हो जाता है। इसलिए यदि हम चाहते हैं कि आउटपुट परिणाम 10 0 से शुरू होना चाहिए, तो डेविड को उस उपयुक्त मूल्य को खोजने के लिए औसतन 1610 ≈ 1012 अलग-अलग x की आवश्यकता होगी। यह एक बहुत ही चुनौतीपूर्ण कार्य है जिसमें बहुत अधिक गणना की आवश्यकता होती है।

स्पष्ट रूप से, हम इस बात को नियंत्रित कर सकते हैं कि प्रूफ ऑफ वर्क की कठिनाई को निर्धारित करने के लिए हमें कितने शून्य की आवश्यकता है। वास्तव में, बिटकॉइन प्रोटोकॉल को थोड़ा संशोधित किया गया है ताकि हम इस बात को बेहतर तरीके से नियंत्रित कर सकें कि प्रूफ ऑफ वर्क की कठिनाई को कैसे नियंत्रित किया जाए। अब यह निर्धारित नहीं किया गया है कि कितने शुरुआती शून्य की आवश्यकता है, बल्कि यह निर्धारित किया गया है कि ब्लॉक का हैश आउटपुट एक लक्ष्य मूल्य से कम या बराबर है, जो स्वचालित रूप से समायोजित किया जाता है ताकि यह सुनिश्चित किया जा सके कि बिटकॉइन के प्रत्येक ब्लॉक को हल करने में औसतन 10 मिनट लगते हैं।

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

इस योजना के काम को प्रमाणित करने के लिए, नेटवर्क के प्रतिभागियों को लेनदेन को सत्यापित करने में मदद करने के लिए एक प्रोत्साहन की आवश्यकता होगी। यदि कोई प्रोत्साहन नहीं है, तो कोई भी लेनदेन की जांच में मदद करने के लिए अपने स्वयं के कंप्यूटर को खर्च करने के लिए तैयार नहीं होगा। यदि नेटवर्क के प्रतिभागियों को खर्च करने के लिए तैयार नहीं है, तो पूरी प्रणाली काम नहीं करेगी। इसलिए, हम उन्हें कुछ इंफोकोइन देकर किसी भी व्यक्ति को पुरस्कृत कर सकते हैं जिसने लेनदेन को सफलतापूर्वक सत्यापित किया है। यदि उन्हें पर्याप्त इंफोकोइन पुरस्कार प्रदान किए जाते हैं, तो उन्हें सत्यापन में भाग लेने के लिए प्रोत्साहित किया जा सकता है।

बिटकॉइन के प्रोटोकॉल में, सत्यापन की इस प्रक्रिया को खनन कहा जाता है। प्रत्येक लेनदेन ब्लॉक के सफल सत्यापन को पुरस्कार के रूप में बिटकॉइन प्राप्त होता है। शुरुआत में, यह 50 बिटकॉइन का पुरस्कार था। लेकिन प्रति 210,000 सत्यापित ब्लॉक (यानी लगभग हर 4 साल में), पुरस्कार आधा हो जाएगा। अब तक केवल एक बार हुआ है, यानी अब एक ब्लॉक को सत्यापित करने के लिए पुरस्कार 25 बिटकॉइन है। आधा होने की प्रक्रिया लगभग 2140 तक जारी रहेगी। तब तक, खनन के लिए पुरस्कार 10-8 बिटकॉइन तक कम हो जाएगा। 10-8 बिटकॉइन बिटकॉइन की सबसे छोटी इकाई है, जिसे सातोशी कहा जाता है, इसलिए 2140 तक, कुल बिटकॉइन की वृद्धि बंद हो जाएगी। हालांकि, यह लेनदेन के प्रोत्साहन को समाप्त नहीं करेगा, क्योंकि प्रतिभागियों को लेनदेन में शामिल होने की अनुमति दी जाती है, लेकिन 25 बिटकॉइन के अलावा, लेनदेन के लिए शुल्क धीरे-धीरे बढ़ जाएगा।

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

बेशक, भले ही एक बेईमान खनिक के पास पूरे ब्ल