1.一种多重签名方法,其特征在于,当前区块链为非比特币区块链,所述方法适用于客户端,所述方法包括:根据当前用户的第一公钥、预配置的各第一用户的第二公钥、预配置的多重签名规则生成锁定脚本,根据所述锁定脚本生成第一多重签名公钥,根据所述第一多重签名公钥生成第一多重签名地址;
生成未签名的第一转账交易;其中,所述未签名的第一转账交易的交易发起方地址为所述第一多重签名地址;
根据所述未签名的第一转账交易构造第一比特币临时交易;其中,所述第一比特币临时交易只有一个第一输入UTXO,所述第一输入UTXO包括所述第一转账交易的哈希值;
将所述未签名的第一转账交易广播给各所述第一用户的客户端,以供所述第一用户的客户端:根据所述未签名的第一转账交易构造所述第一比特币临时交易并根据所述第一比特币临时交易、所述锁定脚本、所持有的私钥生成第一签名数据;
根据各所述第一用户的客户端返回的所述第一签名数据生成解锁脚本;
根据所述锁定脚本、所述解锁脚本、比特币签名验证标识生成所述未签名的第一转账交易的第二签名数据;
根据所述未签名的第一转账交易和所述第二签名数据生成完整的第一转账交易;
将所述完整的第一转账交易发送至区块链网络,以供区块链节点:
根据所述比特币签名验证标识判断出所述完整的第一转账交易为需要调用比特币脚本引擎进行验证的交易;
根据所述完整的第一转账交易中的所述锁定脚本生成第二多重签名公钥,判断所述第一多重签名公钥与所述第二多重签名公钥是否相同;根据所述完整的第一转账交易中的所述第一多重签名公钥生成第二多重签名地址,判断所述完整的第一转账交易的交易发起方地址与所述第二多重签名地址是否相同;
在上述判断均为是时,生成第二比特币临时交易;其中,所述第二比特币临时交易只有一个第二输入UTXO,所述第二输入UTXO包括所述第一转账交易的哈希值;
调用比特币脚本引擎、完整的所述第一转账交易中的所述锁定脚本、完整的所述第一转账交易中的所述解锁脚本验证所述锁定脚本中的各所述第一签名数据是否符合所述多重签名规则:在验证成功时,执行所述完整的第一转账交易。
2.根据权利要求1所述的方法,其特征在于,所述生成未签名的第一转账交易前,还包括:生成第二转账交易;其中,所述第二转账交易的交易接收方地址为所述第一多重签名地址;
将所述第二转账交易发送至区块链网络,以供区块链节点在执行所述第二转账交易成功时,将所述第二转账交易指定的通证划转至所述第一多重签名地址。
3.根据权利要求1所述的方法,其特征在于,所述根据所述锁定脚本生成第一多重签名公钥,根据所述第一多重签名公钥生成第一多重签名地址包括:对所述锁定脚本进行哈希以生成多第一重签名公钥;
对所述第一多重签名公钥进行哈希以生成第一多重签名地址;
所述根据所述未签名的第一转账交易和所述第二签名数据生成完整的第一转账交易包括:根据所述未签名的第一转账交易、所述第二签名数据、所述第一多重签名公钥生成完整的第一转账交易;
所述根据所述完整的第一转账交易中的所述锁定脚本生成第二多重签名公钥,判断所述第一多重签名公钥与所述第二多重签名公钥是否相同;根据所述完整的第一转账交易中的所述第一多重签名公钥生成第二多重签名地址,判断所述完整的第一转账交易的交易发起方地址与所述第二多重签名地址是否相同包括:对所述完整的第一转账交易中的所述锁定脚本进行哈希以生成第二多重签名公钥;
判断所述第一多重签名公钥与所述第二多重签名公钥是否相同;
对所述完整的第一转账交易中的所述第一多重签名公钥进行哈希以生成第二多重签名地址;
判断所述完整的第一转账交易的交易发起方地址与所述第二多重签名地址是否相同。
4.根据权利要求1所述的方法,其特征在于,所述锁定脚本包括OP_CHECKMULTISIG字段。
5.一种多重签名方法,其特征在于,当前区块链为非比特币区块链,所述方法适用于区块链节点,所述方法包括:接收完整的第一转账交易;其中,所述完整的第一转账交易由第二用户的第二客户端根据未签名的第一转账交易和所述未签名的第一转账交易的第二签名数据生成,所述第二签名数据根据锁定脚本、解锁脚本、比特币签名验证标识生成,所述解锁脚本根据各第一签名数据生成,所述第一签名数据由第一用户的第一客户端在收到所述未签名的第一转账交易后,根据所述未签名的第一转账交易生成第一比特币临时交易,根据所述第一比特币临时交易、所述锁定脚本、所持有的私钥生成,所述第一比特币临时交易还由所述第二客户端根据所述未签名的第一转账交易生成,所述未签名的第一转账交易由所述第二客户端生成,所述未签名的第一转账交易的交易发起方地址为第一多重签名地址,所述第一多重签名地址根据第一多重签名公钥生成,所述第一多重签名公钥根据所述锁定脚本生成,所述锁定脚本根据所述第二用户的第一公钥、预配置的各第一用户的第二公钥、预配置的多重签名规则生成;
根据所述比特币签名验证标识判断出所述完整的第一转账交易为需要调用比特币脚本引擎进行验证的交易;
根据所述完整的第一转账交易中的所述锁定脚本生成第二多重签名公钥,判断所述第一多重签名公钥与所述第二多重签名公钥是否相同;根据所述完整的第一转账交易中的所述第一多重签名公钥生成第二多重签名地址,判断所述完整的第一转账交易的交易发起方地址与所述第二多重签名地址是否相同;
在上述判断均为是时,生成第二比特币临时交易;其中,所述第二比特币临时交易只有一个第二输入UTXO,所述第二输入UTXO包括所述第一转账交易的哈希值;
调用比特币脚本引擎、完整的所述第一转账交易中的所述锁定脚本、完整的所述第一转账交易中的所述解锁脚本验证所述锁定脚本中的各所述第一签名数据是否符合所述多重签名规则:在验证成功时,执行所述完整的第一转账交易。
6.根据权利要求5所述的方法,其特征在于,所述接收完整的第一转账交易前,还包括:接收第二转账交易;其中,所述第二转账交易由所述第二客户端生成,所述第二转账交易的交易接收方地址为所述第一多重签名地址;
在执行所述第二转账交易成功时,将所述第二转账交易指定的通证划转至所述第一多重签名地址。
7.根据权利要求5所述的方法,其特征在于,所述第一多重签名地址由所述第一多重签名公钥进行哈希以生成,所述第一多重签名公钥由所述锁定脚本进行哈希以生成,所述完整的第一转账交易根据所述未签名的第一转账交易、所述第二签名数据、所述第一多重签名公钥生成;
所述根据所述完整的第一转账交易中的所述锁定脚本生成第二多重签名公钥,判断所述第一多重签名公钥与所述第二多重签名公钥是否相同;根据所述完整的第一转账交易中的所述第一多重签名公钥生成第二多重签名地址,判断所述完整的第一转账交易的交易发起方地址与所述第二多重签名地址是否相同包括:对所述完整的第一转账交易中的所述锁定脚本进行哈希以生成第二多重签名公钥;
判断所述第一多重签名公钥与所述第二多重签名公钥是否相同;
对所述完整的第一转账交易中的所述第一多重签名公钥进行哈希以生成第二多重签名地址;
判断所述完整的第一转账交易的交易发起方地址与所述第二多重签名地址是否相同。
8.根据权利要求5所述的方法,其特征在于,所述锁定脚本包括OP_CHECKMULTISIG字段。
9.一种计算机设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-8中任一项所述的方法。
10.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一项所述的方法。