
मेरे पूर्व में मेमपूल पर लेखमैंने मेमपूल की बुनियादी कार्यक्षमता के बारे में तर्क के लिए एक सरल वैचारिक ढांचा रखा, और यह कैसे बिटकॉइन नेटवर्क के विभिन्न प्रकार के उपयोगकर्ताओं द्वारा उपयोग किया गया था। इस टुकड़े में मैं रिले पॉलिसी और सर्वसम्मति के नियमों के बीच के अंतर को देख रहा हूं, और डिफ़ॉल्ट बिटकॉइन नोड्स द्वारा सर्वसम्मति मान्य होने के बावजूद कुछ प्रकार के बिटकॉइन लेनदेन को रिले नहीं किया जाता है।
सबसे पहले और सबसे महत्वपूर्ण, सहकर्मी से सहकर्मी नेटवर्क की परवाह किए बिना, कुछ प्रकार के सर्वसम्मति मान्य लेनदेन को रिले करने से इनकार करते हुए, यदि उन लेनदेन को एक खनिक के मेमपूल में पाते हैं और एक ब्लॉक में शामिल करने के लिए चुना जाता है, तो वे उस ब्लॉक को प्राप्त होने पर नोड्स द्वारा प्राप्त किए जाएंगे और डाउनलोड किए जाएंगे। सर्वसम्मति के नियमों के तहत लेनदेन के उन वर्गों को अमान्य बनाने के लिए सर्वसम्मति के बदलावों की इस कमी को कुछ भी नहीं रोक सकता है।
विभिन्न कारणों से विभिन्न प्रकार के फिल्टर हैं। तीन सामान्य प्रकार के फिल्टर वे हैं जो नोड्स (और इसलिए नेटवर्क) को सेवा से इनकार (DOS) से बचाते हैं, जो भविष्य के सॉफ्टफोर्स के लिए अपग्रेड हुक की रक्षा करते हैं, और वे धीरे -धीरे उन चीजों को हतोत्साहित करते हैं जो बिटकॉइनर पसंद नहीं कर सकते हैं, लेकिन अन्यथा व्यक्तिगत नोड्स या नेटवर्क के लिए कोई गंभीर नुकसान नहीं पेश करते हैं।
सेवा वैक्टर से इनकार
Bitcoin नोड्स कंप्यूटर प्रोग्राम हैं जो कंप्यूटर पर चल रहे हैं। इसका मतलब है कि उनके पास किसी भी कंप्यूटर पर चल रहे किसी भी प्रोग्रामिंग की सभी तकनीकी बाधाएं हैं, भंडारण, मेमोरी, प्रोसेसिंग पावर आदि के लिए सीमाएं हैं। यह इस बात की जड़ है कि ब्लॉकज़ की सीमा को पेश किया गया और बनाए रखा गया, ताकि वैश्विक बाधा पैदा हो सके, जो कि सामान्य उपकरणों के लिए सत्यापन लागत को बनाए रखते हुए एक वैश्विक बाधा पैदा करता है।
फ़िल्टर के इस वर्ग को विशेष रूप से यह सुनिश्चित करने के लिए डिज़ाइन किया गया है कि ब्लॉकस्पेस के साथ भी व्यक्तिगत लेनदेन को सीमित किया जा सकता है जो बनाया जा सकता है जो कि नोड के बहुत अधिक उपभोग कर सकता है, ऐसा नहीं करता है।
इस तरह के एक फ़िल्टर का सबसे सरल उदाहरण एक लेनदेन के लिए आवश्यक न्यूनतम फ़ीरेट है, और प्रतिस्थापित-दर-शुल्क (RBF) नियम तय करते हैं जब एक ही लेनदेन का एक अलग संस्करण पिछले एक को बदल सकता है, IE केवल तभी जब यह अंतिम संस्करण की तुलना में अधिक शुल्क का भुगतान करता है। एक बार जब आप एक शुल्क के साथ लेनदेन पर हस्ताक्षर करते हैं, तो आप हुक पर होते हैं। जब तक आप इसे दोगुना नहीं करते हैं, तब तक कोई भी खनिक जो उस लेनदेन को प्राप्त करता है, वह उसे खदान कर सकता है और उस शुल्क को इकट्ठा कर सकता है। पहले एक अलग लेनदेन में अपने UTXO को खर्च करने के अलावा उस लागत का भुगतान करने से बचने का कोई तरीका नहीं है (जिसमें एक शुल्क की भी आवश्यकता होती है)।
इसका कारण डॉस संरक्षण है। एक शुल्क के लिए खुद को हुक पर रखने के बिना कि वे भुगतान से बच नहीं सकते हैं, एक उपयोगकर्ता बस एक ही लेनदेन की अनंत विविधताएं बना सकता है और नेटवर्क पर हर नोड के मेमपूल को स्पैम कर सकता है, प्रक्रिया में बैंडविड्थ और मेमोरी खा रहा है। कुछ भी उन्हें हमेशा के लिए ऐसा करने से नहीं रोकता। नेटवर्क पर नोड्स एकमुश्त क्रैश, या बैंडविड्थ की लागत इतनी अधिक हो जाती है कि उपयोगकर्ता उन्हें बर्दाश्त नहीं कर सकते।
रिले पॉलिसी द्वारा फ़िल्टर किए गए लेनदेन का एक और उदाहरण लेनदेन को मान्य करने के लिए महंगा है। लेनदेन बनाना संभव है जो सत्यापित करने के लिए अविश्वसनीय रूप से महंगा है। कुछ ब्लॉक बनाए जा सकते हैं जो सत्यापित करने के लिए एक घंटे में सामान्य उपभोक्ता हार्डवेयर पर चलने वाले बिटकॉइन नोड लेगा। यह बड़ी कस्टम स्क्रिप्ट बनाकर किया जाता है, जो अधिकतम सिग्नेचर चेक बनाने के लिए डिज़ाइन किए गए हैं जो इन लेनदेन के अलावा कुछ भी नहीं से भरा ब्लॉक हो सकते हैं।
इस तरह की स्क्रिप्ट संरचनाओं का निर्माण पहले और विभिन्न प्रकार की मशीनों पर सत्यापन समय का परीक्षण किया गया है, लेकिन उन लिपियों की सटीक संरचना को सार्वजनिक रूप से डेवलपर्स द्वारा प्रकट नहीं किया गया है जिन्होंने स्पष्ट कारणों से ऐसा किया था। ये लेनदेन हैं जो शाब्दिक रूप से पूरे नेटवर्क को रोक सकते हैं।
डॉस सुरक्षा का एक अंतिम उदाहरण धूल सीमा होगी। धूल की सीमा के नीचे एक सतोशी मूल्य के साथ UTXOS बनाने वाले लेनदेन को रिले नहीं किया जाता है क्योंकि उस खर्च करने का शुल्क UTXO आउटपुट के Satoshi मूल्य से अधिक होगा। यह इसे असमानता और संभावना नहीं बनाता है कि यह कभी भी खर्च किया जाएगा, जिसका अर्थ है कि UTXO सेट को इन आउटपुट को हमेशा के लिए संग्रहीत करना होगा। यह एक ब्लोटिंग UTXO सेट बना सकता है जो ब्लॉक सत्यापन को अधिक कम्प्यूटेशनल रूप से गहन बनाता है।
भविष्य के सॉफ्टफोर्स
बिटकॉइन प्रोटोकॉल के सभी प्रमुख अपग्रेड सॉफ्टफोर्स के साथ किए गए हैं, एक अपग्रेड तंत्र जो नई स्क्रिप्ट कार्यक्षमता को प्रोटोकॉल में जोड़ा जा सकता है, इस तरह से कि अन-अपग्रेडेड नोड्स अभी भी मान्य के रूप में स्वीकार करेंगे।
यह संभव है क्योंकि बिटकॉइन स्क्रिप्ट में “अपरिभाषित” ओपकोड शामिल हैं, जिसका अर्थ है कि उनमें से किसी भी उपयोग को स्वचालित रूप से मान्य माना जाता है क्योंकि वर्तमान में उनके लिए कोई सत्यापन नियम परिभाषित नहीं हैं। जब लोग नए नियमों को लागू करने के लिए अपने नोड्स को अपग्रेड करते हैं, तो अपग्रेड किए गए नोड्स उस ओपकोड के खिलाफ नए नियमों को लागू करेंगे, और पुराने लोग बस उनमें से किसी भी उपयोग को स्वीकार करेंगे। जब तक खनिक नोड्स ऑल अपग्रेड के नेटवर्क से पहले नए नियमों का उल्लंघन करने वाले लेन -देन नहीं करते हैं, तब तक हर कोई एक ही ब्लॉकचेन पर रहता है और सब कुछ पीछे की ओर संगत होता है।
इन अपरिभाषित ओपकोड का उपयोग करके लेनदेन रिले नीति द्वारा फ़िल्टर किए जाते हैं। यह भविष्य में बिटकॉइन प्रोटोकॉल की उन्नति को संरक्षित करने के लिए किया जाता है।
यदि उपयोगकर्ता इस तरह के अपरिभाषित ओपकोड का उपयोग करके UTXOS बनाते हैं, तो एक परिभाषित लोगों के साथ संयोजन में कहें ताकि वे किसी के द्वारा खर्च करने योग्य न हों, अगर उस अपरिभाषित ओपकोड को सॉफ्टफोर्क में सत्यापन नियम दिए गए थे कि UTXO अनपेक्षित हो जाएगा। स्क्रिप्ट की संरचना सॉफ्टफोर्क के दौरान लागू नए सत्यापन नियमों को पूरा करने में सक्षम नहीं होगी।
इन्हें प्रचारित करने और पुष्टि करने की अनुमति देने से अपरिभाषित ओपकोड का उपयोग करके UTXOS को भविष्य में किसी भी संभावित सॉफ्टफोर्क अपग्रेड को चालू करने के लिए कुछ उपयोगकर्ता के सिक्कों को अपग्रेड करने या प्रतिपादन करने के लिए एक दार्शनिक दुविधा में बदल सकता है।
निराशा
कुछ प्रकार के लेनदेन हैं जो नेटवर्क पर नोड्स को कोई वास्तविक नुकसान नहीं पहुंचाते हैं, यानी नोड्स को दुर्घटनाग्रस्त करना, अत्यधिक मेमोरी या संसाधनों का उपयोग करते हुए, नेटवर्क उपयोगकर्ताओं के एक बड़े सेगमेंट को बिटकॉइन के प्राथमिक उद्देश्य के विपरीत अवांछनीय या इसके विपरीत मिलता है।
इस तरह के लेनदेन के उदाहरण वे होंगे जो बड़े op_return आउटपुट का उपयोग करते हैं, या गवाह क्षेत्र का उपयोग करने वाले शिलालेख, ब्लॉकचेन को मनमानी जानकारी लिखने के लिए। ये हतोत्साहित किए जाते हैं क्योंकि उन्हें बिटकॉइन नेटवर्क के प्राथमिक उपयोग के मामले के रूप में नहीं देखा जाता है।
सब कुछ समान नहीं है
रिले नीति में फ़िल्टर के ये विभिन्न वर्ग बहुत स्पष्ट रूप से अलग -अलग चीजें हैं। सभी रिले फ़िल्टर एक ही कारण से मौजूद नहीं हैं, उनमें से सभी में खनिकों के लिए एक ही प्रोत्साहन शामिल नहीं हैं (या मेरा नहीं) उन्हें नहीं। उनमें से प्रत्येक आपके नोड, या ब्लॉकचेन की सुरक्षा के लिए एक विशिष्ट उद्देश्य के लिए मौजूद है, विभिन्न प्रकार की चीजों से जो या तो वैध रूप से हानिकारक हैं या सिर्फ अवांछनीय हैं।
सभी फ़िल्टर समान नहीं हैं, और उन चीजों के बीच अंतर जो वे फ़िल्टर कर रहे हैं, बड़े पैमाने पर है। समस्याग्रस्त लेनदेन से सब कुछ जो नेटवर्क को क्रैश कर सकता है (जिसे सर्वसम्मति के स्तर पर तय किया जाना चाहिए), केवल हानिरहित लेनदेन को हतोत्साहित करने के लिए जो लोगों को अवांछनीय लगता है।
इन चीजों के बीच के अंतर को महसूस करना महत्वपूर्ण है। उदाहरण के लिए, यदि कोई उपयोगकर्ता इसके लिए भुगतान करता है, तो एक खान में एक अवांछनीय लेनदेन हो सकता है, लेकिन कोई भी तर्कसंगत खनिक का निर्माण नहीं होगा और लेनदेन से भरा एक ब्लॉक है जो पूरे नेटवर्क को क्रैश करेगा। यह उनके निवेश को कम कर देगा।