Pay-to-Public-Key(P2PK)是接收比特幣的原始方法,它不涉及地址。相反,顧名思義,比特幣是直接支付給暴露的公鑰的。有史以來第一筆從一個人到另一個人的比特幣交易使用了 P2PK,當時中本聰曏 Hal Finney 髮送了比特幣位於 170 座。
P2PK 已不再使用,因爲與後續方法相比,它是一種更昂貴、更不私密且更不安全的接收比特幣的方式。
支付到公鑰哈希(P2PKH)在比特幣誕生之初就可以使用,併且在創世塊誕生後不到兩周的時間裡首次出現在區塊鏈上。 P2PKH 對 P2PK 進行了多項改進,例如使用地址。正如所討論的在我們之前的文章中,地址包含一個校驗和,有助於防止拼寫錯誤和丟失比特幣。
P2PKH 地址的長度通常爲 34 或 33 個字符(但理論上可以是短至 26 個字符),併且它們被編碼爲Base58格式。它們以前綴開頭1 目前負責接收和保護 43% 的已開採比特幣供應,比任何其他地址類型都多。
創建 P2PKH 地址涉及將單個公鑰放入哈希函數 SHA-256 和 RIPEMD-160。這減少了數據量,進而有助於爲用戶節省區塊空間和交易費用。除了已經被認爲牢不可破的 secp256k1 橢圓曲線之外,它還引入了對私鑰逆曏工程的進一步阻力。
Pay-to-Multisig (P2MS) 是一種微不足道的交易類型,僅具有短暫的相關性,併且從未負責在所有網絡參與者中一次持有超過 100 個比特幣。盡管如此,P2MS 仍然是比特幣歷史的一部分。
根據 BIP 11 的規定,P2MS 於 2012 年初作爲標準腳本引入。但是,這種交易類型遇到了與 P2PK 相衕的問題,因爲它包含公開的公鑰併且不使用任何地址格式。它還將多重簽名法定人數中的公鑰數量限製爲三個。幾個月內,P2MS 將被另一種將比特幣接收到多重簽名安排(稱爲 P2SH)的方法所取代,我們將在接下來介紹。
Pay-to-Script-Hash (P2SH) 是根據 BIP 16 於 2012 年 4 月 1 日作爲軟分叉引入比特幣的。與大多數分叉一樣,背後的故事很精彩。 P2SH 與 P2PKH 有很多共衕點。主要區別在於,地址是通過對兌換腳本進行哈希處理而不是對單個公鑰進行哈希處理來創建的。
兌換腳本可以被視爲編碼指令,指定接收到 P2SH 地址的比特幣將來如何使用。可能有多種可能性,包括多個不衕的公鑰。接收方(而不是髮送方)確定腳本詳細信息,併且在比特幣從地址中支出之前,支出指令不會公開。
雖然高級用戶可以構建覆雜的腳本,但 P2SH 最常見的用途是創建嵌套 SegWit 地址(下麵涵蓋)和多重簽名錢包。例如,腳本可以包含三個公鑰,併指定任意兩個相應私鑰的簽名可以花費比特幣。這將創建一個 2-of-3 多重簽名地址。
P2SH 地址是確切地 長度爲 34 個字符,併且以前綴開頭3,如 BIP 13 所指定。在 4 月 1 日軟分叉之前,少數交易嘗試使用此替代前綴,其中第一個交易被髮現在區塊 170,052。
Pay-to-Witness-Public-Key-Hash (P2WPKH) 是 2017 年 8 月在 SegWit 軟分叉上引入比特幣的兩種地址類型中的第一種。這個極其重要且特別有爭議的軟分叉背後的故事記録在一本名爲區塊大小戰爭,喬納森·比爾撰寫。
P2WPKH 是 P2PKH 的 SegWit 變體,從根本上來説,這意味著選擇此地址類型而不是舊的 P2PKH 地址將幫助您在轉移比特幣時節省交易費用。
SegWit 地址看起來與舊的地址類型有很大不衕,因爲根據 BIP 173,它們使用 Bech32 編碼而不是 Base58。最值得註意的是,Bech32 中沒有大寫字母。 P2WPKH 地址可以通過前綴 bc1q 和正好 42 的字符長度來標識。
付費見證腳本哈希 (P2WSH) 是 P2SH 的 SegWit 變體。與 P2SH 相比,使用 P2WSH 的主要優點是它可以幫助降低交易費用,併且使用腳本哈希而不是公鑰哈希的主要原因是爲了適應多重簽名安排。
與 P2WPKH 一樣,P2WSH 地址以前綴開頭BC1q。但是,它的字符長度更長,恰好爲 62。與迄今爲止介紹的地址類型不衕,P2WSH 地址是單獨使用 SHA-256 哈希函數創建的,不包括 RIPEMD-160,從而導緻字符長度增加。這是謹慎實施的,增加了針對相當微妙且極不可能的多重簽名的額外保護攻擊曏量。
從技術上講,嵌套隔離見證(也稱爲包裹隔離見證)與我們上麵介紹的地址類型沒有什麽不衕。盡管如此,它仍然是一種使用先前討論的地址類型的獨特方式,暫時對比特幣社區有用。
當 SegWit 軟分叉髮生時,併非所有比特幣節點、軟件和服務都會立即升級以支持新的本機 SegWit 地址類型 P2WPKH 和 P2WSH。隻有升級的實體才能髮送到這些新地址。這意味著那些想要從任何人(包括那些沒有升級的人)接收比特幣的人還不能使用原生 SegWit 錢包。然而,由於隔離見證提供更便宜的交易費用,大多數人都熱衷於開始使用它。
解決這個睏境的巧妙方法是利用 P2SH 交易類型。尚未實施 SegWit 的實體仍然可以將比特幣髮送到 P2SH 地址,其中,如上所述,使用兌換腳本構建,指定有關稍後如何使用比特幣的説明。事實證明,這些指令可以納入新的 SegWit 支出模式,爲用戶提供降低費用的橋梁。因此,使用此技巧的 P2SH 地址被稱爲嵌套 SegWit,它們在 SegWit 採用過程中髮揮了重要作用。
從錶麵上看,嵌套 SegWit 地址與其他 P2SH 地址沒有區別,因此這種安排中持有的比特幣的供應量是不可知的。此外,由於所有現代比特幣工具現在都可以直接髮送到本機 SegWit 地址,因此不再有任何充分的理由使用嵌套 SegWit。
Pay-to-Taproot (P2TR) 是最新的地址類型,由 Taproot 軟分叉於 2021 年 11 月提供。在撰寫本文時,P2TR 的採用率仍然很低,許多比特幣軟件和服務仍在進行集成。
P2WPKH 和 P2WSH 被稱爲 SegWit V0,而 P2TR 被視爲 SegWit V1。值得註意的是,P2TR 使用稱爲 Schnorr 的數字簽名算法,該算法與早期比特幣交易類型中使用的 ECDSA 格式不衕。 Schnorr 簽名有幾個優點,包括額外的交易費用降低和增強的隱私性。
在隱私方麵,Schnorr 實現的密鑰和簽名聚合使多重簽名地址與單簽名無法區分,併且 P2TR 地址的支出條件從未公開披露。地址的創建者甚至可以包含多個自定義的兌換腳本以供選擇,以便稍後使用比特幣。
P2TR 地址的長度爲 62 個字符,它們使用 Bech32m 編碼,這是 Bech32 的稍微修改版本,如BIP 350。 P2TR地址可以通過其唯一性來識別BC1p字首。
現在我們已經介紹了在鏈上接收比特幣的所有標準化方法,一些快速事實和地址特徵可以組合成一個方便的圖錶以供參考。
Pay-to-Public-Key(P2PK)是接收比特幣的原始方法,它不涉及地址。相反,顧名思義,比特幣是直接支付給暴露的公鑰的。有史以來第一筆從一個人到另一個人的比特幣交易使用了 P2PK,當時中本聰曏 Hal Finney 髮送了比特幣位於 170 座。
P2PK 已不再使用,因爲與後續方法相比,它是一種更昂貴、更不私密且更不安全的接收比特幣的方式。
支付到公鑰哈希(P2PKH)在比特幣誕生之初就可以使用,併且在創世塊誕生後不到兩周的時間裡首次出現在區塊鏈上。 P2PKH 對 P2PK 進行了多項改進,例如使用地址。正如所討論的在我們之前的文章中,地址包含一個校驗和,有助於防止拼寫錯誤和丟失比特幣。
P2PKH 地址的長度通常爲 34 或 33 個字符(但理論上可以是短至 26 個字符),併且它們被編碼爲Base58格式。它們以前綴開頭1 目前負責接收和保護 43% 的已開採比特幣供應,比任何其他地址類型都多。
創建 P2PKH 地址涉及將單個公鑰放入哈希函數 SHA-256 和 RIPEMD-160。這減少了數據量,進而有助於爲用戶節省區塊空間和交易費用。除了已經被認爲牢不可破的 secp256k1 橢圓曲線之外,它還引入了對私鑰逆曏工程的進一步阻力。
Pay-to-Multisig (P2MS) 是一種微不足道的交易類型,僅具有短暫的相關性,併且從未負責在所有網絡參與者中一次持有超過 100 個比特幣。盡管如此,P2MS 仍然是比特幣歷史的一部分。
根據 BIP 11 的規定,P2MS 於 2012 年初作爲標準腳本引入。但是,這種交易類型遇到了與 P2PK 相衕的問題,因爲它包含公開的公鑰併且不使用任何地址格式。它還將多重簽名法定人數中的公鑰數量限製爲三個。幾個月內,P2MS 將被另一種將比特幣接收到多重簽名安排(稱爲 P2SH)的方法所取代,我們將在接下來介紹。
Pay-to-Script-Hash (P2SH) 是根據 BIP 16 於 2012 年 4 月 1 日作爲軟分叉引入比特幣的。與大多數分叉一樣,背後的故事很精彩。 P2SH 與 P2PKH 有很多共衕點。主要區別在於,地址是通過對兌換腳本進行哈希處理而不是對單個公鑰進行哈希處理來創建的。
兌換腳本可以被視爲編碼指令,指定接收到 P2SH 地址的比特幣將來如何使用。可能有多種可能性,包括多個不衕的公鑰。接收方(而不是髮送方)確定腳本詳細信息,併且在比特幣從地址中支出之前,支出指令不會公開。
雖然高級用戶可以構建覆雜的腳本,但 P2SH 最常見的用途是創建嵌套 SegWit 地址(下麵涵蓋)和多重簽名錢包。例如,腳本可以包含三個公鑰,併指定任意兩個相應私鑰的簽名可以花費比特幣。這將創建一個 2-of-3 多重簽名地址。
P2SH 地址是確切地 長度爲 34 個字符,併且以前綴開頭3,如 BIP 13 所指定。在 4 月 1 日軟分叉之前,少數交易嘗試使用此替代前綴,其中第一個交易被髮現在區塊 170,052。
Pay-to-Witness-Public-Key-Hash (P2WPKH) 是 2017 年 8 月在 SegWit 軟分叉上引入比特幣的兩種地址類型中的第一種。這個極其重要且特別有爭議的軟分叉背後的故事記録在一本名爲區塊大小戰爭,喬納森·比爾撰寫。
P2WPKH 是 P2PKH 的 SegWit 變體,從根本上來説,這意味著選擇此地址類型而不是舊的 P2PKH 地址將幫助您在轉移比特幣時節省交易費用。
SegWit 地址看起來與舊的地址類型有很大不衕,因爲根據 BIP 173,它們使用 Bech32 編碼而不是 Base58。最值得註意的是,Bech32 中沒有大寫字母。 P2WPKH 地址可以通過前綴 bc1q 和正好 42 的字符長度來標識。
付費見證腳本哈希 (P2WSH) 是 P2SH 的 SegWit 變體。與 P2SH 相比,使用 P2WSH 的主要優點是它可以幫助降低交易費用,併且使用腳本哈希而不是公鑰哈希的主要原因是爲了適應多重簽名安排。
與 P2WPKH 一樣,P2WSH 地址以前綴開頭BC1q。但是,它的字符長度更長,恰好爲 62。與迄今爲止介紹的地址類型不衕,P2WSH 地址是單獨使用 SHA-256 哈希函數創建的,不包括 RIPEMD-160,從而導緻字符長度增加。這是謹慎實施的,增加了針對相當微妙且極不可能的多重簽名的額外保護攻擊曏量。
從技術上講,嵌套隔離見證(也稱爲包裹隔離見證)與我們上麵介紹的地址類型沒有什麽不衕。盡管如此,它仍然是一種使用先前討論的地址類型的獨特方式,暫時對比特幣社區有用。
當 SegWit 軟分叉髮生時,併非所有比特幣節點、軟件和服務都會立即升級以支持新的本機 SegWit 地址類型 P2WPKH 和 P2WSH。隻有升級的實體才能髮送到這些新地址。這意味著那些想要從任何人(包括那些沒有升級的人)接收比特幣的人還不能使用原生 SegWit 錢包。然而,由於隔離見證提供更便宜的交易費用,大多數人都熱衷於開始使用它。
解決這個睏境的巧妙方法是利用 P2SH 交易類型。尚未實施 SegWit 的實體仍然可以將比特幣髮送到 P2SH 地址,其中,如上所述,使用兌換腳本構建,指定有關稍後如何使用比特幣的説明。事實證明,這些指令可以納入新的 SegWit 支出模式,爲用戶提供降低費用的橋梁。因此,使用此技巧的 P2SH 地址被稱爲嵌套 SegWit,它們在 SegWit 採用過程中髮揮了重要作用。
從錶麵上看,嵌套 SegWit 地址與其他 P2SH 地址沒有區別,因此這種安排中持有的比特幣的供應量是不可知的。此外,由於所有現代比特幣工具現在都可以直接髮送到本機 SegWit 地址,因此不再有任何充分的理由使用嵌套 SegWit。
Pay-to-Taproot (P2TR) 是最新的地址類型,由 Taproot 軟分叉於 2021 年 11 月提供。在撰寫本文時,P2TR 的採用率仍然很低,許多比特幣軟件和服務仍在進行集成。
P2WPKH 和 P2WSH 被稱爲 SegWit V0,而 P2TR 被視爲 SegWit V1。值得註意的是,P2TR 使用稱爲 Schnorr 的數字簽名算法,該算法與早期比特幣交易類型中使用的 ECDSA 格式不衕。 Schnorr 簽名有幾個優點,包括額外的交易費用降低和增強的隱私性。
在隱私方麵,Schnorr 實現的密鑰和簽名聚合使多重簽名地址與單簽名無法區分,併且 P2TR 地址的支出條件從未公開披露。地址的創建者甚至可以包含多個自定義的兌換腳本以供選擇,以便稍後使用比特幣。
P2TR 地址的長度爲 62 個字符,它們使用 Bech32m 編碼,這是 Bech32 的稍微修改版本,如BIP 350。 P2TR地址可以通過其唯一性來識別BC1p字首。
現在我們已經介紹了在鏈上接收比特幣的所有標準化方法,一些快速事實和地址特徵可以組合成一個方便的圖錶以供參考。