本公开涉及区块链网络,并且具体地涉及用于生成和实现接收方促进的区块链交易的方法和装置。
背景技术:
1、区块链是指一种分布式数据结构的形式,其中,在分布式对等(p2p)网络(以下称为“区块链网络”)中的多个节点中的每一个处维护区块链的复制副本,并且该复制副本被广泛地宣传。区块链中的交易用于执行以下一项或多项:传送数字资产(即,许多数字通证),对虚拟化的分类账或注册表中的日记帐条目的集合进行排序,接收和处理时间戳条目,和/或对索引指针在时间上排序。
2、在“基于输出”的模型(有时称为基于utxo的模型)中,给定交易的数据结构包括一个或多个输入以及一个或多个输出。任何可花费的输出包括指定从交易的进行序列(proceeding sequence)中可导出的数字资产的量的元素。可花费的输出有时被称为utxo(“未花费的交易输出”)或“出点”。输出还可以包括锁定脚本,该锁定脚本指定未来赎回输出的条件。锁定脚本是限定证实和转移数字通证或资产所需的条件的阐述。(除了创币交易之外的)交易的每个输入包括指向在先交易中的这种输出的指针(即,引用),并且还可以包括用于解锁所指向的输出的锁定脚本的解锁脚本。
3、为了使区块链网络对大量参与方实际有用,终端用户装置可以运行客户端应用(有时称为“钱包”或简化支付验证(spv)软件)。这种客户端应用缺乏完整区块链节点的功能,并且没有区块链的完整副本。
4、区块链交易通常涉及交易费用(和/或在某些协议的情况下涉及‘燃料费(gas)’),该交易费用可支付给成功将交易包括在正确地挖掘出的有效区块中的区块链节点(例如,矿工)。典型的模型是发送方节点供应足够的数字资产(例如,加密货币)作为交易的输入,并且输入的数字资产的一部分用于支付交易费用。指定量的数字资产被分配或转移到接收方节点的输出脚本,任何剩余的资产被分配或发送到发送方的输出脚本作为“找零”。这颠覆了典型的零售消费者交易,因为货币交易的成本(例如,信用卡费用)通常由商家(接收方)承担。这为采用和使用区块链系统进行日常交易造成了障碍,甚至可能在某些司法管辖区受到法律或法规的禁止。然而,不能期望商家/接收方向潜在的消费者装置提供授权来在建立交易时向商家收取交易费用,因为这可能需要接收方节点以未锁定的形式(实际上是“空白支票”)提供适当的输入。这可能会让接收方意外地面临巨额交易费用,而且可能容易导致滥用和无法实施。具有解决这些缺点中的至少一些的用于执行接收方促进的区块链交易的方法和系统将是有利的。
技术实现思路
1.一种生成接收方促进的区块链交易的计算机实现的方法,所述方法包括:
2.根据权利要求1所述的方法,其中,确定还包括:确定所述部分完整的交易不包含跨所有输出的签名。
3.根据权利要求1或2所述的方法,其中,确定所述部分完整的交易包括由所述发送装置应用于所述至少一个发送方输入且应用于少于所有的输出的所述一个或多个数字签名包括:确定所述部分完整的交易允许添加所述接收方输出脚本而不使由所述发送装置应用的所述一个或多个数字签名无效。
4.根据权利要求1至3中任一项的方法,其中,确定所述部分完整的交易包括由所述发送装置应用于所述至少一个发送方输入且应用于少于所有的输出的所述一个或多个数字签名包括:确定由所述发送方装置应用的所有签名是sighash_single或sighash_none类型。
5.根据权利要求1至3中任一项所述的方法,其中,确定包括:确定由所述发送方装置应用的签名均不是sighash_all类型。
6.根据权利要求1至5中的任一项所述的方法,还包括:所述接收方装置向所述发送方装置提供与发送方输入和发送方输出相关的最大条件。
7.根据权利要求6所述的方法,还包括:所述接收方装置确定所述部分完整的交易中发送方输入和发送方输出的计数,并确认所述发送方输入和发送方输出的计数不大于由所述最大条件设置的最大值。
8.根据权利要求6所述的方法,还包括:确定所述部分完整的交易中发送方输入和发送方输出的字节大小,并确认所述字节大小不大于由所述最大条件设置的最大大小。
9.根据权利要求1至8中任一项所述的方法,其中,将所述接收方出点从所述接收方装置传输到所述发送方装置包括:生成并发送交易模板,所述交易模板包含所述接收方出点作为所述交易模板的输入。
10.根据权利要求9所述的方法,其中,所述交易模板还包含输出脚本,所述输出脚本引用接收方输出地址作为一个输出,并且所述交易模板指定向所述一个输出的转移数额。
11.根据权利要求1至10中任一项所述的方法,还包括:在接收方装置处:
12.根据权利要求1至11中任一项所述的方法,还包括:在所述发送方装置处,通过以下方式生成所述部分完整的交易:
13.一种计算装置,所述计算装置包括:
14.根据权利要求13所述的计算装置,其中,所述计算装置包括销售点终端。
15.一种计算机可读介质,存储处理器可执行指令,所述处理器可执行指令包括在由一个或多个处理器执行时使所述处理器执行根据权利要求1至12中任一项所述的方法的指令。