почему например в эфире адрес это 20 байт, если публичный ключ - 32,
если 20 байт достаточно, то почему и именно 20, а не 16 к примеру?
Не только в Эфире, но и в Биткойне и, вообще, в большинстве криптовалют адрес - это 20 байт, которые являются результатом хеширования публичного ключа. Перед кодированием в формат Base58 или Bech32 к этим 20 байтам добавляются служебные байты, сигнализирующие о типе адреса, и байты контрольной суммы. Есть, правда, особые адреса - P2WSH, которые хранят 32 байта хеша скрипта, они кодируются в формате Bech32 и выглядят длиннее, чем адреса P2WPKH.
Адрес Эфира - это 20 байт в виде шестнадцатеричной строки, в которой контрольная сумма может (но не обязана) кодироваться изменением регистра символов.
А вот на вопрос почему именно 20 байт ответить сложнее. Можно было бы использовать все 32 байта хеша публичного ключа, но эти 32 байта пришлось бы хранить в каждой транзакции. Поэтому, для экономии места в транзакциях Накамото решил использовать для адресов более короткий 20-байтный хеш RIPEMD-160. С тех пор так и повелось: 32 байта - слишком много, 16 байт - слишком мало, а 20 байт - в самый раз.