Mastercoin is a Nightmare of Insanity
TheMisesCircle.org is no longer being updated. Please see the current version of this article at NakamotoInstitute.org.
An Altcoin in the Block Chain
Much undue attention has been given lately to Mastercoin, an altcoin invented by J. R. Willett. Although Willett’s heart seems to be in the right place, Mastercoin is a deeply flawed system. Unlike other altcoins, Mastercoin is not mined and does not have its own blockchain; instead, it exists on the Bitcoin block chain as a set of prunable transactions that contain, in the addresses of their Bitcoin outputs, data representing Mastercoin calls.
While the idea of a new protocol layer that can be used with Bitcoin is interesting and potentially useful, it completely destroys any potential usefulness in Mastercoin because it means that Mastercoin is an entirely passive system. Because Mastercoin does not have its own block chain, all its transactions are simply extra pieces of data inserted into Bitcoin’s block chain, which, from the standpoint of the Bitcoin miners, are meaningless.
Therefore, unlike Bitcoin or any altcoin that relies on its own block chain, Mastercoin is incapable of acting like a smart contract engine. There is nothing, for example, to prevent anyone from double-spending Mastercoins from a given address. Anyone can publish two conflicting Mastercoin transactions in the block chain, and all the Mastercoin system can do is define a rule by which one transaction is ignored.
This is not enough, however. Some of Mastercoin’s features require active participation by the users, but Mastercoin can do nothing to require them to behave correctly. For example, Mastercoin has a feature called “register a data stream”, by which the owner of a Bitcoin address declares that he will be publishing data hidden in transactions from it. For example, he could promise to post the price of gold every day to that stream. However, there is nothing to require him to post data on a regular schedule, and nothing preventing him from lying. This renders the datastream valueless as an input for a smart contract.
Of course that does not matter because, as I said, Mastercoin cannot do smart contracts. The only thing that could require Mastercoin users from behaving properly is a traditional human legal system that recognizes its features as legal contracts and which can set the police on anyone who doesn’t follow his promises. It is totally bizarre that Willett seems to think Mastercoin could be useful for anarcho-capitalist purposes. Eventually, platforms such as Open Transactions will be able to do what Mastercoin claims, without the design flaws. OT will allow for decentralized legal systems and voting pools for consumer protection, and will allow these functions to integrate directly into the block chain instead of on top as the protocol development permits.
What’s the point of creating something like this? It’s really hard to understand what anybody was thinking. Anyway, this is the most fundamental reason Mastercoin fails.
I Cannot Make Sense of Any of this Crap
Willett’s justification of his engineering decision is nonsensical and shows no understanding whatsoever. In version 1.1 of the specification [PDF], he writes “Alternate block chains compete with bitcoins financially, confuse our message to the world, and dilute our efforts. […] New protocol layers on top of the bitcoin protocol will increase bitcoin values, consolidate our message to the world, and concentrate our efforts, while still allowing individuals and groups to issue new currencies with experimental new rules.”
However, the truth is almost the exact opposite of what Willett says. There is no reason that an alternate block chain should compete with Bitcoin financially because there are all kinds of things that can be done with a block chain that do not compete with Bitcoin’s function as a currency. As it happens, nearly all block chains are currencies, which do compete with Bitcoin, but there is no reason that this is inherently necessary.
Furthermore all currencies, crypto or not, compete with Bitcoin. The fact that mastercoins do not have their own block chain is irrelevant. They still compete with bitcoins and will reduce the value of bitcoins to the extent that people choose to use mastercoins over bitcoins. Anyone who likes Bitcoin really shouldn’t want any new currencies to be created. As explained in a previous article of mine, the entire concept of an altcoin is fatally flawed. Because the value of a currency is caused by the network of people using it, a currency with a larger network should generally be seen as superior to one with a smaller network.
Escrow-Backed User Currencies
In addition to the mastercoin currency, Mastercoin allows anyone to create new currencies at will that also use the Mastercoin protocol. Anyone who registers a new Mastercoin currency essentially becomes that new currency’s issuer and can create as much as he wants. Although Willett suggests that these new currencies can serve other functions, this is impossible as long as Mastercoin cannot be a smart contract engine. Until Mastercoin has its own block chain, all of user currencies are just tokens.
The most intricate layering of absurdities in the Mastercoin specification can be found in the feature called “escrow-backed user funds”. These are funds managed by a program that trade mastercoins and a user currency so as to attempt to track a real-world commodity. A Bitcoin address can be registered as an escrow-backed user fund with a transaction that specifies parameters describing the behavior of the program managing it. For example, someone could create one called cryptogold that was designed to track the price of gold.
First off, in order to create cryptogold, Mastercoin has to rely on a block chain datastream to determine what the price is. Yet, as I previously argued, there is no reason to expect any data stream to be reliable and therefore no way to know what the price of gold is.
Furthermore, there is no reason to expect the escrow fund to behave according to any rules at all. There is no reason that the fund will even attempt to track the price of gold because, as I have repeatedly emphasized, Mastercoin can require nothing of its users.
Let us assume, however, that a given fund manager is trustworthy and he does allow his fund to run by a program that follows the rules advertised in its declaration. In this case the fund is still not trustworthy and still cannot be expected to track the price of gold.
An ounce of cryptogold is not real gold or a claim on real gold, or anything. It is a completely different commodity that rational actors will treat differently from the commodity that it is supposed to track. Fundamentally, the fund is a commodity that is traded for mastercoins by a computer program according to known rules. Any relation to gold is incidental because people will choose to buy and sell it based on how they believe that the computer program will act. They will not just naively watch the price of gold and assume that the escrow-backed user fund is pretty much the same thing.
While one could buy cryptogold simply because one believes that the price of gold will go up, one could also buy cryptogold as an attempt to manipulate the program. If you can know beforehand how a given trader will behave, you can always take advantage of him in a market. Thus, every fund that behaves fairly should be expected to go bankrupt eventually as people figure out how to profit from its predictable behavior.
There is no way to avoid this problem. As long as the program operates according to known rules, anyone can take advantage of its behavior. You could be playing chess with Deep Blue and you would always win if you had your own duplicate of Deep Blue that you could use to predict every move it would make. This is effectively what everyone has for the fair escrow-backed user funds because the reference Mastercoin implementation is open source, so anyone can modify it to turn it to predict what other fair funds will do.
However, this point is purely esoteric because nothing forces the fund to behave according to any computer program and the creator of the fund has every reason not to follow the rules because if he did, the fund could not possibly remain healthy.
I have my qualms about Ripple, but at least it has some useful purposes. The reason it is possible to trade real goods over Ripple is that ripple gateways are supposed to back the digital goods with real goods that they have on hand. The idea of linking a digital good to a real one any other way is absurd. Mastercoin utterly utterly fails so badly that it is unfathomable.
A Software Engineering Nightmare
In addition to failing economics, the Mastercoin developers also fail software engineering. As detailed in this reddit thread, the Mastercoin specification is so poorly designed that it has several conflicting implementations, thus breaking the entire system.
Because the different implementations disagree as to which transactions are considered valid, they can disagree as to the amount stored in a given address. For example, killerstorm, the author of the exposé, points to an address which, on November 29, 2013, showed four different balances depending on the implementation.
Since then, this problem has been resolved by rewriting the specifications more carefully, but there are no doubt more ambiguities waiting to be discovered. This problem could not have been fixed without screwing over some people who think they own mastercoins.
As useless as I find Litecoin to be, at least it functions. At least it’s not riddled with bugs that break the entire system. The developers deserve eternal shame for having created this problem, no matter how they attempt to address it. Even if it is repaired, the fact that it happened at all reflects extremely poorly on the team building it. This is truly horrifying, and Willett should be excoriated for creating this monster.
Please End the Madness
Everything about Mastercoin is completely insane. How can it be taken seriously? Its flaws are numerous, fundamental, and not difficult to understand. I do not even claim that my list of them is comprehensive. I would not be surprised if there were more that I did not discover when I did my research for this article. Mastercoin is a failure in just about every way. Nothing can redeem it and it is completely shocking that Mastercoins are actually being traded and have a price.
Mastercoin is absolute garbage and it is just baffling to me that Willet commands any sort of respect for having created it. There is no excuse for how terribly designed and excuted they have been at every stage. All Mastercoin owners have been scammed because Mastercoin is incapable of delivering on its promises. No one should ever use Mastercoin under any circumstances or appraise their value as anything above zero.
Enjoy this article? Please support Daniel’s writing by donating bitcoins!
The lady (dude) doth protest too much, methinks.
Methinks teh good sir (m’lady) shall find le wares befitting: http://www.vivafedora.com/
Hi. J.R. here. Thanks for your humorous take on our project. I think perhaps you misunderstand a few things about this protocol:
1) Data feed operators have an incentive to be honest because they make
money when people bet on their feed. If they are dishonest, nobody will
use their feed
2) Escrow-backed currencies are an experimental
feature, and while they will work as long as they are well funded, they
do have a weakness if they become under-funded. However, that is only
one of three ways which Mastercoin creates stabilized currencies. The
other two are user-backed currencies and contracts-for-difference
3) There have been isolated cases of transactions being parsed differently
by different implementations, which we are able to quickly find and fix.
One of our near-term goals is a “reference implementation”, probably
written in Go.
I’m glad to say that there are many people who disagree with your overall assessment of this project!
Note from Peter Todd, Bitcoin Client Developer and Cryptography Expert on this article / subject.
My paper Disentangling Crypto-Coin Mining: Timestamping, Proof-of-Publication, and Validation is worth reading to understand how an embedded consensus system like Mastercoin can function. In short, the fact that miners validate transactions is purely an optimization that isn’t required for a crypto-currency to work and be secure. There is a cost to that optimization – wallet software can’t outsource validation to someone else – but that cost can be made managable, especially for high-value applications. For alt-currencies trying to get started embedding themselves in a stronger currency’s blockchain is a very smart decision that gets them all the security the host has from day one.
I do agree with many of the other criticisms in the article, but the underlying idea behind Mastercoin has the potential to be made sound – that’s why I accepted the job Chief Scientist of Mastercoin Foundation.
The Disentangling Crypto-Coin Mining paper doesn’t actually respond to my real point, which is that there is nothing to actually enforce the “features” of Mastercoin requiring active participation.
Also, the underlying idea behind Mastercoin is just that you have a new protocol that includes an altcoin and also has options for anybody else to create new altcoins at will. Most of the other stuff can’t ever work properly, and altcoins are just a silly idea to begin with. So you should quit that job.
Thanks for the additional thoughts.
When most people use the word “alt coin” they often mean one of two things. Either that the entity in question utilizes an “alternative” blockchain or that the entity in question is acting as an “alternative” to Bitcoin. In the case of Mastercoin neither of these definitions fit and thus I don’t think “alt coin” is a really useful term here in the context of Master Protocol / Mastercoin.
We may very well agree that most of the “alt coins” in the market will fail to gain sufficient market adoption and thus sufficient network effect to compete with Bitcoin. That’s all well and good, but that’s not really the core of the “user currencies” feature of Mastercoin. The purpose of the features is to allow users to issue digital tokens that are recorded in the blockchain for a wide variety of purposes including being a smart property record for a car, house, stock, bond or contract.
For example I’m launching a new application that allows developers to access an API for email integration using IMAP / Exchange. I’m using Bitcoin Protocol / Master Protocol to issue the digital tokens that allow developers to access said application. I’m using Bitcoin via the Master Protocol as a back end service for time stamping, token record storage in the Bitcoin ledger, and a network for token transfer. None of my applications functions are competing with Bitcoin and the primary purpose of the application has nothing to do with “coins or currency”, thats why I prefer the language of “digital token”.
youre the Chief Scientist of the Mastercoin Foundation?
aren’t you also working for the investor group behind them?
If you get rich, you will not be the first to have done so from complicated nonsense and technical double-talk.
Escrow backed user currencies are economically flawed. They won’t work under any circumstances.
As to your response to my point about data feeds being honest, that’s an interesting point, but I think that our experience with Tor businesses suggests that won’t be good enough. Lots and lots of people have started Tor businesses just to destroy their reputations and steal bitcoins in the end.
Justus’s idea to use bitcoin-backed surety bonds to promote honesty is a much better suggestion.http://bitcoinism.blogspot.com/2013/12/lex-cryptographia.html
Daniel,
Thanks again for the thoughts.
When I first started doing due diligence I was very skeptical about the Master Protocol / Mastercoin as well. This point about Escrow Backed User Currencies being flawed has been brought up time and time again. However what I decided in the end, is that this is moot point.
Firstly, I’d point out this feature is NOT enabled in the current implementations or even in the Spec. See Unlocking Features section of the Spec here: https://github.com/mastercoin-MSC/spec#unlocking-features
So given its an advanced feature that isn’t enabled, even in the spec, this argument is akin to saying “Bitcoin is flawed because the advanced scripting features are impossible to implement securely.”
Second, the Master Protocol is at a very early stage and you are welcome to suggest better methods of implementing certain features. In fact some of Master Protocol’s early critics and now contributors such as Bitcoin Magazine’s Vitalik Buterin suggested “Contract for Difference” as a best established method for implementing the goal of Escrow Back Currencies (https://en.wikipedia.org/wiki/Contract_for_difference). Given this is an open source project J.R. and the other developers agreed this was a much better suggestion and now CFD’s are in the official spec. See: https://github.com/mastercoin-MSC/spec#offering-a-bet
Even now, you are in the process, with this very article and these very comments, of improving the Master Protocol and increasing the odds of its success. For example you just suggested leveraging Justus’ bitcoin backed surety bonds to promote honesty. Great suggestion! I in fact know Justus (I saw him just last week) and I’ll be sure to read the link you just posted. And guess what, if it makes sense in the context of the Master Protocol, then I’ll be making a pull request to the Mastercoin Spec on Github myself in order to include it soon.
Data feeds can be kept honest by proof of stake voting as well.
Also, I appreciate that you were able to take the article in stride.
J.R., what is your FULL actual name?
“There is a sucker born every minute.” Suckers can accumulate and band together into a social aggregation which is no sensible community. Take the tea party. Far away, please!
The price of gold data stream concept could be used in a blockchain contract, but it would not be trust-less in the sense that every subscriber to the contract would have to trust the issuer of the gold prices feed. I think there will be many contracts that require the participants to trust a third party to maintain the integrity of the contract. Obviously the longer the contract period the more likely the contact will disintegrate from lack of support by its provider.
The goal of our cryptographic efforts is to provide trust-less services, but mastercoin looks like a step in the right direction.
It’s good to hear voices of dissent and reason in a space that has a tendency to be an echo chamber. Without commenting on my agreement or disagreement with the arguments, I will say that the tone of the article undercuts its effectiveness. I hear a lot of absolutism and near ad hominem, things which tend to fall away when the speaker is both more confident of his argument and less enamored of his voice.
Unfortunately absurdity of “Mastercoin” is so owerhelming that I can not imagine writing about it without a proper share of sarcasm. Remember that all BTC traded for mastercoins are in fact sent to the developer’s wallet.
http://blockchain.info/address/1EXoDusjGwvnjZUyKkxZ4UHEf77z6A5S4P
rest assured there are many people who think this project is sheer idiocy, they just don’t bother addressing all the spam out there surrounding it.
mmm, maybe the best thing to happen to litecoin?
the problems with Color Coins and their scion, Mastercoin have been long known. Confidence Chains were a proposed solution to this problem.
http://altchain.org
also a collection of links about the problems Mastercoin causes + other criticisms of Color Coins: http://www.altchain.org/?q=content/why-not-color-coins-problems-limitations-and-criticisms-bitcoin-color-coins-architecture
also noticed the reference to Open Transactions.
there is a lot of bad information out there, and typically the ‘owners’ of the projects are to blame for it. OT is not decentralized in any typical meaning of the word. Actually the leader of the project often claims ‘he never said it was decentralized’, however seemingly this rumor persists despite him supposedly having no role to play whatsoever in it’s proliferation. Strange how this project seems to be swarming with faulty information…
also note that http://www.bitangels.co/ was related to the Mastercoin project, at least for a time. I’m not sure what the current status is now that a lot of Mastercoin’s flaws, shortcomings, and perhaps even frauds are now more well known.
but I certainly have to applaud you for taking the time to dissect the various contradictions.
I’ve spent far more time listening to this crew than they deserve, unfortunately many more are going to have to hear them out before the public registers as to what is really going on.
I’ve spent waaay too much time having to listen to you because of your trolling on next gen protocol threads with the sole aim of advancing your god damned confidence chains.
why not point us to an example of this “trolling”, anon?
just noticed today, I can’t find any strict statement by BitAngels regarding Mastercoin. Nothing on their site, nothing on the web. Seems that David Johnston is somehow related to this group, however I can’t find any official statements from Bitangels regarding their involvement with the Mastercoin Foundation or any of the members of this project(the main one of which is not even fully identified).
The mastercoin team should join forced with Ripple! I know Ripple Labs would kill to hire talented c++ engineers to help build turing-complete contracts. https://ripple.com/wiki/Contracts
Repeat: Pink icing over cow-pies does not make angel food cake.