EIP-7754는 탬퍼프루프(변조 방지) 확장 지갑 API인 TWIST(Tamperproof Extension Wallets API)를 정의합니다. 브라우저 확장 지갑이 웹페이지 스크립트의 변조로부터 보호받는 API를 제공하는 방법을 표준화합니다.
제안 동기
현재 대부분의 브라우저 지갑 확장은 window.ethereum 객체를 통해 웹페이지와 통신하는데, 이 객체는 악의적인 페이지 스크립트에 의해 변조될 수 있습니다. 공급망 공격이나 XSS를 통해 지갑 API가 납치되어 사용자 자금이 위험에 노출될 수 있습니다. TWIST는 이러한 공격 벡터를 근본적으로 차단하는 보안 채널을 제공합니다.
기술적 접근
브라우저 확장의 격리된 컨텍스트(isolated world)를 활용하여 페이지 스크립트와 분리된 통신 채널을 구성합니다. 암호학적 채널 인증을 통해 지갑과 dApp 간의 통신 무결성을 보장합니다. 표준 메시지 서명 메커니즘을 사용하여 요청의 진위를 검증합니다.
표준 API 정의
TWIST는 기존 EIP-1193 인터페이스를 확장하여 보안 채널 설정 절차를 추가합니다. 지갑 확장은 TWIST 호환 여부를 신호하는 표준 플래그를 노출해야 합니다. 보안 채널을 통한 RPC 요청 형식과 응답 검증 절차가 명시됩니다.
한계 및 고려사항
이 표준은 브라우저 확장에 특화되어 있어 모바일 지갑이나 하드웨어 지갑에는 직접 적용되지 않습니다. 레거시 dApp과의 호환성을 위해 기존 window.ethereum 인터페이스를 폴백으로 유지하는 방안을 제시합니다.