공개키와 개인키: 지갑의 실체
지갑은 코인이 아니라 키를 담습니다. 개인키는 서명하고, 공개키와 주소는 개인키에서 한 방향으로 만들어져 공유해도 됩니다. 원리를 설명합니다.
핵심 답변: 지갑에 들어 있는 것은 코인이 아니라 키 한 쌍입니다. 개인키는 거래에 서명하는 비밀 숫자이고, 공개키는 개인키에서 계산되며, 주소는 다시 공개키에서 계산됩니다. 이 수학은 한 방향으로만 작동하므로 주소는 마음껏 공유해도 되지만, 개인키와 그것을 만들어 내는 시드 문구는 절대 본인의 통제를 벗어나면 안 됩니다.
키 쌍을 쉬운 말로
앞면이 유리로 된 우편함을 떠올려 보십시오. 주소는 누구나 편지를 넣을 수 있는 투입구입니다. 공개키는 누구나 들여다볼 수 있는 자물쇠의 구조입니다. 개인키는 그 우편함을 열 수 있는 유일한 열쇠입니다. 다른 사람은 주소만 알면 코인을 보낼 수 있지만, 코인을 꺼내 옮길 수 있는 사람은 개인키를 가진 사람뿐입니다.
정확히 구분해야 할 정의는 세 가지입니다.
- 개인키: 아주 큰 무작위 숫자입니다. developer.bitcoin.org에 따르면 표준 비트코인 개인키는 256비트 숫자이고, ethereum.org는 이더리움 개인키를 16진수 64자로 설명합니다(모두 2026-11-01 확인).
- 공개키: 타원곡선 암호를 이용해 개인키로부터 계산한 숫자입니다(비트코인과 이더리움 계정 모두 secp256k1 곡선을 사용합니다).
- 주소: 공개키에서 만든 더 짧고 오류 검사가 포함된 형태입니다. 이더리움에서는 공개키의 Keccak-256 해시값 마지막 20바이트에
0x를 붙인 것입니다.
작동 원리: 서명과 검증
송금할 때 지갑은 "주소 A에서 주소 B로 0.01 BTC를 보낸다"는 거래를 만들고 개인키로 서명합니다. 네트워크의 모든 노드는 공개키로 이 서명을 검증해 짝이 되는 개인키가 만든 것인지 확인할 수 있지만, 개인키 자체는 결코 보지 못합니다. ethereum.org는 공개키로부터 개인키를 알아낼 수 없다고 분명히 밝힙니다(2026-11-01 확인). 이 한 방향 성질 덕분에 주소를 공개해도 안전합니다.
예를 들어 보겠습니다. 민수가 지영에게 돈을 보내려 합니다. 지영은 지갑의 받기 화면을 열어 주소를 민수에게 보냅니다. 민수의 지갑은 민수의 개인키로 송금 거래에 서명해 네트워크에 전파하고, 채굴자나 검증자는 서명을 확인한 뒤 블록에 담습니다. 이 과정에서 지영은 민수의 개인키를 모르고, 민수도 지영의 개인키를 모릅니다. 송금의 전체 흐름은 거래가 이루어지는 방식에서 볼 수 있습니다.
요즘 지갑은 여기서 한 걸음 더 나아가 BIP32 표준에 따라 하나의 시드에서 키 쌍의 나무 전체를 만들어 냅니다. 백업 하나로 많은 주소를 지킬 수 있는 이유입니다. 이 시드는 보통 12개에서 24개 단어로 된 BIP39 문구로 보여 주므로, 시드 문구·개인키·비밀번호의 차이 수업도 이 수업만큼 중요합니다.
공유해도 되는 것과 절대 안 되는 것
| 항목 | 정체 | 공유 가능 여부 | 남이 손에 넣으면 |
|---|---|---|---|
| 주소 | 다른 사람이 송금하는 목적지 | 가능 | 그 주소의 온체인 기록을 볼 수 있음 |
| 공개키 | 개인키에서 만든 숫자 | 대체로 가능 | 위와 같으며 개인키로 되돌릴 수 없음 |
| 확장 공개키(xpub) | 많은 하위 공개키를 만들 수 있음(BIP32) | 신뢰하는 서비스에만 | 지갑 전체의 주소와 잔고를 볼 수 있음 |
| 개인키 | 한 주소의 거래에 서명 | 절대 불가 | 그 주소의 자산을 옮길 수 있음 |
| 시드 문구 | 지갑의 모든 개인키를 다시 만듦 | 절대 불가 | 지갑의 모든 자산을 옮길 수 있음 |
확장 공개키 줄을 눈여겨보십시오. BIP32에 따르면 확장 공개키로 하위 공개키를 재구성할 수 있으므로, 공유해도 도난 위험은 없지만 금융 기록 전체가 드러납니다.
단계별 안전한 입금 받기
- 지갑을 열고 올바른 코인과 올바른 네트워크를 골라 받기를 누릅니다(예를 들어 이더리움 네트워크의 USDT와 트론 네트워크의 USDT는 다릅니다).
- 복사 버튼으로 주소를 복사하거나 QR 코드를 보여 줍니다. 오래된 대화나 거래 내역에서 복사한 주소는 다시 쓰지 않습니다.
- 보내는 쪽 입력란에 붙여 넣은 뒤 앞뒤 4~6글자를 비교합니다. 클립보드 악성코드와 "비슷하게 생긴" 주소는 사람들이 확인하지 않는다는 점을 노립니다.
- 하드웨어 지갑을 쓴다면 기기 화면에서도 주소를 확인합니다. 하드웨어 지갑 입문을 참고하십시오.
- 먼저 소액을 보내고 블록 탐색기 사용법대로 도착을 확인합니다. 네트워크 수수료는 수시로 바뀌므로 비트코인 수수료 추정기로 현재 상황을 볼 수 있습니다.
- 거래소에서 출금할 때는 확인을 마친 주소를 출금 주소 화이트리스트에 등록하는 것을 고려합니다.
흔한 실수와 위험
- "환불을 받으려면 개인키가 필요합니다": 돈을 보내 주는 데 개인키는 전혀 필요 없습니다. 이런 요구는 모두 사기입니다.
- 아무 웹사이트에서 키 만들기: 사이트가 사본을 보관할 수 있습니다. 평판 있는 지갑 소프트웨어나 하드웨어 기기가 본인 기기에서 키를 만들게 하십시오.
- 남이 준 개인키 가져오기: 사기꾼은 잔고가 있는 "공짜" 키를 보내 수수료를 입금하게 만든 뒤 곧바로 빼 갑니다.
- 주소 오염 공격: 공격자가 본인 주소와 닮은 주소에서 아주 작은 금액을 보내, 거래 내역에서 잘못된 주소를 복사하게 만듭니다.
- 잘못된 네트워크 선택: 겉보기에 같은 주소라도 다른 체인으로 보내면 받는 플랫폼에서 입금되지 않을 수 있습니다.
- 개인키를 평문으로 저장하기: 이메일, 클라우드 메모, 사진 모두 위험합니다.
자주 묻는 질문
주소와 공개키는 같은 것인가요?
아닙니다. 주소는 공개키에서 만들어지며(이더리움에서는 공개키의 해시에서 추출) 더 짧고 형식이 붙어 있습니다. 둘 다 공유해도 됩니다.
남이 제 주소를 알면 지갑을 해킹할 수 있나요?
주소만으로는 불가능합니다. 수학이 거꾸로 작동하지 않기 때문입니다. 다만 잔고와 거래 기록을 볼 수 있으므로 피싱 대상이 될 수 있습니다.
비트코인 지갑이 매번 새 주소를 보여 주는 이유는 무엇인가요?
HD 지갑은 하나의 시드에서 많은 주소를 만들며, 새 주소를 쓰면 개인정보 보호에 도움이 됩니다. 모든 주소는 같은 백업으로 복구됩니다.
원본 개인키를 직접 볼 일이 있나요?
거의 없습니다. 대부분의 이용자는 시드 문구 백업만 있으면 충분합니다. 개인키를 따로 내보내면 노출 위험이 커지므로 이유를 알지 못한다면 하지 마십시오.
결론
개인키는 서명하고, 공개키는 검증하며, 주소는 받습니다. 주소는 자유롭게 공유하되 개인키와 시드 문구는 철저히 지키고, 송금 전에는 매번 주소를 확인하십시오. 다음으로 지갑과 개인키 보안에서 보관 방법을 익히고, 리서치 글 시드 문구 보안도 읽어 보십시오.
교육용 정보이며 투자 조언이 아닙니다. 사실 확인일 2026-11-01.