왜 당신의 주소는 남의 것과 달라 보이나: 주소 형식과 전송이 실패하는 이유

·6분 읽기·작성자: SSP Editorial Team
SSP Academy 커버: 암호화폐 주소 형식과 실패하는 전송

왜 당신의 주소는 남의 것과 달라 보이나: 주소 형식과 전송이 실패하는 이유

자기 보관을 하다 보면 누구나 머지않아 똑같이 어리둥절한 순간을 만납니다. 자기 자신에게 비트코인을 조금 보내려고 받는 주소를 복사했는데, 그것이 지금까지 봐온 주소들과 닮지 않았습니다. 아니면 거래소가 그 주소를 거부합니다. 아니면 비트코인 주소와 똑같이 생긴 무언가로 비트코인 캐시를 보내고, 대체 무슨 일이 벌어진 건지 알아내느라 불쾌한 한 시간을 보냅니다.

이 가운데 아무것도 자의적이지 않습니다. 주소 형식은 코인이 어떻게 쓰일 수 있는지에 대한 실제 정보를 담고 있고, 그것을 읽을 줄 알게 되면 혼란은 거의 다 증발합니다.

주소는 지출 조건의 묶음이다

쓸모 있는 사고 모형은 "주소는 계좌번호다"가 아닙니다. 이것입니다. 주소는 이 코인이 움직이려면 무엇이 참이어야 하는지를 압축해 적은 설명이다.

1로 시작하는 주소로 보내면 조건은 특정한 공개키 하나가 서명을 만들어내야 한다입니다. 더 긴 쪽의 bc1q… 주소로 보내면 조건은 특정한 두 키가 모두 서명해야 한다일 수 있습니다. 같은 체인, 같은 돈, 완전히 다른 규칙 — 그리고 주소 형식이야말로 어떤 규칙이 적용되는지를 체인이 당신에게 알려주는 방식입니다.

형식이 늘어난 이유가 여기 있습니다. 비트코인이 코인을 잠그는 새로운 방법을 얻을 때마다, 그것이 어디에 잠겨 있는지를 적는 새로운 방법도 필요했습니다.

비트코인에서 만나게 될 형식들

레거시 — 1… 원조. 공개키 해시로의 지불: 키 하나, 서명 하나. 어디서나 지원되고, 쓰는 비용이 가장 비쌉니다. 서명 데이터가 블록 크기에 통째로 계산되기 때문입니다.

스크립트 — 3… 스크립트 해시로의 지불. 코인이 키가 아니라 스크립트에 잠깁니다 — 멀티시그 정족수든, 시간 잠금이든, 무엇이든. 주소는 그 조건들의 해시이므로 바깥에서는 조건이 무엇인지 알 수 없습니다. 초기 세그윗도 호환성을 위해 이 길로 들여왔습니다.

네이티브 세그윗 — bc1q… Bech32. 서명 데이터가 별도의 증인 구조로 옮겨 가면서 지출이 싸졌고 거래 가변성 문제도 해결됐습니다. Bech32는 소문자를 쓰고, base58보다 강한 검사합을 가지며, 오타가 조용히 통과되는 대신 잡히도록 설계되었습니다.

네이티브 세그윗은 길이가 둘이고, 그 차이가 중요합니다.

  • 모두 42자 — P2WPKH. 키 하나, 서명 하나.
  • 모두 62자P2WSH. 스크립트 — 예를 들어 2-of-2 멀티시그.

탭루트 — bc1p… 가장 새로운 것. 프라이버시가 낫고 복잡한 지출이 싸지는 대신, 일부 오래된 서비스가 아직 받아주지 않습니다.

SSP 주소가 유별나 보이는 이유

사람들이 놀라는 지점이 여기이고, 만족스러운 설명이 있습니다.

SSP는 2-of-2 멀티시그 지갑입니다. 당신의 코인은 키 하나에 잠겨 있지 않습니다 — 브라우저 확장 프로그램과 휴대폰 양쪽의 서명을 요구하는 스크립트에 잠겨 있습니다. 그래서 SSP의 비트코인 주소는 P2WPKH가 아니라 P2WSH이고, bc1q의 긴 형태입니다. 대부분이 익숙한 42자가 아니라 62자죠.

주소를 들여다보며 너무 길어 보인다고 생각해 왔다면, 원래 그래야 하는 것입니다. 그 여분의 길이는 공개키 하나의 해시가 아니라 2-of-2 스크립트의 해시입니다. 조건이 더 풍부하니 주소가 더 긴 것입니다.

이 때문에 짧은 형태만 패턴으로 알아보는 오래된 서비스가 이따금 걸려 넘어집니다. 그쪽의 한계이고 — P2WSH는 십 년이 됐습니다 — 그래도 오류가 왜 나는지 알아두면 좋습니다. 뜨는 메시지는 대개 도움이 되지 않는 "잘못된 주소"이니까요.

체인마다 다른 선택을 했다

SSP는 여러 UTXO 체인을 지원하고, 저마다 멀티시그 주소를 자기 방식으로 적습니다.

체인SSP의 스크립트 유형주소 생김새
비트코인P2WSHbc1q… (62자)
라이트코인P2WSHltc1q…
비트코인 캐시P2SHbitcoincash:p…
도지코인P2SH9 또는 A로 시작
ZcashP2SHt3…
RavencoinP2SHr로 시작
FluxP2SHt3…

라이트코인은 비트코인의 설계를 바짝 따르고 사람이 읽는 접두사만 바꿨습니다. 그래서 주소가 눈에 익습니다. Zcash와 Flux는 2바이트 버전을 써서 스크립트 주소에 특유의 t3 접두사가 붙습니다. 도지코인은 자기 버전 바이트를 골랐기에 스크립트 주소가 9A로 시작합니다 — 익숙한 단일 키 D… 주소와는 전혀 딴판이죠.

중요한 것은 한 체인의 주소 접두사가 브랜드가 아니라 합의 층위의 상수라는 점입니다. 당신이 무엇이든 보내기 전에 지갑이 주소를 거부할 수 있는 것도 그 덕분입니다.

비트코인 캐시의 함정, 그리고 CashAddr이 존재하는 이유

실제로 돈을 잃게 만들 수 있어서 알아둘 값어치가 있는 역사가 하나 있습니다.

2017년 비트코인 캐시가 비트코인에서 갈라져 나올 때, 비트코인의 주소 형식을 그대로 물려받았습니다 — 같은 버전 바이트, 키 주소에는 0x00, 스크립트 주소에는 0x05. 레거시 BCH 주소와 레거시 BTC 주소는 구별할 수 없었습니다. 비슷한 정도가 아니라 구조상 동일했습니다.

어떤 소프트웨어도 둘을 갈라내지 못했으므로 사람들은 끊임없이 BTC를 BCH 주소로, BCH를 BTC 주소로 보냈습니다. 코인이 파괴된 것은 아니었습니다 — 같은 개인키가 양쪽을 통제하니까요 — 하지만 되찾으려면 다른 체인의 지갑으로 키를 가져와야 했고, 많은 사용자가 그것을 안전하게 해내지 못했습니다.

CashAddr이 그 해법이었습니다. bitcoincash: 접두사가 붙은 bech32 스타일 형식으로, 비트코인의 것과 일부러 호환되지 않게 만들어 체인을 넘나드는 전송이 조용히 성공하는 대신 요란하게 실패하도록 했습니다. SSP가 비트코인 캐시 주소를 접두사까지 다 붙여 보여주는 이유가 그것입니다. 장황해 보입니다. 그 장황함이 바로 기능입니다.

전송이 실패하는 이유와 각 실패의 의미

"잘못된 주소." 보통은 검사합 실패입니다 — 오타, 잘려 붙여진 문자열, 대소문자가 뒤섞인 bech32. Bech32는 대소문자를 가리지 않지만 섞여서는 안 됩니다. 일부 복사·붙여넣기 경로가 이걸 망가뜨립니다. 가끔은 보내는 쪽 서비스가 당신의 형식을 지원하지 않는다는 뜻이기도 합니다.

"지원하지 않는 주소 유형." 서비스가 주소를 알아보긴 하는데 그리로 보내지 않겠다는 뜻입니다 — 대개 탭루트를 끝내 추가하지 않았거나 짧은 형태의 세그윗만 다루는 오래된 거래소입니다. 당신이 고칠 문제가 아닙니다. 다른 출금 경로나 중간 주소를 쓰십시오.

아예 다른 체인. 여기서는 bech32의 사람이 읽는 접두사가 당신을 지켜줍니다. bc1ltc1은 다르고, 지갑이 이를 확인합니다. base58 체인은 더 위험합니다. 유효한 도지코인 주소가 다른 몇몇 체인에서도 구조상 유효하기 때문입니다.

보내지긴 했는데 아무것도 도착하지 않았다. 엉뚱한 체인의 탐색기를 보고 있거나, 자금이 당신 것이 아닌 유효한 주소로 갔거나 둘 중 하나입니다. 회수라는 것은 없습니다.

실전 규칙

복사하십시오. 절대 손으로 치지 마십시오. 모든 형식에 검사합이 있는 이유는 바로 사람이 오타를 내기 때문입니다. 하지 않아도 될 일을 그것에 시키지 마십시오.

무엇보다 먼저 접두사를 체인과 맞춰보십시오. 비트코인은 bc1, 1, 3. 라이트코인은 ltc1, L, M. 비트코인 캐시는 bitcoincash:. 이 한 번의 눈길이 값비싼 실수를 잡아냅니다.

멀티시그 주소는 더 길 것이라 예상하십시오. SSP든 스크립트 기반 지갑이든, 긴 형태가 맞습니다. 길이는 오류의 증상이 아닙니다.

목적지가 처음이라면 작은 금액을 먼저 시험 삼아 보내십시오. 특히 거래소로 보낼 때, 특히 큰 금액일 때. 수수료는 다른 결말에 비하면 아무것도 아닙니다.

지갑이 새 받는 주소를 내어준다면 그것을 쓰십시오. 주소를 재사용하면 체인을 지켜보는 누구에게든 당신의 거래들이 서로 엮입니다. 이를 피하는 데는 아무 비용도 들지 않습니다.

주소 형식은 각각이 코인이 어떻게 움직일 수 있는지에 대한 하나의 진술이라는 것을 깨닫기 전까지는 임의적인 잡학처럼 보입니다. 그렇게 읽기 시작하면, 내 지갑으로 받는 일은 믿음의 도약이기를 그치고 실제로 확인할 수 있는 일이 됩니다 — 그것이 바로 자기 키를 자기가 쥐는 일의 온전한 의미입니다.

이 글 공유하기

관련 글