Outsourcing Blockchain Transaction Fees

May 30, 2018 · 3 min read

While working on Token wallets for our customers, we found that they and their users found it strange that to send tokens you also need to transact a small amount of Ether to cover the transaction’s cost.

Transaction fees are necessary on Blockchains, as they act as an incentive to miners to keep the network running and also as a security measure against DDoS-attacks. However, they pose as a serious threat to accessibility of new users and inhibit further acceptance in the more casual user base.

Let’s say a user accesses a service that uses utility tokens. Every time the user wants the service to perform its function, e.g. rent a car, sell a unit of solar energy, or vote, the user needs to send a token of the service plus some Ether as transaction fee.

For those cases we want to ‘outsource’ the transaction costs to make the service more accessible.

There are already some approaches that are working on this issue:

EIP-865 attempts to completely incorporate transaction fees into one token transaction without the need of Ether. It is unknown if and when this can be realized because it would require a different consensus algorithm and therefore a hard fork. Also this would only work on the main-chain and not on custom Ethereum-based chains out of the box.

uPort is using ‘Meta Transactions’ where relayers pay the fee for the user. It is left open how to find and interact with this relayer.

This is where our solution steps in.

Our Transaction-Relay seamlessly integrates into existing infrastructure by mimicking an Ethereum-RPC endpoint. This way it requires no change in existing software solutions.

Image for post
Image for post

When a user creates a transaction of any kind, the relay analyzes its content (sender, recipient, and data) and decides if this transaction is applicable for ‘fee outsourcing’ and, if so, to which service it belongs. The relay then directs a new transaction that amounts the required fee of the original transaction from the service provider to the user. Finally, when the user received the fee, the original transaction is submitted to the blockchain.

Decoupling the process of submitting a transaction to a blockchain made it possible to completely separate sending transactions and paying their fees. This way service providers that cover the fees can choose for themselves how they get reimbursed. They could deduct an amount of tokens from their users or handle the payment off-chain at any time.

Other types of blockchains (private or consortium) also benefit of the relay: Think about user onboarding. New accounts could be automatically permissioned to send only some types of transactions (e.g. registering a new user name or email-address). Once the owner of this account has been further authenticated, for instance by verifying the authenticity of his email, all types of transactions would be granted.

Our goal here is to remove most of the friction users face when interacting with smart contracts. We think that this is a flexible and pragmatic approach that will help companies benefit from blockchains from a purely functional point of view while hiding its complexity from their customers.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store