
Identity Protocols를 위한 Google Zero-Knowledge 라이브러리 구현
Longfellow 라이브러리는 ISO MDOC 표준, JWT 표준, W3 Verifiable Credentials와 같은 기존 신원 확인 표준에 관한 영지식 프로토콜을 구축할 수 있게 해줍니다. 이 구현은 다음 문서에 설명되어 있습니다:
이 이름은 Google 캠브리지 사무실 밖에 있는 다리에서 따왔습니다.
이 프로젝트는 현재 학계 및 업계 전문가로 구성된 두 개의 독립적인 패널에 의해 보안 검토가 진행 중입니다. 이들의 보고서는 프로젝트 문서/리뷰 페이지에서 확인할 수 있습니다.
이 저장소에는 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
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
여러 단위, sumcheck 및 zk 벤치마크를 정의했습니다. 그중 일부는 다음과 같습니다:
$ ./algebra/fft_test --benchmark_filter='BM_*'
$ ./circuits/sha/flatsha256_circuit_test --benchmark_filter=BM_ShaZK_fp2_128