బ్లాక్ ప్రతిపాదన
బ్లాక్చైన్కు బ్లాక్లు ప్రాథమిక యూనిట్లు. బ్లాక్లు అనేవి నోడ్ల మధ్య పంపబడే, అంగీకరించబడే మరియు ప్రతి నోడ్ యొక్క డేటాబేస్కు జోడించబడే వివిక్త సమాచార యూనిట్లు. అవి ఎలా ఉత్పత్తి చేయబడతాయో ఈ పేజీ వివరిస్తుంది.
ముందస్తు అవసరాలు
బ్లాక్ ప్రతిపాదన అనేది ప్రూఫ్-ఆఫ్-స్టేక్ (PoS) ప్రోటోకాల్లో భాగం. ఈ పేజీని అర్థం చేసుకోవడంలో సహాయపడటానికి, మీరు ప్రూఫ్-ఆఫ్-స్టేక్ (PoS) మరియు బ్లాక్ ఆర్కిటెక్చర్ గురించి చదవాలని మేము సిఫార్సు చేస్తున్నాము.
బ్లాక్లను ఎవరు ఉత్పత్తి చేస్తారు?
ధృవీకర్త ఖాతాలు బ్లాక్లను ప్రతిపాదిస్తాయి. ధృవీకర్త ఖాతాలు నోడ్ ఆపరేటర్లచే నిర్వహించబడతాయి, వారు తమ అమలు క్లయింట్ మరియు ఏకాభిప్రాయ పొర క్లయింట్లలో భాగంగా ధృవీకర్త సాఫ్ట్వేర్ను రన్ చేస్తారు మరియు డిపాజిట్ కాంట్రాక్ట్లో కనీసం 32 ETH డిపాజిట్ చేసి ఉంటారు. అయితే, ప్రతి ధృవీకర్త అప్పుడప్పుడు మాత్రమే బ్లాక్ను ప్రతిపాదించడానికి బాధ్యత వహిస్తారు. ఎథీరియం సమయాన్ని స్లాట్లు మరియు ఎపోక్లలో కొలుస్తుంది. ప్రతి స్లాట్ పన్నెండు సెకన్లు ఉంటుంది, మరియు 32 స్లాట్లు (6.4 నిమిషాలు) కలిపి ఒక ఎపోక్ అవుతుంది. ప్రతి స్లాట్ ఎథీరియంలో కొత్త బ్లాక్ను జోడించడానికి ఒక అవకాశం.
యాదృచ్ఛిక ఎంపిక
ప్రతి స్లాట్లో బ్లాక్ను ప్రతిపాదించడానికి ఒకే ధృవీకర్త సూడో-రాండమ్గా ఎంపిక చేయబడతారు. బ్లాక్చైన్లో నిజమైన యాదృచ్ఛికత అనేదేమీ ఉండదు, ఎందుకంటే ప్రతి నోడ్ నిజంగా యాదృచ్ఛిక సంఖ్యలను ఉత్పత్తి చేస్తే, అవి ఏకాభిప్రాయానికి రాలేవు. బదులుగా, ధృవీకర్త ఎంపిక ప్రక్రియను అనూహ్యంగా చేయడమే లక్ష్యం. ఎథీరియంలో RANDAO అనే అల్గారిథమ్ని ఉపయోగించి యాదృచ్ఛికత సాధించబడుతుంది, ఇది బ్లాక్ ప్రతిపాదకుడి నుండి వచ్చే హాష్ను ప్రతి బ్లాక్కు అప్డేట్ అయ్యే సీడ్తో కలుపుతుంది. మొత్తం ధృవీకర్తల సెట్ నుండి ఒక నిర్దిష్ట ధృవీకర్తను ఎంచుకోవడానికి ఈ విలువ ఉపయోగించబడుతుంది. కొన్ని రకాల సీడ్ మానిప్యులేషన్ నుండి రక్షించడానికి ధృవీకర్త ఎంపిక రెండు ఎపోక్ల ముందుగానే నిర్ణయించబడుతుంది.
ధృవీకర్తలు ప్రతి స్లాట్లో RANDAOకి జోడించినప్పటికీ, గ్లోబల్ RANDAO విలువ ఎపోక్కు ఒకసారి మాత్రమే అప్డేట్ చేయబడుతుంది. తదుపరి బ్లాక్ ప్రతిపాదకుడి సూచికను లెక్కించడానికి, ప్రతి స్లాట్లో ప్రత్యేకమైన విలువను ఇవ్వడానికి RANDAO విలువ స్లాట్ సంఖ్యతో కలపబడుతుంది. ఒక వ్యక్తిగత ధృవీకర్త ఎంపికయ్యే సంభావ్యత కేవలం 1/N కాదు (ఇక్కడ N = మొత్తం క్రియాశీల ధృవీకర్తలు). బదులుగా, ఇది ప్రతి ధృవీకర్త యొక్క ప్రభావవంతమైన ETH బ్యాలెన్స్ ద్వారా వెయిట్ చేయబడుతుంది. గరిష్ట ప్రభావవంతమైన బ్యాలెన్స్ 32 ETH (దీని అర్థం balance < 32 ETH అనేది balance == 32 ETH కంటే తక్కువ వెయిట్కి దారితీస్తుంది, కానీ balance > 32 ETH అనేది balance == 32 ETH కంటే ఎక్కువ వెయిటింగ్కి దారితీయదు).
ప్రతి స్లాట్లో ఒక బ్లాక్ ప్రతిపాదకుడు మాత్రమే ఎంపిక చేయబడతారు. సాధారణ పరిస్థితులలో, ఒకే బ్లాక్ నిర్మాత వారి కేటాయించిన స్లాట్లో ఒకే బ్లాక్ను సృష్టించి విడుదల చేస్తారు. ఒకే స్లాట్ కోసం రెండు బ్లాక్లను సృష్టించడం అనేది స్లాషింగ్ చేయదగిన నేరం, దీనిని తరచుగా "సందిగ్ధత" (equivocation) అని పిలుస్తారు.
బ్లాక్ ఎలా సృష్టించబడుతుంది?
బ్లాక్ ప్రతిపాదకుడు తమ స్వంత స్థానికంగా రన్ అయ్యే ఫోర్క్ ఎంపిక అల్గారిథం వీక్షణ ప్రకారం చైన్ యొక్క అత్యంత ఇటీవలి హెడ్ పైన నిర్మించే సంతకం చేయబడిన బీకాన్ బ్లాక్ను ప్రసారం చేయాలని భావిస్తారు. ఫోర్క్ ఎంపిక అల్గారిథం మునుపటి స్లాట్ నుండి మిగిలిపోయిన ఏవైనా క్యూలో ఉన్న ధృవీకరణలను వర్తింపజేస్తుంది, ఆపై దాని చరిత్రలో అత్యధికంగా సేకరించబడిన ధృవీకరణల వెయిట్ ఉన్న బ్లాక్ను కనుగొంటుంది. ఆ బ్లాక్ ప్రతిపాదకుడిచే సృష్టించబడిన కొత్త బ్లాక్ యొక్క మాతృక (parent) అవుతుంది.
బ్లాక్ ప్రతిపాదకుడు తన స్వంత స్థానిక డేటాబేస్ మరియు చైన్ వీక్షణ నుండి డేటాను సేకరించడం ద్వారా బ్లాక్ను సృష్టిస్తాడు. బ్లాక్ యొక్క కంటెంట్లు క్రింది స్నిప్పెట్లో చూపబడ్డాయి:
class BeaconBlockBody(Container):
randao_reveal: BLSSignature
eth1_data: Eth1Data
graffiti: Bytes32
proposer_slashings: List[ProposerSlashing, MAX_PROPOSER_SLASHINGS]
attester_slashings: List[AttesterSlashing, MAX_ATTESTER_SLASHINGS]
attestations: List[Attestation, MAX_ATTESTATIONS]
deposits: List[Deposit, MAX_DEPOSITS]
voluntary_exits: List[SignedVoluntaryExit, MAX_VOLUNTARY_EXITS]
sync_aggregate: SyncAggregate
execution_payload: ExecutionPayload
randao_reveal ఫీల్డ్ ప్రస్తుత ఎపోక్ సంఖ్యపై సంతకం చేయడం ద్వారా బ్లాక్ ప్రతిపాదకుడు సృష్టించే ధృవీకరించదగిన యాదృచ్ఛిక విలువను తీసుకుంటుంది. eth1_data అనేది డిపాజిట్ కాంట్రాక్ట్ గురించి బ్లాక్ ప్రతిపాదకుడి వీక్షణకు ఒక ఓటు, ఇందులో డిపాజిట్ మెర్కిల్ ట్రై యొక్క రూట్ మరియు కొత్త డిపాజిట్లను ధృవీకరించడానికి వీలు కల్పించే మొత్తం డిపాజిట్ల సంఖ్య ఉంటాయి. graffiti అనేది బ్లాక్కు సందేశం జోడించడానికి ఉపయోగించగల ఐచ్ఛిక ఫీల్డ్. proposer_slashings మరియు attester_slashings అనేవి ప్రతిపాదకుడి చైన్ వీక్షణ ప్రకారం నిర్దిష్ట ధృవీకర్తలు స్లాషింగ్ చేయదగిన నేరాలకు పాల్పడ్డారని రుజువును కలిగి ఉన్న ఫీల్డ్లు. deposits అనేది బ్లాక్ ప్రతిపాదకుడికి తెలిసిన కొత్త ధృవీకర్త డిపాజిట్ల జాబితా, మరియు voluntary_exits అనేది ఏకాభిప్రాయ పొర గాసిప్ నెట్వర్క్లో బ్లాక్ ప్రతిపాదకుడు విన్న, నిష్క్రమణ కోరుకునే ధృవీకర్తల జాబితా. sync_aggregate అనేది గతంలో సింక్ కమిటీకి (తేలికపాటి క్లయింట్ డేటాను అందించే ధృవీకర్తల ఉపసమితి) ఏ ధృవీకర్తలు కేటాయించబడ్డారో మరియు డేటాపై సంతకం చేయడంలో పాల్గొన్నారో చూపే వెక్టర్.
execution_payload అనేది లావాదేవీల గురించిన సమాచారాన్ని అమలు క్లయింట్ మరియు ఏకాభిప్రాయ పొర క్లయింట్ల మధ్య పంపడానికి వీలు కల్పిస్తుంది. execution_payload అనేది బీకాన్ బ్లాక్ లోపల పొందుపరచబడిన అమలు డేటా యొక్క బ్లాక్. execution_payload లోపలి ఫీల్డ్లు ఎథీరియం ఎల్లో పేపర్లో వివరించిన బ్లాక్ నిర్మాణాన్ని ప్రతిబింబిస్తాయి, అయితే ఇందులో ఆమ్మర్లు (ommers) ఉండవు మరియు difficulty స్థానంలో prev_randao ఉంటుంది. అమలు క్లయింట్ తన స్వంత గాసిప్ నెట్వర్క్లో విన్న లావాదేవీల స్థానిక పూల్కు యాక్సెస్ను కలిగి ఉంటుంది. పోస్ట్-స్టేట్ అని పిలువబడే అప్డేట్ చేయబడిన స్థితి ట్రైని రూపొందించడానికి ఈ లావాదేవీలు స్థానికంగా అమలు చేయబడతాయి. లావాదేవీలు execution_payload లో transactions అనే జాబితాగా చేర్చబడతాయి మరియు పోస్ట్-స్టేట్ state-root ఫీల్డ్లో అందించబడుతుంది.
ఈ డేటా అంతా బీకాన్ బ్లాక్లో సేకరించబడి, సంతకం చేయబడి, బ్లాక్ ప్రతిపాదకుడి పీర్లకు ప్రసారం చేయబడుతుంది, వారు దానిని వారి పీర్లకు ప్రచారం చేస్తారు, మొదలైనవి.
బ్లాక్ల అనాటమీ గురించి మరింత చదవండి.
బ్లాక్కి ఏమవుతుంది?
బ్లాక్ ప్రతిపాదకుడి స్థానిక డేటాబేస్కు బ్లాక్ జోడించబడుతుంది మరియు ఏకాభిప్రాయ పొర గాసిప్ నెట్వర్క్ ద్వారా పీర్లకు ప్రసారం చేయబడుతుంది. ఒక ధృవీకర్త బ్లాక్ను స్వీకరించినప్పుడు, అది బ్లాక్కు సరైన మాతృక ఉందా, సరైన స్లాట్కు అనుగుణంగా ఉందా, ప్రతిపాదకుడి సూచిక ఆశించినదేనా, RANDAO రివీల్ చెల్లుబాటు అవుతుందా మరియు ప్రతిపాదకుడు స్లాషింగ్ చేయబడలేదా అని తనిఖీ చేయడంతో సహా దానిలోని డేటాను ధృవీకరిస్తుంది. execution_payload అన్బండిల్ చేయబడుతుంది మరియు ప్రతిపాదిత స్థితి మార్పును తనిఖీ చేయడానికి ధృవీకర్త యొక్క అమలు క్లయింట్ జాబితాలోని లావాదేవీలను మళ్లీ అమలు చేస్తుంది. బ్లాక్ ఈ తనిఖీలన్నింటినీ పాస్ చేస్తుందని ఊహిస్తే, ప్రతి ధృవీకర్త బ్లాక్ను తన స్వంత కానానికల్ చైన్కు జోడిస్తుంది. ఆ తర్వాత తదుపరి స్లాట్లో ప్రక్రియ మళ్లీ ప్రారంభమవుతుంది.
బ్లాక్ ప్రతిఫలాలు
బ్లాక్ ప్రతిపాదకుడు వారి పనికి చెల్లింపును పొందుతారు. క్రియాశీల ధృవీకర్తల సంఖ్య మరియు వారి ప్రభావవంతమైన బ్యాలెన్స్ల ఫంక్షన్గా లెక్కించబడే base_reward ఉంటుంది. బ్లాక్ ప్రతిపాదకుడు బ్లాక్లో చేర్చబడిన ప్రతి చెల్లుబాటు అయ్యే ధృవీకరణ కోసం base_reward లో కొంత భాగాన్ని పొందుతారు; ఎంత ఎక్కువ మంది ధృవీకర్తలు బ్లాక్ను ధృవీకరిస్తే, బ్లాక్ ప్రతిపాదకుడి ప్రతిఫలం అంత ఎక్కువగా ఉంటుంది. స్లాషింగ్ చేయబడాల్సిన ధృవీకర్తలను నివేదించినందుకు కూడా ప్రతిఫలం ఉంటుంది, ఇది స్లాషింగ్ చేయబడిన ప్రతి ధృవీకర్తకు 1/512 * effective balance కి సమానంగా ఉంటుంది.
ప్రతిఫలాలు మరియు జరిమానాల గురించి మరింత