Determine the Market Type
Kalypso has 4 different types of markets that together enable onboarding all types of proof systems. Every proof system falls in one of the following categories:
- Type-1: Markets which require support for confidential inputs and where proofs can be verified on-chain
- Type-2: Markets which require support for confidential inputs and where proofs have to be verified in TEEs
- Type-3: Markets which don't require support for confidential inputs and where proofs can be verified on-chain
- Type-4: Markets which don't require support for confidential inputs and where proofs have to be verified in TEEs
Each market type differs slightly in the steps to follow to successfully create a functioning market. The decision tree below attempts to simplify the same.
Type-1 Market
A type-1 market supports confidential inputs with proofs that are verifiable on-chain. It requires:
- Building a prover-executable which is packaged inside the Generator enclave
- Deploying the Proof Verifier smart contract generated by the proving system's tools
- Making the market creation smart contract call
Type-2 Market
A type-2 market supports confidential inputs with proofs that are not directly verifiable on-chain but have to be verified in TEEs. It requires:
- Building a prover-executable which is packaged inside the Generator enclave
- Deploying the Proof Verifier smart contract which verifies TEE attestations from Generator enclaves
- Making the market creation smart contract call
Type-3 Market
A type-3 market supports only public inputs with proofs that are verifiable on-chain. It requires:
- Building a prover-gateway
- Creating the Input Verification enclave
- Deploying the Proof Verifier smart contract generated by the proving system's tools
- Making the market creation smart contract call
Type-4 Market
A type-4 market supports only public inputs with proofs that are not directly verifiable on-chain but have to be verified in TEEs. It requires:
- Building a prover-gateway
- Creating the Input Verification enclave
- Deploying the Proof Verifier smart contract which verifies TEE attestations from Input Verfication enclaves
- Making the market creation smart contract call