P2PK 地址格式
P2PK,是比特幣早期最基礎、最直接的交易輸出格式。 其目標是直接將比特幣鎖定給一個特定的公鑰,只要證明擁有該公鑰對應的私鑰並提供有效簽名,即可花費該筆比特幣。

P2PK,Pay-to-Public-Key,是比特幣早期最基礎、最直接的交易輸出格式。
P2PK 建立基於 ECDSA 非對稱加密演算法,Elliptic Curve Digital Signature Algorithm,與比特幣早期的腳本系統。
其目標是直接將比特幣鎖定給一個特定的公鑰,只要證明擁有該公鑰對應的私鑰並提供有效簽名,即可花費該筆比特幣。
P2PK 基本概念
-
交易輸出 ScriptPubKey 在比特幣系統中,每一筆 UTXO 都包含一段由公鑰資料與操作碼 OP_Code 組成的 ScriptPubKey。P2PK 是其中一種 ScriptPubKey 類型,用於定義未來花費該筆比特幣所需滿足的對應解鎖資料條件。
-
基於 ECDSA 簽名 P2PK 採用 secp256k1 橢圓曲線的 ECDSA 作為簽名驗證機制。其具備標準的非對稱加密特性,是比特幣系統最核心的密碼學驗證基礎。
-
Public Key 公鑰鎖定 P2PK 直接將使用者的完整公鑰,未壓縮的 65 位元組或已壓縮的 33 位元組,寫入 ScriptPubKey 中。而非任何雜湊結果,因此該輸出條件明確且可被節點讀取與驗證,使得任何人在區塊鏈瀏覽器上都能直接看到該筆輸出所對應的完整公鑰。
P2PK 運作方式
-
建立公私鑰對 使用者生成一組以橢圓曲線 secp256k1 產生的公私鑰對。
-
生成 ScriptPubKey 發送方在建立交易時,將接收方的完整公鑰 Public Key 放入輸出腳本中,並加上驗證操作碼。 Public Key 用於指定鎖定對象,OP_CHECKSIG 用於驗證輸入簽名是否與該公鑰匹配。 其 ScriptPubKey 格式為: <Public Key> OP_CHECKSIG
-
產生 P2PK 地址 嚴格來說,P2PK 沒有如同現今的標準地址編碼格式。在比特幣初期,使用者是直接複製並傳送這串公鑰或直接透過 IP 位址進行交易。
-
解鎖與花費 ScriptSig 當持有人想要花費這筆 UTXO 時,必須在輸入的解鎖腳本 ScriptSig 中,提供使用私鑰生成的簽名和公鑰兩者組合執行驗證,若簽名與公鑰匹配,OP_CHECKSIG 將驗證使交易成功。 <Signature> <Public Key> OP_CHECKSIG
P2PK 應用
-
創世區塊 比特幣的創世區塊 Genesis Block,區塊高度 0 中的 50 枚比特幣獎勵,即是使用 P2PK 格式鎖定。
-
區塊獎勵輸出 早期區塊所獲得的幣基交易 Coinbase Transction 獎勵幾乎全數採用 P2PK 鎖定,作為標準輸出格式。

更多文章