In the previous article I wrote about the general topics of Minswap DEX. In this article I will explain the FISO model, and the Laminar protocol, of Minswap DEX.
The FISO Model
The ISO (Initial Stakepool Offering) model, consists of funding a development project by creating a stake pool, setting a very high, or even 100%, variable margin, whereby developers collect block rewards based on that margin, in ADA, and deliver project tokens to their delegators in return.
This novel model, was designed by the SundaeSwap team, in April 2021, implemented with delay, recently, and successfully used by MELD, already concluded and with great collection.
Minswap developed an innovation on that model, called Fair Initial Stakepool Offering (FISO), which allows projects to raise funds in a decentralized way with broad community participation and small SPOs to gain delegation.
The advantages of this model are several:
- Allows SPOs to directly benefit from the growth of DeFi and other projects.
- Further decentralizes Cardano’s network
- Provides opportunity for SPOs to build trust and reputation as a FISO partner
Selection, by lottery of registrants, took place between July 16 and July 29, 2021. The criteria for an SPO to participate were:
- Single pool operators.
- Pool size range: 100,000 – 2,000,000,000 ADAs
- Fixed cost: 340 ADAs.
- Minimum pledge: 20,000 ADAs.
- Variable margin: <5%.
- Block production history: Minimum 1 block produced.
The FISO had a duration of 20 epochs Token distribution to delegators was set based on the number of epochs delegated, and earned rewards are claimable by participating wallets after the last epoch of the FISO.
Since Minswap ran a FISO-0 %, participants who delegated to FISO pools received the full block rewards, in ADA, that would be expected to be earned by delegating in consensus, and additionally receiving the distribution of Minswap tokens.
A FISO-0% means that Minswap did not receive any of the ADA rewards, since the purpose was not to raise funds, but to distribute tokens to the community, and to incentivize MIN token recipients to generate liquidity in the DEX, when it trades.
The FISO collected over 200 million delegated ADAs, with over 14,000 delegators receiving token distribution, across the 25 partner pools, over 3 months, minting 2,400 blocks in the process,
Stakepools partners: ADAHS, ADATA, ALFA, ALPCH, AMOON, APOOL, BACK, BLADE, COINZ, DEGAS, EU01, EUSKL, FUNGI, GINGR, HYPE, JUST, MALU, NOVA, QCPOL, RSV, SOLIA, SWELL, TREE, VAULT and YOADA.
The schedule for claiming tokens is as follows:
- January 10, 2022: MIN tokens can be claimed on the mainnet.
- February 24, 2022 to March 11, 2022: all FISO participants with unclaimed MINt tokens may claim both MINt and MIN in a single transaction.
- March 11, 2022: Last day to claim MIN and MINt tokens.
- Q2 2022 (currently expected): Yield Farms Launch.
Unclaimed tokens will be returned to the Treasury.
Laminar: The Minswap DEX Protocol
The potential cost, security and scalability advantages of Cardano’s eUTXO model and Haskell-based smart contracts are exceptional.
Some of DeFi’s ideas, such as Constant-product pricing’s Automated Market Maker (AMM), are only possible in accounting-style smart contracts. That’s why the Minswap team proposes a novel way to execute accounting-style smart contracts multiple times in a block, without sacrificing decentralization.
Laminar, from Latin lamina or “slice, layer,” to mean the smooth, parallel flow of liquidity.
Laminar is a batching protocol design that:
- Can scale indefinitely as the transaction limit allows, without any parameter updates.
- Is upgradeable and composable without hard-fork or liquidity migration.
- Works on layer 1 eUTxO chains.
- Designed to be MEV-resistant.
- Decentralized and DDoS-resistant.
- Provides secondary revenues to SPOs.
- Requires no changes to the underlying accounting style smart contract.
In the graphs below we can see the processing differences:
Each time a user needs to interact with a smart contract in the accounting model (which is represented as a UTxO script), he or she must block that contract by one block, which means that if many users want to interact with a UTxO smart contract, only one can succeed.
Batch processing means that all user interactions with the UTxO smart contract are combined into one transaction.
Laminar is based on a simple observation: an accounting model UTxO that is spent N times in N blocks will have the same result as if it is spent N times in 1 block.
With Laminar’s approach, the transaction fee for a batch will be divided among all users participating in the batch.
At startup, there will not be many requests per block, therefore, profitable batches result in high user fees, and low user fees result in unprofitable batches. This makes start-up difficult. The solution is similar to the one that will apply to early liquidity provision, and that is to additionally incentivize early batches with governance tokens. A sort of lotting with token mining. The governance tokens will keep the batch flow going until batch processing is sustainable with batch request (BR) fees alone.
The requirement to become a batch processor is simple, you just need to run a full node and the batch processing bot. The Sybil attack can be prevented by requiring each batcher to contribute a certain amount of ADA. The batching bot, and documentation are open source from Minswap. Surely SPOs are likely to be the first batch processors.
The batcher rate does not need to follow a bidding system. Laminate is flexible enough to have different incentive schemes for different use cases that can align batcher interest with user interest.
One effective way to avoid malicious requests is to have each batch request contain a time token, this is the way to request BRs in a transaction. Each BR will only be validated if all BRs in the same transaction are of the same type and are ordered by this time token.
Laminar is DDoS resistant. An attacker will face batch competition from all other batch processors and therefore has very little chance of success. Even if an attack succeeds, it would only delay the request fulfillment by one block, before all other competing batch processors fulfill it.
The interesting thing about Laminar is that the incentive mechanism is not hard-coded into the protocol, which means that it can be more easily updated and/or composed.
No Solution is Foolproof for Every Challenge
The first challenge is that, in the case of volatile, high-volume trades, a market order may be lost or delayed due to a lot limit or canceled due to high slippage. Although in this case, users only have to pay a small amount of ADA to upgrade or withdraw BR.
The second is to bundle many state transitions of the base smart contract into a single transaction. Since the base contract is independent of the batch processing protocol, its state transition cannot be affected by the batch order. This means that only all swap actions in a transaction, or all add liquidity actions in a transaction, etc. will be allowed to be batch processed. This results in some batches taking longer than 2 blocks to finish.
The third is that since a batch transaction has no way of knowing the total number of BRs, a batch processor may deliberately skip some orders. However, if a batcher wants to extract value from this, the cost will outweigh the gains as the batch processing network grows.
The latter is that multiple UTxOs of scripts are required to be executed in one transaction, and there is the transaction limit.
Off-chain Sequencer: The Short-term Solution
A sequencer requires all transactions related to a liquidity pool to be sent through a backend. Because they are all sent through a centralized point, UTxOs can be chained in the same block, since it is known which UTxO will be in the current block prior to confirmation. A sequencer can operate on many pairs, but must be dedicated to specific token pairs in the DEX.
To reduce centralization and single point of failure, the sequencer host will be federated with other projects whose tokens are traded on Minswap. The host addresses of the federated sequencer will be updated in the user interface.
Split Liquidity into Multiple UTxOs: Why Not?
One of the most obvious solutions to avoid UTxO contention is to split the smart contract into multiple UTxOs, along with their liquidity. Two popular market making models that work with this approach are the order book and the concentrated liquidity AMM (Uniswap v3).
Current market making models do not meet the solution requirements for issuing new tokens through constant product AMM.
The team believes that splitting liquidity is a natural approach to solving the concurrency challenge on an eUTxO chain. This approach is also constrained by transaction limits.
To maintain a decentralized blockchain, it is crucial to impose some limits. Currently, there are three important limits on an Alonzo transaction, transaction size, memory size, and computational size.
These limits are not critical to the design of the protocol, they are just parameters to be modified, which can be voted on as part of governance.
Web site: https://minswap.org