బ్లాక్‌చెయిన్‌లో డిజిటల్ సంతకం ఆధారంగా యాదృచ్ఛిక ఒరాకిల్

ఆలోచన నుండి అమలు వరకు: మేము ఇప్పటికే ఉన్న ఎలిప్టిక్ కర్వ్ డిజిటల్ సిగ్నేచర్ స్కీమ్‌ని నిర్ణయాత్మకంగా సవరించాము మరియు దాని ఆధారంగా బ్లాక్‌చెయిన్‌లో ధృవీకరించదగిన నకిలీ-రాండమ్ నంబర్‌లను పొందడం కోసం మేము ఫంక్షన్‌లను అందిస్తాము.

బ్లాక్‌చెయిన్‌లో డిజిటల్ సంతకం ఆధారంగా యాదృచ్ఛిక ఒరాకిల్

ఆలోచన

2018 చివరలో, వేవ్స్ బ్లాక్‌చెయిన్ చేర్చబడింది మొదటి స్మార్ట్ ఒప్పందాలు సక్రియం చేయబడ్డాయి, పొందే అవకాశం గురించి వెంటనే ప్రశ్న తలెత్తింది సూడోరాండమ్ సంఖ్యలుమీరు విశ్వసించగలరు.

ఈ ప్రశ్నపై అయోమయం చెందుతూ, నేను చివరకు ఒక నిర్ణయానికి వచ్చాను: ఏదైనా బ్లాక్‌చెయిన్ ఒక సెల్; క్లోజ్డ్ సిస్టమ్‌లో ఎంట్రోపీ యొక్క విశ్వసనీయ మూలాన్ని పొందడం అసాధ్యం.

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

వేవ్స్ బ్లాక్‌చెయిన్ ప్లాట్‌ఫారమ్ సంతకం పథకాన్ని ఉపయోగిస్తుంది EdDSA ఎంపిక Ed25519. ఈ పథకంలో, సంతకం R మరియు S విలువలను కలిగి ఉంటుంది, ఇక్కడ R యాదృచ్ఛిక విలువపై ఆధారపడి ఉంటుంది మరియు S అనేది సంతకం చేయబడిన సందేశం, ప్రైవేట్ కీ మరియు R వలె అదే యాదృచ్ఛిక సంఖ్య ఆధారంగా లెక్కించబడుతుంది. దాని కోసం ప్రత్యేకమైన ఆధారపడటం లేదు ఒక వినియోగదారు సందేశానికి అనేక చెల్లుబాటు అయ్యే సంతకాలు ఉన్నాయి.

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

కానీ, అది మారినది, అది నిర్ణయాత్మకంగా చేయడానికి వాస్తవానికి సాధ్యమే.

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

కొంచెం ఆలోచించి, స్థానిక విశ్లేషకుల మద్దతు తీసుకున్న తర్వాత, VECRO పని పథకం పుట్టింది.

VECRO అనేది వెరిఫైబుల్ ఎలిప్టిక్ కర్వ్ రాండమ్ ఒరాకిల్ యొక్క సంక్షిప్త రూపం, దీని అర్థం రష్యన్ భాషలో దీర్ఘవృత్తాకార వక్రతలపై ధృవీకరించదగిన యాదృచ్ఛిక ఒరాకిల్.

ప్రతిదీ చాలా సులభం అని తేలింది; నిర్ణయాత్మకతను సాధించడానికి, సంతకం చేయవలసిన సందేశం కనిపించే ముందు మీరు R విలువను పరిష్కరించాలి. R కట్టుబడి మరియు సంతకం చేయబడిన సందేశంలో భాగమైతే, సంతకం చేయబడిన సందేశంలో R కట్టుబడి ఉందని మరింత నిర్ధారిస్తుంది, S యొక్క విలువ వినియోగదారు సందేశం ద్వారా ప్రత్యేకంగా నిర్ణయించబడుతుంది మరియు కాబట్టి నకిలీ సంఖ్యలకు మూలంగా ఉపయోగించవచ్చు.

అటువంటి పథకంలో, R ఎలా స్థిరపరచబడిందనేది పట్టింపు లేదు; ఇది ఒరాకిల్ యొక్క బాధ్యతగా మిగిలిపోయింది. S అనేది వినియోగదారుచే ప్రత్యేకంగా నిర్ణయించబడటం ముఖ్యం, అయితే ఒరాకిల్ దానిని ప్రచురించే వరకు దాని విలువ తెలియదు. మనం కోరుకున్నదంతా!

స్థిర R గురించి మాట్లాడుతూ, గమనించండి తిరిగి ఉపయోగించిన R వివిధ సందేశాలపై సంతకం చేసినప్పుడు, ఇది EdDSA పథకంలోని ప్రైవేట్ కీని ప్రత్యేకంగా వెల్లడిస్తుంది. విభిన్న వినియోగదారు సందేశాలపై సంతకం చేయడానికి Rను మళ్లీ ఉపయోగించే అవకాశాన్ని తొలగించడం ఒరాకిల్ యజమానికి చాలా ముఖ్యమైనది. అంటే, ఏదైనా తారుమారు లేదా కుట్రతో, ఒరాకిల్ ఎల్లప్పుడూ తన ప్రైవేట్ కీని కోల్పోయే ప్రమాదం ఉంది.

మొత్తంగా, ఒరాకిల్ వినియోగదారులకు రెండు ఫంక్షన్‌లను అందించాలి: ప్రారంభీకరణ, ఇది R విలువను స్థిరీకరిస్తుంది మరియు సంతకం, విలువ Sని తిరిగి ఇస్తుంది. ఈ సందర్భంలో, జత R, S అనేది స్థిరమైన సందేశాన్ని కలిగి ఉన్న వినియోగదారు సందేశం యొక్క సాధారణ ధృవీకరించదగిన సంతకం. విలువ R మరియు ఏకపక్ష వినియోగదారు డేటా.

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

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

అమలు

కాబట్టి, ఈ ప్రాజెక్ట్‌లో VECRO అమలు చేయబడింది వినియోగదారు మరియు ఒరాకిల్ మధ్య బదిలీ లావాదేవీలను ఉపయోగించి అభ్యర్థన-ప్రతిస్పందన మోడ్‌లో వేవ్స్ బ్లాక్‌చెయిన్‌లో. అదే సమయంలో, ఒరాకిల్ ఖాతాలో స్క్రిప్ట్ ఇన్‌స్టాల్ చేయబడింది, ఇది పైన వివరించిన లాజిక్‌కు అనుగుణంగా పనిని ఖచ్చితంగా నియంత్రిస్తుంది. ఒరాకిల్ లావాదేవీలు ధృవీకరించబడ్డాయి మరియు వినియోగదారు పరస్పర చర్య యొక్క మొత్తం గొలుసు పునరుద్ధరించబడుతుంది. మొత్తం నాలుగు లావాదేవీలు తుది విలువను ధృవీకరించడంలో పాల్గొంటాయి; స్మార్ట్ కాంట్రాక్ట్ వాటిని కఠినమైన ధృవీకరణ థ్రెడ్‌తో కలుపుతుంది, అన్ని విలువలను దశలవారీగా తనిఖీ చేస్తుంది మరియు ఎటువంటి అవకతవకలకు ఆస్కారం ఉండదు.

మరోసారి, దానిని పక్కన పెట్టి, స్పష్టంగా చెప్పడానికి. ఒరాకిల్ కేవలం ప్రతిపాదిత పథకం ప్రకారం పనిచేయదు. స్థాపించబడిన దాని పని పూర్తిగా బ్లాక్‌చెయిన్ స్థాయిలో నియంత్రించబడుతుంది స్మార్ట్ ఒప్పందంతో కఠినంగా. ఎడమవైపుకు వెళ్లండి మరియు లావాదేవీ జరగదు. కాబట్టి, బ్లాక్‌చెయిన్‌లో లావాదేవీని చేర్చినట్లయితే, వినియోగదారు ఏదైనా తనిఖీ చేయవలసిన అవసరం లేదు; వందలాది నెట్‌వర్క్ నోడ్‌లు అతని కోసం ఇప్పటికే ప్రతిదీ తనిఖీ చేశాయి.

ప్రస్తుతం, వేవ్స్ మెయిన్‌నెట్‌లో ఒక VECRO నడుస్తోంది (మీరు మీ స్వంతంగా అమలు చేసుకోవచ్చు, ఇది కష్టం కాదు, కేవలం కాన్ఫిగరేషన్ ఉదాహరణను పరిశీలించండి) ప్రస్తుత కోడ్ PHPలో నడుస్తుంది (ఆన్ వేవ్స్‌కిట్, దీని గురించి నీకు ముందే చెప్పాను).

ఒరాకిల్ సేవను ఉపయోగించడానికి మీరు తప్పక:

  • ఫిక్స్ R;
    • ఒరాకిల్ అలియాస్ init@vecrకి కనీసం 0.005 వేవ్‌లను పంపండి;
    • ఒరాకిల్ నుండి వినియోగదారుకు 1 R-vecr టోకెన్‌ను బదిలీ చేయడంలో అటాచ్‌మెంట్ ఫీల్డ్‌లో R-కోడ్‌ను స్వీకరించండి;
  • సంతకం పొందండి;
    • ఒరాకిల్ అలియాస్ random@vecrకి కనీసం 0.005 వేవ్‌లను పంపండి మరియు అటాచ్‌మెంట్ ఫీల్డ్‌లో గతంలో అందుకున్న R-కోడ్ మరియు అదనపు యూజర్ డేటాను కూడా తప్పనిసరిగా సూచించాలి;
    • ఒరాకిల్ నుండి వినియోగదారుకు 1 S-vecr టోకెన్‌ను బదిలీ చేయడంలో అటాచ్‌మెంట్ ఫీల్డ్‌లో S-కోడ్‌ను స్వీకరించండి;
  • S- కోడ్‌ని నకిలీ యాదృచ్ఛిక సంఖ్యకు మూలంగా ఉపయోగించండి.

ప్రస్తుత అమలు యొక్క సూక్ష్మ నైపుణ్యాలు:

  • ఒరాకిల్‌కి పంపబడిన వేవ్‌లు గరిష్టంగా 1 వేవ్‌ల వరకు వినియోగదారుకు రిటర్న్ లావాదేవీకి కమిషన్‌గా ఉపయోగించబడతాయి;
  • R-కోడ్ అనేది 'R' అక్షరం యొక్క బైట్ మరియు 32-బైట్ బేస్58-ఎన్‌కోడ్ చేసిన R విలువ యొక్క సంయోగం;
  • అటాచ్‌మెంట్‌లో R-కోడ్ ముందుగా ఉండాలి, R-కోడ్ తర్వాత వినియోగదారు డేటా వస్తుంది;
  • S-కోడ్ అనేది 'S' అక్షరం యొక్క బైట్ మరియు S యొక్క 32-బైట్ బేస్58-ఎన్‌కోడ్ విలువ యొక్క సంయోగం;
  • S అనేది మాడ్యులో డివిజన్ యొక్క ఫలితం, కాబట్టి మీరు Sని పూర్తి 256-బిట్ సూడోరాండమ్ నంబర్‌గా ఉపయోగించలేరు (ఈ సంఖ్యను గరిష్టంగా 252-బిట్ సూడోరాండమ్ నంబర్‌గా పరిగణించవచ్చు);
  • S- కోడ్ హాష్‌ను నకిలీ-రాండమ్ నంబర్‌గా ఉపయోగించడం సరళమైన ఎంపిక.

S- కోడ్‌ని స్వీకరించడానికి ఉదాహరణ:

సాంకేతిక కోణం నుండి, ఒరాకిల్ పని కోసం పూర్తిగా సిద్ధంగా ఉంది, మీరు దానిని సురక్షితంగా ఉపయోగించవచ్చు. సగటు వినియోగదారు ఉపయోగం యొక్క కోణం నుండి, అనుకూలమైన గ్రాఫికల్ ఇంటర్ఫేస్ లేకపోవడం; ఇది వేచి ఉండవలసి ఉంటుంది.

ప్రశ్నలకు సమాధానం ఇవ్వడానికి మరియు వ్యాఖ్యలను అంగీకరించడానికి నేను సంతోషిస్తాను, ధన్యవాదాలు.

మూలం: www.habr.com

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