> bech32 | segwit | bc1 <
// Bech32 - 오류 감지 기능이 포함된 Bitcoin SegWit 주소 인코딩
비트코인 주소
bc1 로 시작하는 비트코인 SegWit 주소를 위한 표준 형식입니다.
향상된 오류 감지
Base58Check 형식보다 더 잘 오류를 감지하고 위치를 찾아냅니다.
QR 코드에 최적화
모두 소문자로 구성되어 QR 코드가 더 작고 읽기 쉬워집니다.
>> 기술 정보
Bech32 동작 방식:
Bech32 는 혼동되기 쉬운 문자를 제거한 32자 알파벳과 BCH 코드를 이용한 오류 감지 기능을 사용합니다. 주소는 사람이 읽을 수 있는 부분(HRP), 구분자 1, 데이터, 6자리 체크섬으로 구성됩니다.
구조:
bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4 bc = HRP (비트코인 메인넷) 1 = 구분자 qw508d = 데이터 (5비트 그룹) kv8f3t4 = 체크섬 (마지막 6자)
Bech32 를 사용하는 이유:
- >Bitcoin SegWit 주소
- >라이트닝 네트워크 청구서
- >각종 암호화폐 주소
- >오류에 강한 인코딩
- >QR 코드 표시 최적화
>> 자주 묻는 질문
Bech32 란 무엇인가요?
Bech32 는 주로 Bitcoin SegWit 주소에 사용되는 체크섬이 포함된 base32 형식입니다. 기존 주소 형식보다 오류 검출 능력을 향상시키기 위해 설계되었습니다.
Bech32 와 Bech32m 의 차이는 무엇인가요?
Bech32m 은 원래 Bech32 체크섬 알고리즘의 취약점을 보완한 개선 버전입니다. Taproot 주소(bc1p)는 Bech32m 을 사용하고, 기존 SegWit 주소는 Bech32 를 사용합니다.
왜 Bech32 주소는 모두 소문자인가요?
소문자만 사용하면 QR 코드가 더 작아지고, 수동 입력도 더 쉬워집니다. 형식 자체는 대소문자를 구분하지 않지만, 일관성을 위해 소문자를 표준으로 사용합니다.
HRP 는 무엇인가요?
HRP(Human Readable Part)는 주소 유형과 네트워크를 나타내는 부분입니다. 예를 들어 bc 는 비트코인 메인넷, tb 는 테스트넷, ltc 는 라이트코인을 의미합니다.
// 빠른 참조
| value | 문자 |
|---|---|
| 0 8 16 24 | q g s c |
| 1 9 17 25 | p f 3 e |
| 2 10 18 26 | z 2 j 6 |
| 3 11 19 27 | r t n m |
| 4 12 20 28 | y v 5 u |
| 5 13 21 29 | 9 d 4 a |
| 6 14 22 30 | x w k 7 |
| 7 15 23 31 | 8 0 h l |
// 코드 예제
Charset qpzry9x8gf2tvdw0s3jn54khce6mua7l (32 symbols, no 1 b i o) Format <hrp> + "1" + <data> + <6-char checksum> (max 90 chars) HRP bc (Bitcoin) | tb (testnet) | ltc (Litecoin) | lnbc (Lightning) Checksum Bech32 constant 1 (BIP-173) | Bech32m constant 0x2bc830a3 (BIP-350) Example bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4
>> 더 많은 질문
Q: Bech32와 Bech32m의 차이는 무엇인가요?
A: 형식과 문자 집합은 같지만 체크섬 상수가 다릅니다. Bech32(BIP-173)는 1, Bech32m(BIP-350)은 0x2bc830a3를 씁니다. Bech32m은 SegWit v1 이상, 즉 Taproot(bc1p…)에, Bech32는 v0(bc1q…)에 쓰입니다.
Q: Bech32 알파벳에 1, b, i, o가 없는 이유는?
A: 32자 qpzry9x8gf2tvdw0s3jn54khce6mua7l은 헷갈리는 기호를 뺐습니다. 1은 구분자이고 b, i, o는 6, 1, 0과 비슷합니다. 모두 소문자 또는 모두 대문자일 때만 유효하며 섞을 수 없습니다.
Q: Bech32 체크섬은 오류를 얼마나 잘 찾나요?
A: 6자 검사 문자는 BCH 코드 기반으로, 4자 이하의 오류를 확실히 감지하고 Base58Check보다 오타를 훨씬 잘 찾습니다. 길이는 90자로 제한됩니다.