WalletConnect는 dApp과 지갑 사이에서 암호화된 메시지를 전달해, dApp이 당신의 개인키에 전혀 접근하지 않고도 서명을 요청할 수 있게 해주는 메시징 프로토콜입니다. QR 코드를 스캔하면 페어링이 만들어지고, dApp의 세션 제안을 승인하면 그 dApp이 요청할 수 있는 체인과 메서드가 명시된 세션이 생성됩니다. 이는 요청할 권한일 뿐 실행할 권한이 아니며, 자산을 움직이는 모든 동작에는 여전히 당신의 서명이 필요합니다. 연결을 끊으면 세션은 로컬에서 종료되지만 온체인 토큰 승인까지 취소되지는 않습니다. WATS에서는 세션 승인이 WATS 모바일 앱에서 이루어집니다.
WalletConnect의 실체(그리고 아닌 것)
WalletConnect는 메시징 프로토콜입니다. 그 유일한 역할은 dApp과 지갑 사이에서 메시지를 전달하는 것이며, 덕분에 dApp은 당신의 개인키에 전혀 접근하지 않고도 지갑과 통신할 수 있습니다. 어떤 사이트가 QR 코드를 띄우며 지갑 연결이라고 안내한다면, 그 코드는 대개 WalletConnect 페어링 초대입니다.
WalletConnect는 지갑도, 수탁 기관도, 블록체인도 아닙니다. 자금을 보관하지 않으며 아무것도 서명하지 않습니다. 페이지에 프로바이더를 직접 주입하는 브라우저 확장 프로그램과도 다릅니다. 기기 간 연결 사례로 가장 익숙하며 — 2026년 현재까지도 모바일 지갑이 데스크톱 dApp과 통신하는 가장 일반적인 방식입니다 — 동시에 같은 기기 안에서의 표준 경로이기도 해서, 모바일 브라우저의 dApp을 같은 휴대폰의 지갑 앱으로 딥링크시켜 줍니다.
QR 코드를 스캔하면 실제로 무슨 일이 일어나나
QR 코드에는 페어링 URI가 담겨 있습니다. 토픽 식별자, 릴레이 프로토콜 식별자, 그리고 대칭키입니다. 이 키는 지갑이 별도로 유도하는 것이 아니라 그대로 전달되며, 그래서 페어링 URI가 유출되거나 스크린샷으로 새어 나가면 민감한 문제가 됩니다. 이후 양측은 페어링 토픽 위에서 암호화된 메시지를 주고받습니다.
페어링은 핸드셰이크일 뿐입니다. 모든 서명 요청을 실어 나르는 세션은 별도의 토픽에서, dApp과 지갑이 X25519 교환과 HKDF 확장을 통해 직접 협상한 자체 키 아래에서 동작합니다. 페어링 키는 페어링 수준의 메시지만 보호할 뿐, 당신의 트랜잭션 요청을 보호하는 키가 아닙니다.
사람들이 가장 많이 오해하는 부분이 릴레이입니다. 릴레이는 암호문과 메타데이터만 중계하며, 페이로드를 읽거나 변조하거나 당신 대신 서명할 수 없습니다. 릴레이가 중단되면 세션은 작동을 멈추지만 자금은 그대로입니다. 키가 기기를 떠난 적이 없기 때문입니다. 그다음 dApp이 세션 제안을 보내면 지갑은 이를 승인 화면으로 표시하고, 그 이후의 모든 것은 당신이 무엇을 승인했는지에 달려 있습니다. 클릭 단위의 절차는 지갑을 dApp에 연결하는 방법 가이드에서 다룹니다.
세션, 네임스페이스, 권한: dApp이 요청할 수 있는 것
세션 제안은 자유 서술이 아니라 구조화된 형식입니다. 제안에는 네임스페이스가 나열됩니다. dApp이 원하는 체인, 메서드, 이벤트, 즉 이더리움 메인넷이나 L2 또는 솔라나, 트랜잭션 서명과 타입드 데이터 서명, 그리고 chain-changed·accounts-changed 같은 이벤트입니다.
방향을 잘 봐야 합니다. dApp은 체인과 메서드와 이벤트를 요청하지만, 계정 자체는 당신의 지갑에서 선택되어 승인과 함께 반환됩니다. v2의 구분도 중요합니다. required 네임스페이스는 전부 아니면 전무여서, 전부 충족되거나 아니면 제안이 통째로 거부됩니다. 다만 2026년 현재 이는 레거시 경로로 지원 중단 예정이며, 지갑이 부분적으로 승인할 수 있는 optional 네임스페이스 사용이 권장됩니다. 좋은 지갑은 두 가지를 모두 보여주어 무엇이 협상 가능한지 알 수 있게 합니다.
세션을 승인하면 두 가지 일이 일어납니다. 승인된 체인에 대한 공개 주소가 공유되고, 승인된 메서드에 대해 dApp이 요청을 보낼 권한을 얻습니다. 요청할 권한은 실행할 권한이 아닙니다.
서명 요청: 연결은 승인이 아니다
세션이 만들어진 뒤에는 의미 있는 모든 동작이 개별 요청으로 도착하고, 당신이 명시적으로 승인해야 합니다. 스왑은 트랜잭션 요청이 되고, 로그인은 메시지 서명 요청이 되며, 마켓플레이스 등록은 타입드 데이터 서명이 됩니다.
바로 이것이 핵심 보안 경계입니다. 연결된 dApp은 당신의 자산을 조용히 옮길 수 없습니다. 그러려면 서명이 필요하고, 서명에는 당신의 기기와 당신의 승인이 필요합니다. 반면 dApp이 할 수 있는 일은, 화면상으로는 결과가 뚜렷하게 드러나지 않는 오해를 부르는 요청을 내미는 것입니다.
특히 두 가지 유형은 더 의심해야 합니다. 하나는 토큰 승인(approval)으로, 세션이 끝난 뒤에도 컨트랙트에 토큰 사용 권한을 지속적으로 부여합니다. 다른 하나는 가스 비용이 없는 오프체인 서명으로, 컨트랙트가 나중에 실행할 주문이나 퍼밋을 승인해 버릴 수 있습니다. 둘 다 겉보기에는 대수롭지 않아 보입니다.
WalletConnect가 어긋나는 지점: 방치된 세션, 가짜 QR 코드, 블라인드 서명
방치된 세션. 세션에는 만료 기한이 있지만, 사람들은 한 번 쓰고 만 사이트에 대한 활성 연결을 수십 개씩 쌓아둡니다. 각 연결은 언제든 지갑으로 요청을 밀어 넣을 수 있는 통로이며, 잘못 읽고 승인할 여지를 그만큼 넓힙니다.
가짜이거나 바꿔치기된 QR 코드. 페이지를 장악한 공격자는 — 유사 도메인이든 탈취된 프런트엔드든 — 진짜 대신 자신의 페어링 URI를 보여줄 수 있습니다. 연결은 정상적으로 성공하지만, 상대는 공격자입니다. 이것이 지갑 드레이너의 작동 방식 분석에서 짚은 함정입니다. 연결은 성공하고, 피해는 뒤이어 오는 서명 요청에서 발생합니다.
블라인드 서명. 지갑이 요청을 해석하지 못하고 원시 데이터를 그대로 보여준다면, 당신은 그 사이트가 자기 트랜잭션에 대해 설명하는 말을 그대로 믿는 셈입니다. 이는 형식적인 절차가 아니라 멈춰야 할 신호로 받아들이세요.
활성 세션을 확인하고 해제하는 방법(그리고 승인이 별개인 이유)
WalletConnect를 지원하는 지갑은 모두 활성 세션 목록을 가지고 있으며, 보통 연결 또는 연결된 앱 메뉴에 있습니다. 이를 자산 목록처럼 읽으세요. 각 항목에는 dApp 이름과, 그 dApp이 볼 수 있는 체인과 계정이 표시됩니다.
연결 해제에는 비용이 들지 않습니다. 지갑이 릴레이를 통해 세션 삭제 메시지를 발행하고 자체 상태에서 세션을 제거할 뿐, 트랜잭션도 가스도 온체인 기록도 없습니다. 다만 이 정리는 최선 노력 방식으로 보는 편이 좋습니다. 상대가 오프라인이거나 릴레이에 닿을 수 없다면, dApp은 메시지가 전달되거나 세션이 만료될 때까지 세션이 살아 있다고 간주할 수 있습니다.
사람들이 흔히 걸려 넘어지는 지점은 이것입니다. 세션을 끊는다고 토큰 승인이 취소되지는 않습니다. 세션 권한은 지갑의 로컬 상태에 있지만, 토큰 승인은 당신이 서명한 트랜잭션으로 부여되어 온체인에 존재합니다. 세션을 종료하면 새로운 요청은 멈추지만 허용 한도(allowance)는 그대로 남으며, 이를 취소하는 것은 별도의 온체인 작업입니다. 자세한 절차는 토큰 승인 취소하기 안내에서 다룹니다. 둘 다 하세요.
WATS는 dApp 연결을 어떻게 처리하나
WATS에서 WalletConnect 세션은 WATS 모바일 앱이 처리합니다. 앱이 QR 코드를 스캔하고, 각 세션 제안과 서명 요청을 휴대폰에서 승인할 수 있도록 표시합니다. 수탁 방식은 WATS Hot Wallet을 포함한 모든 WATS 제품에서 동일합니다. 키는 당신이 보유하며 WATS는 어떤 키도 보유하지 않으므로, 연결된 어떤 dApp도 당신의 서명 없이는 자금을 옮길 수 없습니다.
다른 점은 수수료 계층입니다. 전송, 스왑, 스테이킹 등 모든 동작의 수수료가 체인의 네이티브 가스 대신 단일 토큰 ATS로 청구됩니다. EVM에서는 ERC-4337 페이마스터를 통해, 솔라나와 TON에서는 이에 상응하는 수수료 대납자/릴레이어를 통해 처리됩니다. ATS는 LayerZero OFT이므로 하나의 잔액으로 세 생태계를 모두 감당합니다. 수취된 ATS는 100,000,000에서 30,000,000 하한을 향해 소각됩니다. WATS는 ERC-4337 + OFT 단일 토큰 수수료를 네이티브 가스 대신 청구하는 방식과 이 소각을 결합한 최초이자 유일한 지갑입니다.
자주 묻는 질문
WalletConnect로 지갑을 연결하면 dApp이 내 자금에 접근할 수 있나요?
아니요. 세션은 dApp이 승인된 체인의 공개 주소를 보고 당신에게 요청을 보낼 수 있게 할 뿐입니다. 자산을 움직이는 모든 동작에는 당신이 자기 기기에서 승인하는 서명이 필요하므로, 연결만으로는 아무것도 사용할 수 없습니다. WATS에서는 이러한 세션 제안과 서명 요청이 WATS 모바일 앱에 승인 화면으로 표시되며, WATS는 어떤 키도 보유하지 않으므로 연결된 어떤 dApp도 당신의 서명 없이는 자금을 옮길 수 없습니다.
WalletConnect 세션을 끊으면 토큰 승인도 취소되나요?
아니요, 둘은 별개입니다. 세션은 지갑의 로컬 상태에 존재하며, 지갑에서 연결을 끊는 순간 가스 없이 종료됩니다. 토큰 승인은 온체인의 토큰 컨트랙트에 존재하며, 취소 트랜잭션을 보내기 전까지 계속 유효합니다.
WalletConnect 릴레이 서버가 내 트랜잭션을 읽거나 키를 훔칠 수 있나요?
아니요. WalletConnect v2에서 트랜잭션과 서명 요청을 실어 나르는 세션은 dApp과 지갑이 X25519 교환으로 서로 직접 협상한 키로 암호화되며, 그 키는 릴레이에 절대 노출되지 않습니다. 페어링 URI에 담긴 대칭키는 페어링 수준의 메시지만 보호합니다. 릴레이는 암호문과 메타데이터를 중계할 뿐이며, 개인키는 이 흐름의 어느 단계에서도 지갑을 떠나지 않습니다.

