一种资产转移方法及装置制造方法及图纸

技术编号:20547133 阅读:20 留言:0更新日期:2019-03-09 19:57
本发明专利技术公开了一种资产转移方法及装置,所述方法包括:接收交易的执行请求,所述执行请求中包含交易中每个交易输入的第一账户的根据所述第一账户对应的第一加密算法生成的私钥的签名和公钥,及交易中每个交易输出的第二账户的根据所述第二账户对应的第二加密算法生成的公钥,其中所述交易的至少一个交易输入的第一账户和至少一个交易输出的第二账户对应的加密算法相同或不同,构造所述交易;针对所述交易中每个交易输入,根据所述交易输入指向的目标交易输出的目标锁定脚本,对所述交易输入的解锁脚本进行验签;并在所述交易中每个交易输入的解锁脚本验签通过后,将所述交易写入所述区块链。用以提供了一种能够支持多种加密算法的资产转移方案。

【技术实现步骤摘要】
一种资产转移方法及装置
本专利技术涉及区块链
,尤其涉及一种资产转移方法及装置。
技术介绍
未消费的交易输出(UnspentTransactionOutput,UTXO)是一种包含交易数据和执行代码的数据结构。UTXO构造的每一笔交易包括至少一个交易输入(TxIn)和至少一个交易输出(TxOut),并且在UTXO中每一笔交易的TxIn必须是某笔交易未使用过的TxOut,并且需要所述未使用过的TxOut所对应的账户的私钥的签名和公钥。资产转移是指区块链中数字货币的转移,为了保证资产转移的准确性与可靠性,现有区块链通常采用基于UTXO的资产转移方案。如图1所示,交易编号为Tx002的交易包括2个TxIn和3个TxOut,其中,输出索引用于定位到TxIn或TxOut在交易中的位置,锁定脚本中包含某一账户的公钥生成的待验签数据,通常为账户的公钥的哈希值,解锁脚本中包含某一账户的签名数据,通常为账户的私钥的签名和公钥。具体的,区块链的节点接收到对应编号为Tx002的交易的执行请求后,构造如图1所示交易编号为Tx002的交易,并在通过TxIn0和TxIn1分别指向的目标TxOut的目标锁定脚本中包含的待验签数据,分别对TxIn0和TxIn1的解锁脚本中包含的签名数据验签通过后,将交易写入区块链,交易完成。然而,现有区块链采用的基于UTXO的资产转移方案只能支持一种加密算法,即只能使用一种加密算法生成包含公钥和私钥的密钥对,如比特币的区块链只能支持椭圆曲线算法(ECDSA)中的ECDSA-P256。但是随着计算机能力和科技水平的不断提高,许多加密算法被破解,当区块链采用的资产转移方案支持的一种加密算法被破解后,整个区块链被迫停止使用,降低了区块链的可用性;此外随着业务复杂度的不断提升,区块链中各用户要求使用不同安全级别的加密算法,如区块链中用户来自于银行和企业等,银行要求严格使用高安全级别的加密算法,例如:ECDSA-P521,而企业要求使用安全级别不高,但执行效率高的加密算法,例如:ECDSA-P256,因此只能支持一种加密算法的资产转移方案已经不能满足用户的需求。
技术实现思路
本专利技术提供一种资产转移方法及装置,用以解决现有技术中存在资产转移方案只能支持一种加密算法,影响用户体验的问题。第一方面,本专利技术公开了一种资产转移方法,应用于区块链的节点,所述方法包括:接收交易的执行请求,所述执行请求中包含所述交易中每个交易输入的第一账户的根据所述第一账户对应的第一加密算法生成的私钥的签名和公钥,及所述交易中每个交易输出的第二账户的根据所述第二账户对应的第二加密算法生成的公钥,其中所述交易的至少一个交易输入的第一账户和至少一个交易输出的第二账户对应的加密算法相同或不同;根据所述交易中每个交易输入的第一账户的私钥的签名和公钥,生成所述每个交易输入的解锁脚本,根据所述交易中每个交易输出的第二账户的公钥,生成所述每个交易输出的锁定脚本;构造所述交易;针对所述交易中每个交易输入,根据所述交易输入指向的目标交易输出的目标锁定脚本,对所述交易输入的解锁脚本进行验签;并在所述交易中每个交易输入的解锁脚本验签通过后,将所述交易写入所述区块链。可选的,如果所述执行请求中还包含所述每个交易输入的第一账户对应的第一加密算法的标识,所述根据所述交易中每个交易输入的第一账户的私钥的签名和公钥,生成所述每个交易输入的解锁脚本包括:针对所述交易中每个交易输入,根据所述交易输入的第一账户的私钥的签名和公钥及所述第一账户对应的第一加密算法的标识,生成包含所述第一加密算法的标识的解锁脚本;如果所述执行请求中还包括所述每个交易输出的第二账户对应的第二加密算法的标识,所述根据所述交易中每个交易输出的第二账户的公钥,生成所述每个交易输出的锁定脚本包括:针对所述交易中每个交易输出,根据所述交易输出的第二账户的公钥及所述第二账户对应的第二加密算法的标识,生成包含所述第二加密算法的标识的锁定脚本。可选的,所述针对所述交易中每个交易输入,根据所述交易输入指向的目标交易输出的目标锁定脚本,对所述交易输入的解锁脚本进行验签包括:针对所述交易中每个交易输入,根据所述交易输入指向的目标交易输出的包含目标加密算法的标识的目标锁定脚本,对所述交易输入的包含所述第一加密算法的标识的解锁脚本进行验签。可选的,如果存在至少一个所述交易中交易输出的第二账户未创建,所述接收交易的执行请求之前,针对所述交易中每个未创建的交易输出的第二账户,所述方法还包括:接收所述第二账户的创建请求,所述创建请求携带有所述第二账户对应的第二加密算法的标识;根据所述第二加密算法生成所述第二账户的密钥对,并根据所述密钥对中的公钥和所述第二加密算法的标识生成所述第二账户的账户地址。第二方面,本专利技术公开了一种资产转移装置,应用于区块链的节点,所述装置包括:接收模块,用于接收交易的执行请求,所述执行请求中包含所述交易中每个交易输入的第一账户的根据所述第一账户对应的第一加密算法生成的私钥的签名和公钥,及所述交易中每个交易输出的第二账户的根据所述第二账户对应的第二加密算法生成的公钥,其中所述交易的至少一个交易输入的第一账户和至少一个交易输出的第二账户对应的加密算法相同或不同;构造模块,用于根据所述交易中每个交易输入的第一账户的私钥的签名和公钥,生成所述每个交易输入的解锁脚本,根据所述交易中每个交易输出的第二账户的公钥,生成所述每个交易输出的锁定脚本;构造所述交易;执行模块,用于针对所述交易中每个交易输入,根据所述交易输入指向的目标交易输出的目标锁定脚本,对所述交易输入的解锁脚本进行验签;并在所述交易中每个交易输入的解锁脚本验签通过后,将所述交易写入所述区块链。可选的,所述构造模块,具体用于如果所述执行请求中还包含所述每个交易输入的第一账户对应的第一加密算法的标识,针对所述交易中每个交易输入,根据所述交易输入的第一账户的私钥的签名和公钥及所述第一账户对应的第一加密算法的标识,生成包含所述第一加密算法的标识的解锁脚本;如果所述执行请求中还包括所述每个交易输出的第二账户对应的第二加密算法的标识,针对所述交易中每个交易输出,根据所述交易输出的第二账户的公钥及所述第二账户对应的第二加密算法的标识,生成包含所述第二加密算法的标识的锁定脚本。可选的,所述执行模块,具体用于针对所述交易中每个交易输入,根据所述交易输入指向的目标交易输出的包含目标加密算法的标识的目标锁定脚本,对所述交易输入的包含所述第一加密算法的标识的解锁脚本进行验签。可选的,所述装置还包括:账户创建模块,用于如果存在至少一个所述交易中交易输出的第二账户未创建,所述接收交易的执行请求之前,针对所述交易中每个未创建的交易输出的第二账户,接收所述第二账户的创建请求,所述创建请求携带有所述第二账户对应的第二加密算法的标识;根据所述第二加密算法生成所述第二账户的密钥对,并根据所述密钥对中的公钥和所述第二加密算法的标识生成所述第二账户的账户地址。第三方面,本专利技术公开了一种节点,包括:存储器和处理器;所述存储器中存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行上述任一项所述方法的步骤。第四方面,本专利技术公开一种计算机可读存储介质,其存储有可由节点执行的计算机程本文档来自技高网
...

【技术保护点】
1.一种资产转移方法,其特征在于,应用于区块链的节点,所述方法包括:接收交易的执行请求,所述执行请求中包含所述交易中每个交易输入的第一账户的根据所述第一账户对应的第一加密算法生成的私钥的签名和公钥,及所述交易中每个交易输出的第二账户的根据所述第二账户对应的第二加密算法生成的公钥,其中所述交易的至少一个交易输入的第一账户和至少一个交易输出的第二账户对应的加密算法相同或不同;根据所述交易中每个交易输入的第一账户的私钥的签名和公钥,生成所述每个交易输入的解锁脚本,根据所述交易中每个交易输出的第二账户的公钥,生成所述每个交易输出的锁定脚本;构造所述交易;针对所述交易中每个交易输入,根据所述交易输入指向的目标交易输出的目标锁定脚本,对所述交易输入的解锁脚本进行验签;并在所述交易中每个交易输入的解锁脚本验签通过后,将所述交易写入所述区块链。

【技术特征摘要】
1.一种资产转移方法,其特征在于,应用于区块链的节点,所述方法包括:接收交易的执行请求,所述执行请求中包含所述交易中每个交易输入的第一账户的根据所述第一账户对应的第一加密算法生成的私钥的签名和公钥,及所述交易中每个交易输出的第二账户的根据所述第二账户对应的第二加密算法生成的公钥,其中所述交易的至少一个交易输入的第一账户和至少一个交易输出的第二账户对应的加密算法相同或不同;根据所述交易中每个交易输入的第一账户的私钥的签名和公钥,生成所述每个交易输入的解锁脚本,根据所述交易中每个交易输出的第二账户的公钥,生成所述每个交易输出的锁定脚本;构造所述交易;针对所述交易中每个交易输入,根据所述交易输入指向的目标交易输出的目标锁定脚本,对所述交易输入的解锁脚本进行验签;并在所述交易中每个交易输入的解锁脚本验签通过后,将所述交易写入所述区块链。2.如权利要求1所述的方法,其特征在于,如果所述执行请求中还包含所述每个交易输入的第一账户对应的第一加密算法的标识,所述根据所述交易中每个交易输入的第一账户的私钥的签名和公钥,生成所述每个交易输入的解锁脚本包括:针对所述交易中每个交易输入,根据所述交易输入的第一账户的私钥的签名和公钥及所述第一账户对应的第一加密算法的标识,生成包含所述第一加密算法的标识的解锁脚本;如果所述执行请求中还包括所述每个交易输出的第二账户对应的第二加密算法的标识,所述根据所述交易中每个交易输出的第二账户的公钥,生成所述每个交易输出的锁定脚本包括:针对所述交易中每个交易输出,根据所述交易输出的第二账户的公钥及所述第二账户对应的第二加密算法的标识,生成包含所述第二加密算法的标识的锁定脚本。3.如权利要求2所述的方法,其特征在于,所述针对所述交易中每个交易输入,根据所述交易输入指向的目标交易输出的目标锁定脚本,对所述交易输入的解锁脚本进行验签包括:针对所述交易中每个交易输入,根据所述交易输入指向的目标交易输出的包含目标加密算法的标识的目标锁定脚本,对所述交易输入的包含所述第一加密算法的标识的解锁脚本进行验签。4.如权利要求1所述的方法,其特征在于,如果存在至少一个所述交易中交易输出的第二账户未创建,所述接收交易的执行请求之前,针对所述交易中每个未创建的交易输出的第二账户,所述方法还包括:接收所述第二账户的创建请求,所述创建请求携带有所述第二账户对应的第二加密算法的标识;根据所述第二加密算法生成所述第二账户的密钥对,并根据所述密钥对中的公钥和所述第二加密算法的标识生成所述第二账户的账户地址。5.一种资产转移装置,其特征在于,应用于区块链的节点,所述装置...

【专利技术属性】
技术研发人员:徐加明吴锋海刘胜殷舒张生辉
申请(专利权)人:联动优势科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1