Category Archives: Ethereum

Cognitive Dissonance, Thy Name Is Ethereum

Ethereum was awarded the designation as CryptoTulip of 2017, and no small part of that distinction was due to its on-going efforts to deal with the catastrophic results of buggy “smart contracts”.

The DAO disaster of 2016 was “fixed” via an ad hoc hard fork that had the tiny side effect of creating a second, rump Ethereum currency.  Since that time, Ethereum has done several more forks to respond to problems.  And in 2017 a little oopsie resulted in millions of dollars worth of Ether being locked in inaccessible accounts.  This goof has not yet been addressed by a hard fork or any other technical fix.

The underlying problem, of course, is that Nakamotoan cryptocurrencies are designed to be “write once”, with the ledger being a permanent, unchangeable record.  This feature is intended to prevent “the man” from rewriting history to cheat you out of your money.  (This is a key part of the Nakamotoan definition of a “trustless” system.)

Ethereum has implemented executable contracts on top of this “immutable” data, which is where a lot of the problems come from.  Software is buggy, and “smart contracts” inevitably have errors or just plain produce incorrect or unintended results, such as theft.  But there is no way to correct the unmodifiable ledger, except by violating the write-once principle, i.e., a hard fork to rewrite history.

True Nakamotoists deeply believe in the unchangeable ledger not only as an engineering design but as the logical foundation of the new, decentralized world economy.  But Ether-heads have (mostly) acquiesced to multiple ad hoc forks to work around grievous bugs, which to my mind completely trash the whole point of the Nakamotoan ledger. The CryptoTulip Award citation noted “the tremendous cognitive dissonance Ethereum has engendered”.


It is very interesting, therefore, to see current discussions proposing to regularize this recovery process [2]. The idea, of course, is to reduce the risk and delay of ad hoc fixes with a more open proposal and review process.  Unfortunately, this process publicly endorses the very practice that the ledger is supposed to preclude.

This proposal has not been uncontroversial, for many obvious reasons.

In addition to the obvious problem with the whole idea of ever rewriting the ledger, the Ethereum community is dealing with questions about how “decentralized” decision making should work.

Theoretically, anyone on the Internet can have a stake in decisions about Ethereum software and protocols.  However, in the crypto world—and “open source” in general—some people are more equal than others.  Active programmers, AKA, “developers”, have influence and often veto power over technical developments.  And operators of large mining operations have veto power in their ability to adopt or reject particular features.

In the earlier ad hoc forks, the devs decided and then implemented the fork. There was little discussion, and the only alternative was the nuclear option of continuing to use the denigrated fork—which many people did. The result was two Ethereums, further muddled by additional changes and forks.

The proposed new process requires public discussion of forks, possibly including video debates. Critics complain (with good reason) that this is likely to introduce “politicians” into the process. I would say that it also will create factions and partisan maneuvering.  It is not inconceivable that (gasp) vote buying and other corruption might arise.

In short, this public decision-making process will be openly political.  What a development. The governance of Ethereum is discovered to be political!

Politics (from Greek: πολιτικα: Polis definition “affairs of the cities”) is the process of making decisions that apply to members of a group.

The explicit acknowledgement of human decision making creates a tremendous cognitive dissonance with the Nakamotoan concept of a “trustless” system, where all decisions are by “consensus”.  (In practice, “consensus” means “if you disagree, you can split off your own code”.)

But it also clashes with the core Ethereum idea of “smart contracts”, which are imagined to implement decentralized decision making with no human involvement. The entire idea of the DAO was to create an “unstoppable” enterprise, where all decisions were implemented by apolitical code.  When Ethereum forked to undo the DAO disaster, it essentially undermined the basic rationale for “smart contracts”, and for Ethereum itself.

And now, they want to have humans involved in the decision making!

The very essence of this dissonance is capture in a quote from Rachel Rose O’Leary:

For now, no further action will likely be taken on the proposal until ethereum’s process for accepting code changes, detailed in EIP-1, has been clarified.” [1]

In other words, EIP-867 is so completely inconsistent with the decision-making process it isn’t even possible to talk about it.  I guess they will continue to muddle through, ad hoc, violating the spirit of Nakamotoism.

I think that Ethereum is managing to radically “disrupt” itself and the whole concept of Nakamotoan cryptocurrency.


  1. Rachel Rose O’Leary (2018) Ethereum Devs Call for Public Debate on Fund Recovery. Coindesk, https://www.coindesk.com/ethereum-devs-call-public-debate-fund-recovery/
  2. Dan Phifer, James Levy, and Reuben Youngblom, Standardized Ethereum Recovery Proposals (ERPs). Etherium Ethereum Improvement Proposal, 2018. https://github.com/ethereum/EIPs/pull/867
  3. Rachel Rose O’Leary (2018) Ethereum Developer Resigns as Code Editor Citing Legal Concerns. Coindesk,  https://www.coindesk.com/ethereum-developer-resigns-as-code-editor-citing-legal-concerns/

 

 

Cryptocurrency Thursday

Cornell Report on Cryptocurrency “Decentralization”

One of the outstanding features of Nakamotoan blockchains is that it is a “decentralized” protocol—a peer-to-peer (overlay) network produces consistent updates to the shared data with no privileged leader or controller [2].  This property is a significant technical feature of Bitcoin and its extended family, and has even more symbolic and cultural significance for crypto enthusiasts.

“Decentralization” is supposed to impart technical robustness (there is no single point of failure), and political independence (there is no “authority” to be manipulated or shut down).  The absence of a “central” node also means that the protocol is “trustless”—there is no central service that must be trusted in order to do business. (I.e., you only need to trust your counterparties, not the rest of the network.)

In short, Nakamotoan blockchains and cryptocurrencies are all about being “decentralized”.

But what does “decentralized” mean?

In fact, the notion of “decentralized”, as well as the many related concepts, are poorly defined. In the context of a computer network, “centralized” can mean many things.  Indeed, a network transaction may depend on a number of physical and virtual layers, with different degrees of centralization involved simultaneously.  For example, a wi-fi network has various routers, links, switches, firewalls, and so on.  Even the simplest point to point link may pass through a number of shared channels and chokepoints that are technically “central” services, though the overlying service is decentralized, or centralized in a different way.  (Does that sound confusing?  In practice, it truly is.)

However, Nakamotoan “decentralization” is mostly about the logical organization of digital networks, as developed in so called “peer-to-peer” networks.  A classic Internet service is “centralized” in the sense that  client (user) nodes connect with a single server, which manages the whole system.  Clients trust the service to implement the protocol and protect all the data.  Note that so-called “centralized” services often run on many computers, even in many locations.  They are logically a single server, even if not physically a single node. (Does that sound confusing?  In practice, it is.)

Nakamotoan systems replace a single “trusted” service with a peer-to-peer protocol based on cryptography and economic incentives.  One of the critical design features is the use of algorithms that are impossible for a single node to hack.  This is important because In a conventional “centralized” service, once a server is suborned (or subpoenaed), the whole network is controlled.

In contrast, Bitcoin is designed so that the system cannot be controlled unless the attacker controls more than 50% of all the participating nodes.  In this design, security is assured by having a very large number of independent nodes in the network. This widespread participation is made possible by making the code openly available and letting anyone connect to the network.

While the cryptography has a relatively straightforward technical basis, other aspects of this security guarantee are less easy to define and they are actually empirical features of the network that may or may not be realized at any given moment.

For example, everything depends on the Bitcoin network being “owned” by many, many independent people and organizations.  If one person owned 51% of the network, then they would own all the Bitcoin.  And in fact, if one person owned 51% of the computing power (not the number of computers), they would own all the Bitcoin.

The point—and I do have one—is that while the Bitcoin protocol is designed to work in a decentralized network, the protocol only works correctly is the network really is “decentralized” in the right ways.  And there is no formal definition of those “right ways”, nor much proof that various cryptocurrency networks actually are decentralized in the right way.


This winter Cornell researchers report on an imporatant study of precisely these questions on the real (as opposed to theoretical or simulated) Bitcoin and Ethereum networks [1].

there have been few measurement studies on the level of decentralization they achieve in practice” ([1]. p.1)

This study required a technical system to capture data about nodes of the relevant overlay networks (i.e., real life Bitcoin or Ethereum nodes).  In addition, the study examined key technical measures of the nodes, to discern how the overall capabilities are distributed (i.e., the degree of decentralization).  These measures include network bandwidth (data transmission), geographic clustering (related to “independence”), latency (a key to fairness and equal access), and the distribution of ownership of mining power.  The last is an especially important statistic, to say the least.

The Cornell research showed that both Bitcoin and Ethereum have distinctly unequal distribution of mining power.  In the study, a handful of the largest mining operations control a majority of the mining power on the network.  (Since some authorities own or collaborate with multiple mining operations these counts underestimate the actual concentration of power.)   In other words, these networks are highly centralized on this essential aspect of the protocol.  The researchers note that a small non-Nakamotoan network  (a Byzantine quorum system of size 20) would be effectively be more decentralized—at far less cost than the thousands of Nakamotoan nodes ([1], p. 11).

Although miners do change ranks over the observation period, each spot is only contested by a few miners. In particular, only two Bitcoin and three Ethereum miners ever held the top rank.” ([1], p. 10)

These findings are not a surprise to anyone observing the flailing failure of the “consensus” mechanism over the last two years, let alone the soaring transaction fees and demented reddit ranting.  Cryptocurrency systems are designed to be decentralized, but they are, in fact, dominated by a few large players.

By the way, the two networks studied here are likely the largest and most decentralized cyrptocurrency networks.  Other nets use similar technology but have far fewer nodes and often far more concentrated ownership and power.  So thees two are the good cases.  Other networks will be worse.


The general conclusion here is that Nakamoto’s protocol trades off a huge, huge costs in equipment, power consumption, and decision-making efficiency to achieve the supposed benefits of a “decentralized” system.  Yet the resulting networks are actually highly centralized, though in opaque and hidden ways.  I think this is a fundamental flaw in the engineering design, and also in the philosophical underpinnings of Nakamotoan social theory.

I’d love to see similar careful studies of other underpinnings of Nakamotoism, including the supposed properties of “openness”, “trustlessness”, and “transparency”.

A very important study.  Nice work.


  1. Adem Efe Gencer, Soumya Basu, Ittay Eyal, Robbert van Renesse, and Emin Gün Sirer, Decentralization in Bitcoin and Ethereum Networks. arXiv, 2018. https://arxiv.org/abs/1801.03998
  2. Satoshi Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System. 2009. http://bitcoin.org/bitcoin.pdf

 

Cryptocurrency Thursday

Ethereum explores actual software engineering

Cryptocurrency software generally has rather spotty quality.  Aside from the usual woes of ‘open source’ software, including a rush to market, minimal budgets, endless happy talk from the business side, and inexperienced programmers; cryptocurrencies suffer from their ‘decentralized’ governance model, which makes serious engineering difficult.

As a result, the major cryptocurrencies all have grievous performance problems, and, of course, awesomely dumb bugs.

Ethereum (winner of the 2017 CryptoTuilip of the Year award) has provided a veritable clinic on the shortcomings of decentralized management of software.

Now, it is true that Ethereum has an actual human founder (Vitalik Buterin), who does intervene to nudge (or even bulldoze) the community in certain directions.  But engineering changes are still done in the decentralized mode:  build it first, and then see if everyone agrees to use the modified software.  Astonishingly enough, letting users decide on every engineering detail (retroactively) is at best awkward, and at worst disastrous.

As widely noted, Ethereum has been experiencing performance issues due to the success of the CryptoKitties game.  In particular, the transactions for this one application have filled up the shared ledger, and sucked down processing time for all the nodes of the network.

Let’s be clear, these technical problems are perfectly normal, and, in fact, they are a sign that the software is successful and maturing.  There are any number of technical moves that might be made to increase capacity or ration usage or both.  Unfortunately, these normal engineering decisions required to save the whole system will disadvantage some individual users. Unfortunately, with the decentralized governance approach, anything that cannot command near unanimous approval cannot be implemented.

Amazingly enough, faced with potential collapse, Ethereum is seeing something almost unthinkable:  actually serious software engineering, beyond happy talk and and wringing in Reddit.

This month saw excitement over actual optimizations of the Ethereum system. Among other amazing fixes, various temporary files have been eliminated, vastly decreasing the storage needed.  Other fixes deal with gross inefficiencies in handling the data structures in memory.  It’s hard work, but pays off with much better performance.

Buterin himself is exploring serious redesigns including “stateless” clients and sharding.  These designs replace the mindless replication of all the data on every node with more clever ways to split up the data and work. These approaches are well known and well tried: they have been in use for decades in systems such as massively multiplayer online games (think World of Warcraft and other similar systems).  I’m sure they can be made to work pretty well for Ethereum.

Obviously, these are good ideas. They were good ideas twenty years before Ethereum was built.  It’s about time that these systems with millions and millions of dollars riding on them got up to reasonable levels of engineering.

I could be grumpy and point out that , back when I was a lad, we used to think things through before we released the product, not after several years, and hundreds of millions of dollars worth of goofs.

More important, though, is the observation that the optimizations that are rolling out now have been implemented by companies and individuals not constrained by a decentralized ‘consensus’ mechanism. The client-side software is more or less ‘open source’, but it isn’t governed by the same ‘everybody or nobody’ consensus rules.  Hence, it is possible to change the code relatively radically and relatively quickly.

In contrast, the server side stuff (e.g., sharding) is moving slowly. It’s worse than design by committee, it’s design by … who knows?  And even if a good plan emerges, it still has to survive the consensus process.  This could take years.

We’ll see.

As I said, this is a becoming case study in the difficulties of engineering decentralized systems.


  1. Alexey Akhunov. 2018. “Roadmap for Turbo-Geth.” Medium, January 6. https://medium.com/@akhounov/roadmap-for-turbo-geth-31cbfb1e72b7
  2. Vitalik Buterin. 2017. “The Stateless Client Concept.” EtherResearch, October. https://ethresear.ch/t/the-stateless-client-concept/172
  3. Rachel Rose O’Leary,  2018. Blockchain Bloat: How Ethereum Clients Are Tackling Storage Issues. Coindesk. https://www.coindesk.com/blockchain-bloat-ethereum-clients-tackling-storage-issues/

 

 

Cryptocurrency Thursday

 

Crypto Tulip of the Year for 2017: Ethereum

The first annual “Crypto Tulip of the Year” is awarded to the cryptocurrency or related technology that was the subject of the most irrational exuberance over the course of 2017

It was a tough decision this year because there is so much silliness.

 

Third place goes to:     Bitcoin

How could the patriarch of the dysfunctional crypto family not be in the running?

Despite grievous engineering problems, and rampant anti-social usage, the exchange rate has exploded with no connection to any known rational justification .

Bitcoin’s case was strengthened by the opening of futures trading on the CME in December, signaling that the gnomes of Chicago are ready to shear the sheep in early 2018.


The runner up is:     Initial Coin Offerings (ICOs)

You know it is an irrational market when every Tom, Dick, and Floyd Mayweather is floating one.

These unlicensed securities flout both the law and common sense—and in many cases are unobtainable by the general public because of insider trading.  Yet these Crypto Tulips have flourished no matter how many grown-ups issue warnings, or how many people are ripped off.

ICOs deserve special mention as particularly pure manifestations of the Nakamotoan ideology.  They aim to “disrupt” the securities market by ignoring regulations and laws, putting the means of financial engineering in the hands of the masses.  What could possibly go wrong?


Finally, drumroll please,  the winner of the 2017 Crypto Tulip of the Year Award is:

Ethereum.

Following the catastrophic “DAO” episode in 2016 that would have killed any normal technology, Ethereum bounced back and grew.  While the distributed autonomous organizations proved to be eminently “stoppable”, enthusiasm for this nutty technology appeared to be invincible.

Late in the year, Ethereum sealed the win with the one-two combination of an “oopsie” that has locked millions of dollars in accounts that cannot be accessed, followed by the emergence of the amazingly successful “CryptoKitties” game, which has flooded the Ethereum blockchain and network with transactions.

The judging also recognizes the tremendous cognitive dissonance Ethereum has engendered.  Ethereum has survived multiple “hard forks”, including one that rewrote history in precisely the way that Nakamotoan cryptocurrency is supposed to prevent.  Users have not only tolerated this bizarre and heretical development, they don’t seem to even care.

Similarly, the success of Crypto Kitties game has swamped the common blockchain, crowding out other “more important” uses. This has caused some anguish from people who have been blocked from exploiting the commons for their own aims.  But, true Nakamotoans do not question the ultimate feasibility of a single, global commons, nor do they judge what others might do in the commons.

Congratulations, Etherheads!  Your irrational exuberance has won the Crypto Tulip 2017, surpassing even the mighty Bitcoin, and the trend ICO.

 

Cryptocurrency Thursday

Ethereum CryptoPets Are Proliferating

As I predicted earlier, CryptoKitties has led to copycats (!), including puppies and multispecies.

Obviously, one has to doubt that there is an infinite appetite for these utterly useless digital “collectables”, so we’ll have to see just how many such games succeed. Of course, I would never have predicted the phenomenal success of Pokeman or Minecraft, so I wouldn’t care to bet one way or another.

Alyssa Hertig reports in Coindesk that CryptoKitties is actually notable as the first implementation of “ERC721”, a standard for “Non-fungible Tokens”. Most Ethereum projects have been using fungible tokens (which, I learn, is supported by the “ERC20” standard), but CryptoKittese are, by design unique and not interchangeable—i.e., non-fungible.

As Hertig says, this technical accomplishment is interesting because it opens the way not only for clones of the Kittie game, but possibly other applications that track ownership of uniquely identifiable objects.  This might include tracking ownership of real world objects, as has been discussed for a long time.

It remains to be seen if Ethereum executable contracts are a good technology for these apps.  After all, there are already (several) provenance tracking systems, and even digital asset licensing.  These earlier systems use cryptographic signatures and publish records on a blockchain, but do not rely on Ethereum-style executable contracts.

At a very abstract level, the principle technical difference between CryptoKitties and say, Ascribe, is that CK has pushed some of the transaction logic out into the Internet. But only some of the logic.  Key parts of the system run on conventional servers.

More important, both CryptoKitties and Ascribe require users to trust the company, and both organizations take steps to earn and keep that trust.

Using the “trustless” blockchain is supposed to make the system “more trusted” by eliminating the “centralized” services that are a point of failure.  In these hybrid architectures, that certainly is not 100% true.  Or even close to 100% true.  (I have yet to see any non-trivial system that is completely decentralized and also works.)

What, then, is the advantage to using the slow, balky blockchain?

I dunno.

Perhaps we shall see.


  1. Alyssa Hertig, Crypto Collectables? Ethereum’s Next Killer App Is on Its Way. Coindesk.December 15 2017, https://www.coindesk.com/crypto-collectables-ethereums-next-killer-app-is-on-its-way/
  2. Shirley, Deter, ERC: Non-fungible Token Standard #721. Ethereum Foundation, 2017. https://github.com/ethereum/EIPs/issues/721

 

Cryptocurrency Thursday

More on CryptoKitties

Continuing the saga of CryptoKitties:

Last week I wondered about the business model and governance of the Ethereum swamping CyptoTulipsKitties game.  This week we learn a bit more.

Rachel Rose O’Leary reports that the game isn’t quite as “decentralized” as many might assume from it use of the Ethereum blockchain and executable contracts. It is mostly open source, with a few bits of game logic kept secret (for sound reasons of playability).

She reports that there are also some secret commands that lets the “core” organization (“Kitty Corp”) backdoor everything.  And playing the game requires agreeing to conventional terms and conditions that give the “core” the right to terminate or modify your assets as they will.   She also reports that the interface actually runs on a conventional server, i.e., a “centralized” architecture.

In short, in many ways, this is a conventional game that uses Ethereum as a database. This is a shocking betrayal of the basic philosophy of crypto, though, it appears to be good game design.

O’Leary quotes developers who endorse this design because “trying to run an app on the ethereum blockchain without using some help from central servers is UX suicide.” (quoting Griff Green)  I.e., as I said “smart contracts” are heinously slow and gawky, and completely unsuitable to use in a game.

So, this highly successful game “Isn’t Quite Ethereum’s Vision for Apps”.  Worse, it is sucking down resources, crowding out others from the common blockchain and consensus protocol.

Furthermore, as I noted last week, there is no barrier to cloning the game. In fact, the open source code means that pretty much anyone can make their own version of this tulip factory. Ethereum may be able to survive one CryptoKitty app, but how will it handle hundreds or thousands of them?

The bottom line is that Ethereum is by far the leader for CryptoTulip of the year.


  1. Rachel Rose O’Leary,  Scratch That: CryptoKitties Isn’t Quite Ethereum’s Vision for Apps. Coindesk.December 13 2017, https://www.coindesk.com/scratch-cryptokitties-isnt-ethereums-vision-apps/

 

As I Said, Ethereum is Winning the CryptoTulip Award

I already tapped Ethereum as the favorite for CryptoTulip of the Year, but the goofiness goes on.  Not content with complete breakdowns and hundred million dollar oopsies, Ethereum is now plagued by a successful fad – CryptoKitties.

I learned about CryptoKitties from the BBC, which goes to show you that the mania is so manic it’s visible in the wider culture.

The idea of the game is slightly clever, though nothing that wasn’t done on a PDP 8 circa 1977. You can buy digital kitties, and, more interestingly, you can breed them.  I’m assuming you could trade or sell them.

The news is that this very simple artificial life game is implemented on the Ethereum blockchain, and financed via Ether.  Of course, you could have implemented this game in any number of ways.  It’s hard to say that the blockchain per se adds anything other than novelty.

There have been efforts to implement games using a blockchain before, but CryptoKitties has really caught on.  And that’s a problem.

Ethereum executable contracts are Turing Complete, which means that you can implement any computer program on the Ethereum blockchain. However, these scripts are going to be really, really slow, and there isn’t much storage available.  So most programs are going to suck badly on the blockchain.

In this case, the storage used by CryptoKitties has become a significant fraction of all the records in the entire Ethereum universe.  Recapitulating the history of campus mainframes, game playing is pushing out all other uses of the shared blockchain.

Of course, unlike University computing facilities, there is no authority to shut down the game on Ethererum.  So who knows what will happen?

Philosophically, we see that this episode illustrates that the classis Nakamotoan blockchain is vulnerable to a tragedy of the commons. In fact, it seems designed to be a demonstration of this phenomenon. And, by the way, there will certainly be attempts to clone the success of CryptoKitties.  So there could be multiple games, all sucking down the common resources.

This game shines an interesting light on the “value” of digital currency. CryptoKitties are fundamentally no different than any other tokens traded on a blockchain.  But these are dressed up with a concrete, human-visible representation, and a bit of human-oriented gameplay.  So these cryptographically secured digital tokens are selling like hotcakes, unlike most Ehtereum based apps.  Value depends on people.

It is also interesting to observe the cognitive dissonance produced by this challenge to the system. A lot of users are surely feeling that playing this pointless game a waste of blockchain resources, and taking away from the important, serious things they want to do. On the other hand, CryptoKitties is becoming one of the most successful businesses ever to use Ethereum. And if playing a game isn’t “serious”, it’s at least as reasonable a use as the endless variations on EBay or PayPal.  So, CryptoKitties is dumb, but people want it enough to actually pay for it.

Now, criticizing all the other users of the shared blockchain is just not done.  I mean, the whole Nakamotoan design requires a libertarian tolerance for what all those transactions you help with are really about. Did I just help implement an extortion payment?  Tax evasion?  Human trafficking?  Don’t ask.

It will be interesting to see if CryptoKitties continues to grow, and if so, what will happen to the whole system. Aside from the performance issues (at some point, CryptoKitties and clones could exceed the total capacity of the network protocols), crowding out other uses threatens the underlying logic of the consensus mechanism. I don’t think I’ve seen a design where a blockchain is dominated by a single massive application, while maintained by many independent nodes voluntarily participating in the verification and consensus protocols.

If one game is using all the resources and sucking much of the revenue, will that drive away everyone else?  If so, will there be a feedback effect, as fewer nodes lead others to drop out?  Will developers walk away?  Or just be hired by the game company?

Interesting.


  1. BBC News, CryptoKitties craze slows down transactions on Ethereum, in BBC News – Technology. 2017. http://www.bbc.com/news/technology-42237162

 

Cryptocurrency Thursday