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

Ethereum कई उपयोग के मामलों के साथ विकेंद्रीकृत अनुप्रयोगों के विभिन्न प्रकार के निर्माण के लिए एक प्रोटोकॉल बनाने के केंद्रीय फोकस के आसपास बनाया गया था।

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

दर्शन

Ethereum को निम्नलिखित पाँच सिद्धांतों पर डिज़ाइन किया गया है।

सादगी

इथेरियम एक प्रोटोकॉल के रूप में बनाया गया है जो सरल है और सभी के लिए खुला होने की दृष्टि है, यहां तक ​​कि पर

डाटा स्टोरेज की लागत और समय की अक्षमता। किसी भी औसत प्रोग्रामर को चुनने में सक्षम होना चाहिए

वर्कफ़्लो और आसानी से परियोजनाओं को लागू करना। यह अभूतपूर्व रूप से पूरी तरह से साकार करने में मदद करता है

ब्लॉकचैन और क्रिप्टोक्यूरेंसी की क्षमता।

सार्वभौमिकता

इथेरियम की ट्यूरिंग पूर्णता किसी भी स्मार्ट अनुबंध को बनाने में मदद करती है जो हो सकती है

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

प्रतिरूपकता

इथेरियम को इस तरह से डिज़ाइन किया गया है कि प्रोटोकॉल के सभी भागों को अलग-अलग इकाइयों में अलग किया जा सकता है। यहां तक ​​कि अगर कोई एक जगह पर एक छोटा प्रोटोकॉल संशोधन करता है, तो एप्लिकेशन स्टैक के अन्य भाग अप्रभावित होंगे और आगे संशोधन के बिना काम करना जारी रखेंगे।

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

चपलता

एथेरियम प्रोटोकॉल के निर्माण पत्थर में सेट नहीं हैं, हालांकि उच्च-स्तरीय निर्माणों में संशोधन केवल विवेकपूर्ण तरीके से किया जाएगा।

गैर-भेदभाव और गैर-सेंसरशिप

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

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

एथेरियम खाते

एथेरियम में, राज्य "खातों" नामक वस्तुओं से बना होता है, जहां प्रत्येक खाते में 20-बाइट का सार्वजनिक पता होता है। राज्य परिवर्तन दो या अधिक खातों के बीच मूल्य और सूचना के हस्तांतरण हैं। एक Ethereum खाते में निम्नलिखित चार फ़ील्ड शामिल हैं।

  • Nonce; यह एक ऐसा काउंटर है जो सुनिश्चित करता है कि प्रत्येक लेनदेन को केवल एक बार संसाधित किया जा सके
  • खाते का वर्तमान ईथर शेष
  • खाते का अनुबंध कोड, (यदि वर्तमान में, स्मार्ट अनुबंधों पर लागू हो)
  • खाते का संग्रहण (डिफ़ॉल्ट रूप से खाली)

ईथर एथेरम में इस्तेमाल किया जाने वाला मुख्य ईंधन है और इसका उपयोग लेनदेन शुल्क के लिए भी किया जाता है जिसे Gwei के नाम से भी जाना जाता है।

दो प्रकार के खाते हैं:

  1. बाहरी स्वामित्व वाले खाते; निजी कुंजी द्वारा नियंत्रित: कोई अंतर्निहित कोड नहीं है। लेनदेन बनाकर और हस्ताक्षर करके संदेश भेजे जाते हैं।
  2. अनुबंध खाते; कॉन्ट्रैक्ट कोड द्वारा नियंत्रित: प्राप्त संदेश की सामग्री के आधार पर कोड सक्रिय होता है और आगे की प्रक्रिया जैसे आंतरिक भंडारण में पढ़ना और लिखना, अन्य संदेश भेजना या अनुबंध बनाना सक्रिय किया जा सकता है।

दूसरे प्रकार के खाते का उपयोग एक क्रिप्टोक्यूरेंसी एक्सचेंज द्वारा किया जाता है: ब्लॉकचेन बोर्ड ऑफ डेरिवेटिव्स अपने गैर-कस्टोडियल स्मार्ट कॉन्ट्रैक्ट वॉलेट सिस्टम में।

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

लेन-देन

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

विशिष्ट लेनदेन में निम्नलिखित शामिल हैं:

  • संदेश का प्राप्तकर्ता (प्राप्तकर्ता की सार्वजनिक कुंजी)
  • हस्ताक्षर भेजने वाले की पहचान (प्रेषक की निजी कुंजी)
  • प्रेषक से प्राप्तकर्ता को स्थानांतरित करने के लिए ईथर की मात्रा
  • एक वैकल्पिक डेटा फ़ील्ड
  • एक STARTGAS मूल्य, कम्प्यूटेशनल चरणों की अधिकतम संख्या का प्रतिनिधित्व करते हुए लेन-देन निष्पादन की अनुमति है
  • GASPRICE का मान, प्रेषक द्वारा प्रति कम्प्यूटेशनल चरण के शुल्क का प्रतिनिधित्व करना

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

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

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

सरल शब्दों में, गैस का भुगतान ब्लॉकचैन पर की गई गणना की संख्या और जटिलता के सीधे आनुपातिक है।

संदेश

अनुबंध अन्य अनुबंधों को संदेश भेज सकते हैं।

विशिष्ट संदेशों में शामिल हैं:

  • संदेश भेजने वाला
  • संदेश का प्राप्तकर्ता
  • संदेश के साथ हस्तांतरण करने के लिए ईथर की मात्रा
  • एक वैकल्पिक डेटा फ़ील्ड
  • एक STARTGAS मान

एक संदेश लेनदेन के समान है सिवाय इसके कि संदेश एक अनुबंध द्वारा बनाए गए हैं और बाहरी स्वामित्व वाले खातों से नहीं। एक संदेश तब उत्पन्न होता है जब एक संविदा क्रियान्वयन कोड CALL opcode निष्पादित करता है, एक संदेश का उत्पादन और क्रियान्वित करता है।

संदेश प्राप्तकर्ता खाते द्वारा प्राप्त किया जाता है जो तब अपना कोड चलाता है। इस तरीके से, अनुबंध बाहरी स्वामित्व वाले खातों के समान अन्य अनुबंधों के साथ संबंधों में अधिनियमित कर सकते हैं।

एक अनुबंध द्वारा सौंपा गया गैस आवंटन लेनदेन और सभी उप-निष्पादनों द्वारा खपत की गई गैस पर लागू होता है।

आइए इसे एक उदाहरण से समझते हैं।

@A एक बाहरी स्वामित्व वाला खाता है

@ बी एक अनुबंध है

@A 1000 गैस के साथ @B लेनदेन भेजता है।

@B 600 गैस की खपत करता है और @C को संदेश भेजता है।

@ सी के आंतरिक निष्पादन में 300 गैस की खपत होती है।

1000-600-300 = 100

इसका तात्पर्य यह है कि अनुबंध @ बी केवल गैस से बाहर चलने से पहले एक और 100 गैस की गणना / संदेश / लेनदेन पर खर्च कर सकता है।

एथेरियम राज्य संक्रमण समारोह

जैसा कि श्रृंखला के भाग 1 में उल्लिखित है, आप राज्य संक्रमण फ़ंक्शन को याद कर सकते हैं

APPLY (S, TX) -> S '

श्वेत पत्र से आगे के कदम उठाए गए हैं और बहुत अधिक आत्म-व्याख्यात्मक हैं:

  1. लेन-देन में मानों की सही संख्या होनी चाहिए, हस्ताक्षर मान्य होना चाहिए और प्रेषक के खाते में गैर-मिलान का मिलान होना चाहिए। यदि यह अनुपालन नहीं करता है, तो एक त्रुटि फेंक दें।
  2. लेनदेन शुल्क की गणना STARTGAS * GASPRICE के रूप में की जाती है, भेजने का पता हस्ताक्षर से निर्धारित किया जा सकता है। प्रेषक की शेष राशि से शुल्क घटाएँ और प्रेषक के वेतन में वृद्धि करें। यदि खर्च करने के लिए पर्याप्त संतुलन नहीं है, तो एक त्रुटि फेंक दें।
  3. लेन-देन में बाइट्स का भुगतान करने के लिए GAS = STARTGAS, और प्रति बाइट की निश्चित मात्रा में गैस ली जाती है।
  4. प्रेषक के खाते से प्राप्त खाते में लेनदेन मूल्य स्थानांतरित करें। यदि प्राप्त करने वाला खाता अभी तक मौजूद नहीं है, तो इसे बनाएं। यदि प्राप्त खाता एक अनुबंध है, तो अनुबंध का कोड या तो पूरा होने तक या निष्पादन समाप्त होने तक चलाएं।
  5. यदि मान हस्तांतरण विफल हो गया, क्योंकि प्रेषक के पास पर्याप्त पैसा नहीं था, या कोड निष्पादन गैस से बाहर चला गया, तो शुल्क के भुगतान को छोड़कर सभी राज्य परिवर्तनों को वापस कर दें, और शुल्क को माइनर के खाते में जोड़ें। फीस के भुगतान को वापस नहीं किया जा सकता क्योंकि लेनदेन को सुविधाजनक बनाने के लिए माइनर ऊर्जा खर्च करता है।
  6. अन्यथा, प्रेषक को शेष सभी गैस के लिए शुल्क वापस कर दें, और गैस की खपत के लिए भुगतान की गई राशि को खनिक को भेजें।

निम्नलिखित होने के लिए अनुबंध कोड मानें:

अगर! सेल्फस्टोरेज [कैलडलाटोआड (0)]:
सेल्फस्टेज [कैलडलाटोआड (0)] = कैलडटाल्टैड (32)

अनुबंध वास्तव में निम्न-स्तरीय ईवीएम कोड में लिखा गया है, लेकिन उपरोक्त उदाहरण सर्प में लिखा गया है।

अब एक उदाहरण पर विचार करते हैं:

अनुबंध का भंडारण शुरू में खाली है और एक लेनदेन 10 ईथर मूल्य, 2000 गैस, 0.001 ईथर गैसप्राइस और 64 बाइट डेटा के साथ भेजा जाता है, जिसमें बाइट्स 031 नंबर 2 का प्रतिनिधित्व करता है और 32-63 स्ट्रिंग CHLLIE ले जाता है।

इस परिदृश्य में राज्य संक्रमण फ़ंक्शन प्रक्रिया निम्नानुसार है। ये चरण ऊपर दिए गए सामान्य उदाहरण में उल्लिखित के समान हैं।

  1. जांचें कि लेनदेन वैध और अच्छी तरह से गठित है।
  2. जांचें कि लेनदेन भेजने वाले के पास कम से कम 2000 * 0.001 = 2 ईथर है। यदि यह है, तो भेजने वाले के खाते से 2 ईथर घटाएं। (चूंकि हमें सूत्र के रूप में STARTGAS * GASPRICE का उपयोग करना है)
  3. प्रारंभिक गैस = 2000; यह मानते हुए कि लेन-देन 170 बाइट्स लंबा है और बाइट-शुल्क 5 है, 850 (170 * 5) घटाएं ताकि 1150 (2000-850) गैस बचे।
  4. प्रेषक के खाते से 10 और ईथर घटाएं, और इसे अनुबंध के खाते में जोड़ें।
  5. कोड चलाएँ। इस मामले में, यह सरल है: यह जाँचता है कि क्या अनुक्रमणिका 2 में संचय का उपयोग किया जाता है, नोटिस करता है कि यह नहीं है, और इसलिए यह भण्डार 2 को मूल्य CHARLIE में सेट करता है। मान लीजिए कि इसमें 187 गैस है, इसलिए गैस की शेष मात्रा 1150-187 = 963 है
  6. 963 * 0.001 = 0.963 ईथर को प्रेषक के खाते में वापस जोड़ें, और परिणामी स्थिति लौटाएं।

यह पूरी प्रक्रिया में किए गए चरणों का निष्कर्ष निकालता है।

यदि लेन-देन के अंतिम छोर पर कोई अनुबंध नहीं था, तो कुल लेन-देन शुल्क बाइट्स में लेन-देन की लंबाई से गुणा किए गए प्रदान किए गए GASPRICE के बराबर होगा, और लेनदेन के साथ भेजा गया डेटा अप्रासंगिक होगा।

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

संदेश और लेन-देन समान शर्तों पर काम करते हैं जब यह पुनर्जन्म की बात आती है: यदि कोई संदेश निष्पादन गैस से बाहर निकलता है, तो उस संदेश का निष्पादन, और अन्य सभी निष्पादन उस निष्पादन से शुरू हो जाते हैं, वापस आते हैं, लेकिन माता-पिता के निष्पादन को वापस करने की आवश्यकता नहीं होती है।

इसका मतलब यह है कि यह एक अनुबंध के लिए "सुरक्षित" है जैसे कि एक अन्य अनुबंध को कॉल करने के लिए अगर ए जी गैस के साथ बी कहता है तो ए के निष्पादन को अधिकांश जी गैस पर खोने की गारंटी है। हालाँकि, अनुबंध के बाहर निष्पादित अभिभावक वापस नहीं आते हैं।

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

हम अपने भविष्य के इन-डेप्थ टेक्निकल ब्लॉग पोस्ट्स में आगे के विस्तार में ओपकोड करेंगे।

कोड निष्पादन

Ethereum कॉन्ट्रैक्ट्स में कोड एक निम्न-स्तरीय, स्टैक-आधारित बायोटेक भाषा में लिखा जाता है, जिसे "Ethereum Virtual Machine code" या "EVM कोड" कहा जाता है। ईवीएम कोड अनिवार्य रूप से बाइट्स की एक श्रृंखला है और प्रत्येक बाइट एक ऑपरेशन है।

"कोड निष्पादन एक अनंत लूप है जिसमें वर्तमान प्रोग्राम काउंटर (जो कि शून्य पर शुरू होता है) पर बार-बार ऑपरेशन को अंजाम देता है और फिर प्रोग्राम के काउंटर को एक-एक करके बढ़ाता है, जब तक कि कोड का अंत नहीं हो जाता है या एक त्रुटि या STOP या RETNN निर्देश का पता चला है। ”

ऑपरेशन में तीन प्रकार के स्थान तक पहुंच होती है जिसमें डेटा संग्रहीत किया जाता है:

  1. स्टैक, एक अंतिम-इन-पहले कंटेनर जिसमें मूल्यों को धक्का दिया जा सकता है और एक विशिष्ट स्टैक की तरह पॉप किया जा सकता है।
  2. मेमोरी, एक असीम विस्तार योग्य बाइट सरणी है।
  3. भंडारण, एक कुंजी / मूल्य की दुकान। स्टैक और मेमोरी के विपरीत, जो गणना समाप्त होने के बाद रीसेट करता है, भंडारण लंबे समय तक बना रहता है।

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

ईवीएम कोड का निष्पादन मॉडल काफी सरल है। हम आगे के चरणों में इसका पता लगाएंगे।

जबकि Ethereum वर्चुअल मशीन चल रही है, इसकी पूर्ण कम्प्यूटेशनल अवस्था को ट्यूल द्वारा परिभाषित किया जा सकता है। एक tuple में block_state, लेनदेन, संदेश, कोड, मेमोरी, स्टैक, पीसी और गैस शामिल हैं।

यहाँ, block_state वैश्विक राज्य है जिसमें सभी खाते शामिल हैं और इसमें शेष राशि और भंडारण शामिल हैं।

निष्पादन के हर दौर की शुरुआत में, वर्तमान निर्देश को पीसी-वें बाइट ऑफ़ कोड (या 0 यदि पीसी> = लेन (कोड)) से लिया जाता है, जिसका अर्थ है कि पीसी को शून्य से अधिक या इसके बराबर होने पर शून्य माना जाता है। कोड की लंबाई के लिए।

प्रत्येक निर्देश की अपनी परिभाषा है कि यह कैसे टपल को प्रभावित करेगा।

ADD स्टैक से दो आइटमों को निकालता है, उनकी राशि को धक्का देता है, 1 से गैस कम करता है और 1 से इंक्रीमेंट पीसी (स्टैक का विशिष्ट काम करता है)

SSTORE स्टैक से शीर्ष दो आइटमों को पॉप करता है और पहले आइटम द्वारा निर्दिष्ट इंडेक्स में दूसरे आइटम को अनुबंध के भंडारण में सम्मिलित करता है।

ईवीएम निष्पादन को सिर्फ-इन-टाइम संकलन के माध्यम से अनुकूलित करने के कई तरीके हैं, Ethereum का एक बुनियादी कार्यान्वयन कोड की कुछ सौ पंक्तियों में किया जा सकता है।

ब्लॉकचेन और माइनिंग

Ethereum blockchain कुछ सूक्ष्म अंतरों के साथ Bitcoin blockchain के समान है।

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

Ethereum में बुनियादी ब्लॉक सत्यापन एल्गोरिथ्म को निम्नलिखित चरणों में समझाया जा सकता है:

  1. जांचें कि क्या पिछला ब्लॉक संदर्भित है और मौजूद है।
  2. जांचें कि ब्लॉक का टाइमस्टैम्प संदर्भित पिछले ब्लॉक की तुलना में अधिक है और भविष्य में 15 मिनट से कम है।
  3. जांच लें कि ब्लॉक नंबर, कठिनाई, लेनदेन रूट, चाचा रूट और गैस सीमा (विभिन्न निम्न-स्तर एथेरम-विशिष्ट अवधारणाएं जो बाद में कवर की जाएंगी) वैध हैं।
  4. जांचें कि ब्लॉक पर काम का प्रमाण वैध है।
  5. बता दें कि S [0] पिछले ब्लॉक के अंत में स्थित है। (पिछले ब्लॉग पोस्ट में इस पर चर्चा और व्याख्या की जा रही है)
  6. बता दें कि TX n लेनदेन के साथ ब्लॉक की लेनदेन सूची है। सभी के लिए मैं 0 ... n-1 में, S [i + 1] = APPLY (S [i], TX [i]) सेट करता हूं। यदि कोई भी एप्लिकेशन त्रुटि देता है, या यदि यह बिंदु GASLIMIT से अधिक होने तक ब्लॉक में कुल गैस की खपत होती है, तो त्रुटि वापस करें।
  7. बता दें कि S_FINAL S [n] है, लेकिन माइनर (S_FINAL = S [n] + ब्लॉक रिवॉर्ड) को दिए गए ब्लॉक इनाम को जोड़ते हैं। एक खननकर्ता सफलतापूर्वक एक ब्लॉक खनन पूरा करने के बाद इनाम से सम्मानित किया जाता है।
  8. जांचें कि क्या राज्य का मर्कल ट्री रूट S_FINAL ब्लॉक हेडर में उपलब्ध अंतिम स्टेट रूट के बराबर है। यदि यह है, तो ब्लॉक वैध है; अन्यथा, यह मान्य नहीं है। (मर्कल ट्री और ब्लॉक हेडर के साथ सत्यापन को पिछले ब्लॉग पोस्ट में प्रासंगिक चित्रों के साथ समझाया गया है)

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

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

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

इसके अतिरिक्त, क्योंकि राज्य की सभी जानकारी अंतिम ब्लॉक का हिस्सा है, इसलिए पूरे ब्लॉकचेन इतिहास को संग्रहीत करने की आवश्यकता नहीं है।

एक सामान्य रूप से पूछा गया प्रश्न "जहां" अनुबंध कोड को निष्पादित किया जाता है, भौतिक हार्डवेयर के संदर्भ में।

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

यह इथेरियम श्वेत पत्र के भाग 2 के अंत का प्रतीक है। अगले भाग में, हम Ethereum प्रोटोकॉल और पारिस्थितिकी तंत्र के वास्तविक समय के अनुप्रयोगों पर चर्चा करेंगे।