WATS Wallet logoWATS Wallet
기술8분 분량

지갑이 체인마다 다른 주소를 보여 주는 이유: EVM, Solana, TON 주소 형식

시드 하나, 전혀 닮지 않은 주소 셋 — EVM의 0x, Solana의 base58, TON의 EQ/UQ. WATS는 이 셋 모두를 하나의 비수탁형 복구 문구에서 파생합니다. 형식이 다른 이유, 체크섬이 실제로 잡아내는 것, 그리고 체인을 잘못 고른 전송과 닮은꼴 주소 실수를 막아 주는 습관을 정리했습니다.

지갑이 체인마다 다른 주소를 보여 주는 것은, 같은 시드에서 주소를 파생하고 인코딩하는 방식이 생태계마다 다르기 때문입니다. EVM 체인은 secp256k1 공개 키를 해시해 0x 뒤에 16진수 40자를 붙이고, Solana는 ed25519 공개 키를 그대로 32~44자의 base58로 인코딩하며, TON은 계정 해시를 48자짜리 EQ/UQ 문자열에 담습니다. 이 형식들 중 어느 것도 자신이 속한 네트워크를 담고 있지 않습니다. 동일한 0x 주소가 Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain 모두에서 당신의 주소인 이유도, 체인을 잘못 고른 전송이 그토록 흔한 이유도 바로 그래서입니다. 내장된 검사 장치는 고르지 않습니다. EIP-55의 대소문자 혼용은 잘못 입력된 0x 주소를 잡아내고 TON의 CRC16은 잘못 입력된 EQ/UQ 주소를 잡아내지만, Solana의 base58 알파벳은 닮은꼴 글자를 애초에 빼놓았을 뿐 검증해 주지는 않습니다. WATS는 Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain, Solana, TON을 아우르며 — 키는 당신이 보유하고 WATS는 결코 키를 보유하지 않습니다 — Bitcoin은 지원하지 않으므로 bc1 주소는 이 그림에 등장하지 않습니다.

시드 하나, 전혀 닮지 않은 주소 셋

지갑이 체인마다 다른 주소를 보여 주는 것은, 각 체인이 같은 시드로부터 주소를 만드는 방식이 서로 다르기 때문입니다. EVM 체인은 secp256k1 공개 키를 해시해 0x 16진수 주소로 만들고, Solana는 ed25519 공개 키를 그대로 base58로 인코딩하며, TON은 계정 해시를 체크섬과 바운스 플래그가 붙은 base64 형식으로 감쌉니다. 곡선도 파생 경로도 다르니, 주소가 같아질 수는 없습니다.

이것은 버그가 아니며, 어떤 지갑도 틀린 주소를 보여 주고 있는 것이 아닙니다. 하나의 신원이 체인마다 다른 철자로 적혀 있을 뿐이죠. 그리고 어떤 철자가 어디에 속하는지 아는 것은 중요합니다. 맞는 주소로 보내되 네트워크를 잘못 고르는 것이야말로 사람들이 암호화폐를 잃는 가장 흔한 방식 중 하나이기 때문입니다.

왜 하나의 시드 문구가 체인마다 다른 주소를 내놓을까?

이 글에 나오는 모든 주소는 하나의 시드 문구에서 나올 수 있습니다. 시드는 마스터 키가 되고, 멀티체인 지갑은 거기서 파생 경로를 따라 체인마다 별도의 키 쌍을 파생합니다. 파생 경로란 BIP-44가 정의한 표준화된 길로, SLIP-44에 생태계별로 등록된 코인 타입을 씁니다 — Ethereum은 60, Solana는 501, TON은 607입니다. (특히 TON에서는 단일 체인 지갑이 그 대신 자체 니모닉 방식을 쓰기도 합니다.) 그다음 두 가지가 결과를 갈라놓습니다. EVM 체인은 secp256k1 곡선으로 서명하고, Solana와 TON은 ed25519로 서명합니다 — 완전히 다른 수학이라, 같은 시드에서 자라났더라도 키 쌍끼리는 아무 관계가 없습니다. 게다가 곡선을 공유하는 체인들끼리도 그 위에서 서로 다른 경로와 서로 다른 인코딩을 씁니다. 하나의 시드가 그 키 나무 전체로 어떻게 뻗어 나가는지는 HD 지갑이 무엇인지에서 다룹니다.

생태계일반적인 형태서명 곡선내장 검사
EVM (Ethereum, Polygon, Arbitrum…)0x + 16진수 40자secp256k1EIP-55 대소문자 체크섬
Solanabase58 32~44자ed25519없음 — 안전한 알파벳뿐
TON (사용자 친화 형식)base64 48자, EQ/UQ 접두사ed25519CRC16 체크섬 + 바운스 플래그

0x 주소란 무엇이고, EIP-55 체크섬은 무슨 일을 할까?

Ethereum, Polygon, Arbitrum, BNB Chain을 비롯한 모든 EVM 체인에서 당신의 주소는 공개 키를 Keccak-256으로 해시한 값의 마지막 20바이트이며, 0x 뒤에 16진수 40자로 적힙니다. EIP-55는 주소 자체를 바꾸지 않으면서 체크섬을 더합니다. 영문자의 대문자·소문자 패턴이 주소 자체에서 파생되므로, 보내기 전에 지갑이 잘못 입력된 글자를 짚어낼 수 있는 것이죠. 전부 소문자인 주소도 여전히 유효합니다 — 다만 검증에 쓸 체크섬이 없을 뿐입니다.

주소는 오직 당신의 키에서만 나오므로, 같은 계정은 모든 EVM 체인에서 같은 0x 주소를 갖습니다. 이는 편리하면서 — 어디서나 공유할 주소 하나 — 동시에 위험합니다. 주소가 네트워크를 담고 있지 않기 때문이죠. 잘못된 EVM 체인으로 보낸 토큰은 다른 네트워크의 같은 주소에 도착합니다. 그 키를 당신이 통제한다면 대개 네트워크를 바꿔 되찾을 수 있지만, 그 주소가 거래소나 컨트랙트의 것이라면 영영 사라질 수도 있습니다. WATS에서는 이것이 예외적인 경우가 아니라 일상입니다. 지원하는 여덟 체인 중 여섯 — Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain — 이 그 하나의 0x 주소를 공유하기 때문입니다.

Solana 주소는 어떻게 작동할까?

Solana 주소는 공개 키 그 자체입니다. ed25519 키 32바이트를 base58로 인코딩한 것으로, 이 알파벳은 헷갈리기 쉬운 0, O, I, l을 빼버렸다는 이유로 선택되었습니다. 결과는 32~44자이며 대소문자를 구분합니다. EIP-55 같은 체크섬은 없습니다. 안전한 알파벳은 오타를 줄여 주지만 잡아내지는 못하며, 이는 직접 입력하지 말고 복사해야 할 이유가 하나 더 늘어난다는 뜻입니다. 알아 둘 만한 세부 사항이 하나 있습니다. SPL 토큰은 당신의 주소에 곧바로 놓이지 않고, 토큰마다 그 주소에서 파생된 연관 토큰 계정(associated token account)에 자리 잡습니다. 지갑이 뒤에서 알아서 관리해 주므로, 당신이 공유하는 주소는 여전히 하나입니다.

TON의 bounceable 주소와 non-bounceable 주소란?

TON은 한 계정에 두 가지 철자를 줍니다. raw 형식은 워크체인 번호, 콜론, 그리고 64자 16진수 해시입니다 — 정확하지만 사람에게 친절하지 않죠. 사용자 친화 형식은 같은 데이터를 플래그 비트와 CRC16 체크섬을 붙여 48자의 base64에 담으므로 오타가 잡힙니다. 중요한 플래그는 bounceable입니다. 보통 EQ로 시작하는 주소는 목적지가 처리하지 못할 경우 코인을 돌려보내라고 네트워크에 알리며, 이는 컨트랙트에 어울립니다. UQ로 시작하는 non-bounceable 주소는 어떤 경우든 그대로 전달하며, 이는 개인 지갑에 어울립니다 — 요즘 지갑들은 보통 개인 지갑 주소를 UQ 형태로 표시합니다. 두 철자 모두 같은 계정을 가리키므로, 다른 곳에서 접두사가 다른 것을 보더라도 목적지가 다르다는 뜻은 아닙니다.

거래소는 왜 메모나 데스티네이션 태그를 요구할까?

일부 체인에서는 거래소가 모든 고객 입금을 하나의 공용 주소에 모아 두고 — TON, XRP, Stellar에서 흔합니다 — 각 입금을 올바른 계정으로 보내기 위해 메모(또는 데스티네이션 태그)를 사용합니다. 메모는 장식이 아닙니다. 빠뜨리면 코인은 거래소의 공용 지갑에 도착하되 당신 계정에는 반영되지 않습니다. 대개는 고객 지원 티켓으로 복구할 수 있지만, 느리고 보장도 없습니다. 규칙은 간단합니다 — 입금 페이지에 메모가 표시된다면 그것을 주소의 일부로 취급하세요. 본인의 자기수탁 지갑으로 보낼 때는 메모가 전혀 필요 없습니다.

잘못된 체인으로 보내거나 닮은꼴 주소에 보내는 일을 어떻게 피할까?

세 가지 습관이 위험의 대부분을 덮어 줍니다. 첫째, 모양이 아니라 체인을 맞추세요. 0x 주소는 보내는 쪽이 어떤 네트워크를 골랐는지 전혀 알려 주지 않으므로, 무엇이든 움직이기 전에 양쪽 끝에서 네트워크를 명시적으로 확인해야 합니다. 둘째, 테스트 송금입니다. 새 주소나 새 경로로 처음 보낼 때는 소액을 먼저 보내 도착을 확인한 뒤 나머지를 보내세요 — 값비싼 짐작에 대비하는 저렴한 보험입니다. 셋째, 주소 포이즈닝을 가볍게 보지 마세요. 공격자는 당신이 실제로 쓰는 주소의 앞뒤 글자가 일치하는 닮은꼴 주소를 만든 뒤 더스트를 보내 그 가짜가 당신의 거래 기록에 뜨게 합니다 — 당신이 복사하기를 기다리는 것이죠. 절대 기록에서 주소를 복사하지 말고, 저장된 연락처를 쓰며, 양끝만이 아니라 중간 글자를 확인하세요. 좋은 멀티체인 지갑은 모든 주소 옆에 네트워크 이름을 붙여 주며, Ethereum, Solana, TON을 한 앱에 두면서도 헷갈리지 않게 하는 것이야말로 그런 설계가 존재하는 이유입니다.

WATS는 여기서 어떤 자리에 있나

WATS는 Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain, Solana, TON에 걸쳐 하나의 지갑을 운영합니다. 그래서 위의 세 형식은 당신이 실제로 나란히 갖게 되는 바로 그 주소들입니다 — 여섯 EVM 체인을 위한 0x 주소 하나, Solana의 base58 주소 하나, TON의 EQ/UQ 주소 하나가 모두 단 하나의 복구 문구에서 나옵니다. 네 가지 제품 — Chrome 확장 프로그램, 모바일 앱, Hot Wallet, NFC Metal Card — 전부에서 완전한 비수탁형을 유지합니다. 키는 당신이 보유하고, WATS는 결코 키를 보유하지 않습니다. 주소를 다루는 글이니 그 카드에 대해 한 가지는 분명히 해 둘 만합니다 — 카드는 개인 키를 전혀 저장하지 않습니다. 탭으로 인증할 뿐이며 키는 WATS 앱 안에 남고, 카드마다 고유한 ID가 정확히 한 대의 기기에만 페어링됩니다.

Bitcoin은 솔직히 인정할 공백입니다. WATS는 이를 네이티브로 지원하지 않으므로 bc1, 1, 3으로 시작하는 주소는 이 목록에 없습니다. 지원하는 여덟 체인 안에서는 각 체인의 네이티브 가스 토큰을 따로 들고 있는 대신 네트워크 수수료를 하나의 토큰 ATS로 냅니다 — EVM 체인에서는 ERC-4337 계정 추상화로, 그리고 ATS 자체가 LayerZero OFT이므로 잔액 하나가 옴니체인으로 작동합니다. 이것은 할인이 아닙니다. 어떤 토큰이 수수료를 내는지를 바꿀 뿐이죠. ATS 공급량은 100M에서 30M을 향해 소각되며 줄어듭니다.

결론

체인마다 주소가 다른 것은 지갑의 버그가 아니라 체인이 만들어진 방식의 속성입니다. 시드 하나, 서로 다른 곡선, 서로 다른 파생 경로, 서로 다른 인코딩이죠. 형식을 읽어 보는 것은 좋지만, 그것이 네트워크를 알려 주리라고는 절대 믿지 마세요 — 양쪽 끝에서 체인을 확인하고, 새로운 경로마다 소액 테스트 송금을 쓰고, 거래소 메모는 주소의 일부로 취급하며, 거래 기록이 아니라 저장된 연락처에서 복사하세요. 세 가지 형식을 앱 세 개가 아니라 한곳에 두고 싶다면, 구체적인 다음 단계는 다운로드 페이지에서 WATS를 설치하는 것입니다. Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain, Solana, TON 계정 뒤에 비수탁형 복구 문구 하나가 있고, 수수료는 체인마다 따로 챙겨야 하는 네이티브 가스 토큰이 아니라 ATS로 지불됩니다.

자주 묻는 질문

Ethereum, Polygon, Arbitrum에서 제 주소는 같은가요?

네 — 일반적인 지갑 계정이라면 같은 키가 모든 EVM 체인에서 같은 0x 주소를 만들어 내므로, WATS에서 하나의 계정은 Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain에서 동일한 주소를 보여 줍니다. 다만 주소는 네트워크를 담고 있지 않으므로, 보낼 때 올바른 체인을 직접 골라야 합니다. 거래소 입금 주소는 예외입니다 — 거래소는 특정한 한 네트워크만 인정할 수 있으니, 언제나 그 안내를 정확히 따르세요.

WATS는 어떤 주소 형식을 보여 주며, Bitcoin 주소도 있나요?

WATS는 모든 주소를 하나의 복구 문구에서 파생합니다. Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain이 공유하는 0x 주소 하나, Solana의 32~44자 base58 주소 하나, 그리고 TON의 48자 EQ/UQ 주소 하나입니다. WATS는 완전한 비수탁형이므로 그 키들은 당신의 것이고 WATS는 결코 키를 보유하지 않습니다. Bitcoin 주소는 없습니다. WATS가 Bitcoin을 네이티브로 지원하지 않기 때문입니다 — bc1, 1, 3으로 시작하는 주소는 WATS가 다루지 않는 생태계의 것입니다.

메모 없이 거래소로 보내면 어떻게 되나요?

코인은 거래소의 공용 입금 지갑에 도착하지만 당신 계정에는 반영되지 않습니다. 당신이 누구인지 알려 주는 것이 바로 메모이기 때문입니다. 보통은 잃어버리지 않습니다 — 대부분의 거래소는 고객 지원 티켓을 통해 수동으로 반영해 줄 수 있습니다 — 하지만 그 절차는 느리고 보장되지도 않습니다. 입금 페이지에 메모나 데스티네이션 태그가 표시된다면, 선택 입력란이 아니라 주소의 필수 구성 요소로 취급하세요. WATS 같은 자기수탁 지갑으로 보낼 때는 메모가 필요 없습니다. 그 주소는 공용이 아니라 오직 당신만의 것이기 때문입니다.

주소 포이즈닝이란 무엇이고 어떻게 피하나요?

주소 포이즈닝은 누군가가 당신이 실제로 쓰는 주소의 앞뒤 글자가 일치하는 닮은꼴 주소를 만든 뒤, 더스트 전송을 보내 그 가짜가 당신의 기록에 나타나게 하는 공격입니다. 나중에 그 기록에서 주소를 복사하면 자금은 공격자에게 갑니다. 피하려면 거래 기록에서 절대 복사하지 말고, 검증된 연락처를 저장해 두며, 서명하기 전에 양끝만이 아니라 가운데 글자까지 확인하세요.