
पहचान प्रोटोकॉल के लिए Google Zero-Knowledge लाइब्रेरी का कार्यान्वयन।
Longfellow लाइब्रेरी पुराने पहचान सत्यापन मानकों जैसे ISO MDOC मानक, JWT मानक, और W3 Verifiable Credentials से संबंधित ज़ीरो-नॉलेज प्रोटोकॉल के निर्माण को सक्षम बनाती है। यह कार्यान्वयन इनमें वर्णित है:
इसका नाम Google Cambridge कार्यालय के बाहर स्थित पुल के नाम पर रखा गया है।
इस प्रोजेक्ट ने इस क्षेत्र के शैक्षणिक और उद्योग विशेषज्ञों के पैनल द्वारा कई स्वतंत्र सुरक्षा समीक्षाएँ पूरी की हैं। उनकी रिपोर्टें प्रोजेक्ट दस्तावेज़ीकरण/समीक्षाएँ पृष्ठ पर उपलब्ध हैं।
इस रिपॉज़िटरी में Longfellow और उसके घटकों के विनिर्देश के लिए कार्यशील फ़ाइलें शामिल हैं। यदि आप योगदान देने में रुचि रखते हैं, तो कृपया एक Issue या Pull Request बनाएँ। हमारी चर्चाएँ Issues के अंतर्गत होती हैं।
आप अपने वातावरण को बनाने के लिए संबंधित devcontainer का उपयोग करके हमारी लाइब्रेरी का परीक्षण कर सकते हैं। आरंभ करने के लिए Code → Codespaces → Create codespace on main चुनें। यह GitHub पर एक कंटेनर बनाता है जिसमें निर्भरताएँ शामिल होती हैं और एक ब्राउज़र-आधारित VS Code इंटरफ़ेस प्रदान करता है। आप वहाँ हमारे बेंचमार्क संकलित और चला सकते हैं, हालाँकि 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