区块链教程之Bitcoin多重签名
Posted 任磊abc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链教程之Bitcoin多重签名相关的知识,希望对你有一定的参考价值。
由比特币的签名机制可知,如果丢失了私钥,没有任何办法可以花费对应地址的资金。
这样就使得因为丢失私钥导致资金丢失的风险会很高。为了避免一个私钥的丢失导致地址的资金丢失,比特币引入了多重签名机制,可以实现分散风险的功能。
具体来说,就是假设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。
以上是关于区块链教程之Bitcoin多重签名的主要内容,如果未能解决你的问题,请参考以下文章