
EIP-6963 개요: 다중 지갑 충돌의 잠재적 해결 방안
작성: Mundus Security
번역: TechFlow

최근 제안된 EIP-6963은 단일 웹 브라우저에서 여러 지갑 제공자를 사용하려는 사용자가 겪는 충돌 문제를 해결하기 위한 것이다. 이러한 충돌은 사용자 경험을 저하시킬 수 있으며, 사용자가 자신의 이더리움 인터페이스를 제어하는 것을 방해하고 dApp과의 상호 작용을 복잡하게 만들 수 있다.
문제 개요
현재 브라우저 확장 프로그램을 제공하는 지갑 제공자는 EIP-1193 표준에 따라 자신의 이더리움 제공자(Provider)를 브라우저의 window.ethereum 객체에 주입해야 한다. 이 메커니즘은 여러 브라우저 확장 프로그램을 설치한 사용자에게 문제가 된다. 브라우저 확장은 웹 페이지에 예측 불가능하고 불안정한 순서로 로드되기 때문에, 사용자는 window.ethereum 객체 내에서 어떤 지갑을 선택할지 통제할 수 없다. 일반적으로 가장 나중에 로드된 지갑이 컨트롤 팝업 화면을 띄운다.
EIP-6963: 제안된 해결책
이 문제를 해결하기 위해 EIP-6963은 기존 window.ethereum 기반 EIP-1193 제공자 모델 대신 새로운 발견 메커니즘을 제안한다. 이 제안은 이더리움 라이브러리와 브라우저 확장에 의해 제공되는 인젝션 스크립트 간의 양방향 통신 프로토콜을 가능하게 하는 일련의 윈도우 이벤트를 도입한다. 이 솔루션은 다수의 지갑 제공자 간의 상호 운용성을 최적화하고, 새로운 지갑 제공자의 진입 장벽을 낮추며, 이더리움 네트워크 상의 사용자 경험을 향상시킨다.
이 제안은 지갑 선택 팝업 창을 채우는 데 중요한 역할을 하는 표준화된 제공자 정보 인터페이스(EIP6963ProviderInfo)를 명세한다. 또한 제공자 인터페이스(EIP6963ProviderDetail)를 공표하는 것의 중요성을 강조하며, 이를 통해 EIP-1193 제공자 인터페이스는 그대로 유지되어 하위 호환성이 보장된다.
제공자 정보 인터페이스의 핵심 속성은 다음과 같다:
-
walletId: 지갑 제공자의 전역 고유 식별자 (예: io.dopewallet.extension 또는 awesomewallet).
-
uuid: UUID v4.0 규격을 따르는 지갑 제공자의 로컬 고유 식별자.
-
name: 지갑 제공자의 사람이 읽을 수 있는 이름 (예: DopeWalletExtension 또는 Awesome).
-
icon: 이미지를 가리키는 URI. 최소 96x96px 크기의 정사각형이어야 하며, PNG, WebP 또는 SVG와 같은 벡터 형식 사용을 권장한다. 제안 팀은 JPG/JPEG와 같은 손실 압축 형식 사용을 강력히 반대한다.
이벤트 발생 측면에서, 이더리움 라이브러리와 지갑 제공자 모두 window.dispatchEvent 함수를 사용하여 이벤트를 발행하고, window.addEventListener를 사용하여 이벤트를 감지한다. 이더리움 라이브러리가 초기화되면 "eip6963:requestProvider" 이벤트를 발행하며, 지갑 제공자는 "eip6963:announceProvider" 이벤트를 발행하면서 해당 제공자 인터페이스와 정보 세부사항을 함께 제공한다.
EIP-6963의 영향
낙관적인 예측에 따르면, EIP-6963의 수용과 구현에는 약 3~6개월 정도 소요될 수 있다. 이 발전은 올해 말 새로운 지갑 이야기를 가져올 가능성이 있으며, Metamask와 같은 선도적인 지갑 제공자의 독점을 깨뜨리고, 제공자들 사이에 더욱 경쟁적인 환경을 조성할 수 있다.
Coin98, Coinbase Wallet, Trust Wallet, Phantom, Taho, Rabby, Frame, XDEFI, Rainbow, Zerion, Spot, Frontier, MEW, Dawn Wallet, Blockwallet, Bitski, SafePal, BitKeep, MathWallet 등의 지갑들이 이 발전으로부터 혜택을 받을 것으로 기대된다.
장점과 단점:
EIP-6963은 고려해야 할 몇 가지 보안 문제를 제기한다.
장점:
-
단일 장애 지점 없음: 여러 지갑 제공자를 허용함으로써 단일 장애 지점을 제거한다. 보안 측면에서 유익한데, 한 지갑 제공자가 공격이나 기술적 결함을 겪더라도 사용자가 이용 가능한 대체 옵션을 가질 수 있기 때문이다.
-
특정 제공자에 대한 의존도 감소: 현재 이더리움 커뮤니티는 MetaMask라는 단일 제공자에 크게 의존하고 있다. 이는 잠재적인 위험 요소인데, 만약 MetaMask가 공격을 받으면 대부분의 이더리움 사용자가 영향을 받게 되기 때문이다. EIP-6963은 다수의 지갑을 지원함으로써 이러한 리스크를 분산시킨다.
-
사용자 제어력 강화: 여러 지갑 제공자 중 선택할 수 있는 능력은 사용자가 자신의 보안에 대해 더 큰 통제권을 갖도록 한다. 사용자는 자신의 개인 보안 선호도와 신뢰 수준에 부합하는 지갑 제공자를 선택할 수 있다.
단점:
-
공격 면 증가: EIP-6963을 구현하면 공격 면이 증가할 수 있다. 이는 악의적인 행위자가 공격할 수 있는 지갑 제공자의 수가 늘어나기 때문이다. 각 지갑 제공자는 이러한 위험을 최소화하기 위해 높은 수준의 보안 기준을 준수해야 한다.
-
SVG 이미지 악용 가능성: EIP-6963은 지갑 제공자의 아이콘으로 SVG 이미지 사용을 제안한다. 그러나 SVG 이미지는 JavaScript 코드를 포함할 수 있어 크로스사이트 스크립팅(XSS) 위험이 있을 수 있다. 비록 EIP에서 JavaScript 실행을 방지하기 위해 SVG 이미지는 <img> 태그로 렌더링되어야 한다고 명시하고 있지만, 이 권고 사항은 제3자 또는 각 구현의 감사인에 의해 검증되어야 한다.
-
window.ethereum 교체의 영향: EIP는 직접적으로 기존 애플리케이션을 파손하지 않지만, 사용자가 지갑을 선택한 후 window.ethereum을 교체할 것을 제안한다. 이 권고는 제3자 또는 감사인이 매번 구현 시 검증해야 한다.
결론
EIP-6963은 다수의 지갑 제공자 간 상호 운용성을 강화하고, 새로운 제공자의 진입 장벽을 낮추며, 이더리움 네트워크 상의 사용자 경험을 개선하는 것을 목표로 한다. 동시에 보안에 미치는 영향은 복잡하다.
사용자, 지갑 제공자 및 이더리움 라이브러리 개발자들은 이더리움 생태계의 보안이 유지되도록 하기 위해 모범 사례를 준수해야 한다.
이 제안을 구현함으로써 이더리움 생태계는 지갑 제공자와 사용자 모두에게 더 친숙하고 경쟁적인 환경을 향해 나아갈 수 있다.
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News














