The Understory Series: VEO Amoveo

Jungle
19 min readOct 7, 2019

--

Welcome to The Understory Series — a series dedicated to projects that we believe show innovation and quality level far surpassing known crypto standards. This article is a recap of a discussion panel conducted in the Jungle Discord where the team answered questions from the community throughout a several day period.

CryptOrangutang: Could you please do a very short introduction to what $VEO is and what‘s your USP (Unique selling proposition)?

Zack: Hello, thanks for having me in the Jungle.

I write software for Amoveo:

Amoveo is a blockchain for financial derivatives. A few examples of financial derivatives are:

  • insurance contracts
  • sports betting
  • investment contracts
  • stablecoin contracts

Amoveo is not committed to any particular kind of technology. We adapt to use whatever is currently the best tools available.

We use futarchy to make decisions about how Amoveo should work. In most blockchains, “code is law”, but for Amoveo “futarchy is law”. This makes us very adaptable.

Currently Amoveo’s smart contract mechanism is based on state-channels, and our oracle mechanism is using Nakamoto consensus combined with a betting mechanism to prevent spam.

If you want to learn more about Amoveo, you can join telegram or discord or one of our other social media, and I will answer your questions.

Alfred: What do you think is the most important for Amoveo to succeed as a prediction market/derivative/betting system?

Zack: Users showing up on a regular basis to use these tools.

Alfred: How do you plan to make it as frictionless as possible to use?

Zack: My basic philosophy to accessibility and user interfaces is like this.

What matters is to have a good development cycle, and to do loops of the cycle as quickly as possible.

One loop of the cycle has these steps:

  1. We need to talk to users about what they want, and their experiences using the product.
  2. Then we need to make improvements, and put a new version in front of the users.

On a good day we can do more than one cycle.

This strategy of software development allows us to continuously verify that users actually want the stuff that we are building. So we waste less time building stuff that won’t get used.

As for more specific UX improvements, we recently activated a hard update so that now we can have oracle questions off-chain, similar to how state-channel smart contracts are off-chain, but still enforceable on-chain if necessary. So we don’t have to wait any block confirmations when making new oracle topics. We can create new oracle topics and bet on them all in the same second.

This allows for a much better UX.

It will take time for us to fully take advantage of this new feature in our interfaces. We are exploring a plan to allow for the creation of channels off-chain inside of other channels. It is a kind of sharding that is important for scalability, and it should also enable UX improvements.

Currently your channel is with one particular partner, and if they disappear or lose their private key, it can take days or weeks to get your money out of the contract.

Sortition chains improves on this because you are not tied to any particular partner. No one can prevent you from re-selling your side of the contract to whoever you want. This should allow for a much more consistent UX, the user will never have to think about who they are making a contract with, and whether they are a reliable partner.

With channels, sometimes the user has to take actions to enforce the rules of the contract. Like if your partner published bad evidence to end the channel at the wrong state. Requiring users to understand complicated enforcement rules leads to bad UX.

With sortition chains the user never has to think about enforcement, or channels or anything complicated like that. It just works how they expect it to. This will be a much better UX.

You can learn more about sortition chains here:

Petar: What is futarchy, and how does VEO leverage its capabilities?

Zack: I made this 5 minute video introduction to futarchy.

Futarchy is a mechanism for communities of people to make a decision to help them achieve their shared goal.

It is resistant to being manipulated by someone rich and/or powerful who could profit from influencing which decision we make.

Today most people use voting to make these kinds of community decisions, but voting has lots of game theoretic shortcomings. Rich people can easily manipulate the outcome of a vote.

Futarchy is the better way to make decisions as a community.

There is this idea of an “invisible hand” that guides markets to choose the optimal price for allocating goods.

Futarchy is like trying to use that invisible hand to find out the answers to other questions we could care about, besides allocating goods.

Amoveo has a turing complete programming language for making any kind of financial derivative you could want. By looking at the price in the markets for carefully crafted financial derivatives, we can find out the best choice for our community to make.

The scientific method is a way to provide evidence that is independently verifiable. So people don’t have to trust you, they can try it out themselves.

The limitation of science is that it can be very expensive to run some kinds of experiments. The prices in markets is a kind of evidence that is independently verifiable, and it is cheap to verify.

You don’t have to run any expensive experiments. Verifying the evidence is as easy as looking up the current price of Amazon stock.

Petar: Interesting, so the oracle determines the resolution of futarchy markets, that is what you mean when you say invisible hand?

Zack: The price of bitcoin is set by market forces. The invisible hand of the market sets the price of bitcoin, not some oracle.

If we ask the Amoveo oracle what the price of bitcoin is, the Amoveo oracle isn’t causing the price of bitcoin to change, it is only measuring the price that is determined by the market.

Petar: What are the common problems with oracles, and how did VEO solve them?

Zack: Oracles don’t really exist yet. They aren’t common, so there are no “common problems”.

I previously implemented an oracle based on the truthcoin design, similar to what exists in Bitcoin Hivemind and Augur today. A problem with that design is that it is depending on a voting system.

If the voters are not paid sufficient transaction fees, then the security guarantees of those systems collapse. In blockchain mechanisms, the more secure mechanism actually costs less to use. It is a little contrary to our intuition.

I find it is helpful to think of it like kilometers-per-liter of gas in a car. Each kind of car can get you where you are going, but the one with better fuel efficiency costs less to get you there.

When we say that one blockchain mechanism is “more secure”, what we mean is that it costs less to enforce the same contracts with the same level of financial guarantees.

I wrote more on that topic here:

Augur and Bitcoin Hivemind are less secure and more expensive to use because they have voters who need to be paid bribes to not cheat.

Petar: To make it clear to our readers, can you explain how you solved issues that are present in Augur in the VEO oracle design?

Zack: Amoveo is the blockchain that has the currency VEO.

Amoveo’s oracle resolution is based off a similar concept as the DAO hack recovery. Since the money in the DAO was locked up for a long enough period, there was time for the community to react and do a hard update to make sure the money doesn’t get stolen.

Amoveo’s oracle has a period of time where the money is locked up, so if it is going to resolve incorrectly, we have time to do a hard update to prevent this. There is a cost of communication to organize a hard update like this. So Amoveo’s oracle has a betting mechanism, that way the people organizing the defense against an attack can double all their VEO, which covers the cost of the defense.

The betting mechanism allows the situation to escalate to the point where a hard update becomes feasible.

Amoveo doesn’t have anyone who you need to bribe to not-cheat.

Amoveo doesn’t have a subcurrency like Rep or Votecoins that is collecting trading fees.

Amoveo doesn’t have trading fees at all.

The nash equilibrium is that one individual reports the outcome to the oracle, and then the oracle resolves on that outcome.

There is no reason for anyone else to dispute the honest outcome, since they would be throwing their money away. So the on-chain cost of an oracle is practically zero.

Augur has a forking system a little similar to Amoveo. They can fork their contract on-chain to resolve a dispute. The limitation with Augur is that they can’t fork the ETH that are being gambled on oracle results, they can only fork the Rep tokens. So in a failure mode, people who made winnings bets would not be able to get paid the money they won.

In Amoveo if there is a hard update we can change any aspect of Amoveo. We can make sure that the people who made winning bets still get paid their winnings.

Jimtalksdata: As per EXANTE tech — what is your relationship with them? What do you expect future collaboration to look like? (and same question regarding Ikigai fund from Alfred)

Zack: I don’t pay anyone at EXANTE, and they don’t pay me.

Sometimes they ask me technical questions, usually so they have something to write about in their articles about Amoveo. Sometimes they give friendly advice on how I can help the project succeed. Like suggesting who I should talk to, or how I should present the project, or reviewing stuff I write before I publish.

Many of the exchanges that list VEO only do so because the EXANTE guys paid listing fees. EXANTE built and maintains the amoveo.io website, as well as myveowallet.com

Users tend to have positive experiences using myveowallet. It is a simpler, more beautiful interface in comparison to the light node software that I maintain. They are currently working towards adding scalar betting support to myveowallet, which will allow for stablecoins for example.

As per Ikigai fund:

  1. I don’t pay anyone at Ikigai, and they don’t pay me.
  2. I am not sure who in the Amoveo forums is connected to Ikigai.
  3. They learned a lot about Amoveo to write that report:

Speedy: What issues do you think Amoveo can face in future from development and implementation perspectives? How do you see users starting to onboard?

Zack: Writing the software is simple.

Finding out what would be a profitable thing to write is hard.

That is basically what all investors are trying to do in cryptocurrency. We are trying to figure out what kind of blockchain will be profitable.

How do you see users starting to onboard?

My goal for now is to find some small group of happy customers that keep coming back.

Once they exist, I will communicate with them to find out why they are using Amoveo, and where other people who have similar needs can be found.

Until we have the first small group of repeat customers, I think we should not try to plan an extensive on-boarding campaign. We don’t yet have enough information to make good decisions about this, we could easily waste money advertising to the wrong people.

It is kind of like how in chemistry manufacturing, they try to get the reaction working on a small scale first, then they slowly do it at bigger and bigger scales until they reach the size where the chemical production is economically viable.

First we want to prove the concept on a small group, before we invest resources trying to get too many people involved.

Petar: Speaking of resources, how is the VEO team structured, where does the funding come from?

Zack:

  • I receive 1/6th of each block reward as a developer reward.
  • I have no employees, and no one employs me.
  • I don’t pay anyone.
  • There is no hierarchy in Amoveo.

People have contributed for several different motives. Some people buy VEO and then give me free advice to help the price of VEO increase. Some people fund their work using dominant assurance contracts in Amoveo, which is a kind of smart contract for enforcing crowd-funding relationship.

The FPGA mining software programmer charges a fee for using his software that is automatically forwarded to him. The mining pool operators charge a fee to use their pools. So Sy, who runs veopool.pw for example, he makes profit by charging miners to use his pool, and he does testing and programming and makes block explorers and gives me software advice.

Some block explorers operate off of donations.

You mentioned wanting to develop for a small group of core users right now before going larger. What is the specific niche that Amoveo is trying to target right now (versus other projects in the prediction market space)?

Zack: Lately we have been focused on stablecoins, and other derivatives on the prices of cryptocurrencies.

It seems like people who hold VEO today have a common shared interest in cryptocurrency investing, so this is a natural place for us to start.

Petar: You have written extensively about POW vs. POS consensus mechanism and why you think POW is superior security-wise. Can you summarise the main points for our readers? Do you believe there are any less „wasteful“ alternatives that could replace POW in the future? For example, what do you think about feeless systems that are in use by some DAG coins (Nano), the main incentive for securing the network, and running the nodes are not the rewards but rather savings that can be made if using such systems. How do they fare when compared to POW in your opinion?

Zack: You think PoW is superior security-wise. I do not know if PoW or PoS is superior.

The best security modelling tools that we have today, they say that PoS cryptocurrency are less secure than centralized alternatives. But we are still not certain that these security modelling tools are perfect. Maybe in the future we will have better tools, and we will find out that PoS is actually the best. At this point in time, September 2019, we don’t have a security model that shows PoS can work.

This means if someone is programming a PoS system today, they don’t have any test they can do to know if they are designing it in a secure way or not. It is not possible to program a secure PoS blockchain with the technology available to us today.

Even if we did manage to build a secure PoS blockchain, if we don’t have a security model to explain why it is secure, then the users wont know how to react when it is under attack. If we can’t understand why it is secure, then we will not be able to operate it in the necessary way to maintain security.

I haven’t reviewed Nano in particular, but I have reviewed IOTA which is another DAG cryptocurrency:

It falls for the same attacks as other PoS blockchains that exist today.

You can read more of what I have written about PoS here:

Do you believe there are any less „wasteful“ alternatives that could replace POW in the future?

Here is a nice explanation for why PoW is the least wasteful way to distribute new tokens:

Basically, it is because the miners are willing to pay a high cost to receive the reward. They are willing to spend $999 to get $1000. They are competing to provide the service, so it is a race to undercut each other’s prices.

Amoveo uses futarchy to make decisions. It is a sort of PoS consensus mechanism that is less wasteful than PoW, in the context of deciding on hard updates, or updating variables that define the protocol.

We don’t know if PoS can be used for maintaining consensus of the state of a cryptocurrency.

We do know that market-mechanisms are a secure way of determining market prices, we can use that fact to build many useful PoS consensus systems.

Maloris: Can you go back in time and briefly walk us through VEO genesis, why did you decide to create it and how did the launch go?

Zack: in 2014 I was involved doing research for truthcoin.

Paul Sztorc decided to focus on building it as a sidechain on bitcoin, so I focused on building it as an altcoin. That way we could cover more ground and had a bigger chance of success.

I teamed up with Augur for like 2 months, but they wanted me to sign some contracts that would prevent me from publishing anything I write as open source, because all the intellectual property wouldn’t be mine, it would be owned by Jack and Joey and Jeremy and the people they raised money from.

I felt this would impede my ability to build truthcoin, so I ditched them.

Then I did research alone for a couple years.

Then I teamed up with Aeternity for like 6 months, but they wouldn’t pay me for my work, and one of them assaulted me. The stressful environment prevented me from getting any work on truthcoin done, so I ditched them too.

Then I did about a year more research until I finally knew everything I needed to know to launch the Amoveo genesis block on March 2, 2018.

Basically, my motivation in the 4 years of work up to the day of the genesis block was to achieve the goals of the truthcoin project. We want to make financial derivatives cheap and available to everyone.

The first week after launch was pretty stressful. It was frozen for like 8 hours one day. There was a period of like 1000 blocks that all went to one miner in around 30 minutes.

I didn’t sleep much that first week. It is a lot more stable now, I can sleep easy.

Most of my research during those 4 years was to figure out how oracle mechanisms related to other kinds of blockchain consensus mechanisms, and to come up with a plan so that the derivatives could scale to a large number of people. I went with the state-channel strategy. So that the smart contract isn’t published on-chain until we actually need it.

Another scalability feature we were the first to deliver was the stateless full node. Every block has all the merkel proofs you need for all the data you could need to very that block. So a full node can verify the blocks in any order. We take advantage of this to verify blocks in parallel for faster syncing speed.

At the time it was very experimental, but today this is a standard feature in blockchain scalability designs.

Your views on actively promoting public FPGA/ASIC development?

Zack: A limitation in PoW is that if an attacker can rent lots of hashpower, then they can take control of 51% of your blockchain and destroy it.

That is why we think that using ASICS will be better. If all available ASICS are already being used to mine Amoveo, then there are no more available to rent. So we want to have ASICS as soon as possible. So we optimized our PoW algorithm to be as easy as possible to produce ASICS for it.

I wrote about bitcoin’s security model here:

Chase S: Do you have any concerns about being the person responsible for Amoveo? In other words, do you think there is an inherent risk to the project by having a “single point of failure” as opposed to projects with anonymous teams/founders?

Zack: If Amoveo is to succeed, I will need to become less important. But for now the project is small and agile. Only like 3 people regularly use these smart contract. I think it is hard for other programmers to justify the effort of getting involved at such an early stage. It is so risky. The governance mechanism includes a dial to turn down, or turn off the dev reward.

When the time comes it will be easy to fire me, the same as changing the block time, or the block reward, or any other governance variable. We use futarchy for these kinds of decisions.

Software development hasn’t really been a bottleneck for us. Instead, we are limited in our understanding of what should get built. Mechanism design research is difficult to hire for. There are lots of people researching this topic already, I think it is easier to scavenge the tools we need from other projects, instead of hiring Amoveo specific researchers. As long as we can copy everyone else’s discoveries fast enough, we don’t have to rely on any in-house research.

Financial derivatives can be used to make crowd-funding type contracts. For example, dominant assurance contracts. Our long-term goal is that we will be able to use Amoveo crowd-funding smart contracts to pay for any software work that needs to be done for Amoveo.

jimtalksdata: What was the motivation behind using Erlang as the primary programming language behind the project? If I remember, “Flying Fox”, the spiritual predecessor to Amoveo, was coded in Python, a much more popular language nowadays. Any notable experiences worth sharing?

Zack: Erlang has a lot of features that make it a good fit for our situation. It is one of the easiest languages to learn, so we aren’t excluding developer talent. A competent programmer can learn Erlang in a week or two. Erlang is much easier to learn than python, for example.

Erlang is old. A large portion of the internet is based on this technology. We can be sure it will continue being maintained for decades. This stability means Amoveo wont suffer as much software-rot.

Erlang is optimized for making servers that can recover from unexpected failures, and maintain as high up-time as possible. They did this by optimizing for the actors model of concurrency at the deepest level. Actors concurrency isn’t quite as fast as some alternatives, but it has the advantage that you can edit it and easily verify that you are not creating any race condition errors.

The most basic kinds of vulnerabilities that a blockchain can suffer is if the nodes can be disabled if an attacker sends a carefully crafted api request. With Erlang it is easy to be sure that you are not introducing these kinds of vulnerabilities when you change the software. The ability to quickly and easily make changes to the design is Amoveo’s biggest advantage, and Erlang helps in this regard.

The ability to quickly verify that a change doesn’t cause race conditions, this property also makes it easier for me to verify that a pull request wont break Amoveo, so it makes collaboration easier.

Why are you trying to solve so many different problems? Isn’t it better to solve one problem very well? I see you are working on prediction markets, stablecoin, crowdfunding, sports gambling, insurance, lie-detectors for politicians, futarchy, and more.

Zach: Financial derivatives are a kind of contract that people have been using since before we had written language. In this time we have developed a rich set of use-cases for financial derivatives. We already know how to use financial derivatives to achieve all these diverse goals. So any blockchain with financial derivatives, is automatically creating all these different features.

The reason that most projects don’t talk about “financial derivatives”, is because these kinds of contracts are illegal almost everywhere in the world. In most places, you can only use one of these contracts if your government gives you an explicit exception for the case you are interested in.

Predictions markets are probably the most legal application of financial derivatives. So many projects choose to focus on this application of derivatives, to avoid legal risks.

You say that you want Amoveo to be the next global reserve currency, to have a bigger market cap than the US dollar today. Is this a realistic goal?

Financial derivatives are heavily regulated, only the richest people have access to them, and yet they are the most popular application of currency today. Once we get rid of the regulatory limitations, and give everyone access to these powerful tools, they will become far more popular.

Whichever currency is best suited for making financial derivatives contracts, that currency will be the next global reserve currency.

Amoveo is aiming to become the best financial derivatives platform.

Why don’t you build on top of Ethereum to reuse available technology in their ecosystem?

In order to make a more efficient oracle, I had to mix the block consensus mechanism with the oracle consensus mechanism in a way that just is not possible with any existing smart contract platforms.

Amoveo’s oracle, if the community is having a difficult time deciding the correct outcome, there is a situation where this would cause Amoveo to fork. Each side of the fork has a different outcome for that oracle.

This isn’t something we expect to ever actually happen. But for the game theory to work correctly, it needs to be possible.

Augur tried to build something similar inside Ethereum. The augur smart contract can duplicate itself, each holding a version of Rep where the oracle had resolved differently. The limitation with Augur is that they can only duplicate the Rep, they can’t also duplicate the money at stake in the bets.

How can you do this all alone?

Zach: Writing software is not the bottleneck of Amoveo’s progress, so hiring more programmers won’t make it progress faster. Figuring out what should be written is the bottleneck.

I don’t see how it would be beneficial to hire someone to help figure out what should be written. There are probably thousands of blockchain researchers publishing their work for free, and most of them will even answer my questions for free. People who are more capable, who we can’t even afford to hire, they are doing the work for free.

I am not alone.

I have a lot of support from a community.

3 profitable mining pools who often give advice.

Exantech has multiple people involved.

A few people with experience in finance, others who are knowledgeable about game theory.

Almost all of them are anonymous though.

Petar: I think we can wrap things up. It was a pleasure having you here Zack, thanks to you and all participants.

Zack: Thanks for having me in the Jungle.

Jungle’s take on VEO:

--

--

Jungle

Welcome to the Jungle! Join our free trading and research community for anyone interested in cryptocurrencies.