CN111027947A - Utxo钱包的选择方法、设备、存储介质及装置 - Google Patents
Utxo钱包的选择方法、设备、存储介质及装置 Download PDFInfo
- Publication number
- CN111027947A CN111027947A CN201911248239.XA CN201911248239A CN111027947A CN 111027947 A CN111027947 A CN 111027947A CN 201911248239 A CN201911248239 A CN 201911248239A CN 111027947 A CN111027947 A CN 111027947A
- Authority
- CN
- China
- Prior art keywords
- utxo
- wallet
- transferred
- local
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种UTXO钱包的选择方法、设备、存储介质及装置,该方法通过获取待转账金额,根据所述待转账金额从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息,在本地进行查找,缩小了钱包查找范围,不至于随***运行而增加,提高查找效率;从所述本地待转账UTXO钱包信息中提取索引号,根据所述索引号,从区块中查找用于构造交易的区块待转账UTXO钱包,通过区块序号和交易序号进行查找,能够快速查找到区块链中的钱包,提高了查找效率。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种UTXO钱包的选择方法、设备、存储介质及装置。
背景技术
在以比特币为代表的未花费的交易输出(Unspent Transaction Output,UTXO)交易***中,实际上没有账户的概念。简单来说,比特币***中的用户是以一个或一系列非对称密码的公私钥对来向***来证明自己所拥有的比特币。比特币***在转账交易中,会指明一笔交易从哪个钱包转出,转入到哪个钱包。这里钱包实际上就是用公私钥对来表示的,其中公钥用来描述一个钱包,私钥用来解锁钱包,只有提供了正确的私钥,才能使用钱包中所存有的比特币。
由于每个用户可以不止一个钱包,因此在每笔交易过程中,可能产生新的钱包。随着***运行,这些新钱包会不断增加,其中大部分都是无用的,但不能从区块链中去除。因此用户A要转账给用户B时,需要检查所有的钱包,从中选取满足需要的(例如余额不为0、可供消费标志为“允许”和钱包属于自己等)钱包来组成可用钱包组。现有的***是把所有钱包保存在区块链的区块中,用户在需要转账时,检索所有的钱包,再查找属于支付者的钱包,找到之后再在其中找到可用于支付的钱包组合,可见这个过程是很耗时的,而且***运行时间越长,钱包越来越多,该过程越来越耗时。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种UTXO钱包的选择方法、设备、存储介质及装置,旨在解决现有技术中查找UTXO钱包的过程耗时长的技术问题。
为实现上述目的,本发明提供一种UTXO钱包的选择方法,所述UTXO钱包的选择方法包括以下步骤:
获取待转账金额;
根据所述待转账金额从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息;
从所述本地待转账UTXO钱包信息中提取索引号;
根据所述索引号,从区块中查找用于构造交易的区块待转账UTXO钱包。
优选地,所述根据所述待转账金额从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息,具体包括:
按照金额从小到大依次从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息,直至查找到的所述本地待转账UTXO钱包信息中的金额总和大于等于所述待转账金额。
优选地,所述根据所述索引号,从区块中查找用于构造交易的区块待转账UTXO钱包之后,所述UTXO钱包的选择方法还包括:
对比所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包之间的一致性;
若所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包一致,则将所述区块中所述区块待转账UTXO钱包的可供消费标志更新为不允许标志;
若所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包不一致,则在所述本地UTXO钱包数据库中删除或更新所述本地待转账UTXO钱包信息。
优选地,所述若所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包一致,则将所述区块中所述区块待转账UTXO钱包的可供消费标志更新为不允许标志之后,所述UTXO钱包的选择方法还包括:
将所述不允许标志对应的所述区块待转账UTXO钱包作为输入UTXO钱包,将收款人的UTXO钱包作为输出UTXO钱包,根据所述输入UTXO钱包和所述输出UTXO钱包构造交易。
优选地,所述若所述将所述不允许标志对应的所述区块待转账UTXO钱包作为输入UTXO钱包,将收款人的UTXO钱包作为输出UTXO钱包,根据所述输入UTXO钱包和所述输出UTXO钱包构造交易之后,所述UTXO钱包的选择方法还包括:
将所述本地UTXO钱包数据库中的所述本地待转账UTXO钱包信息的可供消费标志更新为不可用标志,并在所述本地待转账UTXO钱包信息中记录当前的区块序号及交易序号。
优选地,所述获取待转账金额之前,所述UTXO钱包的选择方法还包括:
接收区块链中其他节点发送的消息;
判断所述消息是否为完整区块信息;
若所述消息是所述完整区块信息,则判断所述消息中是否存在他人转给当前节点的交易;
若所述消息中存在他人转给所述当前节点的当前交易,则将所述当前交易的输出地址、金额、区块序号和交易序号作为本地UTXO钱包信息,并将所述本地UTXO钱包信息记录在所述本地UTXO钱包数据库中。
优选地,所述若所述消息中存在他人转给所述当前节点的当前交易,则将所述当前交易的输出地址、金额、区块序号和交易序号作为本地UTXO钱包信息,并将所述本地UTXO钱包信息记录在所述本地UTXO钱包数据库中之后,所述UTXO钱包的选择方法还包括:
将所述本地UTXO钱包数据库中的所述本地UTXO钱包信息按照所述金额的大小进行排序。
此外,为实现上述目的,本发明还提出一种UTXO钱包的选择设备,所述UTXO钱包的选择设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的UTXO钱包的选择程序,所述UTXO钱包的选择程序配置为实现如上文所述的UTXO钱包的选择方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有UTXO钱包的选择程序,所述UTXO钱包的选择程序被处理器执行时实现如上文所述的UTXO钱包的选择方法的步骤。
此外,为实现上述目的,本发明还提出一种UTXO钱包的选择装置,所述UTXO钱包的选择装置包括:
获取模块,用于获取待转账金额;
查找模块,用于根据所述待转账金额从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息;
提取模块,用于从所述本地待转账UTXO钱包信息中提取索引号;
所述查找模块,还用于根据所述索引号,从区块中查找用于构造交易的区块待转账UTXO钱包。
本发明中,通过获取待转账金额,根据所述待转账金额从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息,在本地进行查找,缩小了钱包查找范围,不至于随***运行而增加,提高查找效率;从所述本地待转账UTXO钱包信息中提取索引号,根据所述索引号,从区块中查找用于构造交易的区块待转账UTXO钱包,通过区块序号和交易序号进行查找,能够快速查找到区块链中的钱包,提高了查找效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的UTXO钱包的选择设备的结构示意图;
图2为本发明UTXO钱包的选择方法第一实施例的流程示意图;
图3为本发明UTXO钱包的选择方法第二实施例的流程示意图;
图4为本发明UTXO钱包的选择方法第三实施例的流程示意图;
图5为本发明UTXO钱包的选择装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的UTXO钱包的选择设备结构示意图。
如图1所示,该UTXO钱包的选择设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display),可选用户接口1003还可以包括标准的有线接口、无线接口,对于用户接口1003的有线接口在本发明中可为USB接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的存储器(Non-volatileMemory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对UTXO钱包的选择设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及UTXO钱包的选择程序。
在图1所示的UTXO钱包的选择设备中,网络接口1004主要用于连接后台服务器,与所述后台服务器进行数据通信;用户接口1003主要用于连接用户设备;所述UTXO钱包的选择设备通过处理器1001调用存储器1005中存储的UTXO钱包的选择程序,并执行本发明实施例提供的UTXO钱包的选择方法。
所述UTXO钱包的选择设备通过处理器1001调用存储器1005中存储的UTXO钱包的选择程序,并执行以下操作:
获取待转账金额;
根据所述待转账金额从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息;
从所述本地待转账UTXO钱包信息中提取索引号;
根据所述索引号,从区块中查找用于构造交易的区块待转账UTXO钱包。
进一步地,所述UTXO钱包的选择设备通过处理器1001调用存储器1005中存储的UTXO钱包的选择程序,还执行以下操作:
按照金额从小到大依次从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息,直至查找到的所述本地待转账UTXO钱包信息中的金额总和大于等于所述待转账金额。
进一步地,所述UTXO钱包的选择设备通过处理器1001调用存储器1005中存储的UTXO钱包的选择程序,还执行以下操作:
对比所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包之间的一致性;
若所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包一致,则将所述区块中所述区块待转账UTXO钱包的可供消费标志更新为不允许标志;
若所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包不一致,则在所述本地UTXO钱包数据库中删除或更新所述本地待转账UTXO钱包信息。
进一步地,所述UTXO钱包的选择设备通过处理器1001调用存储器1005中存储的UTXO钱包的选择程序,还执行以下操作:
将所述不允许标志对应的所述区块待转账UTXO钱包作为输入UTXO钱包,将收款人的UTXO钱包作为输出UTXO钱包,根据所述输入UTXO钱包和所述输出UTXO钱包构造交易。
进一步地,所述UTXO钱包的选择设备通过处理器1001调用存储器1005中存储的UTXO钱包的选择程序,还执行以下操作:
将所述本地UTXO钱包数据库中的所述本地待转账UTXO钱包信息的可供消费标志更新为不可用标志,并在所述本地待转账UTXO钱包信息中记录当前的区块序号及交易序号。
进一步地,所述UTXO钱包的选择设备通过处理器1001调用存储器1005中存储的UTXO钱包的选择程序,还执行以下操作:
接收区块链中其他节点发送的消息;
判断所述消息是否为完整区块信息;
若所述消息是所述完整区块信息,则判断所述消息中是否存在他人转给当前节点的交易;
若所述消息中存在他人转给所述当前节点的当前交易,则将所述当前交易的输出地址、金额、区块序号和交易序号作为本地UTXO钱包信息,并将所述本地UTXO钱包信息记录在所述本地UTXO钱包数据库中。
进一步地,所述UTXO钱包的选择设备通过处理器1001调用存储器1005中存储的UTXO钱包的选择程序,还执行以下操作:
将所述本地UTXO钱包数据库中的所述本地UTXO钱包信息按照所述金额的大小进行排序。
本实施例中,通过获取待转账金额,根据所述待转账金额从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息,在本地进行查找,缩小了钱包查找范围,不至于随***运行而增加,提高查找效率;从所述本地待转账UTXO钱包信息中提取索引号,根据所述索引号,从区块中查找用于构造交易的区块待转账UTXO钱包,通过区块序号和交易序号进行查找,能够快速查找到区块链中的钱包,提高了查找效率。
基于上述硬件结构,提出本发明UTXO钱包的选择方法的实施例。
参照图2,图2为本发明UTXO钱包的选择方法第一实施例的流程示意图,提出本发明UTXO钱包的选择方法第一实施例。
在第一实施例中,所述UTXO钱包的选择方法包括以下步骤:
步骤S10:获取待转账金额。
应理解的是,本实施例的执行主体是所述UTXO钱包的选择设备,所述UTXO钱包的选择设备可以是个人计算机或服务器等电子设备,本实施例对此不加以限制。在典型的UTXO型区块链中,如比特币,钱包实际上就是一个公钥地址,因此本实施例中提到的钱包也可被称为公钥地址。每个区块包含多笔交易,每笔交易包含多个输入,每个输入都是一个公钥地址(钱包),每个输入都应该是支付者自己的钱包;还包含2个输出:一个输出转账金额给他人,另一个输出找零给自己,找零是所有输入钱包中所含金额之和减去转账金额,如果所有输入钱包金额之和恰好等于转账金额,则不用找零给自己。所述待转账金额是指交易中的钱包金额,即将所述待转账金额的支付者钱包用于交易。
步骤S20:根据所述待转账金额从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息。
可理解的是,所述本地UTXO钱包数据库用来保存所有本人可用的钱包信息。如果区块中含有他人转账给自己的交易,则把每笔交易的输出地址(钱包)、金额、区块序号和交易序号记录在所述本地UTXO钱包数据库,记录格式可以任意定制,只要包含这些信息即可。则可从所述本地UTXO钱包数据库中查找与所述待转账金额对应的本地待转账UTXO钱包信息。
需要说明的是,通常所述本地UTXO钱包数据库的钱包信息按照金额从小到大进行排序,则查找的过程中,首先查找金额小的,计算查找的钱包信息的金额总和,在查找的钱包信息的金额总和大于等于所述待转账金额时,停止查找,查找到的各钱包信息构成所述本地待转账UTXO钱包信息。在本实施例中,所述步骤S20,包括:按照金额从小到大依次从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息,直至查找到的所述本地待转账UTXO钱包信息中的金额总和大于等于所述待转账金额。
步骤S30:从所述本地待转账UTXO钱包信息中提取索引号。
在具体实现中,为了提高查找效率,本实施例中在所述本地待转账UTXO钱包信息中设计了索引号部分,用来指明某个输出钱包在整个区块链中的位置,根据所述索引号,很容易在所有区块中找到对应的钱包。所述索引号包括:区块序号和交易序号。所述区块序号是本区块在整个***中所有区块中的序号,所述交易序号是本交易在所述区块内的序号。区块链***中的矿工不断挖区块,一旦挖出一个区块,就把所收到的交易打包到区块中。打包时,在每笔交易中填充所述区块序号和所述交易序号。添加了所述索引号的交易格式如表1所示。
表1:带索引号的交易
步骤S40:根据所述索引号,从区块中查找用于构造交易的区块待转账UTXO钱包。
应理解的是,所述索引号包括:区块序号和交易序号。根据所述区块序号,从区块链***中查找到与所述区块序号对应的区块;根据所述交易序号,从所述区块中查找与所述交易序号对应的区块待转账UTXO钱包。所述区块待转账UTXO钱包可以是多个,各钱包信息的金额总和大于等于所述待转账金额。从所述区块中查找用于构造交易的区块待转账UTXO钱包,根据所述待转账UTXO钱包构造对应的交易。
本实施例中,通过获取待转账金额,根据所述待转账金额从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息,在本地进行查找,缩小了钱包查找范围,不至于随***运行而增加,提高查找效率;从所述本地待转账UTXO钱包信息中提取索引号,根据所述索引号,从区块中查找用于构造交易的区块待转账UTXO钱包,通过区块序号和交易序号进行查找,能够快速查找到区块链中的钱包,提高了查找效率。
参照图3,图3为本发明UTXO钱包的选择方法第二实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明UTXO钱包的选择方法的第二实施例。
在第二实施例中,所述步骤S40之后,还包括:
步骤S50:对比所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包之间的一致性。
应理解的是,将所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包进行比较,所述本地待转账UTXO钱包信息包括:每笔交易的输出地址(钱包)、金额、区块序号和交易序号,则将所述本地待转账UTXO钱包信息中的每个信息与所述区块待转账UTXO钱包对应的信息进行比较,判断两者是否一致,在所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包均为多个时,按金额大小从小到到依次对应进行比较,判断所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包的信息是否能够一一对应。
步骤S60:若所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包一致,则将所述区块中所述区块待转账UTXO钱包的可供消费标志更新为不允许标志。
可理解的是,若所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包一致,说明所述本地UTXO钱包数据库中的数据与区块链***中的数据同步,则将所述区块中所述区块待转账UTXO钱包的可供消费标志更新为不允许标志,意味着这些钱包将不会再次用于支付。
步骤S70:若所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包不一致,则在所述本地UTXO钱包数据库中删除或更新所述本地待转账UTXO钱包信息。
需要说明的是,若所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包不一致,说明所述本地UTXO钱包数据库中的数据与区块链***中的数据不同步,则在本地UTXO钱包数据库中删除或更新不一致的钱包信息记录,以使所述本地UTXO钱包数据库中的数据与区块链***中的数据同步。
本实施例中,对比所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包之间的一致性,若所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包一致,则将所述区块中所述区块待转账UTXO钱包的可供消费标志更新为不允许标志,通过判断本地钱包信息和区块中钱包的一致性,确保交易的准确性。
参照图4,图4为本发明UTXO钱包的选择方法第三实施例的流程示意图,基于上述图3所示的第二实施例,提出本发明UTXO钱包的选择方法的第三实施例。
在第三实施例中,在本实施例中,所述步骤S60之后,还包括:
步骤S80:将所述不允许标志对应的所述区块待转账UTXO钱包作为输入UTXO钱包,将收款人的UTXO钱包作为输出UTXO钱包,根据所述输入UTXO钱包和所述输出UTXO钱包构造交易。
在具体实现中,构造交易,其中输入钱包即为标志为“不允许”的这些钱包,输出为收款人的钱包。将所述不允许标志对应的所述区块待转账UTXO钱包作为输入UTXO钱包,将收款人的UTXO钱包作为输出UTXO钱包,在查找到的所述本地待转账UTXO钱包信息的金额总和大于所述待转账金额时,存在找零,则收款人还包括自己,找零是所有输入钱包中所含金额之和减去所述待转账金额,根据所述输入UTXO钱包和所述输出UTXO钱包构造交易。
应理解的是,在本地UTXO钱包数据库中标记这些钱包为“不可用”,并在这些钱包中记录当前区块序号和当前交易序号。在本实施例中,所述步骤S70之后,还包括:将所述本地UTXO钱包数据库中的所述本地待转账UTXO钱包信息的可供消费标志更新为不可用标志,并在所述本地待转账UTXO钱包信息中记录当前的区块序号及交易序号。
可理解的是,如果产生了找零钱包,即所有找到的钱包金额之和大于要转账的金额,则暂时忽略掉该钱包,因为该笔交易尚未被***确认。一旦***确认,本用户将会收到包含该笔交易的区块。
进一步地,在本实施例中,所述步骤S10之前,还包括:
接收区块链中其他节点发送的消息;
判断所述消息是否为完整区块信息;
若所述消息是所述完整区块信息,则判断所述消息中是否存在他人转给当前节点的交易;
若所述消息中存在他人转给所述当前节点的当前交易,则将所述当前交易的输出地址、金额、区块序号和交易序号作为本地UTXO钱包信息,并将所述本地UTXO钱包信息记录在所述本地UTXO钱包数据库中。
需要说明的是,在区块链运行中,每个用户都会不断收到区块链中其他节点发来的消息,一种是完整的区块信息,其中包含多笔交易。另一种不是完整区块,只是一条交易信息,这种信息中的交易尚未被***确认,所交易的金额暂时不能使用。
在具体实现中,如果是完整区块信息,其中所包含的每笔交易中的钱包都应该填充了所述区块序号和所述交易序号。如果只是一条交易信息,则不含所述区块序号和所述交易序号。其中包含交易信息,用户收到后检查其中的交易是否有他人支付给自己的交易钱包。接收方查看收到的消息,如果只是一条交易消息,则直接转发给其他节点。
应理解的是,如果接收的是完整的区块,则查看所述区块中的所有交易,看是否有他人转给自己的交易。如果没有,则正常处理。如果所述区块中含有他人转账给自己的交易,则把每笔交易的输出地址(钱包)、金额、区块序号和交易序号作为本地UTXO钱包信息,并将所述本地UTXO钱包信息记录在本地钱包数据库,记录格式可以任意定制,只要包含这些信息即可,所述本地UTXO钱包信息包括所述本地待转账UTXO钱包信息。本地钱包数据库用来保存所有本人可用的钱包信息。
进一步地,本实施例中,所述若所述消息中存在他人转给所述当前节点的当前交易,则将所述当前交易的输出地址、金额、区块序号和交易序号作为本地UTXO钱包信息,并将所述本地UTXO钱包信息记录在所述本地UTXO钱包数据库中之后,还包括:
将所述本地UTXO钱包数据库中的所述本地UTXO钱包信息按照所述金额的大小进行排序。
可理解的是,为了提高查找钱包的效率,对所述本地UTXO钱包数据库中的钱包按所含金额的大小进行排序,具体地,可以是根据所述金额从小到大进行排序。
本实施例中,将所述不允许标志对应的所述区块待转账UTXO钱包作为输入UTXO钱包,将收款人的UTXO钱包作为输出UTXO钱包,根据所述输入UTXO钱包和所述输出UTXO钱包构造交易,通过区块序号和交易序号查找到的钱包构建交易,提高了构建交易的效率。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有UTXO钱包的选择程序,所述UTXO钱包的选择程序被处理器执行时实现如下步骤:
获取待转账金额;
根据所述待转账金额从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息;
从所述本地待转账UTXO钱包信息中提取索引号;
根据所述索引号,从区块中查找用于构造交易的区块待转账UTXO钱包。
进一步地,所述UTXO钱包的选择程序被处理器执行时还实现如下操作:
按照金额从小到大依次从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息,直至查找到的所述本地待转账UTXO钱包信息中的金额总和大于等于所述待转账金额。
进一步地,所述UTXO钱包的选择程序被处理器执行时还实现如下操作:
对比所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包之间的一致性;
若所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包一致,则将所述区块中所述区块待转账UTXO钱包的可供消费标志更新为不允许标志;
若所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包不一致,则在所述本地UTXO钱包数据库中删除或更新所述本地待转账UTXO钱包信息。
进一步地,所述UTXO钱包的选择程序被处理器执行时还实现如下操作:
将所述不允许标志对应的所述区块待转账UTXO钱包作为输入UTXO钱包,将收款人的UTXO钱包作为输出UTXO钱包,根据所述输入UTXO钱包和所述输出UTXO钱包构造交易。
进一步地,所述UTXO钱包的选择程序被处理器执行时还实现如下操作:
将所述本地UTXO钱包数据库中的所述本地待转账UTXO钱包信息的可供消费标志更新为不可用标志,并在所述本地待转账UTXO钱包信息中记录当前的区块序号及交易序号。
进一步地,所述UTXO钱包的选择程序被处理器执行时还实现如下操作:
接收区块链中其他节点发送的消息;
判断所述消息是否为完整区块信息;
若所述消息是所述完整区块信息,则判断所述消息中是否存在他人转给当前节点的交易;
若所述消息中存在他人转给所述当前节点的当前交易,则将所述当前交易的输出地址、金额、区块序号和交易序号作为本地UTXO钱包信息,并将所述本地UTXO钱包信息记录在所述本地UTXO钱包数据库中。
进一步地,所述UTXO钱包的选择程序被处理器执行时还实现如下操作:
将所述本地UTXO钱包数据库中的所述本地UTXO钱包信息按照所述金额的大小进行排序。
本实施例中,通过获取待转账金额,根据所述待转账金额从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息,在本地进行查找,缩小了钱包查找范围,不至于随***运行而增加,提高查找效率;从所述本地待转账UTXO钱包信息中提取索引号,根据所述索引号,从区块中查找用于构造交易的区块待转账UTXO钱包,通过区块序号和交易序号进行查找,能够快速查找到区块链中的钱包,提高了查找效率。
此外,参照图5,本发明实施例还提出一种UTXO钱包的选择装置,所述UTXO钱包的选择装置包括:
获取模块10,用于获取待转账金额。
应理解的是,在典型的UTXO型区块链中,如比特币,钱包实际上就是一个公钥地址,因此本实施例中提到的钱包也可被称为公钥地址。每个区块包含多笔交易,每笔交易包含多个输入,每个输入都是一个公钥地址(钱包),每个输入都应该是支付者自己的钱包;还包含2个输出:一个输出转账金额给他人,另一个输出找零给自己,找零是所有输入钱包中所含金额之和减去转账金额,如果所有输入钱包金额之和恰好等于转账金额,则不用找零给自己。所述待转账金额是指交易中的钱包金额,即将所述待转账金额的支付者钱包用于交易。
查找模块20,用于根据所述待转账金额从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息。
可理解的是,所述本地UTXO钱包数据库用来保存所有本人可用的钱包信息。如果区块中含有他人转账给自己的交易,则把每笔交易的输出地址(钱包)、金额、区块序号和交易序号记录在所述本地UTXO钱包数据库,记录格式可以任意定制,只要包含这些信息即可。则可从所述本地UTXO钱包数据库中查找与所述待转账金额对应的本地待转账UTXO钱包信息。
需要说明的是,通常所述本地UTXO钱包数据库的钱包按照金额从小到大进行排序,则查找的过程中,首先查找金额小的,计算查找的钱包的金额总和,在查找的钱包的金额总和大于等于所述待转账金额时,停止查找,查找到的各钱包构成所述本地待转账UTXO钱包信息。在本实施例中,所述步骤S20,包括:按照金额从小到大依次从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息,直至查找到的所述本地待转账UTXO钱包信息中的金额总和大于等于所述待转账金额。
提取模块30,用于从所述本地待转账UTXO钱包信息中提取索引号。
在具体实现中,为了提高查找效率,本实施例中在所述本地待转账UTXO钱包信息中设计了索引号部分,用来指明某个输出钱包在整个区块链中的位置,根据所述索引号,很容易在所有区块中找到对应的钱包。所述索引号包括:区块序号和交易序号。所述区块序号是本区块在整个***中所有区块中的序号,所述交易序号是本交易在所述区块内的序号。区块链***中的矿工不断挖区块,一旦挖出一个区块,就把所收到的交易打包到区块中。打包时,在每笔交易中填充所述区块序号和所述交易序号。添加了所述索引号的交易格式如表1所示。
表1:带索引号的交易
所述查找模块20,还用于根据所述索引号,从区块中查找用于构造交易的区块待转账UTXO钱包。
应理解的是,根据所述区块序号,从区块链***中查找到与所述区块序号对应的区块;根据所述交易序号,从所述区块中查找与所述交易序号对应的区块待转账UTXO钱包。所述区块待转账UTXO钱包可以是多个,各钱包的金额总和大于等于所述待转账金额。从所述区块中查找用于构造交易的区块待转账UTXO钱包,根据所述待转账UTXO钱包构造对应的交易。
本实施例中,通过获取待转账金额,根据所述待转账金额从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息,在本地进行查找,缩小了钱包查找范围,不至于随***运行而增加,提高查找效率;从所述本地待转账UTXO钱包信息中提取索引号,根据所述索引号,从区块中查找用于构造交易的区块待转账UTXO钱包,通过区块序号和交易序号进行查找,能够快速查找到区块链中的钱包,提高了查找效率。
本发明所述UTXO钱包的选择装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为标识。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器镜像(Read Only Memory image,ROM)/随机存取存储器(Random AccessMemory,RAM)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种UTXO钱包的选择方法,其特征在于,所述UTXO钱包的选择方法包括以下步骤:
获取待转账金额;
根据所述待转账金额从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息;
从所述本地待转账UTXO钱包信息中提取索引号;
根据所述索引号,从区块中查找用于构造交易的区块待转账UTXO钱包。
2.如权利要求1所述的UTXO钱包的选择方法,其特征在于,所述根据所述待转账金额从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息,具体包括:
按照金额从小到大依次从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息,直至查找到的所述本地待转账UTXO钱包信息中的金额总和大于等于所述待转账金额。
3.如权利要求1所述的UTXO钱包的选择方法,其特征在于,所述根据所述索引号,从区块中查找用于构造交易的区块待转账UTXO钱包之后,所述UTXO钱包的选择方法还包括:
对比所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包之间的一致性;
若所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包一致,则将所述区块中所述区块待转账UTXO钱包的可供消费标志更新为不允许标志;
若所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包不一致,则在所述本地UTXO钱包数据库中删除或更新所述本地待转账UTXO钱包信息。
4.如权利要求3所述的UTXO钱包的选择方法,其特征在于,所述若所述本地待转账UTXO钱包信息和所述区块待转账UTXO钱包一致,则将所述区块中所述区块待转账UTXO钱包的可供消费标志更新为不允许标志之后,所述UTXO钱包的选择方法还包括:
将所述不允许标志对应的所述区块待转账UTXO钱包作为输入UTXO钱包,将收款人的UTXO钱包作为输出UTXO钱包,根据所述输入UTXO钱包和所述输出UTXO钱包构造交易。
5.如权利要求4所述的UTXO钱包的选择方法,其特征在于,所述若所述将所述不允许标志对应的所述区块待转账UTXO钱包作为输入UTXO钱包,将收款人的UTXO钱包作为输出UTXO钱包,根据所述输入UTXO钱包和所述输出UTXO钱包构造交易之后,所述UTXO钱包的选择方法还包括:
将所述本地UTXO钱包数据库中的所述本地待转账UTXO钱包信息的可供消费标志更新为不可用标志,并在所述本地待转账UTXO钱包信息中记录当前的区块序号及交易序号。
6.如权利要求1-5中任一项所述的UTXO钱包的选择方法,其特征在于,所述获取待转账金额之前,所述UTXO钱包的选择方法还包括:
接收区块链中其他节点发送的消息;
判断所述消息是否为完整区块信息;
若所述消息是所述完整区块信息,则判断所述消息中是否存在他人转给当前节点的交易;
若所述消息中存在他人转给所述当前节点的当前交易,则将所述当前交易的输出地址、金额、区块序号和交易序号作为本地UTXO钱包信息,并将所述本地UTXO钱包信息记录在所述本地UTXO钱包数据库中。
7.如权利要求6所述的UTXO钱包的选择方法,其特征在于,所述若所述消息中存在他人转给所述当前节点的当前交易,则将所述当前交易的输出地址、金额、区块序号和交易序号作为本地UTXO钱包信息,并将所述本地UTXO钱包信息记录在所述本地UTXO钱包数据库中之后,所述UTXO钱包的选择方法还包括:
将所述本地UTXO钱包数据库中的所述本地UTXO钱包信息按照所述金额的大小进行排序。
8.一种UTXO钱包的选择设备,其特征在于,所述UTXO钱包的选择设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的UTXO钱包的选择程序,所述UTXO钱包的选择程序被所述处理器执行时实现如权利要求1至7中任一项所述的UTXO钱包的选择方法的步骤。
9.一种存储介质,其特征在于,所述存储介质上存储有UTXO钱包的选择程序,所述UTXO钱包的选择程序被处理器执行时实现如权利要求1至7中任一项所述的UTXO钱包的选择方法的步骤。
10.一种UTXO钱包的选择装置,其特征在于,所述UTXO钱包的选择装置包括:
获取模块,用于获取待转账金额;
查找模块,用于根据所述待转账金额从本地UTXO钱包数据库中查找对应的本地待转账UTXO钱包信息;
提取模块,用于从所述本地待转账UTXO钱包信息中提取索引号;
所述查找模块,还用于根据所述索引号,从区块中查找用于构造交易的区块待转账UTXO钱包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911248239.XA CN111027947B (zh) | 2019-12-06 | 2019-12-06 | Utxo钱包的选择方法、设备、存储介质及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911248239.XA CN111027947B (zh) | 2019-12-06 | 2019-12-06 | Utxo钱包的选择方法、设备、存储介质及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111027947A true CN111027947A (zh) | 2020-04-17 |
CN111027947B CN111027947B (zh) | 2023-09-19 |
Family
ID=70205004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911248239.XA Active CN111027947B (zh) | 2019-12-06 | 2019-12-06 | Utxo钱包的选择方法、设备、存储介质及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111027947B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111628998A (zh) * | 2020-05-26 | 2020-09-04 | 中国联合网络通信集团有限公司 | 一种粉尘攻击防范方法 |
CN115328621A (zh) * | 2022-10-10 | 2022-11-11 | 北京百度网讯科技有限公司 | 基于区块链的事务处理方法、装置、设备及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106503053A (zh) * | 2016-09-26 | 2017-03-15 | 江苏通付盾科技有限公司 | Utxo查询方法及装置 |
CN108090761A (zh) * | 2017-11-10 | 2018-05-29 | 杭州云象网络技术有限公司 | 基于可信二维码的区块链代币支付方法 |
CN108805560A (zh) * | 2018-06-20 | 2018-11-13 | 腾讯科技(深圳)有限公司 | 数值整合方法、装置、电子设备及计算机可读存储介质 |
CN108876335A (zh) * | 2018-09-07 | 2018-11-23 | 杭州复杂美科技有限公司 | 一种余额管理方法和***、设备及存储介质 |
CN109345213A (zh) * | 2018-10-11 | 2019-02-15 | 北京番茄大陆科技有限公司 | 数字货币的转账方法、装置及设备 |
CN109360101A (zh) * | 2018-12-18 | 2019-02-19 | 百度在线网络技术(北京)有限公司 | 一种区块链交易处理方法、装置、设备和介质 |
WO2019043466A1 (ja) * | 2018-06-12 | 2019-03-07 | フレセッツ株式会社 | 暗号通貨のためのウォレット装置及びその装置を用いる署名方法 |
CN109493014A (zh) * | 2018-10-18 | 2019-03-19 | 北京瑞卓喜投科技发展有限公司 | 一种基于区块链的代币业务方法和业务*** |
US20190180047A1 (en) * | 2017-12-08 | 2019-06-13 | Nec Europe Ltd. | Method and system of preserving privacy for usage of lightweight blockchain clients |
CN110335153A (zh) * | 2019-07-15 | 2019-10-15 | 电子科技大学 | 一种基于遗传算法的区块链交易输入选择方法 |
CN110473105A (zh) * | 2019-08-20 | 2019-11-19 | 深圳市网心科技有限公司 | 一种区块链交易结算方法、***及相关设备 |
-
2019
- 2019-12-06 CN CN201911248239.XA patent/CN111027947B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106503053A (zh) * | 2016-09-26 | 2017-03-15 | 江苏通付盾科技有限公司 | Utxo查询方法及装置 |
CN108090761A (zh) * | 2017-11-10 | 2018-05-29 | 杭州云象网络技术有限公司 | 基于可信二维码的区块链代币支付方法 |
US20190180047A1 (en) * | 2017-12-08 | 2019-06-13 | Nec Europe Ltd. | Method and system of preserving privacy for usage of lightweight blockchain clients |
WO2019043466A1 (ja) * | 2018-06-12 | 2019-03-07 | フレセッツ株式会社 | 暗号通貨のためのウォレット装置及びその装置を用いる署名方法 |
CN108805560A (zh) * | 2018-06-20 | 2018-11-13 | 腾讯科技(深圳)有限公司 | 数值整合方法、装置、电子设备及计算机可读存储介质 |
CN108876335A (zh) * | 2018-09-07 | 2018-11-23 | 杭州复杂美科技有限公司 | 一种余额管理方法和***、设备及存储介质 |
CN109345213A (zh) * | 2018-10-11 | 2019-02-15 | 北京番茄大陆科技有限公司 | 数字货币的转账方法、装置及设备 |
CN109493014A (zh) * | 2018-10-18 | 2019-03-19 | 北京瑞卓喜投科技发展有限公司 | 一种基于区块链的代币业务方法和业务*** |
CN109360101A (zh) * | 2018-12-18 | 2019-02-19 | 百度在线网络技术(北京)有限公司 | 一种区块链交易处理方法、装置、设备和介质 |
CN110335153A (zh) * | 2019-07-15 | 2019-10-15 | 电子科技大学 | 一种基于遗传算法的区块链交易输入选择方法 |
CN110473105A (zh) * | 2019-08-20 | 2019-11-19 | 深圳市网心科技有限公司 | 一种区块链交易结算方法、***及相关设备 |
Non-Patent Citations (2)
Title |
---|
VAN-HUY NGUYEN.ET AL: "Building mathematical models applied to UTXOs selection for objective transactions", 2018 5TH NAFOSTED CONFERENCE ON INFORMATION AND COMPUTER SCIENCE (NICS), pages 160 - 164 * |
张若雪等: "基于UTXO和区块链的资金穿透记账***", 上海金融, pages 42 - 47 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111628998A (zh) * | 2020-05-26 | 2020-09-04 | 中国联合网络通信集团有限公司 | 一种粉尘攻击防范方法 |
CN111628998B (zh) * | 2020-05-26 | 2022-03-01 | 中国联合网络通信集团有限公司 | 一种粉尘攻击防范方法 |
CN115328621A (zh) * | 2022-10-10 | 2022-11-11 | 北京百度网讯科技有限公司 | 基于区块链的事务处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111027947B (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109064031B (zh) | 基于区块链的项目干系人信用评价方法、区块链及存储介质 | |
CN111859470B (zh) | 一种业务数据上链方法及装置 | |
RU2576495C2 (ru) | Система и способ для глобальной службы каталогов | |
CN110399448B (zh) | 中文地名地址搜索匹配方法、终端、计算机可读存储介质 | |
CN110336786B (zh) | 消息发送方法、装置、计算机设备和存储介质 | |
CN111027947A (zh) | Utxo钱包的选择方法、设备、存储介质及装置 | |
CN112906064B (zh) | 生成描述信息的方法及装置 | |
CN113706138B (zh) | 基于数字货币硬钱包的支付方法、装置、设备及存储介质 | |
CN115687276B (zh) | 一种文件处理方法、装置、电子设备及存储介质 | |
CN110737644A (zh) | 客户信息整合的方法、装置及计算机可读存储介质 | |
US20200089908A1 (en) | System, Method, and Apparatus for Digitally Managing Personal Data | |
JP6022904B2 (ja) | 来店認証システム | |
US12001400B2 (en) | Method and apparatus for synchronizing file | |
CN105378710A (zh) | 识别搜索匹配和经改变的搜索结果 | |
JP2005267270A (ja) | 加盟店端末機設置処理システム、サーバ及び端末機並びにそのプログラム | |
US8874039B2 (en) | Method of operating a mobile telecommunication terminal | |
JP2017010591A (ja) | 来店認証システム | |
CN110599274B (zh) | 一种票据处理方法、装置、处理设备及计算机存储介质 | |
CN105022941A (zh) | 一种用户名密码的管理方法和*** | |
CN109194734A (zh) | 消息推送方法、装置、服务器及可读存储介质 | |
CN112581322A (zh) | 裁判文书的处理方法及相关装置 | |
JP2020009343A (ja) | 送金管理システムおよび送金管理方法 | |
CN112131850B (zh) | 智能提单模板管理方法、装置、终端及存储介质 | |
CN111797004A (zh) | 基于Mock的测试方法、装置、设备及可读存储介质 | |
CN115660844A (zh) | 交易数据处理方法、装置和服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |