यह एक में पांचवां लेख है शृंखला अलग-अलग वाचा के प्रस्तावों में गहरी गोताखोरी जो एक गहन टूटने के लिए परिपक्वता के एक बिंदु पर पहुंच गई है।
On_catबीआईपी 347 में एथन हेइलमैन और आर्मिन सबौरी द्वारा टैपस्क्रिप्ट में पुनर्सक्रियन के लिए आगे रखा गया, एक वाचा नहीं है। यह एक ओपकोड था जो मूल रूप से स्टैक पर डेटा तत्वों में हेरफेर करने के लिए बिटकॉइन की पहली रिलीज में शामिल था। इसे 2010 में निष्क्रिय कर दिया गया था बिटकॉइन की रिहाई 0.3.10 सेवा हमलों से इनकार करने के कारण कई अन्य ओपकोड के साथ -साथ नोड्स को दुर्घटनाग्रस्त कर सकते हैं। स्क्रिप्ट को निष्पादित करते समय स्टैक पर किसी भी व्यक्तिगत आइटम के लिए 520 बाइट्स की एक वैश्विक अधिकतम सीमा भी जोड़ी गई थी।
आपको पहले से ही एक बुनियादी समझ होनी चाहिए कि स्टैक पर स्क्रिप्ट मूल्यांकन कैसे काम करता है, और एक बिटकॉइन लेनदेन के मूल टुकड़े, इसलिए वास्तव में बहुत अधिक पूर्व-आवश्यकता नहीं है जो op_cat के लिए आवश्यक है।
जबकि op_cat अपने आप में एक वाचा नहीं हो सकता है, यह एक विचित्रता के कारण वाचाओं का अनुकरण कर सकता है कि Schnorr हस्ताक्षर कैसे काम करते हैं। यह एक सुंदर गहराई से विषय है, पूरी तरह से समझाया गया है यहाँ ब्लॉकस्ट्रीम से एंड्रयू पोल्स्ट्रा द्वारा, इसलिए मैं बस एक उच्च स्तरीय दृश्य के साथ चिपक जाऊंगा। प्रत्येक अण्डाकार वक्र में एक जनरेटर बिंदु होता है, जो अनिवार्य रूप से “0” होता है, जिसका उपयोग प्रमुख पीढ़ी और हस्ताक्षर के लिए अण्डाकार वक्र गणित में किया जाता है। Schnorr के साथ, आप एक कुंजी के रूप में जनरेटर बिंदु का उपयोग करके साइन कर सकते हैं, और कुछ बाइट्स दे सकते हैं या ले सकते हैं जिन्हें आपको सही होने के लिए बार -बार हस्ताक्षर करना होगा, परिणामस्वरूप हस्ताक्षर वास्तव में आपके द्वारा हस्ताक्षरित लेनदेन के समान हैश है।
अब के लिए गणितीय रूप से कैसे काम करता है, इसके यांत्रिकी को अलग रखें, और बस बाद में याद रखें कि ये “अजीब” हस्ताक्षर आपको स्टैक पर वर्तमान लेनदेन TXID प्राप्त करने की अनुमति देते हैं।
OP_CAT स्टैक पर शीर्ष दो डेटा आइटम लेता है और उन्हें एक साथ जोड़ता है। इसलिए यदि स्टैक पर शीर्ष दो आइटम “1” और “2” हैं, तो OP_CAT उन दोनों को हटा देता है और फिर स्टैक के शीर्ष पर “12” डालता है। इतना ही।
ठीक है, तो क्या बड़ी बात है? क्यों हर कोई op_cat के बारे में बाहर कर रहा है, भले ही यह इतना सरल है कि यह कैसे काम करता है यह भी लिखने के लिए एक पूर्ण पैराग्राफ नहीं लिया है?
दो कारण, हालांकि op_cat की प्रकृति को देखते हुए मैं कोई गारंटी नहीं दे सकता, ये केवल दो कारण हैं। OP_CAT स्टैक पर सीधे मर्कले के पेड़ों के निर्माण और सत्यापन की अनुमति देता है, जो कुछ दिलचस्प व्यवहार और कार्यक्षमता के लिए दरवाजा खोलता है। यह ऊपर उल्लिखित “अजीब” schnorr हस्ताक्षर के कारण पूर्ण दानेदार आत्मनिरीक्षण को सक्षम करने वाली वाचाओं के अनुकरण की अनुमति देता है।
मर्कल प्रूफ सत्यापन टैपरोट का एक प्रमुख घटक है, लेकिन जिस तरह से इसे लागू किया जाता है, वह मर्कले ट्री सत्यापन केवल यह सत्यापित करने के संदर्भ में होता है कि एक टैपस्क्रिप्ट खर्च पथ सिक्के के आउटपुट स्क्रिप्ट में रूट शनोर सार्वजनिक कुंजी में प्रतिबद्ध है। TAPROOT जेनेरिक मर्कल प्रूफ सत्यापन का समर्थन नहीं करता है।
Op_cat इसे पूरी तरह से सामान्य तरीके से अनुमति देता है। बस लीफ हैश (तों) और फिर इंटीरियर हैश नोड्स को राइट ऑर्डर में प्रदान करना और op_cat को क्रमिक रूप से कॉल करना आपको एक मर्कल रूट हैश को फिर से बनाने की अनुमति देगा, और स्क्रिप्ट में एक पूर्व-परिभाषित हैश के खिलाफ तुलना करेगा। आप साझा UTXOS के लिए एकतरफा वापसी पथ प्रदान करने के लिए ऐसा कर सकते हैं CATVM की तरहआप लेनदेन को अन्य लेनदेन पर निर्भर कर सकते हैं, जो वैध काम के साथ एक ब्लॉक में शामिल किया गया है, आप एक लेनदेन को बहुत अधिक किसी भी स्थिति पर निर्भर कर सकते हैं जिसे मर्कल प्रूफ के साथ सत्यापित किया जा सकता है।
अब, वाचा अनुकरण के लिए जो पूर्ण आत्मनिरीक्षण को सक्षम करता है। आप जो करने की कोशिश कर रहे हैं, वह यह सुनिश्चित करता है कि लेनदेन को कुछ विशेषताओं को मान्य होना चाहिए। अब याद रखें कि “अजीब” हस्ताक्षर स्टैक पर लेनदेन का हैश प्राप्त करता है। एक लेनदेन हस्ताक्षर वास्तव में कच्चे लेनदेन पर नहीं किया जाता है, यह उसके हैश पर किया जाता है। यह हमें कुछ दिलचस्प करने की अनुमति देता है।
आप गवाह के हिस्से के रूप में लेनदेन के व्यक्तिगत कच्चे टुकड़ों को लेने के लिए op_cat का उपयोग करके बहुत जटिल और जटिल स्क्रिप्ट का निर्माण कर सकते हैं, और धीरे -धीरे उन्हें OP_CAT के साथ स्टैक पर एक साथ रख सकते हैं। जिस तरह से, लेन -देन के व्यक्तिगत टुकड़ों को पूर्वनिर्धारित हैश के खिलाफ सिर्फ उन्हें हैशिंग करके और op_equal का उपयोग करके जांचा जा सकता है। स्क्रिप्ट के अंत में आपके पास स्टैक पर पूर्ण लेनदेन है, और यह आवश्यक डेटा को जोड़ सकते हैं और फिर इसे हैश कर सकते हैं, एक बार फिर से op_equal के साथ तुलना कर सकते हैं, इस बार “अजीब” हस्ताक्षर के खिलाफ। यदि वह चेक पास हो जाता है, तो एक सामान्य चेकसिग को चलाया जा सकता है और जब तक “अजीब” हस्ताक्षर किए जा रहे लेनदेन के साथ बनाया गया था, तब तक सब कुछ मान्य के रूप में निष्पादित होता है।
लेन -देन के व्यक्तिगत टुकड़ों के op_equal चेक इस तरह से गारंटी देते हैं कि लेनदेन के उन टुकड़े वास्तव में वही हैं जो उन्हें होना चाहिए। यदि उनमें से कोई भी सत्यापन में विफल रहता है, तो लेनदेन अमान्य है। यह अनुकरणीय वाचाओं को लागू करता है। अंत में, यदि लेन -देन हैश का निर्माण op_cat और “अजीब ‘सिग्नेचर मैच के साथ किया जाता है, तो अंतिम चेकसिग गारंटी देता है कि लेनदेन op_cat के साथ निर्मित और अनुकरणीय वाचा के खिलाफ जाँच की जाती है, उस समय खर्च किए जा रहे वास्तविक लेनदेन से मेल खाता है।
Op_cat Blows आत्मनिरीक्षण और आगे के डेटा को पूरी तरह से ले जाने के दरवाजे खोलते हैं। आत्मनिरीक्षण को वांछित किसी भी दानेदार डिग्री के लिए पूरा किया जा सकता है, लेनदेन के प्रत्येक व्यक्तिगत क्षेत्र के लिए स्वतंत्र रूप से प्रतिबद्ध होने में सक्षम हो सकता है। यह सभी समान आत्मनिरीक्षण क्षमताओं को सक्षम करता है जो Txhash करता है, और फिर कुछ।
जेनेरिक मर्कल प्रूफ को सत्यापित करने की क्षमता भी एक शक्तिशाली कार्यक्षमता है, लेकिन यह सवाल उठाती है कि उस क्षमता का उपयोग कैसे किया जाएगा, और किस प्रकार के प्रोत्साहन बना सकते हैं। बिटकॉइन स्क्रिप्ट का निर्माण बाहरी ब्लॉकचेन सिस्टम पर कुछ लेनदेन की आवश्यकता के लिए किया जा सकता है, जब तक कि वे बिटकॉइन स्क्रिप्ट में उपलब्ध हैश कार्यों के साथ निर्मित मर्कल पेड़ों का उपयोग करते हैं।
जबकि op_cat अपने आप में एक वाचा नहीं है, यह बहुत कम कुशल ब्लॉकचेन फुटप्रिंट (और डेवलपर्स के लिए गलतियाँ करने और पैसे जलाने की क्षमता के साथ वाचाओं के पूर्ण अनुकरण की अनुमति देता है। यह एक प्रस्ताव है कि अविश्वसनीय रूप से सरल होने के बावजूद, सावधानी से संपर्क किया जाना चाहिए, बड़े पैमाने पर डिजाइन स्थान यह खुलता है।