Bitcoin Cash 주소 변환기: CashAddr ↔ 레거시

BCH 주소를 어느 표기로든 붙여넣으면 다른 표기와 함께 주소 유형, 네트워크, 기반 해시를 보여 줍니다. 체크섬을 먼저 검증하므로 잘못 입력한 주소는 변환되지 않고 거부됩니다.

bitcoincash: 접두사가 있거나 없는 CashAddr(q… 또는 p…), bchtest: 테스트넷 주소, 레거시 Base58Check 1… / 3… 주소를 지원합니다.

브라우저에서 JavaScript로 검사합니다. 주소는 절대 업로드되거나 저장되지 않습니다.

Bitcoin Cash 주소 변환기란?

Bitcoin Cash 주소 변환기는 하나의 BCH 계정을 두 가지 표기 사이에서 변환합니다. 하나는 CashAddr 규격에 정의된 CashAddr 형식 bitcoincash:q… / p…이고, 다른 하나는 Bitcoin에서 물려받은 레거시 Base58Check 형식 1… / 3…입니다. 둘 다 같은 160비트 공개 키 해시(P2PKH) 또는 스크립트 해시(P2SH)를 담고 있으며, 인코딩과 체크섬만 다릅니다.

CashAddr 인코딩 방식

  1. 버전 바이트. 1바이트로, 상위 비트는 유형(0 = P2PKH, 1 = P2SH)을, 하위 3비트는 해시 크기(0 = 160비트, 3 = 256비트)를 나타냅니다.
  2. 5비트 재그룹화. 버전 바이트와 해시를 이어 붙인 뒤 bech32와 똑같이 0비트로 패딩하면서 5비트 그룹으로 다시 자릅니다.
  3. 체크섬. 확장된 접두사(각 문자의 하위 5비트, 그 뒤 0), 페이로드, 0 그룹 8개에 대해 생성 상수 0x98f2bc8e61, 0x79b76d99e2, 0xf33e5fb3c4, 0xae2eabe2a8, 0x1e4f43e470을 사용해 40비트 BCH 코드를 계산합니다. 체크섬 그룹 8개가 뒤에 붙습니다.
  4. 알파벳. 각 그룹은 32문자 집합 qpzry9x8gf2tvdw0s3jn54khce6mua7l로 표기하므로 문자열에 1, b, i, o는 절대 나타나지 않습니다.

예시

규격의 첫 번째 테스트 벡터는 1BpEi6DfDAUFd7GtittLSdBeYJvcoaVggu입니다. Base58Check로 디코딩하면 버전 0x00(P2PKH)과 hash160 76a04053bda0a88bda5177b86a15c3b29f559873이 나옵니다. 앞에 CashAddr 버전 바이트 0x00을 붙이고 5비트 값으로 재그룹화한 뒤 체크섬을 덧붙이면 bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a가 됩니다. 같은 해시의 P2SH 변형은 레거시 형식에서는 3으로(3CWFddi6m4ndiGyKqzYvsFYagqDLPVMTzC), CashAddr에서는 p로(bitcoincash:ppm2qsznhks23z7629mms6s4cwef74vcwvn0h829pq) 시작합니다. 위에 아무거나 붙여넣으면 변환 과정을 바로 볼 수 있습니다.

형식 한눈에 보기

형식예시체크섬BTC와 구별 가능?
레거시 P2PKH1…, 26–35자4바이트 double-SHA-256아니요
레거시 P2SH3…, 34자4바이트 double-SHA-256아니요
CashAddr P2PKHbitcoincash:q…, 접두사 뒤 42자40비트 polymod예
CashAddr P2SHbitcoincash:p…, 42자40비트 polymod예
CashAddr P2SH-32bitcoincash:p…, 62자40비트 polymod예, 레거시 형식 없음
테스트넷bchtest:q… 또는 m… / n… / 2…동일접두사로만

레거시 경고가 중요한 이유

거래소는 아직도 BCH 입금에 레거시 주소를 보여 주고, 사용자는 여전히 Bitcoin 주소를 BCH 출금 폼에 붙여넣습니다. 바이트가 동일하기 때문에 Bitcoin 사용자의 1… 주소로 보낸 BCH 트랜잭션은 유효하며 Bitcoin Cash 체인에서 확정되지만, 수신자의 지갑은 그 체인을 보지 않습니다. 코인이 사라지는 것은 아니지만 해당 개인 키 보유자만 BCH 지갑으로 회수할 수 있고, 대부분의 수신자는 방법을 모릅니다. 보내기 전에 모든 주소를 CashAddr로 변환하면 이런 모호함이 사라집니다. bitcoincash:를 받아들이는 지갑은 BCH 지갑입니다.

일반적인 용도

Bitcoin 자체에는 비트코인 주소 검증기를, 일반 bech32 문자열에는 bech32 인코더 / 디코더를 사용하세요.

자주 묻는 질문

CashAddr와 레거시 Bitcoin Cash 주소의 차이는 무엇인가요?

둘 다 같은 20바이트 해시를 인코딩합니다. 레거시 주소는 Bitcoin의 Base58Check(P2PKH는 1…, P2SH는 3…)를 사용해 Bitcoin 주소와 똑같이 보입니다. 2018년 1월에 도입된 CashAddr는 bitcoincash: 접두사와 40비트 체크섬이 있는 bech32 방식 알파벳을 사용하므로 BCH 주소를 더 이상 BTC 주소와 혼동할 수 없습니다.

레거시 1… 주소는 Bitcoin인가요, Bitcoin Cash인가요?

둘 다일 수 있습니다. 두 체인에서 형식이 바이트 단위로 동일하며, 바로 그 때문에 CashAddr가 만들어졌습니다. 거래소가 BCH용으로 1… 주소를 알려 줬다면 bitcoincash:q…로 변환해도 안전하지만, 다른 곳에서 본 1… 주소가 BCH 주소라고 가정하지 마세요. 변환기는 모든 레거시 입력에 경고를 표시합니다.

변환기가 내 주소를 거부하는 이유는?

CashAddr polymod 체크섬이나 Base58Check double-SHA-256 체크섬 중 하나가 실패한 것으로, 최소 한 글자가 틀리거나 빠졌다는 뜻입니다. 대소문자가 섞인 CashAddr 문자열도 유효하지 않습니다. 규격상 모두 소문자이거나 모두 대문자여야 합니다.

bitcoincash: 접두사를 빼도 되나요?

네. 접두사는 체크섬의 일부이지만 대부분의 지갑은 q… 또는 p…만 있는 문자열을 받아들이고 메인넷으로 간주합니다. 접두사가 없으면 이 도구는 bitcoincash, bchtest, bchreg를 차례로 시도해 어느 것이 맞았는지 알려 줍니다.

P2SH-32 주소란 무엇인가요?

2023년 CashTokens 업그레이드 이후 Bitcoin Cash는 32바이트 스크립트 해시(유형 비트 1, 크기 비트 3)를 지원합니다. p…로 시작하는 유효한 CashAddr 문자열이지만 더 길고, 레거시 Base58 형식이 없습니다. 디코더는 해시를 보여 주고 레거시 형식이 제공되지 않는 이유를 설명합니다.

Bitcoin SV나 eCash에도 쓸 수 있나요?

아니요. eCash(XEC)는 ecash: 접두사로 같은 CashAddr 알고리즘을 사용하고, Bitcoin SV는 레거시 주소를 유지합니다. 다른 접두사의 CashAddr를 붙여넣으면 그 접두사에 대해 체크섬을 검증하되 비표준 Bitcoin Cash 접두사로 표시합니다.