由位元幣的簽名機制可知,如果丟失了私鑰,沒有任何辦法可以花費對應地址的資金,
這樣就使得因為丟失私鑰導致資金丟失的風隙訓很高,為了避免一個私鑰的丟失導致地址的資金丟失,位元幣引入了多重簽名機制,可以實作分散風險的功能,
具體來說,就是假設N個人分別持有N個私鑰,只要其中M個人同意簽名就可以動用某個“聯合地址”的資金,
多重簽名地址實際上是一個Script Hash,以2-3型別的多重簽名為例,它的創建程序如下:
const pubkeys = [
'026477115981fe981a6918a6297d9803c4dc04f328f22041bedff886bbc2962e01',
'02c96db2302d19b43d4c69368babace7854cc84eb9e061cde51cfa77ca4a22b8b9',
'03c6103b3b83e4a24a0e33a4df246ef11772f9992663db0c35759a5e2ebf68d8e9'
].map((hex) => Buffer.from(hex, 'hex'));
const { address } = bitcoin.payments.p2sh({
redeem: bitcoin.payments.p2ms({ m: 2, pubkeys })
});
console.log(address); //36NUkt6FWUi3LAWBqWRdDmdTWbt91Yvfu7
// 使用Base58編碼即得到總是以3開頭的多重簽名地址,這個地址實際上是一個腳本哈希后的編碼,
以3開頭的地址就是位元幣的多重簽名地址,但從地址本身無法得知簽名所需的M/N,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/387969.html
標籤:區塊鏈
