
Реализация библиотеки Google Zero-Knowledge для протоколов идентификации.
Библиотека Longfellow позволяет создавать протоколы с нулевым разглашением для унаследованных стандартов верификации личности, таких как ISO MDOC, JWT и W3 Verifiable Credentials. Эта реализация описана в:
Название происходит от моста, расположенного рядом с офисом Google в Кембридже.
В настоящее время проект проходит две независимые аудиты безопасности, проводимые группами академических и отраслевых экспертов. Их отчёты доступны на странице Project documentation/Reviews.
Этот репозиторий содержит рабочие файлы для спецификации Longfellow и её компонентов. Если вы заинтересованы в участии, создайте Issue или Pull Request. Обсуждения ведутся в Issues.
Вы можете быстро протестировать библиотеку, используя соответствующий devcontainer для создания окружения. Просто нажмите Code-->Codespaces-->Create codespace on master выше, чтобы начать. Это создаст docker-контейнер на сервере GitHub, который включает все зависимости и предоставляет веб-интерфейс VScode для текущей кодовой базы. Вы можете скомпилировать и запустить наши бенчмарки в этой среде, но некоторые из них могут работать медленнее из-за виртуальной машины.
Этот пакет зависит от 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