Trending News

BTC
$23,164.90
+0.8
ETH
$1,674.31
+2.05
LTC
$101.37
+1.89
DASH
$65.11
+2.58
XMR
$166.49
-0.35
NXT
$0.01
+10.88
ETC
$23.06
+1.95

एथेरियम (ZoE) पर Zcash को एकीकृत करने पर एक अपडेट

0


एथेरियम आर एंड डी टीम और ज़कैश कंपनी के सदस्य ब्लॉकचेन में प्रोग्रामबिलिटी और गोपनीयता के संयोजन को संबोधित करने वाली एक शोध परियोजना पर सहयोग कर रहे हैं। इस संयुक्त पद पर एक साथ पदस्थापित किया जा रहा है ज़कैश ब्लॉगऔर Ariel Gabizon (Zcash) और Christian Reitwiessner (Ethereum) द्वारा सह-लेखक हैं।

एथेरियम का लचीला स्मार्ट अनुबंध इंटरफ़ेस विभिन्न प्रकार के अनुप्रयोगों को सक्षम बनाता है, जिनमें से कई की कल्पना अभी तक नहीं की गई है। गोपनीयता की क्षमता को जोड़ने पर संभावनाएं काफी बढ़ जाती हैं। कल्पना करें, उदाहरण के लिए, एक स्मार्ट अनुबंध के माध्यम से ब्लॉकचैन पर आयोजित एक चुनाव या नीलामी जैसे कि ब्लॉकचेन के किसी भी पर्यवेक्षक द्वारा परिणामों को सत्यापित किया जा सकता है, लेकिन व्यक्तिगत वोट या बोलियां प्रकट नहीं होती हैं। एक अन्य संभावित परिदृश्य में चयनात्मक प्रकटीकरण शामिल हो सकता है जहां उपयोगकर्ताओं के पास यह साबित करने की क्षमता होगी कि वे अपने सटीक स्थान का खुलासा किए बिना एक निश्चित शहर में हैं। एथेरियम में ऐसी क्षमताओं को जोड़ने की कुंजी ज्ञान के शून्य-ज्ञान संक्षिप्त गैर-संवादात्मक तर्क (zk-SNARKs) है – ठीक Zcash अंतर्निहित क्रिप्टोग्राफ़िक इंजन।

Zcash कंपनी के लक्ष्यों में से एक, कोडनाम परियोजना कीमिया, एथेरियम और ज़कैश के बीच प्रत्यक्ष विकेन्द्रीकृत विनिमय को सक्षम करना है। इन दो ब्लॉकचेन और प्रौद्योगिकियों को जोड़ना, एक प्रोग्राम योग्यता पर और दूसरा गोपनीयता पर ध्यान केंद्रित करना, दोनों की आवश्यकता वाले अनुप्रयोगों के विकास को सुविधाजनक बनाने का एक स्वाभाविक तरीका है।

Zcash/Ethereum तकनीकी सहयोग के हिस्से के रूप में, Zcash के Ariel Gabizon ने कुछ सप्ताह पहले बर्लिन में Ethereum हब से क्रिश्चियन Reitwiessner का दौरा किया। यात्रा का मुख्य आकर्षण सॉलिडिटी में लिखे गए zk-SNARK सत्यापनकर्ता के अवधारणा कार्यान्वयन का प्रमाण है, जो एथेरियम C ++ क्लाइंट के लिए लागू किए गए पूर्व-संकलित एथेरियम अनुबंधों पर आधारित है। यह कार्य पूरक है बेबी ज़ोई , जहां एक zk-SNARK पूर्व-संकलित अनुबंध समानता (एथेरियम रस्ट क्लाइंट) के लिए लिखा गया था। हमने जो अपडेट किए हैं उनमें छोटे क्रिप्टोग्राफ़िक प्रिमिटिव (अण्डाकार वक्र गुणन, जोड़ और युग्मन) को जोड़ना और बाकी को सॉलिडिटी में लागू करना शामिल है, जिनमें से सभी अधिक लचीलेपन की अनुमति देते हैं और विभिन्न प्रकार के zk-SNARK निर्माणों का उपयोग करने में सक्षम होते हैं, बिना हार्ड फोर्क की आवश्यकता के। . विवरण बाद में उपलब्ध होने पर साझा किया जाएगा। हमने एथेरियम ब्लॉकचेन के टेस्टनेट पर एक वास्तविक गोपनीयता-संरक्षण Zcash लेनदेन को सफलतापूर्वक सत्यापित करके नए कोड का परीक्षण किया।

सत्यापन में केवल 42 मिलीसेकंड लगे, जो दर्शाता है कि इस तरह के पूर्व-संकलित अनुबंधों को जोड़ा जा सकता है, और उनका उपयोग करने के लिए गैस की लागत को काफी सस्ती बनाया जा सकता है।

ऐसी व्यवस्था से क्या किया जा सकता है

परिरक्षित कस्टम टोकन बनाने के लिए एथेरियम पर Zcash प्रणाली का पुन: उपयोग किया जा सकता है। इस तरह के टोकन पहले से ही कई अनुप्रयोगों जैसे मतदान, (नीचे देखें) या सरल अंधा नीलामियों की अनुमति देते हैं जहां प्रतिभागी दूसरों द्वारा बोली लगाई गई राशि के ज्ञान के बिना बोली लगाते हैं।

यदि आप अवधारणा के प्रमाण को संकलित करने का प्रयास करना चाहते हैं, तो आप निम्न आदेशों का उपयोग कर सकते हैं। यदि आपको सहायता की आवश्यकता हो, तो देखें https://gitter.im/ethereum/privacy-tech

git clone https://github.com/scipr-lab/libsnark.git
cd libsnark
sudo PREFIX=/usr/local make NO_PROCPS=1 NO_GTEST=1 NO_DOCS=1 
   CURVE=ALT_BN128 

   FEATUREFLAGS="-DBINARY_OUTPUT=1 -DMONTGOMERY_OUTPUT=1 
   -DNO_PT_COMPRESSION=1" 

   lib install

cd ..

git clone --recursive -b snark https://github.com/ethereum/cpp-ethereum.git

cd cpp-ethereum

./scripts/install_deps.sh && cmake . -DEVMJIT=0 -DETHASHCL=0 && make eth

cd ..

git clone --recursive -b snarks https://github.com/ethereum/solidity.git

cd solidity

./scripts/install_deps.sh && cmake . && make soltest

cd ..

./cpp-ethereum/eth/eth --test -d /tmp/test

# And on a second terminal:

./solidity/test/soltest -t "*/snark" -- --ipcpath   /tmp/test/geth.ipc  --show-messages

हमने zk-SNARKs को एथेरियम ब्लॉकचेन में एकीकृत करने के विभिन्न पहलुओं पर भी चर्चा की, जिस पर अब हम विस्तार कर रहे हैं।

यह तय करना कि कौन से अनुबंधों को परिभाषित करना है

याद रखें कि एक SNARK कुछ संपत्ति का एक छोटा सा प्रमाण है, और एथेरियम ब्लॉकचेन में गोपनीयता सुविधाओं को जोड़ने के लिए जो आवश्यक है वे ग्राहक हैं जो इस तरह के प्रमाण को सत्यापित करने की क्षमता रखते हैं।

हाल के सभी निर्माणों में, सत्यापन प्रक्रिया में केवल अण्डाकार वक्रों पर संचालन शामिल था। विशेष रूप से, सत्यापनकर्ता को अण्डाकार वक्र समूह पर स्केलर गुणन और जोड़ की आवश्यकता होती है, और इसके लिए एक भारी ऑपरेशन की भी आवश्यकता होती है जिसे बिलिनियर पेयरिंग कहा जाता है।

के रूप में उल्लेख यहाँइन कार्यों को सीधे ईवीएम में लागू करना बहुत महंगा है। इस प्रकार, हम इन कार्यों को करने वाले पूर्व-संकलित अनुबंधों को लागू करना चाहेंगे। अब, बहस का सवाल यह है कि इन पूर्व-संकलित अनुबंधों का उद्देश्य किस स्तर की व्यापकता होनी चाहिए।

SNARK का सुरक्षा स्तर वक्र के मापदंडों से मेल खाता है। मोटे तौर पर, वक्र क्रम जितना बड़ा होता है, और एम्बेडिंग डिग्री कहलाने वाली चीज़ जितनी बड़ी होती है, और इस वक्र पर आधारित SNARK उतना ही अधिक सुरक्षित होता है। दूसरी ओर, ये मात्राएँ जितनी बड़ी होती हैं, स्वाभाविक रूप से संबंधित वक्र पर संचालन उतना ही अधिक महंगा होता है। इस प्रकार, SNARKs का उपयोग करने वाला एक अनुबंध डिजाइनर इन मापदंडों को अपनी वांछित दक्षता / सुरक्षा ट्रेडऑफ़ के अनुसार चुनना चाह सकता है। यह ट्रेडऑफ़ उच्च स्तर की व्यापकता के साथ पूर्व-संकलित अनुबंध को लागू करने का एक कारण है, जहां अनुबंध डिज़ाइनर कर्व्स के एक बड़े परिवार से चुन सकते हैं। हमने वास्तव में उच्च स्तर की व्यापकता के लक्ष्य के साथ शुरुआत की, जहां अनुबंध के इनपुट के हिस्से के रूप में वक्र का विवरण दिया गया है। ऐसे मामले में, एक स्मार्ट अनुबंध किसी भी दीर्घवृत्ताकार वक्र समूह में अतिरिक्त प्रदर्शन करने में सक्षम होगा।

इस दृष्टिकोण के साथ एक जटिलता ऑपरेशन के लिए गैस की लागत निर्धारित कर रही है। आपको केवल वक्र के विवरण से, और किसी विशिष्ट कार्यान्वयन तक पहुंच न होने के कारण, उस वक्र पर एक समूह संचालन सबसे खराब स्थिति में कितना महंगा होगा, इसका आकलन करना चाहिए। कुछ हद तक कम सामान्य दृष्टिकोण किसी दिए गए परिवार से सभी वक्रों को अनुमति देना है। हमने देखा कि कर्व्स के बैरेटो-नेह्रिग (बीएन) परिवार के साथ काम करते समय, कोई मोटे तौर पर आकलन कर सकता है कि पेयरिंग ऑपरेशन कितना महंगा होगा, कर्व पैरामीटर दिए गए हैं, क्योंकि ऐसे सभी कर्व्स एक विशिष्ट प्रकार के इष्टतम एट पेयरिंग का समर्थन करते हैं। यहाँ एक है स्केच इस तरह का प्रीकंपाइल कैसे काम करेगा और गैस की लागत की गणना कैसे की जाएगी।

हमने इस बहस से बहुत कुछ सीखा, लेकिन अंततः, अवधारणा के इस प्रमाण के लिए “इसे सरल रखने” का फैसला किया: हमने वर्तमान में ज़कैश द्वारा उपयोग किए जाने वाले विशिष्ट वक्र के लिए अनुबंधों को लागू करना चुना। हमने इसमें संबंधित कार्यों के रैपर का उपयोग करके ऐसा किया libsnark पुस्तकालय, जिसका उपयोग ज़कैश द्वारा भी किया जाता है।

ध्यान दें कि हम वर्तमान में Zcash द्वारा उपयोग किए जाने वाले संपूर्ण SNARK सत्यापन फ़ंक्शन के लिए केवल एक रैपर का उपयोग कर सकते थे, जैसा कि ऊपर उल्लिखित बेबी ZoE प्रोजेक्ट में किया गया था। हालांकि, अण्डाकार वक्र संचालन को स्पष्ट रूप से परिभाषित करने का लाभ विभिन्न प्रकार के SNARK निर्माणों का उपयोग करने में सक्षम है, जो फिर से, सभी के पास पहले से उल्लिखित तीन अण्डाकार वक्र संचालन के कुछ संयोजन द्वारा एक सत्यापनकर्ता काम कर रहा है।

नए अनाम टोकन और अन्य अनुप्रयोगों के लिए Zcash सेटअप का पुन: उपयोग करना

जैसा कि आपने सुना होगा, SNARKs का उपयोग करने के लिए a की आवश्यकता होती है जटिल सेटअप चरण जिसमें सिस्टम के तथाकथित सार्वजनिक पैरामीटर का निर्माण किया जाता है। यह तथ्य कि इन सार्वजनिक मापदंडों को हर बार सुरक्षित तरीके से उत्पन्न करने की आवश्यकता होती है, जब हम किसी विशेष सर्किट के लिए SNARK का उपयोग करना चाहते हैं, SNARKs की उपयोगिता में बाधा डालते हैं। इस सेटअप चरण को सरल बनाना एक महत्वपूर्ण लक्ष्य है जिसके बारे में हमने सोचा है, लेकिन अभी तक कोई सफलता नहीं मिली है।

अच्छी खबर यह है कि गोपनीयता-संरक्षण लेनदेन का समर्थन करने वाले टोकन जारी करने की इच्छा रखने वाला कोई भी सार्वजनिक मापदंडों का पुन: उपयोग कर सकता है जो पहले से ही Zcash द्वारा सुरक्षित रूप से उत्पन्न किए गए हैं। इसका पुन: उपयोग किया जा सकता है क्योंकि गोपनीयता-संरक्षण लेनदेन को सत्यापित करने के लिए उपयोग किया जाने वाला सर्किट स्वाभाविक रूप से एक मुद्रा या ब्लॉकचेन से बंधा नहीं है। बल्कि, इसका एक स्पष्ट इनपुट एक मर्कल ट्री की जड़ है जिसमें मुद्रा के सभी वैध नोट शामिल हैं। इस प्रकार, इस इनपुट को उस मुद्रा के अनुसार बदला जा सकता है जिसके साथ काम करना चाहता है। इसके अलावा, अगर एक नया गुमनाम टोकन शुरू करना आसान है। आप पहले से ही ऐसे कई कार्य पूरे कर सकते हैं जो पहली नज़र में टोकन की तरह नहीं लगते हैं। उदाहरण के लिए, मान लीजिए कि हम दो में से पसंदीदा विकल्प चुनने के लिए गुमनाम चुनाव कराना चाहते हैं। हम वोट के लिए एक अनाम कस्टम टोकन जारी कर सकते हैं, और प्रत्येक मतदान दल को एक सिक्का भेज सकते हैं। चूंकि कोई “खनन” नहीं है, इसलिए किसी अन्य तरीके से टोकन उत्पन्न करना संभव नहीं होगा। अब प्रत्येक पार्टी अपने वोट के अनुसार अपना सिक्का दो में से एक पते पर भेजती है। बड़े अंतिम शेष के साथ पता चुनाव परिणाम से मेल खाता है।

अन्य अनुप्रयोगों

एक गैर-टोकन-आधारित प्रणाली जो निर्माण के लिए काफी सरल है और “चयनात्मक प्रकटीकरण” की अनुमति देती है। उदाहरण के लिए, आप नियमित अंतराल में एक एन्क्रिप्टेड संदेश पोस्ट कर सकते हैं, जिसमें ब्लॉकचैन में आपका भौतिक स्थान शामिल है (शायद स्पूफिंग को रोकने के लिए अन्य लोगों के हस्ताक्षर के साथ)। यदि आप प्रत्येक संदेश के लिए एक अलग कुंजी का उपयोग करते हैं, तो आप कुंजी को प्रकाशित करके केवल एक निश्चित समय पर अपना स्थान प्रकट कर सकते हैं। हालाँकि, zk-SNARKs के साथ आप अतिरिक्त रूप से यह साबित कर सकते हैं कि आप एक निश्चित क्षेत्र में थे बिना यह बताए कि आप कहाँ थे। Zk-SNARK के अंदर, आप अपने स्थान को डिक्रिप्ट करते हैं और जांचते हैं कि यह क्षेत्र के अंदर है। ज़ीरो-नॉलेज प्रॉपर्टी के कारण, हर कोई उस चेक को सत्यापित कर सकता है, लेकिन कोई भी आपके वास्तविक स्थान को पुनः प्राप्त नहीं कर पाएगा।

आगे का काम

उल्लिखित कार्यात्मकताओं को प्राप्त करना – अनाम टोकन बनाना और एथेरियम ब्लॉकचेन पर Zcash लेनदेन की पुष्टि करना, Zcash द्वारा सॉलिडिटी में उपयोग किए जाने वाले अन्य तत्वों को लागू करने की आवश्यकता होगी।

पहली कार्यक्षमता के लिए, हमारे पास Zcash नेटवर्क पर नोड्स द्वारा किए गए कार्यों का कार्यान्वयन होना चाहिए जैसे नोट प्रतिबद्धता ट्री को अपडेट करना।

दूसरी कार्यक्षमता के लिए, हमें Zcash द्वारा सॉलिडिटी में उपयोग किए जाने वाले कार्य एल्गोरिथम के इक्विश प्रूफ के कार्यान्वयन की आवश्यकता है। अन्यथा, लेन-देन को अपने आप में मान्य के रूप में सत्यापित किया जा सकता है, लेकिन हम यह नहीं जानते हैं कि लेन-देन वास्तव में Zcash ब्लॉकचेन में एकीकृत था या नहीं।

सौभाग्य से, ऐसा कार्यान्वयन था लिखा हुआ; हालाँकि, व्यावहारिक अनुप्रयोगों में उपयोग करने के लिए इसकी दक्षता में सुधार करने की आवश्यकता है।

स्वीकृति: हम तकनीकी सहायता के लिए शॉन बोवे को धन्यवाद देते हैं। हम मददगार टिप्पणियों के लिए सीन और विटालिक ब्यूटिरिन और संपादन के लिए मिंग चैन को भी धन्यवाद देते हैं।



Source link

Leave A Reply

Your email address will not be published.

Shares