ERC-5564 — стандарт скрытых адресов для сети Ethereum. Он описывает способ получать переводы так, чтобы посторонние не могли напрямую связать поступление с основным кошельком получателя. При этом сами транзакции остаются публичными и проверяемыми в блокчейне.
Разработчик @panditdhamdhere подробно разобрал механику стандарта. Он называет его одним из самых недооцененных предложений в экосистеме. Ниже — ключевые факты, которые помогают понять суть ERC-5564 без сложной криптографии.
1. Скрывается связь получателя с переводом, а не сама транзакция
Сеть Ethereum остается прозрачной. Любой перевод можно увидеть в обозревателе блоков: сумму, отправителя и адрес назначения.
Меняется другое. Становится значительно сложнее определить, кому принадлежит адрес получателя. Стандарт не делает переводы анонимными, но снижает отслеживаемость поступлений.
2. Используется скрытый метаадрес вместо обычного адреса
В классической модели пользователь публикует один кошелек. Все поступления на него легко связываются между собой.
ERC-5564 вводит скрытый метаадрес. Он состоит из двух публичных ключей:
- ключа расходования средств;
- ключа обнаружения поступлений.
Отправитель не переводит средства на постоянный адрес. Для каждой операции формируется новый одноразовый адрес. Он математически связан с получателем, но внешне выглядит как независимый кошелек.
3. В основе лежит стандартная криптография Ethereum
Механизм построен на эллиптической кривой SECP256k1. Та же криптография используется в обычных кошельках сети.
Алгоритм работы следующий:
- отправитель создает временный ключ;
- отправитель с помощью своего временного ключа и публичного ключа получателя выполняет математическое преобразование, результат которого известен только им двоим. На основе этого результата формируется новый адрес;
- полученный результат пропускается через хеш-функцию, после чего используется для формирования одноразового адреса.
Связь адреса с владельцем может определить только тот, у кого есть соответствующие ключи.
4. Для обнаружения переводов используется контракт объявлений
Если адрес каждый раз новый, кошельку нужен источник данных о поступлениях. Для этого применяется контракт-объявитель ERC5564Announcer. Он развернут по адресу: 0x55649E01B5Df198D18D95b5cc5051630cfD45564
Каждый перевод сопровождается событием объявления. В нем указываются:
- одноразовый адрес;
- временный публичный ключ отправителя;
- служебные параметры;
- сведения об активе.
Кошелек сканирует такие события и проверяет, относится ли перевод к владельцу.
5. Поиск ускоряется за счет метки просмотра
Проверка объявлений требует вычислений на эллиптической кривой. Чтобы снизить нагрузку, используется метка просмотра.
Метка просмотра — это короткий цифровой маркер, который добавляется к каждому переводу на скрытый адрес. Кошелек сначала проверяет именно его. Если маркер не совпадает, перевод сразу отбрасывается как «чужой». Полная проверка выполняется только в тех случаях, когда маркер совпал.
6. Ключ обнаружения не дает доступа к средствам
Стандарт разделяет функции ключей. Ключ обнаружения позволяет находить входящие переводы. Он не позволяет распоряжаться средствами.
Для управления активами используется ключ расходования. Разделение повышает безопасность и позволяет передавать мониторинг переводов сторонним сервисам без риска потери средств.
7. Поддерживаются $ETH, токены и NFT
Механизм рассчитан не только на нативную монету сети. Через служебные данные объявления можно передавать:
- $ETH;
- токены стандарта ERC-20;
- невзаимозаменяемые токены стандарта ERC-721.
Указывается адрес контракта и сумма либо идентификатор токена. Скрытые адреса применимы к большинству активов в экосистеме Ethereum.
Почему стандарт считают значимым
Ethereum изначально строился как прозрачная финансовая система. Любой адрес раскрывает историю поступлений.
ERC-5564 добавляет базовый уровень приватности получателя без изменения публичной природы сети. По оценке @panditdhamdhere, такой механизм формирует основу встроенной приватности на уровне инфраструктуры, а не через сторонние инструменты.