
Implementación de la biblioteca Zero-Knowledge de Google para Protocolos de Identidad.
La biblioteca Longfellow permite la construcción de protocolos de conocimiento cero relacionados con estándares heredados de verificación de identidad, como el estándar ISO MDOC, el estándar JWT y las Credenciales Verificables de W3. Esta implementación se describe en:
Recibe su nombre del puente situado frente a la oficina de Google en Cambridge.
Este proyecto ha completado varias revisiones de seguridad independientes realizadas por paneles de expertos académicos y de la industria en este campo. Sus informes están disponibles en la página Documentación del proyecto/Revisiones.
Este repositorio contiene los archivos de trabajo para una especificación de Longfellow y sus componentes. Si estás interesado en contribuir, crea un Issue o un Pull Request. Nuestras conversaciones se llevan a cabo en Issues.
Puedes probar nuestra biblioteca utilizando el devcontainer asociado para crear su entorno. Selecciona Code → Codespaces → Create codespace on main para comenzar. Esto crea un contenedor en GitHub que incluye las dependencias y proporciona una interfaz de VS Code basada en el navegador. Puedes compilar y ejecutar nuestros benchmarks allí, aunque la VM puede ser más lenta que las mediciones reportadas.
Este paquete depende de cmake, openssl, zstd, clang, googletest y 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
Las versiones más recientes de fedora parecen requerir libpfm-devel:
$ yum install -y clang libzstd-devel openssl-devel git cmake google-benchmark-devel gtest-devel libpfm-devel
Asegúrate de que las herramientas de línea de comandos de Xcode, como clang y cmake, estén instaladas.
$ brew install googletest google-benchmark zstd
Primero ejecuta el paso de inicialización de cmake
$ CXX=clang++ cmake -D CMAKE_BUILD_TYPE=Release -S lib -B clang-build-release --install-prefix ${PWD}/install
A continuación:
$ cd clang-build-release && make -j 16 && ctest -j 16
Hemos definido varios benchmarks de unidad, sumcheck y zk. Aquí hay algunos de ellos:
$ ./algebra/fft_test --benchmark_filter='BM_*'
$ ./circuits/sha/flatsha256_circuit_test --benchmark_filter=BM_ShaZK_fp2_128