మనం ఒకరినొకరు విశ్వసించకపోతే యాదృచ్ఛిక సంఖ్యలను సృష్టించడం సాధ్యమేనా? పార్ట్ 1

హే హబ్ర్!

ఈ వ్యాసంలో నేను ఒకరినొకరు విశ్వసించని పాల్గొనేవారిచే నకిలీ-రాండమ్ సంఖ్యల తరం గురించి మాట్లాడతాను. మేము క్రింద చూస్తాము, "దాదాపు" మంచి జనరేటర్‌ను అమలు చేయడం చాలా సులభం, కానీ చాలా మంచిది కష్టం.

ఒకరినొకరు విశ్వసించని పాల్గొనేవారిలో యాదృచ్ఛిక సంఖ్యలను రూపొందించడం ఎందుకు అవసరం? ఒక అప్లికేషన్ ప్రాంతం వికేంద్రీకృత అప్లికేషన్లు. ఉదాహరణకు, పాల్గొనేవారి నుండి బెట్టింగ్‌ను అంగీకరించి, 49% సంభావ్యతతో మొత్తాన్ని రెట్టింపు చేసే లేదా 51% సంభావ్యతతో తీసివేసే అప్లికేషన్ నిష్పాక్షికంగా యాదృచ్ఛిక సంఖ్యను పొందగలిగితే మాత్రమే పని చేస్తుంది. దాడి చేసే వ్యక్తి యాదృచ్ఛిక సంఖ్య జనరేటర్ యొక్క ఫలితాన్ని ప్రభావితం చేయగలిగితే మరియు అప్లికేషన్‌లో చెల్లింపును స్వీకరించే అవకాశాన్ని కొద్దిగా పెంచుకుంటే, అతను దానిని సులభంగా నాశనం చేస్తాడు.

మేము పంపిణీ చేయబడిన యాదృచ్ఛిక సంఖ్య ఉత్పత్తి ప్రోటోకాల్‌ను రూపొందించినప్పుడు, దానికి మూడు లక్షణాలు ఉండాలని మేము కోరుకుంటున్నాము:

  1. అతను నిష్పక్షపాతంగా ఉండాలి. మరో మాటలో చెప్పాలంటే, యాదృచ్ఛిక సంఖ్య జనరేటర్ యొక్క ఫలితాన్ని ఏ పార్టిసిపెంట్ ఏ విధంగానూ ప్రభావితం చేయకూడదు.

  2. అతను అనూహ్యంగా ఉండాలి. మరో మాటలో చెప్పాలంటే, ఏ భాగస్వామ్యుడు ఉత్పత్తి చేయబడే ముందు ఏ సంఖ్య ఉత్పత్తి చేయబడుతుందో (లేదా దాని లక్షణాలలో దేనినైనా ఊహించవచ్చు) అంచనా వేయలేరు.

  3. ప్రోటోకాల్ తప్పనిసరిగా ఆచరణీయంగా ఉండాలి, అంటే, పాల్గొనేవారిలో కొంత శాతం మంది నెట్‌వర్క్ నుండి డిస్‌కనెక్ట్ చేయడం లేదా ఉద్దేశపూర్వకంగా ప్రోటోకాల్‌ను ఆపడానికి ప్రయత్నించడం అనే వాస్తవానికి నిరోధకతను కలిగి ఉండాలి.

ఈ వ్యాసంలో మనం రెండు విధానాలను పరిశీలిస్తాము: RANDAO + VDF మరియు ఎరేజర్ కోడ్‌ల విధానం. తరువాతి భాగంలో, మేము థ్రెషోల్డ్ సంతకాల ఆధారంగా విధానాన్ని వివరంగా పరిశీలిస్తాము.

అయితే ముందుగా, ఆచరణీయమైన, అనూహ్యమైన, కానీ పక్షపాతంతో కూడిన సరళమైన మరియు సాధారణంగా ఉపయోగించే అల్గారిథమ్‌ను చూద్దాం.

రాండావో

RANDAO అనేది చాలా సులభమైన మరియు అందువల్ల యాదృచ్ఛికతను రూపొందించడానికి సాధారణంగా ఉపయోగించే విధానం. నెట్‌వర్క్ పార్టిసిపెంట్‌లందరూ ముందుగా స్థానికంగా ఒక సూడోరాండమ్ నంబర్‌ను ఎంచుకుంటారు, ఆపై ప్రతి పార్టిసిపెంట్ ఎంచుకున్న నంబర్ యొక్క హాష్‌ను పంపుతారు. తరువాత, పాల్గొనేవారు వారి ఎంచుకున్న సంఖ్యలను బహిర్గతం చేయడం మరియు వెల్లడించిన సంఖ్యలపై XOR ఆపరేషన్ చేయడం ద్వారా మలుపులు తీసుకుంటారు మరియు ఈ ఆపరేషన్ ఫలితం ప్రోటోకాల్ యొక్క ఫలితం అవుతుంది.

సంఖ్యలను బహిర్గతం చేయడానికి ముందు హ్యాష్‌లను ప్రచురించే దశ అవసరం, తద్వారా దాడి చేసే వ్యక్తి ఇతర పాల్గొనేవారి నంబర్‌లను చూసిన తర్వాత అతని నంబర్‌ను ఎంచుకోలేరు. ఇది యాదృచ్ఛిక సంఖ్య జనరేటర్ యొక్క అవుట్‌పుట్‌ను వాస్తవంగా ఒంటరిగా నిర్ణయించడానికి అతన్ని అనుమతిస్తుంది.

ప్రోటోకాల్ సమయంలో, పాల్గొనేవారు రెండుసార్లు ఒక సాధారణ నిర్ణయానికి (ఏకాభిప్రాయం అని పిలవబడేవి) రావాలి: ఎంచుకున్న సంఖ్యలను ఎప్పుడు బహిర్గతం చేయడం ప్రారంభించాలి, అందువల్ల హ్యాష్‌లను అంగీకరించడం ఆపివేయాలి మరియు ఎంచుకున్న సంఖ్యలను అంగీకరించడం మరియు ఫలితాన్ని లెక్కించడం ఎప్పుడు ఆపాలి సంఖ్య. ఒకరినొకరు విశ్వసించని పాల్గొనేవారి మధ్య అలాంటి నిర్ణయాలు తీసుకోవడం అంత తేలికైన పని కాదు, మరియు మేము భవిష్యత్ కథనాలలో దానికి తిరిగి వస్తాము; ఈ వ్యాసంలో అటువంటి ఏకాభిప్రాయ అల్గోరిథం మాకు అందుబాటులో ఉందని మేము ఊహిస్తాము.

మేము పైన వివరించిన లక్షణాలలో RANDAO ఏ లక్షణాలను కలిగి ఉంది? ఇది అనూహ్యమైనది, అంతర్లీన ఏకాభిప్రాయ ప్రోటోకాల్ వలె అదే శక్తిని కలిగి ఉంటుంది, కానీ ఇది పక్షపాతంతో ఉంటుంది. ప్రత్యేకంగా, దాడి చేసే వ్యక్తి నెట్‌వర్క్‌ను గమనించవచ్చు మరియు ఇతర పాల్గొనేవారు వారి సంఖ్యలను వెల్లడించిన తర్వాత, అతను వారి XORని లెక్కించవచ్చు మరియు ఫలితాన్ని ప్రభావితం చేయడానికి అతని సంఖ్యను వెల్లడించాలా వద్దా అని నిర్ణయించుకోవచ్చు. యాదృచ్ఛిక సంఖ్య జనరేటర్ యొక్క అవుట్‌పుట్‌ను ఒంటరిగా నిర్ణయించకుండా దాడి చేసే వ్యక్తిని ఇది నిరోధిస్తున్నప్పటికీ, ఇది అతనికి ఇప్పటికీ 1 బిట్ ప్రభావాన్ని ఇస్తుంది. మరియు దాడి చేసేవారు అనేక మంది పాల్గొనేవారిని నియంత్రిస్తే, వారు నియంత్రించే బిట్‌ల సంఖ్య వారి నియంత్రణలో పాల్గొనేవారి సంఖ్యకు సమానంగా ఉంటుంది.

మనం ఒకరినొకరు విశ్వసించకపోతే యాదృచ్ఛిక సంఖ్యలను సృష్టించడం సాధ్యమేనా? పార్ట్ 1

పాల్గొనేవారు క్రమంలో సంఖ్యలను బహిర్గతం చేయడం ద్వారా దాడి చేసేవారి ప్రభావాన్ని బాగా తగ్గించవచ్చు. దాడి చేసే వ్యక్తి చివరగా తెరిచినట్లయితే మాత్రమే ఫలితాన్ని ప్రభావితం చేయగలడు. ప్రభావం గణనీయంగా తక్కువగా ఉన్నప్పటికీ, అల్గోరిథం ఇప్పటికీ పక్షపాతంతో ఉంటుంది.

RANDAO+VDF

RANDAO ని నిష్పక్షపాతంగా చేయడానికి ఇది ఒక మార్గం: అన్ని సంఖ్యలు వెల్లడి చేయబడిన తర్వాత మరియు XOR లెక్కించబడిన తర్వాత, దాని ఫలితం ఒక ఫంక్షన్ యొక్క ఇన్‌పుట్‌లోకి అందించబడుతుంది, ఇది లెక్కించడానికి చాలా సమయం పడుతుంది, కానీ మీరు దాని ఖచ్చితత్వాన్ని తనిఖీ చేయడానికి అనుమతిస్తుంది చాలా త్వరగా గణన.

(vdf_output, vdf_proof) = VDF_compute(input) // это очень медленно
correct = VDF_verify(input, vdf_output, vdf_proof) // это очень быстро

ఈ ఫంక్షన్‌ని వెరిఫైబుల్ డిలే ఫంక్షన్ లేదా VDF అంటారు. తుది ఫలితాన్ని లెక్కించడానికి సంఖ్య బహిర్గతం దశ కంటే ఎక్కువ సమయం తీసుకుంటే, దాడి చేసే వ్యక్తి తన సంఖ్యను చూపించడం లేదా దాచడం వల్ల కలిగే ప్రభావాన్ని అంచనా వేయలేరు మరియు అందువల్ల అతను ఫలితాన్ని ప్రభావితం చేసే అవకాశాన్ని కోల్పోతాడు.

మంచి VDFలను అభివృద్ధి చేయడం చాలా కష్టం. ఇటీవల అనేక పురోగతులు ఉన్నాయి, ఉదా. и ఇది, ఇది ఆచరణలో VDFని మరింత ఆచరణాత్మకంగా చేసింది మరియు Ethereum 2.0 దీర్ఘకాలంలో యాదృచ్ఛిక సంఖ్య మూలంగా VDFతో RANDAOను ఉపయోగించాలని యోచిస్తోంది. ఈ విధానం అనూహ్యమైనది మరియు నిష్పాక్షికమైనది అనే వాస్తవం కాకుండా, నెట్‌వర్క్‌లో కనీసం ఇద్దరు పార్టిసిపెంట్‌లు అందుబాటులో ఉంటే అది ఆచరణీయంగా ఉండటం యొక్క అదనపు ప్రయోజనాన్ని కలిగి ఉంటుంది (అంత తక్కువ సంఖ్యలో పాల్గొనేవారితో వ్యవహరించేటప్పుడు ఉపయోగించిన ఏకాభిప్రాయ ప్రోటోకాల్ ఆచరణీయంగా ఉంటుందని ఊహిస్తే).

ఈ విధానం యొక్క అతిపెద్ద సవాలు VDFని సెటప్ చేయడం, అంటే చాలా ఖరీదైన ప్రత్యేక హార్డ్‌వేర్‌తో పాల్గొనేవారు కూడా ఆవిష్కరణ దశ ముగిసేలోపు VDFని లెక్కించలేరు. ఆదర్శవంతంగా, అల్గోరిథం గణనీయమైన భద్రతా మార్జిన్‌ను కలిగి ఉండాలి, 10x చెప్పండి. RANDAO నిర్ధారణను బహిర్గతం చేయడానికి కేటాయించిన సమయం కంటే వేగంగా VDFని అమలు చేయడానికి అనుమతించే ప్రత్యేక ASICని కలిగి ఉన్న నటుడి దాడిని దిగువ చిత్రంలో చూపబడింది. అటువంటి పాల్గొనే వ్యక్తి ఇప్పటికీ తన సంఖ్యను ఉపయోగించి లేదా ఉపయోగించకుండా తుది ఫలితాన్ని లెక్కించవచ్చు, ఆపై, గణన ఆధారంగా, దానిని చూపించాలా వద్దా అని ఎంచుకోండి.

మనం ఒకరినొకరు విశ్వసించకపోతే యాదృచ్ఛిక సంఖ్యలను సృష్టించడం సాధ్యమేనా? పార్ట్ 1

పైన పేర్కొన్న VDF కుటుంబం కోసం, ప్రత్యేకమైన ASIC పనితీరు సాంప్రదాయ హార్డ్‌వేర్ కంటే 100+ రెట్లు ఎక్కువగా ఉంటుంది. కాబట్టి విస్తరణ దశ 10 సెకన్ల పాటు కొనసాగితే, అటువంటి ASICలో కంప్యూట్ చేయబడిన VDF తప్పనిసరిగా 100x భద్రతా మార్జిన్‌ను కలిగి ఉండటానికి 10 సెకన్ల కంటే ఎక్కువ సమయం పడుతుంది మరియు కమోడిటీ హార్డ్‌వేర్‌పై లెక్కించిన అదే VDF తప్పనిసరిగా 100x 100 సెకన్లు = ~3 గంటలు పడుతుంది.

Ethereum ఫౌండేషన్ తన స్వంత పబ్లిక్‌గా అందుబాటులో ఉన్న, ఉచిత ASICలను సృష్టించడం ద్వారా ఈ సమస్యను పరిష్కరించాలని యోచిస్తోంది. ఇది జరిగిన తర్వాత, అన్ని ఇతర ప్రోటోకాల్‌లు కూడా ఈ సాంకేతికతను సద్వినియోగం చేసుకోగలవు, అయితే అప్పటి వరకు తమ స్వంత ASICలను అభివృద్ధి చేయడంలో పెట్టుబడి పెట్టలేని ప్రోటోకాల్‌లకు RANDAO+VDF విధానం ఆచరణీయంగా ఉండదు.

VDF గురించి అనేక కథనాలు, వీడియోలు మరియు ఇతర సమాచారం సేకరించబడింది ఈ సైట్.

మేము ఎరేజర్ కోడ్‌లను ఉపయోగిస్తాము

ఈ విభాగంలో, మేము ఉపయోగించే యాదృచ్ఛిక సంఖ్య ఉత్పత్తి ప్రోటోకాల్‌ను పరిశీలిస్తాము కోడ్‌లను చెరిపివేస్తోంది. ఇది ఆచరణీయంగా ఉంటూనే ⅓ దాడి చేసేవారిని తట్టుకోగలదు మరియు ఫలితాన్ని అంచనా వేయడానికి లేదా ప్రభావితం చేయడానికి ముందు ⅔ దాడి చేసేవారిని ఉనికిలో ఉంచడానికి అనుమతిస్తుంది.

ప్రోటోకాల్ యొక్క ప్రధాన ఆలోచన క్రింది విధంగా ఉంది. సరళత కోసం, ఖచ్చితంగా 100 మంది భాగస్వాములు ఉన్నారని అనుకుందాం. పాల్గొనే వారందరికీ స్థానికంగా కొంత ప్రైవేట్ కీ ఉందని మరియు పాల్గొనే వారందరి పబ్లిక్ కీలు పాల్గొనే వారందరికీ తెలుసని కూడా అనుకుందాం:

  1. ప్రతి పార్టిసిపెంట్ స్థానికంగా ఒక పొడవైన స్ట్రింగ్‌తో వస్తుంది, దానిని 67 భాగాలుగా విడదీస్తుంది, 100 షేర్‌లను పొందేందుకు ఎరేజర్ కోడ్‌లను సృష్టిస్తుంది అంటే స్ట్రింగ్‌ను రికవర్ చేయడానికి ఏవైనా 67 సరిపోతాయి, 100 షేర్‌లలో ప్రతి ఒక్కటి పాల్గొనేవారిలో ఒకరికి కేటాయించి, వాటిని ఎన్‌క్రిప్ట్ చేస్తుంది అదే పార్టిసిపెంట్ పబ్లిక్ కీ. ఎన్‌కోడ్ చేసిన షేర్‌లన్నీ ఆ తర్వాత ప్రచురించబడతాయి.

  2. నిర్దిష్ట 67 మంది పాల్గొనేవారి నుండి కోడెడ్ సెట్‌లపై ఒప్పందాన్ని చేరుకోవడానికి పాల్గొనేవారు ఒకరకమైన ఏకాభిప్రాయాన్ని ఉపయోగిస్తారు.

  3. ఏకాభిప్రాయానికి వచ్చిన తర్వాత, ప్రతి పాల్గొనేవారు తమ పబ్లిక్ కీతో గుప్తీకరించిన 67 సెట్‌లలో ప్రతి ఎన్‌కోడ్ చేసిన షేర్‌లను తీసుకుంటారు, అలాంటి షేర్‌లన్నింటినీ డీక్రిప్ట్ చేస్తారు మరియు అలాంటి డీక్రిప్టెడ్ షేర్‌లన్నింటినీ పబ్లిష్ చేస్తారు.

  4. 67 మంది పార్టిసిపెంట్‌లు దశ (3) పూర్తి చేసిన తర్వాత, ఎరేజర్ కోడ్‌ల లక్షణాల కారణంగా అన్ని అంగీకరించిన సెట్‌లు పూర్తిగా డీకోడ్ చేయబడతాయి మరియు పునర్నిర్మించబడతాయి మరియు చివరి సంఖ్యను పాల్గొనేవారు (1)లో ప్రారంభించిన ప్రారంభ వరుసల XORగా పొందవచ్చు. .

మనం ఒకరినొకరు విశ్వసించకపోతే యాదృచ్ఛిక సంఖ్యలను సృష్టించడం సాధ్యమేనా? పార్ట్ 1

ఈ ప్రోటోకాల్ నిష్పాక్షికమైనది మరియు అనూహ్యమైనదిగా చూపబడుతుంది. ఫలితంగా యాదృచ్ఛిక సంఖ్య ఏకాభిప్రాయానికి వచ్చిన తర్వాత నిర్ణయించబడుతుంది, అయితే పాల్గొనేవారిలో ⅔ వారి పబ్లిక్ కీతో గుప్తీకరించిన భాగాలను డీకోడ్ చేసే వరకు ఎవరికీ తెలియదు. అందువల్ల, యాదృచ్ఛిక సంఖ్యను పునర్నిర్మించడానికి తగినంత సమాచారం ప్రచురించబడటానికి ముందే నిర్ణయించబడుతుంది.

స్టెప్ (1)లో పాల్గొనేవారిలో ఒకరు ఇతర పార్టిసిపెంట్‌లకు ఎన్‌కోడ్ చేసిన షేర్‌లను పంపినట్లయితే, అవి కొన్ని స్ట్రింగ్‌కు సరైన ఎరేజర్ కోడ్ కానట్లయితే ఏమి జరుగుతుంది? అదనపు మార్పులు లేకుండా, వేర్వేరు పార్టిసిపెంట్‌లు స్ట్రింగ్‌ను అస్సలు రికవర్ చేయలేరు లేదా వారు వేర్వేరు స్ట్రింగ్‌లను రికవర్ చేస్తారు, దీని ఫలితంగా వివిధ పార్టిసిపెంట్‌లు వేరే యాదృచ్ఛిక సంఖ్యను స్వీకరిస్తారు. దీన్ని నివారించడానికి, మీరు ఈ క్రింది వాటిని చేయవచ్చు: ప్రతి పాల్గొనేవారు, ఎన్‌కోడ్ చేసిన షేర్‌లతో పాటు, కూడా లెక్కిస్తారు మెర్క్లా చెట్టు అటువంటి అన్ని షేర్లు, మరియు ప్రతి పార్టిసిపెంట్‌కు ఎన్‌కోడ్ చేయబడిన షేర్ మరియు మెర్కిల్ ట్రీ యొక్క రూట్ రెండింటినీ పంపుతుంది మరియు మెర్కిల్ ట్రీలో వాటాను చేర్చినట్లు రుజువు చేస్తుంది. స్టెప్ (2)లోని ఏకాభిప్రాయంలో, పాల్గొనేవారు కేవలం సెట్‌ల సెట్‌పై మాత్రమే అంగీకరిస్తారు, కానీ అటువంటి చెట్ల యొక్క నిర్దిష్ట మూలాల సెట్‌పై (కొంతమంది పాల్గొనేవారు ప్రోటోకాల్ నుండి వైదొలిగి, వివిధ మెర్కిల్ ట్రీ రూట్‌లను వేర్వేరు పాల్గొనేవారికి పంపినట్లయితే, మరియు అటువంటి రెండు మూలాలు ఏకాభిప్రాయం సమయంలో చూపబడతాయి, అతని వరుస ఫలితం సెట్‌లో చేర్చబడలేదు). ఏకాభిప్రాయం ఫలితంగా, మేము 67 ఎన్‌కోడ్ చేసిన పంక్తులు మరియు మెర్కిల్ ట్రీ యొక్క సంబంధిత మూలాలను కలిగి ఉంటాము అంటే కనీసం 67 మంది పాల్గొనేవారు (సంబంధిత పంక్తులను ప్రతిపాదించిన వారు తప్పనిసరిగా కాదు), ప్రతి 67 లైన్‌లకు ఎరేజర్ కోడ్ యొక్క వాటాతో సందేశం మరియు సంబంధిత చెట్టులో వారి వాటా క్షీణించినట్లు రుజువు.

స్టెప్ (4)లో పాల్గొనే వ్యక్తి నిర్దిష్ట స్ట్రింగ్ కోసం 67 బీట్‌లను అర్థంచేసుకుని, వాటి నుండి అసలు స్ట్రింగ్‌ను పునర్నిర్మించడానికి ప్రయత్నించినప్పుడు, ఎంపికలలో ఒకటి సాధ్యమవుతుంది:

  1. స్ట్రింగ్ పునరుద్ధరించబడింది మరియు అది మళ్లీ ఎరేజర్-ఎన్‌కోడ్ చేయబడి, స్థానికంగా లెక్కించబడిన షేర్‌ల కోసం మెర్కిల్ ట్రీని లెక్కించినట్లయితే, రూట్ ఏకాభిప్రాయానికి వచ్చిన దానితో సమానంగా ఉంటుంది.

  2. అడ్డు వరుస పునరుద్ధరించబడింది, కానీ స్థానికంగా లెక్కించబడిన రూట్ ఏకాభిప్రాయం కుదిరిన దానితో సరిపోలడం లేదు.

  3. అడ్డు వరుస పునరుద్ధరించబడలేదు.

పైన పేర్కొన్న ఎంపిక (1) కనీసం ఒక పార్టిసిపెంట్ కోసం జరిగితే, ఎంపిక (1) పాల్గొనే వారందరికీ జరిగింది మరియు వైస్ వెర్సా, ఎంపిక (2) లేదా (3) కనీసం ఒక పార్టిసిపెంట్ కోసం జరిగితే, ఆపై చూపడం సులభం పాల్గొనే వారందరికీ ఎంపిక (2) లేదా (3) జరుగుతుంది. ఈ విధంగా, సెట్‌లోని ప్రతి అడ్డు వరుస కోసం, పాల్గొనే వారందరూ దానిని విజయవంతంగా పునరుద్ధరించుకుంటారు లేదా పాల్గొనే వారందరూ దాన్ని పునరుద్ధరించడంలో విఫలమవుతారు. ఫలితంగా వచ్చే యాదృచ్ఛిక సంఖ్య, పాల్గొనేవారు తిరిగి పొందగలిగిన వరుసల యొక్క XOR మాత్రమే.

థ్రెషోల్డ్ సంతకాలు

BLS థ్రెషోల్డ్ సంతకాలు అని పిలవబడే వాటిని ఉపయోగించడం యాదృచ్ఛికతకు మరొక విధానం. థ్రెషోల్డ్ సంతకాలపై ఆధారపడిన యాదృచ్ఛిక సంఖ్య జనరేటర్ పైన వివరించిన ఎరేజర్ కోడ్-ఆధారిత అల్గోరిథం వలె ఖచ్చితంగా అదే హామీలను కలిగి ఉంటుంది, అయితే ఉత్పత్తి చేయబడిన ప్రతి సంఖ్యకు నెట్‌వర్క్ ద్వారా పంపబడిన సందేశాల సంఖ్య గణనీయంగా తక్కువగా ఉంటుంది.

BLS సంతకాలు ఒక సందేశం కోసం ఒక సాధారణ సంతకాన్ని రూపొందించడానికి బహుళ పాల్గొనేవారిని అనుమతించే డిజైన్. బహుళ సంతకాలను పంపాల్సిన అవసరం లేకుండా స్థలం మరియు బ్యాండ్‌విడ్త్‌ను సేవ్ చేయడానికి ఈ సంతకాలు తరచుగా ఉపయోగించబడతాయి. 

బ్లాక్‌చెయిన్ ప్రోటోకాల్‌లలో BLS సంతకాల కోసం ఒక సాధారణ అప్లికేషన్, యాదృచ్ఛిక సంఖ్యలను రూపొందించడంతో పాటు, BFT ప్రోటోకాల్‌లలో బ్లాక్ సైన్ చేయడం. 100 మంది పార్టిసిపెంట్లు బ్లాక్‌లను క్రియేట్ చేసి, వారిలో 67 మంది సంతకం చేస్తే బ్లాక్ ఫైనల్‌గా పరిగణించబడుతుంది. వారందరూ తమ BLS సంతకంలోని భాగాలను సమర్పించవచ్చు మరియు వాటిలో 67ని అంగీకరించడానికి కొన్ని ఏకాభిప్రాయ అల్గారిథమ్‌ను ఉపయోగించవచ్చు మరియు వాటిని ఒక BLS సంతకంలో విలీనం చేయవచ్చు. తుది సంతకాన్ని రూపొందించడానికి ఏదైనా 67 (లేదా అంతకంటే ఎక్కువ) భాగాలను ఉపయోగించవచ్చు, ఇది 67 సంతకాలు కలిపిన దానిపై ఆధారపడి ఉంటుంది మరియు అందువల్ల మారవచ్చు, అయినప్పటికీ 67 మంది పాల్గొనే వారి వేర్వేరు ఎంపికలు వేరే సంతకాన్ని సృష్టిస్తాయి , అలాంటి సంతకం ఏదైనా చెల్లుబాటు అవుతుంది బ్లాక్ కోసం సంతకం. మిగిలిన పాల్గొనేవారు నెట్‌వర్క్‌లో 67కి బదులుగా ఒక బ్లాక్‌కు ఒక సంతకాన్ని మాత్రమే స్వీకరించి ధృవీకరించాలి, ఇది నెట్‌వర్క్‌పై లోడ్‌ను గణనీయంగా తగ్గిస్తుంది.

పాల్గొనేవారు ఉపయోగించే ప్రైవేట్ కీలు ఒక నిర్దిష్ట మార్గంలో రూపొందించబడితే, ఏ 67 సంతకాలు (లేదా అంతకంటే ఎక్కువ, కానీ తక్కువ కాదు) సమగ్రపరచబడినా, ఫలితంగా సంతకం ఒకే విధంగా ఉంటుంది. ఇది యాదృచ్ఛికత యొక్క మూలంగా ఉపయోగించబడుతుంది: పాల్గొనేవారు మొదట వారు సంతకం చేసే సందేశాన్ని అంగీకరిస్తారు (ఇది RANDAO యొక్క అవుట్‌పుట్ కావచ్చు లేదా చివరి బ్లాక్ యొక్క హాష్ కావచ్చు, ఇది ప్రతిసారీ మారుతున్నంత వరకు ఇది నిజంగా పట్టింపు లేదు మరియు స్థిరంగా ఉంటుంది) మరియు దాని కోసం BLS సంతకాన్ని సృష్టించండి. 67 మంది పాల్గొనేవారు తమ భాగాలను అందించే వరకు తరం యొక్క ఫలితం అనూహ్యంగా ఉంటుంది మరియు ఆ తర్వాత అవుట్‌పుట్ ఇప్పటికే ముందుగా నిర్ణయించబడింది మరియు పాల్గొనేవారి చర్యలపై ఆధారపడదు.

ఆన్‌లైన్‌లో పాల్గొనేవారిలో కనీసం ⅔ ఇద్దరూ ప్రోటోకాల్‌ను అనుసరించేంత వరకు యాదృచ్ఛికతకు ఈ విధానం ఆచరణీయంగా ఉంటుంది మరియు పాల్గొనేవారిలో కనీసం ⅓ ప్రోటోకాల్‌ను అనుసరించేంత వరకు నిష్పాక్షికంగా మరియు అనూహ్యంగా ఉంటుంది. పాల్గొనేవారిలో ⅓ కంటే ఎక్కువ కానీ ⅔ కంటే తక్కువని నియంత్రించే దాడి చేసే వ్యక్తి ప్రోటోకాల్‌ను ఆపగలడు, కానీ దాని అవుట్‌పుట్‌ను అంచనా వేయలేడు లేదా ప్రభావితం చేయలేడు.

థ్రెషోల్డ్ సంతకాలు చాలా ఆసక్తికరమైన అంశం. వ్యాసం యొక్క రెండవ భాగంలో, అవి ఎలా పని చేస్తాయో మరియు పార్టిసిపెంట్ కీలను రూపొందించడం ఎంత ఖచ్చితంగా అవసరమో మేము వివరంగా విశ్లేషిస్తాము, తద్వారా థ్రెషోల్డ్ సంతకాలను యాదృచ్ఛిక సంఖ్య జనరేటర్‌గా ఉపయోగించవచ్చు.

ముగింపులో

ఈ వ్యాసం సాంకేతిక బ్లాగ్ కథనాల శ్రేణిలో మొదటిది NEAR. NEAR అనేది బ్లాక్‌చెయిన్ ప్రోటోకాల్ మరియు తుది వినియోగదారుల కోసం సౌలభ్యం మరియు సౌలభ్యం అభివృద్ధిపై దృష్టి సారించి వికేంద్రీకృత అప్లికేషన్‌లను అభివృద్ధి చేయడానికి వేదిక.

ప్రోటోకాల్ కోడ్ తెరిచి ఉంది, మా అమలు రస్ట్‌లో వ్రాయబడింది, దానిని కనుగొనవచ్చు ఇక్కడ.

NEAR కోసం డెవలప్‌మెంట్ ఎలా ఉంటుందో మీరు చూడవచ్చు మరియు ఆన్‌లైన్ IDEలో ప్రయోగాలు చేయవచ్చు ఇక్కడ.

మీరు రష్యన్‌లోని అన్ని వార్తలను ఇక్కడ అనుసరించవచ్చు టెలిగ్రామ్ సమూహం మరియు లో VKontakteలో సమూహం, మరియు అధికారికంగా ఆంగ్లంలో ట్విట్టర్.

До!

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి