
Implementierung der Google Zero-Knowledge-Bibliothek für Identitätsprotokolle.
Die Longfellow-Bibliothek ermöglicht die Konstruktion von Zero-Knowledge-Protokollen für veraltete Identitätsüberprüfungsstandards wie den ISO-MDOC-Standard, den JWT-Standard und W3 Verifiable Credentials. Diese Implementierung wird beschrieben in:
Es ist nach der Brücke vor dem Google-Büro in Cambridge benannt.
Dieses Projekt durchläuft derzeit zwei unabhängige Sicherheitsüberprüfungen durch Gremien von akademischen und industriellen Experten auf diesem Gebiet. Ihre 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 daran interessiert sind, beizutragen, erstellen Sie bitte ein Issue oder einen Pull Request. Unsere Diskussionen finden unter Issues statt.
Sie können unsere Bibliothek schnell testen, indem Sie den zugehörigen Devcontainer verwenden, um seine Umgebung zu erstellen. Klicken Sie einfach oben auf Code-->Codespaces-->Create codespace on master, um zu beginnen. Dadurch wird ein Docker-Container auf einem Github-Server erstellt, der alle Abhängigkeiten enthält und eine webbasierte VScode-Oberfläche zu unserer aktuellen Codebasis bereitstellt. Sie können in dieser Umgebung unsere Benchmarks kompilieren und ausführen, aber einige davon können aufgrund der VM langsamer sein als unsere gemeldeten Werte.
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 benötigen:
$ yum install -y clang libzstd-devel openssl-devel git cmake google-benchmark-devel gtest-devel libpfm-devel
Stellen Sie sicher, dass die Xcode-Befehlszeilentools wie clang und cmake installiert sind.
$ brew install googletest google-benchmark zstd
Führen Sie zuerst 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