비트코인 주소
비트코인은 P2PKH, P2SH, P2WPKH, P2TR 등 여러가지 종류의 주소 형식을 갖는다. 처음 비트코인이 개발되었을 때는 Legacy P2PKH 주소와 P2SH (Pay to Script Hash) 주소만 사용하였는데, 비트코인 v0.16 버젼부터 SegWit이 지원되면서 Native SegWit (P2WPKH, P2WSH) 주소와 Backward Compatibilty를 위한 non-native SegWit 주소인P2SH-P2WPKH 가 도입되었다. 또한, 2021년 비트코인이 Taproot 업그레이드를 하면서 P2TR 주소가 도입되었다.
다음은 네트워크별 비트코인 주소의 종류를 예시한 것이다.
mainnet 주소
주소 종류 | 주소 시작 문자 | 주소 예 |
---|---|---|
P2PKH | 1 | 126Vk7TwpQDtDeJ6ZGt1aHsRch2m11umPn |
P2SH (non-SegWit) / P2SH-P2WPKH (SegWit) | 3 | 3JjxJVzS7mt8KxBLB5gLh1yNzFtbbsz79a |
P2WPKH/P2WSH (Native SegWit/bech32) | bc1q | bc1qlnt9afpv7wu57exue7t8e5t3uvennglcf9fe7t |
P2TR (bech32m) | bc1p | bc1pmzfrwwndsqmk5yh69yjr5lfgfg4ev8c0tsc06e |
testnet 주소
주소 종류 | 주소 시작 문자 | 주소 예 |
---|---|---|
P2PKH | m 혹은 n | mvoaRcppRJ3xXngUN3WzA971RYQz8LSvRM |
P2SH (non-SegWit) / P2SH-P2WPKH (SegWit) | 2 | 2N1GC92K6h94KGiMjt1CeQT6vayoFcHtRoa |
P2WPKH/P2WSH (Native SegWit/bech32) | tb1q | tb1qy3hpnkvul7lzyrnvp5hnk9ehgj5c5j9zsxhf63 |
P2TR (bech32m) | tb1p | tb1p6h5fuzmnvpdthf5shf0qqjzwy7wsqc5rhmgq2ks9xrak4ry6mtrscsqvzp |
regtest 주소
주소 종류 | 주소 시작 문자 | 주소 예 |
---|---|---|
P2PKH | m 혹은 n | mvEKCoZdLyjd4TfbqZFfJN5wNV6C1EQQZR |
P2SH (non-SegWit) / P2SH-P2WPKH (SegWit) | 2 | 2N3oAYRhBPK7xbNWtATi98dq36ZNCrFQnUm |
P2WPKH/P2WSH (Native SegWit/bech32) | bcrt1q | bcrt1qvx7nnzvg42nf8cpnwfl7ulczxw2v4h4qhyvts8 |
P2TR (bech32m) | bcrt1p |
비트코인 주소 얻기
Bitcoin Core에서 새 비트코인 주소를 얻기 위해서는 getnewaddress 명령을 사용한다.
$ bitcoin-cli getnewaddress tb1qtcjrv5dk8tdw3awyyyf85dysy3vds3d2v9hlj4
특정 비트코인 주소 타입에 맞는 주소를 얻기 위해서는 아래와 같이 address_type 파라미터를 지정한다.
$ bitcoin-cli -named getnewaddress address_type=legacy $ bitcoin-cli -named getnewaddress address_type=p2sh-segwit $ bitcoin-cli -named getnewaddress address_type=bech32
새 주소에 대해 보다 자세한 정보를 얻기 위해서는 아래와 같이 getaddressinfo 명령을 수행할 수 있는데, 이를 통해 hdkeypath, public key 등의 정보를 살펴 볼 수 있다.
$ bitcoin-cli getaddressinfo tb1qtcjrv5dk8tdw3awyyyf85dysy3vds3d2v9hlj4 { "address": "tb1qtcjrv5dk8tdw3awyyyf85dysy3vds3d2v9hlj4", "scriptPubKey": "00145e243651b63adae8f5c421127a34902458d845aa", "ismine": true, "solvable": true, "desc": "wpkh([9d1456ef/0'/0'/6']02b41aa48a50dda48d58f22413330efd71390f0e18ce93e26ff1eb5e7a70cac4ad)#e74rklvc", "iswatchonly": false, "isscript": false, "iswitness": true, "witness_version": 0, "witness_program": "5e243651b63adae8f5c421127a34902458d845aa", "pubkey": "02b41aa48a50dda48d58f22413330efd71390f0e18ce93e26ff1eb5e7a70cac4ad", "ischange": false, "timestamp": 1645034898, "hdkeypath": "m/0'/0'/6'", "hdseedid": "52918dba8457ce58b0ac0292e0c04b146a66cc84", "hdmasterfingerprint": "9d1456ef", "labels": [ "" ] }