Ethereum meta transactions

User base sucks

One of the main reasons the decentralized applications are not gaining enough of the user base is the pretty complicated onboarding process.

Even apart of the complications caused by the fact the majority of people don’t grasp the main benefits of DAPPs, the process of user’s interaction is too complicated.

First, is the requirement for specific tools. Depending on the type of the Blockchain, it might be a particular browser, a browser’s plugin, a wallet tool or even specific hardware. Although, I’m happy to see that this barrier has been getting lower over the time, thanks to the increasing maturity and healthy development of those applications and tools.

Second, and the really overkill requirement is the obligation to pay the transaction gas. This basically means, BEFORE you deal with any DAPP, you must have had an experience with (semi) decentralized application (or a friend ;) to get a matter of payment for the transaction. In the case of Ethereum, this means you have to have ETH on your address’ account. And, according to research, this effectively cuts out up to 95% of the potential users.

We need more gas!!

Getting even a second popular cryptocurrency, like Ether, is not trivial. Many services and exchanges offer a service to buy crypto for fiat, but it’s still not user-friendly enough that I could explain it to my (grand) parents.

Note: there is an absolutely tremendous sketch made by the Mainframe guys revealing it, enjoy watching

Sounds like a classic chicken and egg dilemma.

So, how to solve it?

Meta transactions = gasless transactions

The concept of meta transactions allows users to interact with the decentralized applications having ONLY a public/private keys pair (i.e., a ‘wallet’ tool).

And nothing more.

How does it work?

A user with an Ethereum account can craft a transaction in a similar way to how the ‘normal’ transaction is created, sign it with the own private key, but instead of sending it on-chain (which is usually the last step that requires paying ETH for gas), they send it to so-called a ‘relayer’, or the actual ‘sender’.

Relayer might be a tool, a service, or even a person who is willing to pay the gas fee.

Once the transaction is sent on-chain, it will hit a dedicated ‘proxy’ smart contract first, which will validate the signature, making sure it’s correct and signed by exactly same person who’s claiming to be a signer.

Depending on the use case, the ‘proxy’ contract might do extra works or perform a particular validation, but this depends purely on the DAPP itself.

Last action ‘proxy’ will do, is transmitting the transaction call to the target smart contract.

This mechanism allows sending transactions to Ethereum, as long as there is a party who is interested, or incentivized in a way, to cover the gas costs with own funds.

Effect

I personally think that making this concept work in practice has enormous potential in the mass Blockchain adoption, similar to ERC20 back then. The barrier to interact with the decentralized application drops drastically, expanding the areas where DAPPS can be built and effectively used by ‘normal’ people, and not the Blockchain geeks only.

Use cases

Some applications put the meta transaction’s concept in place and benefit from it already.

Here are just to list a few:

  • Identity proves. Allows the holder of the ‘etherless’ wallet to confirm his/her identity, effectively sending gasless transactions to the target DAPP. Relayer (the actual gas payer) might be the Identity Solution provider itself, who benefits from just wider use of the app. Example uPort https://www.uport.me/.
  • Crypto exchange. Allows the ‘etherless’ account exchanging the tokens it holds, so people who’s got some crypto tokens can swap them to others, or to ETH. Typically, the ‘relayer’ is incentivized by a portion of tokens in return. Example Radar Relay https://radarrelay.com/
  • Crypto game. People can play and win the crypto games having only Metamask installed, with no ETH. Typically, the ‘relayer’ takes some portion of the win prize. See EthBattle https://ethbattle.io/