区块链钱包的交易方法及系统技术方案

技术编号:23767928 阅读:70 留言:0更新日期:2020-04-11 20:51
本申请涉及区块链技术领域,具体涉及一种区块链钱包的交易方法及系统,包括以下步骤:默克树服务器获取区块链中的默克树信息;区块链钱包与转发服务器建立连接;区块链钱包向区块链发送交易信息,同时更新账户余额;区块链钱包向默克树服务器查询当前交易的默克路径信息并将默克路径信息、交易信息发送给转发服务器;转发服务器将交易信息以及默克路径信息发送给交易接收方;交易接收方根据所述默克路径信息进行交易验证并确认交易。本方法提供了一种点对点的区块链钱包的实现方式,使得钱包服务端不需要爬取区块链上交易信息,让钱包的交易不受大区块的影响,提高交易效率,降低钱包服务商的运营成本。

Transaction method and system of blockchain Wallet

【技术实现步骤摘要】
区块链钱包的交易方法及系统
本申请涉及区块链
,具体涉及一种区块链钱包的交易方法及系统。
技术介绍
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性和生成下一个区块。在区块链中,没有余额账户的概念,帐号的余额由多条的UTXO(UnspentTransactionOutput,未花费的输出)记录组成,每一笔收入都是一个UTXO,UTXO花掉的时候必须整个花掉,如果有剩余,必须生成新的一条UTXO,而不能改变UTXO中金额信息。由于区块链这个特性,其无法提供一个中心化的服务来查询每个用户的余额和历史记录。在这种情况下,需要有一类软件来帮用户管理区块链上的资产,这类软件就是钱包,其主要功能包括公钥和私钥管理,历史记录查询,余额查询,发送和接收交易等。目前市面上的钱包的实现方式主要有以下两种:方式一,由后台服务爬取区块链上的所有交易信息,然后分析出每个地址的交易,存储到关系数据库中,如果爬取到当前钱包用户相关的交易,则更新用户的余额,当钱包客户端查询余额或者历史记录的时候,向服务端请求关系数据库中的数据。钱包发送交易的时候,向服务端请求UTXO的集合,然后构造交易发送到区块链网络上。这种实现方式,跟传统的中心化的钱包不一样,钱包服务商无法直接得到用户余额变动的信息,而只能从区块链上的海量交易中筛选出用户相关的交易。在目前的比特币区块链中,区块数量超过60万,交易数量超过3亿,地址相关的流水超过20亿。区块链的区块大小限制,经历了1M(百万字节),8M,128M,256M。目前已经出现了每个区块的大小在1GB(GB十亿字节)以上,整个区块链的大小在10TB(TB表示万亿字节),每十分钟的交易数量在五百万以上的超大区块链。在不远的将来中,区块大小的限制将会被取消,交易量和整条链的大小都会呈指数增长,因为只有大小不被限制的超大区块,才可以承载现实世界中海量的交易,以及各种各样的需要永久保存,并且不可篡改,方便审计的数据。在这种情况下,维护一个区块链的全节点,并从全节点上爬取数据,存在以下问题:1、爬取区块里面的所有交易需要大量的计算量;2、存储交易需要大量的存储空间;3、效率低下,交易更新不及时;4、为实现高效率的存储和查询,导致关系数据库的分库分表方案复杂。这些问题都导致了钱包商运营成本的增加。方式二,例如BIP270和paymail的方式,采用了第三方服务端来对钱包进行统一集中管理,钱包之间发生交易的时候,需要根据对方的邮箱,到邮箱域名对应的服务器查询支付的模板,然后填充模板,构造交易,并将交易提交的该服务器。该方式的问题是,需要第三方服务端做大量工作,第三方服务端需要有邮箱对应的域名,需要支持支付模板生成,需要管理接收端的UTXO和历史记录。并且,用户的钱包过度依赖第三方服务端,无法保障资产的安全性,也无法自由迁移。因此,如何既能降低运营的成本并且可以高效灵活地对区块链钱包进行管理,是钱包提供商当前急需解决的问题之一。
技术实现思路
本专利技术的目的之一在于克服以上缺点,提供一种点对点的区块链钱包的交易方法,使得钱包服务端不需要爬取区块链上交易,从而可以让钱包的交易不受大区块的影响,提高钱包交易的效率。为了解决上述技术问题,本专利技术提供了一种区块链钱包的交易方法,包括以下步骤:默克树服务器获取并保存区块链中每个区块的默克树信息;区块链钱包使用公钥作为身份信息与转发服务器建立连接;交易发起方区块链钱包向区块链发送交易信息;所述交易信息包括交易编号、发起方公钥、接收方公钥以及交易金额信息;所述交易发起方区块链钱包更新账户余额和交易历史记录;所述交易发起方区块链钱包向所述默克树服务器查询当前交易的默克路径信息;所述交易发起方区块链钱包将所述默克路径信息和所述交易信息发送给所述转发服务器;所述转发服务器根据所述交易信息中的接收方公钥将所述交易信息以及所述默克路径信息发送给交易接收方;所述交易接收方根据所述默克路径信息进行交易验证并确认交易。本申请的方法提供了一种点对点的区块链钱包的交易方法,交易双方通过转发服务器进行交易通讯,同时通过获取区块链的默克树信息并根据默克树信息进行区块链交易信息的验证,使得钱包服务端不需要爬取区块链上交易信息,提高了交易效率,减少磁盘存储空间,从而可以让钱包的交易不受大区块的影响,同时降低钱包服务商的运营成本。另外,通过基于公钥的认证通信模型,各个服务商的钱包可以通过这个通信模型互相通信。进一步地,所述“默克树服务器获取并保存区块链中每个区块的默克树信息”,具体步骤为:按照记录的顺序获取一个区块中的所有交易的编号;从第一个交易编号开始,将每两个相邻的奇数个交易编号与偶数个交易编号合并后计算生成上一层的哈希值,若交易总数为奇数,则对最后一个交易编号计算生成上一层哈希值;对生成的哈希值重复执行上述操作,直至生成唯一的哈希值,得到该区块的默克树结构;保存前述步骤生成的默克树结构及当前区块高度。进一步地,所述转发服务器为多个,每个转发服务器都将接收到的所述默克路径信息和所述交易信息发送给其他所有的转发服务器。通过设置转发服务器集群,可以方便进行转发服务器的扩容和负载均衡,提高消息处理量和效率,同时也可以实现相互容灾备份,减少故障率。进一步地,所述“区块链钱包使用公钥作为身份信息与转发服务器建立连接”,具体为:所述区块链钱包使用所有公钥分别与转发服务器建立长连接;或所述区块链钱包使用所有公钥与钱包代理建立长连接,所述钱包代理使用自身公钥与转发服务器建立长连接,同时所述区块链钱包在所述转发服务器上设置所有公钥的代理信息。通过钱包代理机制,可以极大地减少钱包和转发服务端的连接数量,降低转发服务端的设计和实现的复杂度,提高运行效率,同时也方便不同钱包服务商的接入和管理。进一步地,所述“所述交易发起方区块链钱包更新账户余额和交易历史记录”,具体为:若所述交易发起方区块链钱包与转发服务器直接连接,则在本地更新账户余额和交易历史记录;若所述交易发起方区块链钱包通过钱包代理与转发服务器进行连接,则将所述账户余额和交易历史记录发送给钱包代理,由所述钱包代理更新账户余额和交易历史记录。进一步地,所述“所述交易发起方区块链钱包将所述默克路径信息和所述交易信息发送给所述转发服务器”,具体为:若所述交易发起方区块链钱包与转发服务器直接连接,则发送所述默克路径信息和所述交易信息给所述转发服务器;若所述交易发起方区块链钱包通过钱包代理与转发服务器进行连接,则将所述默克路径信息和所述交易信息发送给钱包代理,由所述钱包代理再发送给转发服务器。进一本文档来自技高网
...

【技术保护点】
1.一种区块链钱包的交易方法,其特征在于,包括以下步骤:/n默克树服务器获取并保存区块链中每个区块的默克树信息;/n区块链钱包使用公钥作为身份信息与转发服务器建立连接;/n交易发起方区块链钱包向区块链发送交易信息;所述交易信息包括交易编号、发起方公钥、接收方公钥以及交易金额信息;/n所述交易发起方区块链钱包更新账户余额和交易历史记录;/n所述交易发起方区块链钱包向所述默克树服务器查询当前交易的默克路径信息;/n所述交易发起方区块链钱包将所述默克路径信息和所述交易信息发送给所述转发服务器;/n所述转发服务器根据所述交易信息中的接收方公钥将所述交易信息以及所述默克路径信息发送给交易接收方;/n所述交易接收方根据所述默克路径信息进行交易验证并确认交易。/n

【技术特征摘要】
1.一种区块链钱包的交易方法,其特征在于,包括以下步骤:
默克树服务器获取并保存区块链中每个区块的默克树信息;
区块链钱包使用公钥作为身份信息与转发服务器建立连接;
交易发起方区块链钱包向区块链发送交易信息;所述交易信息包括交易编号、发起方公钥、接收方公钥以及交易金额信息;
所述交易发起方区块链钱包更新账户余额和交易历史记录;
所述交易发起方区块链钱包向所述默克树服务器查询当前交易的默克路径信息;
所述交易发起方区块链钱包将所述默克路径信息和所述交易信息发送给所述转发服务器;
所述转发服务器根据所述交易信息中的接收方公钥将所述交易信息以及所述默克路径信息发送给交易接收方;
所述交易接收方根据所述默克路径信息进行交易验证并确认交易。


2.如权利要求1所述的区块链钱包的交易方法,其特征在于,所述“默克树服务器获取并保存区块链中每个区块的默克树信息”,具体步骤为:
按照记录的顺序获取一个区块中的所有交易的编号;
从第一个交易编号开始,将每两个相邻的奇数个交易编号与偶数个交易编号合并后计算生成上一层的哈希值,若交易总数为奇数,则对最后一个交易编号计算生成上一层哈希值;
对生成的哈希值重复执行上述操作,直至生成唯一的哈希值,得到该区块的默克树结构;
保存前述步骤生成的默克树结构及当前区块高度。


3.如权利要求1所述的区块链钱包的交易方法,其特征在于,所述转发服务器为多个,每个转发服务器都将接收到的所述默克路径信息和所述交易信息发送给其他所有的转发服务器。


4.如权利要求1所述的区块链钱包的交易方法,其特征在于,所述“区块链钱包使用公钥作为身份信息与转发服务器建立连接”,具体为:
所述区块链钱包使用所有公钥分别与转发服务器建立长连接;
或所述区块链钱包使用所有公钥与钱包代理建立长连接,所述钱包代理使用自身公钥与转发服务器建立长连接,同时所述区块链钱包在所述转发服务器上设置所有公钥的代理信息。


5.如权利要求4所述的区块链钱包的交易方法,其特征在于,所述“所述交易发起方区块链钱包更新账户余额和交易历史记录”,具体为:
若所述交易发起方区块链钱包与转发服务器直接连接,则在本地更新账户余额和交易历史记录;
若所述交易发起方区块链钱包通过钱包代理与转发服务器进行连接,则将所述账户余额和交易历史记录发送给钱包代理,由所述钱包代理更新账户余额和交易历史记录。


6.如权利要求4所述的区块链钱包的交易方法,其特征在于,所述“所述交易发起方区块链钱包将所述默克路径信息和所述交易信息发送给所述转发服务器”,具体为:
若所述交易发起方区块链钱包与转发服务器直接连接,则发送所述默克路径信息和所述交易信息给所述转发服务器;
若所述交易发起方区块链钱包通过钱包代理与转发服务器进行连接,则将所述默...

【专利技术属性】
技术研发人员:林哲明陈浩陈建秋
申请(专利权)人:福州博泉网络科技有限公司
类型:发明
国别省市:福建;35

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

1