प्रूफ़-ऑफ़-स्टेक पुरस्कार और दंड
इथेरियम को इसकी मूल क्रिप्टोकरेंसी, ईथर (ETH) का उपयोग करके सुरक्षित किया जाता है। नोड ऑपरेटर जो ब्लॉकों को मान्य करने और चेन के शीर्ष (head) की पहचान करने में भाग लेना चाहते हैं, वे इथेरियम पर जमा अनुबंध में ईथर जमा करते हैं। फिर उन्हें पीयर-टू-पीयर नेटवर्क पर प्राप्त नए ब्लॉकों की वैधता की जांच करने वाले सत्यापक सॉफ़्टवेयर को चलाने और चेन के शीर्ष की पहचान करने के लिए फ़ोर्क-चॉइस एल्गोरिदम लागू करने के लिए ईथर में भुगतान किया जाता है।
एक सत्यापक के लिए दो प्राथमिक भूमिकाएँ होती हैं: 1) नए ब्लॉकों की जाँच करना और यदि वे मान्य हैं तो उनका "अनुप्रमाणन" करना, 2) कुल सत्यापक पूल से यादृच्छिक रूप से चुने जाने पर नए ब्लॉकों का प्रस्ताव करना। यदि सत्यापक पूछे जाने पर इनमें से कोई भी कार्य करने में विफल रहता है, तो वे ईथर भुगतान से चूक जाते हैं। सत्यापकों को कभी-कभी हस्ताक्षर एकत्रीकरण और सिंक समितियों में भाग लेने का काम भी सौंपा जाता है।
कुछ ऐसे कार्य भी हैं जिन्हें गलती से करना बहुत मुश्किल है और जो किसी दुर्भावनापूर्ण आशय को दर्शाते हैं, जैसे कि एक ही स्लॉट के लिए कई ब्लॉकों का प्रस्ताव करना या एक ही स्लॉट के लिए कई ब्लॉकों का अनुप्रमाणन करना। ये "कटौती योग्य (slashable)" व्यवहार हैं जिसके परिणामस्वरूप सत्यापक को नेटवर्क से हटाए जाने से पहले कुछ मात्रा में ईथर (1 ETH तक) जला दिया जाता है, जिसमें 36 दिन लगते हैं। कटौती किए गए सत्यापक का ईथर निकास अवधि के दौरान धीरे-धीरे खत्म हो जाता है, लेकिन 18वें दिन उन्हें "सहसंबंध दंड (correlation penalty)" मिलता है, जो तब बड़ा होता है जब एक ही समय के आसपास अधिक सत्यापकों की कटौती की जाती है। इसलिए सर्वसम्मति तंत्र की प्रोत्साहन संरचना ईमानदारी के लिए भुगतान करती है और बुरे तत्वों को दंडित करती है।
सभी पुरस्कार और दंड प्रति एपॉक एक बार लागू किए जाते हैं।
अधिक जानकारी के लिए आगे पढ़ें...
पुरस्कार और दंड
पुरस्कार
सत्यापकों को पुरस्कार तब मिलते हैं जब वे ऐसे वोट करते हैं जो अधिकांश अन्य सत्यापकों के अनुरूप होते हैं, जब वे ब्लॉकों का प्रस्ताव करते हैं, और जब वे सिंक समितियों में भाग लेते हैं। प्रत्येक एपॉक में पुरस्कारों के मूल्य की गणना base_reward से की जाती है। यह वह आधार इकाई है जिससे अन्य पुरस्कारों की गणना की जाती है। base_reward प्रति एपॉक इष्टतम परिस्थितियों में एक सत्यापक द्वारा प्राप्त औसत पुरस्कार का प्रतिनिधित्व करता है। इसकी गणना सत्यापक के प्रभावी शेष और सक्रिय सत्यापकों की कुल संख्या से इस प्रकार की जाती है:
base_reward = effective_balance * (base_reward_factor / (base_rewards_per_epoch * sqrt(sum(active_balance))))
जहाँ base_reward_factor 64 है, base_rewards_per_epoch 4 है और sum(active balance) सभी सक्रिय सत्यापकों में कुल स्टेक किया गया ईथर है।
इसका मतलब है कि आधार पुरस्कार सत्यापक के प्रभावी शेष के समानुपाती होता है और नेटवर्क पर सत्यापकों की संख्या के व्युत्क्रमानुपाती होता है। जितने अधिक सत्यापक होंगे, समग्र निर्गमन उतना ही अधिक होगा (चूंकि sqrt(N)) लेकिन प्रति सत्यापक base_reward उतना ही छोटा होगा (चूंकि 1/sqrt(N))। ये कारक स्टेकिंग नोड के लिए APR को प्रभावित करते हैं। इसके लिए तर्क विटालिक के नोट्स (opens in a new tab) में पढ़ें।
कुल पुरस्कार की गणना फिर पाँच घटकों के योग के रूप में की जाती है, जिनमें से प्रत्येक का एक भार (weighting) होता है जो यह निर्धारित करता है कि प्रत्येक घटक कुल पुरस्कार में कितना जोड़ता है। घटक इस प्रकार हैं:
1. स्रोत वोट (source vote): सत्यापक ने सही स्रोत चेकपॉइंट के लिए समय पर वोट किया है
2. लक्ष्य वोट (target vote): सत्यापक ने सही लक्ष्य चेकपॉइंट के लिए समय पर वोट किया है
3. शीर्ष वोट (head vote): सत्यापक ने सही शीर्ष ब्लॉक के लिए समय पर वोट किया है
4. सिंक समिति पुरस्कार (sync committee reward): सत्यापक ने सिंक समिति में भाग लिया है
5. प्रस्तावक पुरस्कार (proposer reward): सत्यापक ने सही स्लॉट में एक ब्लॉक का प्रस्ताव दिया है
प्रत्येक घटक के लिए भार इस प्रकार हैं:
TIMELY_SOURCE_WEIGHT uint64(14)
TIMELY_TARGET_WEIGHT uint64(26)
TIMELY_HEAD_WEIGHT uint64(14)
SYNC_REWARD_WEIGHT uint64(2)
PROPOSER_WEIGHT uint64(8)
इन भारों का योग 64 है। पुरस्कार की गणना लागू भारों के योग को 64 से विभाजित करके की जाती है। एक सत्यापक जिसने समय पर स्रोत, लक्ष्य और शीर्ष वोट किए हैं, एक ब्लॉक का प्रस्ताव दिया है और सिंक समिति में भाग लिया है, उसे 64/64 * base_reward == base_reward मिल सकता है। हालाँकि, एक सत्यापक आमतौर पर ब्लॉक प्रस्तावक नहीं होता है, इसलिए उनका अधिकतम पुरस्कार 64-8 /64 * base_reward == 7/8 * base_reward है। सत्यापक जो न तो ब्लॉक प्रस्तावक हैं और न ही सिंक समिति में हैं, वे 64-8-2 / 64 * base_reward == 6.75/8 * base_reward प्राप्त कर सकते हैं।
तेजी से अनुप्रमाणन को प्रोत्साहित करने के लिए एक अतिरिक्त पुरस्कार जोड़ा जाता है। यह inclusion_delay_reward है। इसका मूल्य base_reward को 1/delay से गुणा करने के बराबर है, जहाँ delay ब्लॉक प्रस्ताव और अनुप्रमाणन को अलग करने वाले स्लॉटों की संख्या है। उदाहरण के लिए, यदि अनुप्रमाणन ब्लॉक प्रस्ताव के एक स्लॉट के भीतर प्रस्तुत किया जाता है, तो अनुप्रमाणक को base_reward * 1/1 == base_reward प्राप्त होता है। यदि अनुप्रमाणन अगले स्लॉट में आता है, तो अनुप्रमाणक को base_reward * 1/2 प्राप्त होता है और इसी तरह आगे भी।
ब्लॉक प्रस्तावकों को ब्लॉक में शामिल प्रत्येक मान्य अनुप्रमाणन के लिए 8 / 64 * base_reward प्राप्त होता है, इसलिए पुरस्कार का वास्तविक मूल्य अनुप्रमाणन करने वाले सत्यापकों की संख्या के साथ बढ़ता है। ब्लॉक प्रस्तावक अपने प्रस्तावित ब्लॉक में अन्य सत्यापकों द्वारा दुर्व्यवहार के साक्ष्य शामिल करके भी अपना पुरस्कार बढ़ा सकते हैं। ये पुरस्कार वे "प्रोत्साहन (carrots)" हैं जो सत्यापक की ईमानदारी को बढ़ावा देते हैं। एक ब्लॉक प्रस्तावक जो कटौती (slashing) को शामिल करता है, उसे slashed_validators_effective_balance / 512 से पुरस्कृत किया जाएगा।
दंड
अब तक हमने पूरी तरह से अच्छे व्यवहार वाले सत्यापकों पर विचार किया है, लेकिन उन सत्यापकों का क्या जो समय पर शीर्ष, स्रोत और लक्ष्य वोट नहीं करते हैं या ऐसा धीरे-धीरे करते हैं?
लक्ष्य और स्रोत वोट चूकने के लिए दंड उन पुरस्कारों के बराबर हैं जो अनुप्रमाणक को उन्हें प्रस्तुत करने पर प्राप्त होते। इसका मतलब है कि उनके शेष में पुरस्कार जोड़े जाने के बजाय, उनके शेष से समान मूल्य हटा दिया जाता है। शीर्ष वोट चूकने के लिए कोई दंड नहीं है (यानी, शीर्ष वोटों को केवल पुरस्कृत किया जाता है, कभी दंडित नहीं किया जाता है)। inclusion_delay से जुड़ा कोई दंड नहीं है - पुरस्कार बस सत्यापक के शेष में नहीं जोड़ा जाएगा। ब्लॉक का प्रस्ताव करने में विफल रहने के लिए भी कोई दंड नहीं है।
सर्वसम्मति विनिर्देशों (consensus specs) (opens in a new tab) में पुरस्कारों और दंडों के बारे में अधिक पढ़ें। Bellatrix अपग्रेड में पुरस्कारों और दंडों को समायोजित किया गया था - डैनी रयान और विटालिक को इस Peep an EIP वीडियो (opens in a new tab) में इस पर चर्चा करते हुए देखें।
कटौती (Slashing)
कटौती एक अधिक गंभीर कार्रवाई है जिसके परिणामस्वरूप नेटवर्क से सत्यापक को जबरन हटा दिया जाता है और उनके स्टेक किए गए ईथर का नुकसान होता है। एक सत्यापक की कटौती तीन तरीकों से की जा सकती है, ये सभी ब्लॉकों के बेईमान प्रस्ताव या अनुप्रमाणन के समान हैं:
- एक ही स्लॉट के लिए दो अलग-अलग ब्लॉकों का प्रस्ताव और हस्ताक्षर करके
- एक ऐसे ब्लॉक का अनुप्रमाणन करके जो दूसरे को "घेरता (surrounds)" है (प्रभावी रूप से इतिहास को बदलना)
- एक ही ब्लॉक के लिए दो उम्मीदवारों का अनुप्रमाणन करके "दोहरा वोट (double voting)" करके
यदि इन कार्यों का पता चलता है, तो सत्यापक की कटौती की जाती है। इसका मतलब है कि 32 ETH सत्यापक के लिए 0.0078125 तुरंत जला दिया जाता है (सक्रिय शेष के साथ रैखिक रूप से बढ़ाया गया), फिर 36 दिन की निष्कासन अवधि शुरू होती है। इस निष्कासन अवधि के दौरान सत्यापक का स्टेक धीरे-धीरे खत्म हो जाता है। मध्य-बिंदु (18वें दिन) पर एक अतिरिक्त दंड लागू किया जाता है जिसका परिमाण कटौती की घटना से 36 दिन पहले सभी कटौती किए गए सत्यापकों के कुल स्टेक किए गए ईथर के साथ बढ़ता है। इसका मतलब है कि जब अधिक सत्यापकों की कटौती की जाती है, तो कटौती का परिमाण बढ़ जाता है। अधिकतम कटौती सभी कटौती किए गए सत्यापकों का पूर्ण प्रभावी शेष है (यानी, यदि बहुत सारे सत्यापकों की कटौती की जा रही है तो वे अपना पूरा स्टेक खो सकते हैं)। दूसरी ओर, एक एकल, अलग-थलग कटौती की घटना सत्यापक के स्टेक का केवल एक छोटा सा हिस्सा जलाती है। यह मध्यबिंदु दंड जो कटौती किए गए सत्यापकों की संख्या के साथ बढ़ता है, "सहसंबंध दंड (correlation penalty)" कहलाता है।
निष्क्रियता क्षरण
यदि सर्वसम्मति परत अंतिमता (finalizing) के बिना चार से अधिक एपॉक तक चली गई है, तो "निष्क्रियता क्षरण" नामक एक आपातकालीन प्रोटोकॉल सक्रिय हो जाता है। निष्क्रियता क्षरण का अंतिम उद्देश्य चेन के लिए अंतिमता को पुनः प्राप्त करने के लिए आवश्यक स्थितियाँ बनाना है। जैसा कि ऊपर बताया गया है, अंतिमता के लिए स्रोत और लक्ष्य चेकपॉइंट पर सहमत होने के लिए कुल स्टेक किए गए ईथर के 2/3 बहुमत की आवश्यकता होती है। यदि कुल सत्यापकों के 1/3 से अधिक का प्रतिनिधित्व करने वाले सत्यापक ऑफ़लाइन हो जाते हैं या सही अनुप्रमाणन प्रस्तुत करने में विफल रहते हैं, तो 2/3 महाबहुमत के लिए चेकपॉइंट को अंतिम रूप देना संभव नहीं है। निष्क्रियता क्षरण निष्क्रिय सत्यापकों के स्टेक को धीरे-धीरे खत्म होने देता है जब तक कि वे कुल स्टेक के 1/3 से कम को नियंत्रित नहीं करते हैं, जिससे शेष सक्रिय सत्यापक चेन को अंतिम रूप दे सकते हैं। निष्क्रिय सत्यापकों का पूल चाहे कितना भी बड़ा हो, शेष सक्रिय सत्यापक अंततः स्टेक के >2/3 हिस्से को नियंत्रित करेंगे। स्टेक का नुकसान निष्क्रिय सत्यापकों के लिए जल्द से जल्द पुनः सक्रिय होने के लिए एक मजबूत प्रोत्साहन है! मेडाला (Medalla) टेस्टनेट पर निष्क्रियता क्षरण परिदृश्य का सामना तब किया गया था जब < 66% सक्रिय सत्यापक ब्लॉकचेन के वर्तमान शीर्ष पर सर्वसम्मति पर आने में सक्षम थे। निष्क्रियता क्षरण सक्रिय हो गया था और अंततः अंतिमता पुनः प्राप्त कर ली गई थी!
सर्वसम्मति तंत्र का पुरस्कार, दंड और कटौती डिज़ाइन व्यक्तिगत सत्यापकों को सही ढंग से व्यवहार करने के लिए प्रोत्साहित करता है। हालाँकि, इन डिज़ाइन विकल्पों से एक ऐसी प्रणाली उभरती है जो कई क्लाइंट्स में सत्यापकों के समान वितरण को दृढ़ता से प्रोत्साहित करती है, और एकल-क्लाइंट प्रभुत्व को दृढ़ता से हतोत्साहित करती है।
आगे की पढ़ाई
- इथेरियम को अपग्रेड करना: प्रोत्साहन परत (The incentive layer) (opens in a new tab)
- इथेरियम के हाइब्रिड Casper प्रोटोकॉल में प्रोत्साहन (opens in a new tab)
- विटालिक का एनोटेटेड विनिर्देश (annotated spec) (opens in a new tab)
- ईटीएच2 (Eth2) कटौती रोकथाम युक्तियाँ (opens in a new tab)
- EIP-7251 के तहत कटौती दंड का विश्लेषण (opens in a new tab)
स्रोत