Adam, what an excellent article — thank you!
I would like to expand on one point, which I believe makes it extremely difficult to create sustainable decentralised applications.
Any transaction assurance mechansim has to be dynamic — it needs to get harder as computing power grows and clever mathematicians develop new ways of solving cryptographic puzzles.
But any transaction assurance mechanism also needs to stay within a zone of difficulty bounded on the ‘easy’ side by ‘not so easy that it can be hacked’ and on the ‘hard’ side by ‘not so hard that it becomes uneconomic to undertake the transaction assurance activity’.
Bitcoin achieves this with a very simple algorithm that steps forward the level of difficulty when, over the average of roughly the last two thousand blocks, the succesful miner achieves the proof in less than 10 minutes. This algorithm ignores, for example, the level of competition to be the winning miner and has seen the Bitcoin assurance process become extremely hard.
This makes Bitcoin transactions both extremely secure and extremely expensive — one of the reasons Bitcoin doesn’t work as a payments solution.
The deeper problem is that, in order to create an algorithm that would stay in the ‘not too easy and not too hard’ zone, you need to design an algo that can effectively predict the future of computing (OK, you might have a try at that, Moore’s Law, etc) AND the future of mathematics (impossible!).
I make that one hard plus one impossible, which equals = impossible!
I haven’t yet got my head around how any truly decentralised crypto asset system can have a sustainable future
If it falls out of fashion and the algo makes the proof too easy, a hacker will be able to go in and rewrite the whole chain.
If it gets too hard, won’t people will look elsewhere for an economically more attractive solution?
If you resolve this by creating a permissioned consensus mechanism, you have to trust the granter of the permissions and don’t you therefore lose all your censorship-resistance?