project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5
project screenshot 6

Minado

We build a Mixer for Mina, it allows private transactions in Mina with just 1 step.

Minado

Created At

ETHBogotá

Winner of

trophy

🏊‍♂️ Mina — Pool Prize

Project Description

What did we build?

We build a Mixer Protocol in Mina, the high-level idea is to allow private transactions for Mina, which we believe is necessary for building a fully private and secure ecosystem.

Why a Mixer?

As ZkBuilders we believe that the future should not be one where you lose control over your data. Also, we build this protocol recognizing that security and privacy should not be hard for the end-user.
We envision a world where people can control their data in a smooth and low-effort way.

How does it work? The protocol is divided into 3 parts:

-Deposit logic: In the deposit, the following actions are executed.

  1. A Minado account that will pay the gas fees is funded
  2. A userAccount is funded to deposit into our minadoZkAppAccount..
  • Note: In a real implementation this would not happen as the account already has a balance
  1. A commitment needs to be created C(0) = H(S(0),N(0)) Note: S= Secret , N= Nullifier ( N(0) = Hash(PB(user),Random private key )) 3.1 A Secret is created using Poseidon ( Cryptography library in Snarky ) 3.2 A Nullifier is created to avoid double spending 3.3 The Secret and the Nullifier are hashed and the commitment is created.
  2. The commitment is added to the Leaf of the Merkle Tree.
  3. A note which we can understand as a Zk-proof of the commitment is provided to the user to store it.
  4. Funds are sent from the user account to the minadoZkAppAccount

-State management ( Merkle Tree) : The steps we followed are:

  1. Create a Merkle Tree instance.
  2. Wrap the Merkle Tree into an off-chain storage form
  3. Set leaf with the Commitment Ex: C(0)
  4. Get the root of the tree " Initial commitment" Which would be used to verify the transaction "

-Validation and Withdraw (Circuit)

  1. The user provides the note.
  2. With the note a Merkle tree Witness is generated based on the commitment index ( Which comes from the commitment provided)
  3. With help of the witness the commitment is verified, without revealing it. The witness allows us to "reconstruct" the Merkle path getting to the root and validating that the commitment is part of the Merkle path

The future of our project

We think this project is fundamental for creating a privacy and security ecosystem, also we are sure it could create more impact after this Hackathon.

The future steps that we will execute for this project are:

  • Integrate compatibility with Wallets: We want to focus first on delivering a secure, friendly, and high-quality product. We will integrate compatibility with Aura Wallet and then Chainsafe or Uniswap when the integration is ready, the goal is to increase adoption.

-Upgrade from a Mixer to a Private Rollup: We want to build a privacy rollup that enables more builders to create ZkApps on top of our protocol, for example, Defi private protocols, including lending applications, staking applications, and an infinite number of possibilities.

-Building bridges between Minado and other blockchains: We will start building bridges with other blockchains to increase volume and liquidity which will benefit other builders like us and will enhance network effects.

How it's Made

For this project we used: -SnarkyJs -Mina. zk-CLI -The Merkle Tree implementation provided by Mina. -Different Mina implementations as an example for our implementation. . -We used Poseidon as our cryptography library to run different powerful Zk functions

The future steps that we will execute for this project are:

  • Integrate compatibility with Wallets: We want to focus first on delivering a secure, friendly, and high-quality product. We will integrate compatibility with Aura Wallet and then Chainsafe or Uniswap when the integration is ready, the goal is to increase adoption.

-Upgrade from a Mixer to a Private Rollup: We want to build a privacy rollup that enables more builders to create ZkApps on top of our protocol, for example, Defi private protocols, including lending applications, staking applications, and an infinite number of possibilities.

-Building bridges between Minado and other blockchains: We will start building bridges with other blockchains to increase volume and liquidity which will benefit other builders like us and will enhance network effects.

background image mobile

Join the mailing list

Get the latest news and updates