SpinAda Schema Design And Business Features
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
- Investor — interacts with governance contract.
- Relayer — a user that has enough assets to become a relayer.
- User (Anonym) — a user that wants to make a private transaction.
Contracts
- Ada Pool
- 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
- Deposit
- Withdraw
User Account business features
- Stake
- Unstake
- New relayer
- Update relayer
- Delete relayer
- Vote
Let’s take a look at schema contract for each of the component.
- Stake
2. Unstake
3. New Relayer
4. Update Relayer
5. Delete Relayer
6. Vote
Governance business features
- Create user
- Create proposal
- Apply proposal
Let’s take a look at schema contract for each of the component.
- Create user
2. Create Proposal
3. Apply Proposal