Почитай эту статью:
https://blog.bankex.org/nine-pitfalls-of-ethereum-smart-contracts-to-be-avoided-f7464761211cКроме этого добавлю. Язык имеет парадигму контрактного программирования (наверное они решали какую бы парадигму выбрать? Ну если быдут писаться контракты то очевидно же что контрактную и никакую другую!)=)
- в таком важном языке нету арифметических операций детектирующих переполнение, поэтому все используют библиотеку SafeMath, которая кстати очень не эффективная
- Все типы данных - это 256-битовые целые числа, даже int32 или байт =)
- Очень неэффективная работа с памятью. Настолько что большинство контрактов изобилует ассемблерными вставками, что бы хоть немного это ускорить и не тратить драгоценный газ
- Оптимизатор настолько хренов, что к нему прикрутили SMT-солвер z3 и проганяют его по 500-1000 раз что бы хоть как то улучшить положение
- Виртуальная машина - это вообще отдельная песня. У нее производительность хреновее чем у Руби
Ну и перечислять можно бесконечно на самом деле, если интерестно поищи в сети. Материала полно