저자: 블록체인 감사 회사 쓰리 시그마 출처: X, @threesigmaxyz 굿오바, 골든파이낸스 번역
ZK 롤업과 계정 추상화를 통합하면 확장성과 유연성 측면에서 레이어 2 솔루션에 새로운 차원이 열립니다. 오늘은 zkSync와 이들이 프로토콜에서 계정 추상화를 구현한 방법을 자세히 살펴보겠습니다.
zkSync란 무엇인가요
@zkSync는 이더리움에서 확장 가능한 저비용 거래를 위해 @the_matter_labs에서 개발한 탈신뢰 프로토콜로, zk-. 롤업 기술을 활용하여 체인에서 실행되는 트랜잭션을 일괄 처리하여 혼잡을 완화하는 프로토콜입니다.
zkSync의 아키텍처는 스마트 컨트랙트를 위한 zkEVM과 오프체인 데이터 가용성을 위한 zkPorter로 각각 정의되는 zk-롤업과 밸리디움이 통합되어 있습니다.
프로토콜의 아키텍처에 대한 자세한 내용은 여기에서 확인하실 수 있습니다.
계정 추상화란 무엇인가요
계정 추상화는 스마트 컨트랙트를 지갑으로 활용하여 EOA(외부 소유 계정)가 필요 없는 기술로, 보다 안전하고 더 나은 사용자 경험을 제공하는 기술입니다.
잘 알려진 ERC-4337 AA 워크플로에서 사용자는 전용 메모리 풀에 작업을 제출합니다.
번들러는 이러한 작업을 개별 트랜잭션으로 컴파일하여 EntryPoint 컨트랙트로 전송하고, 컨트랙트는 "validateUserOp"를 사용하여 각 계정을 검증하여 이러한 작업을 수행합니다.
zkSync가 계정 추상화(AA)를 활용하는 방법
zkSync Era는 계정 추상화를 기본적으로 구현한 최초의 EVM 호환 체인으로, 스마트 계정과 지불자의 두 가지 주요 구성 요소를 도입하여 계정 운영을 혁신합니다.
스마트 계정
스마트 계정은 5가지 방법이 있는 IAccount 인터페이스로 표시됩니다.
validateTransaction(): 거래가 계정 규칙과 일치하는지 확인합니다. 일치하지 않으면 롤백됩니다.
executeTransaction(): 수수료를 공제한 후 트랜잭션을 실행합니다.
payForTransaction(): 지불자가 사용되지 않은 경우 수수료를 직접 지불합니다.
prepareForPaymaster(): 수수료를 지불할 페이마스터를 설정합니다.
executeTransactionFromOutside(): 외부에서 트랜잭션을 시작할 수 있도록 합니다.
아래에서 IACCOUNT 코드를 볼 수 있습니다
납부자
EIP4337과 마찬가지로 zkSync의 계정 추상화는 트랜잭션 실행에 대해 다른 계정에 보상을 제공할 수 있는 계정인 페이퍼를 지원합니다.
각 결제자는 다음 두 가지 메서드가 포함된 IPaymaster 인터페이스를 구현해야 합니다.
다음 코드를 참조하세요:
zkSync용 계정 추상화(AA) 프로토콜은 EIP4337과 매우 유사하지만, 효율성과 사용자 경험 개선을 위해 몇 가지 차이점이 있습니다.
zkSync의 기본 계정 추상화와 이더넷의 EIP 4337의 주요 차이점:
구현: zkSync는 AA를 프로토콜에 통합하는 반면, EIP4337은 프로토콜 수준의 변경을 피합니다.
계정 유형: zkSync는 스마트 컨트랙트와 결제자를 동등한 것으로 취급하지만, EIP4337은 이를 구분합니다.
거래 처리: zkSync는 EIP4337의 개별 처리와 달리 모든 계정에 대해 단일 메모리 풀을 사용합니다.
납부자: 스마트 컨트랙트로 제한하는 EIP4337과 달리 zkSync는 모든 계정에 대해 납부자를 지원합니다.
zkSync에서 스마트 계정을 만드는 방법
zkSync에서 스마트 계정을 만들려면 IAccount를 사용한 기본 방법과 다음을 사용한 지불자 종속 방법을 구현합니다. IPaymaster를 사용하여 결제자 의존적 수수료 결제를 구현합니다.
서명 인증을 위해 계정이 EIP-1271을 지원하는지 확인하는 것도 유용합니다.
이 단계가 끝나면 zkSync의 createAccount 메서드를 사용하여 계정을 배포하기만 하면 됩니다!
zkSync는 현재 2개의 스마트 컨트랙트 지갑과 통합되어 있습니다:
✦ HoldstationW
✦ pier_wallet