10000 GitHub - deltadevsde/prism: prism is the first trust-minimized key-transparency solution, allowing for automatic verification of service providers via light clients.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

prism is the first trust-minimized key-transparency solution, allowing for automatic verification of service providers via light clients.

Notifications You must be signed in to change notification settings

deltadevsde/prism

Repository files navigation

Prism

prism

delta devs Dependencies GitHub Issues Contributions welcome License

identity layer enabling automatic verification of end-to-end encrypted services, providing users with trust-minimized security and privacy through transparent key management.

What is Prism?

Prism is a decentralized key transparency protocol, first inspired by the paper Tzialla et. al, leveraging zkSNARKs and DA solutions to enable trust-minimized verification of E2EE services via WASM/Native light clients. This eliminates the possibility for hidden backdoors in E2EE services through a user-verifiable key management system. It uses transparency dictionaries under the hood, offering a generalized solution for managing a label-value map in environments where the service maintaining the map is not completely trusted.

Prism provides the first key-transparency solution to enable automatic verification of the service provider. This is achieved by providing constant size succinct proofs to WASM/Native light clients over a data availability layer. Alternative DA solutions are in planning, allowing for a less trust-minimized client where a p2p node cannot be embedded.

The system is designed to be efficient, scalable and secure, making it suitable for a wide range of applications.

You can view further information about the project in our documentation. The project is undergoing rapid development. You can view the current development status here.

Status

The project is still in the early development phase, is pending an audit, and is not yet suitable for use in production environments.

Due to this ongoing development work, changes are still being made that will affect existing functionality and the API.

Circuits

Initially, Prism was implemented with handwritten circuits. These legacy circuits for both groth16 and supernova are available in the zk crate, but are no longer maintained and will not compile with the latest version of the imported crates.

We have found, against intuition, that the SP1 zkVM provides much better performance than the legacy circuits. It also offers a more secure, auditable implementation that is maintainable by any rust developer. For our explanation as to why a zkVM ends up being more efficient, refer to our documentation.

Installation

Prerequisites

Install Dependencies

We use just as a task runner. Once installed, you can install the rest of the dependencies with:

just install-deps

Building

To build the project, run:

just build

This will compile the prism-cli binary and sp1 ELF that are used to run the prover, light-client, and full-node.

Running a local DA layer

To run a local Celestia network for testing, use:

just celestia-up

Starting the prover

If the dependencies are installed and the local devnet is running, a prism node can be started.

Prism can be started in three different ways:

  1. as a prover (service provider and proof generator)
  2. as a light-client (to verify the proofs posted on Celestia using the cryptographic commitments)
  3. as a full-node (acts as a service provider, processing all transactions and making the state available to the light-clients)

To start the prover, run:

prism-cli prover

This will output the prover's verifying key in the logs, which you can use along with the light-client and full-node to verify the proofs.

to start the light-client, run the following command:

prism-cli light-client|full-node --verifying-key <verifying-key>

You can then interact with Prism via the interfaces defined in webserver.rs.

Contributions

Contributions are welcome! Please refer to our contributing guidelines for information on how to submit pull requests, report issues, and contribute to the codebase.

About

prism is the first trust-minimized key-transparency solution, allowing for automatic verification of service providers via light clients.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 20

0