一种基于区块链联盟链的快速共识记账方法及系统与流程

文档序号:11231652阅读:1392来源:国知局
一种基于区块链联盟链的快速共识记账方法及系统与流程

本发明涉及一种基于区块链联盟链的快速共识记账方法及系统。



背景技术:

随着区块链技术发展与成熟,其应用数量和场景急剧增加。区块链系统根据应用场景和设计体系的不同,一般分为公有链、联盟链和专有链。其中:

公有链的各个节点可以自由加入和退出网络,并参加链上数据的读写,运行时以扁平的拓扑结构互联互通,网络中不存在任何中心化的服务端节点。

联盟链的各个节点通常有与之对应的实体机构组织,通过授权后才能加入与退出网络。各机构组织组成利益相关的联盟,共同维护区块链的健康运转。

专有链的各个节点的写入权限收归内部控制,而读取权限可视需求有选择性地对外开放。专有链仍然具备区块链多节点运行的通用结构,适用于特定机构的内部数据管理与审计。

区块链中的各节点通过共识机制连接,共识机制即为区块链系统中实现不同节点之间建立信任、获取权益的数学方法。

与公有链相对比、联盟链有着自己的特点:有一定的结点数量,但可能不会太多,各实体机构组织有主动维护系统的意愿而各自又有着自己的利益顷向,基于以上特点在公有链上运行的pow、pos、dpos等共识机制,不太适用于联盟链,这表现在以下两个方面:

(1)联盟链的整体系统算力不能巨大到足以抵抗来自某个节点私自增加的巨大算力攻击,使得pow共识不适合于联盟链。

(2)联盟链中利益相关的各方,有可能会形成利益联盟侵蚀部分小机构的利益,便利pos、dpos等共识机制不适合于联盟链。

因此,当前联盟链在共识机制上普遍采用具有拜占庭容错能力的pbft共识机制,该机制采用许可投票、少数服从多数来选举领导者进行记账的共识机制,具有允许强监管节点参与,具备权限分级能力,性能更高,耗能更低,并且允许33%的节点作恶。该机制的容错能力同时带来了复杂性,及共识时间长的问题,这使得每次交易确认都要等待一段时间,与目前中心化交易平台秒级确认相比,极大的影响用户体验。



技术实现要素:

为克服上述现有技术的缺陷,本发明实施例提供了一种基于区块链联盟链的快速共识记账方法及系统,通过主权key的随机传递,使得交易确认权在系统中随机传递,从而实现区块链系统的快速共识。

为了达到上述目的,提供一种基于区块链联盟链的快速共识记账方法,包括如下步骤:

a)初始化系统时,系统生成一个用于生成新区块的主权key;

b)节点收集交易信息,等待新区块广播;

c)节点收到新区块广播后,将新区块添加到本地区块中;

d)接收到主权key的节点生成新区块,并创建新的主权key;

e)向系统所有节点广播新区块;

f)传递新的主权key。

优选的,收到主权key的节点用收到的新区块上所带的父哈希与新的主权key连接,求哈希后,把该值填入新生成区块的子验证哈希,把收到的主权key写入本块的主权key中,把本节点收集的交易信息写入该新生成区块的区块主体。

优选的,步骤a)中,对系统所有节点进行一次pbft同步,并随机指定一节点产生新区块并生成主权key。

优选的,步骤c)中,节点收到新区块广播时,验证新区块的合法性,把合法区块添加到本地区块链中,并删除交易收集池中已包含在新区块中的条目;若该新区块不合法,则把广播该新区块的结点从连接池中删除。

优选的,若节点超时未接收到生成新区块的广播,则系统强制实施步骤a)。

优选的,主权key的传递方法为在所有节点中随机选择一个节点进行传递。

优选的,新的主权key的创建方式为由收到主权key的节点随机生成。

优选的,主权key为一串十六进制字符串。

同时,本发明提供一种在基于区块链联盟链的快速共识记账系统,包括若干节点,节点中初始设置有一主节点,主节点用于生成新区块,区块包括用于存储交易信息的区块主体以及用于选举新主节点的区块头,区块头包括父哈希和主权key。

优选的,区块头还包括子验证哈希,收到主权key的节点随机生成新主权key,子验证哈希由父哈希与新主权key连接求哈希值生成。

本发明与现有技术相比的优点为:

当需要在诚实的区块链节点上传送一段数据时,本发明通过随机选择系统某个节点把主权key传递出去的方法,实现任一时间,系统中只有某一无法确定的节点具备生成新区块的能力和权限,记账权在所有诚实节点间随机分配,确保交易信息无法被篡改的同时,系统快速达到共识,交易确认速度从原来的分钟级缩短到秒级。

附图说明

图1是本发明的区块的结构示意图;

图2是本发明涉及的快速共识记账方法的一种实施例的示意图。

具体实施方式

在本发明描述中,术语“上”、“下”、“前”及“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不能理解为对本发明的限制。

下面结合附图对本发明的具体实施方式作进一步说明。

参见图1,本发明提出了一种在基于区块链联盟链的快速共识记账系统,包括若干节点,节点中初始设置有一主节点,主节点用于生成新区块,区块包括用于存储交易信息的区块主体1以及用于选举新主节点的区块头2,区块头2包括父哈希和主权key,作为优选实施例,区块头2还包括子验证哈希,收到主权key的节点随机生成新主权key,子验证哈希由父哈希与新主权key连接求哈希值生成。

本发明的系统中仅有收到主权key的节点具备生成新区块的权限,本发明在区块头2中加入了一串“子验证哈希”,该值由本区块的“父哈希”与“主权key”连接后求哈希得到,而“主权key”是在每次产生新区块时,由本节点随机选择的一串十六进制字符串,默认16位,以目前运算能力,虽然每次生成新区块时,节点是已经收到了上一区块,并从中得知了父区块的父哈希值,但在没有收到主权key时,无法计算出主权key,使得新生成的区块满足条件,从而实现了区块生成权在系统中的随机分配。

本发明涉及的一种基于区块链联盟链的快速共识记账方法,包括如下步骤:初始化系统时,系统生成一个用于生成新区块的主权key;节点收集交易信息,等待新区块广播;节点收到新区块广播后,将新区块添加到本地区块中;接收到主权key的节点生成新区块,并创建新的主权key;向系统所有节点广播新区块;传递新的主权key。

作为优选方案,收到主权key的节点用收到的新区块上所带的父哈希与新的主权key连接,求哈希后,把该值填入新生成区块的子验证哈希,把收到的主权key写入本块的主权key中,把本节点收集的交易信息写入该新生成区块的区块主体;步骤a)中,对系统所有节点进行一次pbft同步,并随机指定一节点产生新区块并生成主权key;步骤c)中,节点收到新区块广播时,验证新区块的合法性,把合法区块添加到本地区块链中,并删除交易收集池中已包含在新区块中的条目;若该新区块不合法,则把广播该新区块的结点从连接池中删除;若节点超时未接收到生成新区块的广播,则系统强制实施步骤a);主权key的传递方法为在所有节点中随机选择一个节点进行传递;新的主权key的创建方式为由收到主权key的节点随机生成。

参照图2,作为本发明快速共识记账方法的优选实施例,其具体步骤如下:

s101,初始化时对系统所有节点进行一次pbft同步,保证所有节点达成共识,系统随机指定一节点为主节点,主节点产生区块并生成主权key用于随机传递;

s102,节点收集交易信息,同时等待接收新区块的同步信息,以及等待主权key的传递;

s103,收到新区块广播时,验证新区块的合法性,把合法区块添加到本地区块链中,删除交易收集池中已包含在新区块中的条目,回到s102状态继续等待。若收到新区块,同时还收到了主权key,则随机生成一个新的主权key,用刚收到的新区块上所带的父哈希与此新的主权key连接,求哈希后,把该值填入新生成区块的子验证哈希,把前边收到的主权key写入本块的主权key,把本节点收集的交易信息写入该新生成区块的区块主体。到此,生成新区块完成;

s104,向系统所有节点进行广播;

s105,从所有节点中随机选择一个把new_key传递出去。

s106,本节点回去s102的收集及等待状态。

s107,以上s103过程中,如果收到了不合法的区块生成广播,则把广播本区块的结点从连接池中删;如果超时未收到生成新区块的广播,则发起pbft共识,使系统回复到状态s101。本步确保了系统中的不诚实节点将会被排除在外,以及本该生成新区块的节点临时故障掉线或停机时,其他节点能重新通过一次共识后,继续正常运行下去。

综上所述,本发明提出了一种基于区块链联盟链的快速共识记账方法及系统,通过在所有的区块链节点上传递用于生成下一个区块的主权key,在系统中实现新区块的生成及共识,从而能有效解决现有现有共识机制共识时间过长的问题,该方法能确保系统中单个节点无法篡改系统共同维护的区块链,使得交易快速确认的同时达到了账本的不可篡改性。

根据上述说明书的揭示和教导,本发明所属领域的技术人员还可以对上述实施方式进行变更和修改。因此,本发明并不局限于上面揭示和描述的具体实施方式,对本发明的一些修改和变更也应当落入本发明的权利要求的保护范围内。此外,尽管本说明书中使用了一些特定的术语,但这些术语只是为了方便说明,并不对本发明构成任何限制。

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