With the introduction of multi-asset support and smart contracts in Cardano, it was essential to extend the basic multi-signature scripting language with more advanced options.
Multi-asset (MA) support is the name for a set of features (functionality) that a ledger (blockchain/wallet/cryptocurrency) can provide, allowing you to do accounting or transact with more than one type of asset.
Cardano’s MA support feature is called Native Tokens. MA allows users to transact with ADA, and an unlimited number of user-defined tokens.
This support is native, meaning that tokens can be transacted using the accounting system defined as part of the blockchain ledger functionality, without the need for smart contracts to enable this functionality.
Cardano operates based on the unspent transaction output (UTxO) accounting model. This process uses transaction inputs and outputs as records to track fund transfers, ownership and balances.
User funds are stored as unspent transaction outflows, each of which has an amount that can be spent. Inflows are unspent outflows from previous transactions. As soon as an output is used as an input to a transaction, it is spent, and cannot be used again as an expense for another input.
The output is specified by:
- an address: containing a payment credential and an optional participation credential, either a verification public key hash or a script hash. Technically, the staking credential can also be a pointer to the registration certificate.
- a value: reflects the actual amount of ADA that can be spent.
A transaction must be signed by the owner of the private key (also called the signing key), which corresponds to the payment credential included in the address.
Cardano Shelley supported only ADA transactions. However, Shelley’s formal specification introduced the concept of multi-signature (multisig) scripts, which, by their nature, are captured in their entirety by the ledger rules. This multisig scheme, allows the output of an unrealized transaction to be used as input to a new transaction, if a predefined combination of signatures is provided. For example, if two of three signatures are configured for a transaction, two persons have to sign the transaction simultaneously, i.e. two of the three keys have to be provided.
With the Alonzo rules integrated into the ledger (meaning the addition of smart contract capabilities to Cardano), the necessary tools and infrastructure were added, as well as support for a new scripting language: Plutus Core.
To upgrade multisig to Plutus Core, the Alonzo ledger implemented the unspent transaction output accounting (eUTxO) model, using Plutus Core to provide powerful scripting capabilities.
The eUTxO model extends the UTxO model, allowing output addresses to contain complex logic to decide which transactions can be used to unlock them, and adding custom data to all outputs.
To do this, scripts require a well-defined and well-specified scripting language, and data must be attached to the outputs, which will be passed to the script during execution. Plutus Core allows the execution of such complex scripts by nodes during transaction validation while they are “live” on the chain.
UTXOs can be blocked in the form of validator scripts, or as minting policies, which control the minting and burning of native tokens.
The Proposal
While multisig currently exists in the Cardano ecosystem, there is no solution for coordinating transaction sharing and signing.
The proposal is to build a Solidity contract for multisig coordination in Cardano, to create Cardano multisig transactions, using any EVM chain as middleware.
When looking to build robust decentralized protocols, this centralization is a heavy choke point that must be addressed.
This is doubly true when we get into the realm of building bridges between Cardano and other chains.
This will be used as a key part of Milkomeda, to facilitate the movement of assets from the M1 sidechain to the Cardano mainnet.
Milkomeda is a sidechain with alternate VMs connected to Layer 1 mainchains, which use their cryptocurrency as the base asset. In Cardano they will use wADA (wrapped ADA) as the asset to pay transaction fees. It will be a protocol that employs the concept of wrapped smart contracts.
This will also provide one of the fundamental building blocks for creating decorrelated bridges to any EVM compatible chain. The contracts will be general enough that one day they could theoretically be used to build more decentralized bridges to Ethereum as well.
The dcSpark Team
The company was founded by Sebastien Guillemot, Nicolas Arqueros and Robert Kornacki.
Sebastien Guillemot
After working at Microsoft, he joined EMURGO (Cardano’s Consensys) as VP of Engineering and Product Manager at Cardano, where his team built products that reached 6-digit active user numbers, and led the development of SDKs used by large companies such as Coinbase.
Nicolas Arqueros
He has experience in both founding and mentoring many successful startups during his career. He was previously the CTO of EMURGO (Cardano’s Consensys) and is currently a member of the Board of Directors of the Cardano Foundation and Senior Investment Advisor at SOSV.
Robert Kornacki
Started as a fellow at dLab (blockchain accelerator program) and later joined Ergo Foundation as a board member, as well as EMURGO (Cardano’s Consensys) as Head of Research, where he developed design patterns and smart contracts that manage millions of assets.
They recently joined Nicolas Di Prima, as Chief Engineer and Cryptographic Engineering specialist, who worked on the ancestor of Yoroi: Icarus Wallet and the successful work on the delivery of the first implementation of Ouroboros Praos: Jörmungandr, the node that powered the ITN. Most recently he led the entire development of Cardano’s Catalyst voting platform.
Funds requested: USD 40,000
The original proposal for this FUND6 in the Catalyst Project can be read here.