区块链交易方法及装置与流程

文档序号:17492444发布日期:2019-04-23 20:45阅读:314来源:国知局
区块链交易方法及装置与流程

本申请涉及区块链领域,具体而言,涉及一种区块链交易方法及装置。



背景技术:

区块链是分布式数据存储、点对点传输、共识机制和加密算法等计算机新型应用模型。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次区块链交易信息。在传统的区块链系统中,因为没有中心化的管理者,每次交易需要通过5个区块的延迟才能认为有效交易,从而避免出现双花问题。现有技术中,由于需要5个区块的延迟进行交易安全的确认,使得交易生效时间变得冗长。



技术实现要素:

为了克服现有技术中的上述不足,本申请的目的在于提供一种区块链交易方法,应用于包括多个区块的区块链系统,所述区块链系统中已经存在区块携带有相同的第一时间戳,所述方法的步骤包括:

获取所述区块链系统中新生成的多个区块,所述新生成的多个区块携带有生成区块时的第二时间戳;

分别将多个所述第二时间戳和所述第一时间戳相减,获得多个差值;

将所述多个差值中最小差值对应的新生成的区块作为有效区块。

可选地,所述区块链系统还包括用于表示起始区块的超级区块,所述方法的步骤还包括:

将所述超级区块作为起始区块,根据所述超级区块对所述区块链系统中的其他区块按连接顺序进行编号;

当多个所述第二时间戳相同时,根据所述编号将距离所述超级区块最近的新生成区块作为有效区块,所述距离表示所述新生成区块所挂接的区块和所述超级区块之间间隔的区块的数量。

可选地,所述方法还包括:

每间隔预设时间,动态的从已经生成的区块选取一个区块作为新的超级区块;

将选取超级区块的时间作为新的第一时间戳,并根据新的超级区块对所述区块链系统中的其他区块按连接顺序进行重新编号。

可选地,所述区块链系统还存在多个共识算法;所述方法的步骤还包括:

通过预设规则,根据当前区块链系统中已经生成区块的数量,使用不同的共识算法判断新生成的区块。

可选地,所述区块链系统为联盟链。

可选地,所述方法还包括:

新生成的区块挂接到已经存在区块之前,判断所挂接的区块是否存在,当所述挂接的区块不存在,则所述新生成的区块为无效区块。

本申请的另一目的在于提供一种区块链交易装置,应用于包括多个区块的区块链系统,所述区块链系统中已经存在区块携带有相同的第一时间戳,所述区块链装置包括区块获取模块、计算模块和判断模块;

区块获取模块用于获取所述区块链系统中新生成的多个区块,所述新生成的多个区块携带有生成区块时的第二时间戳;

计算模块分别将多个所述第二时间戳和所述第一时间戳相减,获得多个差值;

判断模块用于将所述多个差值中最小差值对应的新生成的区块作为有效区块。

可选地,所述区块链系统还包括用于表示起始区块的超级区块,所述区块链交易装置还包括编号模块;

所述编号模块用于将所述超级区块作为起始区块,根据所述超级区块对所述区块链系统中的其他区块按连接顺序进行编号;

所述判断模块还用于当多个所述第二时间戳相同时,根据所述编号将距离所述超级区块最近的新生成区块作为有效区块,所述距离表示所述新生成区块所挂接的区块和所述超级区块之间间隔的区块的数量。

可选地,所述区块链交易装置还包括选取模块;

所述选取模块用于每间隔预设时间,动态的从已经生成的区块选取一个区块作为新的超级区块;

所述编号模块还用于将选取超级区块的时间作为新的第一时间戳,并根据新的超级区块对所述区块链系统中的其他区块按连接顺序进行重新编号。

可选地,所述区块链交易装置还包括挂接模块;

所述挂接模块用于新生成的区块挂接到已经存在区块之前,判断所挂接的区块是否存在,当所述挂接的区块不存在,则所述新生成的区块为无效区块。

相对于现有技术而言,本申请具有以下有益效果:

本申请提供的区块链交易方法及装置,通过间隔一定时间从区块链系统中已经存在的区块中随机选取一个区块作为超级区块,同时,将选取超级区块的时间作为已经存在区块的第一时间戳。当所述区块链系统收到多个新生成区块时,将新生成区块的生成时间作为第二时间戳。计算多个第二时间戳和第一时间戳的差值。将所述差值中最小差值对应的区块作为有效区块。本申请有效解决区块链交易过程中双花问题的同时,不需要经过多个区块后才能确认交易生效,提高了交易效率。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的电子设备的硬件结构图;

图2为本申请实施例提供的区块链交易方法的步骤流程图;

图3为本申请实施例提供的根据标号判断有效区块的步骤流程图;

图4为本申请实施例提供的虚拟货币交易装置的结构图。

图标:100-电子设备;140-通信单元;130-处理器;110-区块链交易装置;120-存储器;1101-区块获取模块;1102-计算模块;1103-判断模块;1104-编号模块;1105-选取模块;1106-挂接模块。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。

请参照图1所示的电子设备100的硬件结构图,所述电子设备可以是区块链系统中的矿工节点,所述电子设备100包括区块链交易装置110、存储器120、处理器130、通信单元140。所述存储器120、处理器130以及通信单元140各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。

所述电子设备100可以是,但不限于,智能手机、个人电脑(personalcomputer,pc)、平板电脑、个人数字助理(personaldigitalassistant,pda)、移动上网设备(mobileinternetdevice,mid)等。

所述网络可以是,但不限于,有线网络或无线网络。

所述电子设备100的操作系统可以是,但不限于,安卓(android)系统、ios(iphoneoperatingsystem)系统、windowsphone系统、windows系统等。

其中,所述存储器120可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存储器120用于存储程序,所述处理器130在接收到执行指令后,执行所述程序。所述通信单元140用于通过所述网络建立不同电子设备100之间的通信连接,并用于通过所述网络收发数据。

所述处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

请参照图2所示的应用于图1所示的电子设备100的区块链交易方法的步骤流程图,所述区块链交易方法主要应用在联盟链中。以下将对所述方法包括各个步骤进行详细阐述。

步骤s100,获取所述区块链系统中新生成的多个区块,所述新生成的多个区块携带有生成区块时的第二时间戳。

可选地,由于区块链系统是一个分布式的系统,没有第三方机构做信任凭证。用户在使用区块链货币进行交易的时候,交易并不是实时生效的,这就带来了用户可以用一份区块链货币多次购买物品。用户通过一份区块链发起多分交易的时候,所述区块链系统中的不同电子设备100收到所述用户的交易请求之后,并对所述交易请求打包生成区块。所述区块链货币可以是比特币和莱特币等基于区块链技术生成的虚拟数字货币。由于所述区块链系统是一个分布式的系统,有些时候,存在同时生成两个或者两个以上区块的情况。这个时候,所述区块链系统就会收到多个新生成的区块。

步骤s200,分别将多个所述第二时间戳和所述第一时间戳相减,获得多个差值。

可选地,所述区块链系统中包括超级区块,为了保证区块链系统的安全,防止所述区块链系统被攻击。所述区块链系统每间隔一预设时间,随机从已经存在的区块中选取一个区块作为超级区块。同时,所述区块链系统将选取超级区块的时间作为已经存在的区块的新的第一时间戳,使得所述区块链系统中已经存在的区块拥有相同的时间戳。所述区块链系统获取到多个新生成的区块后,将所述新生成区块的第二时间戳和所述第一时间戳相减获得多个差值。

步骤s300,将所述多个差值中最小差值对应的新生成的区块作为有效区块。

可选地,所述区块链系统找出所述多个差值中的最小值,将所述最小差值对应的区块作为有效区块。

相比于现有解决一份区块链货币交易多次的解决方案中,需要在现有交易的基础上将最先生成5个区块的分支作为有效分支。本申请只需要判断时间戳差值大小,极大的提高了交易速度。

可选地,由于所述区块连系统是一个分布式的系统,可能存在新生成的两个区块的时间戳相同的情况。

请参照图3所示的根据标号判断有效区块的步骤流程图,为了解决这个情况,所述区块链系统通过以下步骤解决该问题。

步骤s1000,将所述超级区块作为起始区块,根据所述超级区块对所述区块链系统中的其他区块按连接顺序进行编号。

可选地,所述区块链系统将索虎超级区块作为起始区块,根据所述区块链系统中的区块的连接顺序对已经存在的区块进行编号。

步骤s2000,当多个所述第二时间戳相同时,根据所述编号将距离所述超级区块最近的新生成区块作为有效区块,所述距离表示所述新生成区块所挂接的区块和所述超级区块之间间隔的区块的数量。

当出现多个新生成区块的时间戳相同的情况时,所述区块链系统根据所述新生成区块的挂接区块和所述超级区块的距离判断出有效区块。所述区块链系统将所述距离最短的区块所挂接的区块作为有效区块。值得说明的是,所述距离表示区块的个数。

可选地,为了进一步提高所述区块链系统交易的效率,所述区块链系统预存有多个共识算法。例如,在一种可能的示例中,所述共识算法包括工作量证明机制算法和授权拜占庭容错算法。所述区块链系统根据当前已经生成区块的数量选择不同共识算法判断新生成的区块是否有效。

可选地,所述区块链系统获得新生成的区块的时候,需要先判断所述新生成的区块所挂接的区块是否存在。当所述挂接的区块不存在时,则所述新生成的区块为无效区块。

本实施例还提供一种如图4所示的区块链交易装置110,应用于包括多个区块的区块链系统,所述区块链交易装置110包括至少一个可以软件或固件(firmware)的形式存储于所述存储器120中或固化在所述电子设备100的操作系统(operatingsystem,os)中的软件功能模块。所述处理器130用于执行所述存储器120中存储的可执行模块,例如所述区块链交易装置110所包括的软件功能模块及计算机程序等。

所述区块链系统中已经存在区块携带有相同的第一时间戳,所述区块链交易110装置包括区块获取模块1101、计算模块1102和判断模块1103。

所述区块获取模块1101用于获取所述区块链系统中新生成的多个区块,所述新生成的多个区块携带有生成区块时的第二时间戳。

在本实施例中,所述区块获取模块1101用于执行图2中的步骤s100,关于所述区块获取模的详细描述可以参考步骤s100的详细描述。

所述计算模块1102分别将多个所述第二时间戳和所述第一时间戳相减,获得多个差值。

在本实施例中,所述计算模块1102用于执行图2中的步骤s200,关于所述计算模块1102的详细描述可以参考步骤s200的详细描述。

所述判断模块1103用于将所述多个差值中最小差值对应的新生成的区块作为有效区块。

在本实施例中,所述判断模块1103用于执行图2中的步骤s300,关于所述判断模块1103的详细描述可以参考步骤s300的详细描述。

可选地,所述区块链系统还包括用于表示起始区块的超级区块,所述区块链交易装置110还包括编号模块1104;

所述编号模块1104用于将所述超级区块作为起始区块,根据所述超级区块对所述区块链系统中的其他区块按连接顺序进行编号;

所述判断模块1103还用于当多个所述第二时间戳相同时,根据所述编号将距离所述超级区块最近的新生成区块作为有效区块,所述距离表示所述新生成区块所挂接的区块和所述超级区块之间间隔的区块的数量。

可选地,所述区块链交易装置110还包括选取模块1105;

所述选取模块1105用于每间隔预设时间,动态的从已经生成的区块选取一个区块作为新的超级区块;

所述编号模块1104还用于将选取超级区块的时间作为新的第一时间戳,并根据新的超级区块对所述区块链系统中的其他区块按连接顺序进行重新编号。

可选地,述区块链交易装置110还包括挂接模块1106;

所述挂接模块1106用于新生成的区块挂接到已经存在区块之前,判断所挂接的区块是否存在,当所述挂接的区块不存在,则所述新生成的区块为无效区块。

综上所述,本申请提供的区块链交易方法及装置,通过间隔一定时间从区块链系统中已经存在的区块中随机选取一个区块作为超级区块,同时,将选取超级区块的时间作为已经存在区块的第一时间戳。当所述区块链系统收到多个新生成区块时,将新生成区块的生成时间作为第二时间戳。计算多个第二时间戳和第一时间戳的差值。将所述差值中最小差值对应的区块作为有效区块。本申请有效解决区块链货币交易过程中双花问题的同时,不需要经过多个区块后才能确认交易生效,提高了交易效率。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1