GithubHelp home page GithubHelp logo

deimos's Introduction


DEIMOS

Blockchain-Enhanced, Rust-Implemented Transparency Dictionary for Secure, Trustless Data Management and Communication.


delta devs Dependencies GitHub Issues Contributions welcome License

Deimos: Transparency Dictionary - Rust Implementation

๐ŸŒ• Overview

This project is a Rust-based implementation of a Transparency Dictionary, strongly inspired by the paper Tzialla et. al. It offers a secure, scalable solution for managing a label-value map in environments where the service maintaining the map is not completely trusted. The system ensures the integrity and authenticity of operations using cryptographic proofs.

๐ŸŒ– Features

  • Robust Security: Leverages indexed Merkle trees and zkSNARKs to protect against unauthorized data modifications.
  • Efficient Verification: Offers O(log n) proofs of membership/non-membership ensuring minimal verification time.
  • Scalability: Optimized for large-scale applications, capable of managing millions of labels with low overhead.
  • Rust-Based: Implemented in Rust, offering strong memory safety and performance benefits.

๐ŸŒ— Goals

Here are the key objectives that are driving the current development of our project:

  1. Versatile utility: Development of a highly versatile application that ensures data security and automatic verifiability.

  2. Decentralized trust: Implementing a system where trust is decentralized. By using transparency dictionaries such as Deimos, we want to ensure secure and transparent operation, regardless of the trustworthiness of the service provider.

  3. Enabling light client verification: We are implementing a WASM light client that can be integrated into any front end application. This will allow for automatic verification of the service for end users. This allows the creation of (the first ever) E2EE chat apps without solely depending on safety numbers to guard against MITM attacks.

  4. Security and privacy for Web2 and Web3 applications: By incorporating the features of Deimos, we plan to improve the security and privacy aspects of Web2 and Web3 applications. This is in line with our goal to provide robust data protection for both private and commercial users across different platforms.

  5. Maximizing privacy: Our ultimate goal is to maximize privacy for users of all kinds. We aim to create a framework that not only secures data, but also respects and upholds user privacy.

๐ŸŒ˜ Status

The project is still in the development phase and is not yet suitable for use in production environments.

We have already implemented working zkSNARKs, but are focusing on optimizing the computations within the circuits and making general improvements to the structure of the zkSNARK code. In addition, we are experimenting with different methods of posting on public ledgers such as blockchains (e.g. Celestia) and exploring the feasibility and effectiveness of P2P solutions consisting solely of transparency dictionaries such as Deimos.

Due to this ongoing development work, changes are still being made that may affect existing functionalities.

The system has not yet been audited for security reasons and should therefore not yet be used in production environments.

We will continuously update the documentation to reflect the completion status of each component. Additionally, we will be adding more contribution notes, including design documents, architecture diagrams, repository layouts and good first issues.

We thank you for your patience and will be happy to answer any questions.

๐ŸŒ’ Installation

Prerequisites

To use this project, you need a working database. A reference implementation with Redis is supported. The use of a data availability layer is also required. A reference implementation with Celestia is available for this project, which is a very cost efficient and lightweight blockchain solution and on which the cryptographic commitments and the zero-knowledge proofs are posted and verified by light clients. We are planning further reference implementations; for the moment, we are showing the process and installation of the existing implementations and, based on this, the launch of Deimos.

Install Redis

Redis serves as a powerful in-memory database that is used to store the label-value pairs. Follow these steps to install Redis:

  1. Download Redis from Redis Download Page.
  2. Follow the installation instructions for your operating system.

You don't have to start redis on your own, Deimos is doing that job for you.

Install Celestia

A DA layer such as Celestia is an important component for data security and availability. It stores the cryptographic commitments and parameters of the zkSNARKs and ideally enables them to be verified. Follow the instructions here to deploy a local testnet.

Starting the sequencer

If Redis is installed and the local devnet is running, Deimos can be started. Deimos can be started in two different ways, as a sequencer (service provider and proof generator) or as a light-client (to verify the proofs posted on Celestia using the cryptographic commitments). To start the sequencer, run the following command:

cargo run sequencer

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

cargo run light-client

You can then interact with Deimos via the interfaces defined in webserver.rs. Based on the data exchanged or stored via the interface the global indexed merkle tree changes and proofs based on these changes then are created in defined epochs (currently 60 seconds) and cryptographic commitments including the proof parameters are posted in the Celestia namespace.

๐ŸŒ‘ Rest API

Please refer to our REST API documentation for detailed information on how to interact with Deimos.

๐ŸŒ“ 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.

๐ŸŒ” Documentation

This project is strongly inspired by the scientific papers about Transparency Dictionaries with Succinct Proofs of Correct Operation, CONIKS and Certificate Transparency. For detailed background information regarding the basics of the project, we invite you to have a look at our documentation. It contains both cryptographic basics and the more advanced concepts that make Deimos possible.

deimos's People

Contributors

distractedm1nd avatar sebasti810 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.