I wanted to share with you my analysis of Bitcoin’s blockchain, since proof-of-work is regularly put on the table for many P2P projects (Altcoins, Ethereum, Twister, …) but still under the same form.
Also, I will give you a short presentation of what uCoin could do instead.
So, what is Bitcoin’s blockchain?
Basically, this blockchain fits 2 major requirements: synchronization, security. Let’s detail those points and see the consequences of such system and how we could go differently.
1. Synchronization
The very first requirement is sync: the fact the network orchestrates changes (a) and about a common data structure (b).
Indeed for (a), the network is constantly waiting for a valid block, which may come from any peer (more or less randomly). Since blocks are long to compute, the probability to have 2 valid blocks at the same time is rather low and allows to consider the reception of a block as in a FIFO queue. With proof-of-work, we thus have:
- Avoided spam (blocks are easily checked for validity)
- Common timpestamp (a chain of blocks)
- Random speaker on each turn
And of course (b), as the blockchain is made to agree on a common “thing” while in a decentralized structure. Here in Bitcoin, common agreement is about transactions & money issuance (which are mixed up in Bitcoin).
2. Security
The second requirement is security. Of what? To protect from whom? The security of the blockchain building against people in a an unidentified network, since participant are not known (we don’t know who or even what we deal with).
So in such a network, we use CPU resource as a discriminant to represent people. But of course this approach is very biaised, since richers may easily own more CPUs than others, or simply people may group together to get more CPU power. So in the end, we never know who is what and who does what.
We may think Bitcoin is secured thanks to CPU power repartition, which would be almost equally distributed between users (humans). But this is a believing only. Not an observable fact.
Consequences
Consequences of such an architecture is:
CPU race
Here we are talking about miners, i.e. people joining the network and participating to blockchain building to get newly issued coins. Indeed, the more CPU you have the more new coins you get. But as global CPU increase, proof-of-work becomes harder. This lead to a huge amount of CPU power (and electricity!) wasted just because we are in an unidentified network, as CPU power play the role of identity.
No Universal Dividend
A direct consequence is that no Universal Dividend may exist, since people are not clearly identified.
What other solutions?
Well, the basic idea is to identify actors. Incredibly simple, I know. But from this change of referential, here is a huge consequence: we no more need CPUs as an identifier, thus no more CPU power race.
But be cautious, we won’t throw the baby out with the bathwater: what we’ve just done is to throw away security problem, no the synchronization one. Here, I think proof-of-work has huge advantages, allowing easy sync in a decentralized network.
So yes, proof-of-work is still here. But no more with an escalation of required CPU power. But then, what if a precise peer has really more power than others? Would he have the privilege to build then blockchain alone?
Well, here the area of solution is probably wide: personally, I think a simple rule like:
Each time a member adds a block, his next block will be harder by one magniture order for the next 10 blocks.
With such a rule, a member will be handicaped for a bunch of next blocks, allowing other members to succeed before him. I know, 10 is both tremendous and ridiculous depending on the community size. But you get the idea.
So, have any opinion about all this? Let’s talk!