Achieve the key goal of account abstraction
사용자가 EOA 대신 임의의 검증 로직이 포함된 컨트랙트 지갑을 기본 계정으로 사용할 수 있도록 허용하여 EOA 를 보유해야 하는 필요성을 완전히 제거한다.
Decentralization
모든 번들러(ex 블록 빌더)가 계정 추상화된 사용자의 작업을 포함하는 프로세스에 참여할 수 있도록 허용한다.
public mempool 을 통해 발생하는 모든 활동과 함께 작업하며, 사용자는 직접적인 통신 주소(ex IP)를 알 필요가 없다.
번들러에 대한 신뢰를 가정하지 않는다.
Do not require any Ethereum consensus changes
이더리움의 consensus layer 개발은 확장성 중심의 기능에 초점을 맞추고 있기 때문에 당분간 프로토콜을 추가로 변경할 기회가 없을 것이다. 따라서 이더리움 consensus 변경을 하지 않고, 빠르게 채택되도록 한다.
UserOperation - 사용자가 전송하는 트랜잭션을 설명하는 구조이다. 혼동을 피하기 위해 ‘transaction’ 이라는 단어를 사용하지 않는다.
Sender - UserOperation을 전송하는 ‘account contract’ 이다.
EntryPoint - UserOperation의 번들을 실행하는 싱글톤 컨트랙트이다. Bundlers, Clients 는 지원되는 엔트리포인트를 화이트리스트에 추가한다.
Bundler - 여러 UserOperations 를 번들링하고 EntryPoint().handleOps() 트랜잭션을 생성하는 노드(=블록 빌더)이다. 네트워크의 모든 블록 빌더가 번들러일 필요는 없다.
Aggregator - 집계된 서명의 유효성 검사를 위한 accounts 의 신뢰를 받는 helper 컨트랙트이다. Bundler와 Clients 는 지원되는 aggregator를 화이트리스트에 추가한다.
이더리움 consensus layer 변경을 피하기 위해 account abstraction 에 대한 새로운 트랜잭션 유형을 만들지 않는다.