
Identity Protocols를 위한 Google Zero-Knowledge 라이브러리 구현
Longfellow 라이브러리는 ISO MDOC 표준, JWT 표준, W3 Verifiable Credentials와 같은 레거시 신원 확인 표준과 관련된 영지식 프로토콜의 구성을 가능하게 합니다. 이 구현은 다음 문헌에 설명되어 있습니다:
이름은 Google Cambridge 사무실 밖에 있는 다리에서 따왔습니다.
이 프로젝트는 해당 분야의 학계 및 산업계 전문가 패널에 의한 여러 독립적인 보안 검토를 완료했습니다. 그들의 보고서는 프로젝트 문서/검토 페이지에서 확인할 수 있습니다.
이 저장소는 Longfellow와 그 구성 요소에 대한 명세를 위한 작업 파일을 포함하고 있습니다. 기여에 관심이 있으시면 Issue 또는 Pull Request를 생성해 주세요. 논의는 Issues에서 이루어집니다.
관련 devcontainer를 사용하여 환경을 생성함으로써 라이브러리를 테스트할 수 있습니다. 위의 Code-->Codespaces-->Create codespace on master를 클릭하기만 하면 시작할 수 있습니다. 이는 모든 종속성을 포함하는 docker 컨테이너를 Github 서버에 생성하고 현재 코드베이스에 대한 웹 기반 VScode 인터페이스를 제공합니다. 이 환경에서 벤치마크를 컴파일하고 실행할 수 있지만, VM으로 인해 일부는 보고된 값보다 느릴 수 있습니다.
이 패키지는 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
clang 및 cmake와 같은 Xcode 명령줄 도구가 설치되어 있는지 확인하세요.
$ 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
우리는 여러 단위, sumcheck 및 zk 벤치마크를 정의했습니다. 다음은 그 중 일부입니다:
$ ./algebra/fft_test --benchmark_filter='BM_*'
$ ./circuits/sha/flatsha256_circuit_test --benchmark_filter=BM_ShaZK_fp2_128