The New Libertarians
I think the big trend in the next ten years will be the futile struggle to restore trust worldwide, and it will create great opportunity in internet security, encryption, virtual currency and other emerging related technology.
Today we know we can’t trust family, friends, police, military, clergy, judges, politicians, bureaucrats, businessmen, bankers… not to molest children, not to coerce sex, not to shortchange us, not to deceive us, not to steal from us. Just because they work for a big bank, the federal, state or local government, a worldwide church with a 2000 year tradition, a big corporation…doesn’t mean they’ll be fair and honest with us- but we still have to do business with them in order to live our lives. We still need to buy food, pay our bills, record the deeds to our properties, pay our taxes… even though we know everyone in the entire world is likely to be dishonest- and we can’t completely trust them. If we want to do business with people in another country, in which currency will we do the transaction? It’s a lot more complicated that it seems at first sight, and (as in the case of Saddam Hussein’s Iraq- which refused to sell its oil in US dollars, which it couldn’t spend) it can lead directly to war, millions can die. It’s a very big deal.
If we need to do business with people we know we can’t trust we can call on a “third party” we CAN trust through which to do our transactions- and pay them to fill that role. A bank escrow is a good example. We presume the government makes “fiduciary” rules for the banks, and we can safely open a bank escrow account and put money into it. Once the buyer is satisfied with the transaction, the bank will release the funds to the seller- and charge its fee. The bank and the government are partners in the transaction. Once you no longer think you can trust the government, or the bank- then it becomes ever more difficult and risky to do business.
That’s what Bitcoin is all about, and why Blockchain (which is the code structure for the “ledger” for Bitcoin) is an important new emerging technology. That’s why I decided to study it, and use it for my project.
I’m passing out an article from the Wall Street Journal of the day (last week) I thought I was to give this presentation- just so you can see how “hot” this issue is. It also gives you the link to this website page, which will evolve into my project. As time goes on and I come to understand more about it, I will create more links from the page so you will be able to understand it, too.
Don’t read this now- just glance at it, because I’ll come back to it. Let’s move on.
A little over two years ago 9/16 I asked my first Interactive Web I class, and the instructors from both sections were there…”Does anyone here know anything about Blockchain?” Nobody had even heard of it. I said, “It’s what runs Bitcoin”. Everyone had heard of Bitcoin, but nobody had heard of Blockchain.
At that moment in time Bitcoin was worth $700. On 15/12/ 2017- less than a year and a half later it was worth $17,900. A week later it dropped below $14000. Today it’s worth $6400.
I read the Wall Street journal every day, often cover to cover. There’s been something about Bitcoin every day, Blockchain about three times a week. In today’s Journal I find this article. It’s a brand new cryptocurrency being offered by the “godfather” of cryptocurrency- which claims to address the two main problems with Bitcoin.
My point is simply this. This emerging web technology is big news- and there’s a lot of money involved which means it’s important. That’s why I want to understand what’s going on.
Blockchain Presentation
In this presentation I will answer the questions, “What is it?” “Who uses it?” “What are its advantages and disadvantages?” and “Why am I interested in it?”
I use Wikipedia extensively, because I like it that it links words I might not understand to their definitions. Links from Wikipedia I haven’t explored yet, I’ll say “I don’t know what that means yet.”
Blockchain Definition: What is Blockchain?
This is a diagram of Bitcoin’s Blockchain design.
A blockchain,[1][2][3] originally block chain,[4][5] is a growing list of records, called blocks, which are linked using cryptography.[1][6]Each block contains a cryptographic hash of the previous block,[6] a timestamp, and transaction data (generally represented as a merkle tree root hash).
By design, a blockchain is resistant to modification of the data. It is “an open, distributed ledger that can record transactions between two parties efficiently and in a verifiable and permanent way”.[7] For use as a distributed ledger, a blockchain is typically managed by a peer-to-peer network collectively adhering to a protocol for inter-node communication and validating new blocks. Once recorded, the data in any given block cannot be altered retroactively without alteration of all subsequent blocks, which requires consensus of the network majority. Although blockchain records are not unalterable, blockchains may be considered secure by design and exemplify a distributed computing system with high Byzantine fault tolerance. Decentralized consensus has therefore been claimed with a blockchain.[8]
Discussion:
Blockchain came into prominence as the foundation for the cryptocurrency Bitcoin. It enables the secure and anonymous transfer and recording of transfer of assets- even by people who don’t trust each other. It can be used like an escrow at a bank- the bank holds the buyer’s money until the buyer is satisfied, and only then releases it to the seller. Blockchain in conjunction with Bitcoin makes it possible for “third parties”- banks, brokers, regulators, government agencies- to be eliminated from being part of the transaction.
Who Uses it?
In the beginning, Bitcoin was used by people who needed to do business in secrecy. It was particularly valuable to people who didn’t trust each other, but couldn’t use a bank’s escrow to do business. Cryptography to guarantee anonymity was the main purpose. The cryptography is expensive, energy intensive, and in the beginning only those who had good reason to want to endure the expense used the platform so…
It was used by drug dealers, arms dealers, money launderers, tax evaders- and others who wanted to be able to transfer assets securely, hidden from the “heavy hand of government”. They could buy Bitcoin with dollars, yuan, yen, euros…and use it to do anonymous transactions. Government agencies computer systems designed to “follow the money” were thwarted in their investigations by blockchain’s security.
It became very popular in China, until the government saw it being used to move Chinese assets abroad- and the government cracked down on it. The U.S. IRS jailed Ross Ulbricht, founder of “Silk Road”, on improbable/trumped up charges because they saw him (and his Bitcoin/Blockchain) as a threat, and wanted to make an example of him. Libertarians (like myself) came to see Bitcoin/Blockchain as an assertion of individual liberty, privacy and self-determination in opposition to an ever growing global Police State.
Initially, Bitcoin/blockchain was shunned by “upright” businessmen, not only because of its expense but also because people felt that becoming involved in it might cause them to be targeted by the Police State. Today, as the surveillance/data mining/cybersecurity issues become more visible and problematic- and as we become ever more dependent on our computer networks for EVERYTHING, water, electricity, trains, airlines, shipping and compromises present a real security threat- big institutions like IBM, Goldman Sachs and other big banks are spending billions on Blockchain for their own purposes- and it is being used for other purposes besides financial transactions, like voting.
I chose Blockchain as an important emerging web technology, because I think there’s a big future in it. Being able to safeguard information and IT from destructive/dishonest/dangerous intrusions is no longer only of concern to those who want to break the law, but also to those who want to uphold it. Today, cryptocurrencies (Bitcoin, Etherium, etc) have a legitimate exchange platform where they can be turned into whatever money anyone wants- and back again, instantly, enabling (but no longer requiring…) speculation on the value of the currencies- which has caused volatility in the short term (which can be avoided) but should serve to stabilize things over time. It will present a world of new challenges to the global economies, sovereign interests- and offer a world of opportunities to those who understand it.
Advantages and Disadvantages:
Why is blockchain useful?
The key advantages that Blockchain offers are:
Distributed
Blockchain allows a wide variety of computers to take part in a network, distributing the computing power. For example, Amazon buys and maintains a private set of computing power for AWS, no-one but Amazon can contribute this. In contrast the blockchain organisation Ethereum allows almost anyone to contribute their computer to their network, simply by installing their software. Distribution helps to reduce risk in tampering, fraud and cyber crime. With more nodes able to take part, systems are very hard to “take down” via traditional brute force network attacks.
Trustless
Blockchain allows digital transactions to happen between parties who do not trust each other. Imagine a digital coin stored in a file on your computer. You may copy and paste the file an infinite number of times. The value of this digital currency would close to zero. In the past, central authorities (banks) have acted as ledgers, keeping records of the number of coins each of us has available as a centralised Ledger, to avoid the problem of duplication.
By distributing the Ledger to many Nodes, and synchronising this Ledger via Consensus, blockchain allows parties who don’t trust each other, to believe that the transaction is real and not worthless. Over time, trust can be increased further, via shared processes and immutable records of transactions. This facilitates a massive range of potential digital transactions that couldn’t have happened before without a central authority managing them.
Immutable
Once a transaction is agreed and shared across the distributed network it becomes close to impossible to undo. In fact, over time, it becomes harder and harder to undo. In a public ledger, like Bitcoin, this means that you can explore the blockchain and discover the number of Bitcoins in anyones account, or trace where funds were distributed to. In other scenarios, this could be used to track supply chains, or check who accessed certain files on a network.
Decentralised
Blockchain also supports the reduction in centralised monopolies or “middle-men”and removes costs. By distributing networks blockchain can find economies of scale, without single centralised investment. This increases competition in the market, by lowering the barriers to entry, putting pressure on all participants to become more efficient. Added to this, allowing peers to transact with no requirement for trust disrupts the current business practices of organisations who facilitate trust e.g. Banks. Transactions directly between peers, may lead to reduction in “middle-man” steps, further increasing market efficiency.
What are the challenges of blockchain?
Blockchain is not without it’s weaknesses:
Wasteful
Every Node runs the blockchain in order to maintain Consensus across the blockchain. This gives extreme levels of fault tolerance, ensures zero downtime, and makes data stored on the blockchain forever unchangeable and censorship-resistant. But all this is wasteful, as each Node repeats a task to reach Consensus burning electricity and time on the way.
This makes computation far slower and more expensive than on a traditional single computer. There are many initiatives that seek to reduce this cost focusing on alternative means of maintaining Consensus, such as Proof-of-Stake.
Network speed/cost
Blockchain networks require Nodes to run. But as many of the networks are new, they lack the number of Nodes to facilitate widespread usage. This lack of resource manifests as:
- Higher costs — as Nodes seek higher rewards for completing Transactions in a Supply and Demand scenario
- Slower transactions — as Nodes prioritise Transactions with higher rewards, backlogs of transactions build up
Over time, successful public blockchain networks will have to incentivise Nodes, whilst creating favourable costs for users, with transactions completed in a relevant timeframe. This balance is key to the economics of each blockchain.
The size of the block
Each transaction or “block” added to the chain increases the size of the database. As every node has to maintain a the chain to run, the computing requirements increase with each use. For large public implementations of Blockchain this has one of two affects:
- Smaller ledger — Not every Node can carry a full copy of the Blockchain, potentially affecting immutability, consensus etc.
- More centralised — There is a high barrier to entry to become a Node, encouraging a larger amount of centralisation in the Network, with bigger players able to take more control.
Neither of these scenarios is desirable, without considering the full implications, as it will likely affect the use cases for blockchain variants.
Speculative markets
Many blockchains are run using token/currency models to fund development or manage the economics of Nodes. For example, Ether (ETH) is the currency used to pay for computing power (or Gas) on the Ethereum network. Therefore ETH is a currency for computing power.
Traditional currencies like USD, GBP, EUR (also called Fiat currencies) are generally linked to value of their respective economies e.g. GBP to the UK. These economies are well developed, regulated and stable. ETH is not. However, due to the potentially disruptive nature of Blockchains, people have taken to speculating on the value of the digital economies they create.
As these markets are subject to limited regulations, and are highly speculative they are prone to rapid fluctuation and manipulation, spiking transaction value. This presents particular risks when transacting from Fiat currencies into blockchain currencies. For example 1 ETH may cost ~$200 today, but ~$180 tomorrow, a 10% price fluctuation. Whilst this can create large rewards, it also presents high degrees of uncertainty for projects developed on public blockchain technology.
Hard and Soft Forks
Many blockchains and currencies decentralise their decision making. For example Bitcoin allows Nodes to “Signal” support for improvements to the core Software that run the network. This allows the blockchain to avoid centralised decision making, but also presents challenges when communities are divided about the best course.
When Nodes change their Software, there is potential for a “Fork” in the Chain. Nodes operating the new Software will not accept the same transactions as Nodes operating the old one. This creates a new blockchain, with the same history as the one it is built on.
Forks create significant uncertainty, as they have the potential to fragment the power of the blockchain network into lots of variants. They are also likely to be necessary, as without the capacity to update the Software, the blockchain is unlikely to be future proof.
Immutable Smart contracts
Once the smart contact is added to the blockchain, it becomes immutable, in that it cannot be changed. If there are flaws in the code that may be exploited by hackers, they are there forever. This is not a concern when a smart contract is not being used, but as smart contacts behave like accounts, they can be used to store large amounts of value.
This can create scenarios where hackers can exploit code flaws to send the contents of smart contracts to their own accounts. As the blockchain is immutable, these Transactions are very hard to undo, meaning large amounts of value may be lost forever.
Why am I interested in Blockchain?
My particular interest in Blockchain is to be able to create a secure “Australian” internet based polling/voting platform where everyone online across the globe can vote on issues of supranational interest, which never make it onto ballots anywhere under the current system. For my project I’d like to create a “voting app”, which would enable this.
I have no (ZERO, NIL, 0.00 …) interest in speculation on Bitcoin, nor on “mining” of Bitcoin- or any other cryptocurrencies. That’s kid-stuff, in my opinion. It’s fun to imagine that I could infect every unsolicited phone call or e-mail with a virus which would turn their smart phone/computer into an Etherium “miner”, and have it deposited in my account! I expect if that could be done, somebody would have already done it.
Because there is an existing infrastructure for blockchain (Bitcoin, Etherium, etc) perhaps I might be able to “hitch” my “app” to their “wagon” and be able to use their infrastructure for my own purpose. Perhaps, I could offer global opportunity (even in oppressive societies) to vote by “donating” bitcoin in exact quantities which could be digitally decoded into voting choices, and refund (most or all) the money after the vote was logged…
My Project for Web III
I need to decide whether to devote my attention to a way to “hitchhike” on an established digital currency to create my “Voting App”, which could be equated to the old (discredited) “poll tax”- or not. If you make voting contingent on willingness/ability to pay, the result isn’t going to be fair to those who can’t afford to pay to vote- and your results will lack resolution. The advantage of a “poll tax” is that it makes it more difficult (and expensive) for hackers to degrade the vote.
Imagine a voter had to pay $100.00 to be able to vote, and our transacting his vote on the blockchain used $1.00-$5.00 worth of data/handling -depending on how he votes, each yes being a 1, and each No registers a 0 – and a 30 vote ballot generates a 30 digit digital number…. and we could refund everyone the same $95.00 after the votes were registered- there would be few attempts to “buy” the system. If we detected fraud, we’d keep the full $100 and refund zero. That would be a strong deterrent to voter fraud, and it would cost the price of a drink to vote our ballot.
Motivation
All the current implementations of blockchains are tightly coupled with the larger context and problems they (e.g. Bitcoin or Ethereum) are trying to solve. This makes understanding blockchains a necessarily harder task, than it must be. Especially source-code-wisely. This project is an attempt to provide as concise and simple implementation of a blockchain as possible.
What is blockchain
From Wikipedia : Blockchain is a distributed database that maintains a continuously-growing list of records called blocks secured from tampering and revision.
Key concepts of Naivechain
Check also this blog post for a more detailed overview of the key concepts
- HTTP interface to control the node
- Use Websockets to communicate with other nodes (P2P)
- Super simple “protocols” in P2P communication
- Data is not persisted in nodes
- No proof-of-work or proof-of-stake: a block can be added to the blockchain without competition
Naivecoin
For a more extensive tutorial about blockchains, you can check the project Naivecoin. It is based on Naivechain and implements for instance Proof-of-work, transactions and wallets.
Breaking News
For a long time, Western economists failed to appreciate the relationship between private property rights and economic development. Karl Marx saw private property as the source of wealth and called for its elimination to promote equality. A century and a half later, we know that a country without a formal system for registering property rights limits its own economic development and prevents its citizens from realizing their full potential. It’s a simple yet startling fact: The road to economic development runs through the county clerk’s office at the local courthouse.
The…