What most people forget about Bitcoin (and blockchain)

Written by ynkzlk | Published 2018/08/02
Tech Story Tags: bitcoin | blockchain | cryptocurrency | decentralization | distributed-ledgers

TLDRvia the TL;DR App

When I am discussing Bitcoin, blockchain and distributed ledger technologies with friends and colleagues, I always try to mention and explain the following statement:

Don’t trust, verify.

This is a very strong statement, which indirectly describes one of the biggest advantages of Bitcoin and consequently blockchain.

Bitcoin arose as an alternative to our existing, catastrophically failing banking system. Our current banking system is based on trust and like Satoshi Nakamoto initially wrote in 2009:

“The root problem with conventional currency is all the trust that’s required to make it work. The central bank must be trusted not to debase the currency, but the history of fiat currencies is full of breaches of that trust. Banks must be trusted to hold our money and transfer it electronically, but they lend it out in waves of credit bubbles with barely a fraction in reserve. We have to trust them with our privacy, trust them not to let identity thieves drain our accounts. Their massive overhead costs make micropayments impossible.”

With Bitcoin (and blockchain) we now got a technology, which is still in an early phase of its development, but already offers a solid solution, which has been proved itself as an alternative since 2009.

The wallet is the interface to the underlying technology and up to now not quite ready for mass adoption. There are three essential aspects to evaluate a wallet:

  • Trust — Can I validate transaction myself? Do I have to trust a 3rd party?
  • Privacy — Is it possible to anonymously buy / sell / transact?
  • Security — Is my key secure? How is it stored?

When examining Coinbase:

  • Trust — you cannot validate the transaction yourself
  • Privacy — you need to register
  • Security — you don’t have access to your key (or you don’t have a key at all)

Coinbase is the counterexample of what Bitcoin is meant to be.

However, Bitcoin Core (most popular full node implementation) is not perfect either:

  • Trust — it is a full node, which is able to fully validate
  • Privacy — no sign-up required and it is possible to create multiple addresses
  • Security — it does not come with a secure store (e.g. hardware wallet)

Before going deeper into the distinctions and trade-offs, the concept of full nodes and SPVs (Simplified Payment Verification) will be explained, which are two options to choose from, when not using an exchange:

An SPV is a Bitcoin implementation that does not verify everything. The SPV client submits a bloom filter (a filter to request only matching transactions and merkle blocks) to a full node providing SPV services. Each time a block header is sent, a full node will check against the provided bloom filter if transactions that may or may not be interested is in the block. If positive, then the identified transactions will be included, plus all other transactions required to compute the merkle root. For each block header received, the SPV client will check if it contains a proof of work solution that meets the difficulty requirement and if it is linked to the previous block.

Nodes that fully verify all of the rules of Bitcoin are called full nodes. The most popular implementation of a full node is Bitcoin Core. Full nodes download every block and transaction and check them against Bitcoin’s consensus rules.

https://bitseed.org/mobile-bitcoin-wallets/

It is necessary to run a full node and not just an SPV. Otherwise miners can just change the consensus rules and/or the full node you trust can be simply adversarially adjusted.

The fee estimation should not be done by anyone else, but by yourself. However, the SPV does not have the mempool / UTXO set, which is required to do proper fee estimation without relying on a centralized service.

Nevertheless most of the people are using centralized validation like Coinbase and Trezor (the transactions are sent to their service, but alternatives with Electrum exists though), because of the good usability and the ease of use. For the average person it is impracticable to download the entire blockchain and set up a full node on a computer, a server or even a smartphone. There are neither mobile carrier contracts with up to 200 GB mobile data bandwith, nor smartphones with this amount of internal storage. With a block size limit of 1 MB, Bitcoin’s blockchain scales like around 50 GB per year. If the block size is even bigger, then it becomes even harder to run and maintain a full node for the average person, because it will be economically infeasible. Which means: Less full nodes, less decentralised.

Centralized validation is convenient, but as Satoshi Nakamoto indirectly stated: it is also the root of failure in the past.

However, full nodes are required to make Bitcoin trustless. There is no central institution (like a bank or PayPal), just the software running on your own computer. Everyone is his/her own bank and should verify for themself.

Whenever features are outsourced to someone else, trust and reliance is needed. Though, the less functionalities are outsourced, the more complex the usage becomes and that’s an obstacle for most of the people. It is quite a tough balancing act to have something “easy to use”, in order to have more adoption and at the same time a minimized reliance on a centralized service. Hence, there is still a lot of room for improvements. There are already multiple BIPs (Bitcoin Improvement Proposal), which can and most likely will pave the road for future wallets: e.g. BIP158, BIP174. The development of a (almost) trustless hardware wallet with great user experience is another thing I am looking forward to.

Bitcoin (and blockchain) is about being able to operate in a trustless manner, in a hostile environment. It provides the great opportunity to verify everything, so you can be aware about everything which is happening in the system. Therefore, we should not forget about this powerful, inherent feature.

Sidenote: Currently, it is not much of a hassle and quite affordable to set up and run Bitcoin full node — it is even possible on a Raspberry Pi. Check out this great tutorial.

References:

Thanks and s/o to Jonas Schnelli and more for the good thoughts and work on this!

https://bitcoin.jonasschnelli.ch/BOB_jonasschnelli_csatfow.pdf

http://p2pfoundation.ning.com/forum/topics/bitcoin-open-source

https://en.bitcoin.it/wiki/Full_node

https://bitcoin.org/en/glossary/bloom-filter

Understanding SPV, pruning and its downsides, as well_First of all, sorry by not asking an objective question, it's because I can't resume this one and I didn't find…_bitcoin.stackexchange.com

https://upscri.be/hackernoon/


Published by HackerNoon on 2018/08/02