Verificator de adrese de portofel cripto
De Echipa xChange.bg
Publicat la
Un transfer pe blockchain nu poate fi anulat de o bancă. Dacă lipești o adresă greșită și transferul trece, banii de obicei nu mai pot fi recuperați. Majoritatea formatelor de adresă au un checksum, tocmai ca un caracter tastat greșit să fie prins înainte de trimitere. Verificatorul de mai sus rulează aceste teste pentru patru familii de rețele și îți spune ce a găsit.
Cum funcționează fiecare verificare
Verificatorul încearcă formatele într-o ordine fixă și se oprește la prima potrivire.
Ethereum și rețelele EVM
O adresă este 0x urmat de 40 de caractere hexazecimale. EIP-55 adaugă un checksum prin felul în care sunt scrise literele: se ia hashul Keccak-256 al adresei scrise cu litere mici și fiecare literă devine majusculă acolo unde cifra corespunzătoare din hash este 8 sau mai mare.
- Litere mari și mici care se potrivesc: adresă validă, checksum corect.
- Litere mari și mici care nu se potrivesc: cel puțin un caracter este greșit. Instrumentul îți spune să nu trimiți.
- Totul cu litere mici sau totul cu litere mari: adresă validă, dar fără checksum. Instrumentul îți arată forma cu checksum.
Familia este etichetată drept Ethereum și rețele EVM, cu Base, Arbitrum, Polygon, Optimism, BNB Chain și Avalanche.
Tron
O adresă Tron are 34 de caractere și începe cu T. Este text Base58Check: decodat, dă 21 de octeți care încep cu octetul 0x41, plus un checksum de 4 octeți. Verificatorul recalculează checksumul ca primii 4 octeți ai unui dublu hash SHA-256 și îl compară.
Bitcoin
- Adresele bc1 (SegWit și Taproot) folosesc Bech32, definit în BIP-173, sau Bech32m, definit în BIP-350. Verificatorul testează checksumul cu ambele constante și respinge adresele care amestecă litere mari cu litere mici.
- Adresele care încep cu 1 sau 3 folosesc Base58Check. După testul de checksum, conținutul trebuie să aibă 21 de octeți, cu octetul de versiune 0x00 (adresele care încep cu 1) sau 0x05 (adresele pay-to-script-hash care încep cu 3, BIP-13).
Solana
O adresă Solana are între 32 și 44 de caractere Base58. Documentația Solana descrie adresele de cont ca valori de 32 de octeți, așa că verificatorul decodează textul și îl acceptă dacă rezultatul are exact 32 de octeți. Solana nu are checksum în adresa propriu-zisă.
Un exemplu pas cu pas
EIP-55 dă această adresă de test:
0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed
Hashul Keccak-256 al variantei cu litere mici începe cu d385650c. Primul caracter după 0x este 5, o cifră, deci regula literelor nu se aplică. Al doilea este a, iar cifra lui din hash este 3, sub 8, deci rămâne literă mică. Al treilea este tot a, dar cifra lui din hash este 8, deci devine A. Verificatorul repetă asta pentru toate cele 40 de caractere, iar rezultatul este identic cu adresa, deci raportează o potrivire.
Acum schimbă al treilea caracter în literă mică: 0x5aaeb6053F3E.... Adresa arată în continuare plauzibil, dar tiparul literelor nu mai corespunde hashului. Verificatorul raportează că checksumul nu se potrivește și că nu ar trebui să trimiți.
Lipește aceeași adresă scrisă doar cu litere mici, iar verificatorul raportează un format valid fără checksum și îți afișează forma cu litere amestecate de mai sus, ca să o compari.
Ce nu poate face verificatorul
- Nu știe rețeaua. O adresă 0x validă este validă pe orice rețea EVM. Dacă trimiți USDC pe o rețea pe care destinatarul nu o folosește, banii pot deveni greu sau imposibil de recuperat.
- Solana nu are checksum. O greșeală de tastare care se decodează tot în 32 de octeți trece testul.
- Doar formate de mainnet. Adresele Bitcoin de testnet, adresele Tron în format hex și numele ENS sunt raportate ca nerecunoscute.
- Checksumuri, nu toate regulile. Pentru adresele bc1, instrumentul verifică checksumul Bech32 sau Bech32m, nu fiecare regulă de structură din BIP-173 și BIP-350.
- Nicio căutare pe blockchain. Nu verifică soldurile, nu spune dacă adresa aparține unui contract inteligent și nici cine o controlează.
- Alte rețele. Adresele pentru rețele din afara acestor patru familii nu sunt recunoscute.
Înainte să trimiți
Întreabă destinatarul ce rețea folosește, apoi verifică dacă portofelul sau furnizorul tău o acceptă. Portofelul xChange.bg funcționează pe Solana, Ethereum, Base, Arbitrum, Polygon și Optimism, iar cheile sunt la tine. La prima plată către o adresă nouă, un transfer mic de test îți confirmă că banii ajung, înainte să trimiți restul.
Citește mai multe despre adresele de portofel, despre rețelele blockchain și despre cum funcționează un portofel pe care îl controlezi doar tu.
Întrebări frecvente
Dacă rezultatul este valid, înseamnă că banii ajung?
- Nu. Verificatorul confirmă doar că adresa este bine formată și că checksumul se potrivește. Nu poate spune dacă destinatarul chiar o controlează, dacă este pe rețeaua pe care vrei să o folosești sau dacă serviciul care primește acceptă tokenul.
De ce funcționează aceeași adresă 0x pe mai multe rețele?
- Ethereum și rețelele EVM precum Base, Arbitrum, Polygon și Optimism folosesc același format de adresă, așa că o adresă poate ține fonduri pe fiecare dintre ele. Verificarea formatului nu poate spune ce rețea așteaptă destinatarul.
Ce înseamnă o adresă Ethereum scrisă doar cu litere mici?
- Este o adresă validă, dar fără checksum EIP-55. Nu are nimic în neregulă, însă o greșeală de tastare ar trece neobservată. Verificatorul îți arată varianta cu checksum, cu litere mari și mici amestecate, pe care o poți compara cu destinatarul.
De ce este rezultatul pentru Solana mai puțin sigur decât cel pentru Bitcoin?
- Adresele Solana nu au checksum. Verificatorul poate confirma doar că textul se decodează într-o cheie de 32 de octeți. O literă schimbată care se decodează tot în 32 de octeți trece testul, așa că adresele Solana se compară caracter cu caracter.
Adresa pe care o lipesc ajunge pe vreun server?
- Nu. Toate verificările rulează în browserul tău, cu cod local. Pagina nu caută adresa pe blockchain și nu o trimite nici către xChange.bg, nici către altcineva.
Acceptă verificatorul adrese de testnet sau nume ENS?
- Nu. Recunoaște doar adrese Bitcoin de mainnet (bc1, 1 și 3) și verifică adrese, nu nume precum domeniile ENS. Orice altceva este raportat ca format nerecunoscut.