
Implementierung der Google Zero-Knowledge-Bibliothek für Identitätsprotokolle.
Die Longfellow-Bibliothek ermöglicht die Konstruktion von Zero-Knowledge-Protokollen für Legacy-Identitätsverifizierungsstandards wie den ISO-MDOC-Standard, den JWT-Standard und W3 Verifiable Credentials. Diese Implementierung wird beschrieben in:
Sie ist nach der Brücke außerhalb des Google-Büros in Cambridge benannt.
Dieses Projekt hat mehrere unabhängige Sicherheitsüberprüfungen durch Gremien aus akademischen und industriellen Experten auf diesem Gebiet abgeschlossen. Die Berichte sind auf der Seite Projektdokumentation/Reviews verfügbar.
Dieses Repository enthält die Arbeitsdateien für eine Spezifikation von Longfellow und seinen Komponenten. Wenn Sie einen Beitrag leisten möchten, erstellen Sie bitte ein Issue oder einen Pull Request. Unsere Diskussionen finden unter Issues statt.
Sie können unsere Bibliothek testen, indem Sie den zugehörigen devcontainer verwenden, um ihre Umgebung zu erstellen. Wählen Sie Code → Codespaces → Create codespace on main, um zu beginnen. Dadurch wird ein Container auf GitHub erstellt, der die Abhängigkeiten enthält und eine browserbasierte VS-Code-Oberfläche bereitstellt. Sie können unsere Benchmarks dort kompilieren und ausführen, obwohl die VM langsamer sein kann als die berichteten Messwerte.
Dieses Paket hängt von cmake, openssl, zstd, clang, googletest und googlebenchmark ab.
$ 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
Neuere Versionen von Fedora scheinen libpfm-devel zu erfordern:
$ yum install -y clang libzstd-devel openssl-devel git cmake google-benchmark-devel gtest-devel libpfm-devel
Stellen Sie sicher, dass Xcode-Kommandozeilentools wie clang und cmake installiert sind.
$ brew install googletest google-benchmark zstd
Führen Sie zunächst den cmake-Initialisierungsschritt aus
$ CXX=clang++ cmake -D CMAKE_BUILD_TYPE=Release -S lib -B clang-build-release --install-prefix ${PWD}/install
Als Nächstes:
$ cd clang-build-release && make -j 16 && ctest -j 16
Wir haben mehrere Unit-, Sumcheck- und ZK-Benchmarks definiert. Hier sind einige davon:
$ ./algebra/fft_test --benchmark_filter='BM_*'
$ ./circuits/sha/flatsha256_circuit_test --benchmark_filter=BM_ShaZK_fp2_128