Mosaic: Analysis of the Proof of Concept and Fee Model Optimization
By Jesper Kristensen and 0xbrainjar
Composable Finance has begun to analyze the initial data from our cross-layer asset transferal system to learn more about user behavior. This data will help guide our future design choices and features to optimize user-experience aspects, such as cost and time of transfers, balanced against the safety and scalability of our network.
An overview of Mosaic and our data
Mosaic is a novel framework for cross-chain and cross-layer token swaps which works to maximize user benefits. For this analysis, we leveraged our Liquidity Simulation Environment (LSE) along with the data we collected from the PoC itself to guide our discoveries.
Before diving into the details, we want to share how grateful we are to the Composable community for your continued support. We also extend gratitude to everyone who participated in the PoC.
Mosaic’s PoC data analysis
Our data team extracted the PoC’s preprocessed on-chain data and then ran the following analyses:
To help visualize the Mosaic PoC transfer data, we mapped each network supported in the PoC as a node. To fill out the graph, each line between the nodes represents transfers between networks.
This graph was generated using a ForceAtlas2-based algorithm simulating the nodes and edges of a physical system in order to spatialize the network. This uses spring-like forces along the edges and gravity-like forces between the nodes to simulate the graph representation as a physical system.
The steady state of this system will generally be a representation where the nodes and edges exhibit minimal visual clashing. Note that while the thickness of bands represent the transfer volume between networks, the networks were not all added at the same time — Arbitrum and Polygon were a part of the PoC from the beginning and other networks were added later. For example, Avalanche support was added on October 6, Moonriver on October 13, and Fantom on October 22. Thus, line thicknesses are not necessarily indicators of network popularity or volume.
To analyze transfer times, we started by looking at transfer time versus transfer size through the amount of tokens moved denominated in the origin token. For example, if 10 wETH is moved, this is recorded as a size of 10 and not converted to USDC.
In the figure above, the three horizontal black dashed lines delineate, from low to high, one minute, five minutes and 10 minutes in transfer time. For visual purposes, only values less than 30 minutes are shown. This distribution is generally a flat band between 1 to 10 minutes — even for layer 2 (L2) to layer 1 (L1) transfers. For high transaction amounts, the time can be longer, but generally for the PoC the two are rather independent — a good sign.
Next, we can compare transfer times versus the type of transfer in the form of the origin and destination networks.
This figure depicts transfer times in seconds for various network transfers irrespective of the token moved. The three horizontal black dashed lines also delineate, from low to high, one minute, five minute and 10 minutes in transfer times.
We find that 90% of transfers are completed within 10 minutes, 95% within 11 minutes, and 99% within 14 minutes regardless of which supported network is bridged. For the PoC, we used 35 confirmations to transfer to L1.
Some other bridges in DeFi use much lower values, such as 10 confirmations. Thus, we conclude that in 95% of cases our transfer could have been sped up by lowering this confirmation threshold.
Transfer amounts per network are shown in the figure below.
Here, we see an equivalent distribution of data across all networks. The PoC capped transfers at $20,000, which is also seen in the data. Most transfers were on the order of 0.01 to 10,000 in units of origin tokens, which was also subject to our cap.
Mosaic Fee Model Optimization
To analyze our fee model, we plotted the data as it falls on the fee curve defined by Mosaic. This graph shows the fee charged versus the transfer amounts as a percent of available liquidity in the origin vault. For example, if 10 wETH is transferred from a vault on Arbitrum with 1000 wETH it would show up at x= 10%. The y-axis shows the fee charged, in per-cent, for the transfer.
At the beginning of the PoC, vaults were on the order of $100–200k. The exact numbers for each token (which in turn was distributed across multiple networks like Arbitrum and Polygon) are available here.
Our outlined fee curve led to an annual percentage yield (APY) of 8.5% (computed over the one month PoC) for liquidity providers across all USDC-equivalent assets and ETH. The APY is for passively contributing capital. Outside of this APY, the average fee charges were low at 0.32% per transfer.
Optimizing Mosaic’s Fee Model
Our next step is to optimize Mosaic’s fee model which we have three free parameters for:
- the liquidity % at which the maximum fee kicks in
- the maximum fee % to charge
- the minimum fee % to charge
In the PoC, these parameters were set at 40%, 4%, and 0.25% respectively.
We now loop through different combinations of these parameters and plot the results below. The APY earnings varied linearly with the second and third parameters. The first parameter shows up in the denominator of the fee curve so we get a 1/x behavior of the APY as shown below.
In this figure, to be sure, the APY on the y-axis is computed by running all the PoC transfers through each fee-curve defined by a point on the x-axis. The red point on the curve denotes our 40% liquidity (one of our free parameters) and our found 8.5% APY.
To help advise us on revising our parameters, we compared our fees to the general cross-ledger community. In this comparison, we found that some operators charge a fixed 0.5% for all transfers — higher than the average per-transfer fee in Mosaic’s PoC.
Some other operators charge different fees depending on whether you are leaving Ethereum or arriving from another chain. Other fee models are fixed dollar amounts and some are a percentage with minimum and maximum dollar amounts. Certain operators do not state a fee but instead charge a “hidden fee” by quoting a given transfer rate. More fee variations also exist.
Given this fee landscape, and comparing this to the level of security we aim for in the system we decided to pick the following parameters after an automated search in the LSE:
- 30% liquidity when a max fee kicks in
- 4% maximum fee
- 0.25% minimum fee
In fact, using these parameters, we find that the APY for USDC is 10.0% and 10.7% for wETH.
Through our analysis of Mosaic’s PoC, and looking at the real-world transfer data acquired, we found that 90% of transfers are completed within 10 minutes, 95% within 11 minutes, and 99% within 14 minutes. Better yet, 95% of those transfer times can be further decreased, and we plan to make those improvements in the near future.
Through analyzing the transfer data and optimizing Mosaic’s fee model based on a comparison with other bridge solutions in the DeFi landscape, we have shown through our data how we can optimize Mosaic’s fee model to ensure that LPs earn around — if not more than — 10% APY when contributing wETH and USDC.
Again, we sincerely appreciate the continued support from our community, and we appreciate everybody whois participating in the Mosaic PoC. Our contributors are the ones who enabled us to deliver on our promise to service the blockchain-agnostic future — we thank you for that support.
If you are a developer with a project you think fits our ecosystem and goals, and you would like to participate in our interactive testing landscape at Composable Labs, reach out on Telegram at @brainjar.