很多用户知道Token Approval,也知道DApp经常要求授权。

但近年来,一些Token和协议还会使用Permit机制。

它和传统Approve有相似目的,却采用了不同的实现方式。

Permit是什么?

简单理解,Permit允许用户通过签名的方式表达Token授权意愿。

传统Approve通常需要发送一笔链上交易。

而Permit在某些实现中,可以先让用户完成链下签名。

之后由相关交易把签名提交到链上。

为什么这种方式更方便?

因为用户不一定需要先发送一笔单独的Approve交易。

某些场景下,可以把授权和后续操作组合起来。

这样用户可能减少一次交互。

Permit是不是完全没有Gas?

不能这样理解。

链上操作最终仍然可能需要网络资源。

区别在于:

用户什么时候支付;

由谁广播;

授权信息如何提交。

为什么Permit也需要谨慎?

因为签名本身可能具有授权意义。

用户可能没有看到传统的“Approve”交易,却已经签署了一份允许某个地址使用Token的信息。

所以不能因为“没有Approve交易”就认为没有授权风险。

签名时应该看什么?

尤其关注:

Token;

授权对象;

授权数量;

有效期限;

Nonce。

如果某个字段异常,就不要随意确认。

为什么无限授权需要特别注意?

如果允许某个合约使用非常大的Token额度,那么未来在满足协议条件时,可能存在更大的操作范围。

因此,对于长期不使用的协议,用户应该定期检查授权情况。

Permit和普通签名有什么区别?

普通签名可能只是证明用户控制某个地址。

Permit则通常带有更明确的授权语义。

所以两者不能简单当成同一种操作。

imToken用户遇到Permit请求怎么办?

不要只看弹窗标题。

最好展开详细信息。

如果钱包能够显示授权对象、Token和额度,就逐项确认。

如果页面完全无法解释签名内容,也不建议为了继续使用DApp而盲目确认。


微信扫一扫