Bitcoin: Fundamental Answers

Bitcoin was underestimated at the start of the week:

“Bitcoin” is the naive marketing envoy, the minimum viable decentralized application, the introductory transaction vehicle for distributed, decentralized databases.

The revolutionary technology is blockchain. This revolution is rooted in our global culture’s dissatisfaction with centralized, exploitative institutions and software.

My belief was that Bitcoin is overrated, blockchain is underrated.

This belief has been inverted.

Bitcoin is the story of JavaScript all over again. Minimum viable technology -> first mover advantage -> network effects -> iteration.

For this reason, I am glad to have done “Bitcoin Week” rather than “Blockchain Week”.

What technological breakthroughs does Bitcoin make?

Bitcoin is the first application of blockchain technology: a decentralized public ledger for money.

Blockchains enable currency systems which lack intervention from banks, corporations, or governments. Bitcoin is the first such currency.

The bitcoin paper was made possible from a synthesis of recent breakthroughs in information technology such as

and other innovations.

What is a blockchain and how do you generalize its functionality away from Bitcoin to other applications?

Trust systems historically require centralization.

Banks manage financial transfers. Referees manage football games. Governments manage citizens.

Centralized systems are always flawed because the centralized source of power has too much incentive to become corrupt.

Blockchains theoretically allow for decentralization of any system requiring trust.

Any network must pay a tax for transaction integrity. Classical systems pay a centralized source (bank, referee, bureaucrat). Blockchain networks pay the network as a whole. Anyone on the network can claim some of that payment in exchange for validating a portion of total transactions.

Blockchain technology says: bank customers can manage transactions. The audience can manage football games. Citizens can manage themselves.

Can the Double Spending Problem and the Byzantine General’s Problem be generalized to represent all the important problems within a distributed value system?

Byzantine Generals is an allegory for describing the complexity of any system with multiple untrusted participants.

In fault-tolerant computer systems, and in particular distributed computing systems, Byzantine fault tolerance is the characteristic of a system that tolerates the class of failures known as the Byzantine Generals’ Problem,[1] which is a generalized version of the Two Generals’ Problem

The objective of Byzantine fault tolerance is to be able to defend against Byzantine failures, in which components of a system fail with symptoms that prevent some components of the system from reaching agreement among themselves, where such agreement is needed for the correct operation of the system. Correctly functioning components of a Byzantine fault tolerant system will be able to provide the system’s service assuming there are not too many faulty components.

via Wikipedia

Systems with multiple untrustworthy components can sabotage you in many ways.

Double spending is a different problem which illustrates why we need banks.

A specific problem that an internet payment system must solve is double-spending, whereby a user pays the same coin to two or more different recipients. An example of such a problem would be if Eve sent a bitcoin to Alice and later sent the same bitcoin to Bob. The bitcoin network guards against double-spending by recording all bitcoin transfers in a ledger (the block chain) that is visible to all users, and ensuring for all transferred bitcoins that they haven’t been previously spent.[13]:

via Wikipedia

These two topics are great for explaining bitcoin to beginners, but to use them to try to describe every issue that arises in bitcoin would be a mistake.

How does Ripple compare to Bitcoin?

The above bullets are reductionist.

Ripple could have a whole week devoted to it. The tech is fascinating and the team is strong.

What are the near-term consequences of Bitcoin and blockchain?

The payment network Visa has achieved 47,000 peak transactions per second on its network during the 2013 holidays, and averages hundreds of millions per day. Currently, Bitcoin supports less than 7 transactions per second with a 1 megabyte block limit.

The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments (July 17, 2015)

We should be optimistic about bitcoin but realistic about time horizons.

In web 1.0, promises were made that were never fulfilled until web 2.0, decades later. Those broken promises led to a lot of lost value.

Why do we laugh at WebVan but celebrate Instacart? The biggest difference between the two is the infrastructure available at the time of inception.

Bitcoin has a $3.7b market cap right now. That size is an indication of how little is being done with it beyond speculation, and how far we are from integrating the technology with our lives in a non-trivial way.

Once bitcoin has scalability we get:

Instant Transactions. Using Lightning, Bitcoin transactions are now nearly instant with any party. It is possible to pay for a cup of coffee with direct non-revocable payment in milliseconds to seconds.

Exchange Arbitrage. There is presently incentive to hold funds on exchanges to be ready for large market moves due to 3-6 block con- firmation times. It is possible for the exchange to participate in this network and for clients to move their funds on and off the exchange for orders nearly instantly. If the exchange does not have deep market depth and commits to only permitting limit orders close to the top of the order book, then the risk of coin theft becomes much lower. The exchange, in effect, would no longer have any need for a cold storage wallet. This may substantially reduce thefts and the need for trusted third party custodians.

Micropayments. Bitcoin blockchain fees are far too high to accept micropayments, especially with the smallest of values. With this system, near-instant micropayments using Bitcoin without a 3rd party custodian would be possible. It would enable, for example, paying per-megative for internet service or per-article to read a newspaper.

Financial Smart Contracts and Escrow. Financial contracts are especially time-sensitive and have higher demands on blockchain computation. By moving the overwhelming majority of trustless transactions off-chain, it is possible to have highly complex transaction contract terms without ever hitting the blockchain.

The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments

What are the far-term consequences of Bitcoin and blockchain?

“This is a long road. People get incredibly excited about this, but…this requires a massive amount of infrastructure. All of this stuff is going to take time.”

Rusty Russell on sidechains, lightning networks, and micropayments

We can (and should) talk about smart contracts, prediction markets, revolutionary governmental systems, blockchain health, and cloud-brain as a solution to AI concerns of Stephen Hawking and Elon Musk.

That is in our future, and I encourage anyone interested to check out Melanie Swan’s Slideshares.

But simply having internet micropayments is going to be world changing.

Imagine the confluence of micropayments and the rest of the world coming online. This is a huge deal!

Look at the types of jobs on Fiverr and extrapolate down on price.

What is Ethereum?

Ethereum is a decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud, or third-party interference.

How is this different from bitcoin?

What Ethereum intends to provide is a blockchain with a built-in fully fledged Turing-complete programming language that can be used to create “contracts” that can be used to encode arbitrary state transition functions, allowing users to create any of the systems described above, as well as many others that we have not yet imagined, simply by writing up the logic in a few lines of code.

Why isn’t bitcoin’s scripting language Turing complete?

“The reality is that most of bitcoin’s problems arise not from it being too simple but rather than from it being too complex. The bitcoin protocol and source code is a bit of a mess and anyone who has ever tried to manually parse the blockchain or sign a transaction knows this…

You need a Turing complete scripting language in a blockchain like you need a hole in your head.”

Turing completeness is dangerous. On a network with a Turing complete scripting language, certain contracts behave such that you cannot prove that the network will not grind to a halt.

I hope I am wrong about this, but despite producing a show about it, I am not convinced.

Not only don’t you need Turing-completeness right now (as I said above bitcoin can’t even scale yet to do its least ambitious functionality)–If you need Turing-completeness in a cryptocurrency contract system, you can augment bitcoin. Why would you write a completely new platform for this purpose?

Unquestionably, I am missing something here.

There are true believers in the Ethereum community, and the project is clearly not pure vaporware.

I am considering doing a week of shows about Ethereum. The topic seems very important. If you would like that (or if you wouldn’t like it) please send me an email.

What is the difference between proof-of-work and proof-of-stake?

Joshua Seims writes:

Proof-of-work and proof-of-stake are consensus techniques involved with choosing who gets to forge the latest block.

Proof-of-work is based on “one cpu, one vote”, while proof-of-stake is “one coin, one vote”.

In other words, with proof-of-work, miners with powerful computational resources earn transaction fees and block rewards.  With proof-of-stake, miners who possess lots of the currency earn these rewards.

Proof-of-stake has a couple big advantages:

  • It’s more environmentally friendly.  There’s no “red queen” competition to buy more ASIC mining hardware.
  • It’s more expensive to attack.  To attack a proof-of-work system, you just need to buy a majority mining power.  To attack proof-of-stake, you need to buy a majority of the currency, which is both more expensive and will instantly lose value once you perform your attack.

There are disadvantages with proof-of-stake, such as a “rich get richer” tendency.  And it only works if the currency is widely distributed across lots of people (so there’s a bootstrapping problem).

What is the difference between private chains and public chains?

I didn’t explore this much throughout the week, but Vitalik Buterin, Ethereum creator and prolific cryptocurrency journalist wrote a thorough article on it:

Essentially, instead of having a fully public and uncontrolled network and state machine secured by cryptoeconomics (eg proof-of-work, proof-of-stake), it is also possible to create a system where access permissions are more tightly controlled, with rights to modify or even read the blockchain state restricted to a few users, while still maintaining many kinds of partial guarantees of authenticity and decentralization that blockchains provide.

Software Daily

Software Daily

Subscribe to Software Daily, a curated newsletter featuring the best and newest from the software engineering community.