我想弄清楚使用bitpay的开源Bitcore库(http://bitcore.io)签署部分签名的multisig比特币交易的正确方法是什么?
对于multisig比特币交易,一个人可以用他的私钥签署交易。将该交易传递给其他人使用另一个私钥进行签名。
如果使用bitcore创建比特币交易,我们可以使用bitcore的TransactionBuilder来构建交易并通过调用sign()来签名。但是,如果其他人的交易已经由他签署并将其传递给您签名。我们应该如何使用bitcore库来签名?有没有办法将事务转换为bitcore TransactionBuilder对象并调用sign()方法?
非常感谢你的帮助。
答案 0 :(得分:0)
对不起,这不是特定于bitcore,但他们解释一系列事件表明您可能遗漏了多重事务的一个细节。
对于multisig,所有各方都提交他们的公钥来创建地址。
然后创建一个multisig地址。
发送到该地址的任何硬币需要m个私钥中的n个来签署约定的txn,以便硬币所有权在区块链中移动。
一旦达成协议,所有各方都使用他们自己的公钥签署交易,但Bob不需要将他签名的交易传递给Alice。 Bob和Alice只需要同意multisig地址将占用一定数量的输入并将其用于输出到另一个地址。
要明确的是,从用户的角度来看,只有网络客户端验证交易没有部分签名的交易。部分签名的txn是提交给网络的txn,其不具有所需的所有签名,但是所有签名的事务可以彼此独立地提交。只有在创建多分配地址的参数中有足够的符号txns和n个不同的密钥时,网络才会授权multisig txn。
Bitcore有一个Multsig的例子here