Hashing, Blockchains, Cryptography and Bitcoin

Sir Barken Hyena writes:

What a zippy headline! Rolls off the tongue like honey. But a lot of people will be saying those words in the coming years, as Bitcoin is now poised to launch into the mainstream, to go as they say “to many zeros, or one”.

Many Bitcoin early adopters are web developers. That’s because we understand and trust the technology. For the average slob though, we need a sort of Dummies Guide to the Heart of Bitcoin.

Bitcoin uses cryptography to provide the trust that in today’s financial world comes from third parties. It does this by an ingeniously stacking up a Jenga-like tower of encrypted transactions that comes crashing down with the slightest tampering. You don’t have to be a geek to understand how it does this, no math required. Let’s jump in!

Hashing is a process that makes a unique identifier from anything digital. Feed in a picture of Dali’s anteater, and out comes JFsf3f93k0fkv5HHfmvv. A different picture will give another identifier, say h9YYYedkkw583hfl5qG. Each picture can only ever produce one particular string when hashed. So it’s a digital fingerprint. And you can make a hash from an audio recording, a text document, a CAD design, as long as it’s in digital form.

One use of this is to tell if two documents are the same with out actually having the documents in question, only the hashes of them. If even one comma is different, the hashes won’t match. Bitcoin uses hashing to compare transactions to see if one might be counterfeit. Which brings us to the Blockchain.

Bitcoin is strange, really strange. For one thing, there is no such thing as a bitcoin. There are only transactions recorded in a ledger, with debits and credits to wallets. That’s it!

The unit of account is the satoshi, 100 million satoshis equal one bitcoin. That’s all a “bitcoin” is: a transaction, recorded at a certain wallet, at a certain time, for 100,000,000 satoshis.

But this is no ordinary ledger, in fact it’s a cloud of ledgers. The Bitcoin software runs on something like 40,000 computers. Every ten minutes all the new transactions are sprayed out by the software across the internet to every computer running Bitcoin. This data is examined and synchronized.  Once the collating is done and there is complete agreement across all systems, a new row is made in the global ledger and copied out across the network.

Each of these rows is a called a block, and they stack up over time to form the blockchain.

Now suppose I want to fake an entry, give myself a nice 30,000 BTC out of thin air. Since it’s Open Source, I can modify the Bitcoin software, create a fake transaction, and send it to the cloud and hope it gets taken up by the network.

Not so fast! A block is just digital characters like a text document, and Bitcoin hashes each entire block. This hash is then passed along to become part of the next block, and so on to each new block as it’s created. So all blocks are linked together by this chain of recorded hashes, hence the blockchain. The secret here is that changing any hash along the way will cause all other blocks after to process to different hashes!

So my faked block will create a different blockchain than the real one, recorded out there in the cloud, even if every other transaction but my fake one is the same.  When my forgery is processed it will be found to have different hashes from the globally accepted ledger stored in the cloud. The phony is outed by the magic of cryptography, no third party to guarantee authenticity required. The entire blockchain breaks and falls apart like a jenga pile.

Boy, says Bitcoin, that shit just don’t add up.

While the blockchain hashing prevents fraud and counterfeiting, public key cryptography makes bitcoin secure. People think that any code can be broken, and they’re probably right. Public key cryptography goes around the problem by making it possible to break, but so insanely computationally expensive as to be pointless. Let’s just trust this and move on since it’s been used since the 1970s and has born the brunt of what hackers and the NSA can give it. It’s what’s already behind secure transactions on the internet, so you already depend on it without knowing it.

How it works within bitcoin is what’s interesting, because it controls your wallet. Symmetric cryptography, like Hitler’s engima machine, uses the same key to get stuff in and out. Capture one and you can not only decode messages, but send your own fake ones.

Public key cryptography in Bitcoin has two keys, a public key which is given out, and a private key held by the owner of the wallet. The public key is for encryption only, so it’s one way. Anyone can use this key to send money to your wallet, so it’s like an email address.

But only the holder of the private key can get access to what’s in the wallet to spend. The only security that is ever needed is to protect the private key.  This means that identity theft is impossible in a Bitcoin world, one more benefit of the trust that cryptography provides.

The essence of this innovation is that third parties are no longer needed to guarantee trust, and better yet, since it is done by what in essence is a mechanism, it’s incorruptible. And that’s something you can trust more than any human agency. This is what makes Bitcoin, whatever it’s ultimate fate (and price!), a truly epochal and potentially world remaking phenomenon.

Imagine there are no Bankers…you can do it if you try…

About Sir Barken Hyena

IT professional and veteran of start ups. Life long musician and songwriter. Voracious reader of dead white guys. Lover of food and women.
This entry was posted in Personal reflections, Politics and Economics and tagged . Bookmark the permalink.

2 Responses to Hashing, Blockchains, Cryptography and Bitcoin

  1. Callowman says:

    I feel like a very bad person for having bailed out as soon as you mentioned Dali’s anteater. I promise to read it as soon as the wine wears off.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s