들어가며
비트코인을 처음 접하면 가장 먼저 헷갈리는 것이 바로 “지갑(Wallet)”입니다.
보통 우리는 지갑이라고 하면 현금이나 카드를 넣어두는 물건을 떠올립니다. 그래서 처음에는 비트코인도 스마트폰이나 앱 안에 저장된다고 생각하기 쉽습니다.
저 역시 처음에는 “비트코인을 지갑에 넣는다”는 표현 때문에 실제 코인이 지갑 안에 들어 있는 구조라고 생각했습니다.
하지만 조금 더 알아보니 비트코인 지갑은 우리가 일반적으로 생각하는 지갑과는 구조가 많이 달랐습니다.
이번 글에서는 비트코인 지갑이 실제로 어떤 역할을 하는지, 주소(Address)와 공개키(Public Key), 개인키(Private Key)는 무엇인지, 비트코인은 어떤 방식으로 전송(Transaction)되는지까지 초보자 기준에서 정리해보겠습니다.
비트코인 지갑은 코인을 담는 지갑이 아니다

비트코인 지갑이라는 이름 때문에 많은 사람들이 “코인을 보관하는 공간”이라고 생각합니다.
하지만 실제로는 조금 다릅니다.
비트코인은 특정 앱이나 휴대폰 안에 저장되는 것이 아니라, 비트코인 블록체인(Blockchain)에 기록됩니다.
즉, 지갑 안에 비트코인이 들어 있는 것이 아니라 블록체인 위에 기록된 비트코인을 사용할 수 있는 권한을 지갑이 관리하는 구조에 가깝습니다.
쉽게 비유하면 다음과 같습니다.
- 비트코인 블록체인(Blockchain)은 거래 기록이 저장된 거대한 공개 장부입니다.
- 비트코인 지갑(Wallet)은 그 장부를 사용할 수 있는 열쇠 관리 도구에 가깝습니다.
즉, 비트코인 지갑은 “보관함”이라기보다는 “접근 권한 관리 도구”에 더 가깝다고 느꼈습니다.
실제 비트코인은 어디에 보관될까?
그렇다면 실제 비트코인은 어디에 있는 걸까요?
정답은 블록체인(Blockchain)입니다.

비트코인 네트워크에는 누가 누구에게 얼마를 보냈는지에 대한 거래 기록(Transaction)이 계속 저장됩니다.
이 기록이 전 세계 수많은 비트코인 노드(Node)에 공유됩니다.
예를 들어 누군가 내 주소(Address)로 비트코인을 보내면, 블록체인에는 다음과 비슷한 개념의 기록이 추가됩니다.
A 주소 → B 주소로 0.01 BTC 전송
즉, 실제로는 “코인이 이동한다”기보다 블록체인에 새로운 소유 권한 기록이 추가되는 구조입니다.
그리고 내 지갑은 그 기록 중에서 내가 사용할 수 있는 비트코인을 찾아 보여주는 역할을 합니다.
비트코인 지갑의 진짜 역할
비트코인 지갑의 핵심 역할은 개인키(Private Key)를 관리하는 것입니다.
조금 더 자세히 보면 지갑은 다음과 같은 기능을 수행합니다.
- 비트코인 주소(Address) 생성
- 개인키(Private Key) 보관
- 잔액 조회
- 거래(Transaction) 생성
- 거래 서명(Signature)
- 네트워크 전송(Broadcast)
특히 가장 중요한 것은 거래 서명(Signature)입니다.
비트코인에서는 특정 주소의 비트코인을 사용하려면 해당 주소와 연결된 개인키로 전자 서명(Digital Signature)을 해야 합니다.
즉, 지갑은 단순 조회 앱이 아니라 “내 비트코인을 사용할 권한”을 관리하는 프로그램이라고 볼 수 있습니다.
주소(Address), 공개키(Public Key), 개인키(Private Key)의 차이
비트코인 지갑을 이해할 때 가장 먼저 헷갈리는 용어가 바로 주소(Address), 공개키(Public Key), 개인키(Private Key)입니다.
처음에는 모두 비슷한 긴 문자처럼 보이기 때문에 저 역시 꽤 혼란스러웠습니다.
쉽게 비유하면 다음과 같습니다.
- 비트코인 주소(Address)는 계좌번호 같은 개념입니다.
- 공개키(Public Key)는 주소 생성에 사용되는 공개 정보입니다.
- 개인키(Private Key)는 비트코인을 사용할 수 있는 비밀 열쇠입니다.
비트코인 주소(Address)
비트코인 주소는 다른 사람이 나에게 비트코인을 보낼 때 사용하는 목적지입니다.
대표적인 주소 형태는 다음과 같습니다.
- 1xxxxxxxxxxxxxxxx
- 3xxxxxxxxxxxxxxxx
- bc1qxxxxxxxxxxxxxxxx
- bc1pxxxxxxxxxxxxxxxx
비트코인 주소는 종류에 따라 형태가 다릅니다.
| 주소 형태 | 종류 | 특징 |
|---|---|---|
1... | Legacy | 가장 오래된 형식 |
3... | SegWit(P2SH) | 호환성 개선 |
bc1q... | Native SegWit(bech32) | 수수료 효율 개선 |
bc1p... | Taproot | 최신 기능 지원 |
현재는 보통 bc1q... 또는 bc1p... 형식을 많이 사용합니다.
특히 bc1q... 주소는 Native SegWit 방식으로 수수료 효율이 좋아 현재 가장 널리 사용되는 형태 중 하나입니다.
주소는 공개해도 됩니다.
하지만 같은 주소를 계속 재사용하면 거래 흐름이 블록체인에서 추적될 수 있기 때문에 프라이버시 측면에서는 새 주소를 사용하는 것이 유리합니다.
공개키(Public Key)
공개키는 개인키(Private Key)에서 만들어지는 공개 정보입니다.
그리고 공개키를 기반으로 비트코인 주소(Address)가 생성됩니다.
흐름은 다음과 같습니다.

즉:
- 개인키 → 공개키 생성 가능
- 공개키 → 주소 생성 가능
하지만 반대로는 사실상 불가능합니다.
- 주소 → 공개키 역산 불가능
- 공개키 → 개인키 역산 불가능
이 구조 덕분에 주소를 공개해도 개인키가 노출되지 않습니다.
공개키(Public Key)는 보통 아래처럼 긴 문자열 형태입니다.
02a1633caf420e2b...
일반 사용자는 공개키를 직접 다룰 일은 많지 않습니다. 대부분 지갑 프로그램이 자동으로 처리합니다.
개인키(Private Key)
개인키는 비트코인에서 가장 중요한 정보입니다.
개인키를 가진 사람만 해당 비트코인을 사용할 수 있습니다.
쉽게 말하면 개인키는 비트코인을 전송할 수 있는 “비밀 열쇠”입니다.
개인키(Private Key)는 보통 아래와 같은 매우 긴 16진수(Hexadecimal) 문자열 형태입니다.
e9873d79c6d87dc0fb6a5778633389...
또는 WIF(Wallet Import Format) 형태로 표현되기도 합니다.
L1aW4aubDFB7yfras2S1mMEYci...
실제로 개인키는 매우 긴 랜덤 숫자이며, 경우의 수가 사실상 무한에 가깝습니다.
비트코인 개인키는 약 2²⁵⁶, 즉 대략 1.15 × 10⁷⁷개에 가까운 경우의 수를 가집니다.
따라서 특정 개인키 하나를 무작위로 한 번에 정확히 맞힐 확률은 약 1 / 2²⁵⁶, 다시 말해 약 1.15 × 10⁷⁷분의 1 수준입니다.
이 확률은 숫자로만 보면 잘 실감이 나지 않습니다.
감각적으로 비유하면, 지구상의 해변에 있는 수많은 모래알 가운데 미리 정해둔 단 하나를 한 번에 집어내는 것보다도 비교하기 어려울 만큼 낮은 확률이라고 볼 수 있습니다.
또 관측 가능한 우주에 존재하는 원자 수가 약 10⁸⁰개 규모로 추정된다는 점을 떠올리면, 개인키 경우의 수 역시 일상적인 감각을 훨씬 넘어서는 매우 거대한 수라는 점을 짐작할 수 있습니다.
이처럼 가능한 경우의 수가 워낙 방대하기 때문에, 우연히 누군가의 개인키를 맞혀 찾아내는 것은 현실적으로 불가능한 수준으로 여겨집니다.
왜 공개키(Public Key)나 주소(Address)로 개인키를 알 수 없을까
비트코인은 다음 구조를 사용합니다.
개인키
↓ (ECDSA)
공개키
↓ (SHA256 + RIPEMD160)
비트코인 주소
여기서 핵심은 “한 방향 계산(one-way function)”입니다.
즉:
- 계산은 쉽다
- 되돌리는 것은 사실상 불가능하다
는 구조입니다.
비트코인은 공개키 암호 방식으로 ECDSA(Elliptic Curve Digital Signature Algorithm)를 사용합니다.
즉:
Private Key → Public Key 는 가능하지만,
Public Key → Private Key 는 현실적으로 계산이 불가능한 수준입니다.
Hash(Hash)와 Hash256
비트코인에서는 Hash(해시)도 매우 중요한 개념입니다.
Hash는 데이터를 고정 길이 문자열로 변환하는 계산 방식입니다.
대표 특징은 다음과 같습니다.
- 입력이 조금만 바뀌어도 결과가 완전히 달라짐
- 결과 길이는 항상 동일
- 원래 데이터를 역산하기 매우 어려움
비트코인에서는 SHA256 Hash를 많이 사용합니다.
그리고 Hash256은 아래처럼 SHA256을 두 번 적용하는 방식입니다.
SHA256(SHA256(data))
비트코인에서는:
- 블록 해시(Block Hash)
- 트랜잭션 ID(TXID)
- 작업증명(PoW)
등에서 Hash256이 사용됩니다.
주소(Address)는 어떻게 만들어질까
주소 생성 흐름을 간단히 정리하면 다음과 같습니다.

즉, 주소는 공개키를 그대로 사용하는 것이 아니라 여러 단계 Hash 과정을 거쳐 생성됩니다.
HD Wallet(Hierarchical Deterministic Wallet)이란 무엇일까
과거 비트코인 지갑은 주소 하나만 사용하는 경우가 많았습니다.
하지만 현대 비트코인 지갑은 대부분 HD Wallet 구조를 사용합니다.
HD Wallet은 하나의 니모닉(Mnemonic)으로
거의 무한에 가까운 주소를 계속 생성할 수 있는 구조입니다.
흐름은 다음과 같습니다.

즉, 지갑은 하나의 니모닉만으로도 매우 많은 주소를 관리할 수 있습니다.
왜 주소를 계속 새로 만들까
비트코인에서는 주소 재사용을 줄이는 것이 프라이버시에 유리합니다.
같은 주소를 계속 사용하면 거래 흐름을 추적하기 쉬워질 수 있기 때문입니다.
그래서 현대 비트코인 지갑은 비트코인을 받을 때마다 새 주소를 자동 생성하는 경우가 많습니다.
확장 공개키(xpub)란 무엇일까
비트코인을 조금 공부하다 보면 xpub, ypub, zpub 같은 용어를 보게 됩니다.
처음에는 공개키(Public Key)와 무엇이 다른지 저도 꽤 헷갈렸습니다.
xpub는 단순한 공개키 하나가 아니라 여러 개의 비트코인 주소를 생성할 수 있는 “확장 공개키(Extended Public Key)”입니다.
xpub의 역할
xpub는 개인키 없이도 여러 개의 주소를 생성할 수 있게 해줍니다.
즉:
xpub → 주소 생성 가능은 가능하지만,
xpub → 비트코인 전송은 불가능합니다.
비트코인을 실제로 전송하려면 개인키(Private Key)가 필요합니다.
xpub는 어디에 사용할까
대표적인 사용 예시는 읽기 전용 지갑(Watch-only Wallet)입니다.

예를 들어:
- NAS에서 Bitcoin Core + Fulcrum 운영
- 모바일에서는 잔액만 조회
같은 구조를 만들 때 xpub를 사용할 수 있습니다.
xpub만 넣으면:
- 주소 생성 가능
- 잔액 조회 가능
- 거래 내역 조회 가능
하지만 비트코인 전송은 불가능합니다.
즉, 개인키를 모바일에 넣지 않고도 지갑 상태를 확인할 수 있습니다.
xpub도 조심해야 하는 이유
xpub는 개인키처럼 직접 비트코인을 훔칠 수는 없습니다.
하지만:
- 주소들
- 거래 흐름
- 잔액 내역
을 추적할 수 있기 때문에 완전히 공개적인 정보로 보는 것도 조심할 필요가 있습니다.
즉:
- 개인키 = 자산 사용 권한
- xpub = 지갑 전체 조회 권한
에 가까운 개념입니다.
xpub, ypub, zpub 차이
| 형식 | 주로 사용하는 주소 |
|---|---|
| xpub | Legacy |
| ypub | SegWit(P2SH) |
| zpub | Native SegWit(bech32) |
예를 들어 bc1q... 주소를 사용하는 지갑에서는 zpub를 사용하는 경우가 많습니다.
HD Wallet 경로(Path)란 무엇일까
비트코인 지갑을 조금 공부하다 보면 아래와 같은 형태를 보게 됩니다.
- m/44’/0’/0′
- m/49’/0’/0′
- m/84’/0’/0′
처음 보면 암호처럼 느껴질 수 있지만, 이것은 HD Wallet(Hierarchical Deterministic Wallet)에서 주소를 생성하는 규칙인 “파생 경로(Derivation Path)”를 의미합니다.
쉽게 말하면:
어떤 방식의 비트코인 주소를 생성할 것인지 정하는 규칙이라고 이해하면 됩니다.
m 은 무엇을 의미할까
경로의 가장 앞에 있는 m 은:
Master
즉 “마스터 키(Master Key)”를 의미합니다.
예를 들어:
m/84’/0’/0′ 는:
마스터 키에서 시작해서 특정 규칙으로 주소를 생성한다는 의미입니다.
44, 49, 84의 차이
여기서 가장 중요한 것은 첫 번째 숫자입니다.
| 경로 | 주소 형식 | 대표 주소 |
|---|---|---|
| m/44’/0’/0′ | Legacy | 1… |
| m/49’/0’/0′ | SegWit(P2SH) | 3… |
| m/84’/0’/0′ | Native SegWit | bc1q… |
즉:
- 44 = 오래된 Legacy 방식
- 49 = 중간 단계 SegWit 방식
- 84 = 최신 Native SegWit 방식
이라고 이해하면 됩니다.
왜 같은 니모닉인데 주소가 달라질까
여기서 중요한 점이 있습니다.
같은 니모닉(Mnemonic)을 사용하더라도:
- m/44
- m/49
- m/84
중 어떤 경로(Path)를 사용하는지에 따라 전혀 다른 주소가 생성됩니다.
즉, 같은 니모닉 다른 경로(Path) = 다른 주소 집합이 됩니다.
그래서 지갑 복구 시에는
니모닉만 맞는다고 끝나는 것이 아니라,
어떤 Derivation Path를 사용했는지도 매우 중요합니다.
Taproot는 무엇일까
최신 Taproot 주소는:
bc1p…
형태를 사용합니다.
이 경우는 보통 아래 경로를 사용합니다.
m/86’/0’/0′
즉:
| 경로 | 주소 |
|---|---|
| m/44 | 1… |
| m/49 | 3… |
| m/84 | bc1q… |
| m/86 | bc1p… |
처럼 발전해왔다고 이해하면 전체 흐름이 조금 더 잘 보입니다.
비트코인은 실제로 어떻게 전송될까
처음에는 “비트코인을 보낸다”는 표현 때문에 실제 코인이 이동한다고 생각하기 쉽습니다.
하지만 실제 구조는 조금 다릅니다.
비트코인 전송은 블록체인에 새로운 거래 기록(Transaction)을 추가하는 과정에 가깝습니다.
전체 흐름은 다음과 같습니다.

1단계. 상대방 주소 입력
보내는 사람이 받는 사람의 비트코인 주소(Address)를 입력합니다.
2단계. 지갑이 거래(Transaction) 생성
지갑은 어떤 비트코인을 사용할지 계산하고 새로운 거래(Transaction)를 만듭니다.
3단계. 개인키(Private Key)로 서명(Signature)
지갑은 개인키를 이용해 “이 비트코인을 사용할 권한이 있다”는 전자 서명을 만듭니다.
4단계. 네트워크 전파
서명된 거래는 비트코인 네트워크 전체로 전파됩니다.
5단계. 채굴자가 검증
채굴자는 거래가 올바른지 검증합니다.
6단계. 블록에 포함
검증된 거래는 블록에 포함됩니다.
7단계. 블록체인 기록 완료
새 블록이 추가되면 거래가 공식 기록됩니다.
즉, 비트코인 전송은 실제 코인이 이동하는 것이 아니라 블록체인 기록이 변경되는 구조라고 이해하는 것이 더 정확했습니다.
실제 지갑 구성 예시: Keystone과 BlueWallet 역할 분리
최근에는 단순히 지갑 앱 하나만 사용하는 것이 아니라 역할을 나누어 사용하는 구조도 많이 사용됩니다.
예를 들어:
- Keystone Wallet
- BlueWallet
- Bitcoin Core + Fulcrum
조합입니다.
Keystone Wallet의 역할
Keystone Wallet은 하드웨어 지갑입니다.
핵심 역할은:
- 개인키(Private Key) 보관
- 거래(Transaction) 서명(Signature)
입니다.
즉, 실제 비트코인을 사용할 수 있는 가장 중요한 정보인 개인키를 인터넷과 분리된 장치 안에서 안전하게 보관하는 역할을 합니다.
BlueWallet의 역할
BlueWallet은 주로 다음 역할을 담당합니다.
- 거래(Transaction) 작성
- 거래(Transaction) 제출(Broadcast)
- 잔액 조회
- 주소(Address) 생성
- 네트워크 연결
즉, 실제 사용자 인터페이스(UI)를 담당하는 쪽에 가깝습니다.
실제 전송 구조
구조를 단순화하면 다음과 같습니다.
BlueWallet
↓
거래(Transaction) 생성
↓
Keystone Wallet
↓
개인키(Private Key)로 서명(Signature)
↓
BlueWallet
↓
비트코인 네트워크 전송(Broadcast)
즉:
- BlueWallet → 거래 생성
- Keystone → 거래 서명
역할로 분리되는 구조입니다.
QR 기반 Air-gapped 구조
Keystone은 USB 대신 QR 코드 기반 서명을 많이 사용합니다.
흐름은 다음과 같습니다.

즉, 개인키가 인터넷 연결 장치로 직접 전달되지 않는 구조입니다.
이 방식을 Air-gapped Wallet 구조라고 부르기도 합니다.
정리
이번 글에서는 비트코인 지갑의 기본 구조를 정리해보았습니다.
핵심 내용을 다시 정리하면 다음과 같습니다.
- 비트코인은 지갑 안에 저장되는 것이 아니라 블록체인에 기록된다
- 비트코인 지갑은 개인키를 관리하는 도구다
- 주소(Address)는 공개 가능하지만 개인키(Private Key)는 절대 공개하면 안 된다
- HD Wallet은 하나의 니모닉으로 여러 주소를 생성하는 구조다
- xpub는 읽기 전용 지갑 구조에 활용될 수 있다
- m/44, m/49, m/84 같은 Derivation Path에 따라 주소 형식이 달라진다
- 비트코인 전송(Transaction)은 블록체인 기록을 변경하는 과정에 가깝다
- 하드웨어 지갑은 개인키를 인터넷과 분리해 보안성을 높인다
- Bitcoin Core + Fulcrum을 사용하면 개인 노드 기반 지갑 구조를 만들 수 있다
처음에는 용어가 어렵게 느껴질 수 있지만, 전체 구조를 이해하면 비트코인 지갑이 어떻게 동작하는지 조금씩 보이기 시작하는 것 같습니다.
다음 글 예고
이번 글에서는 비트코인 지갑의 기본 개념을 정리했습니다.
다음 글에서는 지갑 복구와 관련된 핵심 개념인 “니모닉(Mnemonic)” 또는 복구 문구(Seed Phrase)에 대해 정리해보려고 합니다.
왜 12개 또는 24개의 단어가 중요한지, 니모닉이 개인키와 어떤 관계를 가지는지, 그리고 안전하게 보관하려면 무엇을 주의해야 하는지도 함께 살펴볼 예정입니다.
※ 이 글은 비트코인 지갑의 기본 개념을 개인적인 학습과 경험을 바탕으로 정리한 참고용 글입니다. 특정 지갑이나 투자 방식을 권유하는 내용은 아니며, 개인키와 지갑 보안 관리는 사용자 본인의 책임하에 신중하게 진행하시기 바랍니다.