Что такое EIP-55: контрольная сумма адреса Ethereum

EIP-55 — стандарт записи адреса Ethereum в смешанном регистре, где заглавные буквы кодируют контрольную сумму и позволяют поймать опечатку.

Адрес Ethereum — это 20 байт, записанные как 0x и 40 шестнадцатеричных символов. В исходном виде у него нет контрольной суммы: если перепутать один символ, получится другой, но вполне валидный адрес, и средства уйдут в никуда. EIP-55 решает эту проблему, не меняя сам адрес: он лишь определяет, какие буквы a–f нужно писать заглавными.

Алгоритм простой. Берут адрес в нижнем регистре без 0x и вычисляют от него хеш keccak-256. Затем для каждой буквы адреса смотрят на соответствующий символ хеша: если он равен 8 или больше, буква пишется заглавной, иначе — строчной. Цифры остаются как есть. В итоге адрес выглядит как смесь заглавных и строчных букв, и любая ошибка в одном символе почти наверняка нарушит этот рисунок.

Проверка работает только при смешанном регистре. Адрес, записанный целиком строчными или целиком заглавными, считается валидным, но без контрольной суммы, — кошелёк не сможет поймать в нём опечатку. Поэтому платёжные сервисы и кошельки показывают адреса в формате EIP-55, а библиотеки (ethers, viem, web3) умеют и вычислять, и проверять его. Тот же формат используется в BNB Smart Chain и других EVM-сетях.

Для разработчика важно не «ломать» контрольную сумму: не приводить адрес к нижнему регистру перед показом клиенту, а при сравнении адресов в коде, наоборот, сравнивать в одном регистре, иначе одинаковые адреса будут считаться разными. Ещё одна ошибка — считать, что EIP-55 защищает от подмены адреса вредоносной программой: подменённый адрес будет иметь свою корректную контрольную сумму.

На странице оплаты Moonvex адрес показывается вместе с QR-кодом, так что клиенту не приходится набирать его вручную, а значит, и шанс опечатки минимален.

Частые вопросы

Адрес в нижнем регистре — это ошибка?

Нет, он валиден и указывает на тот же аккаунт, просто не содержит контрольной суммы. Ошибку в таком адресе кошелёк не заметит.

Работает ли EIP-55 в BNB Smart Chain?

Да. BSC использует тот же формат адресов, и та же контрольная сумма применяется во всех EVM-сетях.

Защищает ли EIP-55 от вирусов, подменяющих адрес?

Нет. Он ловит случайные опечатки, но подменённый целиком адрес будет корректным. Сверяйте адрес с оригиналом.

Где это пригодится

Связанные термины

Начните принимать оплату сегодня

Аккаунт и первый проект за минуту, без абонентской платы.

Создать аккаунт