Trình khám phá khóa & địa chỉ Bitcoin

Khám phá nền tảng mật mã của Bitcoin. Công cụ giáo dục trực quan về cách dẫn xuất khóa riêng tư, khóa công khai và địa chỉ.

Khám phá nền tảng mật mã học của Bitcoin.
Xem cách khóa riêng tư, khóa công khai và địa chỉ liên quan đến nhau — trực quan.

Công cụ giáo dục này minh họa cấu trúc và định dạng của các loại khóa và địa chỉ Bitcoin. Tạo các giá trị ví dụ ngẫu nhiên để xem cách mỗi bước trong chuỗi dẫn xuất biến đổi dữ liệu — từ entropy thô đến các địa chỉ bạn sử dụng hàng ngày.

Chỉ Dành Cho Mục Đích Giáo Dục

Không bao giờ sử dụng các khóa hiển thị trên bất kỳ trang web nào cho tiền thật. Công cụ này minh họa cấu trúc và định dạng của các khóa và địa chỉ Bitcoin, không phải dẫn xuất mật mã thực tế. Các giá trị được tạo ở đây là các ví dụ ngẫu nhiên nhằm minh họa tiền tố, độ dài và định dạng mã hóa đúng. Dẫn xuất khóa thực tế yêu cầu phần mềm ngoại tuyến an toàn.

Trình Khám Phá Khóa & Địa Chỉ

Nhấn nút bên dưới để tạo một bộ giá trị ví dụ ngẫu nhiên mới. Mỗi lần tạo sử dụng Web Crypto API để lấy các byte ngẫu nhiên, sau đó định dạng chúng để khớp với cấu trúc khóa và địa chỉ thực của Bitcoin.

1

Khóa Riêng Tư (Raw)

Số ngẫu nhiên 256-bit (32 byte)

--

64 ký tự hex = 256 bit entropy, được tạo qua crypto.getRandomValues()

2

Định Dạng Wallet Import (WIF)

Khóa riêng tư mã hóa Base58Check

--

Cấu trúc: Byte phiên bản (0x80) + byte khóa riêng tư + cờ nén (0x01) + checksum 4 byte. Checksum là 4 byte đầu tiên của SHA-256(SHA-256(payload)). Kết quả sau đó được mã hóa Base58. Khóa WIF nén bắt đầu bằng K hoặc L; không nén bắt đầu bằng 5.

Lưu ý Ví dụ trên hiển thị cấu trúc định dạng đúng. Việc chuyển đổi WIF thực tế yêu cầu mã hóa Base58Check với hàm băm kép SHA-256.

3

Khóa Công Khai Nén

33 byte qua phép nhân đường cong elliptic secp256k1

--

Dẫn xuất: Khóa công khai được tính là P = k * G trong đó k là khóa riêng tư và G là điểm tạo secp256k1. Định dạng nén sử dụng tiền tố 02 (y chẵn) hoặc 03 (y lẻ) theo sau là tọa độ x 32 byte. Đây là hàm một chiều — bạn không thể suy ra khóa riêng tư từ khóa công khai.

4

Các Định Dạng Địa Chỉ

Các cách mã hóa khác nhau của hash khóa công khai

Legacy P2PKH Định dạng ví dụ

--

Bắt đầu bằng 1 | ~25-34 ký tự | Base58Check(0x00 + RIPEMD160(SHA256(pubkey)) + checksum)

SegWit P2SH Định dạng ví dụ

--

Bắt đầu bằng 3 | ~25-34 ký tự | Base58Check(0x05 + RIPEMD160(SHA256(script)) + checksum)

Native SegWit Định dạng ví dụ

--

Bắt đầu bằng bc1q | ~42 ký tự | Bech32(hrp + witness version 0 + 20-byte keyhash)

Taproot Mới nhất Định dạng ví dụ

--

Bắt đầu bằng bc1p | ~62 ký tự | Bech32m(hrp + witness version 1 + 32-byte tweaked pubkey)

Sơ Đồ Luồng Dẫn Xuất

Sơ đồ dưới đây hiển thị chuỗi hoàn chỉnh từ entropy ngẫu nhiên đến địa chỉ Bitcoin. Mỗi phép biến đổi là một thao tác mật mã một chiều — bạn luôn có thể đi tiếp nhưng không bao giờ đi ngược lại.

Số Ngẫu Nhiên 256-bit

Khóa Riêng Tư (Hex)

Định Dạng WIF

Mã hóa Base58Check

Version + Key + Flag + Checksum

Khóa Công Khai

secp256k1 (k * G)

RIPEMD160(SHA256(pubkey))

Hash 20 byte

P2PKH

1...

P2SH

3...

SegWit

bc1q...

Taproot

bc1p...

Tìm Hiểu Mật Mã Học Đường Cong Elliptic

Bitcoin sử dụng đường cong elliptic secp256k1, được định nghĩa bởi phương trình y² = x³ + 7 trên trường hữu hạn. Đường cong cụ thể này được chọn vì hiệu quả và không có backdoor đã biết — không giống một số đường cong NIST đã gây lo ngại trong cộng đồng mật mã học.

Phép Nhân Điểm

Khóa riêng tư k được nhân với điểm tạo G để tạo ra khóa công khai P = k * G. Phép toán này sử dụng phép cộng điểm lặp lại trên đường cong elliptic. Thao tác dễ thực hiện theo một chiều nhưng không khả thi để đảo ngược — đây là Bài Toán Logarit Rời Rạc Đường Cong Elliptic (ECDLP).

Kích Thước Không Gian Khóa

Đường cong secp256k1 có bậc xấp xỉ 2256 — khoảng 1,16 x 1077 khóa riêng tư có thể. Để so sánh, số nguyên tử ước tính trong vũ trụ quan sát được là khoảng 1080. Tấn công brute-force vào khóa riêng tư là không thể về mặt tính toán với công nghệ hiện tại hoặc có thể thấy trước.

Nén vs Không Nén

Một điểm đường cong elliptic có cả tọa độ x và y (64 byte không nén). Vì y có thể được suy ra từ x bằng phương trình đường cong, các khóa nén chỉ lưu x cộng một byte tiền tố cho biết tính chẵn lẻ của y — giảm kích thước từ 65 xuống 33 byte. Bitcoin hiện đại dùng khóa công khai nén độc quyền.

Chữ Ký Schnorr (Taproot)

Taproot giới thiệu chữ ký Schnorr (BIP 340), có một số ưu điểm so với ECDSA: có thể chứng minh an toàn, cho phép tổng hợp chữ ký đa chữ ký hiệu quả, và làm cho các điều kiện chi tiêu phức tạp không thể phân biệt với các điều kiện đơn giản trên chuỗi — cải thiện đáng kể quyền riêng tư và giảm phí.

Giải Thích Các Định Dạng Khóa Riêng Tư

Khóa riêng tư Bitcoin về cơ bản chỉ là một số 256-bit, nhưng nó có thể được biểu diễn ở nhiều định dạng. Mỗi định dạng phục vụ một mục đích khác nhau — từ tính toán thô đến nhập/xuất dễ đọc.

Định Dạng Tiền Tố
Raw Hex —
WIF (Không Nén) 5
WIF (Nén) Khuyến Nghị K hoặc L
Mini Private Key S

Mã Hóa Địa Chỉ: Base58Check vs Bech32

Bitcoin sử dụng hai sơ đồ mã hóa về cơ bản khác nhau cho địa chỉ. Hiểu sự khác biệt giải thích tại sao các định dạng địa chỉ trông rất khác nhau và tại sao các định dạng mới hơn được coi là vượt trội hơn.

Base58Check Legacy & P2SH
  • Dùng bảng chữ Base58: 1-9, A-Z, a-z, loại trừ 0, O, I, l để tránh nhầm lẫn thị giác
  • Checksum 4 byte từ hash SHA-256 kép được thêm vào payload
  • Phân biệt chữ hoa/thường (hỗn hợp), làm mã QR kém hiệu quả hơn
  • Byte phiên bản xác định tiền tố: 0x00 = "1...", 0x05 = "3..."
  • Có thể phát hiện lỗi nhưng không thể xác định ký tự nào bị sai
Bech32 / Bech32m SegWit & Taproot
  • Dùng bảng chữ thường 32 ký tự: a-z trừ b, i, o + chữ số 0-9 trừ 1
  • Mã sửa lỗi BCH có thể phát hiện tới 4 lỗi ký tự và xác định vị trí chúng
  • Chỉ chữ thường — mã QR hiệu quả hơn (chế độ chữ-số)
  • Phần dễ đọc (bc) + dấu phân cách (1) + dữ liệu + checksum 6 ký tự
  • Bech32m (BIP 350) sửa lỗi biến đổi độ dài trong Bech32 gốc

Tại Sao Có Các Loại Địa Chỉ Khác Nhau?

Sự phát triển định dạng địa chỉ Bitcoin phản ánh nhiều năm cải tiến giao thức, mỗi lần giải quyết các hạn chế cụ thể trong khi vẫn duy trì khả năng tương thích ngược với toàn bộ mạng.

2009

P2PKH — Bản Gốc

Được giới thiệu cùng với Bitcoin. Pay-to-Public-Key-Hash thêm một lớp bảo mật bằng cách băm khóa công khai trước khi sử dụng trong địa chỉ. Nếu ECDSA bị phá vỡ, tiền trong các địa chỉ P2PKH chưa tiết lộ khóa công khai vẫn được bảo vệ bởi hàm băm.

2012

P2SH — Script Có Thể Lập Trình

BIP 16 giới thiệu Pay-to-Script-Hash, cho phép các điều kiện chi tiêu phức tạp (đa chữ ký, time-lock) trong khi giữ địa chỉ đơn giản. Người gửi không cần biết script — họ chỉ gửi đến địa chỉ "3...". Sau này trở thành wrapper cho khả năng tương thích SegWit.

2017

Bech32 — Segregated Witness

Nâng cấp SegWit (BIP 141/173) tách dữ liệu chữ ký khỏi dữ liệu giao dịch, sửa lỗi transaction malleability và kích hoạt Lightning Network. Địa chỉ Native SegWit sử dụng mã hóa Bech32, giảm trọng số giao dịch ~30-40% và hạ phí tương ứng.

2021

Bech32m — Taproot

Nâng cấp Taproot (BIP 340/341/342) giới thiệu chữ ký Schnorr, MAST (Merkelized Alternative Script Trees), và cải thiện quyền riêng tư. Các giao dịch đa chữ ký phức tạp trở nên không thể phân biệt với các thanh toán đơn giản trên chuỗi. Sử dụng mã hóa Bech32m (BIP 350) để sửa lỗi checksum tinh tế trong Bech32 gốc.

Câu Hỏi Thường Gặp

Mối quan hệ giữa khóa riêng tư và khóa công khai là gì?
Khóa riêng tư là một số ngẫu nhiên 256-bit, và khóa công khai được suy ra từ nó bằng phép nhân đường cong elliptic trên đường cong secp256k1. Mối quan hệ toán học là P = k * G, trong đó k là khóa riêng tư, G là điểm tạo cố định trên đường cong, và P là điểm khóa công khai kết quả. Đây là hàm bẫy một chiều — tính toán khóa công khai từ khóa riêng tư là tầm thường, nhưng đảo ngược quá trình (tìm k cho P và G) là không khả thi về mặt tính toán. Tính bất đối xứng này là nền tảng bảo mật của Bitcoin.
Tại sao định dạng WIF bắt đầu bằng 5, K hoặc L?
Ký tự đầu được xác định bởi byte phiên bản và tổng độ dài payload. Khóa WIF không nén sử dụng byte phiên bản 0x80 với 33 byte payload (phiên bản + khóa 32 byte), tạo ra chuỗi Base58 luôn bắt đầu bằng "5". Khóa WIF nén thêm một byte 0x01 (tổng 34 byte), điều này dịch chuyển mã hóa Base58 để tạo các chuỗi bắt đầu bằng "K" hoặc "L". Điều này giúp dễ dàng phân biệt khóa nén và không nén chỉ bằng mắt nhìn.
Ai đó có thể đoán khóa riêng tư của tôi không?
Trên thực tế, không. Khóa riêng tư 256-bit có 2256 giá trị có thể — khoảng 1,16 x 1077. Ngay cả khi mọi máy tính trên Trái Đất thử hàng tỷ khóa mỗi giây, sẽ mất lâu hơn tuổi của vũ trụ để thử một phần nhỏ có ý nghĩa của không gian khóa. Rủi ro thực sự không phải là brute force mà là tạo số ngẫu nhiên kém, phần mềm độc hại, lừa đảo, hoặc lưu trữ khóa không đúng cách. Luôn sử dụng ví uy tín với bộ tạo số ngẫu nhiên mật mã thích hợp.
Sự khác biệt giữa Bech32 và Bech32m là gì?
Bech32 (BIP 173) là mã hóa gốc được dùng cho địa chỉ SegWit v0 (bc1q...). Tuy nhiên, một lỗ hổng tinh tế đã được phát hiện: chèn hoặc xóa ký tự "q" tại các vị trí cụ thể trong chuỗi Bech32 vẫn có thể tạo ra checksum hợp lệ. Bech32m (BIP 350) sửa điều này bằng cách sử dụng một hằng số khác trong thuật toán checksum. SegWit v0 (bc1q) tiếp tục dùng Bech32 gốc, trong khi SegWit v1+ (bc1p cho Taproot) dùng Bech32m. Chúng trông giống hệt nhau với người dùng — sự khác biệt nằm hoàn toàn ở phép tính checksum.
Tại sao Bitcoin băm khóa công khai thay vì dùng trực tiếp?
Địa chỉ Bitcoin được suy ra bằng cách băm khóa công khai qua SHA-256 rồi RIPEMD-160 (tạo ra hash 20 byte gọi là Hash160). Điều này mang lại ba lợi ích: (1) địa chỉ ngắn hơn — 20 byte so với 33 byte cho khóa công khai nén; (2) thêm một lớp kháng lượng tử — cho đến khi bạn chi tiêu từ một địa chỉ, khóa công khai của bạn được ẩn sau hai hàm băm; (3) bảo vệ chống lại các điểm yếu tiềm ẩn trong tương lai của ECDSA — ngay cả khi mật mã đường cong elliptic bị xâm phạm, tiền trong các địa chỉ chưa dùng vẫn được bảo vệ bởi các hàm băm.
Công cụ này có an toàn không? Các giá trị được tạo có phải thật không?
Công cụ này tạo các giá trị ví dụ ngẫu nhiên thuần túy cho mục đích giáo dục. Các khóa riêng tư là các số ngẫu nhiên thực sự, nhưng các địa chỉ hiển thị được định dạng để trông đúng (tiền tố đúng, độ dài đúng) mà không thực hiện dẫn xuất mật mã thực tế (đòi hỏi phép nhân secp256k1, SHA-256, RIPEMD-160 và mã hóa Base58Check/Bech32). Mọi thứ chạy phía máy khách trong trình duyệt của bạn — không có dữ liệu nào được gửi đến bất kỳ máy chủ nào. Không bao giờ sử dụng bất kỳ khóa hoặc địa chỉ nào hiển thị trên trang web cho tiền thật.
Bảo mật cấp doanh nghiệp

Áp Dụng Kiến Thức Vào Thực Tế

Giờ khi bạn đã hiểu cách khóa và địa chỉ Bitcoin hoạt động, hãy bắt đầu đào với NoxHash. Chúng tôi xử lý mật mã học — bạn thu lợi nhuận. Quản lý khóa an toàn, rút tiền tức thì đến bất kỳ định dạng địa chỉ nào.