Giter Site home page Giter Site logo

miden-base's Introduction

Miden Rollup protocol

LICENSE test no-std RUST_VERSION GitHub Release

Description and core structures for the Miden Rollup protocol.

WARNING: This project is in an alpha stage. It has not been audited and may contain bugs and security flaws. This implementation is NOT ready for production use.

Overview

Miden is a zero-knowledge rollup for high-throughput and private applications. Miden allows users to execute and prove transactions locally (i.e., on their devices) and commit only the proofs of the executed transactions to the network.

If you want to join the technical discussion or learn more about the project, please check out

Status and features

Polygon Miden is currently on release v0.2. This is an early version of the protocol and its components. We expect to keep making changes (including breaking changes) to all components.

Feature highlights

  • Private accounts. The Miden Operator tracks only commitments to account data in the public database. The users are responsible for keeping track of the state of their accounts.
  • Public accounts. With public accounts users are be able to store the entire state of their accounts on-chain, thus, eliminating the need to keep track of account states locally (albeit by sacrificing privacy and at a higher cost).
  • Private notes. Like with private accounts, the Miden Operator tracks only commitments to notes in the public database. Users need to communicate note details to each other via side-channels.
  • Public notes. With public notes, the users are be able to store all note details on-chain, thus, eliminating the need to communicate note details via side-channels.
  • Local transactions. Users can execute and prove transactions locally on their devices. The Miden Operator verifies the proofs and if the proofs are valid, updates the state of the rollup accordingly.
  • Standard account. Users can create accounts using a small number of standard account interfaces (e.g., basic wallet). In the future, the set of standard smart contracts will be expanded.
  • Standard notes. Can create notes using standardized note scripts such as pay-to-ID (P2ID) and atomic swap (SWAP). In the future, the set of standardized notes will be expanded.

Planned features

  • More storage types. In addition to storing a limited set of simple values, the accounts will be able to store data in storage maps (mapping 256-bit keys to 256-bit values) and storage arrays.
  • Transaction recency conditions. Users will be able to specify how close to the chain tip their transactions are to be executed. This will enable things like rate limiting and oracles.
  • Delegated note inclusion proofs. By delegating note inclusion proofs, users will be able to create chains of dependent notes which are would be included into a block as a single batch.
  • Network transactions. Users will be able to create notes intended for network execution. Such notes will be included into transactions executed and proven by the Miden operator.
  • Encrypted notes. With encrypted notes users will be able to put all note details on-chain, but the data contained withing the notes would be encrypted with the recipients key.

Project structure

Crate Description
objects Contains core components defining the Miden rollup protocol.
miden-lib Contains the code of the Miden rollup kernels and standardized smart contracts.
miden-tx Contains tool for creating, executing, and proving Miden rollup transaction.
mock Contains utilities to help with testing Miden rollup components.

Testing

To test the crates contained in this repo, you can use cargo-make run the following command present in our Makefile.toml:

cargo make test-all

Some of the functions in this project are computationally intensive and may take a significant amount of time to compile and complete during testing. To ensure optimal results we use the make test command. It enables the running of tests in release mode and using specific configurations replicates the test conditions of the development mode and verifies all debug assertions. For more information refer to the Makefile.toml for the specific commands and configurations that have been chosen.

License

This project is MIT licensed

miden-base's People

Contributors

bobbinth avatar dominik1999 avatar frisitano avatar hackaugusto avatar phklive avatar plafer avatar ashucoder9 avatar kmurphypolygon avatar igamigo avatar polydez avatar fumuran avatar mfragaba avatar al-kindi-0 avatar gubloon avatar diegomrsantos avatar nlok5923 avatar bitwalker avatar grjte avatar mountcount avatar vuittont60 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.