
पहचान प्रोटोकॉल के लिए Google Zero-Knowledge लाइब्रेरी का कार्यान्वयन।
Longfellow लाइब्रेरी पुराने पहचान सत्यापन मानकों जैसे ISO MDOC मानक, JWT मानक, और W3 Verifiable Credentials से संबंधित जीरो-नॉलेज प्रोटोकॉल के निर्माण को सक्षम बनाती है। यह कार्यान्वयन इसमें वर्णित है:
इसका नाम Google Cambridge कार्यालय के बाहर स्थित पुल के नाम पर रखा गया है।
इस परियोजना ने इस क्षेत्र के शैक्षणिक और उद्योग विशेषज्ञों के पैनल द्वारा कई स्वतंत्र सुरक्षा समीक्षाएँ पूरी की हैं। उनकी रिपोर्टें Project documentation/Reviews पृष्ठ पर उपलब्ध हैं।
इस रिपॉज़िटरी में Longfellow और उसके घटकों की विशिष्टता के लिए कार्यशील फ़ाइलें शामिल हैं। यदि आप योगदान देने में रुचि रखते हैं, तो कृपया एक Issue या Pull Request बनाएँ। हमारी चर्चाएँ Issues के अंतर्गत होती हैं।
आप संबंधित devcontainer का उपयोग करके इसका वातावरण बनाकर हमारी लाइब्रेरी का परीक्षण कर सकते हैं। आरंभ करने के लिए बस ऊपर Code-->Codespaces-->Create codespace on master पर क्लिक करें। यह एक Github सर्वर पर एक docker कंटेनर बनाता है जिसमें सभी निर्भरताएँ शामिल हैं और हमारे वर्तमान कोडबेस के लिए एक वेब-आधारित VScode इंटरफ़ेस प्रदान करता है। आप इस वातावरण में हमारे बेंचमार्क संकलित और चला सकते हैं, लेकिन VM के कारण उनमें से कुछ हमारे रिपोर्ट किए गए मानों की तुलना में धीमे हो सकते हैं।
यह पैकेज cmake, openssl, zstd, clang, googletest और googlebenchmark पर निर्भर करता है।
$ sudo apt install -y build-essential clang cmake libssl-dev libzstd-dev libgtest-dev libbenchmark-dev zlib1g-dev
$ yum install -y clang libzstd-devel openssl-devel git cmake google-benchmark-devel gtest-devel
Fedora के नए संस्करणों में libpfm-devel की आवश्यकता प्रतीत होती है:
$ yum install -y clang libzstd-devel openssl-devel git cmake google-benchmark-devel gtest-devel libpfm-devel
सुनिश्चित करें कि Xcode कमांड लाइन टूल्स जैसे clang और cmake स्थापित हैं।
$ brew install googletest google-benchmark zstd
पहले cmake आरंभीकरण चरण चलाएँ
$ CXX=clang++ cmake -D CMAKE_BUILD_TYPE=Release -S lib -B clang-build-release --install-prefix ${PWD}/install
अगला:
$ cd clang-build-release && make -j 16 && ctest -j 16
हमने कई यूनिट, sumcheck, और zk बेंचमार्क परिभाषित किए हैं। उनमें से कुछ यहाँ दिए गए हैं:
$ ./algebra/fft_test --benchmark_filter='BM_*'
$ ./circuits/sha/flatsha256_circuit_test --benchmark_filter=BM_ShaZK_fp2_128