Does Blockchain Generate Trust?
This assumes a little background on Bitcoin and blockchain. If you are new or need a refresher course, I have a brief overview here.
Blockchain has been touted as the solution to everything. It’s the new distributed system that empowers everyone and every new application. Is this completely true? Is it truly the panacea that everyone and every application needs? Let’s peer around the edges of blockchain and see if we can understand where it actually fits into the ecosystem of all technology and see if the applications it’s being used for are actually a good fit.
Generating trust from nothing is one of the first major feats blockchain is hyped to do, but blockchain itself doesn’t generate trust out of nothing. It actually derives from the system in which blockchain is used. A blockchain is actually just a chain of blocks of data having a particular structure which ensures its self-integrity, it can only be used to guarantee the data written to the chain was done so in a certain way. Multiple blockchains can be created with the same data up to a certain point — in fact, Bitcoin does this all the time in the mining process and the fork stays around until a majority of nodes choose the fork which grows longest.
Since the blockchain itself doesn’t create trust, let’s look at how Bitcoin creates trust around the blockchain. To create trust in the blockchain, one needs to verify relations between a few objects:
- Unique tokens, each containing a history of each previous owner.
- Transactions being broadcast to each node.
- The blockchain itself, containing a list of all past transactions and newly minted tokens. It serves as the distributed state of the network.
- Nodes, which only accept verifiable blocks from other nodes.
It is important to note this scheme only creates trust in the distributed ledger and the authenticity of each token on the network. It doesn’t keep track of bad misbehaving nodes, it simply discards any attempts to write to the ledger from misbehaving nodes. It simply discards tokens which were minted by a block from a shorter fork in the blockchain and if anyone attempts to spend those tokens the transactions would be invalid on the nodes using the longest blockchain. It has nothing to say about the identity or trustworthiness of any actor on the network outside of the veracity of each token and transaction in the ledger.
Centralized Services Diminish Trustworthiness of The Bitcoin Network
Part of the security and trust in the network comes from each person participating on the network having their own wallet, source of entropy (a good source of random numbers is required for creating a secure public-private key pair), and procedure for making new public-private key pairs. Each person having their own wallet on their own trusted computer ensures no one actor has much knowledge of the network. Each person having their own wallet on their computer ensures the network is as distributed as Bitcoin was intended to be.
When services which hold multiple people’s wallets exist, it erodes trust in the network. They become privy to tokens which would otherwise be private and stored on another computer. They become a shared source of entropy. They become a shared method for generating new public-private key pairs. This means one has to trust the service to not attempt to spend one’s tokens, try a double spend attack where they prioritize their attempt to spend tokens over one’s own attempt to spend it, or simply steal one’s tokens. This kind of modification to the blockchain system reintroduces a type of explicit trust: trust in a more centralized store of tokens — trust in a particular organization where the Bitcoin system says trust no one but oneself.
Proof of Work as A Kind of Trustworthiness
When looking at the history of the proof of work (POW) scheme used in Bitcoin, one becomes aware of the history of POW in Hashcash. This scheme was created as a way of stopping or slowing down “systemic abuse of un-metered internet resources such as email.”  When one sees a bunch of junk email in a spam folder, one is seeing the direct result of not having a requirement of trust to access a resource. If a system like Hashcash was implemented for email, spammers would have to waste more energy on CPU cycles in order to send spam. The hope would be that spending a postage of sorts on spam would eliminate the motivation for sending spam[see note 1].
This concept was integrated into bitcoin in order to limit who could write to the blockchain. By making sure someone had to do hard work to write valid transactions to the block, those whom could write to the block became limited to those willing to do the work. Whoever is able to expend the most resources to solve a problem which is nearly always going to take an average of 10 minutes becomes able to write to the blockchain.
Verified work has become equivalent to trustworthiness. Does it mean they are trustworthy? Only in the sense that they can solve a meaningless problem in a way others can verify in order to be paid a reward in tokens.
Within Bitcoin, the default use of blockchain is to generate trust in a ledger where there are no verifiable identities and when any party may be malicious and attempt to spend a token twice (double spending[see note 2]). This lack of identity is clear from the original proposition of Bitcoin. The original white paper’s section on privacy is sparse, but it includes the following:
“The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. … As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner.”
To pin a transactions to any particular identities, after the transaction is confirmed, and the coin is spent once more, the two identities must publish the private keys associated with a transaction in a verifiable manner. Someone could publish their private key, and that would supposedly prove an identity. However, all that tells anyone is the identity which published it had access to the private key at the time — a trusty sneaker net could be used to disclose the private key from a bogus account while it is erased from the original machine. A handshaking protocol could be established to verify the parties identities, where a challenge would be issued to the identity by using their public key to encrypt a known response and they would have decrypt with the private key and return the response encrypted with the aksing identity’s public key. There remains no trustworthy link to an identity without another layer trust built on top of blockchain.
The only things which can be trusted are the transactions in the distributed ledger and the tokens themselves. The identities of any party transacting on the network are generally unknowable and therefore untrustworthy within the network itself — since that kind of trust has to be established outside of the network. The activity of mining nodes is only guaranteed to be trustworthy as long as they remain separate from any privileged information — such as others private keys. Of course, there are other ways of using blockchain with trust in mind — Bitcoin is just not one of those systems.
- In Haschcash, tokens would be essentially discarded after they were used. They were all service specific. Each time one wanted to access a service, one would mine a token by solving a problem given by the service that only that service could verify. They were a one time use, just like postage stamps. By rewarding those who successfully appended to the blockchain with reusable tokens, an arms race of sorts was started. This ensured tons of energy would be used to greedily mine tokens.
- The process of double spending entails generating two transactions with the same token at the same time. If the transaction is published to two different highly connected network nodes, it could create a fork in the blockchain. Since nodes do check transactions published in blocks to make sure a token doesn’t appear more than once, eventually one of the branches of the fork will be discarded and one party will know they have the token for certain.