We are a commune of inquiring, skeptical, politically centrist, capitalist, anglophile, traditionalist New England Yankee humans, humanoids, and animals with many interests beyond and above politics. Each of us has had a high-school education (or GED), but all had ADD so didn't pay attention very well, especially the dogs. Each one of us does "try my best to be just like I am," and none of us enjoys working for others, including for Maggie, from whom we receive neither a nickel nor a dime. Freedom from nags, cranks, government, do-gooders, control-freaks and idiots is all that we ask for.
Our Recent Essays Behind the Front Page
Thursday, October 6. 2016
As if I were a very slow child: What is Blockchain, and what good is it?
Display comments as (Linear | Threaded)
Near as I can figure out, think of it as a Complete Chain of Custody. Every time the widget, or whatever, at the head of the blockchain changes hands, of is transferred, the transfer is recorded, and all transfers are a permanent record. If someone tries to sell you widget 17AAB, and their computer/IP address, whatever, doesn't match the last recorded computer/IP address, they can't sell it, trade it, or do anything with it. The central server in charge of widgets will have a full recording of the blockchain data, as will the current owner. It's a way to establish you own a genuine widget with whatever value is currently assigned to widgets.
It's a way of de-anonymizing electronic/digital currencies so that the FBI/STASI can track you down when you try to use it to buy unapproved chemicals or engage in thoughtcrime on the internet.
Ok Mr. BD, I'll have a go.
First we must define a hash. A hash is a short string of data that (sort of) uniquely represents a long string of data. A hash is created by a mathematical procedure. It is possible that two entirely different long strings of data will both generate the same hash value. But because they are so different, it is easy to distinguish our valid data from the scrambled data. For instance, the long strings "The quick brown fox" and "aQoqi1su#foiaZwhfz9" both could have a hash of "xy1T", but we can figure which data is real, and which is not.
OK. The block in a blockchain contains a list of transactions (data records). "Joe paid $3 to Sally for a pen," "Sally paid $100 to Harry for services rendered." Whenever a new transaction is made, the record of it gets sent to everybody, who add it to their own copy of the block.
Eventually the block gets big enough, and people try to close the block. To do that, they take the list of transactions, add to them the hash of the previous block, and then add a nonce to the block. A nonce is just a random string of letters.
Here's the tricky part. We want to find a nonce that, when the (nonce + transactions + previous block hash) are hashed, the hash value looks like first a bunch of zeros and then some random letters (e.g. "000000asdjkuyg". That's very computationally hard to find that particular nonce. However, if you know both the nonce and the hash of the block, it's easy to verify that the transaction data in the block has not been changed. The first person that finds the nonce is the winner and earns bitcoin. Everybody else gets the nonce and hash of the block, closes their copy of the current block and starts making a new block.
So a blockchain is linked blocks of transaction records that everybody can read, everybody has their own true copy of, and everybody can verify that the transactions have not been falsified or corrupted.
I highly recommend the book, The Blockchain Revolution by a fellow named Tapscott. Very readable.
What I would tell a very slow child is: wait until you grow up to worry about this. :) What I would tell a successful, intelligent adult who doesn't have a background in this area is more like this:
Complimentary to the explanation John gave above: cryptography in general, and hashes (or digital signatures) depend on the fact that some math problems are very hard to do, but easy to verify once they're done. "Factor 107,352,907,751" is hard. "Verify that 117 is a factor of 107,352,907,751" is easy. Using the difficulty of factoring large numbers into primes is how the underlying math works for digital signatures and "public key" cryptography works. Adding a bit of random data to a known (plain text) block and then computing the result, effectively proves that you know the key-- and then the data in that block can't be changed (even one bit!) without invalidating the result. In blockchain systems, this prevents the plain text record of transactions from being changed after they've been signed.
Your bank (and your internet browser, chip-and-pin credit card, etc.) use public-key cryptography, where the key is actually a pair of large prime numbers. One is secret, used to sign the messages. The other is public, usually in a certificate with your identity-- anyone can use it to verify that, yes, your private key was used to sign or encrypt a given piece of data. (I'll skip the math-- wikipedia "public key cryptography" for more.) This is usually a hierarchical system: the bank signs the customer's certificate as belonging to a valid customer; the bank's certificate is signed by a higher authority (government or private, depending on the country) as valid, etc.
So far, so good, but what if we wanted a system with no central authority? How would you know if a block signed by "Bird Dog" was actually done by the Bird Dog from Maggie's Farm? Here, we bring in another mathematical field, called Byzantine Fault Tolerance. The reference is to a thought exercise, where Byzantine generals are trying to agree on when to attack, but any given general doesn't know if one or more of the others is a traitor, and doesn't know if a legitimate message has been lost. Again, I'll skip the math (and refer you to wikipedia-- it's a fascinating area, with very wide real-world applicability)... the results are: as long as less than 50% of the actors are cheating, you can securely verify legitimate orders. For things like Bitcoin, the "legitimate order" is transferring Bitcoin from one person to another.
The specific implementations for the blockchain system describe the rules for signing and computing a trustworthiness value for signed blocks. In general, individual entities append new entries (Bitcoin transactions) on the end of their existing database, sign it, and then submit it to their peers. They calculate the trustworthiness of the submission, and if it's higher than the previous one they had, they accept the change and append their own results to the end. Lather, rinse, repeat. Again, skipping the math and stating the result: once a change meets the trustworthiness threshold specified by the blockchain designer, it will propagate to every node and cannot be rejected later.
Some final comments: 1) the transaction ledger is visible to everyone. Some people think that Bitcoin is "untraceable"-- the opposite is true. Every transaction is necessarily open to view. 2) This will fail if 51% of the nodes are compromised, or fall under the operational control of one entity. Bitcoin makes this "hard" by requiring "proof of work" (mathematical busywork, which consumes gigawatts of power to do), but it's an open area of research whether this could be bypassed. If it is done, Bitcoin is immediately (and retroactively!) toast. 3) Stealing Bitcoin is currently done by stealing your identity (the private key), which usually depends on a human screwing up, rather than some deep mathematical result. Blockchain won't protect you from this!
Excellent explanation Janet.
I'll stress the key aspect of Byzantine Fault Tolerance, for the semi-demi-hemi layman:
You can anonymize the users, but the transactions themselves and the credentials, the bona fides of those transactions, cannot be anonymized and are transparent to all other users on the network. Because authentication of the transaction is crowdsourced to individuals with fiscal interests in building the blockchain further, most of the users will tend to be pretty reliable and the incentives for fraud among the 'authenticators' are pretty low. Essentially it's a crowd of third parties validating the transaction and watching the money, in the form of cryptographic packets, change hands.
The bitcoin itself is essentially an electronic bearer bond, albeit one that is harder to forge than a paper-based bearer bond. Uses of the blockchain aren't limited to cryptocurrency. Blockchains could be used to track stock trading, for purposes of automated inventory management, in large scale manufacturing and in cybersecurity (as an identity and logon token, for example, replacing a password).
The only downsides I see are that the metadata in the blockchain may come to completely outweigh the quantity of data transferred, and the corruption of keys offers the potential of compromising an enormous amount of transactions - which after all are visible to an entire network. In other words, you're a lot less likely to have a security problem but if you do, it's gonna be a doozy.
Think of a blockchain as a stack of magic paper. If you want to write something on any sheet of this magic paper, you have to follow certain rules before it allows you to write on it. Once anything is written on any sheet of this magic paper, it automatically appears on every other sheet. Thus, every sheet of this magic paper reads exactly the same way; no matter how or where this stack of magic paper is distributed, everyone sees the exact same thing. Oh...there's also no magic eraser. Once something is written on the magic paper, it stays on the magic paper.
After wading through most of this, I've decided to keep my treasure buried in the garden, like I've always done. I'll just have to miss out on all those good internet deals.
Here is what Wretch at Belmont Cub had to say about it.
But just to illustrate how things have changed for the State we now know that Orwell was wrong. The mathematically dominant method for recording transactions, whether they involve the transfer of financial assets, intellectual property, health records or any type of information is probably going to be the blockchain. It has three important properties. First, the entire record can be reproduced by anyone from a Genesis cryptographic starting point such that all records will have the same signature if and only if they are the same. Second, no part of the record can be altered without regenerating the entire block chain from the the branch. Third, it is impossible to rewrite the block chain without incurring enormous real costs in electricity and computing power, as guaranteed by the laws of thermodynamics.
The first property means that blockchain by nature is a public ledger. The second ensures the database can only be falsified in its entirety from the point of change. The third makes it prohibitively expensive to do so. Readers of Ray Bradbury's The Sound of Thunder will recognize these attributes. From his story we learn you can't change the past without altering everything; that by crushing a butterfly in the Jurassic we alter not one item in the record but create a whole alternate history.
The possibility of an immutable record is revolutionary in itself. History has always been a "fiction agreed upon" — until now. What happens when you can't lie boggles the mind. The elites are of course working to get on top of it as they did with the Internet and every other disruptive technology. Central bankers from 90 countries, including Janet Yellen, have met to discuss its impacts on the financial industry and they are considerable. It will make it possible for individuals to make universally verifiable ownership claims over their data. When the technique is applied to currency, as with Bitcoin, blockchain makes it impossible to print "free money" since each new block requires actual computing power to generate, giving blockchain currency something of the guaranteed scarcity of gold. In a world built on a public ledger, you can't change the past without invalidating the ledger. Drop something down the memory hole and the Ministry of Truth burns up with it.
I would like to respond to the "what is it good for?" part of your question.
Right now our financial, insurance, property title and other industries rely on faith. Their transactional processes relies on the good faith of the parties involved as well as the quality, reliability and security of their individual transaction systems and databases.
But how can I prove when a mistake was made? My employer says they deposited my electronic paycheck on Monday. Then how come my checks bounced on Friday?
In my lifetime I have experienced various electronic payment problems with my auto insurance, internet service and even when transferring funds from one bank to another. These transactions occur (or don't) between service providers at my request. When they fail I'm the one who has to pay late fees and/or lose service.
These missing payments normally resolve themselves after some time. In my worst case I have had to pay my insurance company twice each month for 9 months until they (or the bank) fixed their issues. But that resolution was outside of my control and that is what I most dislike.
With Blockchain there is proof that every transaction completed successfully all the way back to the first transaction. If data corruption occurs, the transaction can not be closed and so can't be buried in a some database somewhere.
So the value to me is that Blockchain could provide a system of provable data and transactions that would not be subject to negotiation (late payment refund) or legal challenge.
I worked in the property title business during the time when it moved from paper and microfilm to electronic. At present the system is not as robust as most believe. The housing crisis brought some of these title issues to light. Banks relied on a chain of title custody that was not always reliable.
Replacing our current title filing process that relies of a chain of trust with a provable system like Blockchain would provide a much more robust and transparent solution.