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 following: one pays the other person for executing 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 save, for example, in a smart-contract.
Lets talk about usefulness of execution market in protocol automation. Lets imagine situation where someone created application based on blockchain, which send salary to 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 month, to send transaction.
Is this comfotable? Rather not — even more if you can automate this. Lets use one of the execution markets, which lets use schedule such transactions for the next year. We schedule 12 transactions, paying gas refund 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 lack of actors who execute transactions. When there’s at least few of them — network should work.
Currently applications based on blockchain face the challenge to attract users. In such situation, it’s natural, that community aims to eliminated 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 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 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 it’s own Etheruem wallet. We can generate Ether-less private key for that user. It will be only used for signing tarnsactions 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 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, lets start with a question — when would it be worth to do it? Maybe when host creates first offer for house rental? Maybe in case of every user while he registers on our platform? It really requires brainstorming for concrete business model, after all, this is going to be additional cost for the application maintainers.
How to earn crypto in execution markets?
Key aspect of 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. Simple example of such execution agent is a program, which can be run locally (or in cloud). It’s the best if it would be running all the time. Agent needs to know about transactions on the market — that’s why we need 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 similiarities 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 execution agent and get 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 similiar possibilities in Geth and Parity.
This topic is strongly discussed in Ethereum and many projects are interested. When it comes to standardisation, 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 varying number of agents executing transactions. Low number of agents can destabilise market and make it broken. This is why I’ve highlighted here a few things, that could help in 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.