多重签名使用
概述
闪电比特币的多重签名机制可以实现多方共同管理资产,也可以用于第三方交易担保
表达式:
一般有 1 of 1, 1 of 2, 1 of 3, 2 of 3, 3 of 3几种模式。
1 of 3: 三个管理者中,任何一方都可以单独的处理该地址的资产。
2 of 3: 三个管理者中,必须有两方共同签署才能处理该地址的资产。
3 of 3: 三个管理者必须都签署才能处理该地址的资产。
本文就以 2 of 2的情形来介绍一下使用多重签名的方法。
全节点钱包多重签名2 of 2使用教程
1.管理者A地址:mggMgk9kV3MTi5zHZsNnZ3WwEekKQ38ZWa
A输入validateaddress <A地址>,获得公钥pubkey_A,并对外公开
Commands:
./bitcoin-cli validateaddress mggMgk9kV3MTi5zHZsNnZ3WwEekKQ38ZWa
2.管理者B地址:my5ioJEbbhMjRzgyQpcnq6fmbfUMQgTqMZ
B输入validateaddress <B地址>,获得公钥pubkey_B,并对外公开
Commands:
./bitcoin-cli validateaddress my5ioJEbbhMjRzgyQpcnq6fmbfUMQgTqMZ
3.createmultisig命令来生成多重签名地址,命令基本格式如下:
Commands:
./bitcoin-cli createmultisig 2 “[” 03ca3c9d27c8924f5c63a6090c0b735e24f5add35439bad8155a3223178a4b6d3e",“03477b6de5381586c6e4ff1b529acb3bebb7afcd44dd84e291e7af439dc95f2e95”]"
上图中的<地址C>:2N4Anxq1gjsrRPh6AkY2zp9UQSiKFzV8Z4r,就是我们生成的多重签名地址。然后将这个地址增加到钱包里,
Commands:
./bitcoin-cli addmultisigaddress 2 “[” 03ca3c9d27c8924f5c63a6090c0b735e24f5add35439bad8155a3223178a4b6d3e",“03477b6de5381586c6e4ff1b529acb3bebb7afcd44dd84e291e7af439dc95f2e95”]"
此时<地址C>,需要管理者A和管理者B同时签名,才能进行交易,也就是P2P担保地址。
4.地址A向地址C发送 10个btc的交易
交易hash为:
e06abfb139ef06afd3167cd8774636dbb74532b5b76a61b3e65759f62f145f34
此时需要管理者A和管理者B同时签名,才能收币
通过交易hash查询交易详情,确认地址吻合
Commands:
./bitcoin-cli getrawtransaction e06abfb139ef06afd3167cd8774636dbb74532b5b76a61b3e65759f62f145f34 true
5.此时B确认A已经向C发送10个币,手动生成交易并生成<16进制的交易数据>确认到币
Commands:
./bitcoin-cli createrawtransaction “[{“txid”:“e06abfb139ef06afd3167cd8774636dbb74532b5b76a61b3e65759f62f145f34”,“vout”:0}]” “{“my5ioJEbbhMjRzgyQpcnq6fmbfUMQgTqMZ”:10}”
6.B通过生成的<16进制交易数据>进行签名认证,继而生成新的<部分签名与交易数据1>
Commands:
./bitcoin-cli signrawtransaction 01ff000001345f142ff65957e6b3616ab7b53245b7db364677d87c16d3af06ef39b1bf6ae00000000000ffffffff0100ca9a3b000000001976a914c0ac996e74a3d42e3e7d5840973bb0adeacd2a5688ac00000000
Complete: false私钥签名未全部完成
7.B将新生成的<部分签名和交易数据1>,发给A,需要A来签名,生成完整签名和交易数据2
Commands:
./bitcoin-cli signrawtransaction 01ff000001c922412b9d145dc2e166554722dc493d3d4bf1b91a98ed42eea3540187c35a42000000006b48304502ec3f1d2673c003eb16f9ae5022026c629c12c9360dd81f4c46b17b21e72d22257355231c079639a81208d18b1b10121023c9367a44b0d9278c41a7f3a5885a914c0ac996e74a3d42e3e7d5840973bb0adeacd2a5688ac00000000
Complete:true表示交易完成
8.发送交易
Commands:
./bitcoin-cli sendrawtransaction + 完整签名和交易数据2