Calling some piece of code a "contract" is where the problem starts, because they cannot legally be contracts. These programs are just software like all other software with bugs and vulnerabilities and human actors who may or may not do legal, ethical things.<p><i>Pretending</i> that software is a contract gets us into all kinds of trouble. All of the crypto scams out there were possible because people believed that the software behind them constituted some kind of "contract" that would guarantee a return on investment or the stability of their funds, which no software can do.
The Ethereum Name Service is a pretty cool use case for smart contracts.<p><a href="https://docs.ens.domains/" rel="nofollow">https://docs.ens.domains/</a>