SpinAda Schema Design And Business Features

Spinada Cash
4 min readMay 22, 2022

Spinada aims to facilitate a fully decentralized protocol for private transaction on Cardano Blockchain. In this update we will understand how the whole protocol is being designed and and try to understand various components of this protocol and their utility and how they fit together.

User roles

  1. Investor — interacts with governance contract.
  2. Relayer — a user that has enough assets to become a relayer.
  3. User (Anonym) — a user that wants to make a private transaction.

Contracts

  1. Ada Pool
  2. Governance

a. User Account

b. Proposal

Ada pool research & development

Allowed transaction size on Cardano limits datum size =>

We will have to limit a number of deposits to prevent going out of limits.

Minimum storage size for one unique deposit:

Nullifier Hash = 256 bit

Merkle Tree Root = 256 bit

Commitment (not required) = 256 bit

Total 0.1 KB per deposit (ten deposits per KB)

That means if we have 16 KB — 10 KB (script size) = 6 KB space, then we will have 60 users per script.

ZKP circuit research.

1> Zero knowledge proof (ZKP) arithmetic circuit that we will implement and use

2> Libraries/frameworks to implement the circuit and construct zero knowledge proofs

3> Chosen Circom for framework

4> How circuits are implemented in Circom ?

5> Using circom framework to implement the circuit and test ZKP construction

next steps:

a. check if we need to optimize the circuit or are we good to go

b. implement a ZK proof validation using Plutus Platform and check the previously constructed ZKP

5th researched point was a major step we needed to work out to continue with the project. Inside arithmetic circuit we needed to substitute Mimc hash with sha2–256 used in Plutus Platform and change the dependent circuit parts. We’ve implemented the circuit and constructed a test proof, and all is working correctly.

System Schema

1. Governance

Params:

● Governance currency symbol

● Users Contract Hash

● Proposal Contract Hash

● User Token Policy Symbol

● Proposal Token Policy Symbol

GNFT + Datum:

● Relayer Fee

● Vote threshold

● Make proposal threshold

● Become relayer threshold

● Votes to execute

● Voting time

● Denominations List

2. Users Accounts

User Token + N SPIN + Datum

● RelayerInfo

endpoint

pkh

fee

● ProposalInfo

● VotingInfo

ADA Pool business features

  1. Deposit
  2. Withdraw

User Account business features

  1. Stake
  2. Unstake
  3. New relayer
  4. Update relayer
  5. Delete relayer
  6. Vote

Let’s take a look at schema contract for each of the component.

  1. Stake

2. Unstake

3. New Relayer

4. Update Relayer

5. Delete Relayer

6. Vote

Governance business features

  1. Create user
  2. Create proposal
  3. Apply proposal

Let’s take a look at schema contract for each of the component.

  1. Create user

2. Create Proposal

3. Apply Proposal

--

--

Spinada Cash

First decentralized private transaction protocol for Cardano.