ERC-4337: 계정 추상화를 통한 이더리움 혁신
안녕하세요, 블록체인 블로그에 다시 오신 것을 환영합니다! 오늘은 ERC-4337이라는 흥미로운 새로운 제안에 대해 살펴보겠습니다. 이 제안은 합의 계층 프로토콜 변경 없이 이더리움에 계정 추상화를 도입합니다. 대신, 상위 레이어 인프라를 활용해 목표를 달성합니다. ERC-4337이 제공하는 내용과 현재 이더리움 생태계의 한계를 어떻게 해결하는지 알아보겠습니다.
ERC-4337이란?
ERC-4337은 별도의 mempool과 UserOperation이라는 새로운 유형의 의사‑트랜잭션 객체를 사용하여 이더리움에 계정 추상화를 도입하는 제안입니다. 사용자는 UserOperation 객체를 대체 mempool에 전송하고, 번들러(bundler)라 불리는 특수한 행위자가 이를 트랜잭션으로 패키징하여 전용 계약에 handleOps 호출을 수행합니다. 이러한 트랜잭션은 블록에 포함됩니다.
이 제안은 다음과 같은 목표를 가지고 있습니다:
- 사용자가 임의의 검증 로직을 가진 스마트 계약 월렛을 기본 계정으로 사용할 수 있도록 합니다.
- 외부 소유 계정(EOA)이 필요 없도록 완전히 제거합니다.
- 어떤 번들러든 계정 추상화된 사용자 작업을 포함하는 과정에 참여할 수 있게 하여 탈중앙화를 보장합니다.
- 모든 활동이 공개 mempool을 통해 이루어지도록 하여 사용자 가 특정 행위자의 직접 통신 주소를 알 필요가 없게 합니다.
- 번들러에 대한 신뢰 가정을 피합니다.
- 더 빠른 채택을 위해 이더리움 합의 변경을 요구하지 않습니다.
- 프라이버시 보호 애플리케이션, 원자성 다중 작업, ERC-20 토큰으로 거래 수수료 지불, 개발자 지원 거래 등 다양한 사용 사례를 지원합니다.
하위 호환성
ERC-4337은 합의 계층을 변경하지 않기 때문에 이더리움에 직접적인 하위 호환성 문제가 없습니다. 그러나 ERC-4337 이전에 존재하던 계정은 필요한 validateUserOp
함수가 없기 때문에 새로운 시스템과 바로 호환되지 않습니다. 이를 해결하려면 검증 로직을 래퍼 형태로 재구현하고 원래 계정의 신뢰할 수 있는 op 제출자로 설정하는 ERC-4337 호환 계정을 생성하면 됩니다.
레퍼런스 구현
ERC-4337의 기술적 세부 사항을 더 깊이 탐구하고 싶은 분들을 위해 레퍼런스 구현이 https://github.com/eth-infinitism/account-abstraction/tree/main/contracts 에 제공됩니다.
보안 고려 사항
ERC-4337의 엔트리 포인트 계약은 시스템 전체의 중앙 신뢰 지점 역할을 하므로 철저한 감사와 형식 검증이 필요합니다. 이 접근 방식은 개별 계정에 대한 감사와 검증 부담을 줄여주지만, 엔트리 포인트 계약에 보안 위험이 집중되므로 강력한 검증이 필수적입니다.
검증은 두 가지 주요 주장에 초점을 맞춰야 합니다:
- 임의의 탈취에 대한 안전성: 엔트리 포인트는 해당 계정에 대한
validateUserOp
검증이 통과된 경우에만 일반적으로 계정을 호출합니다. - 수수료 고갈에 대한 안전성: 엔트리 포인트가
validateUserOp
를 호출하고 통과하면,op.calldata
와 동일한 calldata로 일반 호출도 수행해야 합니다.
결론
ERC-4337은 합의 계층 프로토콜 변경 없이 이더리움에 계정 추상화를 도입하려는 흥미로운 제안입니다. 상위 레이어 인프라를 활용함으로써 탈중앙화, 유연성 및 다양한 사용 사례에 대한 새로운 가능성을 열어줍니다. 보안 고려 사항을 해결해야 하지만, 이 제안은 이더리움 생태계와 사용자 경험을 크게 향상시킬 잠재력을 가지고 있습니다.