Vitalik의 최신 제안 EIP-7702 해석: 계정 추상화를 위한 궁극적인 처방?-(2)

2024. 5. 9. 14:49게시판

EIP-5003

우리는 또한 EOA에 더 많은 권한을 부여하고 싶지 않습니다. 결국 이러한 제안의 목표는 사용자를 EOA에서 스마트 계약 계정으로 이동하는 것인데 왜 EOA에 기능을 추가해야 할까요?

이는 우리의 다음 제안인 EIP-5003으로 이어집니다. EIP-5003은 EIP-3074 인증 주소에 코드를 배포하는 또 다른 opcode "AUTHUSURP"를 추가합니다.

EIP-3074와 EIP-5003의 차이점은 다음과 같습니다.

· EIP-3074는 스마트 계약에 대한 임시적이고 취소 가능한 위임입니다.

· EIP-5003은 EOA에서 영구적인 마이그레이션이자 EOA에서 스마트 계약 계정으로의 "전환"입니다.

EIP-3074 + EIP-5003의 큰 문제점은 EIP-4337을 통한 현재의 계정 추상화 방식과 그다지 호환되지 않는다는 점입니다 . 따라서 이더리움 커뮤니티의 일부 사람들은 이를 통해 "두 개의 독립적인 코드 생태계를 만들 것"을 우려하고 있습니다. 두 가지 유형의 계정 추상화.

EIP-7702

이는 오늘 Vitalik Buterin의 제안인 EIP-7702로 이어집니다. 그는 EIP-3074를 수정하여 EIP-4337과 더 효율적이고 호환되도록 만들어 두 개의 별도 계정 추상화 생태계로 끝나지 않고 EIP도 볼 수 있도록 제안합니다. -5003은 영구 마이그레이션의 다음 단계입니다.

EIP-7702는 contract_code와 서명 필드를 모두 허용하는 새로운 트랜잭션 유형을 제안하고 트랜잭션 시작 시 서명자 계정의 계약 코드를 contract_code로 설정합니다. 트랜잭션이 끝나면 코드가 다시 비어 있게 설정됩니다.

이는 EIP-3074와 마찬가지로 스마트 계약에 대한 EOA의 임시 위임 기능을 구현합니다. 그러나 EIP-7702는 새로운 opcode(하드 포크가 필요함)를 도입하지 않고 대신 호출할 함수를 정의합니다.

· AUTH -> "확인" 호출

· AUTHCALL -> "실행"을 호출합니다.

구체적으로는 다음과 같습니다.

· 계정 계약 코드가 비어 있는지 확인합니다.

· 비어 있으면 제공된 계약 코드로 설정합니다.

· 제공된 스마트 계약이 거래를 처리하는 방식에 따라 거래를 실행합니다.

· 계정 계약 코드를 다시 빈 상태로 설정합니다.

"계약 코드"는 말 그대로 스마트 계약의 코드가 "계약 코드"에 저장됩니다. EOA 자체는 계약이 아니므로 이 필드는 일반적으로 비어 있습니다. 그러나 EIP-7702의 영리한 점은 트랜잭션 실행 중에 일부 스마트 계약 코드를 이 필드에 일시적으로 채운다는 것입니다.

이는 특정 트랜잭션을 실행하기 위한 새로운 동작(코드 형식)을 EOA에 제공하는 방법입니다. 다음 단계는 영구적인 행동 변화를 만드는 것입니다. "거래 종료 후 코드를 비우도록 설정하지 마세요"를 선택하세요.

이 제안의 가장 좋은 점 중 하나는 EIP-4337을 위해 현재까지 구축된 모든 계정 추상화 작업과 호환성이 높다는 것입니다 . "사용자가 서명해야 하는 계약 코드는 실제로 기존 EIP-4337 지갑 코드일 수 있습니다."

이 변경 사항이 적용되면 사용자의 기존 EOA는 모든 스마트 계약 코드를 실행할 수 있습니다. 추가 EIP를 통해 EOA를 영구적으로 업그레이드하여 특정 코드를 실행할 수도 있습니다.

시간이 지남에 따라 이는 우리 모두가 Web3 애플리케이션과 상호 작용하는 방식을 완전히 바꿀 수 있습니다.

코인올백 트위터

https://twitter.com/coinall100kr

영희에게 코인 인증하고 코인올백 심화방 입장하기

https://open.kakao.com/me/Coinall100yh