TokenPocket(Chinese)
  • TokenPocket简介
  • 👥基础知识
    • 什么是区块链
    • 什么是去中心化钱包
      • USDT 常见问题及解答
      • 什么是 USDT 钱包?USDT 钱包如何工作?
      • USDT钱包科普:如何安全存储USDT及选择合适的钱包
    • 什么是私钥、助记词和密码?
    • 什么是矿工费
    • 什么是DeFi
    • 什么是DEX
    • 什么是keystore
    • 什么是硬件钱包
    • 什么是冷钱包
    • 什么是热钱包
    • 什么是观察钱包
    • 什么是多签钱包
    • 什么是插件钱包
    • 什么是Passphrase
  • 🔐安全知识
    • 常见诈骗案例
      • 警惕自定义RPC节点骗局
      • 远离假链接、假钱包骗局
      • 警惕假客服钱包验证骗局
      • 警惕短信分享假钱包骗局
      • 警惕波场恶意更改权限骗局
      • 警惕“零金额”转账骗局
      • 警惕精准伪装地址
      • 警惕接码类诈骗
      • 警惕新型空投诈骗
      • 警惕助记词分享诈骗
      • BSC链恶意授权诈骗
      • 假空投诈骗
      • 假二维码诈骗
      • 假链接/App诈骗
      • 钓鱼网站诈骗
      • 假代币诈骗
      • 假客服诈骗
      • Dapp授权诈骗
    • 安全措施
      • 如何安全使用自定义节点
      • TG Bot 是“交易神器”,还是“定时炸弹”?
      • 稳定币的“冻结”风险与应对
      • 安全操作指引
      • TokenPocket 2023-安全总结
      • 设置隐藏小额交易记录
      • TokenPocket授权管理工具使用教程
      • revoke.cash授权管理工具使用
      • 使用第三方DApp注意事项
      • 代币合约安全检测工具使用指引
      • 请保管好您的私钥/助记词!
      • 请小心被标记为风险的代币或网站链接
      • 一文学会分辨TP钱包是否正版
      • 官网正版钱包验证方法
      • 如何验证你的Google Play版TP钱包是否正版
      • 如何验证App Store版TP钱包(TP Wallet)是否正版
      • 在Telegram上如何辨别真假群管理员以及群组?
      • 授权(Approve)一文详解!
      • 如何查看/取消恶意Approve(授权)?
      • 三步辨别真假官网 手把手教你下载TokenPocket APP
      • 资产防丢
      • 资产防盗
      • MEV防护功能教程
      • 使用Passphrase功能创建“隐藏钱包”
      • 假钱包处理方案
  • 📨钱包常见问题
    • BTC钱包
      • 符文的添加/转账/交易
      • 关于 BTC 多签方案
      • 什么是Runes协议
      • 什么是比特币ETF?
      • 快速了解:比特币、闪电网络、Nostr、 Nostr Assets协议以及Taproot Assets协议
      • 使用TP钱包转账BRC-20,快人一步
      • 如何使用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
    • BSC钱包
      • 如何批量创建BSC钱包
      • 如何开启免Gas稳定币转账功能?
      • BSC钱包创建/导入教程
      • BNB钱包/币安链钱包/币安智能链钱包创建/导入教程
    • TRON钱包
      • 如何使用波场网络费兑换券
      • TokenPocket能量租赁服务
      • 使用能量,费用更低
      • 使用USDT作为波场转账网络费
      • 如何有效节约波场钱包/TRON钱包转账矿工费?提高交易效率与降低手续费
      • 如何使用多签钱包转账
      • 如何创建波场多签钱包
      • 如何导入TRON钱包
      • 如何创建波场钱包
      • 如何批量创建波场钱包
      • TRON质押2.0使用方法
      • 如何购买波场TRX代币
      • 什么是超级代表
      • 什么是质押2.0
      • 投票注意事项
      • 如何参与投票
      • 如何领取投票奖励
      • 关于波场地址激活
      • 关于波场账号权限提升
      • 关于波场账户权限
      • 关于波场被冻结USDT
    • TON钱包
      • TON钱包总览
    • SUI钱包
      • Scallop(sui)使用教程
    • Solana钱包
      • Solana转账注意事项
      • Solana代币的提币/充值操作
      • Solana钱包创建/导入教程
      • 如何在Solana中交易代币
      • 关于Solana网络费
      • 关于Solana交易Memo
      • 关于Solana“最低余额”
      • 关于Solana“关联账号”
      • 关于Solana账号权限
      • 使用 TokenPocket Solana 钱包,安全地保存您的 SOL 资产!
    • Aptos钱包
      • 什么是权限变更
    • 波卡钱包
      • 什么是转账的小费?
    • 多链钱包
      • 如何设置助记词导入路径
      • 如何重置密码
      • 什么是助记词
      • 什么是资产归集
      • 什么是身份钱包(HD)?
      • 关于子钱包
      • 什么是私钥
      • 什么是冷钱包
    • 多签钱包
      • 什么是多签
      • 什么是多签管理员
      • 什么是多签nonce
      • 多签钱包创建教程
      • 多签钱包导入教程
      • 多签钱包转账教程
    • AA智能钱包
      • 什么是AA智能钱包
      • AA智能钱包创建和导入
      • AA智能钱包如何使用
      • AA智能钱包科普
    • 杀毒软件误报
    • BSC钱包
      • 一文了解原BSC钱包(币安智能链钱包)BNB Chain钱包的使用指南与生态解析
      • BSC钱包/BNB Chain创建/导入教程
      • 如何开启免Gas稳定币转账功能?
      • Solana 钱包 | 安全的 SOL 钱包 | TokenPocket
      • Solana钱包 | 安全的SOL钱包 | TokenPocket
  • 🔩钱包操作
    • TP Card(加密银行卡)
      • TP Card 使用常见问题
      • TP Card 创建/导入教程
      • TP Card 银行注册
      • 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
      • TP Card 邀请教程
      • TP Card返佣介绍
      • TP Card具体费用介绍
    • 关于下载TokenPocket APP
      • 苹果手机如何做数据迁移
      • 如何注册Apple ID
      • 如何下载 TokenPocket
      • 安卓客户端32位和64位的区别
      • 苹果手机端钱包无法打开解决方案
      • 苹果手机如何通过 App Store 下载 TokenPocket
    • 如何在DEX上交易?
      • Sonic 跨链桥使用教程
      • Four.Meme 使用教程
      • Base资产跨链教程
      • 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创建和导入子钱包教程:支持BSC、TRON、iOS与安卓
      • 如何在TokenPocket创建和导入Unichain钱包?(移动端与插件钱包教程)
      • 如何在TokenPocket创建和导入svmBNB钱包?(移动端与插件钱包教程)
      • 如何在TokenPocket创建和导入Berachain钱包?(移动端与插件钱包教程)
      • 如何在TokenPocket创建和导入SOON钱包?
      • 如何在TokenPocket创建和导入Eclipse钱包
      • 如何在TokenPocket创建和导入Sonic钱包
      • 如何在TokenPocket创建和导入Peaq钱包
      • 如何在TokenPocket创建与导入World Chain钱包
      • 如何在TokenPocket创建与导入TON钱包
      • 如何在TokenPocket创建与导入RGB钱包
      • 如何在TokenPocket创建与导入Mint钱包
      • 如何在TokenPocket创建与导入X Layer钱包
      • 如何在TokenPocket创建与导入Bitlayer钱包
      • 如何在TokenPocket创建和导入Blast钱包
      • 如何在TokenPocket创建和导入Merlin钱包
      • 如何在TokenPocket创建和导入Kroma钱包
      • 如何在TokenPocket创建和导入ZetaChain钱包
      • 如何在TokenPocket创建和添加Taiko测试网钱包
      • 如何在TokenPocket添加Blast测试网钱包
      • 如何在TokenPocket创建Manta钱包并同步
      • 如何在TokenPocket创建、导入和同步Metis钱包
      • 如何在TokenPocket创建、导入和同步BEVM钱包
        • TokenPocket带您一文玩转 FON Smart Chain(FSC)
      • 如何在TokenPocket安卓端创建、导入IOST钱包(激活码创建)
      • 如何在TokenPocket创建和管理IOST钱包(好友创建)
      • 如何在TokenPocket创建和管理Scroll钱包
      • 如何在TokenPocket创建和管理ZKFair钱包
      • 如何在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创建和导入Goerli钱包
      • 如何在TokenPocket创建和导入CORE钱包
      • 如何在TokenPocket创建和导入Aptos钱包
      • 如何在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)钱包并进行跨链操作
      • Polygon钱包 | 安全的 MATIC 钱包 | TokenPocket
      • Polygon钱包 | 安全的 MATIC 钱包 | TokenPocket
      • 如何在TokenPocket创建和导入Klaytn钱包
      • 如何在TokenPocket使用Klaytn并跨链转账
      • 如何在TokenPocket快速注册EOS账号并激活使用
      • 如何使用EOS Helper创建EOS账号并导入TokenPocket
      • 波场钱包创建教程 | TokenPocket带你快速上手
      • TRON钱包创建教程 | TokenPocket带你快速上手
      • TRX钱包创建教程 | TokenPocket带你快速上手
      • 如何在TokenPocket创建和添加Moonriver钱包
    • 关于自定义网络
      • 什么是自定义网络
      • 自定义网络推广链接
      • 如何添加自定义网络
      • 如何编辑自定义网络
    • 关于DApp使用
      • 如何创建DApp List
      • 如何收藏DAPP和TIP-001协议
    • 关于NFT使用
      • NFT皮肤赛使用教程
      • NFT认证规范
      • NFT应用功能说明
      • 如何在TokenPocket设置NFT资产首页顶部背景、收款页面背景、头像?
    • 盈亏分析
      • 关于钱包盈亏分析
      • 如何查看盈亏分析及资产组合?
    • 钱包工具
      • TokenPocket别名系统
      • 安全高效的 Meme 交易模式
      • 在TokenPocket轻松管理EOS RAM!
      • Nostr Assets批量转账工具
      • 铭文助手使用教程
      • Magic Eden使用教程(铭文)
      • EIP-4527 标准
        • TokenPocket 使用教程
        • Metamask 使用教程
    • 在App Store给TokenPocket鼓励和反馈
    • 协议层新功能操作指引
      • 关于Nostr协议
      • NostrAssets使用教程
  • 🛠️钱包管理
    • 代币管理
      • 如何使用Transit Buy交易(WEB端)
      • 如何使用Transit Buy交易
      • 如何添加代币?
      • 如何搜索代币?
      • 如何删除代币?
      • 如何管理NFT资产?
      • 关于自定义代币
    • 钱包管理
      • 如何将MATIC兑换成POL
      • 如何使用隐私钱包
      • 如何使用Widget(小部件)
      • 如何隐藏钱包?
      • 如何创建钱包?
      • 如何导入钱包?
      • 如何管理钱包?
      • 如何切换钱包?
      • 如何同步钱包?
      • 如何一键迁移钱包数据?
      • 如何使用观察钱包以及冷钱包?
      • 什么是nonce?
      • 关于Eos账号权限
    • 区块浏览器使用教程
      • 什么是区块浏览器?
      • 什么是哈希值(交易哈希)?
      • BSC浏览器使用教程
        • 如何在BSC区块浏览器查询交易记录?
        • 如何在BSC区块浏览器查询资产?
        • 如何在BSC区块浏览器查询代币信息?
      • TRON浏览器使用教程
        • 如何查看地址多签状态
        • 如何在TRON区块浏览器查询交易记录?
        • 如何在TRON区块浏览器查询资产?
        • 如何在TRON区块浏览器查询代币信息?
      • ETH浏览器使用教程
        • 如何在ETH区块浏览器查询交易记录?
        • 如何在ETH区块浏览器查询资产?
        • 如何在ETH区块浏览器查询代币信息?
  • 👾钱包转账
    • 如何收款?
    • 如何转账到钱包/交易所?
    • 如何取消转账交易?
    • 如何加速转账交易?
    • 如何在发起转账时添加memo?
    • 关于转账的安全事项
    • 关于不同公链的代币转账
      • 方法1:钱包同步找回
      • 方法2:密钥导入找回
    • 钱包转账常见问题
      • 为什么不能直接往合约地址转账?
      • 我往合约转账了怎么办?
      • 交易所【提现资产】到钱包未到账
      • 钱包【充值资产】到交易所未到账
      • 为什么转账一直在打包,怎么办?
      • 我转账失败了,为什么不给我退币?
    • 多链批量转账工具
  • 👨‍💻开发者模块
    • 如何自主更新代币图标
    • 如何自主更新NFT图标
    • 如何提交代币?
    • 如何提交DApp?
    • 如何提交NFT?
    • 如何提交公链?
  • 💻插件钱包
    • 基本功能介绍
    • 插件钱包使用教程
      • TRON 减免Gas费转账服务
      • 通过自定义Nonce发送数据
      • TokenPocket插件钱包安装教程
      • 使用教程
        • 如何导入/创建钱包?
        • 使用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)
    • 隐私政策
    • 使用协议
  • 🪧产品公告
    • 公告专区
      • 2024/11/04 关于Solana节点维护完成公告
      • 2024/09/26 关于Solana行情数据维护公告
      • 2024/09/03 关于推送测试异常问题公告
      • 2024/03/20 关于BTC Ordinals数据维护完成公告
      • 2024/03/19 关于Ordinals节点维护公告
      • 2024/02/02 关于Arbitrum节点维护完成公告
      • 2024/02/02 关于Arbitrum节点维护公告
      • 2024/01/11 关于Ordinals节点维护完成公告
      • 2024/01/11 关于BTC Ordinals节点维护公告
      • 2023/10/20 关于BTC Ordinals数据维护完成公告
      • 2023/10/16 关于BTC Ordinals数据维护公告
      • 2023/9/27 关于暂停自建KCC公链节点及链上数据服务公告
      • 2023/07/03 关于Polygon(Matic)节点维护公告
      • 2023/06/07 关于Optimism节点升级的公告
      • 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节点维护升级的通知
      • Copy of 2024/09/26 关于Solana行情数据维护公告
    • APP更新
      • 🆕版本更新日志查看入口
      • 版本更新日志(9/26/2023)
      • 版本更新日志(9/15/2023)
      • 版本更新日志(9/11/2023)
      • 版本更新日志(8/20/2023)
      • 版本更新日志(7/19/2023)
      • 版本更新日志(7/15/2023)
      • 版本更新日志(7/1/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)
      • Page 1
  • 致中国境内用户:TokenPocket 产品政策调整说明
  • 关于腾讯管家误报TokenPocket的安全声明
  • 📩联系我们
    • 加入我们
    • 联系方式
    • 司法协助政策
  • 相关协议
    • Eth 2.0服务协议
Powered by GitBook
On this page
  • 关于Permit2
  • 传统授权模式
  • permit(EIP-2612)模式
  • Permit2 授权模式
  • 传统模式和Permit2 模式的执行对比
  • Permit2 可能存在的风险
  • Permit2 协议可能存在的风险

Was this helpful?

  1. 钱包常见问题
  2. ETH钱包

什么是Permit2

Previous什么是以太坊交易加速NextBSC钱包

Last updated 2 years ago

Was this helpful?

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数量,时常用授权检测工具进行检查。

📨