Может дело не в SHA, а в эффективном поиске proof of work? Ведь перед тем, как вычислить SHA, алгоритм принимает решения какие данные в него передать.
Одним из этих данных является SHA от предыдущего блока. Его подогнать никак нельзя, все пиры же проверяют
Я про то, что в задаче поиска коллизий применяется техника сокращения шагов. Известен алгоритм для SHA1, где вместо 80 операций нужно вычислить только 69.
Система сама подстраивается. Если будут слишком быстро сщелкать блоки - вырастет сложность. Если только у тебя нет возможность крякать sha1 в constant time O(1), ты не побъешь систему.