
Реализация библиотеки Google Zero-Knowledge для протоколов идентификации.
Библиотека Longfellow позволяет создавать протоколы с нулевым разглашением для устаревших стандартов проверки идентичности, таких как стандарт ISO MDOC, стандарт JWT и W3 Verifiable Credentials. Данная реализация описана в:
Библиотека названа в честь моста рядом с офисом Google в Кембридже.
Этот проект прошёл несколько независимых проверок безопасности группами академических и отраслевых экспертов в данной области. Их отчёты доступны на странице Документация проекта/Обзоры.
Этот репозиторий содержит рабочие файлы для спецификации Longfellow и его компонентов. Если вы хотите внести свой вклад, создайте Issue или Pull Request. Наши обсуждения проходят в Issues.
Вы можете протестировать нашу библиотеку, используя соответствующий devcontainer для создания её окружения. Выберите Code → Codespaces → Create codespace on main, чтобы начать. Это создаст контейнер на GitHub, который включает зависимости и предоставляет браузерный интерфейс VS Code. Там вы можете скомпилировать и запустить наши бенчмарки, хотя виртуальная машина может работать медленнее, чем указанные измерения.
Этот пакет зависит от 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
Более новые версии fedora, похоже, требуют 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
Мы определили несколько бенчмарков для unit, sumcheck и zk. Вот некоторые из них:
$ ./algebra/fft_test --benchmark_filter='BM_*'
$ ./circuits/sha/flatsha256_circuit_test --benchmark_filter=BM_ShaZK_fp2_128