Bitcoin Key & Address Explorer
Bitcoin의 암호학적 기반을 탐구하십시오. private key, public key, 주소 파생을 시각적으로 보여주는 교육 도구.
Bitcoin의 암호학적 기반을 탐구해 보십시오.
private key, public key, 주소가 서로 어떻게 연관되어 있는지 시각적으로 확인할 수 있습니다.
이 교육용 도구는 Bitcoin key와 주소 유형의 구조와 형식을 보여줍니다. 무작위 예제 값을 생성하여 파생 체인의 각 단계가 데이터를 어떻게 변환하는지 확인하십시오——raw entropy부터 매일 사용하는 주소까지.
교육 목적으로만 사용하십시오
웹사이트에 표시된 key를 실제 자금에 절대 사용하지 마십시오. 이 도구는 Bitcoin key와 주소의 구조와 형식을 보여주는 것이며, 실제 암호학적 파생을 수행하지 않습니다. 여기서 생성되는 값은 올바른 prefix, 길이, 인코딩 형식을 설명하기 위한 무작위 예제입니다. 실제 key 파생에는 안전한 오프라인 소프트웨어가 필요합니다.
Key & Address Explorer
아래 버튼을 클릭하여 새로운 무작위 예제 값 세트를 생성합니다. 각 생성은 Web Crypto API를 사용하여 무작위 바이트를 얻은 다음, Bitcoin의 실제 key 및 주소 구조와 일치하도록 형식을 지정합니다.
Private Key (Raw)
무작위 256비트 숫자 (32바이트)
--
64자 HEX = 256비트의 entropy, crypto.getRandomValues()를 통해 생성됩니다
Wallet Import Format (WIF)
Base58Check로 인코딩된 private key
--
구조: version 바이트 (0x80) + private key 바이트 + 압축 플래그 (0x01) + 4바이트 checksum. checksum은 SHA-256(SHA-256(payload))의 처음 4바이트입니다. 결과는 Base58로 인코딩됩니다. Compressed WIF key는 K 또는 L로 시작하고, uncompressed는 5로 시작합니다.
참고 위 예제는 올바른 형식 구조를 보여줍니다. 실제 WIF 변환에는 SHA-256 이중 해싱을 사용한 Base58Check 인코딩이 필요합니다.
압축된 Public Key
secp256k1 타원 곡선 곱셈을 통한 33바이트
--
파생: public key는 P = k * G로 계산됩니다. 여기서 k는 private key이고 G는 secp256k1의 generator point입니다. 압축 형식은 prefix 02 (y가 짝수) 또는 03 (y가 홀수) 뒤에 32바이트 x 좌표가 옵니다. 이것은 일방향 함수입니다——public key로부터 private key를 유도할 수 없습니다.
주소 형식
public key hash의 다양한 인코딩
--
1로 시작 | 약 25-34자 | Base58Check(0x00 + RIPEMD160(SHA256(pubkey)) + checksum)
--
3으로 시작 | 약 25-34자 | Base58Check(0x05 + RIPEMD160(SHA256(script)) + checksum)
--
bc1q로 시작 | 약 42자 | Bech32(hrp + witness version 0 + 20바이트 keyhash)
--
bc1p로 시작 | 약 62자 | Bech32m(hrp + witness version 1 + 32바이트 tweaked pubkey)
파생 흐름도
아래 다이어그램은 무작위 entropy부터 Bitcoin 주소까지의 전체 체인을 보여줍니다. 각 변환은 일방향 암호학적 연산입니다——항상 앞으로는 갈 수 있지만 뒤로는 결코 갈 수 없습니다.
무작위 256비트 숫자
Private Key (HEX)
WIF 형식
Base58Check 인코딩
Version + Key + Flag + Checksum
Public Key
secp256k1 (k * G)
RIPEMD160(SHA256(pubkey))
20바이트 hash
P2PKH
1...
P2SH
3...
SegWit
bc1q...
Taproot
bc1p...
타원 곡선 암호 이해하기
Bitcoin은 유한체에서 y² = x³ + 7 방정식으로 정의되는 secp256k1 타원 곡선을 사용합니다. 이 특정 곡선은 효율성과 알려진 백도어가 없다는 점 때문에 선택되었습니다——암호학 커뮤니티에서 우려를 불러일으킨 일부 NIST 곡선과 달리 말입니다.
점 곱셈
private key k는 generator point G와 곱해져 public key P = k * G를 생성합니다. 이는 타원 곡선에서 반복되는 점 덧셈을 사용합니다. 이 연산은 한 방향으로는 계산적으로 쉽지만 역방향으로는 실행 불가능합니다——이를 타원 곡선 이산 로그 문제(ECDLP)라고 합니다.
키 공간 크기
secp256k1 곡선의 차수는 대략 2256입니다——약 1.16 x 1077개의 가능한 private key가 존재합니다. 참고로, 관측 가능한 우주의 추정 원자 수는 약 1080개입니다. 현재 또는 예측 가능한 기술로 private key를 무차별 대입하는 것은 계산적으로 불가능합니다.
압축 vs 비압축
타원 곡선 점은 x와 y 좌표를 모두 가집니다(비압축 시 64바이트). y는 곡선 방정식을 사용하여 x에서 파생될 수 있으므로, compressed key는 x와 y의 홀짝성을 나타내는 prefix 바이트만 저장합니다——크기가 65바이트에서 33바이트로 감소합니다. 현대 Bitcoin은 compressed public key만 독점적으로 사용합니다.
Schnorr 서명 (Taproot)
Taproot는 ECDSA에 비해 여러 가지 이점을 제공하는 Schnorr 서명(BIP 340)을 도입했습니다: 증명 가능하게 안전하며, 효율적인 다중 서명 집계가 가능하고, 복잡한 지출 조건을 체인상에서 단순한 것과 구별할 수 없게 만듭니다——프라이버시를 크게 향상시키고 수수료를 줄입니다.
Private Key 형식 설명
Bitcoin private key는 본질적으로 256비트 숫자일 뿐이지만 여러 형식으로 표현될 수 있습니다. 각 형식은 서로 다른 목적을 수행합니다——raw 계산부터 사람이 읽을 수 있는 가져오기/내보내기까지.
| 형식 | Prefix | 길이 | 설명 |
|---|---|---|---|
| Raw HEX | — | 64자 | 일반 16진수, 32바이트 |
| WIF (비압축) | 5 | 51자 | Base58Check, 압축 플래그 없음 |
| WIF (압축) 권장 | K 또는 L | 52자 | Base58Check, 0x01 압축 플래그 포함 |
| Mini Private Key | S | 30자 | 컴팩트 형식, 실물 코인에서 사용 |
주소 인코딩: Base58Check vs Bech32
Bitcoin은 주소에 대해 근본적으로 다른 두 가지 인코딩 방식을 사용합니다. 차이점을 이해하면 주소 형식이 왜 그렇게 다르게 보이는지, 그리고 왜 새로운 형식이 우수하다고 간주되는지 알 수 있습니다.
- Base58 알파벳 사용: 1-9, A-Z, a-z, 시각적 모호성을 피하기 위해 0, O, I, l 제외
- 이중 SHA-256 해시에서 가져온 4바이트 checksum을 payload에 추가
- 대소문자 구분(혼합 대소문자), QR 코드의 효율이 떨어짐
- version 바이트가 prefix를 결정: 0x00 = "1...", 0x05 = "3..."
- 오류는 감지할 수 있지만 어떤 문자가 잘못되었는지는 식별할 수 없음
- 32자 소문자 알파벳 사용: a-z(b, i, o 제외) + 숫자 0-9(1 제외)
- BCH 오류 정정 코드가 최대 4자 오류를 감지하고 위치를 찾을 수 있음
- 소문자만 사용——더 효율적인 QR 코드(영숫자 모드)
- Human-readable part (bc) + separator (1) + data + 6자 checksum
- Bech32m (BIP 350)은 원본 Bech32의 길이 확장 가변성 문제를 수정
왜 서로 다른 주소 유형이 존재하는가?
Bitcoin의 주소 형식 진화는 전체 네트워크와의 하위 호환성을 유지하면서 특정 제한을 해결한 수년간의 프로토콜 개선을 반영합니다.
P2PKH — 원조
Bitcoin 자체와 함께 도입되었습니다. Pay-to-Public-Key-Hash는 주소에서 사용하기 전에 public key를 해싱하여 보안 계층을 추가합니다. ECDSA가 깨지더라도 public key가 공개되지 않은 P2PKH 주소의 자금은 해시 함수로 보호됩니다.
P2SH — 프로그래밍 가능한 스크립트
BIP 16은 Pay-to-Script-Hash를 도입하여 주소를 간단하게 유지하면서 복잡한 지출 조건(다중 서명, 타임락)을 허용했습니다. 발신자는 스크립트를 알 필요가 없습니다——그저 "3..." 주소로 보내면 됩니다. 이후 SegWit 호환성을 위한 wrapper가 되었습니다.
Bech32 — Segregated Witness
SegWit 업그레이드(BIP 141/173)는 트랜잭션 데이터에서 서명 데이터를 분리하여 트랜잭션 가변성을 수정하고 Lightning Network를 가능하게 했습니다. Native SegWit 주소는 Bech32 인코딩을 사용하여 트랜잭션 가중치를 약 30-40% 줄이고 이에 따라 수수료를 낮춥니다.
Bech32m — Taproot
Taproot 업그레이드(BIP 340/341/342)는 Schnorr 서명, MAST(Merkelized Alternative Script Trees), 그리고 향상된 프라이버시를 도입했습니다. 복잡한 다중 서명 트랜잭션은 체인상에서 단순한 지불과 구별할 수 없게 됩니다. 원본 Bech32의 미묘한 checksum 문제를 수정하기 위해 Bech32m 인코딩(BIP 350)을 사용합니다.
자주 묻는 질문
private key와 public key의 관계는 무엇입니까?
WIF 형식은 왜 5, K, 또는 L로 시작합니까?
누군가 내 private key를 추측할 수 있습니까?
Bech32와 Bech32m의 차이점은 무엇입니까?
Bitcoin은 왜 public key를 직접 사용하지 않고 해시화합니까?
이 도구를 사용하는 것이 안전합니까? 생성된 값은 실제입니까?
지식을 활용하십시오
이제 Bitcoin key와 주소가 어떻게 작동하는지 이해했으니 NoxHash와 함께 마이닝을 시작하십시오. 암호 기술은 저희가 처리합니다——고객님은 보상을 받으시면 됩니다. 안전한 key 관리, 모든 주소 형식으로의 즉시 출금.