libdpf/doc/pages/introduction.md
Ryan Henry cf8054a0b3 Add point-programmable vector commitments.
A commitment can be published before its hidden coordinate is chosen.
Opening one side of each aligned 1-bit DPF pair sets that coordinate or
the vector sum, and a shift moves it onto a public index.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-26 18:34:05 -06:00

1.5 KiB

Introduction

Synopsis

libdpf++ is a fast and extensible, header-only C++17 implementation of (2,2)-distributed point functions (or DPFs). In addition to core DPF functionality, libdpf++ provides a plethora of data structures, helper functions, and syntactic sugar designed to facilitate seamless integration into higher-level cryptographic protocols and primitives. With its focus on speed and ease of use, libdpf++ is an ideal building block for implementing private information retrieval (PIR), secure multiparty computation (MPC), zero-knowledge arguments, anonymous messaging, and more.

Features

  • input types
  • output types
  • wildcards
  • multiple leaves
  • evaluation types
  • memoizers
  • json serialization
  • asynchronous I/O
  • [point-programmable vector commitments](@ref ppvc_manual)

Credits

  • Adithya Vadapalli (IIT Kanpur)
  • Kyle Storrier (UCalgary)
  • Allan Lyons (UCalgary)

Disclaimer

We bet you $50 that there is at least one security bug in this code base. If you are you use this code, it is on you to verify that bug does not cross any of the same code paths as you.