신규

곧 출시될 IQ.wiki API로 전문가가 큐레이션한 암호화폐 및 블록체인 지식을 앱에 통합하세요.

0% read

ERC-4337

ERC-4337

ERC-4337은 Shapella 업그레이드의 상하이 의 일환으로, 생태계에서 사용자 계정이 처리되는 방식을 혁신하는 것을 목표로 하는 표준입니다. 이는 스마트 계정 생성을 가능하게 하는 계정 추상화(account abstraction)의 수단입니다. 이러한 계정은 코드를 통해 여러 작업을 수행하고, 다요소 인증을 처리하며, 암호화폐 구독을 시작 및 유지하는 등의 기능을 수행할 수 있는 엔티티입니다. [1]

개요

2023년 3월 1일, 덴버에서 열린 WalletCon 기간 동안 이더리움 재단의 보안 연구원인 는 블록체인 개발자들 사이에서 흔히 "계정 추상화"로 불리는 ERC-4337의 주요 컨트랙트가 의 감사를 마쳤으며, , , , , , Chain을 포함한 모든 이더리움 가상 머신(EVM) 호환 네트워크에서 사용이 승인되었다고 발표했습니다. [2]

ERC-4337의 주요 목표는 의 기능을 지갑에 도입하는 것입니다. 전통적으로 지갑은 개인 키 관리와 트랜잭션 서명에 국한되어 있었습니다. 그러나 ERC-4337을 통해 지갑은 스마트 계정과 동의어가 되어 더 복잡한 기능을 수행할 수 있게 됩니다. ERC-4337은 사용자 경험을 단순화하고 개발자가 아닌 사람들도 이더리움 생태계와 더 쉽게 상호작용할 수 있도록 함으로써 기술의 도입을 늘리는 것을 목표로 합니다. [3]

계정 추상화

ERC-4337을 통해 이더리움은 사용자 계정에 새로운 아이디어를 도입하고 사용자 친화적으로 만들 계획입니다. 계정 추상화는 블록체인 고유 용어로, 계정과 상호작용하는 컨트랙트 코드로부터 계정 구현의 세부 사항을 추상화하는 능력을 의미합니다. 이는 개발자가 각 계정 유형의 구체적인 구현 세부 사항을 알지 못해도 다양한 유형의 계정과 상호작용할 수 있는 컨트랙트 코드를 작성할 수 있음을 의미합니다. [3]

"추상화"라는 용어는 개인 키에 대한 의존이나 시드 구문의 필요성과 같은 사용자 계정의 기존 처리 방식을 제거하거나 추출하는 것을 의미합니다. 계정 추상화를 통해 플랫폼은 사용자가 기존 지갑을 생성하고 시드 구문이나 개인 키를 수동으로 저장할 필요 없이 서비스를 제공할 수 있습니다. 이는 암호화 키를 하드웨어 보안 모듈(HSM)에 로컬로 저장할 수 있어 안전한 자가 수탁형 암호화폐 지갑 생성이 가능하기 때문입니다. [4]

기능 및 메커니즘

ERC-4337은 네트워크의 보안을 유지하면서 사용자가 운영하는 를 생성하고 실행하기 위한 여러 기능과 메커니즘을 가지고 있습니다. [5]

이는 UserOperations가 멤풀(mempool)에 추가되고 트랜잭션으로 묶이기 전에 이를 검증하기 위한 규칙과 메커니즘을 제공합니다. 검증 프로세스는 금지된 오프코드(opcode), 제한된 스토리지 액세스 및 CALL 오프코드에 대한 제한 사항을 확인합니다. UserOperation은 다른 UserOperations 또는 컨트랙트와 관련된 데이터에 액세스할 수 없으며, 팩토리(factory), 페이마스터(paymaster), 서명 애그리게이터(signature aggregator)라는 세 가지 특수 컨트랙트가 계정과 상호작용합니다. [5]

또한 이 코드는 사용자 작업 및 집계된 작업을 처리하는 일련의 엔트리 포인트(entry point) 메서드를 구현하여 플랫폼의 안전을 보장하도록 구축되었습니다. 이러한 메서드는 유효한 작업만 실행되고 안전하고 효율적인 방식으로 실행되도록 다양한 확인 및 검증을 수행합니다. [5]

예를 들어, handleOps 함수는 검증 루프와 실행 루프라는 두 개의 루프를 만들어 각 사용자 작업을 검증하고 실행합니다. 검증 루프에서 함수는 계정이 아직 존재하지 않으면 계정을 생성하고, 계정에서 validateUserOp를 호출하여 작업의 서명을 확인하고, 필요한 수수료를 지불하며, 계정의 예치금을 검증합니다. 실행 루프에서 함수는 사용자 작업의 콜데이터(calldata)와 함께 계정을 호출하며, 콜데이터를 파싱하고 작업을 실행하는 방법은 계정이 결정합니다. 악의적인 행위자가 플랫폼을 방해하는 것을 방지하기 위해, 코드는 다른 사용자의 트랜잭션을 대납할 수 있는 페이마스터를 위한 평판 시스템을 구현합니다. 페이마스터 인터페이스에는 사용자 작업을 검증하고 예치금을 관리하며 스테이크를 추가 및 인출하는 기능이 포함되어 있습니다. [5]

또한 코드는 페이마스터에 의한 DoS 공격을 방지하고 작업을 지불하기 위해 엔트리 포인트에 충분한 ETH가 예치되어 있는지 확인하는 체크 기능을 포함합니다. 페이마스터의 validatePaymasterUserOp 함수가 "context"를 반환하면, handleOps 함수는 메인 실행 호출을 수행한 후 페이마스터에서 postOp를 호출해야 하며, 내부 호출 컨텍스트 내에서 메인 실행을 수행함으로써 postOp의 실행을 보장해야 합니다. [5]

이 프로토콜은 계정 추상화를 안전할 뿐만 아니라 효율적으로 만들기 위한 여러 기능을 포함하고 있습니다. 주요 기능으로는 UserOperation 객체 제출을 위한 eth_sendUserOperation, 가스 값 추정을 위한 eth_estimateUserOperationGas, 해시를 기반으로 UserOperation을 반환하는 eth_getUserOperationByHash, 해시를 기반으로 UserOperation 영수증을 반환하는 eth_getUserOperationReceipt, 지원되는 entryPoint 주소 배열을 반환하는 eth_supportedEntryPoints 등이 있습니다. [5]

저자

[5]

잘못된 내용이 있나요?

참고 문헌 (5 출처)

카테고리위키 MC이벤트용어집