
Implémentation de la bibliothèque Zero-Knowledge de Google pour les protocoles d'identité.
La bibliothèque Longfellow permet la construction de protocoles zero-knowledge concernant les normes d'authentification d'identité héritées, telles que la norme ISO MDOC, la norme JWT et les W3 Verifiable Credentials. Cette implémentation est décrite dans :
Il porte le nom du pont situé devant le bureau de Google à Cambridge.
Ce projet est actuellement soumis à deux revues de sécurité indépendantes par des panels d'experts académiques et industriels du domaine. Leurs rapports sont disponibles sur la page Project documentation/Reviews.
Ce dépôt contient les fichiers de travail pour une spécification de Longfellow et de ses composants. Si vous souhaitez contribuer, veuillez créer une Issue ou une Pull Request. Nos discussions se déroulent sous Issues.
Vous pouvez tester rapidement notre bibliothèque en utilisant le devcontainer associé pour créer son environnement. Cliquez simplement sur Code-->Codespaces-->Create codespace on master ci-dessus pour commencer. Cela crée un conteneur Docker sur un serveur Github qui inclut toutes les dépendances et fournit une interface VScode basée sur le Web pour notre base de code actuelle. Vous pouvez compiler et exécuter nos benchmarks dans cet environnement, mais certains d'entre eux peuvent être plus lents que nos valeurs rapportées en raison de la VM.
Ce paquet dépend de cmake, openssl, zstd, clang, googletest et 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
Les versions plus récentes de Fedora semblent nécessiter libpfm-devel :
$ yum install -y clang libzstd-devel openssl-devel git cmake google-benchmark-devel gtest-devel libpfm-devel
Assurez-vous que les outils de ligne de commande Xcode tels que clang et cmake sont installés.
$ brew install googletest google-benchmark zstd
Exécutez d'abord l'étape d'initialisation cmake
$ CXX=clang++ cmake -D CMAKE_BUILD_TYPE=Release -S lib -B clang-build-release --install-prefix ${PWD}/install
Ensuite :
$ cd clang-build-release && make -j 16 && ctest -j 16
Nous avons défini plusieurs benchmarks unitaires, sumcheck et zk. En voici quelques-uns :
$ ./algebra/fft_test --benchmark_filter='BM_*'
$ ./circuits/sha/flatsha256_circuit_test --benchmark_filter=BM_ShaZK_fp2_128