CACM Feb. 2019 – Blockchains from a Distributed Computing Perspective

coverage of cryptocurrencies is often marked by sensationalism stories about going from rags to riches the discovery of underground criminal networks the promise of a libertarian utopia what's often missing from these overly dramatized accounts are the basic notions and mechanisms underlying block chains join us as we visit Brown University to talk with professor of computer science morris Herlihy and his research on block chains now one thing that I noticed early on was that a lot of what goes on in Watkins is a kind of recapitulation of what happened in distributed computing during the 20th century one of the basic ideas is this notion of consensus you have a collection of parties that all get together with different ideas they communicate with each other and eventually they settle on one of these ideas now there is a key insight that you can build the concurrent system by repeatedly doing consensus blockchain work takes this idea to a new level by doing the same kind of repeated consensus only in an environment that is far more hostile there are both public and private blockchain Ledger's and the underlying systems for each different now a private blockchain is a little bit like in The Godfather movies where all of the rival gangs meet to negotiate with one another nobody trusts anyone else but they all know who everyone else is so that if somebody tries to heat you or pull a fast one at least you know where they live you can either take them to court sue them or send a hitman after them by contrast a public blockchain you don't really know who anyone is there's no reliable notion of identity in that case instead of simply recording what happened in camera proof way is very important to pre and bad things from happening there are many different ways to prevent cheating on a public blockchain but the most common method used is called proof-of-work miners compete to solve a puzzle whoever solves a puzzle first chooses the next block to append to the ledger and if the block is valid receives an award the high cost of the proof of work in the form of wasted time inexpensive electricity bills prevents cheating so proof of work is very much like saying I'm going to burn hundred-dollar bills in order to acquire the right to vote on the blockchain of course it's not literally burning hundred-dollar bills but it is a conspicuous consumption of our resources that serves no purpose other than to establish your credibility for obvious reasons there has been a lot of attention given to other ways of doing consensus that aren't quite as wasteful most blockchain systems add functionality to Ledger's by providing some form of scripting language these programs are often called smart contracts so a smart contract is in fact neither a contract nor is it particularly a smart the name is a brilliant a marketing a ploy and it's caught on so I'm going to a use that term but a smart contract is just a script that reacts to inputs and changes the state of the blockchain in response the smart label gives a false sense of security and some companies have been hacked to the tune of hundreds of millions of dollars initial attempts were based on languages that were full of pitfalls with complex and baffling semantics they made all kinds of strange decisions like having silent arithmetic overflows having methods be public by default many of those are slowly being fixed but the smart contract role got off to it as a start there's still a lot of work to be done in the blockchain community and Hurley he believes working on blockchain is the ultimate practical application of distributed computing many people complain that distributed computing had all of these elegant algorithms but very few practical applications well now we have a practical application this is the time to get in on the ground floor in what I think is an exciting and hugely influential research area for distributed computing to learn more in the February 2019 communications of the ACM in the review article blockchains from a distributed computing perspective

Leave a Reply

Your email address will not be published. Required fields are marked *