Simplifying the transaction experience is critical for Web3 projects

Aditya Khanduri
Biconomy
Published in
6 min readNov 18, 2020

Every interaction is a complex transaction for users

One key difference between web2 and web3 products is that almost every interaction with an application is a ‘transaction’. To interact with an application smart contract, the user has to necessarily pay the infrastructure cost (gas) in Ether. In comparison to intuitive web2 products that people are used to, this is extremely frustrating. Every time they interact with the application to do a simple task, a complicated Metamask screen will pop up. Moreover, the user is supposed to pay for every interaction! This is very overwhelming not only for the non-crypto users but also for the crypto-savvy users. Imagine paying for an app you just downloaded just so you can explore what it does. This is clearly a huge bottleneck in user onboarding.

Transaction management is a nightmare for developers

On the other hand, all these interactions translating to transactions means development teams need to manage an incredible number of transactions. Managing these at the backend is a nightmare. Often, we have seen that a combination of new users and increased interest in any decentralised application clogs the network and slows down the application. The high traffic creates a huge mess in the transaction pool, causing a lot of transactions to remain pending for far longer than usual. There are simply not enough blocks for miners to mine all the transactions. Most transaction management systems are currently not set up to monitor and handle massive transaction requests. This affects every user’s ability to send transactions and every application is affected.

Thus, it is critical for decentralized protocols & applications to not only simplify the transaction experience for the users but also simplify transaction management for the dev team.

This article will dive deeper into the inner workings of a transaction lifecycle, and then we will see how we simplify these transactions for your users and yourself. But first, let’s understand what happens behind the curtains of a blockchain transaction.

What is a transaction?

Transactions are cryptographically signed instructions from either an externally owned account or a contract. The aim of a transaction is to update the state of the blockchain to reflect the changes. A transaction can be as simple as transferring a cryptocurrency from one account to another or be a complex flash loan transaction involving a large number of intermediate steps.

Here are the broad steps involved in a ‘transaction’:

Transaction flow for a blockchain transaction
  • The user authorises and signs a transaction on the DApp or wallet using an interface ex. Metamask(?)
  • The Dapp or a Wallet will send the signed transaction from the user to a node via an endpoint ex. Infura that will enable the transaction to be sent to the Ethereum network.
  • Once the transaction is sent to a node it will be verified by the node and will be added to its mempool.
  • The node then broadcasts the transaction to its neighbouring nodes. There are two types of nodes: the peer nodes and the miner nodes.
  • The peer nodes will receive the transaction, validate it, move it into their own mempool, and broadcast to additional peers. This essentially replicates the transaction across the network.
  • The miner node will also validate it and attempt to add it to a block.
  • When a miner node adds the transaction to a block, it will broadcast the new block across the network.
  • Once all the nodes have received the new block, they will verify if the particular transaction is included in the block. If yes, then the nodes will remove the transaction from their mempool.
  • Hence, the final transaction is broadcasted and completed

The above transaction system is evolving fast to be robust enough for mainstream adoption. However, there are many areas where it can be optimized to simplify the transaction process.

Major bottlenecks in the transaction journey

Necessity to pay gas
As mentioned above, web3 products cost some fee just to use the product. Three things are certain in life: death, taxes, and paying gas fees on decentralized products. But if people can find ways to cheat taxes and possibly even death, we have ways to avoid the gas fee as well!

Users can only pay in ETH:
To interact with a decentralized application or protocol, you need to own ETH. That’s the only way to use the product. This means non-crypto savvy new users will have to pass KYC and purchase ETH before they can go any further. You can’t use traditional FIAT money, nor any other token. Not only do you need to own these ETH, but also ensure sufficient balance in the linked wallet.

Complicated process for new users:
The necessity to pay gas fees for interacting with an application, and the fact that you can only do so in ETH, is a major hurdle for new users. The sheer number of technical steps required before you can even try out the product makes the whole transaction process difficult for a lay man that is not proficient in cryptocurrency jargons.

Volatile & High gas fees:
One of the biggest issues currently faced is that gas prices are volatile and high. The average gas fee is reaching as high as 10–12$!. That’s steep for even legacy financial products. The volatility causes another issue. Interacting with your DApp maybe 0.1 cents today but the same action may be 0.5 cents tomorrow.

Interoperability issues:
There is a lack of global standards and frameworks. This can cause interoperability issues amongst various DeFi legos on a transaction level. Without interoperability your funds in different tokens and protocols will remain in isolated silos unable to interact with each other. For example, Wrapped Bitcoin (WBTC) allows users with bitcoins to participate in DeFi on Ethereum, which was previously not possible. Interoperability ensures transactions can happen easily across multiple chains to enable a simpler experience.

Pending and stuck transactions:
Due to the well documented layer 1 scaling issues at the moment on Ethereum, transactions frequently get stuck. Users may wait for even an hour just to get the result of their actions on the application. Imagine waiting for an hour before you can watch a video on Netflix! And sometimes the transaction fails altogether.

How we simplify transactions at Biconomy

At Biconomy, our main aim to simplify the transaction journey for the end user and remove all the complexities involved. We believe the end users shouldn’t be aware of what’s happening under the hood. The user should be able to use a web3 application as intuitively as they use web 2.0 applications.

To achieve our vision of transaction simplification, we are basically working in the following ways:

Gasless transactions:
Gasless transactions, or meta transactions, make it free for users to do transactions over the blockchain without the need to spend any gas. This simplifies the user onboarding, especially for new crypto users, as they can use your application without having to worry about gas fees and buying ETH. This is more of a long term vision for us as we believe gas fees will be cheaper in future and will only be server fees.

Pay fees in any ERC20 token:
While digging further down the rabbit hole, we found that many crypto-savvy users don’t mind paying the gas but they may not have ETH with them all the time. They may have their funds in another token. Or they may not want to spend ETH. Converting ERC20 tokens to ETH takes a lot of time and the process is expensive as well. To provide more convenience to such users, we let them pay fees in ERC20 tokens so that the transactions can be both cheaper and efficient.

Network Agnostic transaction:
There have been a plethora of layer 2 solutions and EVM (Ethereum Virtual Machine) compatible smart chains flooding the market to try to solve the current issues. However, this introduces another UX friction. It becomes extremely difficult for the users to keep switching the network all the time on their MetaMask. With Biconomy, users don’t have to switch networks and can process transactions via Ethereum mainnet only. What happens behind the hood stays behind the hood.

Layer 2 exits:
Exiting your funds from layer 2 currently is a bit like Hotel California — You can check out any time you like, but you can never leave. Well, not ‘never’ but your funds will be stuck for hours and even days. Hence, this is another feature in high demand. We have already been brainstorming and working on different ideas on how to enable quick fund movement from L2 to L1 and even between different L2s. So let us know if you have any suggestions for this!

Blockchain mainstream adoption sounds less crazy each passing day. However, simplifying the transaction process for the users and the developers will go a long way in helping us reach there much faster.

--

--

Aditya Khanduri
Biconomy

Marketing @Biconomy | Interested in Blockchain, Artificial Intelligence, Biotech & emerging tech startups | Tea aficionado