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