శూన్య-జ్ఞాన నిరూపణలతో ఎథీరియంపై గోప్యత యాప్లను ఎలా నిర్మించాలి

ఎథీరియం రూపకల్పన ద్వారానే పూర్తిగా పబ్లిక్గా ఉంటుంది. ప్రతి చిరునామా, బ్యాలెన్స్, లావాదేవీ, కాంట్రాక్ట్ కాల్ మరియు ఈవెంట్లు బ్లాక్ ఎక్స్ప్లోరర్ ఉన్న ఎవరికైనా కనిపిస్తాయి. మీకు ధృవీకరణ అవసరమైనప్పుడు ఆ పారదర్శకత ఉపయోగపడుతుంది. వినియోగదారులు ప్రతి చర్యను ఒకే వాలెట్కు లింక్ చేయకుండా ఓటు వేయడానికి, క్లెయిమ్ చేయడానికి, ఉపసంహరణ చేయడానికి లేదా సభ్యత్వాన్ని నిరూపించుకోవడానికి ప్రయత్నించినప్పుడు ఇది ఒక సమస్యగా మారుతుంది.
అజ్ఞాత సభ్యత్వం అనేది ఎథీరియంపై పెద్ద తరగతి గోప్యత యాప్లకు శక్తినిచ్చే పునర్వినియోగ నమూనా. ప్రజలు ముందుగా నమోదు చేసుకుంటారు, ఆపై వారు ఏ సభ్యులో వెల్లడించకుండానే తాము ఆ సమూహానికి చెందినవారమని నిరూపించుకుంటారు. శూన్య-జ్ఞాన నిరూపణ అనేది రిజిస్ట్రేషన్ వాలెట్ మరియు పని చేసే వాలెట్ మధ్య వారధి, మరియు ఆ వారధిని ఎవరు దాటారో అది వెల్లడించదు.
చుట్టుపక్కల ఉన్న ఉత్పత్తి మారుతుంది, కానీ గోప్యత మూల నిర్మాణం అలాగే ఉంటుంది.
నమూనా, అజ్ఞాత ఓటింగ్ ద్వారా వివరించబడింది
ఈ నమూనాలో మూడు భాగాలు ఉన్నాయి. ఒక నిబద్ధత ప్రతి సభ్యుడిని నమోదు చేస్తుంది. ఒక మెర్కిల్ వృక్షం ఆ నిబద్ధతలను ఒక సమూహంగా మారుస్తుంది. ఒక నిరూపణ మరియు ఒక నల్లిఫైయర్ (nullifier) ఏ సభ్యుడు పని చేశాడో వెల్లడించకుండా ఒక సభ్యుడిని ఒకసారి పని చేయడానికి అనుమతిస్తాయి.
మొదటి దశ: నమోదు చేసుకోవడం
ప్రతి ఓటరు ఆఫ్చైన్లో రహస్యం మరియు నల్లిఫైయర్ అనే రెండు ప్రైవేట్ విలువలను సృష్టిస్తారు. ఓటరు ఆ విలువలను పబ్లిక్ నిబద్ధతగా హాష్ చేస్తారు, ఆపై ఆ నిబద్ధతను ఆన్చైన్లో నమోదు చేస్తారు.
నిబద్ధత అనేది పబ్లిక్ రిజిస్ట్రేషన్ రికార్డ్. రహస్యం మరియు నల్లిఫైయర్ అనేవి ఓటరుకు తర్వాత అవసరమయ్యే ప్రైవేట్ నోట్. ఆ నోట్ను కోల్పోతే ఓటరు సభ్యత్వాన్ని నిరూపించుకోలేరు. అది లీక్ అయితే, వినియోగదారుడి స్థానంలో వేరొకరు ఓటు వేయగలుగుతారు.
నిబద్ధత అనేది ఒక హాష్ కాబట్టి, పరిశీలకులు దానిలోని ప్రైవేట్ విలువలను తిరిగి పొందలేరు. ఆ రిజిస్ట్రేషన్ను తర్వాత ఎవరు ఉపయోగిస్తారో వెల్లడించకుండా "ఎవరో నమోదు చేసుకున్నారు" అని నిబద్ధత చెబుతుంది.
రెండవ దశ: సమూహాన్ని నిర్మించడం
ఎక్కువ మంది ఓటర్లు నమోదు చేసుకున్న కొద్దీ, యాప్ వారి నిబద్ధతలను ఒక మెర్కిల్ వృక్షంలోకి సేకరిస్తుంది. మెర్కిల్ వృక్షం విలువల సుదీర్ఘ జాబితాను ఒకే హాష్గా కుదిస్తుంది, దీనిని రూట్ (root) అని పిలుస్తారు. జాబితాలోని ఏదైనా విలువను మార్చితే హాష్ మారుతుంది, కాబట్టి రూట్ మొత్తం సమితికి ట్యాంపర్-ఎవిడెంట్ (tamper-evident) సారాంశంగా పనిచేస్తుంది.
ఆ వృక్షమే మీ అజ్ఞాత సమితి. వృక్షంలో పది మంది వినియోగదారులు ఉంటే, ఒక పరిశీలకుడు తదుపరి చర్యను ఆ పది మందిలో ఒకరికి కుదించగలడు. వృక్షంలో పది వేల మంది వినియోగదారులు ఉంటే, ఆ చర్యను ఒక వ్యక్తికి లింక్ చేయడం చాలా కష్టం. గూఢలిపి శాస్త్రం సరైనదే అయినప్పటికీ, చిన్న అజ్ఞాత సమితి ఉన్న ప్రైవేట్ యాప్ సాధారణంగా అంత గోప్యంగా ఉండదు.
మూడవ దశ: అజ్ఞాతంగా వ్యవహరించడం
పోల్ ప్రారంభమైనప్పుడు, నిబద్ధతను నమోదు చేసిన అదే వాలెట్ నుండి ఓటరు ఓటు వేయకూడదు. రిజిస్ట్రేషన్ వాలెట్ నుండి ఓటు వేయడం వలన ఓటు నేరుగా రిజిస్ట్రెంట్కు లింక్ అవుతుంది మరియు గోప్యత పనిని రద్దు చేస్తుంది. బదులుగా, ఓటరు ఒక శూన్య-జ్ఞాన నిరూపణను సృష్టిస్తారు. ఈ స్టేట్మెంట్ ఒక సర్క్యూట్గా ఎన్కోడ్ చేయబడుతుంది, అది ఇలా చెబుతుంది, "నమోదిత నిబద్ధతను ఉత్పత్తి చేసే ప్రైవేట్ విలువలు నాకు తెలుసు, మరియు నేను ఈ పోల్ కోసం సరైన నల్లిఫైయర్ హాష్ను వెల్లడిస్తున్నాను."
ఈ నిరూపణ స్టేట్మెంట్ నిజమని ధృవీకర్త కాంట్రాక్ట్ను ఒప్పిస్తుంది. ఇది రహస్యాన్ని, నల్లిఫైయర్ను లేదా ఏ నిబద్ధత ఉపయోగించబడిందో వెల్లడించదు.
నల్లిఫైయర్ అనేది డబుల్ ఓటింగ్ను నిరోధిస్తుంది. నిరూపణతో పాటు, ఓటరు ఒక నల్లిఫైయర్ హాష్ను ప్రచురిస్తారు. ఓటింగ్ను అంగీకరించిన తర్వాత ఓటింగ్ కాంట్రాక్ట్ ఆ హాష్ను నిల్వ చేస్తుంది. అదే పోల్ కోసం అదే ప్రైవేట్ నోట్ మళ్లీ ఉపయోగించబడితే, అది అదే నల్లిఫైయర్ హాష్ను ఉత్పత్తి చేస్తుంది మరియు కాంట్రాక్ట్ రెండవ ఓటును తిరస్కరిస్తుంది. నిరూపణతో కలిపి, ఇది కాంట్రాక్ట్కు ఎవరో ఒక నమోదిత ఓటరు ఒకసారి పని చేశారని మాత్రమే తెలిసేలా చేస్తుంది, ఎవరు అనేది కాదు.
పునర్వినియోగ గేట్
అదే నిరూపణ-మరియు-నల్లిఫైయర్ జత ఓటింగ్కు మించి పనిచేస్తుంది. ఓటింగ్ కథనాన్ని తీసివేస్తే, మీకు స్మార్ట్ కాంట్రాక్ట్ ఫంక్షన్ల కోసం ఒక గోప్యత గేట్ ఉంటుంది.
ఫంక్షన్ రన్ అయ్యే ముందు, కాంట్రాక్ట్ మెర్కల్ రూట్ను తనిఖీ చేస్తుంది, నిరూపణను ధృవీకరిస్తుంది, నల్లిఫైయర్ హాష్ ఉపయోగించబడలేదని నిర్ధారిస్తుంది మరియు పబ్లిక్ ఇన్పుట్లను సరైన యాప్, చైన్, పోల్, క్లెయిమ్ లేదా ఉపసంహరణకు కట్టుబడి ఉండేలా చేస్తుంది. ఆ తనిఖీలు పాస్ అయితే, అది నల్లిఫైయర్ను ఉపయోగించినట్లుగా గుర్తిస్తుంది మరియు మిగిలిన ఫంక్షన్ను రన్ చేస్తుంది.
ఆ గేట్ను ఓటు ముందు ఉంచితే మీకు అజ్ఞాత ఓటింగ్ వస్తుంది. దానిని ఎయిర్డ్రాప్ క్లెయిమ్ ముందు ఉంచితే మీకు అజ్ఞాత క్లెయిమ్లు వస్తాయి. దానిని ఉపసంహరణ ఫంక్షన్ ముందు ఉంచితే మీకు మిక్సర్-శైలి ఉపసంహరణ ప్రవాహం యొక్క ప్రధాన భాగం వస్తుంది. అదే నిబద్ధత వృక్షం, అదే నల్లిఫైయర్ ఆలోచన, అదే నిరూపణ నమూనా. మారేది ఫంక్షన్ బాడీ మరియు చుట్టుపక్కల ఉన్న యాప్ లాజిక్ మాత్రమే.
ఏది ఎక్కడ రన్ అవుతుంది
ప్రైవేట్ పని సాధారణంగా ఆఫ్చైన్లో జరుగుతుంది. వినియోగదారుడు నోట్ను నిల్వ చేస్తారు, మరియు క్లయింట్ యాప్ సాక్ష్యాన్ని నిర్మిస్తుంది మరియు నిరూపణను ఉత్పత్తి చేయడానికి ప్రూవర్ను రన్ చేస్తుంది. ఒక ఇండెక్సర్ నిబద్ధతలను మరియు మెర్కల్ రూట్లను ట్రాక్ చేస్తుంది. ఒక బండ్లర్ వాడుకరి కార్యకలాపాన్ని ఆన్చైన్లో ప్రచారం చేస్తుంది మరియు ఒక ERC-4337 చెల్లింపుదారు గ్యాస్ను స్పాన్సర్ చేస్తుంది, కాబట్టి కొత్త వాలెట్కు ముందుగా వినియోగదారుడికి తెలిసిన వాలెట్ నుండి ETH అవసరం లేదు.
పబ్లిక్ అమలు ఆన్చైన్లో జరుగుతుంది. ధృవీకర్త కాంట్రాక్ట్ నిరూపణను తనిఖీ చేస్తుంది. యాప్ కాంట్రాక్ట్ చెల్లుబాటు అయ్యే రూట్లను మరియు ఉపయోగించని నల్లిఫైయర్లను తనిఖీ చేస్తుంది, నల్లిఫైయర్ హాష్ను నిల్వ చేస్తుంది మరియు పబ్లిక్ చర్యను రన్ చేస్తుంది.
సున్నితమైన UX అనేది నోట్ నిర్వహణ. రహస్యం మరియు నల్లిఫైయర్ను కీల్లాగా పరిగణించండి. వాటిని అనలిటిక్స్, లాగ్లు, URLలు, ఎర్రర్ రిపోర్ట్లు లేదా సాధారణ సర్వర్-సైడ్ టెలిమెట్రీలో ఉంచవద్దు. నోట్ లీక్ అయిన తర్వాత, నిరూపణ ఎంత బలంగా ఉన్నా గోప్యత పోతుంది.
సాధనాలు మెరుగుపడ్డాయి
మీరు అంతర్లీన గూఢలిపి శాస్త్రాన్ని చేతితో కోడ్ చేయాల్సిన అవసరం లేదు. ఒక సాధారణ మార్గం ఏమిటంటే, సర్క్యూట్ను ఉన్నత-స్థాయి శూన్య-జ్ఞాన భాషలో వ్రాయడం, ఒక Solidity ధృవీకర్తను రూపొందించడం మరియు యాప్ కాంట్రాక్ట్ నుండి ఆ ధృవీకర్తను కాల్ చేయడం.
సరైన స్టాక్ పనిపై ఆధారపడి ఉంటుంది. snarkjsతో కూడిన Circom అనేది యాప్-స్థాయి సర్క్యూట్ల కోసం దీర్ఘకాలంగా స్థిరపడిన మార్గం. Barretenbergతో కూడిన Noir అనేది కొత్త డెవలపర్-స్నేహపూర్వక మార్గం. Halo2 మరియు gnark అనేవి తక్కువ-స్థాయి సర్క్యూట్ లైబ్రరీలు. RISC Zero లేదా SP1 వంటి zkVMలు సాధారణ ప్రోగ్రామ్లను నిరూపిస్తాయి, కానీ చిన్న కస్టమ్ సర్క్యూట్ కంటే నిరూపించడానికి ఇవి ఖరీదైనవి కావచ్చు.
అజ్ఞాత సభ్యత్వం కోసం, మీ స్వంత సర్క్యూట్ను వ్రాయడానికి ముందు ఇప్పటికే ఉన్న ప్రోటోకాల్ను చేరుకోండి. Semaphore సమూహ సభ్యత్వాన్ని మరియు నల్లిఫైయర్-ఆధారిత డబుల్-యూజ్ నివారణను కాంట్రాక్ట్లు మరియు JavaScript లైబ్రరీలలో ప్యాకేజీ చేస్తుంది. ప్రైవేట్ ఓటింగ్ మరియు పరిపాలన కోసం, MACI అనేది ప్రత్యేక మార్గం ఎందుకంటే ఇది యాంటీ-కొల్యూజన్ లక్షణాలను జోడిస్తుంది. కొత్త సర్క్యూట్ల కంటే పరిణతి చెందిన ప్రోటోకాల్లు తరచుగా సురక్షితమైనవి.
నిరూపణ మాత్రమే సరిపోదు
వాలెట్ ప్రవాహం లింక్ను లీక్ చేస్తే ఖచ్చితమైన నిరూపణ కూడా విఫలమవుతుంది. వాలెట్ A నుండి నమోదు చేసుకుని, ఆ తర్వాత వాలెట్ A నుండి పని చేస్తే, గమనిస్తున్న ఎవరైనా లావాదేవీలను కనెక్ట్ చేయవచ్చు. పని చేయడానికి ముందు వాలెట్ A నుండి వాలెట్ Bకి నిధులు సమకూర్చండి, మరియు ఆ నిధుల లావాదేవీ అదే సమస్యను సృష్టిస్తుంది.
అందుకే బండ్లర్లు మరియు చెల్లింపుదారులు ముఖ్యం. పని చేసే వాలెట్ కొత్తదిగా ఉండాలి, మరియు వినియోగదారుడు చర్య నుండి వేరు చేయడానికి ప్రయత్నిస్తున్న వాలెట్ నుండి దానికి ETH స్వీకరించాల్సిన అవసరం ఉండకూడదు.
ఆఫ్చైన్లో కూడా ఇదే సమస్య ఉంది. ఒకే IP చిరునామా, RPC ప్రొవైడర్ లేదా సెషన్ నుండి రిజిస్ట్రేషన్ మరియు చర్య లావాదేవీలను సమర్పించడం వలన సర్క్యూట్ అందించే గోప్యత బలహీనపడుతుంది. ఫ్రంటెండ్లు అనలిటిక్స్, లోకల్ స్టోరేజ్ మరియు సపోర్ట్ లాగ్ల ద్వారా లీక్ కావచ్చు. ఒక శూన్య-జ్ఞాన నిరూపణ నిరూపణ లోపల ఉన్న విలువలను దాచిపెడుతుంది. ఇది లావాదేవీ చుట్టూ ఉన్న ప్రతిదాన్ని దాచదు.
పబ్లిక్ ఇన్పుట్లు గోప్యత యాప్లు విఫలమయ్యే మరొక ప్రదేశం. సర్క్యూట్లో పబ్లిక్గా గుర్తించబడినది, ఈవెంట్గా విడుదల చేయబడినది, కాల్ డేటాలో చేర్చబడినది లేదా కాంట్రాక్ట్ ద్వారా నిల్వ చేయబడినది ఏదైనా కనిపిస్తుంది. Solidity కాంట్రాక్ట్పై యాక్సెస్ కంట్రోల్ వలె పబ్లిక్ ఇన్పుట్లను జాగ్రత్తగా సమీక్షించండి.
ఇది బిల్డర్ల కోసం ఏమి మారుస్తుంది
ఎథీరియంపై గోప్యతను అందించవచ్చు. బిల్డర్లు ఈ భాగాలను నిజమైన అప్లికేషన్లుగా కూర్చవచ్చు. స్టాక్ అనేది ప్రైవేట్ స్టేట్మెంట్ కోసం ఒక సర్క్యూట్, నిరూపణ తనిఖీ కోసం ఒక ధృవీకర్త, పబ్లిక్ నిబంధనల కోసం ఒక యాప్ కాంట్రాక్ట్, మెర్కిల్ డేటా కోసం ఒక ఇండెక్సర్, మరియు అన్లింకబుల్ సమర్పణ మరియు గ్యాస్ స్పాన్సర్షిప్ కోసం ఒక బండ్లర్ ప్లస్ చెల్లింపుదారు.
కష్టమైన భాగాలు ఉత్పత్తి రూపకల్పన, కీ నిర్వహణ, మెటాడేటా పరిశుభ్రత, ఆడిట్లు మరియు అజ్ఞాత సమితిని పెంచడం. వాటిలో దేనినైనా తప్పుగా చేస్తే నిరూపణ ఇచ్చిన గోప్యత పోతుంది.
మరింత చదవడానికి
- శూన్య-జ్ఞాన నిరూపణలు (ethereum.org) (opens in a new tab)
- Semaphore డాక్యుమెంటేషన్ (opens in a new tab)
- MACI డాక్యుమెంటేషన్ (opens in a new tab)
- Circom డాక్యుమెంటేషన్ (opens in a new tab)
- Noir డాక్యుమెంటేషన్ (opens in a new tab)
- Halo2 పుస్తకం (opens in a new tab)
- gnark డాక్యుమెంటేషన్ (opens in a new tab)
- RISC Zero డాక్యుమెంటేషన్ (opens in a new tab)
- SP1 డాక్యుమెంటేషన్ (opens in a new tab)
- EIP-4337: ఎంట్రీపాయింట్ కాంట్రాక్ట్ ద్వారా ఖాతా నైరూప్యత (opens in a new tab)
పేజీ చివరి నవీకరణ: 28 మే, 2026