इतिहास
2014 के वसंत में बर्लिन में जैनिस्लाव मालाहोव से बातचीत के दौरान मुझे इस विचार का पहला बीज मिला। दुर्भाग्य से, मैंने जो मूल लेख लिखा था वह मेरे लैपटॉप के साथ खो गया था जब वह वियना में चोरी हो गया था। विटालिक के साथ हाल ही में सिद्धांतों पर बातचीत करने के बाद, हमने मुख्य रूप से सत्यापन और उप-राज्य काटने के तंत्र में कई बदलाव और औपचारिकताएं कीं। एथेरियम के बाद के संस्करण में ब्लॉक चेन स्केलेबिलिटी के लिए एक विशेष संभावित योजना का एक पूर्ण पूर्ण उदाहरण क्या है।
चूंकि यह किसी भी तरह से अंतिम प्रस्ताव नहीं है, इसलिए एक है गिटहब विकी पेज जो इस विशेष विचार की प्रगति को ट्रैक करेगा।
अवलोकन
चेन-फाइबर का मूल विचार एक साल पहले से अपरिवर्तित है; स्टेट-स्पेस को स्ट्रैट में विभाजित करें और एक या कई स्टेट सब-स्पेस में विशेषज्ञता वाले अलग-अलग ट्रांजैक्शन कोलेटर्स हों। कई उप-स्थानों से बातचीत की आवश्यकता वाले लेन-देन तदनुसार अधिक महंगे होंगे (क्योंकि कोलेटर्स को कई श्रृंखलाओं पर उपस्थिति बनाए रखनी होगी) और निष्पादित करने में अधिक समय लगेगा (क्योंकि इस बात की कम संभावना है कि किसी दिए गए ब्लॉक में लेन-देन के उप-स्थानों का सुपरसेट होगा)। जिस ब्लॉक में यह शामिल है, उसके साथ इसके इनपुट के लिए व्यापक मर्कल प्रूफ के प्रावधान के माध्यम से लेनदेन की वैधता को अलग से सत्यापित किया जा सकता है।
सूक्ष्मता ठीक उसी में निहित है जो उप-स्थानों के विभाजन को नियंत्रित करती है (मेरे मूल प्रस्ताव में आंतरिक सुसंगतता प्रदान करने के लिए उप-विभाजनों का स्वचालित विभाजन, विलय और रोटेशन शामिल है), तुलनात्मक रूप से बेकार उप-स्थानों के भीतर सुरक्षा कैसे बनाए रखी जाती है और यह कैसे अच्छी तरह से खेल सकता है प्रूफ-ऑफ़-स्टेक के साथ (मूल एक मास्टर पीओडब्ल्यू श्रृंखला पर आधारित था, 2014 की शुरुआत में मैक्स के द्वारा ट्रांज़िशन सिमेंटिक्स से ब्लॉक चेन अभिलेखीय को अलग करने के लिए एक विचार को आगे बढ़ाया गया था)।
मूल विचार कई श्रृंखलाओं (जैसे एन) का होना है, प्रत्येक राज्य-संक्रमण का विवरण पूरे सिस्टम राज्य (यानी एक राज्य उप-स्थान) के केवल एक स्तर के लिए है। प्रोग्रामिंग शब्दावली के बाद, इन्हें “फाइबर” कहा जा सकता है। इस प्रकार खाते एक उप-स्थान से संबंधित हैं और इस प्रकार एक एकल फाइबर; जिस फाइबर से वे संबंधित हैं, उसे केवल पते के पहले लॉग 2 (एन) बिट्स से निर्धारित किया जा सकता है। एन बढ़ या घट सकता है, और “मास्टर चेन” पर हाउसकीपिंग जानकारी के भीतर बनाए रखा गया मूल्य है।
बंधुआ सत्यापनकर्ताओं V के एक सेट द्वारा अनुरक्षित मास्टर श्रृंखला, N के आनुपातिक सत्यापनकर्ताओं की संख्या के साथ। सत्यापनकर्ताओं का एक यादृच्छिक चयन उत्पादित प्रत्येक ब्लॉक को मान्य करता है, और सत्यापनकर्ता अंततः मास्टर श्रृंखला पर आम सहमति बनाने के लिए मतदान करते हैं। मास्टर चेन का प्रत्येक ब्लॉक प्रत्येक फाइबर के हेडर का संदर्भ रखता है।
लेन-देन कोलेटर ब्लॉक का उत्पादन करते हैं (लेन-देन करने वालों से शुल्क स्वीकार करते हैं), और मुख्य श्रृंखला में अपने ब्लॉक के हैश को शामिल करने के लिए एकत्र की गई कुछ फीस का भुगतान करते हैं। फाइबर के एक विशेष “होम सेट” में ब्लॉक का उत्पादन किया जाता है; यह मूल रूप से सिर्फ तंतुओं का समूह है, जिसके वे राज्य ट्राइ को बनाए रखते हैं। उनके ब्लॉक में इनमें से एक या कई फाइबर पर लेनदेन शामिल हो सकता है, हालांकि कोई भी उनके “होम सेट” के बाहर नहीं है।
“मछुआरे” फ्रीलांस चेकर्स को दिया जाने वाला शब्द है। चूंकि ब्लॉक सत्यापन और उपलब्धता दोनों महत्वपूर्ण हैं, और चूंकि यह संभव है कि सत्यापनकर्ताओं के सेट को अनुबंधित रूप से रिश्वत दी जा सकती है, इसलिए अतिरिक्त तर्कसंगत व्यक्तियों को “व्हिसल-ब्लोअर” के रूप में कार्य करने के लिए एक तंत्र होना महत्वपूर्ण है ताकि अन्य सत्यापनकर्ताओं को अनावश्यक रूप से फंसाने से बचा जा सके। सभी ब्लॉकों की जांच मछुआरे मूल रूप से सत्यापनकर्ताओं के एक कोरम को समझाने का प्रयास करने के लिए भुगतान करते हैं कि पहले मान्य ब्लॉक अमान्य है (या अनुपलब्ध है, जिसे हम समतुल्य मानते हैं)। यदि एक मछुआरा एक सत्यापनकर्ता (या, अधिक संभावना है, सत्यापनकर्ताओं का सेट) को अपमानजनक तरीके से प्रदर्शित करता है, तो वे अपने सभी बंधनों का दावा करते हैं। सत्यापनकर्ताओं को नकली चुनौतियों से बचाने के लिए, एक शुल्क देय है।
ढांच के रूप में
काफी ASCII-art के लिए क्षमा करें। मैं इंकस्केप में विटालिक की तरह 1337 जैसा नहीं हूं।
Transactors ==TX+FEE==> Collators ==BLOCK+FEE==> Validators make transaction validate transaction, random selection chosen to audit produce Comprehensive Merkle TX/PSR/CMP contents & availability, Proof and Post State Root, all placed in PoS-consensus master block collate into X-fiber BlockFishermen ==CHALLENGE+FEE==> Validators search for invalid or a selection adjudicate challenge unavailable X-fiber blocks
लेन-देन
लेन-देन बहुत हद तक एथेरियम 1.0 के समान ही हैं – वे सिस्टम के उपयोगकर्ता हैं।
लेन-देन: लेन-देन करें
लेन-देन लेन-देन बहुत कुछ वैसे ही करते हैं जैसे वे मौजूदा एथेरियम सिस्टम में करते हैं। एक या दो मामूली अंतर – पतों का उपयोग दूरी मीट्रिक के रूप में किया जा सकता है; प्रारंभिक बिट्स की समान संख्या साझा करने वालों को “करीब” माना जाता है, जिसका अर्थ है कि भविष्य में एक बड़ी निश्चितता है कि वे एक ही राज्य उप-स्थान में समाहित रहेंगे। अनुबंध स्वाभाविक रूप से निर्माता के समान राज्य उप-स्थान में बनाए जाते हैं।
लेन-देन, कोलेटर्स की तरह, कई तंतुओं पर काम करते हैं; शायद एक शायद सभी, शायद कहीं बीच में। कोलेटर्स को सबमिशन फाइबर उप-नेटवर्क ओवरले के माध्यम से निर्देशित किया जा सकता है।
कोलेटर्स को सबमिशन और भुगतान उतना ही होता है जितना कि माइनर को मौजूदा ट्रांजैक्शन सबमिशन एथेरियम 1.0 में होता है।
कोलेटर्स
कोलेटर्स कम से कम दो पीयर सब-नेटवर्क ओवरले पर उपस्थिति बनाए रखते हैं; वैलिडेटर्स ओवरले, और एक या अधिक फाइबर ओवरले। फाइबर ओवरले निर्देशित लेनदेन प्रसार प्रदान कर सकते हैं। तंतुओं के एक सेट पर कोलेटर्स “कोलेट” करते हैं। वे प्रत्येक फाइबर के लिए एक पूर्ण फाइबर-श्रृंखला बनाए रखते हैं, और उन सभी लेनदेन को स्वीकार कर सकते हैं जिनमें उनके फाइबर सेट का कोई संयोजन शामिल होता है। यह संयोजन जितना अधिक होगा, उतना ही अधिक उनका “ट्रांजैक्शन नेट” होगा, लेकिन उनकी समग्र डिस्क/मेमोरी फुटप्रिंट भी उतना ही अधिक होगा।
कोलेटर्स: लेनदेन को मान्य करें
एक लेन-देन प्राप्त होने पर, वे सामान्य एथेरियम 1.0 संस्कारों से गुजरते हैं, चेकिंग भुगतान पर्याप्त है, प्रारंभिक शेष राशि और सी। एक बार बुनियादी सत्यापन हो जाने के बाद, वे इसे निष्पादित करने का प्रयास करते हैं, अगर यह किसी ऐसे फाइबर को छूता है जो कोलेटर के फाइबर सेट का हिस्सा नहीं है तो इसे बाहर फेंक दें।
कोलेटर्स: व्यापक मर्कल प्रूफ और पोस्ट स्टेट रूट का उत्पादन करते हैं
कोलेटर प्रत्येक पोस्ट-स्टेट-रूट प्रदान करते हैं (जैसा कि एथेरियम 1.0 की लेनदेन रसीद में पाया जाता है) और सभी उप-स्थानों से सभी इनपुट (बैलेंस, नॉन, स्टेट, कोड) के लिए मर्कल प्रूफ और संबंधित संकेत (जैसे अनुबंध कोड) को ब्लॉक करें। जो पहले से ज्ञात पोस्ट-स्टेट-रूट से प्रत्येक लेनदेन के मूल्यांकन के लिए आवश्यक हैं।
यह प्रत्येक फाइबर के लिए पिछले पोस्ट-स्टेट-रूट के अलावा किसी भी चीज़ के बिना, एक ऑडिटर को ब्लॉक की वैधता निर्धारित करने की अनुमति देता है।
कोलेटर्स: एक्स-फाइबर ब्लॉक में कोलेट करें
एकत्र की गई कुल सूचनाओं से एक क्रॉस फाइबर ब्लॉक बनाया जाता है। इसमें लेन-देन, लेन-देन रसीदें (पोस्ट-स्टेट-रूट्स), व्यापक मर्कल-प्रूफ और संबद्ध हैश-संकेत शामिल हैं। इस ब्लॉक में कोई आम सहमति-विशिष्ट जानकारी शामिल नहीं है जैसे टाइमस्टैम्पिंग, अंकल और सी।
प्रमाणकों
सत्यापनकर्ता (जिन्हें बेहतर नामित लेखा परीक्षक कहा जा सकता है) बंधुआ प्रतिभागी हैं, जो उच्चतम बोलीदाताओं से नियमित रूप से चुने जाते हैं, जो नेटवर्क के अंतिम रखरखाव के लिए एक छोटा सा शुल्क लेते हैं। उनका काम, समग्र रूप से, श्रृंखला की वैधता और लेनदेन सामग्री पर एक न्यायपालिका और अंतिम अधिकार बनाना है। हम आम तौर पर मानते हैं कि वे ज्यादातर परोपकारी हैं और सभी को रिश्वत नहीं दी जा सकती। बंधुआ होने के कारण, वैधता या सूचना-उपलब्धता पर एक राय पर सत्यापनकर्ताओं को ऑडिट करने और उनके बंधन को दांव पर लगाने के लिए भी बुलाया जा सकता है।
सत्यापनकर्ता: सभी को पीओएस-सर्वसम्मति मास्टर ब्लॉक में रखा गया है
वे मास्टर चेन पर हस्ताक्षर नियंत्रण बनाए रखते हैं। मास्टर चेन (MC) टाइमस्टैम्पिंग जैसे सभी PoS/सर्वसम्मति सामग्री को एनकोड करती है और सत्यापनकर्ता के बॉन्ड बैलेंस, चल रही चुनौतियों, फाइबर ब्लॉक हेडर-हैश और किसी भी अन्य हाउसकीपिंग जानकारी को रिकॉर्ड करने के लिए अपनी छोटी स्टेट रूट शामिल करती है।
प्रत्येक मास्टर ब्लॉक (एमबी), कोलैटेड एक्स-फाइबर ब्लॉक्स (एक्सबी) का एक सेट लिया जाता है; ये गैर-अतिव्यापी होने चाहिए, ताकि प्रत्येक फाइबर केवल एक एक्सबी से संबंधित हो।
सत्यापनकर्ता: TX/PSR/CMP सामग्री और उपलब्धता के ऑडिट के लिए यादृच्छिक चयन चुना गया
प्रत्येक एमबी के लिए हमारे पास एमबी के ट्राई से संदर्भित कई एक्सएसबी हैं। प्रत्येक फाइबर को सत्यापनकर्ताओं का एक बेतरतीब ढंग से चयनित सेट सौंपा गया है, और सत्यापनकर्ताओं को XB में उनके असाइन किए गए फाइबर की समीक्षा करनी चाहिए। सत्यापन में एक्सबी प्राप्त करना, प्रत्येक फाइबर (एमबी में रखा गया) के लिए पिछले पीएसआर को खोजना और यह जांचना शामिल है कि इसके सीएमपी में प्रमाण, लेनदेन के लिए सभी आवश्यक इनपुट को कवर करते हैं और यह कि पीएसआर वास्तव में अंतिम राज्य जड़ है जब सभी निष्पादित हैं।
ब्लॉक को वैध माना जाता है यदि सभी असाइन किए गए सत्यापनकर्ता इस पर हस्ताक्षर करते हैं। इस पर हस्ताक्षर करना एक अभिकथन माना जाता है कि ब्लॉक की सामग्री दोनों वैध है और संभावित रूप से लंबी “चुनौती अवधि” के लिए उपलब्ध है जिसमें एक मछुआरा चुनौती दे सकता है। ब्लॉक की वैधता के लिए कोई भी चुनौती जो अंततः सत्यापनकर्ताओं के एक यादृच्छिक रूप से चुने गए सेट की पूर्ण सहमति से बरकरार है (अंततः बहुमत के वोट के साथ समाप्त हो जाना चाहिए, इसे दृढ़ता से लड़ा जाना चाहिए) का मतलब बांड का तत्काल नुकसान होगा।
मछुआरों
मछुआरे (जिन्हें बाउंटी हंटर कहा जा सकता है) सिस्टम के स्वतंत्र त्रुटि-जांचकर्ता हैं। सत्यापनकर्ताओं को इस उम्मीद में देखें कि वे गलत काम कर सकते हैं। उपस्थिति की गारंटी देने में सहायता के लिए, पेआउट बहुत अधिक होने के लिए डिज़ाइन किए गए हैं। चुनौती देने की लागत छोटी है लेकिन महत्वहीन नहीं है।
मछुआरे: अमान्य या अनुपलब्ध एक्स-फाइबर ब्लॉकों की खोज करें
वे वैधता त्रुटियों और/या डेटा की अनुपलब्धता की तलाश में एक्स-फाइबर ब्लॉक की जांच करते हैं। जब उन्हें कोई अमान्य ब्लॉक या अनुपलब्ध डेटा मिलता है, तो वे इस उम्मीद में एक चुनौती (एक छोटे से शुल्क के लिए, सत्यापनकर्ताओं को भुगतान) शुरू करते हैं कि सत्यापनकर्ताओं का पर्याप्त बड़ा हिस्सा सहमत होगा। यदि वे सफल होते हैं और सत्यापनकर्ता अंततः चुनौती का समर्थन करते हैं, तो वे उन सभी सत्यापनकर्ताओं के बांड प्राप्त करते हैं जिन्होंने पहले सूचना की वैधता/उपलब्धता पर जोर दिया था।
मछुआरों की चुनौती
- मछुआरे को एक अमान्य/अनुपलब्ध ब्लॉक मिलता है जो अभी तक अपनी “चुनौती अवधि” (10-30 ब्लॉक) के बाहर नहीं है; शुल्क का भुगतान करता है, मास्टर चेन में एक चुनौती लेनदेन जमा करता है;
- वैधकर्ताओं का एक बेतरतीब ढंग से चयनित सेट (उदाहरण के लिए आदेश जैसे sqrt(N)) ++ कोई भी सत्यापनकर्ता जो स्व-चयन करता है (अपने बंधन को दोगुना करके), उस ब्लॉक की जांच करें जिसे चुनौती दी गई थी; ब्लॉक की वैधता के लिए प्रत्येक वोट वाई या एन;
- यदि N, सत्यापनकर्ता को एक छोटा भुगतान Pn प्राप्त होता है।
- यदि Y, सत्यापनकर्ता अपने बंधन को दांव पर लगाता है, हालांकि एक बड़ा भुगतान Py (शायद Py = 2Pn) प्राप्त करता है।
- चुनौती का परिणाम (शायद निम्नलिखित ब्लॉक में संचित) है:
- यदि 66% से अधिक वैलिडेटर्स Y (वैध) को वोट देते हैं, तो चुनौती समाप्त हो जाती है। मछुआरा अपना शुल्क खो देता है, लेकिन एक चुनौती फिर से शुरू कर सकता है।
- यदि कम से कम एक सत्यापनकर्ता वाई (वैध) को वोट देता है, तो चुनौती यादृच्छिक रूप से चयनित सत्यापनकर्ताओं के दूसरे, बड़े सेट के साथ जारी रहती है। सारे बंधन दांव पर लगे हैं।
- यदि सभी सत्यापनकर्ता N (अमान्य) को वोट देते हैं, तो ब्लॉक को अमान्य के रूप में दर्ज किया जाता है और मछुआरों को उन सभी सत्यापनकर्ताओं का बांड प्राप्त होता है जिन्होंने ब्लॉक की वैधता का दावा किया है। यह एक बहुत बड़ी अदायगी है।
- नोट: यदि सेट में सभी सत्यापनकर्ता शामिल हैं, तो यह एक साधारण बहुमत-नियम है।
अन्य अंतर
सभी पते प्रत्येक राज्य उप-स्थान के लिए अद्वितीय लुकअप तालिका में समाहित हैं; इसका मतलब है कि उन्हें कम संख्या में बिट्स के माध्यम से संदर्भित किया जा सकता है और सबूत और सी के लिए आरएलपी में बड़ी मात्रा में व्यर्थ एंट्रॉपी से बचा जा सकता है।
टिप्पणियाँ
एक बार जब कोई ब्लॉक चुनौती अवधि से बाहर हो जाता है, तो उसे अनुपलब्ध माना जाता है। यदि यह खराब हो जाता है, तो इसे प्रोटोकॉल अपग्रेड के समान ही ठीक किया जाना चाहिए। इसलिए, यह संभावना है कि सत्यापनकर्ता और अन्य बड़े हितधारक अपने निवेश की रक्षा के लिए मछुआरों के रूप में कार्य करेंगे।