Skip to main content

Commitment trees

Although Rarimo users fully own their confidential social graph, some on-chain state data is required to facilitate the use of ZK proofs in social apps. The protocol employs Commitments to create public anchors for the artifacts of confidential social graphs and commitment trees to securely and efficiently store the commitments on-chain.

Rarimo Protocol defines the following tree types:

An aggregation of commitment trees corresponding to some confidential social graph forms a social forest. The social forest can be used to build novel privacy-first social apps. Here are several examples of such applications:

  • Users seeking to create a permissionless chat may utilize the Arbitrary Statement Tree(ARST). Each message is encapsulated within a corresponding commitment. For anonymity, participants might opt for random salts and signatures, discarding them after usage. Deterministic salt and consistent keypairs for signing can be used to prove the message sequence later.
  • The Asjustable Statement Tree(ADST) can be employed to establish a chat accessible only to users meeting specific criteria. Users must provide proof of eligibility when posting messages, with the eligibility criteria set transparently by the chat's creator and enforced via smart contract.
  • Entities desiring to act as identity providers, such as authoritative organizations issuing verifiable credentials, should use the Credential Trees. Unlike the ARST and ADST trees, this tree type is exclusively manageable by its owner.
  • The Time Trees(TT) are most suitable for events confined to a specific timeframe, such as petition signings or periodic check-ins for liveness proofs.