
이 게시물에서는 계정 추상화에서 EIP-4337의 역할에 대한 완전한 아이디어를 얻을 것입니다.
소개하다
이 게시물에서는 계정 추상화에서 EIP-4337의 역할에 대한 완전한 아이디어를 얻을 것입니다.
소개하다
이 제안에는 상위 계층 인프라에 의존하기보다 합의 계층 프로토콜에 대한 변경을 피하기 위한 변경 사항이 포함되어 있습니다. 다음 목표를 달성하는 것을 목표로 합니다.
계정 추상화: 사용자가 기본 계정으로 EOA 대신 임의의 확인 논리가 포함된 스마트 계약 지갑을 사용할 수 있습니다.
탈중앙화: 모든 바인더가 사용자 활동의 계정 추상화를 포함하는 프로세스에 참여할 수 있도록 합니다. 사용자는 공통 메모리 풀에서 발생하는 활동을 처리하기 위해 참여자의 직접 통신 주소를 알 필요가 없습니다.
거래 수수료 지불: ERC-20 토큰을 사용하여 거래 수수료를 지불하여 개발자가 사용자에 대한 수수료를 지불할 수 있도록 하고 스폰서 거래에 대한 EIP-3074와 유사한 사용 사례를 제공합니다.
일하다
다음은 이 제안서의 새로운 기능 중 일부입니다. 모든 작업은 피어 투 피어 메모리 풀에서 발생합니다. 지갑이 결정론적 CREATE2 주소에 존재하고 지갑이 존재하지 않으면 UserOperation이 자동으로 생성하기 때문에 사용자는 지갑 계약이 해제되는 것에 대해 걱정할 필요가 없습니다. 사용자는 이제 고정 수수료 프리미엄과 최대 총 수수료를 설정할 수 있으며 신속하게 포함되고 합리적으로 청구될 것으로 기대할 수 있습니다. 가장 검사를 통과한 UserOperations는 발신자가 또 다른 상태 변경이 있을 때까지 억제 가능하도록 보장되며, 공격자는 발신자당 7500+ 가스를 지불해야 합니다.
일하다
사용자는 확인을 위해 사용자의 목적과 서명 및 기타 데이터를 캡슐화하는 UserOperation 개체를 보냅니다. Flashbots와 같은 서비스를 활용하는 광부 또는 바인더는 UserOperation 개체를 단일 번들 트랜잭션으로 결합한 다음 Ethereum 블록에 포함할 수 있습니다. 바인더는 묶음 트랜잭션에 대한 비용을 ETH로 지불하고 각 개별 UserOperation 실행에 대해 지불한 수수료로 보상합니다. 바인더는 비용 우선 순위 논리를 사용하여 포함할 UserOperation 개체를 선택합니다.
지갑의 논리를 단순화하기 위해 보안을 유지하는 데 필요한 대부분의 복잡한 스마트 계약 논리는 진입점이라는 글로벌 계약에서 지갑 외부에서 실행됩니다. validateUserOp 및 실행 기능은 require(msg.sender == ENTRY POINT)로 제어되어 신뢰할 수 있는 진입점만 지갑을 트리거하여 작업을 수행하거나 수수료를 지불하도록 합니다. calldata와 함께 UserOperation을 사용하여 userop 성공을 확인한 후 진입점은 지갑을 임의로 호출합니다. 이는 지갑을 공격으로부터 보호하기 위해 수행됩니다.
UserOperation의 유효성 검사가 성공적으로 조롱되면 발신자 계정의 내부 상태가 변경될 때까지 UserOperation이 포함 가능하도록 보장됩니다.
거래 시작
우리는 응용 프로그램 개발자가 사용자를 대신하여 수수료를 지불하도록 허용하고 사용자가 ERC20 토큰으로 수수료를 지불하고 중개자로서 계약을 통해 ERC20 토큰을 받고 ETH를 사용하여 지불하도록 할 수 있습니다.
사용 사례 1의 경우: Paymaster는 개시자의 서명이 paymasterData에 포함되어 개시자가 UserOperation에 대해 지불할 준비가 되었음을 나타내는지 확인합니다. 서명이 유효하면 Paymaster가 수락하고 UserOperation 수수료가 개시자의 몫에서 차감됩니다.
이점
사용 사례 2의 경우: Paymaster는 발신자 지갑에 UserOperation을 지불하기에 충분한 ERC20 잔액이 있는지 확인합니다. 그렇다면 Paymaster는 ETH 수수료를 수락하고 지불한 다음 postOp에서 ERC20 토큰을 청구합니다.
이점
실행 논리 유연성: 지갑은 실행 단계에 맞춤 논리를 추가할 수 있습니다.
결점
지갑 업그레이드 가능성: 지갑은 공개 키를 변경하거나 코드를 업그레이드할 수 있습니다.
결점
한 번에 하나의 트랜잭션: 계정은 대기열에 여러 트랜잭션을 Mempool에 보낼 수 없습니다.
Source:https://medium.datadriveninvestor.com/account-abstraction-eip-4337-40a94d5b6d2c
이 기사는 분산형 금융 커뮤니티에서 제공되며 승인을 받아 복제됩니다.