P2PKH 地址格式
P2PKH,支付至公鑰雜湊,是比特幣最經典且使用最廣泛的交易輸出格式地址,屬於傳統的舊地址 Legacy Address 格式,通常以 Base58Check 格式編碼。主網地址多以 1 為開頭。

P2PKH,Pay-to-PubKey-Hash,支付至公鑰雜湊,是比特幣最經典且使用最廣泛的交易輸出格式地址,屬於傳統的舊地址 Legacy Address 格式,通常以 Base58Check 格式編碼。主網地址多以 1 為開頭。
P2PKH 建立基於 ECDSA 橢圓曲線數位簽章演算法、SHA-256 與 RIPEMD-160 等密碼學技術。
其目標是在早期的 P2PK Pay-to-PubKey 基礎上進行改良,透過將公鑰轉化為較短的雜湊值,以提升輸入時的容錯率、縮短地址長度,並在量子計算威脅下提供額外的公鑰隱私保護。
P2PKH 基本概念
-
ScriptPubKey 交易輸出 在比特幣系統中,每一筆 UTXO 都包含一段由公鑰資料與操作碼 OP_Code 組成的 ScriptPubKey,P2PKH 是最基礎的一種 ScriptPubKey 類型。用於定義未來花費該筆比特幣時,解鎖腳本 ScriptSig 必須提供正確的公鑰與對應的有效簽名。
-
基於 ECDSA Signature P2PKH 採用 ECDSA,secp256k1 橢圓曲線,作為簽名驗證機制。 花費資產時,使用者必須利用私鑰對交易資料進行簽章,並在解鎖時提供該簽章與未經雜湊的原始公鑰,由節點透過橢圓曲線數學運算進行驗證。
-
PubKey Hash 公鑰雜湊 與直接暴露公鑰的 P2PK 相比,P2PKH 的鎖定條件只包含公鑰經過雙重雜湊 Hash160 後,生成的 20 位元組,160 位元的摘要,能達到 UTXO 集合在記憶體中的空間優化。 原始公鑰在該筆 UTXO 被花費之前不會暴露在區塊鏈上,增加隱私性。
P2PKH 運作方式
-
建立公私鑰對 隨機生成一組 256 位元的私鑰,並透過 secp256k1 橢圓曲線乘法計算出對應的 ECDSA 公鑰。
-
進行 Hash160 雜湊計算 將生成的原始公鑰,依序放入 SHA-256 以及RIPEMD-160 的雜湊函數中進行計算,此方式稱之為 Hash160,可得到一 20 位元組的 PubKeyHash。 RIPEMD-160(SHA-256(PubKey)) = PubKeyHash
-
建立 ScriptPubKey 將 PubKeyHash 放入標準腳本結構中,組裝成未來存在區塊鏈 UTXO 中的鎖定條件
OP_DUP OP_HASH160 <PubKeyHash> OP_EQUALVERIFY OP_CHECKSIG = ScriptPubKey
-
加入版本號 在PubKeyHash 前面加上比特幣主網的錢包地址版本號前綴 Version Byte 。在比特幣主網上,P2PKH 的版本號為 0x00。
-
計算 Base58Check 校驗碼 將版本號與 PubKeyHash 的資料 Data,進行兩次 SHA-256 雜湊,並取結果的前 4 個位元組作為校驗碼 Checksum ,附加在資料尾端,用來防止使用者在輸入地址時打錯字。
First4Bytes(SHA-256(SHA-256(Data))) = Checksum
-
產生 P2PKH 地址 將原始資料與校驗碼拼接後進行 Base58 編碼,生成P2PKH 可讀地址,以 1 為開頭
P2PKH 應用
-
個人錢包 早期與部分輕量錢包仍使用 P2PKH 作為基礎收款格式。
-
交易所熱錢包 因其簡單特性且兼容性強,交易所等高頻次使用場景,以點對點轉帳使用率仍高。

更多文章