మేము Monero blockchain గురించి మా సిరీస్ను కొనసాగిస్తాము మరియు నేటి కథనం RingCT (రింగ్ కాన్ఫిడెన్షియల్ లావాదేవీలు) ప్రోటోకాల్పై దృష్టి సారిస్తుంది, ఇది రహస్య లావాదేవీలు మరియు కొత్త రింగ్ సంతకాలను పరిచయం చేస్తుంది. దురదృష్టవశాత్తూ, ఇది ఎలా పని చేస్తుందనే దాని గురించి ఇంటర్నెట్లో చాలా తక్కువ సమాచారం ఉంది మరియు మేము ఈ ఖాళీని పూరించడానికి ప్రయత్నించాము.
ఈ ప్రోటోకాల్ను ఉపయోగించి నెట్వర్క్ బదిలీ మొత్తాలను ఎలా దాచిపెడుతుంది, వారు క్లాసిక్ క్రిప్టోనోట్ రింగ్ సంతకాలను ఎందుకు విడిచిపెట్టారు మరియు ఈ సాంకేతికత మరింత అభివృద్ధి చెందడం గురించి మేము మాట్లాడుతాము.
ఈ ప్రోటోకాల్ Moneroలో అత్యంత సంక్లిష్టమైన సాంకేతికతల్లో ఒకటి కాబట్టి, రీడర్కు ఈ బ్లాక్చెయిన్ రూపకల్పనపై ప్రాథమిక జ్ఞానం మరియు ఎలిప్టిక్ కర్వ్ క్రిప్టోగ్రఫీపై ఉత్తీర్ణత అవసరం (ఈ జ్ఞానాన్ని బ్రష్ చేయడానికి, మీరు మా మొదటి అధ్యాయాలను చదవవచ్చు. గురించి మునుపటి వ్యాసం
RingCT ప్రోటోకాల్
క్రిప్టోనోట్ కరెన్సీలపై సాధ్యమయ్యే దాడులలో ఒకటి, పంపిన లావాదేవీ మొత్తం మరియు సమయం యొక్క జ్ఞానం ఆధారంగా బ్లాక్చెయిన్ విశ్లేషణ. ఇది అనుమతిస్తుంది
మొత్తాలను దాచాలనే ఆలోచన కొత్తది కాదని గమనించాలి. బిట్కాయిన్ కోర్ డెవలపర్ గ్రెగ్ మాక్స్వెల్ దానిని తనలో వివరించిన మొదటి వ్యక్తి
ఇతర విషయాలతోపాటు, ప్రోటోకాల్ డస్ట్ అవుట్పుట్లను కలపడంలో సమస్యలను వదిలించుకోవడానికి సహాయపడుతుంది - తక్కువ మొత్తంలో అవుట్పుట్లు (సాధారణంగా లావాదేవీల నుండి మార్పు రూపంలో స్వీకరించబడతాయి), ఇది వాటి విలువ కంటే ఎక్కువ సమస్యలను సృష్టించింది.
జనవరి 2017లో, Monero నెట్వర్క్ యొక్క హార్డ్ ఫోర్క్ జరిగింది, ఇది రహస్య లావాదేవీల ఐచ్ఛిక వినియోగాన్ని అనుమతిస్తుంది. మరియు ఇప్పటికే అదే సంవత్సరం సెప్టెంబరులో, వెర్షన్ 6 హార్డ్ ఫోర్క్తో, అటువంటి లావాదేవీలు నెట్వర్క్లో మాత్రమే అనుమతించబడ్డాయి.
RingCT ఒకేసారి అనేక మెకానిజమ్లను ఉపయోగిస్తుంది: మల్టీలేయర్డ్ లింక్డ్ స్పాంటేనియస్ అనామక గ్రూప్ సిగ్నేచర్లు (మల్టీలేయర్డ్ లింక్ చేయదగిన స్పాంటేనియస్ అనామక గ్రూప్ సిగ్నేచర్, ఇకపై MLSAGగా సూచిస్తారు), కమిట్మెంట్ స్కీమ్ (పెడెర్సెన్ కమిట్మెంట్స్) మరియు రేంజ్ ప్రూఫ్లు (ఈ పదానికి రష్యన్లోకి స్థిర అనువాదం లేదు) .
RingCT ప్రోటోకాల్ రెండు రకాల అనామక లావాదేవీలను పరిచయం చేస్తుంది: సాధారణ మరియు పూర్తి. లావాదేవీ ఒకటి కంటే ఎక్కువ ఇన్పుట్లను ఉపయోగించినప్పుడు వాలెట్ మొదటిదాన్ని ఉత్పత్తి చేస్తుంది, రెండవది - వ్యతిరేక పరిస్థితిలో. లావాదేవీ మొత్తాల ధృవీకరణలో మరియు MLSAG సంతకంతో సంతకం చేయబడిన డేటాలో అవి విభిన్నంగా ఉంటాయి (దీని గురించి మేము దిగువన మాట్లాడుతాము). అంతేకాకుండా, పూర్తి రకం లావాదేవీలు ఎన్ని ఇన్పుట్లతోనైనా రూపొందించబడతాయి, ప్రాథమిక వ్యత్యాసం లేదు. పుస్తకంలో
MLSAG సంతకం
సంతకం చేసిన లావాదేవీ ఇన్పుట్లు ఏమిటో గుర్తుంచుకోండి. ప్రతి లావాదేవీ కొంత నిధులను ఖర్చు చేస్తుంది మరియు ఉత్పత్తి చేస్తుంది. లావాదేవీ అవుట్పుట్లను సృష్టించడం ద్వారా నిధుల ఉత్పత్తి జరుగుతుంది (ప్రత్యక్ష సారూప్యత బిల్లులు), మరియు లావాదేవీ ఖర్చు చేసే అవుట్పుట్ (అన్నింటికంటే, నిజ జీవితంలో మనం నోట్లను ఖర్చు చేస్తాము) ఇన్పుట్ అవుతుంది (జాగ్రత్తగా ఉండండి, గందరగోళం చెందడం చాలా సులభం. ఇక్కడ).
ఇన్పుట్ బహుళ అవుట్పుట్లను సూచిస్తుంది, కానీ ఒకదానిని మాత్రమే ఖర్చు చేస్తుంది, తద్వారా అనువాద చరిత్రను విశ్లేషించడం కష్టతరం చేయడానికి “స్మోక్స్క్రీన్”ని సృష్టిస్తుంది. లావాదేవీ ఒకటి కంటే ఎక్కువ ఇన్పుట్లను కలిగి ఉంటే, అటువంటి నిర్మాణాన్ని మాతృకగా సూచించవచ్చు, ఇక్కడ అడ్డు వరుసలు ఇన్పుట్లు మరియు నిలువు వరుసలు మిశ్రమ అవుట్పుట్లు. లావాదేవీ దాని అవుట్పుట్లను ఖచ్చితంగా ఖర్చు చేస్తుందని నెట్వర్క్కు నిరూపించడానికి (వాటి రహస్య కీలను తెలుసు), ఇన్పుట్లు రింగ్ సంతకంతో సంతకం చేయబడతాయి. అటువంటి సంతకం సంతకం చేసిన వ్యక్తికి ఏదైనా నిలువు వరుసలలోని అన్ని అంశాలకు సంబంధించిన రహస్య కీలు తెలుసని హామీ ఇస్తుంది.
రహస్య లావాదేవీలు ఇకపై క్లాసిక్ వాటిని ఉపయోగించవు
వారు ఒకేసారి అనేక ఇన్పుట్లను సంతకం చేస్తారు కాబట్టి వాటిని బహుళస్థాయి అని పిలుస్తారు, వీటిలో ప్రతి ఒక్కటి అనేక ఇతర వాటితో కలుపుతారు, అనగా ఒక మ్యాట్రిక్స్ సంతకం చేయబడింది మరియు ఒక వరుస కాదు. మేము తరువాత చూస్తాము, ఇది సంతకం పరిమాణాన్ని ఆదా చేయడంలో సహాయపడుతుంది.
2 రియల్ అవుట్పుట్లను వెచ్చించే మరియు మిక్సింగ్ కోసం బ్లాక్చెయిన్ నుండి m - 1 యాదృచ్ఛిక వాటిని ఉపయోగించే లావాదేవీ ఉదాహరణను ఉపయోగించి, రింగ్ సంతకం ఎలా ఏర్పడుతుందో చూద్దాం. మనం ఖర్చు చేసే అవుట్పుట్ల పబ్లిక్ కీలను సూచిస్తాము
, మరియు వాటికి అనుగుణంగా కీలక చిత్రాలు: అందువలన, మేము పరిమాణం యొక్క మాతృకను పొందుతాము 2 x మీ. ముందుగా, మేము ప్రతి జత అవుట్పుట్లకు సవాళ్లు అని పిలవబడే వాటిని లెక్కించాలి:
మేము వాటి పబ్లిక్ కీలను ఉపయోగించి ఖర్చు చేసే అవుట్పుట్లతో గణనలను ప్రారంభిస్తాము:మరియు యాదృచ్ఛిక సంఖ్యలుఫలితంగా, మేము ఈ క్రింది విలువలను పొందుతాము:
, మేము సవాలును లెక్కించడానికి ఉపయోగిస్తాము
తదుపరి జత అవుట్పుట్లు (మేము ఎక్కడ ప్రత్యామ్నాయం చేస్తున్నామో అర్థం చేసుకోవడం సులభం చేయడానికి, మేము ఈ విలువలను వేర్వేరు రంగులలో హైలైట్ చేసాము). కింది అన్ని విలువలు మొదటి దృష్టాంతంలో ఇచ్చిన సూత్రాలను ఉపయోగించి సర్కిల్లో లెక్కించబడతాయి. గణించాల్సిన చివరి విషయం ఏమిటంటే ఒక జత నిజమైన అవుట్పుట్ల కోసం సవాలు.
మనం చూడగలిగినట్లుగా, నిజమైన అవుట్పుట్లను కలిగి ఉన్న నిలువు వరుసలు తప్ప అన్ని నిలువు వరుసలు యాదృచ్ఛికంగా రూపొందించబడిన సంఖ్యలను ఉపయోగిస్తాయి. కోసం π- కాలమ్ మనకు అవి కూడా అవసరం. రూపాంతరం చెందుదాంs లో:
సంతకం కూడా ఈ విలువలన్నింటిలో ఒకటి:
ఈ డేటా తర్వాత లావాదేవీకి వ్రాయబడుతుంది.
మనం చూడగలిగినట్లుగా, MLSAG ఒక సవాలును మాత్రమే కలిగి ఉంది c0, ఇది సంతకం పరిమాణంలో సేవ్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది (దీనికి ఇప్పటికే చాలా స్థలం అవసరం). ఇంకా, ఏదైనా ఇన్స్పెక్టర్, డేటాను ఉపయోగించి, c1,..., cm విలువలను పునరుద్ధరిస్తుంది మరియు దానిని తనిఖీ చేస్తుంది. అందువలన, మా రింగ్ మూసివేయబడింది మరియు సంతకం ధృవీకరించబడింది.
పూర్తి రకం RingCT లావాదేవీల కోసం, మిశ్రమ అవుట్పుట్లతో మాతృకకు మరో లైన్ జోడించబడుతుంది, అయితే మేము దీని గురించి క్రింద మాట్లాడుతాము.
పెడెర్సన్ కమిట్మెంట్స్
మోనెరో కమిట్మెంట్లు బదిలీల మొత్తాలను దాచడానికి మరియు అత్యంత సాధారణ ఎంపికను ఉపయోగించడానికి ఉపయోగించబడతాయి - పెడెర్సెన్ కమిట్మెంట్లు. మార్గం ద్వారా, ఒక ఆసక్తికరమైన వాస్తవం - మొదట డెవలపర్లు సాధారణ మిక్సింగ్ ద్వారా మొత్తాలను దాచాలని ప్రతిపాదించారు, అంటే, అనిశ్చితిని పరిచయం చేయడానికి ఏకపక్ష మొత్తాలకు అవుట్పుట్లను జోడించడం, కానీ వారు కట్టుబాట్లకు మారారు (వారు ఆదా చేసిన వాస్తవం కాదు. లావాదేవీ పరిమాణం, మేము క్రింద చూస్తాము).
సాధారణంగా, నిబద్ధత ఇలా కనిపిస్తుంది:
పేరు C - నిబద్ధత యొక్క అర్థం, a - దాచిన మొత్తం, H దీర్ఘవృత్తాకార వక్రరేఖపై స్థిర బిందువు (అదనపు జనరేటర్), మరియు x — ఒకరకమైన ఏకపక్ష ముసుగు, యాదృచ్ఛికంగా ఉత్పన్నమయ్యే దాచే అంశం. థర్డ్ పార్టీ నిబద్ధత విలువను ఊహించలేనంతగా ఇక్కడ ముసుగు అవసరం.
కొత్త అవుట్పుట్ను రూపొందించినప్పుడు, వాలెట్ దాని కోసం నిబద్ధతను గణిస్తుంది మరియు ఖర్చు చేసినప్పుడు, అది ఉత్పత్తి సమయంలో లెక్కించిన విలువను తీసుకుంటుంది లేదా లావాదేవీ రకాన్ని బట్టి దాన్ని తిరిగి గణిస్తుంది.
రింగ్సిటి సింపుల్
సాధారణ రింగ్సిటి లావాదేవీల విషయంలో, లావాదేవీ ఇన్పుట్ల మొత్తానికి సమానమైన అవుట్పుట్లను సృష్టించిందని నిర్ధారించడానికి (సన్నగాలి నుండి డబ్బును ఉత్పత్తి చేయలేదు), మొదటి మరియు రెండవ కట్టుబాట్ల మొత్తం అవసరం అవి ఒకేలా ఉంటాయి, అంటే:
నిబద్ధత కమీషన్లు దీనిని కొద్దిగా భిన్నంగా పరిగణిస్తాయి - ముసుగు లేకుండా:
పేరు a - కమీషన్ మొత్తం, ఇది బహిరంగంగా అందుబాటులో ఉంటుంది.
ఈ విధానం మేము వాటిని బహిర్గతం చేయకుండా అదే మొత్తాలను ఉపయోగిస్తున్నామని ఆధారపడే పక్షానికి నిరూపించడానికి అనుమతిస్తుంది.
విషయాలు స్పష్టంగా చెప్పడానికి, ఒక ఉదాహరణ చూద్దాం. ఒక లావాదేవీ 10 మరియు 5 XMR యొక్క రెండు అవుట్పుట్లను (అంటే అవి ఇన్పుట్లుగా మారుతాయి) మరియు 12 XMR విలువైన మూడు అవుట్పుట్లను ఉత్పత్తి చేస్తుందని అనుకుందాం: 3, 4 మరియు 5 XMR. అదే సమయంలో, అతను 3 XMR కమీషన్ చెల్లిస్తాడు. ఈ విధంగా, ఖర్చు చేసిన డబ్బు మొత్తం మరియు ఉత్పత్తి చేయబడిన మొత్తం మరియు కమీషన్ 15 XMRకి సమానం. కట్టుబాట్లను లెక్కించడానికి ప్రయత్నిద్దాం మరియు వాటి మొత్తాలలో తేడాను చూద్దాం (గణితాన్ని గుర్తుంచుకో):
సమీకరణం కలిసేందుకు, మనకు ఇన్పుట్ మరియు అవుట్పుట్ మాస్క్ల మొత్తాలు ఒకేలా ఉండాలని ఇక్కడ చూస్తాము. దీన్ని చేయడానికి, వాలెట్ యాదృచ్ఛికంగా ఉత్పత్తి చేస్తుంది x1, y1, y2 మరియు y3, మరియు మిగిలినవి x2 ఇలా లెక్కిస్తుంది:
ఈ మాస్క్లను ఉపయోగించడం ద్వారా, మేము ఖర్చు చేసిన దానికంటే ఎక్కువ నిధులను ఉత్పత్తి చేయలేదని, మొత్తాన్ని బహిర్గతం చేయకుండా ఏ వెరిఫైయర్కైనా నిరూపించవచ్చు. అసలు, సరియైనదా?
రింగ్సిటి నిండింది
పూర్తి RingCT లావాదేవీలలో, బదిలీ మొత్తాలను తనిఖీ చేయడం కొంచెం క్లిష్టంగా ఉంటుంది. ఈ లావాదేవీలలో, వాలెట్ ఇన్పుట్ల కోసం కమిట్మెంట్లను తిరిగి లెక్కించదు, కానీ అవి రూపొందించబడినప్పుడు లెక్కించిన వాటిని ఉపయోగిస్తుంది. ఈ సందర్భంలో, మనం ఇకపై సున్నాకి సమానమైన మొత్తాలలో వ్యత్యాసాన్ని పొందలేమని భావించాలి, కానీ బదులుగా:
ఇది z - ఇన్పుట్ మరియు అవుట్పుట్ మాస్క్ల మధ్య వ్యత్యాసం. మేము పరిగణనలోకి తీసుకుంటే zG పబ్లిక్ కీగా (ఇది వాస్తవమైనది), అప్పుడు z అనేది ప్రైవేట్ కీ. అందువలన, మాకు పబ్లిక్ మరియు సంబంధిత ప్రైవేట్ కీలు తెలుసు. చేతిలో ఉన్న ఈ డేటాతో, మేము దీనిని MLSAG రింగ్ సిగ్నేచర్లో కలిపి అవుట్పుట్ల పబ్లిక్ కీలతో పాటు ఉపయోగించవచ్చు:
ఈ విధంగా, చెల్లుబాటు అయ్యే రింగ్ సంతకం మనకు నిలువు వరుసలలోని అన్ని ప్రైవేట్ కీలు తెలుసని నిర్ధారిస్తుంది మరియు లావాదేవీ ఖర్చు చేసిన దానికంటే ఎక్కువ నిధులను ఉత్పత్తి చేయకపోతే మాత్రమే మేము చివరి వరుసలోని ప్రైవేట్ కీని తెలుసుకోగలము. మార్గం ద్వారా, “కట్టుబాట్ల మొత్తంలో తేడా ఎందుకు సున్నాకి దారితీయదు” అనే ప్రశ్నకు సమాధానం ఇక్కడ ఉంది - అయితే zG = 0, అప్పుడు మేము నిజమైన అవుట్పుట్లతో నిలువు వరుసను విస్తరిస్తాము.
ఫండ్స్ అందుకున్న వ్యక్తికి అతనికి ఎంత డబ్బు పంపబడిందో ఎలా తెలుస్తుంది? ఇక్కడ ప్రతిదీ చాలా సులభం - లావాదేవీని పంపినవారు మరియు స్వీకర్త మార్పిడి కీలను Diffie-Hellman ప్రోటోకాల్ని ఉపయోగించి, లావాదేవీ కీ మరియు గ్రహీత వీక్షణ కీని ఉపయోగించి షేర్ చేసిన రహస్యాన్ని లెక్కించండి. పంపినవారు లావాదేవీకి సంబంధించిన ప్రత్యేక ఫీల్డ్లలో ఈ షేర్ చేసిన కీతో గుప్తీకరించబడిన అవుట్పుట్ మొత్తాల గురించి డేటాను వ్రాస్తారు.
పరిధి రుజువులు
మీరు కమిట్మెంట్లలో మొత్తంగా ప్రతికూల సంఖ్యను ఉపయోగిస్తే ఏమి జరుగుతుంది? ఇది అదనపు నాణేల ఉత్పత్తికి దారితీయవచ్చు! ఈ ఫలితం ఆమోదయోగ్యం కాదు, కాబట్టి మేము ఉపయోగించే మొత్తాలు ప్రతికూలంగా లేవని మేము హామీ ఇవ్వాలి (ఈ మొత్తాలను బహిర్గతం చేయకుండా, లేకపోతే చాలా పని ఉంది మరియు అన్నీ ఫలించవు). మరో మాటలో చెప్పాలంటే, మొత్తం ఇంటర్వెల్లో ఉందని మనం నిరూపించాలి [0, 2n - 1].
దీన్ని చేయడానికి, ప్రతి అవుట్పుట్ మొత్తం బైనరీ అంకెలుగా విభజించబడింది మరియు ప్రతి అంకెకు నిబద్ధత విడిగా లెక్కించబడుతుంది. ఇది ఎలా జరుగుతుందో ఒక ఉదాహరణతో చూడటం మంచిది.
మన మొత్తాలు చిన్నవి మరియు 4 బిట్లకు సరిపోతాయని అనుకుందాం (ఆచరణలో ఇది 64 బిట్లు), మరియు మేము 5 XMR విలువైన అవుట్పుట్ను సృష్టిస్తాము. మేము ప్రతి వర్గానికి సంబంధించిన కమిట్మెంట్లను మరియు మొత్తం మొత్తానికి మొత్తం నిబద్ధతను గణిస్తాము:
తర్వాత, ప్రతి నిబద్ధత సర్రోగేట్తో కలపబడుతుంది (Ci-2iH) మరియు 2015లో గ్రెగ్ మాక్స్వెల్ ప్రతిపాదించిన బోరోమియో రింగ్ సిగ్నేచర్ (మరొక రింగ్ సిగ్నేచర్)తో జతగా సంతకం చేయబడింది (మీరు దీని గురించి మరింత చదవగలరు
కలిసి తీసుకుంటే, ఇది రేంజ్ ప్రూఫ్ అని పిలువబడుతుంది మరియు కమిట్మెంట్లు పరిధిలో మొత్తాలను ఉపయోగిస్తాయని నిర్ధారించుకోవడానికి మిమ్మల్ని అనుమతిస్తుంది [0, 2n - 1].
తరువాత ఏమిటి?
ప్రస్తుత అమలులో, పరిధి ప్రూఫ్లు చాలా స్థలాన్ని తీసుకుంటాయి - ఒక్కో అవుట్పుట్కు 6176 బైట్లు. ఇది పెద్ద లావాదేవీలకు దారితీస్తుంది మరియు అధిక రుసుములకు దారి తీస్తుంది. Monero లావాదేవీ పరిమాణాన్ని తగ్గించడానికి, డెవలపర్లు Borromeo సంతకాలకి బదులుగా బుల్లెట్ప్రూఫ్లను ప్రవేశపెడుతున్నారు - బిట్వైస్ కమిట్మెంట్లు లేని రేంజ్ ప్రూఫ్ మెకానిజం.
మీ ప్రశ్నలను అడగండి, క్రిప్టోకరెన్సీ రంగంలో సాంకేతికతల గురించి కొత్త కథనాల కోసం అంశాలను సూచించండి మరియు మా గుంపుకు కూడా సభ్యత్వాన్ని పొందండి
మూలం: www.habr.com