加密世界充斥着诈骗和#网络钓鱼,很容易在钓鱼网站上意外签署恶意批准。
有些还可以逆转,通常,当这种情况发生时,诈骗者会在您签署批准后不久耗尽您的代B,但是如果您及时将其撤销,则可以防止这种情况发生。即使你没有及时阻止诈骗者,你仍然应该撤销批准,因为将来可能会再次使用它。
授权是#智能合约 与代B交互的一种方式。通过数字签名实现,账户所有者使用私钥对交易进行加密,授权其他账户(如智能合约)操作其资产。
例如,用户授权智能合约使用钱包中的U进行交易,需先通过私钥签署授权请求。
虽然这是一项有用的功能,但也可能很危险。这就是为什么当您不再需要令牌批准时,或者当您怀疑自己在钓鱼网站上签署了恶意批准时,撤销令牌批准很重要。
- 被授权方账户(接收授权的账户,如智能合约地址)
权限操作一般都需要支付网络服务费,费用随网络拥堵变化
检查服务价格:(https://ethgasstation.info)
未撤销的授权可能允许恶意合约或被黑客攻击的DApp从你的钱包提取资产。
即使DApp已停止使用,授权可能仍有效,增加安全隐患。
#Revoke.cash(访问地址:https://revoke.cash)是撤销代B批准的最大、最受欢迎的工具。它适用于所有大型钱包,并支持100多个不同的网络。
要撤销代B批准,您可以在搜索栏中输入您的钱包地址(或ENS名称/其他别名)或连接您的钱包,如下图中的(1)所示。从那里您可以选择要撤销批准的网络 (2)。
加载完成后,您将看到您在该网络上获得的所有代B批准的列表。您可以对该列表进行排序(3),应用筛选条件(4)或按批准的支出者地址(5)进行搜索。如果您怀疑自己签署了恶意批准,建议按 “最新到最旧” 排序,这样您就可以首先看到最近签署的批准。
应用这些选项后,您可以找到要撤销的批准,然后单击_Revoke_按钮 (7)。或者,也可以通过点击批准金额 (6) 旁边的铅笔图标将批准更新为不同的金额。如果您想降低风险,但将来仍需要批准,这可能很有用。
回到Revoke.cash,检查授权列表,确认目标合约的授权金额为0。
撤销代B批准的另一个常用工具是#Etherscan(访问地址:https://etherscan.io/tokenapprovalchecker)和其他浏览器,例如Polygonscan。虽然不像Revoke.cash那样用户友好,但如果你已经熟悉区块浏览器并且不想使用其他工具,它们仍然是一个不错的选择。
要撤销Etherscan上的令牌批准,您必须导航到_令牌批准_页面,可通过顶部导航栏中的_更多_菜单访问该页面。在该页面上,您可以输入您的钱包地址,如下图中的(1)所示。然后,你可以选择要检查批准情况的代B类型(ERC20、ERC721、ERC1155)(2)。
加载后,您将看到所选代B类型的所有代B批准列表。请务必拨动_Show all approvals_ (3) 的开关,以确保您看到所有批准。最后,您可以找到要撤销的批准,然后单击_Revoke_按钮 (4)。
如果你想撤销对其他链(例如BNB Chain或Polygon)的代B批准,你可以使用相同的流程,但你必须导航到该链的相应区块浏览器,例如BscScan或Polygonscan。
回到Etherscan检查授权列表,确认目标合约的授权金额为0。在Etherscan的“Events”标签下,查看`Approval`事件,确认`value=0`。
打开MetaMask,连接到以太坊主网(或相关链)。
访问代B合约地址(在Etherscan上找到,如USDT合约:`0xdAC17F958D2ee523a2206206994597C13D831ec7`)。
在“Write Contract”页面调用`approve`函数:
参数:`spender`(授权的合约地址),`value`(设为0)。
示例(MetaMask + Etherscan):
打开Etherscan → 输入代Dopo contratto地址 → “Contract”标签 → “Write Contract”。
连接钱包,调用`approve(spender_address, 0)`。
1. 在浏览器中访问 [Revoke.cash](https://revoke.cash/)(确保是官方网址)。
2. 点击页面右上角的 “Connect Wallet”(连接钱包)按钮。
1. 在弹出的钱包连接界面中,找到 “WalletConnect” 选项并点击。
(TokenPocket 支持 WalletConnect 协议,因此需通过此方式连接。)
步骤 3:在 TokenPocket 中扫描二维码
1. 打开 TokenPocket 手机APP,确保已创建或导入正确的钱包地址。
2. 在 TokenPocket 中点击 “扫描”(或通过 “发现” → “WalletConnect” 功能)。
3. 扫描 Revoke.cash 页面上显示的 WalletConnect 二维码。
1. 扫描后,TokenPocket 会弹出连接请求,确认以下信息:
2. 点击 “允许” 或 “Confirm” 完成授权。
1. 连接成功后,Revoke.cash 页面会显示你的钱包地址。
2. 现在可以查看和管理该地址的 代B授权(Token Approvals),撤销不必要的权限。
- 使用`web3.py`或`ethers.js`与合约交互,撤销授权:
from web3 import Web3w3 = Web3(Web3.HTTPProvider('https://mainnet.infura.io/v3/YOUR_INFURA_KEY'))contract_address = '0xdAC17F958D2ee523a2206206994597C13D831ec7' USDTspender_address = '0x...DAPP_ADDRESS' 授权的合约wallet_address = '0x...YOUR_ADDRESS'private_key = 'YOUR_PRIVATE_KEY' ERC-20 ABI(仅包含approve函数)ERC20_ABI = [ {"constant": False,"inputs": [ {"name": "_spender", "type": "address"}, {"name": "_value", "type": "uint256"} ],"name": "approve","outputs": [{"name": "", "type": "bool"}],"type": "function" } ]contract = w3.eth.contract(address=contract_address, abi=ERC20_ABI)tx = contract.functions.approve(spender_address, 0).build_transaction({'from': wallet_address,'nonce': w3.eth.get_transaction_count(wallet_address),'gas': 50000,'gasPrice': w3.eth.gas_price })signed_tx = w3.eth.account.sign_transaction(tx, private_key)tx_hash = w3.eth.send_raw_transaction(signed_tx.rawTransaction) print(f"交易哈希: {tx_hash.hex()}")
- Binance Smart Chain (BSC):
- 使用BscScan(https://bscscan.com/tokenapprovalchecker)。
- 操作同以太坊,使用Revoke.cash或手动调用`approve(spender, 0)`。
- 使用对应浏览器(如Polygonscan)或Revoke.cash。
- 比特币不使用智能合约,授权概念不适用(交易直接由私钥签名)。
- 如果涉及比特币相关权限(如钱包API),需参考第4部分。
- 无智能合约,无需授权撤销。权限管理通常在钱包层(如查看密钥)
关注我,获取更多资产保护与找回的干货!有问题可以评论或者联系我,让我们在这场区块链浪潮中,守住财富,乘风破浪!
本文分享区块链钱包安全知识,旨在提升用户保护意识,防范误操作导致的损失。建议仅供参考,不涉及资金托管、投资建议或资产找回承诺。用户需自行甄别风险,遵守法律,谨慎保护个人信息与财产安全。加密资产投资风险高,请理性决策。本文非投资建议。