This is the second article in the ‘Let’s get rid of the blockchain’ (gRoB) series. If not already done so I urge you to check the first article in the series — init().
The article goes over the centralization and blockchain type of decentralization, and then defines what a true type of decentralization could actually be.
2. Centralization, and the blockchain kind of decentralization
Current state of Internet operates mostly on centralization model. One example of how it works is message chat. User A types and sends a message— it arrives on the server of for ex. Facebook. The browser of User B checks the specific server and then receives and displays the message.
In this scenario communication from User A to User B and back goes always through a central point of the servers of a specific business/organization. Besides some small delays the communication is almost instant. Unless accessing paid content the exchange between User A and User B is always free.
In the blockchain type of decentralization users access the blockchain through calling (RPC API of) blockchain nodes. One example of how it works — User A posts a transaction to Node 1 for sending coins to User B. Node 1 places the transaction on its copy of the blockchain. Node 2 synchronizes its copy of the blockchain with Node 1’s blockchain in the time span of seconds to tens of minutes. When, some time later, User B calls Node 2 to check its coin balance it gets the added and updated amount of coins.
blockchain type of decentralization
In this scenario Users A and B have to either run their own blockchain nodes or access a node which is suited to provide access to multiple users. The communication between users takes usually tens of minutes and the users have to pay for the communication in the form of network fees or smart contract run fees .
Running of a node to access the blockchain is still possible for small size blockchains but as a blockchain becomes popular the size of the blockchain reaches gigantic proportions, and the ordinary user can not maintain its own node — the access for users becomes increasingly centralized.
Even though the Ethereum — one of the most successful blockchains claims to have tens or hundreds of thousands of nodes, the access to its blockchain for the majority of users is very centralized — through a single or double digit number of nodes.
blockchain decentralization becoming centralization on Ethereum blockchain
As the image shows the access for users wanting to transfer ETH goes through the nodes of few commercial wallet provider companies. And the access for most users calling smart contracts goes through the node(s) of few or a single web3.js/metamask provider(s). The rest of the active nodes on the blockchain network are most likely mining nodes which do not provide access to the blockchain for normal users.
3. True decentralization
Having seen the simple cases of communication between 2 users in the examples above the question arises — is there and/or what is true decentralization?!
In my opinion the true decentralization is the direct communication between users. In the simple case of communication between 2 users it is the direct exchange between User A and User B. The internet infrastructure allows with some (firewall) adjustment direct worldwide communication from one point to another.
Of course at least one or both of the users have to know how to find the other one. At least one or both users need to list their IP addresses in a way to find one another.
true decentralization example
There is nothing new and revolutionary in this way of communication — just moving away from blockchain marketing hype and returning to development with common sense.
The ‘smart contract’ is one of useful elements which we can keep in the post-blockchain future.
Applying true decentralization, we can remove a smart contract from a blockchain, put it in a computing resource and let it run, communicate directly with users or other smart contracts and provide service without the need to ‘pay rent’ to any blockchain.
Most likely a smart contract will need to be available and operate non-stop, so the creator / owner of the smart contract need to use as a computing resource a cloud CPU instance.
On the other hand a user of the smart contract will have a choice of running of smart contract client software placed on not ‘always on’ — notebook/phone/tablet systems, or placed on ‘always on’ small system (raspberry-pi) with home internet connection.
(disclosure — I am developing an automated trading system for cryptocurrencies, foreign exchange, metals, commodities, indexes at arstech.biz)