Bech32 / Bech32m 인코더 및 디코더

bc1q, bc1p, ltc1, lnurl1, npub1 문자열 내부를 들여다보거나, witness program 또는 원시 바이트로 직접 만들어 보세요. bech32와 bech32m을 자동 감지하고 체크섬을 검증합니다.

bech32와 bech32m을 감지하고, 사람이 읽을 수 있는 부분(HRP), 5비트 데이터, 원시 바이트를 표시하며, bc1 / tb1 / ltc1 주소의 경우 SegWit witness version과 program도 보여줍니다.

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

bech32 인코더 / 디코더란 무엇인가요?

bech32 인코더 / 디코더는 원시 바이트와 BIP-173 문자열 형식 사이를 변환합니다. 이 형식은 사람이 읽을 수 있는 부분(bc, ltc, lnurl, npub), 구분자 1, 32자 알파벳으로 된 5비트 그룹 페이로드, 그리고 6자 BCH 체크섬으로 구성됩니다. Bech32m(BIP-350)은 체크섬 상수만 다른 동일한 형식으로, SegWit 버전 1 이상(Taproot bc1p…)에 필수입니다.

예시

witness program 751e76e8199196d454941c45d1b3a323f1433bd6를 버전 0, hrp bc로 인코딩하면 BIP-173 참조 주소인 bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4가 됩니다. 이를 디코딩하면 버전 0, 20바이트 program, 인코딩 bech32가 나옵니다. 같은 program을 버전 1로 인코딩하려면 bech32m이 필요하며 bc1p로 시작하게 됩니다.

bech32가 쓰이는 곳

Bech32 vs. bech32m vs. Base58Check

인코딩체크섬오류 검출주요 용도
bech32 (BIP-173)6자, 상수 190자 이내에서 최대 4개 치환 오류 검출 보장bc1q SegWit v0, LNURL, 라이트닝 인보이스, npub
bech32m (BIP-350)6자, 상수 0x2bc830a3동일하며, 마지막 p 앞 삽입 취약점을 수정bc1p Taproot, SegWit v1 이상
Base58Check이중 SHA-256의 4바이트확률적, 보장 없음1…, 3… 비트코인, Tron T…, XRP

흔한 실수

Base58 레거시 형식을 포함한 전체 비트코인 주소는 비트코인 주소 검증기로 검증하세요.

자주 묻는 질문

bech32란 무엇인가요?

비트코인 SegWit 주소를 위해 BIP-173에 정의된 인코딩입니다. 사람이 읽을 수 있는 부분, 구분자 1, 그리고 32자 알파벳으로 된 데이터와 최대 4개의 오류를 검출하는 6자 BCH 체크섬으로 구성됩니다. 대소문자를 구분하지 않으며 대문자로 쓰면 QR 코드에 적합합니다.

bech32와 bech32m의 차이는 무엇인가요?

Bech32m(BIP-350)은 마지막 문자가 p일 때 발생하는 bech32의 취약점을 고치기 위해 체크섬 상수를 1에서 0x2bc830a3로 바꿨습니다. SegWit 버전 0(bc1q)은 bech32를 유지하고, 버전 1 Taproot 이상(bc1p)은 bech32m을 사용합니다. 디코더는 두 가지를 모두 시도합니다.

데이터가 왜 온전한 바이트로 변환되지 않나요?

Bech32는 5비트 그룹을 담습니다. SegWit 주소는 1그룹의 witness version 뒤에 program이 이어지므로 원시 데이터가 바이트 정렬되어 있지 않습니다. 이 도구는 버전과 program을 따로 보여줍니다. LNURL이나 npub 같은 다른 용도에서는 패딩을 사용해 온전한 바이트를 인코딩합니다.

LNURL과 Nostr 키를 디코딩할 수 있나요?

네. lnurl1…은 URL 텍스트로, npub1…과 nsec1…은 32바이트 키로 디코딩됩니다. nsec이나 어떤 개인키도 여기를 포함해 어디에도 절대 붙여넣지 마세요.

bech32 문자열의 최대 길이는 얼마인가요?

BIP-173은 4개 오류 검출 보장이 유지되도록 주소를 90자로 제한합니다. 라이트닝 인보이스와 LNURL은 훨씬 많은 데이터를 담기 때문에 의도적으로 이 제한을 무시합니다. 체크섬은 여전히 작동하지만 매우 긴 문자열에서는 보장이 약해집니다.

공개키로 SegWit 주소를 만들려면 어떻게 하나요?

압축 공개키를 SHA-256 후 RIPEMD-160으로 해시해 20바이트 program을 얻고, witness version 0과 hrp bc를 선택하세요. Taproot의 경우 32바이트 x-only 출력 키와 버전 1을 사용합니다. 이 페이지는 인코딩 단계만 수행하며 키 해싱은 범위 밖입니다.