इथेरियम श्वेत पत्र, समझाया गया। भाग 1

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

परिचय और मौजूदा अवधारणाएँ

हम सभी जानते हैं कि सातोशी नाकामोटो के बिटकॉइन के विकास ने स्मारकीय तकनीक को जन्म दिया, जिसे ब्लॉकचेन कहा जाता है। उम्मीद है, आप पहले से ही जानते हैं कि ब्लॉकचेन तकनीक क्या है, हमारे पिछले पोस्ट के लिए धन्यवाद।

ब्लॉकचैन प्रौद्योगिकी के लिए कई अन्य अनुप्रयोग हैं उनमें से कुछ में शामिल हैं: रंगीन सिक्के, स्मार्ट संपत्ति, नामचोइन, स्मार्ट अनुबंध या डीएओ (विकेंद्रीकृत स्वायत्त संगठन)। ये एप्लिकेशन बिटकॉइन ब्लॉकचेन के शीर्ष पर बनाने के लिए जटिल हैं। इस मुद्दे को हल करने के लिए, Ethereum एक ट्यूरिंग-पूर्ण प्रोग्रामिंग भाषा का प्रस्ताव करता है जिसका उपयोग स्मार्ट अनुबंध बनाने या जटिल कार्यों को एनकोड करने के लिए किया जा सकता है। ट्यूरिंग-पूरी भाषा का उपयोग अनिवार्य रूप से ट्यूरिंग मशीन का अनुकरण करने के लिए किया जा सकता है। ट्यूरिंग मशीन एक ऐसा मॉडल है जो जटिलता की परवाह किए बिना किसी भी कंप्यूटर एल्गोरिथ्म का अनुकरण कर सकता है।

Ethereum नींव का प्रस्ताव है कि उपरोक्त सभी को कोड की कुछ पंक्तियों में आसानी से प्राप्त किया जा सकता है। हम इस दावे को इस ब्लॉग और भविष्य की पोस्ट में आगे सत्यापित करेंगे।

इतिहास

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

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

कार्य आम सहमति तंत्र का प्रमाण इस क्षेत्र में एक बड़ी सफलता थी क्योंकि इसने दो मुख्य समस्याओं को हल किया।

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

खनिकों के लिए, इसका अनिवार्य रूप से मतलब है - अधिक कंप्यूटिंग शक्ति = अधिक ब्लॉक खनन = अधिक क्रिप्टो पुरस्कार।

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

राज्य संक्रमण प्रणाली

किसी भी क्रिप्टोक्यूरेंसी का खाता अनिवार्य रूप से एक राज्य संक्रमण प्रणाली है, जो किसी भी समय पर इस बात की जानकारी रखता है कि व्यक्तिगत पर्स में कितने सिक्के हैं और इन पर्सों द्वारा किए गए लेनदेन।

नीचे दिए गए आरेख में तीन मुख्य ब्लॉकों पर विचार किया जाना है

राज्य - इसमें सभी स्वामित्व की जानकारी समाहित होती है, जो क्रिप्टोग्राफिक रूप से एन्क्रिप्टेड होती है।

लेन-देन - लेन-देन ब्लॉक प्रणाली में शुरू किए गए हस्तांतरण की मात्रा को परिभाषित करता है। इसमें एक हस्ताक्षर भी शामिल है जिसे प्रेषक द्वारा परिभाषित किया गया है।

राज्य '- इस राज्य में अंतिम स्वामित्व की जानकारी होती है जो सभी नोड्स में वितरित की जाती है। यह राज्य 'अगले लेनदेन में राज्य के रूप में कार्य करेगा।

एक पारंपरिक फिएट बैंकिंग सेटिंग में, राज्य व्यक्तिगत बैलेंस शीट होते हैं और जब ए से बी तक पैसा भेजा जाता है, तो उनके व्यक्तिगत रिकॉर्ड अपडेट हो जाते हैं।

जाहिर है, पारंपरिक बैंकों का उपयोग करके हम अपने व्यक्तिगत खातों में जितना पैसा भेज सकते हैं, उससे अधिक पैसा नहीं भेज सकते हैं, एक समान तर्क यहां लागू किया गया है जिसे निम्नलिखित फ़ंक्शन द्वारा परिभाषित किया गया है।

APPLY (S, TX) -> S 'या ERROR

बैंकिंग उदाहरण के संदर्भ में इसका वर्णन करने के लिए, हम इसे निम्नलिखित अभिव्यक्ति में अनुवादित कर सकते हैं।

क्रिप्टो

APPLY (S, TX) -> S '

बैंकों

APPLY ({ऐलिस: $ 50, बॉब: $ 50}, "ऐलिस से बॉब को $ 20 भेजें") = {ऐलिस: $ 30, बॉब: $ 70}

यहाँ S प्रारंभिक अवस्था है जहाँ ऐलिस और बॉब दोनों के खाते में $ 50 हैं।

TX वह लेनदेन है जो "ऐलिस से बॉब को $ 20 भेजना" को परिभाषित करता है

S 'एक अंतिम स्थिति है जो ऐलिस और बॉब के अद्यतन संतुलन को दर्शाता है

अगले परिदृश्य में जाने से पहले, हमें यह समझना चाहिए कि व्यक्तिगत खातों में सिक्कों के कब्जे की गणना कैसे की जाती है।

एक बिटकॉइन "राज्य" में उन सभी सिक्कों का संग्रह है जो उनके मालिक की सार्वजनिक कुंजी के साथ मौजूद हैं। इन सिक्कों का संग्रह पते से जुड़े कुल UTXO द्वारा निर्धारित किया जाता है। UTXO Unspent Transaction Outputs है, जैसा कि नाम से पता चलता है कि मालिक द्वारा खर्च नहीं किया गया है। इन आउटपुट को जाँच कर मापा जाता है कि क्या पिछले मालिक से आए सिक्के भी शुरू करने के लिए UTXO थे। पिछले मालिक के UTXO की जाँच करके और इसे पिछले मालिक की निजी कुंजी द्वारा निर्मित क्रिप्टोग्राफ़िक हस्ताक्षर के साथ जोड़कर पुष्टि की जाती है।

अब हम विश्लेषण करते हैं कि यदि आप उन सिक्कों को बेचने का प्रयास करते हैं जो आपके पास नहीं हैं?

क्रिप्टो

APPLY (S, TX) -> त्रुटि

बैंकों

APPLY ({ऐलिस: $ 50, बॉब: $ 50}, "ऐलिस से बॉब को $ 70 भेजें") = त्रुटि

1. TX में उल्लिखित मूल्य की जाँच करें ($ 70)

ए। यदि यह मान स्वामी के UTXO द्वारा सत्यापित नहीं है, तो यह उनके खाते में मौजूद नहीं है। कोई त्रुटि लौटाएं।

ख। यदि उल्लिखित क्रिप्टोग्राफ़िक हस्ताक्षर स्वामी के हस्ताक्षर से मेल नहीं खाते हैं, तो त्रुटि वापस करें।

2. यदि स्वामी के सभी UTXO का योग TX में बताए गए आंकड़े से कम है, तो त्रुटि वापस करें।

3. यदि लेनदेन वैध है, तो फंड को रिसीवर को ट्रांसफर करें। यह स्थानांतरण प्रेषक से इनपुट UTXO को हटाकर और रिसीवर के सार्वजनिक कुंजी पते के तहत जोड़कर होता है।

चरण 1a प्रेषक को ऐसे सिक्के भेजने से रोकता है जो मौजूद नहीं हैं और चरण 1b प्रेषकों को अन्य लोगों के सिक्के भेजने से रोकता है।

चरण 2 सुनिश्चित करता है कि लेनदेन के साथ आगे बढ़ने से पहले प्रेषक के पास पर्याप्त सिक्के हैं।

चरण 3 प्रेषक से मूल्यों को घटाकर और इसे रिसीवर के बटुए में जोड़कर प्रक्रिया पूरी करता है।

अब, इन चरणों को कल्पना करना आसान लग सकता है लेकिन पर्दे के पीछे बहुत कुछ चल रहा है।

निम्नलिखित उदाहरण से आपको बेहतर समझने में मदद मिलेगी।

मान लीजिए आप केले का एक गुच्छा खरीदने के लिए बाहर जाते हैं। अब कुछ अस्पष्ट कारणों के लिए, 1 केले की कीमत $ 75 है। एक पारंपरिक सेटअप में, यह देखने के लिए कि क्या आप इस कीमती अतिरंजित केले को खरीद सकते हैं, आप अपना बटुआ खोलेंगे और शेष राशि की जांच करेंगे। आपके पास कुल $ 100 (50 + 50 = 100, duh!) के प्रत्येक $ 50 के दो नोट हैं। ये दो नोट आपको आपकी मम्मी ने केले खरीदने के लिए दिए थे।

इस केले को वहन करने में सक्षम होने के लिए आपको अपने 50 डॉलर के दोनों नोट केले विक्रेता को देने होंगे और वह USD नोट संप्रदायों के संयोजन का उपयोग करके $ 25 वापस कर देगा। अब आप इस सुपर महंगी केले के गर्व के मालिक हैं। असली समस्या जो अब आपके सामने है, आपकी माँ को 1 केले की कीमत समझा रही है।

यह समझने में काफी सरल है, अब देखते हैं कि एक विशिष्ट क्रिप्टोकरेंसी लेनदेन में क्या होता है।

गौर करें कि ऐलिस 75 बीटीसी भेजना चाहता है (हाँ, ऐलिस गंदी समृद्ध है) बॉब को। आगे बढ़ने के लिए वह पहले जांच करेगी कि उसके बटुए में 75 बीटीसी हैं या नहीं। इसे जांचने के लिए, उसे अपने सभी UTXO (मूल्य इनपुट) का योग करना होगा। इस UTXO को पिछले उदाहरण में $ 50 के दो नोटों के रूप में देखें। हालांकि, एलिस के 50 बीटीसी प्रत्येक के बटुए में दो UTXO मूल्य हैं। इसका तात्पर्य यह है कि ऐलिस को उसके बटुए में दो लेनदेन मिले हैं। प्रत्येक UTXO की कीमत 50 BTC है।

अब, हम जानते हैं कि आप $ 100 के नोट को दो भागों में काटकर दो भागों में विभाजित नहीं कर सकते हैं, जो कि $ 50 के नोट को विभाजित करेगा। हालाँकि, क्रिप्टोक्यूरेंसी में, आप 1 सिक्के को दस 0.1 सिक्कों में विभाजित करके माइक्रोट्रांससे कर सकते हैं। हालांकि, यह विभाजन सीधा नहीं है।

75 बीटीसी को बॉब में स्थानांतरित करने के लिए, एलिस दो आउटपुट देने के लिए दो 50 बीटीसी इनपुट के साथ एक लेनदेन बनाएगा। एक आउटपुट बॉब को दिया जाएगा, एक अन्य शेष राशि को ऐलिस के वॉलेट में वापस स्थानांतरित किया जाएगा।

50BTC + 50BTC → 75BTC से बॉब + 25BTC को ऐलिस

इस परिदृश्य में, बॉब को पिछले उदाहरण की तुलना में शेष राशि वापस करने के लिए नहीं सौंपा गया है। बल्कि लेनदेन शेष शेष आउटपुट की वापसी को ऐलिस को सौंप देता है।

खनिज

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

बिटकॉइन नेटवर्क हर 10 मिनट में 1 ब्लॉक का उत्पादन करता है। प्रत्येक ब्लॉक में एक टाइमस्टैम्प, एक नॉन (एक मनमाना गैर-दोहराने योग्य संख्या) होता है, जो पिछले डायग्राम में प्रेवेश के रूप में उल्लिखित पिछले ब्लॉक का संदर्भ है और पिछले ब्लॉक के खनन के बाद हुए सभी लेन-देन की सूची है। ब्लॉकों की यह कभी न खत्म होने वाली श्रृंखला हमेशा वितरित बंटवारे की नवीनतम स्थिति का प्रतिनिधित्व करती है और इस प्रकार इसका नाम - ब्लॉकचेन प्राप्त करती है।

निम्नलिखित चरण एक ब्लॉक की वैधता की जाँच करते हैं:

  1. जांचें कि क्या पिछले ब्लॉक को संदर्भित ब्लॉक मौजूद है और मान्य है।
  2. जांचें कि ब्लॉक का टाइमस्टैम्प पिछले ब्लॉक की तुलना में अधिक है और भविष्य में 2 घंटे से कम है।
  3. जांचें कि ब्लॉक पर काम का प्रमाण वैध है।
  4. बता दें कि S [0] पिछले ब्लॉक के अंत में स्थित है।
  5. मान लीजिए कि TX n लेनदेन के साथ ब्लॉक की लेनदेन सूची है। सभी के लिए मैं 0… n-1 में, S [i + 1] = APPLY (S [i], TX [i]) सेट करता हूं, यदि कोई एप्लिकेशन त्रुटि देता है, तो बाहर निकलें और गलत लौटें।
  6. सही लौटें, और इस ब्लॉक के अंत में S [n] को राज्य के रूप में पंजीकृत करें।

अंक 1 से 3 सीधे होते हैं। हालांकि, अगले 3 अंक थोड़ा भ्रामक लग सकता है। आइए हम समझते हैं कि यह कैसे काम करता है।

जैसा कि बिंदु 4 में बताया गया है, S [0] ब्लॉक 5624 के अंत में स्थित है।

बिंदु 5 में यह उल्लेख है कि प्रत्येक n लेनदेन के लिए, एक विशेष स्थिति निम्नानुसार है:

इसलिए फ़ंक्शन द्वारा → S [i + 1] = APPLY (S [i], TX [i])

हमारे पास निम्नलिखित हैं:

S [1] = APPLY (S [0], TX [0])] पहला लेनदेन

S [2] = APPLY (S [1], TX [1])] दूसरा लेन-देन

S [n] = APPLY (S [n-1], TX [n-1]) transaction nth लेन-देन

यदि आपको पिछले विषय में पढ़ा गया फ़ंक्शन याद है। हमें लागू फ़ंक्शन के आधार पर S 'के मान को पीछे करने में सक्षम होना चाहिए।

APPLY (S, TX) -> S '

यह मुख्य रूप से विभिन्न लेनदेन और ब्लॉकों को जोड़ने के लिए उपयोग किया जाता है। इसलिए ब्लॉक में प्रत्येक लेनदेन एक लेनदेन से दूसरे में उपरोक्त कार्यों का उपयोग करके एक वैध राज्य संक्रमण को परिभाषित करता है। राज्य, हालांकि, ब्लॉक में कहीं भी संग्रहीत नहीं किया जाता है और उस ब्लॉक के प्रत्येक लेनदेन के लिए उस विशेष ब्लॉक की उत्पत्ति स्थिति से शुरू करके ही सही ढंग से गणना की जाती है। यह अंततः S [n] का आउटपुट देता है जो अगले ब्लॉक के लिए S [0] के रूप में कार्य करेगा।

लेन-देन का क्रम मुख्य महत्व का है क्योंकि यदि B, A द्वारा भेजे गए धन (UTXO) को लेन-देन करता है (बनाया गया है), तो A द्वारा किया गया लेनदेन ब्लॉक के वैध होने के लिए B से पहले आना चाहिए।

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

मान लीजिए कि डायनामिक टारगेट ~ 2150 पर सेट है, तो नेटवर्क को औसतन 2 (256–150) हासिल करना होगा, जो वैध ब्लॉक मिलने से पहले 2106 के बराबर होता है। यह डायनेमिक लक्ष्य प्रत्येक 2016 ब्लॉक को रीसेट किया गया है और नए लक्ष्य मूल्य पर कैलिब्रेट किया गया है। बिटकॉइन नेटवर्क पर हर दस मिनट में औसतन एक नया ब्लॉक तैयार किया जाता है। सभी भारी उठाने के लिए जो खनिक हमारे लेनदेन की सुविधा और जटिल गणित समस्याओं को हल करके करते हैं, उन्हें बिटकॉइन इनाम के रूप में दिए जाते हैं। प्रारंभिक इनाम 25 बीटीसी प्रति ब्लॉक खनन था। वर्तमान में, इनाम प्रति खनन ब्लॉक 12.5 बीटीसी है। इस तरह बिटकॉइन प्रचलन में आते हैं। खनिकों को दिए गए बिटकॉइन नए बिटकॉइन हैं जिन्हें 21,000,000 बिटकॉइन से अनलॉक किया जा रहा है जो बिटकॉइन की कठिन सीमा है जो कभी भी प्रचलन में हो सकते हैं।

एक हमले के घटना में क्या है?

अब हम खनन के लाभों का विश्लेषण करते हैं और यह हमलों को कैसे रोकता है। निम्नलिखित पंक्तियों को Ethereum श्वेत पत्र से उठाया गया है क्योंकि पाठ बहुत अधिक आत्म-व्याख्यात्मक है।

"हमलावर की रणनीति सरल है:

  1. कुछ उत्पाद के बदले एक व्यापारी को 100 बीटीसी भेजें (अधिमानतः एक तेजी से वितरण डिजिटल अच्छा)
  2. उत्पाद के वितरण की प्रतीक्षा करें
  3. एक और लेन-देन का उत्पादन उसी 100 BTC को खुद को भेजना
  4. नेटवर्क को यह समझाने की कोशिश करें कि उसका लेन-देन खुद वही था जो पहले आया था।

एक बार कदम (1) लग जाने के बाद, कुछ मिनटों के बाद कुछ खनिक में एक ब्लॉक में लेनदेन शामिल होगा, ब्लॉक नंबर 270 का कहना है। एक घंटे के बाद, उस ब्लॉक के बाद श्रृंखला में पांच और ब्लॉक जोड़े जाएंगे, जिनमें से प्रत्येक के साथ वे ब्लॉक अप्रत्यक्ष रूप से लेन-देन की ओर इशारा करते हैं और इस तरह "इसकी पुष्टि" करते हैं। इस बिंदु पर, व्यापारी भुगतान को अंतिम रूप देगा और उत्पाद को वितरित करेगा; चूंकि हम यह मान रहे हैं कि यह डिजिटल अच्छा है, इसलिए डिलीवरी तुरंत है। अब, हमलावर खुद को 100 बीटीसी भेजने वाला एक और लेनदेन करता है। यदि हमलावर इसे केवल जंगली में जारी करता है, तो लेनदेन संसाधित नहीं किया जाएगा; खननकर्ता APPLY (S, TX) को चलाने का प्रयास करेंगे और ध्यान देंगे कि TX एक UTXO खाता है जो अब राज्य में नहीं है। इसलिए इसके बजाय, हमलावर ब्लॉकचैन का एक "कांटा" बनाता है, जिसकी शुरुआत ब्लॉक 270 के दूसरे संस्करण से होती है, जो एक ब्लॉक 269 को एक अभिभावक के रूप में इंगित करता है लेकिन पुराने के स्थान पर नए लेनदेन के साथ। क्योंकि ब्लॉक डेटा अलग है, इसके लिए काम के प्रमाण को फिर से तैयार करना होगा। इसके अलावा, ब्लॉक 270 के हमलावर के नए संस्करण में एक अलग हैश है, इसलिए मूल ब्लॉक 271 से 275 इसके लिए "बिंदु" नहीं है; इस प्रकार, मूल श्रृंखला और हमलावर की नई श्रृंखला पूरी तरह से अलग हैं। नियम यह है कि एक कांटा में सबसे लंबे ब्लॉकचेन को सच मान लिया जाता है, और इसलिए वैध खनिक 275 श्रृंखला पर काम करेंगे जबकि अकेले हमलावर 270 श्रृंखला पर काम कर रहा है। हमलावर को अपने ब्लॉकचेन को सबसे लंबा बनाने के लिए, उसे पकड़ने के लिए संयुक्त नेटवर्क के बाकी हिस्सों की तुलना में अधिक कम्प्यूटेशनल शक्ति की आवश्यकता होगी (इसलिए, "51% हमला")। "

उपरोक्त पाठ दिखाता है कि ब्लॉकचेन पर नियंत्रण कैसे प्राप्त करें, हमलावर के पास कुल ब्लॉकचेन के 51% से अधिक प्रसंस्करण शक्ति होनी चाहिए जो शीर्ष सिक्कों के लिए संभावित रूप से असंभव है।

मर्कल ट्रीज़

मर्कल के पेड़ एक ब्लॉक की विशिष्टता को बनाए रखने में मदद करते हैं। मर्कल ट्री एक बाइनरी ट्री है, जहां प्रत्येक नोड में दो बच्चे होते हैं, और यह नीचे की तरफ सभी तरह से अलग-अलग पत्ती के नोड्स होता है जिसमें लेनदेन डेटा होता है। ये लीफ नोड्स ऊपर की ओर निर्मित होते हैं जैसा कि नीचे दिए गए चित्र में दिखाया गया है और एक 'हैश' में समाप्त होता है। ब्लॉक के इस हैश में टाइमस्टैम्प, नॉन, पिछले ब्लॉक हैश और मर्कल ट्री का रूट हैश होता है जैसा कि बाईं ओर की छवि में दिखाया गया है।

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

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

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

वैकल्पिक ब्लॉकचेन अनुप्रयोग

  1. Namecoin
    NameCoin आपको एक विकेंद्रीकृत डेटाबेस पर नाम पंजीकृत करने देता है।
  2. रंगीन सिक्के
    रंगीन सिक्के बिटकॉइन ब्लॉकचेन पर लोगों को अपनी डिजिटल मुद्राएं बनाने की अनुमति देने के लिए एक प्रोटोकॉल के रूप में काम करते हैं।
  3. Metacoins
    मेटाकॉइन प्रोटोकॉल को बिटकॉइन के शीर्ष पर संग्रहीत किया जाता है लेकिन बिटकॉइन से एक अलग राज्य संक्रमण फ़ंक्शन का उपयोग करता है। वे एक मनमाना क्रिप्टोक्यूरेंसी प्रोटोकॉल बनाने के लिए एक तंत्र प्रदान करते हैं।

ब्लॉकचेन सिस्टम बनाने के दो तरीके हैं। पहला एक स्वतंत्र नेटवर्क का निर्माण कर रहा है और दूसरा में बिटकॉइन के ऊपर एक प्रोटोकॉल का निर्माण शामिल है। पहले दृष्टिकोण को शामिल लागतों के कारण लागू करना मुश्किल है। इसके अलावा, ब्लॉकचैन पर चलने वाले अनुप्रयोगों की संख्या पूर्ण-स्वतंत्र नेटवर्क की मांग नहीं करती है। इन अनुप्रयोगों की आवश्यकताएं अपेक्षाकृत कम कंप्यूटर गहन हैं।

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

स्क्रिप्टिंग

बिटकॉइन प्रोटोकॉल protocol स्मार्ट कॉन्ट्रैक्ट ’के रूप में ज्ञात अवधारणा के एक आदिम संस्करण को संभालता है। बिटकॉइन में UTXO न केवल एक सार्वजनिक कुंजी के स्वामित्व में हो सकता है, बल्कि एक साधारण प्रोग्रामिंग भाषा में व्यक्त जटिल स्क्रिप्ट द्वारा भी हो सकता है। इस परिदृश्य में, लेन-देन के बाद, UTXO को डेटा प्रदान करना चाहिए जो स्क्रिप्ट को संतुष्ट करता है। Afterall, यहां तक ​​कि बुनियादी सार्वजनिक कुंजी स्वामित्व तंत्र एक स्क्रिप्ट के माध्यम से कार्यान्वित किया जाता है जो कि अण्डाकार वक्र हस्ताक्षर का उपयोग करके सत्यापित किया जाता है। यदि सत्यापन सफल है, तो स्क्रिप्ट 1 वापस आती है और 0 अन्यथा वापस आती है।

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

हालाँकि, बिटकॉइन स्क्रिप्टिंग भाषा में कई सीमाएँ हैं:

  1. ट्यूरिंग कम्प्लीटनेस की कमी - अनंत लूप स्थितियों को रोकने के लिए लूप उपलब्ध नहीं हैं लेकिन एक ऐसी भाषा में स्मार्ट कॉन्ट्रैक्ट लिखने के लिए जो ट्यूरिंग पूरा नहीं है, काफी चुनौतीपूर्ण हो सकता है।
  2. मूल्य अंधापन - UTXO स्क्रिप्ट यह निर्धारित करने में सक्षम नहीं है कि USD की तुलना में BTC का मूल्य बदल गया है या नहीं।
  3. राज्य की कमी - एक UTXO या तो खर्च या अनिर्दिष्ट हो सकता है। जटिल स्मार्ट अनुबंध बनाने के लिए जिसमें बिटकॉइन नेटवर्क पर दो चरण का क्रिप्टोग्राफिक सत्यापन शामिल हो सकता है।
  4. ब्लॉकचेन ब्लाइंडनेस - UTXO में नॉनस, टाइमस्टैम्प या पिछले ब्लॉक हैश तक पहुंच नहीं है। यह कई क्षेत्रों में बिटकॉइन के आवेदन को सीमित करता है।

"Ethereum एक वैकल्पिक ढाँचा बनाने का प्रस्ताव करता है जो विकास में आसानी के साथ-साथ और भी हल्के ग्राहक गुणों को और भी अधिक लाभ प्रदान करता है, जबकि एक ही समय में अनुप्रयोगों को आर्थिक वातावरण और ब्लॉकचेन सुरक्षा को साझा करने की अनुमति देता है।"

यह इथेरियम श्वेत पत्र के भाग 1 की व्याख्या को समाप्त करता है। संक्षेप में, इस पोस्ट ने हमें एक सामान्य अवलोकन दिया कि कैसे बिटकॉइन, बहुत पहले क्रिप्टोक्यूरेंसी, फ़ंक्शन। अब हम विश्लेषण करेंगे कि एथेरम बिटकॉइन प्रोटोकॉल से कैसे अलग है।