Permit란 무엇인가요?

Permit는 EIP-2612에서 도입된 ERC-20 표준 토큰의 상호작용 메커니즘을 향상시키기 위한 최적화 제안입니다. ERC-20 표준 하에서 Approve 토큰 승인을 사용할 때, 사용자는 가스 수수료로 ETH를 지불해야 합니다. Permit 방법을 사용하면, 사용자는 프라이빗 키를 사용하여 오프라인으로 서명을 생성하여 승인할 수 있습니다. 이 서명을 보유한 개체(예: 스마트 컨트랙트)는 사용자가 Approve 승인에 대한 가스 수수료를 지불할 필요 없이 Permit 함수를 직접 호출하여 토큰 전송을 용이하게 할 수 있습니다.

ERC-20에 대한 EIP-2612 확장으로 활성화된 방법은 일반적으로 다음과 같습니다:

  1. Alice는 오프체인에서 "permit(서명 승인)" 메시지에 서명하여, (EIP-2612) 표준 하의 토큰을 사용할 권한을 컨트랙트에 부여하고자 함을 나타냅니다.

  2. Alice는 컨트랙트와의 상호작용의 일부로 서명된 메시지를 제출합니다.

  3. 컨트랙트는 서명된 승인 정보와 서명을 사용하여 토큰에서 "permit()" 메서드를 호출하여 컨트랙트에 권한을 부여합니다.

  4. 승인이 완료되면, 컨트랙트는 이제 토큰에서 transferFrom()을 호출하여 Alice가 보유한 토큰을 전송할 수 있습니다.

Permit(EIP-2612)는 관련 메서드가 ERC20Token 컨트랙트 내에서 구현되어야 하므로, 이전에 배포된 ERC20 컨트랙트는 이를 지원할 수 없습니다. (즉, 새로 발행된 토큰에 더 적합합니다.)

이것은 일반적인 ERC20 승인 방법의 두 가지 문제를 해결합니다:

  1. 사용자는 추가로 온체인 approve() 상호작용을 제출할 필요가 없습니다.

  2. 하나의 온체인 작업을 제거함으로써, 사용자는 일반적으로 무제한 허용량보다 더 합리적인 승인 양을 선택할 수 있습니다. 또한, 승인 메시지에 서명할 때 만료 시간을 설정할 수 있다는 것이 중요합니다.

Last updated