infoShare '18 flashback:The frontiers of smart contract design
Last year, Tomek Kolinko, a blockchain and Ethereum expert, was doing a project that was tokenizing real world assets. But at some point his developer team got stuck. What kind of website will be best at handling this tokenization?
Last year, Tomek Kolinko, a blockchain and Ethereum expert, was doing a project that was tokenizing real world assets. But at some point his developer team got stuck. What kind of website will be best at handling this tokenization? What solution should they use? The answer was challenging: There’s no best practice yet. Nobody knows the answer, as this problem has never been solved before.
The team arrived at a frontier.
This presentation is about the frontiers of smart contract design. Blockchain and Ethereum have created new possibilities. But with these come also new question marks and in many cases the need to create completely new, yet fully reliable solutions.
But let’s look first at the basics and some definitions.
What are smart contracts? Smart contracts allow the performance of credible transactions without third parties. Smart contract is a programme that cannot be changed, it manages tokens and there is no risk involved in the contract being lost.
Before blockchain arrived there was only one way to handle the transfer of value online. You had to use a third party that was some kind of authority and probably took a percentage of your finances. But what if your good (represented by a ‘token’) was not financial?
This is now possible. For two years, ever since Ethereum appeared we have had a method of creating tokens online, adding value to them and allowing people to trade them. But still, for many types of goods there are no online processors. You have to build your own one or hope that somebody builds it and solves all the problems connected with it.
There’s plenty of Ethereum and blockchain-related challenges. What are the most interesting ones? In his presentation, Kolinko shares some of the cases.
1. What sources of truth should we choose?
Let’s say the exchange of tokens depends on certain conditions being met. Who shall be the judge of this? You need an oracle, one that you can trust.
But how do you decide who shall be this oracle? There’s two basic choices – a committee of a few people whose reputation is on stake if they make a wrong decision or – a large group of randomly chosen people (1000, 10 000 or even more) that put their money on stake. The first model is faster, the second has a higher protective stake.
To phrase it more formally it’s a choice between a reputation-based model or a permission-less, stake-based one. But which is better?
2. Can we use smart contracts to predict the future?
Let’s say your smart contract is about predicting elections. One token is worth $1 if a party wins, and the other $1 if a party loses. The total worth of both tokens is $1. Whatever the result, you get $1. But what if we start predicting the election outcome and trading our tokens before the elections, at prices that reflect our predictions? Will the token prices turn out a good future predictor? Will they be more reliable than traditional polls? Can smart contracts be used to predict the future?
3. How to store data? On-chain versus Off-chain?
How much data should you store in a smart contract? What to put there? What to put outside? This is yet another frontier.
An off-chain case is Cryptokitties. It is a blockchain-based virtual game that allows players to purchase, collect, breed and sell various types of virtual cats. It deploys blockchain technology for recreational and leisurely purposes.
(Btw, you can check it out on cryptokitties.co – quite funny :))
The Cryptokitties don’t store information what the cat looks like, they only store its genetic code. An external company on external servers keeps all the kitten pictures. Why? Because storing a picture on blockchain would cost a lot of money, this would make the project more expensive and the game would have less chance of becoming popular. It’s a good solution but.. if something happens this could be a problem. So far, the popularity of the game shows people don’t really care where data is stored and the game is quite a success.
A different solution was chosen by CryptoCanvas. Here an online painting can be created by few different authors. When it is sold, everyone gets a share of the selling price that is equivalent to his share in the painting process. The paintings are stored on blockchain, because the authors don’t want the project to disappear someday. This way is more trustworthy, but also much more expensive.
Which solution is the best for storing data? Which will become more popular?
We’re still unsure and there’s plenty of other frontiers. Which decentralized exchange for tokens is the best? ZRX or IDEX or Etherdelta? What will be the future of token-curated registries? What is the best interface for transaction signing?
There’s no definite answers. All of these issues are still frontiers. Challenges we need to solve, finding best solutions for respective cases.
Intrigued? Watch the full presentation to get a better idea of the main problems. Or.. wait a year or two and by then we’ll probably have a solution.
Tomasz Kolinko - serial entrepreneur, involved with Blockchain since 2012. Founded Trivial.co - a service for token research and discovery, and Orisi - decentralised oracles proof of concept. His hobbies are token design and inventing things.
HAVE ANY IDEA FOR CONTENT?
Contact the editorial team at:firstname.lastname@example.org