Bỏ qua đến nội dung chính

Giải Thích Các Loại Địa Chỉ Tiền Mã Hóa: Legacy, SegWit, Taproot

Nếu bạn đã dùng Bitcoin một thời gian, hẳn bạn đã gặp các địa chỉ bắt đầu bằng "1", các địa chỉ bắt đầu bằng "3", và các địa chỉ bắt đầu bằng "bc1q" hoặc "bc1p". Đây không phải khác biệt về hình thức, mà đại diện cho những cách khóa và mở khóa tiền hoàn toàn khác nhau, với tác động lớn đến phí giao dịch, quyền riêng tư và chức năng.

Hướng dẫn này giải thích mọi loại địa chỉ Bitcoin phổ biến, cách chúng hoạt động ở mức kỹ thuật, ưu và nhược điểm, cũng như cách chọn loại phù hợp với nhu cầu của bạn. Chúng tôi cũng đề cập định dạng địa chỉ của Ethereum và các blockchain lớn khác.

Các Loại Địa Chỉ Bitcoin

Địa chỉ Legacy (P2PKH) — Bắt đầu bằng "1"

Tên đầy đủ: Pay-to-Public-Key-Hash

Ví dụ: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

Derivation path: m/44'/0'/0' (BIP-44)

Địa chỉ Legacy là định dạng địa chỉ Bitcoin ban đầu, được định nghĩa trong giao thức Bitcoin nguyên thủy. Địa chỉ là một hash của public key được mã hóa Base58Check:

Address = Base58Check(0x00 || RIPEMD160(SHA256(public_key)))

Byte phiên bản 0x00 tạo ra các địa chỉ bắt đầu bằng "1" trên mainnet.

Cách chi tiêu hoạt động (script):

ScriptPubKey: OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG
ScriptSig: <signature> <publicKey>

Để chi tiêu tiền từ địa chỉ Legacy, người gửi cung cấp public key của họ và một chữ ký hợp lệ. Mạng sẽ xác minh public key hash ra đúng địa chỉ và chữ ký hợp lệ với public key đó.

Ưu điểm:

  • Tương thích tối đa, được hỗ trợ bởi mọi ví Bitcoin, sàn giao dịch và dịch vụ từ năm 2009.
  • Đơn giản, dễ hiểu, đã được kiểm chứng lâu dài.

Nhược điểm:

  • Kích thước giao dịch lớn nhất (phí cao nhất).
  • Không có lợi ích SegWit (không có witness discount).
  • Mã hóa Base58Check phân biệt hoa/thường, dễ sai khi chép tay.
  • Không có cơ chế phát hiện lỗi ngoài checksum (bắt được lỗi ngẫu nhiên nhưng không bắt được mọi thay thế ký tự).

Địa chỉ P2SH — Bắt đầu bằng "3"

Tên đầy đủ: Pay-to-Script-Hash

Ví dụ: 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy

Derivation path: m/49'/0'/0' (BIP-49, cho SegWit-wrapped)

P2SH được giới thiệu trong BIP-16 (2012) để hỗ trợ điều kiện chi tiêu phức tạp hơn. Thay vì trả đến hash của public key, tiền được trả đến hash của một script. Script đó có thể triển khai điều kiện chi tiêu tùy ý: multisig, time lock, hash lock, hoặc phổ biến nhất hiện nay là bọc đầu ra SegWit.

P2SH-P2WPKH (tương thích SegWit):

Đây là cách dùng địa chỉ P2SH phổ biến nhất hiện nay. Nó bọc một đầu ra SegWit (P2WPKH) bên trong script P2SH, cho phép hưởng lợi ích SegWit đồng thời giữ tương thích ngược với phần mềm cũ chỉ hiểu địa chỉ P2SH.

RedeemScript: 0x0014 <20-byte-pubkey-hash>  (a P2WPKH script)
ScriptPubKey: OP_HASH160 <hash-of-redeemScript> OP_EQUAL

Ưu điểm:

  • Có lợi ích SegWit (giảm phí, sửa malleability) và vẫn tương thích ngược.
  • Được gần như mọi ví và sàn hiện đại hỗ trợ.
  • Hỗ trợ script phức tạp (multisig, time lock).

Nhược điểm:

  • Phí cao hơn SegWit gốc (wrapper script tạo thêm overhead).
  • Mơ hồ: địa chỉ "3" có thể là multisig thường, SegWit bọc, hoặc bất kỳ script P2SH nào khác. Không thể biết chỉ từ địa chỉ.

Địa chỉ SegWit Gốc (P2WPKH) — Bắt đầu bằng "bc1q"

Tên đầy đủ: Pay-to-Witness-Public-Key-Hash (mã hóa Bech32)

Ví dụ: bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4

Derivation path: m/84'/0'/0' (BIP-84)

Địa chỉ SegWit gốc được giới thiệu trong BIP-141/BIP-143 (kích hoạt tháng 8/2017) và dùng mã hóa Bech32 như định nghĩa trong BIP-173. Chúng không dùng Base58Check mà dùng mã hóa mới có các đặc tính:

  • Chỉ chữ thường — loại bỏ vấn đề phân biệt hoa/thường.
  • Sửa lỗi BCH — có thể phát hiện tới 4 lỗi ký tự và tự động sửa một số lỗi.
  • Tiền tố dễ đọcbc cho Bitcoin mainnet, tb cho testnet.

Cách chi tiêu hoạt động:

ScriptPubKey: 0 <20-byte-pubkey-hash>
Witness: <signature> <publicKey>

Chữ ký và public key được chuyển sang phần "witness" của giao dịch, phần này được giảm 75% transaction weight (phí).

Ưu điểm:

  • Phí thấp nhất trong các loại địa chỉ trước Taproot (witness discount).
  • Sửa malleability — SegWit sửa transaction malleability, cho phép các giao thức layer-2 như Lightning Network.
  • Phát hiện lỗi tốt hơn — mã hóa Bech32 bắt lỗi tốt hơn Base58Check.
  • Script đơn giản hơn — không có overhead của P2SH wrapper.

Nhược điểm:

  • Một số ví và sàn cũ không gửi được tới địa chỉ bc1q (đến 2025 đã ngày càng hiếm).
  • Chuỗi địa chỉ dài hơn nhẹ so với Legacy hoặc P2SH.

Địa chỉ Taproot (P2TR) — Bắt đầu bằng "bc1p"

Tên đầy đủ: Pay-to-Taproot (mã hóa Bech32m)

Ví dụ: bc1p5d7rjq7g6rdk2yhzks9smlaqtedr4dekq08ge8ztwac72sfr9rusxg3297

Derivation path: m/86'/0'/0' (BIP-86)

Taproot được kích hoạt trên Bitcoin vào tháng 11/2021 (BIP-340, BIP-341, BIP-342). Đây là bản nâng cấp quan trọng nhất cho khả năng scripting của Bitcoin kể từ SegWit.

Taproot dùng chữ ký Schnorr thay cho ECDSA và giới thiệu mô hình key-spend/script-spend:

  • Key path spend — trường hợp phổ biến nhất: một chữ ký duy nhất xác thực chi tiêu, hình thức giống mọi giao dịch Taproot khác.
  • Script path spend — các điều kiện phức tạp (multisig, time lock, hash lock) có thể được cam kết qua cây Merkle, chỉ lộ ra khi cần.

Cách chi tiêu hoạt động:

ScriptPubKey: 1 <32-byte-tweaked-public-key>
Witness: <signature> (key path, most common)
— or —
Witness: <script> <control-block> <arguments> (script path)

Ưu điểm:

  • Riêng tư — mọi giao dịch Taproot trông giống nhau trên chain bất kể điều kiện chi tiêu bên dưới. Giao dịch multisig không phân biệt được với giao dịch chữ ký đơn khi dùng key path.
  • Hiệu quả — chữ ký Schnorr nhỏ hơn chữ ký ECDSA. Key aggregation (MuSig2) cho phép cấu hình multisig tạo một chữ ký tổng hợp duy nhất.
  • Linh hoạt scripting — MAST (Merkelized Alternative Script Trees) hỗ trợ điều kiện chi tiêu phức tạp mà không lộ các nhánh không dùng.
  • Phí thấp — tương đương hoặc thấp hơn SegWit gốc cho key-path spend.

Nhược điểm:

  • Vẫn đang được mở rộng hỗ trợ, một số ví và sàn chưa hỗ trợ đầy đủ gửi đến hoặc gửi đi từ địa chỉ Taproot.
  • Triển khai phức tạp làm tăng rủi ro lỗi ví (dù đã có các triển khai trưởng thành).
  • Mã hóa Bech32m (khác Bech32), phần mềm ví phải hỗ trợ cả hai.

So Sánh Các Loại Địa Chỉ

Tính năngLegacy (1...)P2SH (3...)SegWit Gốc (bc1q...)Taproot (bc1p...)
BIPGốcBIP-16BIP-141/BIP-173BIP-341/BIP-350
Derivationm/44'/0'/0'm/49'/0'/0'm/84'/0'/0'm/86'/0'/0'
Mã hóaBase58CheckBase58CheckBech32Bech32m
Chữ kýECDSAECDSAECDSASchnorr
Chi phí phíCao nhấtTrung bìnhThấpThấp nhất (key path)
Riêng tưThấpTrung bìnhTrung bìnhCao
Phát hiện lỗiChecksum cơ bảnChecksum cơ bảnMã BCHMã BCH
Tương thíchToàn bộGần như toàn bộHầu hết víĐang tăng

Nên Dùng Loại Địa Chỉ Bitcoin Nào?

Với đa số người dùng năm 2025+: Dùng SegWit gốc (bc1q) làm mặc định. Đây là điểm cân bằng tốt nhất giữa phí thấp, tương thích cao và hỗ trợ ổn định.

Để tối đa quyền riêng tư và phí thấp nhất: Dùng Taproot (bc1p) nếu ví của bạn hỗ trợ và các dịch vụ bạn dùng hỗ trợ gửi tới địa chỉ Taproot.

Để tương thích với dịch vụ cũ: Dùng P2SH (3...) nếu bạn cần nhận tiền từ dịch vụ không gửi được tới địa chỉ bc1q hoặc bc1p.

Tránh Legacy (1...) cho ví mới trừ khi bạn có yêu cầu tương thích cụ thể.

Định Dạng Địa Chỉ Ethereum

Ethereum dùng một định dạng địa chỉ duy nhất:

0x742d35Cc6634C0532925a3b844Bc9e7595f2bD38
  • 20 byte (40 ký tự thập lục phân) với tiền tố 0x.
  • Được suy ra từ 20 byte cuối của hash Keccak-256 của public key.
  • EIP-55 mixed-case checksum — chữ hoa và chữ thường đóng vai trò checksum. Nếu bạn đổi hoa/thường của bất kỳ chữ cái nào, checksum sẽ sai.
  • Cùng một định dạng địa chỉ được dùng cho mọi chain tương thích EVM (Ethereum, Polygon, Arbitrum, Optimism, BSC).

Quan trọng: Gửi token trên sai mạng (ví dụ Ethereum mainnet so với Polygon) tới cùng một địa chỉ sẽ không làm mất tiền (địa chỉ tồn tại trên mọi chain EVM), nhưng bạn có thể cần chuyển sang đúng mạng để truy cập chúng.

ENS (Ethereum Name Service)

ENS cung cấp tên dễ đọc cho địa chỉ Ethereum:

vitalik.eth → 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045

Luôn xác minh địa chỉ đã resolve trước khi gửi tiền. Tên ENS có thể được chuyển nhượng, nên địa chỉ phía sau một tên có thể thay đổi.

Định Dạng Địa Chỉ Trên Blockchain Khác

Bitcoin Cash (BCH)

Bitcoin Cash dùng định dạng CashAddr để phân biệt với địa chỉ Bitcoin:

bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a

Tiền tố bitcoincash: giúp ngăn gửi nhầm sang địa chỉ Bitcoin.

Litecoin (LTC)

Litecoin dùng các loại địa chỉ tương tự Bitcoin:

  • Legacy: bắt đầu bằng L hoặc M
  • P2SH: bắt đầu bằng M hoặc 3
  • SegWit gốc: bắt đầu bằng ltc1q

Solana (SOL)

Solana dùng public key Ed25519 mã hóa Base58:

7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV

32 byte, mã hóa Base58, thường dài 32-44 ký tự.

Cardano (ADA)

Cardano dùng địa chỉ mã hóa Bech32 với tiền tố addr:

addr1qx2fxv2umyhttkxyxp8x0dlpdt3k6cwng5pxj3jhsydzer3jcu5d8ps7zex2k2xt3uqxgjqnnj83ws8lhrn648jjxtwq2ytjqp

Địa chỉ Cardano thường dài hơn đáng kể so với địa chỉ Bitcoin vì chúng mã hóa cả payment credentials và staking credentials.

TRON (TRX)

TRON dùng địa chỉ Base58Check bắt đầu bằng T:

TJYeasTPa6gpB9Ut5HALR2twMHU3gYpML8

Cosmos (ATOM)

Cosmos dùng mã hóa Bech32 với tiền tố theo từng chain:

cosmos1qypqxpq9qcrsszg2pvxq6rs0zqg3yyc5lzv7xu

Mỗi chain Cosmos SDK dùng một tiền tố khác nhau (ví dụ osmo cho Osmosis, juno cho Juno).

Công Cụ SafeSeed

Dùng SafeSeed Address Generator để suy ra địa chỉ cho nhiều blockchain và nhiều loại địa chỉ từ một seed phrase duy nhất. Xem cách cùng một seed tạo ra các địa chỉ khác nhau cho Bitcoin Legacy, SegWit, Taproot, Ethereum và hơn thế nữa. Mọi xử lý đều diễn ra cục bộ trong trình duyệt của bạn.

Xác Thực Địa Chỉ và An Toàn

Kiểm Tra Checksum

Luôn xác minh địa chỉ trước khi gửi tiền:

  • Bitcoin Legacy/P2SH: Base58Check có checksum 4 byte. Hầu hết ví kiểm tra tự động.
  • Bitcoin SegWit/Taproot: Bech32/Bech32m có checksum 6 ký tự với khả năng phát hiện lỗi mạnh (mã BCH).
  • Ethereum: EIP-55 mixed-case checksum. Nếu ví không triển khai EIP-55, nó sẽ chấp nhận mọi kiểu hoa/thường, đây là dấu hiệu cảnh báo.

Tái Sử Dụng Địa Chỉ

Vì quyền riêng tư, tránh dùng lại địa chỉ Bitcoin. Mỗi giao dịch nên dùng một địa chỉ mới. HD wallet (BIP-44) tạo địa chỉ mới tự động.

Địa chỉ Ethereum thường được dùng lại (mô hình account-based), dù dùng nhiều tài khoản có thể cải thiện quyền riêng tư.

Clipboard Hijacking

Phần mềm độc hại có thể theo dõi clipboard và thay địa chỉ tiền mã hóa bằng địa chỉ của kẻ tấn công. Luôn kiểm tra trực quan ít nhất 6 ký tự đầu và 6 ký tự cuối của địa chỉ sau khi dán, và tốt nhất là toàn bộ địa chỉ. Một số ví hiển thị visual hash (identicon) của địa chỉ để dễ xác minh hơn.

Xác Minh QR Code

Khi quét QR code để lấy địa chỉ, hãy xác minh địa chỉ đã giải mã khớp với điều bạn mong đợi. QR code độc hại có thể mã hóa địa chỉ do kẻ tấn công kiểm soát.

Chuyển Đổi Giữa Các Loại Địa Chỉ

Bạn không thể "chuyển đổi" địa chỉ giữa các loại (ví dụ Legacy sang SegWit) vì mỗi loại dùng derivation path khác nhau và tạo ra bộ khóa khác nhau. Tuy nhiên, bạn có thể:

  1. Tạo nhiều loại địa chỉ từ cùng một seed phrase — Seed phrase của bạn suy ra khóa cho tất cả loại địa chỉ cùng lúc qua các derivation paths khác nhau.
  2. Gửi tiền từ loại địa chỉ này sang loại khác — Chỉ cần gửi một giao dịch từ địa chỉ Legacy của bạn sang địa chỉ SegWit của bạn. Đây là giao dịch Bitcoin bình thường.

Không có cách nào truy cập tiền gửi vào địa chỉ SegWit bằng derivation path Legacy, vì chúng dùng private key khác nhau.

FAQ

Khác biệt giữa địa chỉ Legacy và SegWit là gì?

Địa chỉ Legacy (bắt đầu bằng "1") dùng định dạng giao dịch Bitcoin gốc. Địa chỉ SegWit (bắt đầu bằng "bc1q") dùng Segregated Witness, tách dữ liệu chữ ký khỏi dữ liệu giao dịch, giúp giao dịch nhỏ hơn, phí thấp hơn và sửa transaction malleability. SegWit được khuyến nghị cho mọi ví mới.

Tôi có thể gửi Bitcoin từ địa chỉ Legacy sang địa chỉ SegWit không?

Có. Mọi loại địa chỉ Bitcoin đều tương tác được trên mạng. Bạn có thể gửi từ bất kỳ loại địa chỉ nào sang bất kỳ loại nào khác. Vấn đề tương thích chỉ nằm ở phần mềm ví, một số ví cũ không thể tạo giao dịch gửi tới địa chỉ bc1q hoặc bc1p.

Vì sao ví của tôi hiển thị địa chỉ khác nhau mỗi lần?

Đây là hành vi bình thường của HD wallet dùng BIP-44. Một địa chỉ mới được tạo cho mỗi giao dịch để cải thiện quyền riêng tư. Tất cả địa chỉ đều được suy ra từ cùng một seed phrase và có thể khôi phục. Các địa chỉ đã dùng trước đó vẫn hợp lệ và vẫn có thể nhận tiền.

Mã hóa Bech32 là gì?

Bech32 là định dạng mã hóa địa chỉ được mô tả trong BIP-173, dùng cho địa chỉ SegWit gốc (bc1q). Nó dùng ký tự chữ-số thường (loại trừ 1, b, i, o), có checksum sửa lỗi BCH và có tiền tố dễ đọc (bc cho Bitcoin mainnet). Bech32m (BIP-350) là phiên bản sửa đổi dùng cho địa chỉ Taproot (bc1p).

Loại địa chỉ Bitcoin nào có phí thấp nhất?

Địa chỉ Taproot (bc1p) thường có phí thấp nhất cho key-path spend nhờ hiệu quả chữ ký Schnorr. SegWit gốc (bc1q) đứng ngay sau. SegWit bọc P2SH (3...) tốn hơn, và địa chỉ Legacy (1...) tốn nhất do kích thước giao dịch lớn hơn.

Tôi có thể dùng cùng một địa chỉ cho Bitcoin và Bitcoin Cash không?

Không. Dù địa chỉ Legacy của Bitcoin và Bitcoin Cash có thể trông giống nhau (đều bắt đầu bằng "1"), gửi Bitcoin tới địa chỉ Bitcoin Cash (hoặc ngược lại) có thể khiến tiền được gửi trên sai chain. Bitcoin Cash dùng định dạng CashAddr (bắt đầu bằng "bitcoincash:") để tránh nhầm lẫn này.

Điều gì xảy ra nếu tôi gửi crypto tới sai loại địa chỉ trên sai mạng?

Với các chain EVM (Ethereum, Polygon, BSC, v.v.), cùng một địa chỉ tồn tại trên mọi chain, nên tiền không mất, bạn chỉ cần truy cập đúng mạng. Với các chain không phải EVM có định dạng địa chỉ khác, ví thường sẽ chặn gửi tới địa chỉ không hợp lệ. Nếu bằng cách nào đó tiền được gửi tới định dạng địa chỉ không tồn tại, chúng có thể mất vĩnh viễn.

Có phải mọi địa chỉ Ethereum đều cùng định dạng?

Đúng. Ethereum dùng một định dạng địa chỉ duy nhất (0x + 40 ký tự hex) cho mọi mục đích: nhận ETH, token ERC-20, NFT và tương tác smart contract. Cùng một địa chỉ đều hợp lệ trên mọi chain tương thích EVM.

Hướng Dẫn Liên Quan