티스토리 뷰
계정 추상화 시리즈
2024.04.21 - [블록체인/Ethereum] - ERC-4337: 계정 추상화 - 테스트를 통한 Aggregator의 동작 이해
2024.04.18 - [블록체인/Ethereum] - ERC-4337: 계정 추상화 - 테스트를 통한 Paymaster와 LegacyTokenPaymaster의 동작 이해
2024.04.18 - [블록체인/Ethereum] - ERC-4337: 계정 추상화 - 테스트를 통한 Account Factory의 동작 이해
2024.04.17 - [블록체인/Ethereum] - ERC-4337: 계정 추상화 - 테스트 수정 사항
2024.04.17 - [블록체인/Ethereum] - ERC-4337: 계정 추상화 - 테스트를 통한 Account와 EntryPoint의 동작 이해
2024.04.16 - [블록체인/Ethereum] - ERC-4337: 계정 추상화
계정 추상화(Account Abstraction)란?
이더리움 계정 유형
이더리움은 두 가지 기본 계정 유형을 가집니다:
- 외부 소유 계정(EOAs): 개인 키에 의해 직접 제어되며, 이 키를 사용하여 트랜잭션에 서명하고 이더리움 네트워크에 트랜잭션을 발행합니다.
- 컨트랙트 계정: 런타임 바이트코드에 의해 제어되며, 코드 로직에 따라 자동으로 트랜잭션을 수행하고 다른 계정과 상호 작용합니다.
기존 계정 체계의 문제점
현재의 이더리움 계정 체계에서는 몇 가지 제한사항이 존재합니다:
- 유연성 부족: EOA는 매우 기본적인 기능만 제공하며, 사용자 정의 트랜잭션 로직이나 보안 기능을 직접 구현하기 어렵습니다.
- 복잡한 상호 작용 제한: EOA와 스마트 컨트랙트 간의 상호 작용은 때때로 비효율적이며, 이는 특히 복잡한 거래에서 문제가 됩니다. (ex. approve와 transfer를 별도의 트랜잭션으로 처리)
- 사용자 경험: 일반 사용자에게는 EOA의 관리와 트랜잭션 수행이 어려울 수 있으며, 이는 블록체인 기술의 대중적 수용을 제한할 수 있습니다.
계정 추상화
계정 추상화(account abstraction)는 이더리움 같은 블록체인 플랫폼에서 계정과 트랜잭션 처리 방식을 더 유연하고 확장 가능하게 만드는 과정입니다. 이는 기본적으로 계정과 트랜잭션의 세부적인 구현 방식을 "추상화"하여 사용자가 복잡한 기술적 세부 사항 없이도 더 다양한 동작과 상호작용을 할 수 있도록 만듭니다.
추상화 대상
- 트랜잭션 실행 로직: 트랜잭션을 발생시키고 실행하는 로직을 표준화된 형태에서 사용자 정의 가능한 형태로 변경합니다. 이를 통해 사용자 또는 개발자는 자신의 요구 사항에 맞추어 트랜잭션을 실행할 조건을 설정할 수 있습니다.
- 가스 비용과 결제 메커니즘: 기존 이더리움에서는 트랜잭션을 발생시키려면 반드시 ETH를 사용해 가스 비용을 지불해야 합니다. 계정 추상화를 통해 다양한 결제 방식을 허용함으로써, 다른 토큰이나 스마트 계약 자체에서 정의한 방식으로 가스 비용을 지불할 수 있게 됩니다.
- 계정 유형의 일반화: 외부 소유 계정(EOA)과 컨트랙트 계정 간의 구분을 덜 명확하게 함으로써, 더 복잡한 스마트 컨트랙트 기능을 일반 사용자 계정에서도 사용할 수 있게 만듭니다.
계정 추상화의 필요성
계정 추상화는 위에서 언급한 문제들을 해결하기 위해 필요합니다:
- 보다 유연한 계정 관리: 사용자는 자신의 계정을 커스터마이즈 하여 특정 조건에 따라 트랜잭션이 실행되도록 설정할 수 있습니다. 이는 더 복잡하고 안전한 트랜잭션 로직을 가능하게 합니다.
- 향상된 사용자 경험: 계정 추상화를 통해 더 많은 사용자가 쉽게 이더리움을 사용할 수 있게 되며, 이는 블록체인 기술의 보급률을 증가시킬 수 있습니다.
- 보안 강화: 복잡한 사용 조건과 멀티 시그니처 같은 보안 기능을 계정 수준에서 직접 구현할 수 있게 됩니다. 이는 자산의 안전을 크게 향상할 수 있습니다.
ERC-4337
ERC-4337은 이더리움 표준 제안 중 하나로, 합의 레이어를 변경하지 않고도 계정 추상화 개념을 실현하는 방법을 제공합니다. 이 표준은 스마트 컨트랙트를 통해 사용자의 트랜잭션을 관리하도록 함으로써, 보다 복잡한 사용자 계정 기능과 보안 메커니즘을 구현할 수 있게 해 줍니다.
ERC-4337의 주요 Entity
- User Operation (사용자 작업)
- 사용자 작업은 실제로 네트워크에 제출되는 트랜잭션의 구조를 정의합니다. 이 구조에는 타깃 주소, 데이터, 가스 비용 지불 방식 등이 포함됩니다. 사용자는 이러한 작업을 생성하고, 선택적으로 서명하여 전용 멤풀에 전달합니다.
- Bundler (번들러)
- 번들러는 여러 사용자 작업을 번들로 만들고 이를 트랜잭션으로 구성하여 진입점에 전달합니다.
- EntryPoint (진입점)
- 진입점은 ERC-4337 아키텍처의 핵심 컴포넌트로, 모든 사용자 작업이 처리되는 중앙 허브 역할을 합니다. 이 스마트 컨트랙트는 네트워크에 제출된 사용자 작업을 받아 검증하고 실행합니다. 진입점은 또한 사용자 작업의 가스 비용을 처리하고, 필요한 경우 작업을 거부할 수 있는 기능을 가집니다.
- Paymaster (지불 관리자)
- 지불 관리자는 트랜잭션 수수료를 대신 지불하는 역할을 합니다. 이 스마트 컨트랙트는 특정 조건을 만족한 사용자 대신에 트랜잭션 비용을 부담함으로써 사용자가 네트워크의 네이티브 재화를 소유하지 않고도 트랜잭션을 실행할 수 있게 해주는 중요한 기능을 수행합니다.
- Aggregator (서명 집계자)
- 여러 사용자 작업의 서명을 집계하고 검증하는 역할을 합니다. 집계된 서명을 검증함으로써 저마다의 서명을 검증하는 것보다 효율적이고 낮은 비용으로 사용자 작업의 번들을 처리할 수 있습니다.
ERC-4337 관련 자료 모음
계정 추상화의 장단점
장점
- 프로그래밍 가능성과 유연성: 계정을 사용자가 직접 프로그래밍할 수 있게 되므로, 특정한 필요에 맞춘 맞춤형 솔루션을 개발할 수 있습니다.
- 강화된 보안: 사용자는 계정에 멀티시그, 일정 기간 동안 자금 동결, 또는 특정 조건에서만 자금을 송금할 수 있는 등의 보안 기능을 직접 설정할 수 있습니다.
- 개선된 사용자 경험: 시드 구문과 개인 키의 제거, 계정 복구 옵션, 다중 인증과 같은 기능은 블록체인을 사용해 본 적이 없는 사용자에게 높은 접근성과 안정성을 제공합니다.
- 가스 및 EOA 의존성 감소: EIP-4337과 같은 제안을 통해 사용자는 직접 가스를 관리할 필요 없이 서비스 제공자에 수수료 지불 트랜잭션 처리를 위임할 수 있습니다.
단점
- 복잡성 및 이해도 문제: AA는 매우 기술적이고 복잡하여 일반 사용자가 이해하기 어렵고 잘못된 정보로 이어질 수 있습니다.
- 높은 비용: 이더리움의 레이어 1에서 AA를 구현하고 사용하는 것은 배포 및 트랜잭션 수수료가 높기 때문에 비용이 많이 듭니다. 레이어 2에서 배포하여 사용하더라도 EOA에서 실행되는 트랜잭션 수수료보다 평균적으로 더 비쌉니다.
- 상호운용성 문제 : 서로 다른 네트워크에서 EOA처럼 하나의 계정으로 사용할 수 있는 것이 아니라, 각 네트워크마다 계정의 배포가 필요합니다.
- 중앙화 위험: 많은 현재의 AA 구현은 중앙화되어 있으며, 이는 블록체인의 탈중앙화 정신에 반하는 위험을 수반합니다.
- 신뢰 문제: 비수탁 AA 솔루션조차도 서비스 제공자에 대한 일정 수준의 신뢰가 필요합니다. 서비스 제공자가 계정 운영의 중요한 요소를 제어(비밀 키)할 수 있습니다.
마치며
계정 추상화는 이더리움의 사용성과 보안을 크게 향상할 수 있지만, 현재 기술 상태, 비용 문제, 중앙화 위험은 그 광범위한 채택에 상당한 장애물로 보입니다.
그 중에서도 가장 우려되는 부분은 신뢰의 문제입니다. 메타마스크 같은 비수탁형 지갑에서 스마트 계정으로 이주하더라도 스마트 계정을 실행하기 위해서는 서명을 생성하기 위한 수단을 누군가 관리해야 한다는 것입니다. 관리의 주체가 스마트 계정의 소유자가 된다면 결과적으로는 EOA를 사용하던 방식에서 벗어나는 것도 아니고 오히려 복잡성만 증가한 것이며, 서비스 제공자가 관리를 한다면 수탁형 지갑 업체에서 발생할 수 있는 문제점들을 되풀이하는 것이 됩니다. 소셜 리커버리가 가능하다는데 도대체 어떻게 동작하는지는 자세히 알려주지 않더군요.
그러나 너무 비관적으로만 생각할 필요는 없어 보입니다. ERC-4337은 아직 완전히 구현된 것이 아닙니다. 계속해서 진화하고 있고 종국에는 별도의 키를 사용하지 않고도 트랜잭션을 실행하는 계정을 구현할 수 있을지도 모르는 일입니다.
'블록체인 > Ethereum' 카테고리의 다른 글
Transient Storage 이해하기 (0) | 2024.10.13 |
---|---|
ERC-4337: 계정 추상화 - 테스트를 통한 Aggregator의 동작 이해 (0) | 2024.04.22 |
ERC-4337: 계정 추상화 - 테스트를 통한 Paymaster와 LegacyTokenPaymaster의 동작 이해 (0) | 2024.04.18 |
ERC-4337: 계정 추상화 - 테스트를 통한 Account Factory의 동작 이해 (0) | 2024.04.18 |
ERC-4337: 계정 추상화 - 테스트 수정 사항 (0) | 2024.04.17 |