Причина такая - когда строился Ethereum, стандарт SHA3 ещё не был окончательно утверждён, но был известен алгоритм, победивший в конкурсе на этот стандарт - тот самый Keccak. И этот алгоритм был включён в Ethereum, изначально с названием функции "sha3". А потом - сюрприз! При принятии стандарта SHA3 алгоритм чуть изменили. Ну, и Ethereum переделывать не стали, а функции дали новое имя "keccak256". Старое имя "sha3" тоже работает, но его не рекомендуют использовать - т.к. это не SHA3, а Keccak.
Благодарю за разьяснения. Правда не совсем понятно, почему разработчики захотели использовать именно этот новый, и не испробованный на баги алгоритм, когда есть тот же SHA256 который себя давно уже зарекомендовал. Ну а то, что разработчики SHA3 суффикс поменяли (c 0x01 на 0x06), что то мне подсказывает, что дело там в безопасности 😀