I got a few questions and a few annotations to all this:
About BFT:
a) Centralization. It requires permission to join the network
What do you mean by that? Most BFT protocols, especially PBFT are not centralized at all. Especially, to avoid single point of failures.
b) Scalability.
I wouldn't exactly name BFT protocols highly scalable since outside of the blockchain world they are rarely used, even considering their great advantages considering byzantine failures.
I've written a few articles about scalability of BFT systems and, if they're not built hierarchically, they don't scale well at all.
Might scale better than many of the other approaches named here though.
About the others:
I had always thought all blockchains use some kind of byzantine agreement. If not for the verification of new blocks, but for the verification of transactions. Is that wrong?
I mean, I understand how they verify the new blocks with PoS and PoW but do they use that to verify the transactions as well?
(For example, if one server decides to send not existing transactions to enrich himself)