TokenPocket(中文)
  • TokenPocket简介
  • 👥基础知识
    • 什么是区块链?
    • 什么是去中心化钱包?
    • 什么是私钥、助记词和密码?
    • 什么是矿工费?
    • 什么是DeFi?
    • 什么是DEX?
    • 什么是keystore
    • 什么是硬件钱包
    • 什么是冷钱包
    • 什么是热钱包
    • 什么是观察钱包
    • 什么是多签钱包
    • 什么是插件钱包
    • 什么是Passphrase
  • 🔐安全知识
    • 常见诈骗案例
      • 警惕自定义RPC节点骗局
      • 警惕“零金额”转账骗局
      • 警惕精准伪装地址
      • 警惕接码类诈骗
      • 警惕新型空投诈骗
      • 警惕助记词分享诈骗
      • BSC链恶意授权诈骗
      • 假空投诈骗
      • 假二维码诈骗
      • 假链接/App诈骗
      • 钓鱼网站诈骗
      • 假代币诈骗
      • 假客服诈骗
      • Dapp授权诈骗
    • 安全措施
      • 安全的使用环境
      • 使用Passphrase功能创建“隐藏钱包”
      • 安全操作指引
      • 设置隐藏小额交易记录
      • TokenPocket授权管理工具使用教程
      • revoke.cash授权管理工具使用
      • 使用第三方DApp注意事项
      • 代币合约安全检测工具使用指引
      • 请保管好您的私钥/助记词!
      • 请小心被标记为风险的代币或网站链接
      • 一文学会分辨TP钱包是否正版
      • 官网正版钱包验证方法
      • 如何验证你的Google Play版TP钱包是否正版
      • 如何验证App Store版TP钱包(TP Wallet)是否正版
      • 在Telegram上如何辨别真假群管理员以及群组?
      • MEV 防护功能教程
      • 授权(Approve)一文详解!
      • 如何查看/取消恶意Approve(授权)?
      • 三步辨别真假官网 手把手教你下载TokenPocket APP
      • 资产防丢
      • 资产防盗
  • 📨钱包常见问题
    • BTC钱包
      • BTC 多签钱包创建教程
      • 如何获得钱包公钥
      • 关于 BTC 多签方案
      • 符文的添加/转账/交易
      • 什么是Runes协议
      • 什么是比特币ETF?
      • 快速了解:比特币、闪电网络、Nostr、 Nostr Assets协议以及Taproot Assets协议
      • 如何使用BTC加速功能
      • 在钱包中查看和发送Ordinals铭文
      • 什么是部分签名的比特币交易(PSBT)
      • 什么是RBF和CPFP
      • 什么是比特币Ordinals
      • 什么是BTC网络拥堵,如何解决。
      • 什么是观察钱包
      • 什么是找零地址
      • 什么是UTXO
      • 什么是OP_RETURN?
      • 什么是路径
      • 什么是地址类型
      • 什么是公钥
      • 什么是Taproot?
      • 什么是隔离见证
    • ETH钱包
      • 如何购买ETH代币
      • ETH节点质押
        • 节点质押教程
        • 关于以太坊POS
        • 以太坊质押的常见问题
        • 自托管质押,常见问题
        • Eth 2.0质押宝规则
        • Eth2.0 质押宝节点列表
        • Eth 2.0服务协议
      • 什么是EIP-1559?
      • Eth 2.0质押宝规则
      • Eth2.0 质押宝节点列表
      • 如何管理未打包交易?
      • 代币授权是什么?如何使用代币授权?
      • 什么是以太坊交易加速
      • 什么是Permit2
      • 什么是Permit
    • BSC 钱包
      • 如何批量创建BSC钱包
      • 如何开启免Gas稳定币转账功能?
    • TRON钱包
      • 如何使用波场网络费兑换券
      • TokenPocket能量租赁服务
      • 使用能量,费用更低
      • 使用USDT作为“网络费”,无需TRX
      • 如何节约波场转账矿工费?
      • 如何创建波场多签钱包
      • 如何创建波场钱包
      • TokenPocket能量租赁服务
      • 如何批量创建波场钱包
      • 如何使用波场能量租赁
      • 如何购买波场TRX代币
      • 什么是超级代表
      • 什么是质押2.0
      • 投票注意事项
      • 如何参与投票
      • 如何领取投票奖励
      • 关于波场权限
    • TON钱包
      • TON钱包总览
    • SUI钱包
      • Scallop(sui)使用教程
    • Solana钱包
      • Solana转账注意事项
      • 关于Solana交易Memo
      • 什么是Solana网络费
      • 关于Solana“关联账号”
      • 如何在Solana中交易代币
      • Solana钱包创建/导入教程
      • Solana代币的提币/充值操作
      • 关于Solana账号权限
    • OKX钱包
      • OKExChain钱包升级
    • Aptos钱包
      • 什么是权限变更
    • 波卡钱包
      • 什么是转账的小费?
    • 多链钱包
      • 如何设置助记词导入路径
      • 如何重置密码
      • 如何使用离线冷钱包
      • 什么是助记词
      • 什么是资产归集
      • 什么是身份钱包(HD)?
      • 关于子钱包
      • 什么是私钥
    • 多签钱包
      • 什么是多签
      • 什么是多签管理员
      • 什么是多签nonce
      • 多签钱包创建教程
      • 多签钱包导入教程
      • 多签钱包转账教程
    • AA智能钱包
      • 什么是AA智能钱包
      • AA智能钱包创建和导入
      • AA智能钱包如何使用
      • AA智能钱包科普
    • 杀毒软件误报
  • 🔩钱包操作
    • TP Card(加密银行卡)
      • TP Card使用常见问题
      • TP Card创建/导入教程
      • TP Card(Fiat24)注册
      • TP Card充值教程
      • TP Card转账教程
      • TP Card花费管理
      • TP Card限额管理
      • TP Card卡片信息
      • TP Card绑定Apple Pay
      • TP Card绑定Google pay
      • TP Card绑定WeChat pay
      • TP Card绑定Alipay
    • 关于下载TokenPocket APP
      • 苹果手机如何做数据迁移
      • 如何注册Apple ID
      • 如何下载 TokenPocket
      • 安卓客户端32位和64位的区别
      • Testflight Pro版本TP钱包过期无法打开解决方案
      • 苹果手机如何通过 App Store下载TokenPocket
    • 如何在DEX上交易?
      • Orbiter Finance使用教程
      • EOS主网资产兑换EOS-EVM资产
      • Birdeye使用教程
      • 使用Transit Swap兑换SOL资产
      • Orca使用教程
      • Jito使用教程
      • Marginfi使用教程
      • Raydium使用教程
      • EOS-EVM公链代币兑换
      • FEVM-FIL代币的购买和提现
      • Base Goerli公链和Goerli公链资产互通
      • 跨链聚合闪兑平台Transit Swap 使用教程
      • Uniswap 使用教程
      • PancakeSwap(BSC)使用教程
      • MDEX(HECO)使用教程
      • JustSwap(TRON)使用教程
      • PuddingSwap(HSC)使用教程
      • SushiSwap(OKEX)使用教程
    • 创建钱包教程
      • 子钱包创建教程
      • TokenPocket带您一文玩转 Berachain
      • TokenPocket带您一文玩转TON
      • TokenPocket带您一文玩转 BiHelix (RGB-LN)
      • TokenPocket带您一文玩转Mint
      • TokenPocket带您一文玩转X Layer
      • TokenPocket带您一文玩转Bitlayer
      • TokenPocket带您一文玩转Blast
      • TokenPocket带您一文玩转Merlin
      • TokenPocket带您一文玩转Kroma
      • TokenPocket带您一文玩转ZetaChain
      • TokenPocket带您一文玩转 Taiko测试网
      • TokenPocket带您一文玩转Blast测试网
      • TokenPocket带您一文玩转Metis
      • TokenPocket带您一文玩转Manta
      • TokenPocket带您一文玩转BEVM
      • TokenPocket带您一文玩转IOST(激活码创建)
      • TokenPocket带您一文玩转IOST(好友创建)
      • TokenPocket带您一文玩转ZKFair
      • TokenPocket带您一文玩转Scroll
      • TokenPocket带您一文玩转HAQQ
      • TokenPocket带您一文玩转Core
      • TokenPocket带你一文玩转ZetaChain测试网
      • TokenPocket带您一文玩转Polygon zkEVM
      • TokenPocket带您一文玩转opBNB
      • TokenPocket带您一文玩转Base
      • TokenPocket带您一文玩转Linea
      • TokenPocket带您一文玩转Mantle
      • TokenPocket带您一文玩转Sui
      • TokenPocket带您一文玩转PulseChain
      • TokenPocket带您一文玩转EOS EVM
      • TokenPocket带您一文玩转zkSync Era∎
      • TokenPocket带您一文玩转Filecoin (FVM)
      • TokenPocket带您一文玩转狗狗链(Dogecoin)
      • TokenPocket带您一文玩转 Base Goerli
      • TokenPocket带您一文玩转 Goerli
      • TokenPocket带您一文玩转CORE
      • TokenPocket带您一文玩转Aptos
      • TokenPocket带您一文玩转 FON Smart Chain(FSC)
      • TokenPocket带您一文玩转EthereumPoW(ETHW)
      • TokenPocket带您一文玩转EthereumFair(ETHF)
      • TokenPocket带您一文玩转Arbitrum Nova!
      • TokenPocket带您一文玩转ETC!
      • TokenPocket带您一文玩转HALO!
      • TokenPocket带您一文玩转GateChain(GT)!
      • TokenPocket带您一文玩转BitTorrent!
      • TokenPocket带您一文玩转Conflux eSpace!
      • TokenPocket带你一文玩转KCC!
      • TokenPocket带您一文玩转Harmony
      • TokenPocket带您一文玩转Moonbeam!
      • TokenPocket带你一文玩转WAX!
      • TokenPocket一文带你玩转Solana!
      • TokenPocket一文带你玩转Avalanche!
      • TokenPocket一文带你玩转Fantom!
      • TokenPocket一文带你玩转Arbitrum!
      • 如何在TokenPocket玩转Polygon(Matic)?
      • TokenPocket一文带你玩转Klaytn
      • 如何在TokenPocket使用Klaytn?
      • 如何创建EOS钱包
      • 如何创建波场钱包
      • TokenPocket带您一文玩转 Moonriver
    • 关于自定义网络
      • 什么是自定义网络
      • 自定义网络推广链接
      • 如何添加自定义网络
      • 如何编辑自定义网络
    • 关于DApp使用
      • 如何创建DApp List
      • 如何收藏DAPP和TIP-001协议
    • 关于NFT使用
      • NFT皮肤赛使用教程
      • NFT认证规范
      • NFT应用功能说明
      • 如何在TokenPocket设置NFT资产首页顶部背景、收款页面背景、头像?
    • 盈亏分析
      • 关于钱包盈亏分析
      • 如何查看盈亏分析及资产组合
    • 工具
      • TokenPocket别名系统
      • 铭文助手使用教程
      • Magic Eden使用教程(铭文)
      • EIP-4527 标准
        • TokenPocket 使用教程
        • Metamask 使用教程
    • 在App Store给TP Wallet鼓励和反馈
    • 协议层新功能操作指引
      • 关于Nostr
      • NostrAssets使用教程
  • 🛠️钱包管理
    • 代币管理
      • 如何使用Transit Buy交易(WEB端)
      • 如何使用Transit Buy交易
      • 如何添加代币?
      • 如何搜索代币?
      • 如何删除代币?
      • 如何管理NFT资产?
      • 关于自定义代币
    • 钱包管理
      • 如何使用隐私钱包
      • 如何使用Widget(小部件)
      • 如何隐藏钱包?
      • 如何创建钱包?
      • 如何导入钱包?
      • 如何管理钱包?
      • 如何切换钱包?
      • 如何同步钱包?
      • 如何一键迁移钱包数据?
      • 如何使用观察钱包以及冷钱包?
      • 什么是nonce?
    • 区块浏览器使用教程
      • 什么是区块浏览器?
      • 什么是哈希值(交易哈希)?
      • BSC浏览器使用教程
        • 如何在BSC区块浏览器查询交易记录?
        • 如何在BSC区块浏览器查询资产?
        • 如何在BSC区块浏览器查询代币信息?
      • TRON浏览器使用教程
        • 如何查看地址多签状态
        • 如何在TRON区块浏览器查询交易记录?
        • 如何在TRON区块浏览器查询资产?
        • 如何在TRON区块浏览器查询代币信息?
      • ETH浏览器使用教程
        • 如何在ETH区块浏览器查询交易记录?
        • 如何在ETH区块浏览器查询资产?
        • 如何在ETH区块浏览器查询代币信息?
  • 👾钱包转账
    • 如何收款?
    • 如何转账到钱包/交易所?
    • 如何取消转账交易?
    • 如何加速转账交易?
    • 如何在发起转账时添加memo?
    • 关于转账的安全事项
    • 关于不同公链的代币转账
      • 不同公链间不能直接转账
    • 钱包转账常见问题
      • 为什么不能直接往合约地址转账?
      • 我往合约转账了怎么办?
      • 交易所【提现资产】到钱包未到账
      • 钱包【充值资产】到交易所未到账
      • 为什么转账一直在打包,怎么办?
      • 我转账失败了,为什么不给我退币?
    • 多链批量转账工具
  • 👨‍💻开发者模块
    • 如何自主更新代币图标?
    • 如何自主更新NFT图标?
    • 如何提交代币?
    • 如何提交DApp?
    • 如何提交NFT?
    • 如何提交公链?
  • 💻插件钱包
    • 基本功能介绍
    • 插件钱包使用教程
      • 通过自定义Nonce发送数据
      • TokenPocket插件钱包安装教程
      • 使用教程
        • 如何导入/创建钱包?
        • 如何在插件钱包创建/导入多签钱包?
        • 如何连接TokenPocket插件钱包?
        • 如何在TokenPocket插件钱包中使用兑换功能?
        • 如何连接KeyPal硬件钱包?
        • 如何连接Ledger硬件钱包?
        • 如何连接Trezor硬件钱包?
    • 插件钱包更新
      • 版本更新日志(01/09/2024)
      • 版本更新日志(12/27/2023)
      • 版本更新日志(11/25/2023)
      • 版本更新日志(08/09/2023)
      • 版本更新日志(06/22/2023)
      • 版本更新日志(06/05/2023)
      • 版本更新日志(06/02/2023)
      • 版本更新日志(05/19/2023)
      • 版本更新日志(03/05/2023)
      • 版本更新日志(03/01/2023)
      • 版本更新日志(11/04/2022)
      • 版本更新日志(08/26/2022)
      • 版本更新日志(07/13/2022)
      • 版本更新日志(06/08/2022)
      • 版本更新日志(05/05/2022)
      • TokenPocket品牌升级(04/24/2022)
    • 隐私政策
    • 使用协议
  • 🪧产品公告
    • 公告专区
      • 2023/10/16 关于BTC Ordinals数据维护公告
      • 2022/10/11 关于TokenPocket官网维护的公告
      • 2022/10/07 关于BNB链维护升级完成的公告
      • 2022/10/07 关于BNB链维护的公告
      • 2022/09/15 关于以太坊合并已完成的公告
      • 2022/09/12 关于TokenPocket支持以太坊合并的公告
      • 2022/08/31 关于Arbitrum进行Nitro技术升级的通知
      • 2022/08/29 关于TokenPocket钱包维护升级的通知
      • 2022/08/04 关于Matic(马蹄)链维护升级的通知
      • 2022/07/20 关于BSC链,IOST链维护升级的通知
      • 2022/07/12 关于波场链维护升级的通知!
      • 2022/07/11 关于Klaytn维护升级的通知
      • 2022/06/05 钱包安全提醒!
      • 2022/06/01 关于OP节点维护升级的通知
      • 2022/06/01 关于Heco链升级的通知
      • 2022/05/20 关于Polygon(Matic)链升级的通知
      • 2022/05/18 关于TokenPocket技术服务升级的通知
      • 2022/01/27 关于TRON服务升级的通知
      • 2022/01/25 关于Klayten维护升级的通知
      • 2021/12/02 关于EOS节点维护升级的通知
    • APP更新
      • 🆕版本更新日志查看入口
      • 版本更新日志(7/6/2023)
      • 版本更新日志(7/2/2023)
      • 版本更新日志(6/16/2023)
      • 版本更新日志(6/09/2023)
      • 版本更新日志(6/07/2023)
      • 版本更新日志(6/03/2023)
      • 版本更新日志(5/25/2023)
      • 版本更新日志(5/23/2023)
      • 版本更新日志(05/05/2023)
      • 版本更新日志(4/27/2023)
      • 版本更新日志(4/14/2023)
      • 版本更新日志(4/11/2023)
      • 版本更新日志(4/06/2023)
      • 版本更新日志(4/04/2023)
      • 版本更新日志(3/18/2023)
      • 版本更新日志(3/11/2023)
      • 版本更新日志(3/7/2023)
      • 版本更新日志(3/3/2023)
      • 版本更新日志(2/19/2023)
      • 版本更新日志(2/18/2023)
      • 版本更新日志(2/17/2023)
      • 版本更新日志(1/18/2023)
      • 版本更新日志(1/12/2023)
      • 版本更新日志 (1/9/2023)
      • 版本更新日志 (12/15/2022)
      • 版本更新日志 (12/07/2022)
      • 版本更新日志 (12/05/2022)
      • 版本更新日志 (10/29/2022)
      • 版本更新日志 (10/28/2022)
      • 版本更新日志 (10/14/2022)
      • 版本更新日志 (09/09/2022)
      • 版本更新日志 (08/29/2022)
      • 版本更新日志(08/18/2022)
      • 版本更新日志(08/01/2022)
      • 版本更新日志(07/28/2022)
      • 版本更新日志(07/11/2022)
      • 版本更新日志(07/02/2022)
      • 版本更新日志(06/30/2022)
      • 版本更新日志(06/28/2022)
      • 版本更新日志(06/13/2022)
      • 版本更新日志(06/08/2022)
      • 版本更新日志(05/29/2022)
      • 版本更新日志(05/25/2022)
      • 版本更新日志(04/29/2022)
      • 版本更新日志(04/13/2022)
      • 版本更新日志(03/31/2022)
      • 版本更新日志(03/11/2022)
      • 版本更新日志(02/25/2022)
      • 版本更新日志(02/11/2022)
      • 版本更新日志(01/27/2022)
      • 版本更新日志(01/17/2022)
      • 版本更新日志(12/31/2021)
      • 版本更新日志(11/26/2021)
      • 版本更新日志(11/5/2021)
      • 版本更新日志(10/14/2021)
      • 版本更新日志(09/29/2021)
      • 版本更新日志(09/18/2021)
      • 版本更新日志(09/03/2021)
      • 版本更新日志(08/05/2021)
      • 版本更新日志(07/28/2021)
      • 版本更新日志(07/07/2021)
      • 版本更新日志(11/06/2021)
      • 版本更新日志(31/03/2021)
      • 版本更新日志(18/03/2021)
      • 版本更新日志(29/01/2021)
      • 版本更新日志(22/01/2021)
      • 版本更新日志(25/12/2020)
      • 版本更新日志(21/12/2020)
      • 版本更新日志(30/10/2020)
  • 致中国境内用户:TokenPocket 产品政策调整说明
  • 关于腾讯管家误报TokenPocket的安全声明
  • 📩联系我们
    • 加入我们
    • 联系方式
    • 司法协助政策
  • 相关协议
    • Eth 2.0服务协议
Powered by GitBook
On this page
  • 关于Permit2
  • 传统授权模式
  • permit(EIP-2612)模式
  • Permit2 授权模式
  • 传统模式和Permit2 模式的执行对比
  • Permit2 可能存在的风险
  • Permit2 协议可能存在的风险
  1. 钱包常见问题
  2. ETH钱包

什么是Permit2

Previous什么是以太坊交易加速Next什么是Permit

Last updated 1 year ago

Uniswap Labs发布了两个新的智能合约 Permit2 和 Universal Router,Permit2 有着更好的链上使用体验,让我们一起了解Permit2 带来的变化,以及它的优缺点。

关于Permit2

Uniswap 发布了新的Token授权标准 Permit2,区别于传统的 ERC20 和 EIP-2612, Permit2 协议具有节省 gas、可批量操作授权/转账且比传统 ERC20 approve 更灵活,并且支持一站式的授权管理。

Permit2 协议让其他应用可以从整合这些合约中大大受益。Uniswap 本身致力于建设公共基础设施,因此设计了这些合约,提供整个开发者生态系统使用,包括广泛的文档、SDK。

为了说明 Permit2 的革命性,让我们回顾一下之前的解决方案,以合约需要移动 Alice 的Token为例。

传统授权模式

传统的执行方式是如下图所示的执行过程。

1.Alice调用ERC20上的approve()来授予合约的支配限额。

2.Alice在合约上调用一个交互函数,该函数又在ERC20 Token合约上调用transferFrom(),移动她的Token。

显然,这个模型是可行的(它是普遍存在的),并且最终可以非常灵活,因为协议通常会不间断地长期访问用户的Token。

授权合约默认获取最大数量支配Token的权限,并且没有时间的限制,不同的DApp首次执行都需要授权一次,具有很大风险。

但它面临着两个现实问题:

  • 糟糕的用户体验:用户必须授权他们打算使用的每个Token上的每个新协议,而这几乎总是一个单独的事务(例如在uniswap中执行了某个Token授权,但是如果使用 transit 依然需要重新进行approve)。

  • 糟糕的安全性:合约通常都会要求无限的授权额度,并且每使用一个swap或者其他合约都用都需要执行一次approve。这意味着,如果该协议被利用,每个用户授权该协议消费的Token都有可能把用户的授权Token全部转移。(例如我们经常会遇到的Token使用授权,例如操作DeFi需要授权,进行兑换需要授权,不同的DApp首次使用都需要授权)

permit(EIP-2612)模式

EIP-2612 对Token的授权进行了迭代。用户可以通过在他们的交互中附加一个授权签名(Permit)信息来与应用合约交互,而不需要事先授权。

让我们看看 ERC20 的 EIP-2612 扩展所启用的方法,它通常是这样的:

  1. Alice签署一个链外的 "permit(签名授权)" 信息,表示她希望授予一个合约一个(EIP-2612)Token的使用权。

  2. Alice提交签署的消息,作为她与所述合约交互的一部分。

  3. 合约调用Token上的 "permit()" 方法,它会使用签名授权信息和签名,同时授予合约一个授权。

  4. 合约现在有了授权,所以它可以在Token上调用transferFrom(),转账由 Alice 持有的Token。

由于Permit (EIP-2612) 需要把相关方法写入ERC20Token合约内,所以已经部署的ERC20合约无法进行支持。

这解决了典型 ERC20 授权方法的两个问题:

  • 用户不需要额外提交一个链上的approve()交互。

  • 由于省掉了一笔链上操作所以可以通常可以选择一个更合理的授权额度,而不是无限大,更重要的是在签名授权消息时可以设置一个到期时间。

虽然 EIP-2612 使Token授权更加安全,但在 EIP-2612 之前推出的Token并不支持签名授权功能,而且并非所有较新的Token都采用该功能。因此该协议很难大范围的使用。

Permit2 授权模式

Permit2 结合了这两种模式,将 EIP-2612 的用户体验和安全优势扩展到也涵盖了普通的 ERC20 Token。

  1. Alice 在一个 ERC20 上调用approve(),典型的方式为的 Permit2 合约授予一个无限的授权。

  2. Alice 签署一个链下permit2 消息,该消息表明协议合约被允许代表她转账代Token。

  3. Alice 在协议合约上调用一个交互函数,将签署的 permit2 消息作为参数传入。

  4. 协议合约在 Permit2 合约上调用 permitTransferFrom(),而 Permit2 合约又使用其授权(在 1 中授予)在 ERC20 合约上调用 "transferFrom()",转账 Alice 持有的Token。

将授权给与Permit2后,使用了Permit2协议的DApp 只需要进行一次712的本地签名就可以,不需要额外的链上approve,降低了Gas费用,增加了易用性和安全性。授权具有时限性,例如授权一个月,那么一个月时间过期后下次使用同样只需要一次712签名即可。

协议不会直接调用 ERC20 Token上的transferFrom()来执行转账,而是调用规范的 Permit2 合约上的permitTransferFrom()。Permit2 位于协议和 ERC20 Token之间,跟踪和验证 permit2 消息,然后最终使用其授权直接在 ERC20 上执行transferFrom()调用。这种间接性使得 Permit2 可以将类似于 EIP-2612 的好处扩展到每一个现有的 ERC20 Token上。

传统模式和Permit2 模式的执行对比

传统授权模式,默认最大数量授权给DApp执行合约,授权后即可进行兑换操作。

首次授权会授权给Permit2 合约,授权后需要用户进行一次签名(链下),前两步执行成功后才可以进行兑换。

Permit2 可能存在的风险

Permit2 衍生于 EIP 2612,属于一种拓展的 EIP 20 协议,所以归根到底,Permit2 只是 ERC20 的一种补充,而不是取代。毕竟 Permit2 并没有可以直接继承现有所有的 ERC20 数据,所谓的一站式管理,本质上还是需要调用 ERC20 合约的 approve 操作来完成一些初始的操作。

Permit2 完整的流程应该是

  1. 用户将 ERC20 Token的最大授权给到 Permit2合约。

  2. 用户通过 permit函数对 Permit2合约中的具体授权进行管理。

  3. 第三方协议和用户可以根据 Permit2 中已有的授权信息通过 Permit2 合约作为中间人实现Token的转移。

Permit2 协议具有的优点

  1. 统一的Token管理。

  2. 可控制的授权时间。

  3. 不用每次都多发一笔交互来进行授权。

Permit2 协议可能存在的风险

  1. 号称解决了 infinity approval 的问题,但实际只是把授权对象从需要交互的 DApp 转变成了 Permit2 合约,集中管理授权对 Permit2 合约的安全性有着更高的要求。

  2. 虽然说Token授权有过期时间,但是这个时间依旧可以无限大,还是需要各个Dapp合理的设置过期时间。

  3. 由于调用 permit 函数的过程可以不发送交互而是只提供签名给第三方代发,如果是做钓鱼的话可以做得更加隐蔽,用户检查签名消息的成本提升,某些第三方钱包可能不会对签名信息进行解码展示,导致用户被攻击的风险更高。

优点和风险同时存在,这就需要我们具有一定的辨别能力,具体到钱包方也需要对后续可能大范围支持Permit2 有一个提前的防范,(现在TokenPocket 还没支持 Permit2 的解析,后面很快会支持。)例如TokenPocket 现在的授权风险提示等弹窗,就可以很好的把风险内容进行展示,从而避免因为钓鱼或第三方恶意授权等风险。

不要随意打开不明来历的网站并执行,一定要使用正规的DApp并尽可能的控制好授权给合约的Token数量,时常用授权检测工具进行检查。

📨