Blockchain fees are an underexplored topic that plague the UX of decentralized applications. Currently, Ethereum users need to hold a balance of ETH to pay for gas fees. There are many workarounds like meta transactions to make onboarding users easier. An often discussed concept is “economic abstraction” - letting users pay fees in other tokens aside from ETH. The Cosmos multi-token fee model aims to embrace this concept. In this model, validators are able to accept different token denominations as fees by whitelisting tokens and configuring minimum fees they are willing to accept per denomination. But using this model also comes with UX implications for the network, especially for stakers that will receive paid transaction fees as compensation.

The Cosmos Multi-Token Universe

In the Cosmos ecosystem, transactions will be routed through the Cosmos Hub via the inter-blockchain communication protocol (IBC). Since transaction fees are paid out as rewards to stakers, a world where users pay in multiple tokens also means that those staking will, by design, receive a fraction of these tokens as rewards.

In this world, the UX problem lies on the side of those providing their capital and services to secure the network. Small delegators might end up with tiny balances of fee tokens worthless to them. So how do we get rid off this dust? 🧹

Introducing Babelfish

As part of the Cosmos Seoul hackathon, we conceptualized a solution to this problem and won third prize with it. Babelfish is a protocol designed to accumulate fee tokens across a period of time (number of blocks) and to automatically auction them off in a batch. Our design uses Atoms as the auction pair. It distinguishes between individual auctions for popular payment tokens and basket auction for niche tokens.

An Example of a Fee Auction Flow.

Implementation Details

The hackathon implementation uses a first price open bid auction. The following will walk through a hypothetical cBTC (BTC on a Cosmos peg zone) auction:

  • 🕒 Auction period: cBTC paid as fees are collected for 10,000 blocks.
  • ⚖️ Weighting: cBTC contributed to the auction pool is tracked for each validator.
  • 📈 Bidding: Escrow bid amount in ATOM. When outbid, previous highest bidder’s escrow is returned.
  • 💰 Distribution: Winning bidding escrow gets distributed to validators and delegators according to weights. Auctioned off cBTC are sent to the account that won the bid.
  • ⏭️ Roll over: If no bid was placed, transaction fee pool forwards to the next auction period.

For a more detailed description and discussion of potential issues check out our in-depth writeup on Babelfish here.

Conclusion

Babelfish could provide a business model to the Cosmos Hub to offer fee auctions as a service to other blockchains. Additionally, the protocol also enables delegation vouchers to work in a multi-token environment. There are quite possibly some alterations and alternatives to this design.  Making use of second price, dutch, or closed auctions is possible. An interesting alternative to our solution could also lie in an automatic conversion of fees using a Uniswap-style DEX. We are excited to contribute our research to making a user-friendly internet of blockchains a reality.

About Chorus One
Website: https://chorus.one
Twitter: https://twitter.com/chorusone
Telegram: https://chorus.one/telegram
Discord: https://chorus.one/discord