"Bech32"의 두 판 사이의 차이
(→참고자료) |
잔글 |
||
(사용자 3명의 중간 판 51개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | '''Bech32'''는 피터 | + | '''Bech32'''는 [[피터 윌러]](Pieter Wuille)와 [[그레그 맥스웰]](Greg Maxwell)이 제안한 [[BIP173]]에 명시된 [[비트코인]](Bitcoin) 주소 형식이다. [[QR코드]]와 [[음성대화]]에 더 잘 적응하고 오류 감지를 개선한다는 장점이 있다. 이 라이브러리는 Bech32를 일반화하여 모든 바이트 버퍼를 [[인코딩]]한다. |
+ | |||
+ | ==주요 인물== | ||
+ | *'''[[피터 윌러]]'''(Pieter Wuille) : [[비트코인 코어]](Bitcoin Core) 개발자이자 [[블록스트림]](Blockstream)의 공동 설립자이다. 그는 비트코인 코어에 대한 커밋 측면에서 2위이며 [[BIP66]], [[libsecp256k1]] 및 [[세그윗]](Segregated Witness)과 같은 [[비트코인]]의 중요한 개선을 담당한다.<ref>〈[https://www.weusecoins.com/pieter-wuille/ Pieter Wuille - Bitcoin Core Developer]〉, 《Weusecoins》</ref> | ||
+ | *'''[[그레그 맥스웰]]''' : 비트코인 코어 개발자이자 블록스트림의 공동 창립자이며 CTO다.<ref>〈[https://www.weusecoins.com/gregory-maxwell-bitcoin-expert/ Gregory Maxwell - CTO, Blockstream]〉, 《Weusecoins》</ref> | ||
+ | |||
+ | ==장점== | ||
+ | * 입력 시 더 나은 보호가 가능하다. | ||
+ | * 대소문자를 구분하지 않는다. | ||
+ | * [[QR코드]]가 더 작다. | ||
+ | * [[세그윗]](Segwit)의 전체 성능을 사용할 수 있다. | ||
+ | |||
+ | ==문자열== | ||
+ | Bech32 문자열은 최대 90자이며, 다음과 같이 구성된다. | ||
+ | *'''HRP'''(Human-Readable Part) : 자료의 종류나 독자와 관련된 그 밖의 모든 것을 전달하기 위한 것이다. 이 부분에는 반드시 1~83자의 US-ASCII 문자가 포함되어야 하며, 각 문자는 [33~126] 범위의 값을 가져야 한다. HRP 유효성은 특정 용도에 의해 더욱 제한될 수 있다. | ||
+ | *'''세퍼레이터'''(Separator) : 사람이 읽을 수 있는 부분 안에 "1"이 허용되는 경우 문자열의 마지막 부분은 구분 기호 "1"이다. | ||
+ | *'''데이터 부분''' : 길이가 최소 6자이고 "1", "b", "i" 및 "o"를 제외한 영숫자로만 구성된다. | ||
+ | {| class = "wikitable" | ||
+ | |- | ||
+ | ! | ||
+ | ! 0 | ||
+ | ! 1 | ||
+ | ! 2 | ||
+ | ! 3 | ||
+ | ! 4 | ||
+ | ! 5 | ||
+ | ! 6 | ||
+ | ! 7 | ||
+ | |- | ||
+ | ! +0 | ||
+ | | q || p || z || r || y || 9 || x || 8 | ||
+ | |- | ||
+ | ! +8 | ||
+ | | g || f || 2 || t || v || d || w || 0 | ||
+ | |- | ||
+ | ! +16 | ||
+ | | s || 3 || j || n || 5 || 4 || k || h | ||
+ | |- | ||
+ | ! +24 | ||
+ | | c || e || 6 || m || u || a || 7 || l | ||
+ | |} | ||
+ | |||
+ | ==주소 형식== | ||
+ | Bech32 주소는 P2 스타일 주소와 확실히 다르다. 주소는 bc1로 시작하며, 이 접두사 때문에 기존 주소나 [[P2SH]] 주소보다 길다. Bech32는 기본 세그윗 주소 형식이며, [[소프트웨어]]와 [[하드웨어]] 월렛의 대다수지만, 소수의 교환을 하고 있다.<ref>Kai Sedgwick, 〈[https://news.bitcoin.com/everything-you-should-know-about-bitcoin-address-formats/ Everything You Should Know About Bitcoin Address Formats]〉, 《비트코인.COM》, 2019-02-18</ref> | ||
+ | |||
+ | ==Bech32 기반 다른 주소 형식== | ||
+ | *'''LN 인보이스'''(LN invoices) : Bech32의 일반적인 90자 제한 없이 확장된 [[HRP]]와 함께 bech32 형식을 사용한다. | ||
+ | *'''비트코인 캐시'''(Bitcoin Cash) '''새로운 스타일 주소''' : bech32 형식을 HRP 비트코인 캐시 및 구분 기호와 함께 사용한다. 비트코인에서와같이 세그윗 감시 버전을 인코딩하는 버전 바이트 대신, 주소로 인코딩된 해시를 [[P2PKH]] 또는 P2SH와 함께 사용해야 하는지 여부를 나타낸다. | ||
+ | *'''백업 시드'''(Backup seeds) : 2018년 6월 [[조나스 슈넬리]](Jonas Schnelli)는 오류 수정을 위해 Bech32를 사용하여 비트코인 개인키, 확장 개인키(Xprivs) 및 확장 공개키(Xpubs)를 인코딩하는 방식인 Bech32X를 제안했다. | ||
+ | *'''요소 기반의 사이드체인'''(Sidechains) : [[블록스트림 리퀴드]](Blockstream Liquid)와 같은 [[ElementsProject.org]]를 기반으로 하는 사이드체인에서는 Bech32 주소와 "Bich32"주소라고 하는 변화를 모두 사용한다. Bech32 주소는 그 플랫폼의 기밀 자산과 함께 사용하기 위한 것이며, 곧 리퀴드 사이드체인용 에스플로라(Esplora) 블록 탐색기에 지원될 예정이다. | ||
+ | *'''출력 스크립트 디스크립터'''(Output Script Descriptors) : Bech32와 직접 관련되지는 않지만, Bech32에서 사용된 것과 동일한 [[BCH]](Bose-Chaudhuri-Hocquenghem) 코드에 기초한 [[체크섬]](Checksums)이 비트코인 코어가 지원하는 출력 [[스크립트]] 디스크립터에 추가되었다. | ||
+ | |||
+ | ==Bech32 수신만 지원하는 월렛== | ||
+ | *'''와사비 월렛'''(Wasabi Wallet) : 프라이버시 강화 [[코인조인]](Coinjoin) 모드와 코인 제어 의무화로 알려진 [[와사비 월렛]]은 Bech32 주소에 대해서만 지불을 허용한다. 비교적 새로운 이 월렛은 [[BIP158]]에서 설명한 것과 유사한 소형 블록 필터를 중심으로 설계되었다. 그러나 모든 필터는 와사비의 인프라에서 제공되기 때문에, [[P2WPKH]] 출력만 포함해 필터 크기를 최소화하기로 했다. 이것은 월렛이 P2SH로 포장된 세그윗 주소에 대한 P2SH를 포함하여 다른 출력 유형에 대한 지불을 볼 수 없음을 의미한다. | ||
+ | *'''트러스트 월렛'''(Trust Wallet) : [[바이낸스]](Binance) 암호화 거래소가 소유하고 있는 상당히 새로운 특허권 월렛이며 [[안드로이드]] 및 [[IOS]]와 호환된다. 새로운 월렛으로서, 지원을 받는 레거시 주소를 구현할 필요가 없었기 때문에, 세그윗만 구현했다. 그렇게 되면 Bech32는 이 월렛에 비트코인을 보낼 수 있는 유일한 지원 방법이 된다. | ||
+ | *'''일렉트럼'''(Electrum) : [[데스크탑]]과 [[모바일]]을 위한 인기 있는 월렛이다. 새 월렛 시드를 만들 때, 세그윗 월렛과 레거시 월렛 중 하나를 선택할 수 있다. 현재 기본값은 세그윗이다. 세그윗 월렛 시드를 선택한 사용자들은 수신하기 위한 Bech32 주소만 생성할 수 있다. | ||
{{각주}} | {{각주}} | ||
+ | |||
==참고자료== | ==참고자료== | ||
* 〈[https://www.irisnet.org/docs/features/basic-concepts/bech32-prefix.html#human-readable-part-table Bech32 on IRISnet]〉, 《IRISnet Document》 | * 〈[https://www.irisnet.org/docs/features/basic-concepts/bech32-prefix.html#human-readable-part-table Bech32 on IRISnet]〉, 《IRISnet Document》 | ||
− | * 〈[https://www.npmjs.com/package/bech32-buffer Bech32 Encoding for Arbitrary Buffers]〉, 《NPM》, 2018-12- | + | * slowli, 〈[https://www.npmjs.com/package/bech32-buffer Bech32 Encoding for Arbitrary Buffers]〉, 《NPM》, 2018-12-13 |
+ | * 〈[https://bitcoinops.org/en/bech32-sending-support/#introduction-to-bech32-sending-support Bech32 Sending Support]〉, 《비트코인옵테크》, 2019-03-19 | ||
+ | * hebasto, 〈[https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki#cite_note-4 BIP-0173]〉, 《GitHub》, 2019-07-18 | ||
+ | * Memo Özbek, 〈[https://decentralbox.com/was-ist-segwit-und-bech32/ Was ist SegWit & bech32?]〉, 《Decentralbox》, 2019-01-10 | ||
==같이 보기== | ==같이 보기== | ||
+ | * [[BIP173]] | ||
+ | * [[피터 윌러]] | ||
+ | |||
{{블록체인 기술|검토 필요}} | {{블록체인 기술|검토 필요}} |
2021년 10월 23일 (토) 15:47 기준 최신판
Bech32는 피터 윌러(Pieter Wuille)와 그레그 맥스웰(Greg Maxwell)이 제안한 BIP173에 명시된 비트코인(Bitcoin) 주소 형식이다. QR코드와 음성대화에 더 잘 적응하고 오류 감지를 개선한다는 장점이 있다. 이 라이브러리는 Bech32를 일반화하여 모든 바이트 버퍼를 인코딩한다.
주요 인물[편집]
- 피터 윌러(Pieter Wuille) : 비트코인 코어(Bitcoin Core) 개발자이자 블록스트림(Blockstream)의 공동 설립자이다. 그는 비트코인 코어에 대한 커밋 측면에서 2위이며 BIP66, libsecp256k1 및 세그윗(Segregated Witness)과 같은 비트코인의 중요한 개선을 담당한다.[1]
- 그레그 맥스웰 : 비트코인 코어 개발자이자 블록스트림의 공동 창립자이며 CTO다.[2]
장점[편집]
문자열[편집]
Bech32 문자열은 최대 90자이며, 다음과 같이 구성된다.
- HRP(Human-Readable Part) : 자료의 종류나 독자와 관련된 그 밖의 모든 것을 전달하기 위한 것이다. 이 부분에는 반드시 1~83자의 US-ASCII 문자가 포함되어야 하며, 각 문자는 [33~126] 범위의 값을 가져야 한다. HRP 유효성은 특정 용도에 의해 더욱 제한될 수 있다.
- 세퍼레이터(Separator) : 사람이 읽을 수 있는 부분 안에 "1"이 허용되는 경우 문자열의 마지막 부분은 구분 기호 "1"이다.
- 데이터 부분 : 길이가 최소 6자이고 "1", "b", "i" 및 "o"를 제외한 영숫자로만 구성된다.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
---|---|---|---|---|---|---|---|---|
+0 | q | p | z | r | y | 9 | x | 8 |
+8 | g | f | 2 | t | v | d | w | 0 |
+16 | s | 3 | j | n | 5 | 4 | k | h |
+24 | c | e | 6 | m | u | a | 7 | l |
주소 형식[편집]
Bech32 주소는 P2 스타일 주소와 확실히 다르다. 주소는 bc1로 시작하며, 이 접두사 때문에 기존 주소나 P2SH 주소보다 길다. Bech32는 기본 세그윗 주소 형식이며, 소프트웨어와 하드웨어 월렛의 대다수지만, 소수의 교환을 하고 있다.[3]
Bech32 기반 다른 주소 형식[편집]
- LN 인보이스(LN invoices) : Bech32의 일반적인 90자 제한 없이 확장된 HRP와 함께 bech32 형식을 사용한다.
- 비트코인 캐시(Bitcoin Cash) 새로운 스타일 주소 : bech32 형식을 HRP 비트코인 캐시 및 구분 기호와 함께 사용한다. 비트코인에서와같이 세그윗 감시 버전을 인코딩하는 버전 바이트 대신, 주소로 인코딩된 해시를 P2PKH 또는 P2SH와 함께 사용해야 하는지 여부를 나타낸다.
- 백업 시드(Backup seeds) : 2018년 6월 조나스 슈넬리(Jonas Schnelli)는 오류 수정을 위해 Bech32를 사용하여 비트코인 개인키, 확장 개인키(Xprivs) 및 확장 공개키(Xpubs)를 인코딩하는 방식인 Bech32X를 제안했다.
- 요소 기반의 사이드체인(Sidechains) : 블록스트림 리퀴드(Blockstream Liquid)와 같은 ElementsProject.org를 기반으로 하는 사이드체인에서는 Bech32 주소와 "Bich32"주소라고 하는 변화를 모두 사용한다. Bech32 주소는 그 플랫폼의 기밀 자산과 함께 사용하기 위한 것이며, 곧 리퀴드 사이드체인용 에스플로라(Esplora) 블록 탐색기에 지원될 예정이다.
- 출력 스크립트 디스크립터(Output Script Descriptors) : Bech32와 직접 관련되지는 않지만, Bech32에서 사용된 것과 동일한 BCH(Bose-Chaudhuri-Hocquenghem) 코드에 기초한 체크섬(Checksums)이 비트코인 코어가 지원하는 출력 스크립트 디스크립터에 추가되었다.
Bech32 수신만 지원하는 월렛[편집]
- 와사비 월렛(Wasabi Wallet) : 프라이버시 강화 코인조인(Coinjoin) 모드와 코인 제어 의무화로 알려진 와사비 월렛은 Bech32 주소에 대해서만 지불을 허용한다. 비교적 새로운 이 월렛은 BIP158에서 설명한 것과 유사한 소형 블록 필터를 중심으로 설계되었다. 그러나 모든 필터는 와사비의 인프라에서 제공되기 때문에, P2WPKH 출력만 포함해 필터 크기를 최소화하기로 했다. 이것은 월렛이 P2SH로 포장된 세그윗 주소에 대한 P2SH를 포함하여 다른 출력 유형에 대한 지불을 볼 수 없음을 의미한다.
- 트러스트 월렛(Trust Wallet) : 바이낸스(Binance) 암호화 거래소가 소유하고 있는 상당히 새로운 특허권 월렛이며 안드로이드 및 IOS와 호환된다. 새로운 월렛으로서, 지원을 받는 레거시 주소를 구현할 필요가 없었기 때문에, 세그윗만 구현했다. 그렇게 되면 Bech32는 이 월렛에 비트코인을 보낼 수 있는 유일한 지원 방법이 된다.
- 일렉트럼(Electrum) : 데스크탑과 모바일을 위한 인기 있는 월렛이다. 새 월렛 시드를 만들 때, 세그윗 월렛과 레거시 월렛 중 하나를 선택할 수 있다. 현재 기본값은 세그윗이다. 세그윗 월렛 시드를 선택한 사용자들은 수신하기 위한 Bech32 주소만 생성할 수 있다.
각주[편집]
- ↑ 〈Pieter Wuille - Bitcoin Core Developer〉, 《Weusecoins》
- ↑ 〈Gregory Maxwell - CTO, Blockstream〉, 《Weusecoins》
- ↑ Kai Sedgwick, 〈Everything You Should Know About Bitcoin Address Formats〉, 《비트코인.COM》, 2019-02-18
참고자료[편집]
- 〈Bech32 on IRISnet〉, 《IRISnet Document》
- slowli, 〈Bech32 Encoding for Arbitrary Buffers〉, 《NPM》, 2018-12-13
- 〈Bech32 Sending Support〉, 《비트코인옵테크》, 2019-03-19
- hebasto, 〈BIP-0173〉, 《GitHub》, 2019-07-18
- Memo Özbek, 〈Was ist SegWit & bech32?〉, 《Decentralbox》, 2019-01-10
같이 보기[편집]