Matthew Roberts

I am a cryptobiologist specializing in the study of digital life forms like blockchains and certain kinds of unbounded smart contracts. “We must not let our politics harm these beautiful creatures.” – Myself.

Read this first


Survivability of an organism refers to its ability to survive in a worst case scenario. Any animal that has been caged or raised in captivity has had its survivability reduced. A caged animal cannot survive in the wild as well as a non-caged animal because its survival instincts have been altered (and often even its ability to reproduce has been adversely affected.)

An ICO-token is like a caged animal, removed from any cryptoeconomic context. In the cryptoeconomic wilderness, these tokens would be considered mistakes of nature, with no means to survive by themselves. They survive only in the context of an economic zoo, which has been artificially engineered for their sustained existence. If the company providing this zoo ceases to exist, then the shitcoin organism will not survive.

Centralization in the design of shitcoins reduces their innate survivability. We must not allow people to

Continue reading →

My Ethereum misconceptions

I’ve been working on smart contracts for a while now. I’ve spent countless hours focusing on things like how to securely move funds between legacy systems, where I’ve gained a deep and terrible understanding of how truly bad cross-blockchain compatibility really is.

You would think that a guy who has been working on smart contracts for this long would have seen more of the benefits behind something like Ethereum, but that isn’t the case for reasons I’ll reveal in this post… If anything my experience has only made it easier for me to dismiss it.

Here are some of my biggest misconceptions about Ethereum so far (but these misconceptions are by no means unique.)

Mistake 1: Dismissing how useful general-purpose blockchains are

For those who know the history of Ethereum you will know it was mostly created as a response to how limited blockchains were at the time. If you had of tried to

Continue reading →

Self-improving programs

Imagine for a moment that you wanted to pay someone to improve the speed of your software. How would you do it? If you’re like most software companies then you’ll mostly likely hire someone to do the job.

This means spending time to find the right person you want, interviewing them, interviewing someone else if they’re not right… until hopefully you find the right person… well maybe. There’s still no guarantee that paying them will lead to any improvements to software speed.

But lets assume that you do find the right person for the job. At last, you’ve gone through the hiring process and found a solid addition to the team. Unfortunately, your company has a lot of software in the works and the demand for this role rises and falls accordingly.

Wouldn’t it be nice if you could magically pay someone for improvements as they were needed and not have to manage anything? Sounds like science

Continue reading →

Blockchains are the first digital life forms - all 7 signs of life

I consider blockchains to be of independent interest to biologists as the first example of a single-celled digital life form that embodies all 7 characteristics necessary to establish life.

1. Living things are composed of cells.

The blockchain consists of a number of cells called “blocks” that contain everything the organism needs for its survival. Survival is ensured by issuing incentives to humans for energy (necessary for metabolism), therefore blockchains are symbiotic digital organisms that are helpful to humans.

2. Living things have different levels of organisation.

Blocks allow the organism to adapt simple, reusable components to produce more complex behaviour. We are still learning the full role of these components and how they relate to the environment but progress appears promising. This is the subject of cryptobiology.

3. Living things use energy.

The cells or blocks

Continue reading →

The ICO crapcoin checklist

  1. Does the coin reward users for contributing resources towards the creation of a shared service that will benefit all users?
  2. Can the resources contributed by users be verified by anyone?
  3. Does the service always fall within an expected range of operation?
  4. Is the coin new and no other coin offers the same service?
  5. Is it impossible to substitute the use of the coin for another?
  6. Does the business model for the coin make sense?
  7. Does the team behind the coin have the required experience?

If you answered “no” to any of these questions you may have discovered for yourself a bonafide crapcoin!

A crapcoin is the term for any coin whose main purpose is to make the founders richer. Typically such coins will use misleading technical-sounding jargon to try dupe investors into thinking they are investing in the next Bitcoin when really they are being sold worthless tokens.

Quite often these

Continue reading →

Archiving old coins on Ethereum - some thoughts

Update 7/12/2017: There is an elegant approach to the fee problem raised bellow by designing the virtual transaction overlay so that anyone can submit them by paying the Eth fees themselves in order to claim a fraction of the simulated currencies (perhaps as part of the virtual mining process.) The fee idea was raised by someone else, but its possible to adapt it and use it here to make the whole system work as intended.

Recently someone over at /r/ethereum posted a very interesting topic - the idea of building Bitcoin on top of Ethereum.

It’s an interesting thought experiment for many reasons - how would you actually do it? How would you optimize data storage? Are new changes possible? And so on. But more than that it seems to offer potential - by bringing them to Ethereum they become interoperable!

So first of all let me say that I really like this idea, but I also think that we

Continue reading →

Atomic kidney-swap contracts to improve exchange liquidity across blockchains

Update 26 May 2017 - the 3 of 6 multi-sig scheme has an obvious race condition. This problem can be fixed by using a 4 of 7 scheme that looks like future, future, y1, xy, current, x1, and x2 public keys where xy becomes a special key with new consensus rules based on homomorphic secret sharing (will define this in more detail tomorrow.) 4 of 8 might also work where the keys would be future1, future2, y1, y2, current1, x1, x2, x3 but I’ll need to work out how to reduce the key no first.

Update 2: The existence of valid signatures that come from a secret and which utilise knowledge of future or current owner outside of the expected reveal periods imply that the exchange is attempting to attack the process. Fortunately, this can be added to the protocol too as ECDSA sigs can be directly validated from within Ethereum. Thus the entire scheme can so far be reduced to a 3 of 4 multi sig

Continue reading →

What I think ShapeShift’s new Prism platform will be like

In about 12 days will announce details of their new system “built entirely on smart-contracts.” I don’t want to jump to conclusions here but if this is what I think it is – this could be the start of a very, very significant trend towards the big players in cryptocurrency exchange providing their customers with a much higher level of security.

For anyone who has been following these technologies you’ll notice that there hasn’t been any major companies trying to tackle “decentralized exchange.” I know of only a few companies who have tried to do this since 2013 and none of them managed to raise more than a few hundred K.

There are a few different reasons for this but what I think it comes down to is cost: it is far cheaper and easier to build a regular exchange and market it as a high security exchange then it is to do the opposite. So with ShapeShift’s Prism - I think it

Continue reading →

Turning back the clock on timechains - a follow-up

Notice: I removed subscribers and disabled subscriptions because I don’t like the idea of Subtle spamming people every time I make a post.

In 2015 I introduced the concept of a timechain as a solution to certain trust problems in smart contracts to mixed reviews. People like Greg Maxwell pointed out the uncertainty in the design which is something that would have made the timechain unsuitable for complex contracts whereby the timing of the clock needs to be within a certain range of accuracy [0].

But thinking about this some more I think there’s some very obvious solutions to this problem. There’s two main issues with my proposal:

  1. Serial hashing can be sped up on processors with faster clock speeds so the timechain will be broken faster than expected and
  2. The initial trust required in generating the chain.

Problem number 1 really needs to be considered in the context of two very

Continue reading →

Hundreds of lines of complex Bitcoin hacks reduced to a simple Solidity contract. Wow.

A couple of years back I was working on a smart contract in Bitcoin that implemented pay for private key contracts. The idea was that you can setup a contract to pay someone for releasing the details that allow a particular ECDSA Bitcoin private key to be extracted and payment is obviously conditional on the solution being correct.

In Bitcoin this is really damn complicated for a number of reasons. The first reason is that transaction IDs in Bitcoin can be randomly mutated so that chains of unconfirmed transactions can be invalided [0]. And the second reason is that all of the OP_CODES you need to create complex contracts in Bitcoin are either disabled or too limited to use.

That meant that the only way I could figure out how to get this contract to work on Bitcoin was to:

  1. Rely on a theoretical segwit existing (it’s not deployed yet) and
  2. Build a chain of transactions in such a way

Continue reading →