So from my point of view, you have this massive upfront cost, that I suspect the vast majority of teams are not paying, and you also have the chance of success being very low. Where have we seen this before, home automation seems to ring a bell and we've seen the security horror show with that. I don't mean to be such a downer on these projects, but they're really difficult to get right and audit. And when we're talking about putting millions(90!) of dollars into a thing, I don't really want to rely on the goodwill of some hackers to give me my money back. I wish the general public understood the security aspects of these contracts more, but people seem to see these hacks, shrug to themselves thinking they'll get debugged and fixed like normal software, and then continue on in life.
Unfortunately people are going to get burned in crypto by lack of experience, lack of review, lack of investment, and pure and simple scams.
https://github.com/openethereum/parity-ethereum/blame/4c3217...
https://blog.openzeppelin.com/on-the-parity-wallet-multisig-...
If you look at the associated pull request, it added over 2K lines of code, and removed almost 1K, spread across 20 different files. 5 files have changed so much, GitHub doesn't even show their diff by default.
It was reviewed by one person in a single day.
While DeFi can implement these kind of policies and procedures, the rate at which seemingly undertested (untested?) code is being deployed and given unfettered access to a large values of tokens definitely falls under the "move fast and break things" category. Clearly the people involved don't grasp the level of risks they're taking or there would be a heck of a lot more emphasis on QA over deployment-to-the-blockchain.
If we’re comparing who “breaks” things more, crypto or banks, crypto will lose every single time. So far I’ve never had my bank account wiped out and the website replaced with a single page that says “penis”.
There's also the possibility that governments will actively ignore cryptos problems just to de-enforce crypto's utility.
Not even then, as repeated illegal actions by banks (Wells-Fargo in particular has been getting caught a lot recently, but is hardly the only offender) demonstrate.
Not to mention, you have all sorts of people trying to exploit your code - draining smart contracts from money is a great incentive for black hats.
So it's even worse than JS in some aspects (not just the language itself, but the platform it is tied to).
EDIT: see https://ethernaut.openzeppelin.com/
The entire compound bug was apparently a typo, > instead of >=. No language can protect against logic errors like that.
The faster we ban all crypto nonsense the better.
Formal proofs might even make software worse since they lock down requirements; potentially in a sub-par way. Not to mention that requirements change. Good code needs to be able to handle changing requirements.