आपको किस चीज़ की ज़रूरत पड़ेगी:
- एक कंप्यूटर विज्ञान पृष्ठभूमि
- Ethereum की मूल बातें
- पथरी की मूल बातें (अनुकूलन की कमी)
आपको क्या मिलेगा:
- शून्य-ज्ञान SNARKs की मूल बातें
- मर्कल वृक्षों की मूल बातें
- कैसे Ethereum SNARKs की बदौलत प्रति सेकंड हजारों लेन-देन कर सकता है
SNARKs एक सत्यापनकर्ता को एक सत्यापनकर्ता को यह साबित करने की अनुमति देते हैं कि वह / के पास समस्या का F के साथ साझा किए गए / ज्ञात इनपुट X के साथ W को प्रकट किए बिना एक समाधान W है।
समस्या का समाधान खोजने के लिए कम्प्यूटेशनल पावर और मेमोरी की एक बड़ी मात्रा की आवश्यकता हो सकती है।
इसलिए सत्यापनकर्ता मूल रूप से 100% सुनिश्चित हो सकता है कि प्रोवर ने ठीक से काम किया है (और एक समाधान पाया), न तो समाधान की जांच करने के लिए न तो खुद से काम कर रहा है और न ही समाधान को जान रहा है। यह जादू है!
प्रक्रिया के 3 चरण हैं:
- सेटअप - समस्या एफ (जिसे द्विघात अंकगणितीय कार्यक्रम के रूप में व्यक्त किया जाना चाहिए, नीचे देखें) SNARKs के लिए तैयार है। यह प्रक्रिया समस्या की जटिलता के आधार पर बहुत उच्च मेमोरी और कंप्यूटिंग गहन है (→ इनपुट और बाधाओं की संख्या → बाधा संतुष्टि समस्या के मैट्रिक्स का आयाम)। जो खिलाड़ी सेटअप करता है (स्वयं सत्यापनकर्ता हो सकता है) को सभी पक्षों पर भरोसा करना चाहिए, क्योंकि सेटअप का उत्पादन अगले चरणों में किया जाता है। आमतौर पर सेटअप का उपयोग किया जाता है libnnark, एक C ++ लाइब्रेरी जो zkSNARKs के लिए सबसे लोकप्रिय कार्यान्वयन है।
- साबित - प्रोवर, जिसके पास साझा इनपुट एक्स के साथ समस्या एफ के लिए एक समाधान डब्ल्यू है (शायद वह / उसने इसे खोजने के लिए सीपीयू और मेमोरी की बड़ी मात्रा में खर्च किया!), का उपयोग करता है। libnnark और का उत्पादन व्यवस्था एक सबूत बनाने के लिए चरण 𝚷। यह प्रक्रिया निश्चित रूप से उच्च मेमोरी और कंप्यूटिंग गहन (समस्या की जटिलता के आधार पर, ऊपर के रूप में) है। आउटपुट का आकार (अर्थात प्रमाण () इसके बजाय समस्या की जटिलता से स्वतंत्र और स्थिर है। नीतिवचन पर भरोसा करने की जरूरत है कि सेटअप चरण किसने किया है, क्योंकि वह इसके उत्पादन का उपयोग करता है ...
- पुष्टि करने - एक सत्यापनकर्ता - इनपुट चरण के आउटपुट के रूप में देना, साझा किए गए इनपुट एक्स और सबूत 𝚷 - सबूत की जांच करता है। यदि सत्यापन सफल होता है, तो प्रोवर एक सत्यापनकर्ता को यह साबित करने में कामयाब रहा कि उसने W का खुलासा किए बिना समस्या F ... का समाधान W ढूंढ लिया है! अच्छी बात यह है कि न केवल सबूत पर्याप्त है और हमेशा एक ही लंबाई है .., सत्यापन प्रक्रिया तेज है और स्मृति / कंप्यूटिंग गहन नहीं है। पिछले दो चरणों के विपरीत ... सत्यापन आसानी से मिलीसेकंड में स्मार्टफोन के साथ किया जा सकता है!
एक अच्छा पुनर्कथन (स्रोत):
ये केसे हो सकता हे? खैर, यह मर्लिन जादू है! यदि आप इसके पीछे गणित प्राप्त करना चाहते हैं, यहाँ से शुरू करो.
मैं अपने सॉफ़्टवेयर को द्विघात अंकगणित कार्यक्रम में कैसे बदल सकता हूं?
जैसा कि ऊपर उल्लेख किया गया है, सेटअप चरण की समस्या एफ को एक द्विघात अंकगणितीय कार्यक्रम होना चाहिए। खेल के नियम कठिन हैं:
- आपके सॉफ्टवेयर के इनपुट नंबर होने चाहिए। अपने सामान (सरणियाँ, तार, आदि) को संख्याओं में बदलें। यह तुच्छ है।
- एक "समीकरणों की चतुराई से विवश प्रणाली" का अर्थ है:
जहाँ x आपके इनपुट्स का n- डायमेंशनल वेक्टर है, m, बाधाओं की संख्या (यानी आपके सिस्टम के समीकरणों की संख्या) है, C n-by-n गुणांक है मैट्रिक्स और q एक n-डायमेंशनल गुणांक वेक्टर है। यदि आपको मैट्रिक्स और वैक्टर पसंद नहीं हैं, तो यहां n = 3 और m = 2 केस (3 इनपुट, 2 बाधाएं) हैं:
- कार्यान्वयन एक अंकगणित सर्किट है, जिसका अर्थ है कि परिणाम है समस्या सुलझ गयी (सिस्टम हल हो गया है, यानी सभी बहुपद 0 के बराबर हैं) या समस्या हल नहीं हुई (सभी अन्य मामले)। दूसरे शब्दों में: "ये इनपुट इस समस्या के समाधान में से एक नहीं हैं"।
- C, C₁,…, C𝚖, q₂, q…,…, qe गुणांक सिस्टम की बाधाएँ हैं। यह मूल रूप से आपके सॉफ़्टवेयर को परिभाषित करता है। उन्हें बदलें ... और आपको एक और सॉफ्टवेयर मिलेगा! SNARKs कैसे काम करते हैं: C to, C…,…, C₁, q how, q₂,…, q of सेटअप चरण के इनपुट हैं। सेटअप चरण का आउटपुट (जिसे आपको प्रमाणित करने और सत्यापित करने की आवश्यकता है) इसलिए कड़ाई से उन C₁, C𝚖,…, C₂, q₁, q₂,…, q𝚖 से संबंधित है और केवल उस समस्या के लिए काम करता है। यदि आप उन्हें बदलते हैं तो आप किसी अन्य सॉफ़्टवेयर / समस्या को परिभाषित कर रहे हैं और आपको सेटअप चरण को फिर से चलाना होगा! x, xables,…, x𝗇 वैरिएबल हैं (यानी आपको सिस्टम के समाधान के लिए क्या अनुमान लगाना है)। इसलिए जब हम कहते हैं "प्रिय नीतिवचन, क्या आप साझा / सार्वजनिक आदानों एक्स के साथ समस्या एफ के लिए एक गुप्त समाधान डब्ल्यू पा सकते हैं" उदाहरण के लिए हमारा मतलब है "प्रिय प्रोवर, क्या आप x₁, x₂, ..., x𝗇 मान पा सकते हैं जो सिस्टम को हल करते हैं उदाहरण के लिए, x₇ = 2393, x 5647 = XNUMX? " आप x𝗇 और x which को छोड़कर सभी x𝗇 के साथ वही कर सकते हैं जो आप चाहते हैं, जो साझा / सार्वजनिक इनपुट के लिए विवश हैं।
यह एक कठिन जीवन है, लेकिन आप जीवित रह सकते हैं ... यदि आपको छोरों की आवश्यकता है तो आप उन्हें एक ही ऑपरेशन को कई बार दोहरा सकते हैं। या यदि आपको उदाहरण के लिए x₁⁴ x₂⁵ की आवश्यकता है, तो आप एक नया इनपुट x₁⁴ = x₂⁵ x need परिभाषित करते हैं और अपने अवरोधों में x₃ का उपयोग करते हैं। यह सब चर और बाधाओं को जोड़ने के बारे में है ... यहां तक कि बहुत ही सरल सॉफ्टवेयर्स के लिए सैकड़ों या लाखों इनपुट और बाधाओं तक पहुंचना आसान है!
अधिक जानना चाहते हैं? पढ़ें यहाँ उत्पन्न करें। और इस मूल को भी देखें Code_to_r1cs.py इथेरियम / अनुसंधान से।
मर्कल ट्री क्या है?
एक हैश फ़ंक्शन एक नियम है जो निश्चित आकार के आउटपुट में मनमाने आकार के इनपुट को मैप करता है। हम एक बहुत ही बेकार हैश फ़ंक्शन का आविष्कार कर सकते हैं "पिछले दो अक्षरों के साथ पहले दो को सम्मिलित करें" जो "वुडी एलेन" को "वॉनी" और "पॉल मेकार्टनी" को "पै" में बदल देता है।
एक मर्कल ट्री एक डेटा संरचना है जहां हर माता-पिता अपने दो बेटों के हैश होते हैं। शीर्ष पर आप रूट को खोजते हैं, जो स्तर 1 के दो बेटों का हैश है। सबसे नीचे, प्रत्येक पत्ती बाहरी इनपुट का हैश है।
हमारे फॉक्स "वुडी एलेन" → "वूनी" हैश फ़ंक्शन का उपयोग करना:
जब एक पत्ती बदलती है, तो संशोधन को रूट तक प्रचारित किया जाता है। यदि ANTHONY बदलता है, तो ANNY (पत्ती), CENY और CECO (रूट) भी बदलता है। जो भी पत्ती बदलता है, रूट भी बदल जाता है।
आपको रूट को पुनर्गणना करने के लिए पूरे पेड़ की आवश्यकता नहीं है। हमारे उदाहरण में, अगर ANTHONY बदलती है और आप JACO और CECILY दोनों को जानते हैं, तो आप आसानी से रूट को पुनर्गणना कर सकते हैं भले ही आप JAMES, MARCO, JAES और MACO को पूरी तरह से अनदेखा कर दें। विशाल पेड़ों के लिए यह बहुत समय बचाता है!
तो क्या हुआ?
मर्कल ट्री डेटा अखंडता जांच के लिए महान हैं। आमतौर पर: आप जानते हैं कि मान्य रूट कौन सा है, और आप जांचते हैं कि प्राप्त डेटा उस रूट से मेल खाता है। उदाहरण के लिए: एक विश्वसनीय पार्टी जो आपको पृथ्वी पर लोगों के पहले नामों का पूरा डेटा सेट नहीं दे सकती है (कोई समय, कोई बैंडविड्थ या शायद वह / वह डेटा बिल्कुल नहीं है) आपको केवल रूट देता है (जैसे "CECO")। आफ्टर पासवर्ड: आपको हजारों प्रथम नाम प्राप्त होते हैं, जिसमें हजारों अविश्वासी दलों द्वारा ली गई संख्या के संदर्भ में। खैर, जब से आपके पास सही रूट है, आप जांच सकते हैं कि आप किस पर भरोसा कर सकते हैं, कौन आपको नकली डेटा दे रहा है ...
मर्कल ट्री आपके जीवन का भी हिस्सा हैं! जब आप एक 3 जीबी टोरेंट फ़ाइल डाउनलोड कर रहे होते हैं, तो आपकी फ़ाइल लाखों छोटे टुकड़ों में विभाजित होती है। हर चूल्हे का हैश एक पत्ते में जमा होता है। चूंकि आपको पता है कि पेड़ की वैध जड़ कौन सी है, हर बार जब आप किसी के द्वारा फ़ाइल का एक हिस्सा प्राप्त करते हैं, तो आप जांच सकते हैं कि क्या यह सही है। यदि यह नहीं है, तो आप किसी और को एक ही हिस्सा पूछ सकते हैं।
आप ऐसा कर सकते हैं, भले ही आपने अभी तक पूरे पेड़ / सभी पत्तों को डाउनलोड न किया हो: यदि आप जानते हैं कि रूट CECO है और आप JACO पर भरोसा करते हैं ... जब आप chunk ANTHONY प्राप्त करते हैं तो आप इसे सत्यापित कर सकते हैं भले ही आपने डाउनलोड न किया हो अभी तक मार्को और जेम्स का हिस्सा है।
मर्कल ट्री वितरित वितरित तकनीक में क्यों उपयोगी हैं, यह सीधा है: आप सर्वसम्मति प्रोटोकॉल (धीमी, महंगी) का उपयोग केवल रूट पर सर्वसम्मति तक पहुंचने के लिए करते हैं। फिर नेटवर्क के अनट्रस्टेड नोड्स कुशलतापूर्वक और सीधे डेटा साझा कर सकते हैं ... और रूट के साथ अखंडता जांच के लिए सुरक्षित और ध्वनि धन्यवाद सो सकते हैं।
जब भगवान ने Ethereum को सुरक्षा, स्केलेबिलिटी और विकेंद्रीकरण के बीच 2 महाशक्तियों को चुनने के लिए कहा ... एथेरेम ने स्केलेबिलिटी का त्याग किया। वास्तव में "लेन-देन प्रति सेकंड" पर कोई मजबूत टोपी नहीं है: टोपी को प्रत्येक ब्लॉक की गैस की मात्रा की चिंता है - जो कि, सरलीकृत करना, प्रत्येक ब्लॉक में मैं जितना भी कर सकता हूं उतना संचालन। यह सीमा 8 मिलियन गैस है। इसका मतलब कई "छोटे" लेनदेन हो सकते हैं (लेनदेन से जुड़ा कोई डेटा, उस डेटा पर कोई कार्रवाई नहीं की जानी चाहिए) या कुछ बड़े लेनदेन। यह Ethereum के नोड्स पर निर्भर है, जो लेन-देन प्रस्तुत करते हैं, और Ethereum के खनिकों के लिए, जो ब्लॉक में लेनदेन को शामिल करते हैं, वे अधिक भुगतान करते हैं।
एक ब्लॉक का खनन किया जाता है प्रत्येक ~ 15 सेकंड। इसका मतलब है कि प्रति मिनट 32 मिलियन गैस, जो निश्चित रूप से पर्याप्त नहीं है अगर हम चाहते हैं कि इथेरियम के डैप मुख्यधारा में जाएं।
वैसे: Ethereum और Visa के बीच उन थकाऊ तुलनाओं के साथ रुकें। एक केंद्रीकृत प्रणाली होगी हमेशा डिजाइन से Ethereum की तुलना में अधिक तेज़ हो ... वे अलग-अलग सामान करते हैं और आपको विभिन्न स्थितियों में उनकी आवश्यकता होती है। यदि आपको विकेंद्रीकरण और एक भरोसेमंद वातावरण की आवश्यकता नहीं है ... तो आपको वीज़ा का चयन करना चाहिए। संक्षेप में: तथ्य यह है कि आपका ब्लेंडर आपकी वॉशिंग मशीन की तुलना में तेजी से घूमता है, इसका मतलब यह नहीं है कि आप ब्लेंडर में अपने पतलून को साफ करेंगे!
पहेली को एक साथ रखो! कल्पना कीजिए कि आप SNARKs की बदौलत एक बड़े लेनदेन में कई छोटे लेनदेन कर सकते हैं। यदि इस बड़े लेनदेन द्वारा खर्च की गई गैस छोटे लेनदेन द्वारा खर्च की गई गैस की राशि से कम है, तो इसका मतलब है कि आप गैस की बचत कर रहे हैं।
और गैस की बचत का अर्थ है:
- कुल मिलाकर लेनदेन के लिए कम खर्च करने वाले उपयोगकर्ता → यह पूरे पारिस्थितिकी तंत्र के लिए एक धक्का होगा
- एक ब्लॉक में अधिक सामान रखने में सक्षम होने के नाते → आपके ब्लेंडर की तुलना में तेजी से घूमती हुई इथेरियम!
यह कैसे काम करता है?
उपयोगकर्ता हैं, एक रिलेयर (या अधिक रिलेयर) हैं जो लेनदेन और एक स्मार्ट अनुबंध को एकत्र करते हैं।
- इस गेम को खेलने के इच्छुक उपयोगकर्ता अपने ईथर (या टोकन) को सार्वजनिक रूप से ऑडिट किए गए स्मार्ट अनुबंध पर भेजते हैं। हर नए खिलाड़ी के लिए मर्कल ट्री में एक नया पत्ता बनाया जाता है। पत्ती में ईथर के मालिक के बारे में जानकारी शामिल है (उसका / उसका पता, जो सार्वजनिक कुंजी भी है), ईथर और नॉन की राशि (उस खाते का लेन-देन काउंटर, जो पत्ती को जोड़ने पर 0 है)
- जब ए बी को ईथर भेजना चाहता है (उन्हें स्मार्ट अनुबंध में एक पत्ता / खाता होना चाहिए), ए एक लेनदेन पैक करता है, जिसमें पता शामिल है सेखाता, सेवा मेरे खाता, नानशिया खाते से, ए राशि को स्थानांतरित करने के लिए ईथर और हस्ताक्षर लेन-देन में ("से," खाते की निजी कुंजी के साथ हस्ताक्षर किए गए, जाहिर है)। वह / उसके बाद पैक किए गए लेन-देन को रिलेयर को भेजता है।
- Relayer एक निश्चित समय विंडो (जैसे एक घंटा) में प्राप्त सभी लेन-देन को एकत्र करता है, नए शेष राशि के साथ मर्कल ट्री को अपडेट करता है और एक SNARK प्रूफ बनाता है जो यह साबित करता है कि सभी हस्ताक्षर और नए मर्कल ट्री की जड़ वैध है। रिलीवर आखिरकार नए राज्य और स्मार्ट अनुबंध को प्रमाण भेजता है।
- स्मार्ट कॉन्ट्रैक्ट प्रूफ ऑन-चेन को मान्य करता है। यदि यह वैध है तो यह अनुबंध की आंतरिक मेमोरी में नए राज्य के मर्कल ट्री रूट को बचाता है।
मूल रूप से, मर्कल ट्री रूट में सभी खातों की संपूर्ण स्थिति को दर्शाया गया है। और आप इसे बदल नहीं सकते (= पैसा चुरा सकते हैं) जब तक कि आप उन हस्ताक्षरों की वैधता को साबित नहीं कर सकते जिनके लेन-देन से आपके द्वारा सबमिट किए गए नए रूट द्वारा नए राज्य का सारांश दिया जाता है।
संक्षेप में: उपयोगकर्ताओं के पास सुपर फास्ट और लगभग मुफ्त लेनदेन हैं, जैसे कि कॉइनबेस पर, बिना विश्वास के, जो कि आपके हस्ताक्षर के बिना, कॉइनबेस के विपरीत, जो कुछ भी नहीं कर सकता है।
यह एक गैर कस्टोडियल साइड चेन है जिसका राज्य एक मर्कल ट्री रूट द्वारा संक्षेपित है।
आइए कनेक्ट करें कि हमने SNARK के बारे में ऊपर क्या सीखा है, हमने स्केलिंग के बारे में क्या चर्चा की है। इसके लिए अलग-अलग तरीके हैं। मैं 2 व्यंजनों की तुलना करूँगा: विटालिक संस्करण और बैरीहाइटहैट संस्करण.
SETUP द्वारा किया जाता है ...
वह व्यक्ति जो परियोजना शुरू करता है, जो स्मार्ट अनुबंध भी बनाता है। जितना अधिक श्रव्य है, उतना ही अच्छा है। आपको उस पर भरोसा करना चाहिए ... यह एक है विश्वसनीय सेटअप!
स्मार्ट अनुबंध बचाता है ...
2 मर्कल रूट्स (बाइट्स 32 वैल्यू): पहले ट्री में खातों के पते (सार्वजनिक हस्ताक्षर), दूसरे खातों की शेष राशि और बिना निशान
PROVING द्वारा किया जाता है ...
रिलीवर
Relayer स्मार्ट अनुबंध को भेजता है ...
- नई राज्य की 2 मर्कल जड़ें (पते पेड़ और संतुलन + गैर पेड़)
- लेन-देन की सूची, बिना हस्ताक्षर के। “प्रत्येक लेनदेन में प्रति बाइट 68 गैस खर्च होती है। इसलिए, एक नियमित स्थानांतरण के लिए, हम उम्मीद कर सकते हैं कि सीमांत लागत 68 * 3 (से) + 68 * 3 (से) + 68 * 1 (शुल्क) + 68 * 4 + 4 * 2 (राशि) + 68 * 2 (नॉनस), या 892 गैस ”
PROVING प्रक्रिया के ज्ञात इनपुट हैं ...
- 2 पुरानी राज्य मर्कल जड़ें
- 2 नई राज्य मर्कल जड़ें
- लेनदेन सूची
प्रक्रिया साबित होती है कि…
यह देखते हुए
- 2 पुरानी राज्य मर्कल जड़ें (पहले से ही अनुबंध में संग्रहीत)
- 2 नई राज्य मर्कल जड़ें (कृषि लेनदेन में भेजी गई)
- लेनदेन सूची (कृषि लेनदेन में भेजी गई)
… Relayer के पास 2 पुराने जड़ों के साथ राज्य से स्थानांतरित करने के लिए वैध हस्ताक्षर हैं। उन लेनदेन के साथ 2 नई जड़ें हैं।
VERIFYING द्वारा किया जाता है ...
स्मार्ट अनुबंध (सॉलिडिटी में कोडित, vyper, जैसा आप चाहें!)
बहुत उपयोगी प्रक्रिया के ज्ञात इनपुट हैं ...
उसी PROVING की प्रक्रिया ज्ञात इनपुट, स्पष्ट रूप से…!
स्केलेबिलिटी तक सीमित करता है
प्रत्येक एकत्रित लेनदेन SNARK सत्यापन के लिए 650k गैस का उपयोग करता है (निश्चित लागत) प्लस ~ 900 गैस सीमांत लागत प्रति लेनदेन (यह डेटा भेजने के लिए खर्च होता है!)। इसलिए पूरे ब्लॉक का उपयोग करके रिले को अधिक से अधिक एकत्रित किया जा सकता है:
जिसका मतलब है ~ 544 टीएक्स प्रति सेकंड
barryWhiteHat के संस्करण
SETUP द्वारा किया जाता है ...
वह आदमी जो परियोजना शुरू करता है।
स्मार्ट अनुबंध बचाता है ...
वर्तमान राज्य के साथ 1 मर्कल रूट। हर पत्ती एक खाते की हैशेड स्थिति है।
चाहते बनाना एक खाता?
स्टेट = अकाउंटस्टैट (pubkey, balance, nonce)
State.index = self._tree.append (state.hash ())
PROVING द्वारा किया जाता है ...
रिलीवर
Relayer स्मार्ट अनुबंध को भेजता है ...
- प्रमाण 𝚷
- नया राज्य मर्कल रूट
- प्रमाण 𝚷
PROVING प्रक्रिया के ज्ञात इनपुट हैं ...
- ओल्ड स्टेट मर्कल रूट
- नया राज्य मर्कल रूट
प्रक्रिया साबित होती है कि…
यह देखते हुए
- ओल्ड मर्कल रूट (पहले से ही अनुबंध में संग्रहीत)
- द न्यू मर्कल रूट (सेंटी इन एग्रग ट्रांजेक्शन)
... रिले में पुराने रूट के साथ नई रूट के साथ राज्य से स्थानांतरित करने के लिए वैध हस्ताक्षर वाले लेनदेन की एक सूची है
VERIFYING द्वारा किया जाता है ...
स्मार्ट अनुबंध (सॉलिडिटी में कोडित, vyper, जैसा आप चाहें!)
बहुत उपयोगी प्रक्रिया के ज्ञात इनपुट हैं ...
उसी PROVING की प्रक्रिया ज्ञात इनपुट, स्पष्ट रूप से…!
स्केलेबिलिटी तक सीमित करता है
Relayer स्मार्ट कॉन्ट्रैक्ट (जो महंगा है) में लेनदेन का डेटा नहीं भेज रहा है, इसलिए सीमा वास्तव में SNARK प्रूफ को सत्यापित करने के लिए गैस की मात्रा है।
हॉवर्ड वू का उल्लेख काम वितरित सिस्टम पर SNARK के PROVING चरण को चलाने के बारे में, barryWhiteHat आशावादी राज्यों कि एक विशाल SNARK (16666 अरब बाधाओं!) में 1 लेनदेन की पुष्टि करना संभव है।
barryWhiteHat भी सोचता 500k गैस के साथ प्रूफ-ऑन-चेन को सत्यापित करना संभव है, जिसका अर्थ है कि आप प्रति ब्लॉक में 16 SNARK (8 मिलियन / 500k) डाल सकते हैं, जो ~ 1.07 SNARKs प्रति सेकंड… जिसका अर्थ है ~ 17,832 tx प्रति सेकंड (१६,६६६ * १.०))।
अनंत की ओर और उससे परे
- सभी कि चकाचौंध सोने नहीं है / 1. कंप्यूटिंग शक्ति और मेमोरी की जरूरत है जो आपको प्रोविंग चरण में चाहिए, शाब्दिक रूप से चौंकाने वाला हो सकता है। विशेष रूप से बैरीहाइटहैट के संस्करण में, जहां जटिलता का हिस्सा ऑफ-चेन ले जाया जाता है। बैरी लिखते हैं "एक लैपटॉप पर 7 जीबी रैम और 20 जीबी स्वैप स्पेस के साथ यह प्रति सेकंड 20 ट्रांजेक्शन को पूरा करने के लिए संघर्ष करता है"। ठीक है, अगर लक्ष्य 17,832 tx प्रति सेकंड है ... LOL। यह गैर तुच्छ समानांतर गणना चुनौतियों का परिचय देता है। लेकिन अगर प्रति लेन-देन की औसत $ लागत साधारण नो-स्कार्क्स विकल्प की तुलना में बहुत सस्ती है ... खेल मोमबत्ती के लायक है।
- सभी कि चमकती सोना नहीं है / 2. एक प्रासंगिक डेटा उपलब्धता मुद्दा है! चूंकि अनुबंध में केवल पेड़ की जड़ बचाई गई है, इसलिए आपको सुनिश्चित होना चाहिए कि पेड़ का एक पूरा संस्करण (या, यह वही है, संपूर्ण लेनदेन इतिहास) हमेशा उपलब्ध है। यदि डेटा उपलब्ध नहीं है, तो वैध हस्ताक्षरित लेनदेन के साथ भी, वह कुछ भी नहीं कर सकता क्योंकि वह पुराने स्टेट → लेन-देन → न्यू स्टेट साबित नहीं कर सकता है।
- भरोसेमंद होने के लिए relayer और अनुबंध में Ethers बाहर (लिक्विडिटी समस्या) के समान मूल्य रखने के लिए ... उपयोगकर्ताओं को स्मार्ट कॉन्ट्रैक्ट से पैसे वापस लेने में सक्षम होना चाहिए, जब वे (विशिष्ट) relayer पर भरोसा किए बिना। कैसे? यह इस 101 पोस्ट के दायरे में नहीं है, लेकिन आप संलग्न लिंक में इस बारे में पढ़ सकते हैं।
- इस बारे में अधिक समझना चाहते हैं कि वर्तमान राज्य (पते, शेष और गैरसैंण) को मर्कल वृक्ष के साथ कैसे संभाला जा सकता है? एक पत्ता जोड़ना, एक पत्ता अद्यतन करना, आदि? चेक आउट यह पुस्तकालय (परीक्षण फ़ाइल यहाँ उत्पन्न करें) जो इस अंतर्निहित का उपयोग करता है मॉड्यूल। धन्यवाद हैरी!
- अपने व्यक्तिगत Ethereum-SNARKs वातावरण को सेटअप करना चाहते हैं? C + + के साथ ऑफ-चेन शुरू करते हैं (सेटअप, साबित, सत्यापन) यहाँ उत्पन्न करें। फिर आप इथेरियम में जा सकते हैं (मत भूलिए, केवल ज़ोक्रेटस के साथ ही वेरिफिकेशन ऑन-चेन किया गया है!)रेपो, के साथ आरंभ करने के लिए प्रलेखन).
- मर्कल पेड़ों के बजाय आरएसए संचायक का उपयोग कैसे करें? गूगल "आरएएस संचायक लोकाचार" शुरू करना…
का आनंद लें!
ट्विटर @marco_derossi
- 7
- लेखा
- सब
- के बीच में
- उपलब्धता
- मूल बातें
- बिलियन
- मामलों
- परिवर्तन
- जाँचता
- coinbase
- कंप्यूटिंग
- आम राय
- अनुबंध
- लागत
- वर्तमान
- वर्तमान स्थिति
- DApps
- तिथि
- डेटा सेट
- विकेन्द्रीकरण
- आयाम
- वितरित लेजर
- वितरित लेजर तकनीक
- वातावरण
- ईथर
- ethereum
- EU
- EV
- उल्लू बनाना
- अंत में
- प्रथम
- मुक्त
- समारोह
- खेल
- गैस
- GitHub
- देते
- सोना
- अच्छा
- गूगल
- महान
- गाइड
- हैश
- यहाँ उत्पन्न करें
- हाई
- इतिहास
- कैसे
- hr
- HTTPS
- विशाल
- सैकड़ों
- ia
- अनुक्रमणिका
- करें-
- IP
- IT
- काम
- कुंजी
- लैपटॉप
- बड़ा
- नेतृत्व
- खाता
- स्तर
- LG
- पुस्तकालय
- चलनिधि
- सूची
- मुख्य धारा
- मैप्स
- मध्यम
- दस लाख
- खनिकों
- धन
- महीने
- सबसे लोकप्रिय
- चाल
- नामों
- नेटवर्क
- नोड्स
- संख्या
- संचालन
- आदेश
- अन्य
- मालिक
- वेतन
- पीडीएफ
- स्टाफ़
- खिलाड़ी
- लोकप्रिय
- बिजली
- निजी
- निजी कुंजी
- कार्यक्रम
- परियोजना
- प्रमाण
- साबित होता है
- सार्वजनिक
- सार्वजनिक कुंजी
- संक्षिप्त
- आरएसए
- नियम
- दौड़ना
- सुरक्षित
- बचत
- अनुमापकता
- स्केल
- स्केलिंग
- विज्ञान
- सुरक्षा
- सेट
- Share
- साझा
- कम
- सरल
- आकार
- नींद
- स्मार्ट
- स्मार्ट अनुबंध
- स्मार्टफोन
- So
- सॉफ्टवेयर
- दृढ़ता
- समाधान ढूंढे
- हल
- अंतरिक्ष
- खर्च
- प्रारंभ
- शुरू
- राज्य
- राज्य
- सफल
- प्रणाली
- सिस्टम
- टेक्नोलॉजी
- परीक्षण
- पहर
- टोकन
- ऊपर का
- धार
- ट्रांजेक्शन
- लेनदेन
- ट्रस्ट
- अपडेट
- उपयोगकर्ताओं
- मूल्य
- सत्यापन
- वीसा
- W
- कौन
- शब्द
- काम
- कार्य
- लायक
- X