⚔️ 1️⃣ permit() = apstiprināt nav nepieciešama darījuma
Kad jūs parakstāt EIP-2612 vai EIP-712 ziņojumu, jūs sakāt:
“Es atļauju adresi X iztērēt Y manus tokenus līdz brīdim Z.”
Un tikai ar šo parakstu (v, r, s), persona, kas to tur, var izsaukt token.permit(...)
→ On-chain tas ir ekvivalents īstai apstiprināšanai (approve()).
→ Viņi var transferFrom() izņemt jūsu tokenus, par kuriem jūs neesat nosūtījis nevienu darījumu.
⸻
🧨 2️⃣ Kā hakeri to izmanto
Uzbrucējs nosūtīs jums MetaMask pop-up:
“Parakstiet, lai pārbaudītu maku” vai “Parakstiet ziņojumu dApp”
Bet patiesībā tas ir permit() vai Permit2 ar
spender = hakeru maka, value = 2^256-1.
Jūs nospiežat “Parakstīt” → jūsu tokeni tiek uzskatīti par apstiprinātiem visiem hakeriem.
Nav gāzes. Nav izpētes žurnāla. Bet tokeni joprojām lidinās 🕳️
⸻
🧩 3️⃣ Kāpēc MetaMask liek jums būt neuzmanīgiem
MetaMask rāda “Parakstīt tipizētus datus” vai “Parakstīt verifikācijai”
bez skaidrojuma, kuram jūs parakstāt permit().
Tas ir iemesls, kāpēc daudzi cilvēki zaudē tokenus, nesaprotot, kāpēc.
⸻
🧰 4️⃣ Kā izvairīties
1️⃣ Pievērsiet uzmanību maku pop-up (MetaMask / WalletConnect)
•“Parakstījuma pieprasījums” / “Parakstīt” / “Parakstīt tipizētus datus” → Apstājieties, nesniedziet parakstu, ja neesat pārliecināti
•“Savienot” / “Savienot ar vietni” → Parasti tikai pārbaudiet adresi, drošāk, bet joprojām uzmanīgi
2️⃣ Atveriet pieprasījuma detaļas
•Nospiediet “Rādīt detaļas” / “Paplašināti” / trīs punkti → skatīt izejas datus
•Ja redzat JSON, kas satur domēnu, tipus, ziņojumu, primāro tipu → Tas ir EIP‑712 tipizēti dati, jāveic rūpīga pārbaude
3️⃣ Meklējiet bīstamus atslēgvārdus izejas datos
•spender, owner, value, deadline, nonce, permit, PermitSingle/Batch/Transfer → 🚩 brīdinājums par permit/approval
•Ja ir tikai vienkāršs teksts, piemēram, “Es piekrītu savienot” → mazāk risks, bet ne absolūti droši