區塊鏈技術:P2SH Pay-to-Script Hash和多重簽名地址
最新
07-02
正如我們所知,傳統的比特幣地址從數字1開頭,來源於公鑰,而公鑰來源於私鑰。雖然任何人都可以將比特幣發送到一個1開頭的地址,但比特幣只能在通過相應的私鑰簽名和公鑰哈希值後才能消費。
以數字3開頭的比特幣地址是P2SH地址,有時被錯誤的稱謂多重簽名或多重簽名地址。他們指定比特幣交易中受益人作為哈希的腳本,而不是公鑰的所有者。這個特性在2012年1月由BIP0016引進,目前因為BIP0016提供了增加功能到地址本身的機會而被廣泛的採納。不同於P2PKH交易發送資金到傳統1開頭的比特幣地址,資金被發送到3開頭的地址時,需要的不僅僅是一個公鑰的哈希值,同時也需要一個私鑰簽名作為所有者證明。在創建地址的時候,這些要求會被定義在腳本中,所有對地址的輸入都會被這些要求阻隔。
一個P2SH地址從事務腳本中創建,它定義誰能消耗這個事務輸出。(132頁「P2SH(Pay-to-Script-Hash)」一節對此有詳細的介紹)編碼一個P2SH地址涉及使用一個在創建比特幣地址用到過的雙重哈希函數,並且只能應用在腳本而不是公鑰:
script hash = RIPEMD160(SHA256(script))
腳本哈希的結果是由Base58Check編碼前綴為5的版本、編碼後得到開頭為3的編碼地址。一個P2SH地址例子是32M8ednmuyZ2zVbes4puqe44NZumgG92sM。
P2SH 不一定是多重簽名的交易。雖然P2SH地址通常都是代表多重簽名,但也可能是其他類型的交易腳本。
TAG:口袋淘客 |