EIP-7702
Stable은 EIP-7702를 지원하며, 이를 통해 EOA는 자신의 계정 코드를 기존 스마트 계약으로 설정할 수 있습니다. EOA는 원래 주소와 개인 키를 유지하면서 해당 계약의 로직을 실행합니다. 위임은 EOA가 명시적으로 변경하거나 해제할 때까지 영구적으로 유지됩니다.
전체 사양은 EIP-7702를 참조하세요.
Stable에서 EIP-7702가 제공하는 기능
EIP-7702를 통해 기존 EOA는 계정 마이그레이션 없이 스마트 계약 로직을 실행할 수 있습니다. Stable의 USDT 중심 결제 환경에서 이는 다음과 같은 패턴을 지원합니다.
- 배치 결제: 여러 호출(예: 급여 지급 시 여러 수신자에게 지급)이 단일 원자 트랜잭션으로 실행됩니다.
- 지출 한도: 위임 계약은 EOA에 대한 일일 한도 또는 트랜잭션당 한도를 강제합니다.
- 세션 키: EOA는 소유자의 개인 키를 노출하지 않고 dApp에 범위가 지정된 시간 제한 트랜잭션 권한을 부여합니다.
작동 방식
EIP-7702는 authorizationList를 포함하는 새로운 트랜잭션 유형(0x04)을 도입합니다. 각 승인은 해당 트랜잭션에 대해 EOA가 코드를 실행할 스마트 계약을 지정합니다. 흐름은 다음과 같습니다.
- 위임 계약 선택 또는 배포: EOA가 실행하려는 로직을 구현하는 표준 솔리디티 계약입니다. 기존에 배포된 계약을 사용하거나 자체 계약을 배포할 수 있습니다. 가능한 한 감사된 계약을 사용하십시오.
- 승인 서명: EOA 소유자가 위임 계약을 지정하는 메시지에 서명합니다.
- EIP-7702 트랜잭션 제출: 트랜잭션에 승인이 포함되며, EOA는 실행 중에 위임자의 코드를 실행합니다.
제출 후 EOA의 계정 코드는 위임자로 설정됩니다. EOA에 대한 후속 트랜잭션은 소유자가 위임을 해제하거나 교체할 때까지 위임자의 로직을 실행합니다.
변경되지 않는 것
- 새로운 계정 불필요: 사용자는 기존 EOA 주소와 개인 키를 유지합니다. 마이그레이션 단계가 없습니다.
- 기존 키로 서명: EOA의 개인 키는 승인 및 후속 트랜잭션에 서명합니다. EIP-7702는 새로운 서명 체계를 도입하지 않습니다.
- 표준 EVM 실행: 위임자는 일반 계약 코드처럼 실행됩니다. 계약 실행을 디버그하거나 추적하는 도구는 변경 없이 작동합니다.
보안 고려 사항
- 위임자 액세스는 전체적입니다. 위임 계약은 위임 기간 동안 EOA에 대한 완전한 실행 권한을 가집니다. 위임 선택을 신뢰 결정으로 취급하십시오. 악의적인 위임자는 자산을 고갈시킬 수 있습니다.
- 위임 함수는 EOA에서 공개됩니다. 누구나 EOA 주소에서 위임자의 외부 함수를 호출할 수 있으며, EOA의 잔액으로 실행됩니다.
Multicall3와 같이 호출자를 확인하지 않고 임의의 호출을 실행하는 위임자는 누구나 EOA의 자산을 고갈시킬 수 있도록 합니다. - 위임은 영구적입니다. 단일 트랜잭션 종료 시 만료되지 않습니다. 소유자는 더 이상 원하지 않을 때 위임을 명시적으로 해제하거나 교체해야 합니다.
- 가스 비용은 약간 더 높습니다. 승인 처리로 인해 가스 비용이 약간 더 높지만, 위임자가 여러 호출을 배치할 때 상쇄됩니다. 기본 수수료가 1 gwei이고 가스가 USDT0으로 표시되는 Stable에서는 추가 승인 오버헤드가 1센트 미만으로 유지되며, 이는 표준 ERC-20 전송 비용과 비슷합니다.
다음 권장 사항
- EIP-7702를 사용한 계정 추상화: 위임된 EOA에서 여러 호출을 하나의 원자 트랜잭션으로 묶습니다.
- EIP-7702를 사용한 세션 키: 감사된 스마트 계정에서 USDT0 허용 한도가 있는 범위가 지정된 만료 키를 부여합니다.
- USDT0을 가스로 사용: EIP-7702 트랜잭션이 실행되는 가스 모델을 이해합니다.
- 가스 면제: 위임을 애플리케이션이 사용자 가스를 대신 지불하는 가스 면제 흐름과 비교합니다.

