Multisig vs Smart Contracts
When it comes to noncustodial purchasing, if you're building on Cardano, there are two possible approaches: multisig and Plutus smart contracts transactions. In general, whatever problem can be solved with multisig transactions, can also be solved with smart contract transactions. That said, multisig has some advantages over smart contracts, so it is helpful to understand the strengths and weakness of both approaches.
When in Doubt, Multisig
Multisig transactions are useful for any type of asset swap between multiple parties. Here are some examples that can be handled with multisig transactions:
Minting an NFT on demand, where the NFT creator is paid Ada and customer gets the NFT in a single transaction.
Trading one NFT for another NFT in a single transaction.
Trading multiple NFTs and some Ada, for a newly minted NFT.
Hopefully, you get the idea. Any type of trade between multiple parties are great uses of multisig transaction. These types of exchanges are risk-free for all parties, and happen in a single transaction. This contrasts with smart contracts (as we discussed in Plutus 101), which always require at least two transactions.
Multisig transactions could be used for more exotic situations as well. By utilizing a long Time To Live (TTL), and a common party, a multisig transaction could be used to create an order book. Should one do this? I don't know, but I merely pointed it to show we haven't scratched the surface of what is possible with multisig transactions.
Multisig transactions are criminally under used in the Cardano ecosystem. They allow noncustodial purchasing, with a single transaction without any programming. This leads to a simple, easy to audit purchase flow for the end user.
The main roadblock to their acceptance appears to be lack of wallet support (although Nami does support them), and lack of awareness by devs and customers.
The Big Hammer
Smart contracts can achieve everything multisig transactions can; however, they always require a minimum of two transactions to do so. Additionally, smart contracts require more development time, both for the contract itself and the integration. Moreover, it is more difficult for users to understand what a smart contract can and cannot do, leading to potential trust issues.
They are more expressive. Multisig transactions are fixed. Nothing about the transaction can change in any way after one party signs it.
There is no way to make an offer of Ada for any spacebudz with a multisig contract, but this possible with a smart contract. A multisig offer would require the exact token name was specified in advance, but using a custom Plutus validator, one can only check that the correct policy ID was present.
Smart contract transactions can also occur between parties that are not aware of each other. Essentially, they require less centralization to utilize.
Cardano is fortunate that it has both multisig and smart contract transactions. They both have their place in Cardano commerce, and both should be utilized more.
Hopefully, this post helps you understand the main benefits of both approaches, so you can choose the appropriate solution for your problem.
If you are unsure if your problem is a good fit for multisig or smart contracts transaction, don't hesitate to contact us at Canonical. We love talking to creators or projects big and small.