In this article, I’d like to talk about one of the most discussed topics recently, when it comes to developing projects based on blockchain — execution markets.
Why it’s interesting? Well, there are at least 3 reasons. Firstly, it’s the way to automate management of blockchain protocols. Secondly, it makes onboarding users of these platforms more straightforward. Thirdly, executors in such systems earn profit from participation.
Let’s start from the beginning — what is execution market?
The way it works is the following: one pays the other person for executing a transaction in the blockchain. Example of such system is Ethereum Alarm Clock, where people pay for executing their transaction at given time.
The importance of time in transaction execution is only specific to this project and it’s not a rule. What’s worth to note though, is transaction is delayed and saved, for example, in a smart-contract.
Let's talk about the usefulness of execution market in protocol automation. Let's imagine a situation where someone created an application based on the blockchain, which sends salary to a certain group of people each 10th day of the month. Currently, to do this (without relying on centralized systems, like cron) you would need to sit in front of your computer each 10th day of the month, to send this transaction.
Is it comfortable? Rather not, why should you repeat the process many times if you can automate it? Let's use one of the execution markets for that. It lets you schedule such transactions for the next year. We can schedule 12 transactions, paying gas refunds and bounties for people, who will execute them. This way, our application management can be automated.
By the way, such system can be trusted — everything is confirmed in the blockchain — especially conditions when transaction can be executed. The only problem might be when there would be a lack of actors who execute transactions. When there’s at least a few of them — network will operate correctly.
Currently, applications based on blockchain face the challenge to attract users. In such situation, it’s natural, that community aims to eliminate some of the barriers. One of them is the requirement of having Ethereum wallet with some funds. So user has to know how to create a wallet, get some crypto and posses basic technical knowledge how it all works together. It’s a challenge for new users.
There is a solution, however, in which users might not even know that under the hood they use blockchain-type solutions. Application owner, who’s interested in getting new users, can pay of gas costs for executing their transactions.
Thanks to this, user doesn’t need to have its own Etheruem wallet. We can generate Ether-less private key for that user. It will be only used for signing transactions and verification that transaction is coming from this user. When it comes to storage of such private key, it can be stored exclusively on user’s machine. This ensures user has a full control over account and application owner can’t act in name of the user without approval — digital signature.
Transactions can be collected and immediately executed by application owner, but they can be submitted on the execution market as well. This makes the execution part decentralized. User can put his transaction on the execution market directly too (without paying for it) and the application owner will execute them. In the latter example, however, we need a knowledge which transactions are really coming from our users. Another thing required by someone who implements such system is protection against abusing service.
Here I would like to mention Origin Protocol, which allows for creation of decentralized markets, such as decentralized Airbnb. Part of the system is registration, for example, host needs submit his document and connect his social media accounts. Creation of such identity on the blockchain requires paying for gas and as well having wallet, funds etc. However, application owner can execute this transaction on behalf of the user. This needs to bring a value to the company running the application. So, let's start with a question — when would it be worth to do it? Maybe when the host creates first offer for house rental? Maybe in case of every user while he registers on our platform? It really requires brainstorming for a concrete business model, after all, this is going to be an additional cost for the application maintainers.
How to earn crypto in execution markets?
Key aspect of the correctly functioning market is meeting needs of all sides. So, on the one hand, we want people to use the market — and on the other, we reward execution agents. A simple example of such execution agent is a program, which can be run locally (or in the cloud). It’s best if it would be running all the time. The agent needs to know about transactions on the market — that’s why we need an internet connection. In the case of executing transactions, it also needs a small amount of crypto to get started. For executing transaction agent earns bounty and gas refund. Bounty is set by the market.
One can find here similarities to the process of mining cryptocurrency. Personally, I think in future execution agents will be plugins to blockchain clients — such as Parity or Geth. You can run your node and at the same time as you mine, you can also run an execution agent and get a better return of investment. According to some information currently, there’s a Python Ethereum client in the works, which will support plugins like this. Maybe it’s only a matter of time when we will see similar possibilities in Geth and Parity.
This topic is strongly discussed in Ethereum and many projects are interested. When it comes to standardization, we still don’t have one, unified way on how to implement it. It creates a risk of fragmentation — too many architectures and separate markets, with a varying number of agents executing transactions. A low number of agents can destabilize the market and make it broken. This is why I’ve highlighted here a few things, that could help in the creation and adoption of execution markets:
- Standardization of on-chain and off-chain architecture — standards EIP-1077 Executable Signed Messages and ERC-1228 Delegated Execution
- Standardization of bounties for agents — ERC-1197 Meta Payments
- Many implementations of executing agents
From one side, execution markets can help applications get clients, on the other side they depend on the number of them. It means that people need to use blockchain systems and send transactions, so part of them can end up on execution market. Currently, as we can see by observing recent transactions in Ethereum, people would rather use decentralized exchanges, take part in ICO and games like CryptoKitties. Seems like we still need to wait for traffic in applications which truly make the world a better place.