Ethereum 계정 추상화 및 ERC-4337에 대한 자세한 설명
IOBC Capital
2022-10-26 03:30
本文约3232字,阅读全文需要约13分钟
이더리움에서 Layer 2 개발에 집중하는 패턴이 설정되었으므로 Vitalik의 Ethereum 업그레이드 후속 계획은 계정 추상화로 전환되기 시작했습니다.

원작자: 카메 마도카,IOBC Capital 

Ethereum 시스템에는 실제로 두 가지 유형의 계정이 있습니다.

하나는 개인 키로 제어됩니다.외부 계정(외부 소유 계정, EOA) 우리가 사용하는 지갑의 계정과 같이 이러한 유형의 계정에는 자체 잔액이 있습니다. 소유자는 트랜잭션을 생성하고 서명하여 외부 계정에서 메시지를 보낼 수 있습니다.

다른 하나는 블록체인에 배포된 코드로 제어되는 계약 계정으로, 스마트 계약 계정(때로는 스마트 지갑이라고도 함)에 저장된 이더리움 가상 머신 코드로 제어됩니다. 계약 계정이 정보를 받으면 내부 코드가 활성화되어 내부 저장소를 읽고 쓰고 새 계약을 만드는 등의 작업을 수행할 수 있습니다.
첫 번째 레벨 제목

계정 추상화란 무엇입니까?

계정 추상화는 위의 두 계정에 대한 개선으로 둘 사이의 경계를 흐리게 하고 복잡한 논리를 가진 범용 계정이 됩니다.계정이 계약 계정과 외부 계정의 기능을 동시에 가질 수 있도록 합니다.

첫 번째 레벨 제목

image

다양한 계정 추상화 체계

계정 추상화를 달성하는 것은 항상 이더리움 개발자 커뮤니티의 비전이었습니다. 커뮤니티는 또한 다음과 같은 다양한 제안을 제안했습니다.EIP-86,EIP-2938기다리다.

EIP-86은 사용자가 스마트 계약을 기반으로 계정을 생성할 수 있도록 하는 새로운 계정 유형을 정의하는 계정 추상화를 위한 기술적 준비입니다.

이더리움 프로토콜 자체는 모든 것이 ECDSA 보안 외부 계정(EOA)에서 발생하는 트랜잭션으로 패키징되어야 하며 모든 사용자 작업은 21,000 가스 비용이 발생하는 EOA의 트랜잭션으로 래핑되어야 합니다. 사용자는 가스 비용을 지불하기 위해 별도의 EOA에서 ETH를 소유해야 합니다.

EIP-86에서 제안한 계정 추상화는 발신자로 EOA가 있어야 하는 기존 트랜잭션과 비교하여 발신자가 없는 새로운 유형의 트랜잭션을 제공합니다. 이러한 트랜잭션은 트랜잭션 해시의 고유성을 파괴합니다. EIP-86은 원래 Metropolis 단계에서 업그레이드할 계획이었으나 위에서 언급한 문제로 인해 개발자는 Metropolis에 도입을 연기하기로 결정했습니다.

EIP-2938은 계정 추상화 솔루션을 제공하며, 이더리움 프로토콜의 일부를 변경하여 계약 계정이 외부 계정처럼 트랜잭션을 시작할 수 있습니다. 그러나 이 솔루션은 합의 계층에서 이더리움 프로토콜에 대한 변경이 필요하기 때문에 널리 받아들여지지 않았습니다.

새로운 프로토콜ERC-4337첫 번째 레벨 제목

ERC-4337은 어떻게 구현됩니까?

ERC-4337은 프로토콜 합의를 수정하려고 시도하지 않지만 시스템에서 mempool의 기능을 복제합니다.

사용자가 UserOperation(UserOperation) 개체를 보냅니다., 사용자의 의도, 서명 및 기타 데이터를 포함합니다. 사용자 작업을 위한 별도의 mempool이 있으며 이 풀에 연결된 노드는 수수료를 지불하는 작업만 수신하도록 작업을 필터링하기 위해 ERC-4337 관련 유효성 검사를 수행합니다.

이러한 사용자 작업은 Flashbots 서비스를 사용하여 채굴자 또는 패키저에 의해 일괄 수집되어단일 번들 거래, Ethereum 블록에 포함됩니다.패커는 이더리움의 번들 트랜잭션에 대해 가스 수수료를 지불합니다., 그리고 각 개별 UserOperation이 지불하는 것에 대해 보상됩니다. 패키지 프로그램은 포함할 UserOperation 개체를 선택하기 위해 비용 우선 순위 논리를 사용합니다.

image

사용자 작업 UserOperation은 트랜잭션처럼 보이지만 다음 필드를 포함하는 ABI 인코딩 구조입니다.
1. 송신자: 작업을 수행하는 지갑
2. nonce 및 서명: 지갑이 작동을 검증할 수 있도록 지갑 검증 기능에 전달되는 매개변수
3. initCode: 지갑이 아직 존재하지 않는 경우 지갑 생성에 사용된 초기화 코드.
4. callData: 실제 실행 단계에서 지갑을 호출하는 데 사용되는 데이터입니다.
그리고 각 지갑은 두 가지 기능을 포함해야 하는 스마트 계약입니다.

1. userOperation을 입력으로 받아들이는 validationUserOp. 이 함수는 UserOperation에서 서명과 nonce를 확인하고, 수수료를 지불하고 확인에 성공하면 nonce를 늘리고, 확인에 실패하면 예외를 발생시켜야 합니다.

첫 번째 레벨 제목

ERC-4337이 가져온 변화

제안이 일반적으로 채택되면,서명 확인이 EVM(Ethereum Virtual Machine)으로 이동됨, validateUserOp 함수는 임의 서명 및 난수 확인 논리를 추가하여 확인 논리를 보다 유연하게 만듭니다.

이러한 방식으로 거래에 서명할 때 새로운 암호화 도구를 사용할 수 있으며 지갑은 다음과 같은 몇 가지 새로운 기능을 제공할 수도 있습니다.

  1. 다중 서명;

  2. 사회적 회복;

  3. 보다 효율적이고 단순한 서명 알고리즘(예: Schnorr, BLS)

  4. 포스트 퀀텀 보안 서명 알고리즘(예: Lamport, Winternitz)

  5. 업그레이드 가능한 지갑.

이 접근 방식은 또한 트랜잭션이 스마트 계약을 통해 가스 요금을 지불하도록 허용하는 것과 같은 다양한 기타 트랜잭션 권한 관리를 엽니다.
현재 이더리움과 상호 작용하는 외부 지갑의 가스비는 지갑에 있는 ETH로만 지불할 수 있습니다. ERC-4337이 채택되면 사용자는 계정의 ERC-20 토큰을 사용하여 수수료를 지불할 수 있으며, 광부 노드는 계약을 중개자로 사용하여 ETH 체인에 대한 비용을 지불하고 사용자의 ERC-20 토큰을 얻습니다.

추상화가 실현된 후,외부 계정 소유자가 트랜잭션에 서명하고 브로드캐스트하는 것이 더 이상 트랜잭션을 시작하는 유일한 방법이 아닙니다.이것은 이더리움이 메타 트랜잭션의 중계자 역할을 할 가능성을 열어줄 것입니다. 이더리움의 많은 현재 응용 프로그램은 블록체인에 사용자 트랜잭션을 게시하고 중계자에게 수수료를 지불하기 위해 중계자에 의존합니다. 더 복잡한 계약을 지갑에 구축할 수 있다면 일부 릴레이어는 더 이상 필요하지 않으며 추가 비용을 지불할 필요가 없습니다.

많은 장점이 있지만, 새로운 방식은 또한 몇 가지 문제에 직면해 있습니다.

가장 눈에 띄는 점은 높은 가스 비용으로 기본 ERC-4337 작업에는 약 42,000 가스가 필요하지만 일반 트랜잭션에는 21,000 가스가 필요합니다.

1. 개별 스토리지 읽기/쓰기 비용을 많이 지불해야 합니다.EOA의 경우 이러한 비용은 21000 가스의 단일 지불로 묶입니다.
(1) pubkey+nonce(~5000)를 포함하는 스토리지 슬롯을 편집합니다.
(2) 사용자 조작 호출 데이터 비용(약 4500, 압축을 통해 약 2500으로 줄일 수 있음);
(3)ECRECOVER (~3000);
(4) 지갑 자체에 대한 최초 액세스(~2600)
(5) 수취인 계좌 최초접속(~2600)
(6) 수취인 계좌로 ETH 이체 (~9000)
(7) 수수료를 지불하기 위한 보관소 수정 (~5000)
(8) 에이전트가 포함된 스토리지 슬롯(~2100)에 액세스한 다음 에이전트 자체(~2600)에 액세스합니다.

2. 위의 스토리지 읽기/쓰기 비용 외에도 계약은 "비즈니스 로직"(Unpack UserOperation, 해시, 변수 섞기 등)을 실행해야 합니다.

3. 로그 수수료를 지불하기 위해 가스를 소비해야 함(EOA는 로그를 게시하지 않음)

4. 일회성 계약 생성 비용(약 32,000 가스, 프록시의 각 코드 바이트당 200 가스, 프록시 주소 설정을 위한 20,000 가스 추가)
즉, 계정의 추상 주소의 모든 단계를 계산해야 하므로 더 많은 리소스를 소비하고 추가 비용이 추가됩니다.

다행히도 이것은 해결 불가능한 것이 아닙니다.

롤업은 데이터 압축에 능하기 때문에 복잡한 데이터가 있는 계정 추상화 체계에 자연스럽게 맞습니다.

Vitalik의 최신 제안에서,계정 추상화에 의해 생성된 데이터를 레이어 2를 통해 처리하는 것을 제안합니다.개선점은 단계적으로만 구현할 수 있는 기능을 배치 트랜잭션으로 패키징하고 SNARK 기술을 사용하여 트랜잭션의 유효성을 보장하는 것입니다.

image

발문

발문

이더리움에서 Layer 2 개발에 집중하는 패턴이 설정되었으므로 Vitalik의 Ethereum 업그레이드 후속 계획은 계정 추상화로 전환되기 시작했습니다. 최신 제안 쇼케이스롤업+계정 추상화기술 경로. 다양한 롤업 공급자도 계정 추상화와 호환되는 새 버전을 출시했습니다.

올해 6월 zkSync는 "계정 추상화" 기능을 추가하고 Ethereum EVM과의 호환성을 높이는 V2 업데이트 정보를 발표했습니다. 10월에는 BLS 서명 알고리즘을 포함한 서명 집계 기능이 추가된 ERC-4337 새 버전이 출시되었습니다. 서명 집계를 통해 빌더와 배치 제출자는 서명(예: BLS, SNARK)을 집계하여 체인의 데이터를 크게 줄이고 롤업을 위한 데이터 비용을 줄일 수 있습니다.

image

계정 추상화로 인한 변화에는 생태적 폭발의 가능성도 포함되어 있다고 믿을 만한 이유가 있습니다. Rollup의 개발과 함께 Rollup과 결합할 수 있는 계정의 추상화도 더 좋고 더 세련된 솔루션을 개발해야 합니다.

IOBC Capital
作者文库