Към съдържанието
Открийте сметка

Проверка на адрес на крипто портфейл

Автор
Публикувано

Банка не връща превод в блокчейна. Поставите ли грешен адрес и преводът мине, парите обикновено не се възстановяват. Повечето формати на адреси носят контролна сума, която хваща сгрешения знак още преди изпращането. Проверката по-горе прилага тези правила за четири групи мрежи и казва какво е намерила.

Как работи всяка проверка

Проверката опитва форматите в определен ред и спира при първото съвпадение.

Ethereum и EVM мрежи

Адресът е 0x, следван от 40 шестнадесетични знака. EIP-55 добавя контролна сума чрез главните и малките букви: проверката смята хеша Keccak-256 на адреса с малки букви и прави главна всяка буква, при която съответната цифра от хеша е 8 или повече.

  • Главните и малките букви съвпадат: валиден адрес, контролната сума излиза.
  • Главните и малките букви не съвпадат: поне един знак е грешен. Проверката съветва да не изпращате.
  • Само малки или само главни букви: валиден адрес, но без контролна сума. Проверката показва версията с контролна сума.

Инструментът нарича тази група Ethereum и EVM мрежи и изброява Base, Arbitrum, Polygon, Optimism, BNB Chain и Avalanche.

Tron

Адресът в Tron е с 34 знака и започва с T. Той е текст в Base58Check: след разчитане дава 21 байта, които започват с байта 0x41, плюс 4 байта контролна сума. Проверката смята контролната сума като първите 4 байта от двоен хеш SHA-256 и я сравнява.

Bitcoin

  • Адресите с bc1 (SegWit и Taproot) ползват Bech32 по BIP-173 или Bech32m по BIP-350. Проверката сверява контролната сума и с двете константи и отхвърля адреси, които смесват главни и малки букви.
  • Адресите с 1 или 3 отпред ползват Base58Check. След проверката на контролната сума съдържанието трябва да е 21 байта с версия 0x00 (адресите с 1) или 0x05 (адресите pay-to-script-hash с 3, BIP-13).

Solana

Адресът в Solana е от 32 до 44 знака в Base58. Документацията на Solana описва адресите на акаунтите като 32-байтови стойности, затова проверката разчита текста и го приема, ако резултатът е точно 32 байта. Контролна сума в самия адрес няма.

Пример

EIP-55 дава този тестов адрес:

0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed

Хешът Keccak-256 на версията с малки букви започва с d385650c. Първият знак след 0x е 5. Той е цифра, тоест буквите при него нямат значение. Вторият е a, а цифрата от хеша е 3, под 8, затова остава малка буква. Третият пак е a, но цифрата от хеша е 8, затова става A. Проверката повтаря това за всички 40 знака, резултатът съвпада с адреса и тя отчита съвпадение.

Сега сменете третия знак с малка буква: 0x5aaeb6053F3E.... Адресът изглежда правдоподобно, но разположението на главните букви вече не отговаря на хеша. Проверката съобщава, че контролната сума не съвпада и че не бива да изпращате.

Поставите ли същия адрес само с малки букви, проверката отчита валиден формат без контролна сума и показва версията с главни и малки букви, за да я сверите.

Докъде стига проверката

  • Не знае мрежата. Валидният адрес с 0x е валиден във всяка EVM мрежа. Изпратите ли USDC в мрежа, която получателят не ползва, парите стават трудно достъпни или изобщо недостъпни.
  • Solana е без контролна сума. Сгрешен знак, който пак дава 32 байта, минава.
  • Само основни мрежи. Адресите от тестовата мрежа на Bitcoin, шестнадесетичните адреси в Tron и ENS имената излизат като неразпознати.
  • Контролни суми, не всяко правило. При адресите с bc1 се сверява контролната сума Bech32 или Bech32m, а не всички структурни правила в BIP-173 и BIP-350.
  • Без справка в блокчейна. Салдото, дали адресът е на смарт контракт и кой го контролира остават извън проверката.
  • Други мрежи. Адреси от мрежи извън тези четири групи не се разпознават.

Преди да изпратите

Питайте получателя в коя мрежа да изпратите и вижте дали портфейлът или доставчикът ви я поддържа. Портфейлът на xChange.bg е със самостоятелно съхранение: ключовете са у вас. Работи в Solana, Ethereum, Base, Arbitrum, Polygon и Optimism. При първо плащане към нов адрес малък тестов превод ви дава време да потвърдите получаването, преди да пуснете останалото.

Повече за адресите на портфейли, за блокчейн мрежите и за портфейла, в който сами държите ключовете.

Често задавани въпроси

Значи ли валидният резултат, че парите ще пристигнат?

Не. Проверката потвърждава, че адресът е изграден правилно и контролната му сума излиза. Тя не знае дали получателят го контролира, дали е в мрежата, която смятате да ползвате, и дали получаващата услуга приема този токен.

Защо един и същ адрес с 0x работи в няколко мрежи?

Ethereum и EVM мрежите като Base, Arbitrum, Polygon и Optimism ползват един и същ формат на адреса, така че един адрес може да държи пари във всяка от тях. По формата не се вижда коя мрежа чака получателят.

Какво значи Ethereum адрес само с малки букви?

Това е валиден адрес без контролна сума по EIP-55. Грешка в него няма, но и сгрешен знак би останал скрит. Проверката показва версията с главни и малки букви, за да я сверите с получателя.

Защо резултатът за Solana е по-несигурен от този за Bitcoin?

Адресите в Solana нямат контролна сума. Проверката може само да потвърди, че текстът се разчита до 32-байтов ключ. Сгрешен знак, който пак дава 32 байта, минава, затова сверявайте адресите в Solana знак по знак.

Изпраща ли се поставеният адрес към сървър?

Не. Всички проверки вървят в браузъра ви с локален код. Страницата не търси адреса в блокчейна и не го праща нито към xChange.bg, нито към някой друг.

Приема ли проверката адреси от тестови мрежи или ENS имена?

Не. Разпознава само основната мрежа на Bitcoin (адреси с bc1, 1 и 3) и работи с адреси, а не с имена като ENS домейни. Всичко останало излиза като неразпознат адрес.

Източници

  1. EIP-55: Mixed-case checksum address encoding
  2. BIP-173: Base32 address format for native v0-16 witness outputs
  3. BIP-350: Bech32m format for v1+ witness addresses
  4. BIP-13: Address format for pay-to-script-hash
  5. Документация на Solana: accounts
  6. Документация за разработчици на TRON: account

Свързани

Още инструменти