The one-sentence version
Users are often taught to "verify that the address on the webpage matches the address in the wallet popup before signing." However, if the webpage has been tampered with, an attacker will make both sides display their address, rendering the consistency check meaningless. Truly reliable verification must use another channel: calling the person to ask, scanning a QR code in person, or using a different device to view the information. As long as the attacker cannot control both channels simultaneously, they cannot make both sides lie. This is called out-of-band verification.
This article has three layers:
- Layer 1: The Intuition: You cannot use a phone number provided by a scammer to verify that same scammer.
- Layer 2: Real-World Use: Business Email Compromise (BEC), bank callbacks, Signal safety numbers, and hardware wallets.
- Layer 3: Channel independence, what to verify, and how to guide users in product design.
Layer 1: The Intuition
1.1 Verifying a scammer with the scammer's own number
A finance employee receives an email from a "supplier": "We have changed our bank account; please send future payments to this new account." The email ends with: "If you have any questions, please call xxx to verify."
The finance employee is cautious and calls the number. The person on the other end confirms the details. The payment is made.
The problem is: The phone number was provided by the scammer within the same email. The information being verified and the information being used for verification come from the same channel. Since the attacker controls this channel, they control both the "question" and the "answer."
The correct approach is: Use a phone number that you already had and was not provided by this email to call the supplier.
1.2 Why the webpage and wallet are not two separate channels
| What you think | The reality |
|---|---|
| The webpage shows one address, the wallet popup shows an address, and both match | The address in the wallet popup is what the webpage passed to the wallet. If the webpage is tampered with, the wallet displays the tampered address. |
A wallet can guarantee that "what you are signing is what is displayed in the popup," but it cannot guarantee that "what is displayed in the popup is what you actually intended."
Layer 2: Real-World Use
- Business Email Compromise (BEC): In annual reports from the FBI's Internet Crime Complaint Center, BEC is consistently one of the highest-loss crime types, costing billions of dollars every year. The standard defense for almost all corporate finance departments is: Any change in receiving accounts must be confirmed via a callback to a known phone number.
- Bank Callbacks: For large or unusual transfers, banks will call the number they have on file for you, rather than the number you provided during the transaction.
- Signal / WhatsApp Safety Numbers: The ultimate defense against Man-in-the-Middle (MITM) attacks is for two people to compare safety numbers in person or through another channel (see TOFU and Public Key Pinning). Telegram's use of emojis during calls follows a similar design: both parties read them aloud during the call; if they match, there is no MITM.
- Hardware Wallets: The screen is independent of the computer, serving as an "out-of-band" display channel. This holds true provided the device can fully decode and display the transaction; otherwise, it degrades into a blind sign (see Blind Signing vs. What You See Is What You Sign, and the Bybit incident regarding frontend integrity).
- Cryptocurrency Transfers: Before making a first-time transfer or a large transfer, verify the beginning and end digits of the receiving address through a different channel (phone, in person, or a different messaging app).
Layer 3: Principles and Engineering
3.1 Channel Independence
The standard for two channels being "independent" is: If an attacker breaches one, they do not automatically breach the other.
| Combination | Is it independent? |
|---|---|
| Email + Phone number provided in that email | No |
| Webpage + Wallet popup triggered by that webpage | No |
| Computer webpage + Another app on a mobile phone | Mostly (unless both devices are compromised simultaneously) |
| Computer + Hardware wallet screen | Yes (provided the hardware wallet can fully decode) |
| Online messages + In-person or phone call | Yes |
3.2 What to verify
- Verify enough digits of the full information: Verify at least several digits at the beginning and the end of the address; the more, the better (verifying only the first and last 4 digits cannot prevent address poisoning, see Address Poisoning).
- Verify against a trusted reference: Use information provided verbally by the person or your own saved records, rather than a message they just sent.
- The direction of verification: Have the other person say the information out loud for you to compare, rather than you reading it out and them saying "correct" (they might say "correct" without actually hearing it clearly).
3.3 Guiding users in product design
A product cannot perform out-of-band verification for the user, but it can:
- Provide explicit prompts during first-time transfers, large transfers, or high-risk actions: "Please verify the beginning and end of the receiving address through another channel (e.g., by asking the recipient directly)."
- Explain why "the page and wallet match" is insufficient, otherwise users will feel they have already verified it.
- Offer an alternative: "If it is inconvenient to verify, you can first send a very small amount and wait for the recipient to confirm receipt before sending the rest."
- Avoid including clickable action links in notification emails; instead, guide users to open the official website themselves (to prevent the email itself from becoming an attack channel, see SPF, DKIM, and DMARC).
3.4 Relationship with other lines of defense
| Defense | What it prevents | What it fails to prevent |
|---|---|---|
| Page integrity monitoring | Long-term webpage tampering | Tampering during the monitoring gap |
| Wallet popup verification | User misreading the page | Webpage tampering |
| Out-of-band verification | Webpage tampering, email spoofing, MITM | User negligence/laziness |
Out-of-band verification is the final and most human-dependent line of defense. It has the highest cost, so it should only be required at the most critical moments, consistent with the logic of risk control scoring and friction design.
Summary
| Layer | Key points |
|---|---|
| Intuition | You cannot use a phone number provided by a scammer to verify that same scammer |
| Essence | Verification must use an independent channel that the attacker cannot control |
| Application | BEC callbacks, bank verification, safety numbers, hardware wallet screens |
| Product | Prompts at critical moments, explaining the reason, providing small-amount test transfer alternatives |