निजी सूचना पुनर्प्राप्ति
संक्षेप में
- निजी सूचना पुनर्प्राप्ति, या PIR, किसी डिवाइस को सर्वर के डेटाबेस से एक आइटम इस तरह प्राप्त करने देती है कि सर्वर को यह पता न चले कि कौन-सा आइटम मांगा गया था
- Zcash को इसकी आवश्यकता इसलिए है क्योंकि एक private wallet सर्वर से यह नहीं पूछ सकता कि कौन-से लेनदेन उसके अपने हैं, बिना अपनी पहचान उजागर किए
- आज wallet अपनी आवश्यकता से कहीं अधिक डेटा डाउनलोड और स्कैन करते हैं, और यही syncing के धीमा होने का एक बड़ा कारण है
- PIR किसी wallet को केवल अपना ही डेटा निजी रूप से प्राप्त करने देगा, जिससे यह bottleneck हट जाएगा और privacy भी बनी रहेगी
- यह Zcash के लिए शोध का एक सक्रिय क्षेत्र है, सिद्धांत में बहुत शक्तिशाली है, और वास्तविक wallets के लिए व्यावहारिक बनाया जा रहा है
यह किसके लिए है
- कोई भी जिसने कभी सोचा हो कि एक private wallet बिना यह बताए कि कौन-से coin उसके हैं, उन्हें कैसे ढूंढता है
- नए लोग जो Zcash scaling के काम के साथ PIR का उल्लेख बार-बार देखते हैं
- वे पाठक जो पहले अवधारणा समझना चाहते हैं और उसके नीचे की cryptography बाद में
Zcash के लिए PIR जिस समस्या को हल करता है
Zcash यह छिपाता है कि कोई लेनदेन किसके लिए है। यह privacy एक असहज सवाल पैदा करती है: अगर network यह नहीं देख सकता कि कौन-से लेनदेन आपके हैं, तो आपका अपना wallet उन्हें कैसे ढूंढता है?
आज इसका उत्तर सीधा-सादा है। कोई wallet सर्वर से यह नहीं पूछ सकता कि कौन-से लेनदेन मेरे हैं, क्योंकि ऐसा सवाल वही चीज़ प्रकट कर देगा जिसे Zcash छिपाने की कोशिश करता है। इसलिए wallet बड़ी मात्रा में डेटा डाउनलोड करता है और हर आइटम को स्थानीय रूप से जांचता है कि उसमें से क्या उसका है। यह काम करता है, और privacy भी बनाए रखता है, लेकिन यह धीमा और भारी है। यही scanning उन मुख्य कारणों में से एक है जिनकी वजह से wallet syncing सुस्त महसूस हो सकती है।
आदर्श स्थिति यह होगी कि wallet किसी सर्वर से ठीक अपना ही डेटा मांगे, उसे प्राप्त करे, और सर्वर को कभी पता ही न चले कि क्या मांगा गया था। private information retrieval ठीक यही सुविधा देता है।
PIR क्या है
Private information retrieval एक cryptographic विधि है जो client को सर्वर के डेटाबेस से एक entry इस तरह पढ़ने देती है कि सर्वर को यह न पता चले कि उसने कौन-सी entry पढ़ी।
कल्पना कीजिए एक library की, जहाँ आप ठीक वही किताब प्राप्त कर सकते हैं जो आप चाहते हैं, लेकिन librarian को कभी पता नहीं चलता कि उसने आपको कौन-सी किताब दी। आपको आपका आइटम मिल जाता है, और आपकी रुचि निजी बनी रहती है। PIR उसी विचार का गणितीय रूप है, जिसे किसी भी डेटाबेस पर लागू किया जाता है।
इस अवधारणा का cryptography में दशकों से अध्ययन किया जा रहा है। इसे पहली बार 1995 में Chor, Goldreich, Kushilevitz, और Sudan ने प्रस्तुत किया था, जिन्होंने multiple server approach का वर्णन किया, और पहला single server संस्करण 1997 में Kushilevitz और Ostrovsky ने दिया। यह ऐसी चीज़ नहीं है जिसे Zcash ने आविष्कार किया हो; यह एक स्थापित क्षेत्र है जिसे Zcash अब एक वास्तविक और जटिल समस्या पर लागू कर रहा है।
PIR कैसे काम करता है, शुरुआती स्तर पर
PIR बनाने के दो व्यापक तरीके हैं, और यह अंतर महत्वपूर्ण है।
पहला तरीका multiple servers का उपयोग करता है। client कई servers में से हर एक को query का एक हिस्सा भेजता है, और उनके उत्तरों को स्थानीय रूप से जोड़ता है। कोई भी एकल server इतना नहीं देख पाता कि उसे पता चल सके क्या मांगा गया था। यह कुशल है, लेकिन यह इस बात पर निर्भर करता है कि servers आपस में मिलीभगत न करें, जिसकी वास्तविक दुनिया में गारंटी देना कठिन है।
दूसरा तरीका एक single server और multiple parties की जगह चतुर cryptography का उपयोग करता है। यहाँ client एक विशेष साधन पर निर्भर करता है जिसे homomorphic encryption कहा जाता है, और यही दिशा वास्तविक deployments के लिए सबसे उपयोगी है, क्योंकि इसमें कई ऐसे servers की आवश्यकता नहीं होती जो आपस में मिलीभगत न करें।
तंत्र: homomorphic encryption
Homomorphic encryption एक प्रकार का encryption है जो सर्वर को डेटा पर गणना करने देता है जबकि डेटा encrypted ही रहता है। सर्वर आधारभूत मानों को देखे बिना एक सही encrypted उत्तर तैयार करता है।
यहाँ single-server PIR का मूल विचार है जो इसी तरीके से बनाया जाता है। client को एक सूची में से तीसरा आइटम चाहिए। वह एक ऐसी query बनाता है जो प्रभावी रूप से तीसरे स्थान के लिए encrypted yes और बाकी हर स्थान के लिए encrypted no होती है। सर्वर के लिए यह query केवल अर्थहीन शोर जैसी होती है; वह यह नहीं बता सकता कि yes किस स्थान पर है।
फिर सर्वर homomorphic encryption के विशेष गुणों का उपयोग करके अपने डेटाबेस को इस encrypted query के साथ जोड़ता है, हर stored item को उससे मेल खाते encrypted yes या no से गुणा करता है और परिणामों को जोड़ देता है। अंत में जो निकलता है वह एक single encrypted package होता है जिसमें ठीक वही आइटम होता है जो client चाहता था, और इससे यह प्रकट नहीं होता कि वह कौन-सा था। client उस package को decrypt करता है और अपना आइटम पढ़ता है। सर्वर ने प्रश्न का उत्तर दे दिया, बिना कभी प्रश्न को जाने।
एक अधिक मजबूत संस्करण, जिसे symmetric PIR कहा जाता है, दूसरी गारंटी जोड़ता है: client केवल वही आइटम सीखता है जो उसने मांगा था और डेटाबेस की किसी दूसरी entry के बारे में कुछ नहीं जानता। इससे client के साथ-साथ डेटाबेस की भी सुरक्षा होती है।
तकनीकी पाठकों के लिए एक नज़दीकी नज़र
आधुनिक single-server schemes lattice cryptography पर आधारित होती हैं, सबसे सामान्य रूप से learning with errors assumption पर। client की query ciphertexts का एक vector होती है, target index पर one का encryption और बाकी जगह zero का encryption, और यह encryption additive homomorphic होती है, इसलिए सर्वर decrypt किए बिना ciphertexts को जोड़ सकता है और उन्हें plaintext डेटाबेस entries से गुणा कर सकता है।
सर्वर डेटाबेस को एक matrix की तरह मानता है, encrypted selection vector लागू करता है, और एक single ciphertext लौटाता है जो decrypt होने पर इच्छित row देता है। क्योंकि query यादृच्छिक शोर से अलग नहीं पहचानी जा सकती, सर्वर को index के बारे में कोई जानकारी नहीं मिलती।
ऐतिहासिक रूप से सबसे बड़ी बाधा हमेशा cost रही है। साधारण तरीके से देखें तो हर query के लिए सर्वर को डेटाबेस की हर entry को छूना पड़ता है, जो computation के हिसाब से महंगा है, और ciphertexts बड़े होते हैं, जो bandwidth के हिसाब से महंगे हैं। हाल का शोध इसे preprocessing के माध्यम से संबोधित करता है; SimplePIR और FrodoPIR जैसी schemes सर्वर को डेटाबेस पहले से तैयार करने और हर client को एक छोटा hint देने देती हैं, जिससे काम का बड़ा हिस्सा offline phase में चला जाता है और live queries तेज हो जाती हैं। एक उपयोगी अतिरिक्त लाभ यह है कि lattice-based constructions को quantum attacks के प्रति भी resistant माना जाता है, जो post-quantum privacy की दिशा में Zcash के व्यापक कदम के अनुरूप है।
Zcash में PIR
PIR उस प्रयास का हिस्सा है जिसका उद्देश्य Zcash को scale पर private और fast दोनों बनाना है।
पहले वर्णित wallet scanning bottleneck ही इसका लक्ष्य है। Valar Group में काम private information retrieval तकनीकों का विकास कर रहा है ताकि wallet सर्वर से अपना डेटा प्राप्त कर सके बिना सर्वर को यह पता चले कि कौन-सी entries मांगी गईं। एक ठोस उपयोग nullifiers को निजी रूप से जांचना है। nullifier एक unique marker होता है जो किसी note के खर्च होने पर प्रकाशित किया जाता है, जिससे वही funds दोबारा खर्च न किए जा सकें। किसी wallet को अक्सर यह जांचना होता है कि कोई दिया गया nullifier अभी तक प्रकट हुआ है या नहीं, दूसरे शब्दों में कि note अभी भी unspent है या नहीं, और आज इसे सर्वर के माध्यम से करना यह लीक कर सकता है कि किस note के बारे में पूछा जा रहा है। Private information retrieval wallet को यह प्रश्न पूछने देता है बिना यह बताए कि उसे किस nullifier की परवाह है। यह अन्य scaling कार्यों के साथ जुड़ा हुआ है, जिनमें Project Tachyon और नया नोड software शामिल हैं, जिनका उद्देश्य उन performance limits को हटाना है जो आज private wallets को पीछे रोके हुए हैं।
इस चरण के बारे में ईमानदार रहना महत्वपूर्ण है। यह सक्रिय research और engineering है, कोई तैयार और shipped feature नहीं। अवधारणा अच्छी तरह स्थापित है और दिशा तय है, लेकिन PIR को इतना कुशल बनाना कि वह सामान्य devices पर रोज़मर्रा के wallets के लिए काम करे, यही वह कठिन हिस्सा है जिस पर अभी काम चल रहा है।
आम गलतफहमियाँ
- PIR यह छिपाता है कि आपने कौन-सा आइटम मांगा, यह जरूरी नहीं कि यह भी छिपाए कि आपने सर्वर से संपर्क किया था; network-level metadata एक अलग चिंता है
- PIR केवल Zcash के लिए नहीं है; यह एक सामान्य cryptographic tool है जिसे Zcash wallet privacy पर लागू कर रहा है
- PIR से तेज syncing एक प्रगति पर चल रहा लक्ष्य है, wallets में पहले से मौजूद feature नहीं
- सब कुछ डाउनलोड करके स्थानीय रूप से स्कैन करना, जो वर्तमान तरीका है, private तो है लेकिन धीमा है; PIR का उद्देश्य privacy बनाए रखते हुए इस धीमेपन को हटाना है
संबंधित पृष्ठ