प्रूफ-ऑफ-स्टेक बक्षिसे आणि दंड
इथेरियम त्याची मूळ क्रिप्टोकरन्सी, इथर (ETH) वापरून सुरक्षित केले जाते. नोड ऑपरेटर ज्यांना ब्लॉक प्रमाणित करण्यात आणि चेनचे हेड ओळखण्यात सहभागी व्हायचे आहे, ते इथेरियमवरील ठेव करार मध्ये इथर जमा करतात. त्यानंतर त्यांना प्रमाणक सॉफ्टवेअर चालवण्यासाठी इथरमध्ये मोबदला दिला जातो, जे पीअर-टू-पीअर नेटवर्कवरून प्राप्त झालेल्या नवीन ब्लॉकची वैधता तपासते आणि चेनचे हेड ओळखण्यासाठी फोर्क-चॉईस अल्गोरिदम लागू करते.
प्रमाणकासाठी दोन प्राथमिक भूमिका आहेत: 1) नवीन ब्लॉक तपासणे आणि ते वैध असल्यास त्यांना "साक्षांकन" देणे, 2) एकूण प्रमाणक समूहातून यादृच्छिकपणे निवडले गेल्यावर नवीन ब्लॉकचा प्रस्ताव देणे. जर प्रमाणक विचारल्यावर यापैकी कोणतेही काम करण्यात अयशस्वी ठरला, तर ते इथर पेआउट गमावतात. प्रमाणकांना कधीकधी स्वाक्षरी एकत्रीकरण आणि सिंक समित्यांमध्ये सहभागी होण्याचे काम देखील दिले जाते.
अशा काही कृती देखील आहेत ज्या चुकून करणे खूप कठीण आहे आणि त्या काही दुर्भावनापूर्ण उद्देश दर्शवतात, जसे की एकाच स्लॉटसाठी अनेक ब्लॉकचा प्रस्ताव देणे किंवा एकाच स्लॉटसाठी अनेक ब्लॉकचे साक्षांकन करणे. हे "स्लॅशिंग" करण्यायोग्य वर्तन आहेत ज्यामुळे प्रमाणकाला नेटवर्कमधून काढून टाकण्यापूर्वी त्यांच्या इथरचा काही भाग (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 वर प्रभाव टाकतात. यामागील तर्क व्हिटालिकच्या नोट्स (नवीन टॅबमध्ये उघडते) मध्ये वाचा.
त्यानंतर एकूण बक्षीस हे पाच घटकांची बेरीज म्हणून मोजले जाते, ज्यापैकी प्रत्येकाचे एक वजन असते जे ठरवते की प्रत्येक घटक एकूण बक्षीसामध्ये किती भर घालतो. हे घटक खालीलप्रमाणे आहेत:
1. स्रोत मत: प्रमाणकाने योग्य स्रोत चेकपॉईंटसाठी वेळेवर मत दिले आहे
2. लक्ष्य मत: प्रमाणकाने योग्य लक्ष्य चेकपॉईंटसाठी वेळेवर मत दिले आहे
3. हेड मत: प्रमाणकाने योग्य हेड ब्लॉकसाठी वेळेवर मत दिले आहे
4. सिंक समिती बक्षीस: प्रमाणकाने सिंक समितीमध्ये सहभाग घेतला आहे
5. प्रस्तावक बक्षीस: प्रमाणकाने योग्य स्लॉटमध्ये ब्लॉकचा प्रस्ताव दिला आहे
प्रत्येक घटकासाठी वजने खालीलप्रमाणे आहेत:
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 मिळते, त्यामुळे बक्षिसाचे प्रत्यक्ष मूल्य साक्षांकन करणाऱ्या प्रमाणकांच्या संख्येनुसार वाढते. ब्लॉक प्रस्तावक त्यांच्या प्रस्तावित ब्लॉकमध्ये इतर प्रमाणकांच्या गैरवर्तनाचा पुरावा समाविष्ट करून त्यांचे बक्षीस वाढवू शकतात. ही बक्षिसे प्रमाणकांना प्रामाणिक राहण्यासाठी प्रोत्साहन देतात. स्लॅशिंग समाविष्ट करणाऱ्या ब्लॉक प्रस्तावकाला slashed_validators_effective_balance / 512 ने बक्षीस दिले जाईल.
दंड
आतापर्यंत आपण उत्तम वर्तन करणाऱ्या प्रमाणकांचा विचार केला आहे, परंतु जे प्रमाणक वेळेवर हेड, स्रोत आणि लक्ष्य मते देत नाहीत किंवा ते हळू करतात त्यांच्याबद्दल काय?
लक्ष्य आणि स्रोत मते चुकवल्याबद्दलचा दंड साक्षांकनकर्त्याने ती सबमिट केली असती तर त्यांना मिळालेल्या बक्षिसांइतकाच असतो. याचा अर्थ असा की त्यांच्या शिल्लकमध्ये बक्षीस जोडण्याऐवजी, त्यांच्या शिल्लकमधून समान मूल्य काढून टाकले जाते. हेड मत चुकवल्याबद्दल कोणताही दंड नाही (म्हणजेच, हेड मतांना फक्त बक्षीस दिले जाते, कधीही दंड आकारला जात नाही). inclusion_delay शी संबंधित कोणताही दंड नाही - बक्षीस फक्त प्रमाणकाच्या शिल्लकमध्ये जोडले जाणार नाही. ब्लॉकचा प्रस्ताव देण्यात अयशस्वी झाल्याबद्दल कोणताही दंड नाही.
सहमती स्पेसिफिकेशन्स (नवीन टॅबमध्ये उघडते) मध्ये बक्षिसे आणि दंडांबद्दल अधिक वाचा. Bellatrix अपग्रेडमध्ये बक्षिसे आणि दंड समायोजित केले गेले - डॅनी रायन आणि व्हिटालिक यांना या Peep an EIP व्हिडिओ (नवीन टॅबमध्ये उघडते) मध्ये यावर चर्चा करताना पहा.
स्लॅशिंग
स्लॅशिंग ही एक अधिक कठोर कारवाई आहे ज्यामुळे प्रमाणकाला नेटवर्कमधून सक्तीने काढून टाकले जाते आणि त्यांच्या स्टेक केलेल्या इथरचे नुकसान होते. प्रमाणकाचे स्लॅशिंग करण्याचे तीन मार्ग आहेत, जे सर्व ब्लॉकच्या अप्रामाणिक प्रस्तावासाठी किंवा साक्षांकनासाठी आहेत:
- एकाच स्लॉटसाठी दोन भिन्न ब्लॉकचा प्रस्ताव देऊन आणि स्वाक्षरी करून
- दुसऱ्या ब्लॉकला "घेरणाऱ्या" ब्लॉकचे साक्षांकन करून (प्रभावीपणे इतिहास बदलणे)
- एकाच ब्लॉकसाठी दोन उमेदवारांचे साक्षांकन करून "दुहेरी मतदान" करून
जर या कृती आढळल्या, तर प्रमाणकाचे स्लॅशिंग केले जाते. याचा अर्थ 32 ETH प्रमाणकासाठी 0.0078125 त्वरित बर्न केले जाते (सक्रिय शिल्लकसह रेषीयपणे मोजले जाते), त्यानंतर 36 दिवसांचा काढण्याचा कालावधी सुरू होतो. या काढण्याच्या कालावधीत प्रमाणकाचा स्टेक हळूहळू कमी होतो. मध्य-बिंदूवर (18 वा दिवस) अतिरिक्त दंड लागू केला जातो ज्याचे प्रमाण स्लॅशिंग घटनेच्या 36 दिवस आधी सर्व स्लॅशिंग झालेल्या प्रमाणकांच्या एकूण स्टेक केलेल्या इथरनुसार वाढते. याचा अर्थ असा की जेव्हा अधिक प्रमाणकांचे स्लॅशिंग केले जाते, तेव्हा स्लॅशिंगचे प्रमाण वाढते. कमाल स्लॅशिंग हे सर्व स्लॅशिंग झालेल्या प्रमाणकांची पूर्ण प्रभावी शिल्लक असते (म्हणजेच, जर अनेक प्रमाणकांचे स्लॅशिंग होत असेल तर ते त्यांचा संपूर्ण स्टेक गमावू शकतात). दुसरीकडे, एकच, वेगळी स्लॅशिंग घटना प्रमाणकाच्या स्टेकचा फक्त एक छोटा भाग बर्न करते. हा मध्यबिंदू दंड जो स्लॅशिंग झालेल्या प्रमाणकांच्या संख्येनुसार वाढतो त्याला "सहसंबंध दंड" (correlation penalty) म्हणतात.
निष्क्रियता गळती
जर सहमती स्तर अंतिमत्व न मिळवता चार पर्वांपेक्षा जास्त काळ गेला असेल, तर "निष्क्रियता गळती" नावाचा आपत्कालीन प्रोटोकॉल सक्रिय केला जातो. निष्क्रियता गळतीचा अंतिम उद्देश चेनला अंतिमत्व परत मिळवण्यासाठी आवश्यक परिस्थिती निर्माण करणे हा आहे. वर स्पष्ट केल्याप्रमाणे, अंतिमत्वासाठी एकूण स्टेक केलेल्या इथरच्या 2/3 बहुमताने स्रोत आणि लक्ष्य चेकपॉईंट्सवर सहमत असणे आवश्यक आहे. जर एकूण प्रमाणकांपैकी 1/3 पेक्षा जास्त प्रतिनिधित्व करणारे प्रमाणक ऑफलाइन गेले किंवा योग्य साक्षांकने सबमिट करण्यात अयशस्वी झाले तर 2/3 विशेष बहुमतासाठी चेकपॉईंट्स अंतिम करणे शक्य नाही. निष्क्रियता गळती निष्क्रिय प्रमाणकांच्या मालकीचा स्टेक हळूहळू कमी होऊ देते जोपर्यंत ते एकूण स्टेकच्या 1/3 पेक्षा कमी नियंत्रित करत नाहीत, ज्यामुळे उर्वरित सक्रिय प्रमाणकांना चेन अंतिम करण्याची परवानगी मिळते. निष्क्रिय प्रमाणकांचा समूह कितीही मोठा असला तरी, उर्वरित सक्रिय प्रमाणक शेवटी स्टेकच्या >2/3 नियंत्रित करतील. स्टेकचे नुकसान हे निष्क्रिय प्रमाणकांसाठी शक्य तितक्या लवकर पुन्हा सक्रिय होण्यासाठी एक मजबूत प्रोत्साहन आहे! Medalla टेस्टनेटवर निष्क्रियता गळतीची परिस्थिती उद्भवली होती जेव्हा < 66% सक्रिय प्रमाणक ब्लॉकचेनच्या वर्तमान हेडवर एकमत होऊ शकले. निष्क्रियता गळती सक्रिय केली गेली आणि शेवटी अंतिमत्व परत मिळवले गेले!
सहमती यंत्रणेची बक्षीस, दंड आणि स्लॅशिंग रचना वैयक्तिक प्रमाणकांना योग्यरित्या वागण्यास प्रोत्साहित करते. तथापि, या डिझाइन निवडींमधून एक प्रणाली उदयास येते जी एकाधिक क्लायंट्समध्ये प्रमाणकांच्या समान वितरणास जोरदार प्रोत्साहन देते आणि सिंगल-क्लायंट वर्चस्वाला जोरदार परावृत्त करते.
पुढील वाचन
- इथेरियम अपग्रेड करणे: प्रोत्साहन स्तर (नवीन टॅबमध्ये उघडते)
- इथेरियमच्या हायब्रिड Casper प्रोटोकॉलमधील प्रोत्साहने (नवीन टॅबमध्ये उघडते)
- व्हिटालिकचे भाष्य केलेले स्पेसिफिकेशन (नवीन टॅबमध्ये उघडते)
- ईथ२ स्लॅशिंग प्रतिबंधक टिपा (नवीन टॅबमध्ये उघडते)
- EIP-7251 अंतर्गत स्लॅशिंग दंडांचे विश्लेषण (नवीन टॅबमध्ये उघडते)
स्रोत