Log Periodic is an independent research and development lab working on protocols to improve the internet's resilience and efficiency.

### Articles

- Range-Based Set Reconciliation is a method for synchronising data-sets. This article describes the theory behind RBSR and introduces Log Periodic's negentropy project.
- Attacks on Commit-Reveal Schemes describes two subtle attacks on generating secure randomness with commit-reveal protocols.

### Apps

- strfry is a C++ implementation of the nostr protocol, a distributed communication protocol that approximates CRDTs. strfry is designed to be highly efficient, and supports syncing of data-sets using the negentropy protocol.
- riblet is a command-line tool for efficiently diffing and syncing large sets, using Rateless Invertible Bloom Lookup Tables (RIBLT)
- ephemerand: A globally-consistent randomness beacon that extracts unpredictable data from the GPS almanac.

### Libraries

- negentropy is a protocol specification for a method of set reconcilliation. This allows two parties to compare remote databases and determine which entries are missing on each side, using only a logarithmic number of bandwidth and network round-trips. Reference implementations in C++ and Javascript are included, along with analysis and tests.
- quadrable is an authenticated multi-version database. It is implemented as a sparse binary merkle tree with compact partial-tree proofs. There are C++ and Solidity libraries, as well as a git-like command-line tool.

### Utilities

- Birthday Problem Collision Generator: A C++ program that implements Wagner's k-dimensional birthday-problem solver algorithm. It currently solves for the subset-sum problem, but could be adapted to several other contexts.
- XOR Hash Collision Generator: A simple perl script useful in several contexts.