CN111291067A - 一种区块链数据结转方法 - Google Patents
一种区块链数据结转方法 Download PDFInfo
- Publication number
- CN111291067A CN111291067A CN202010169348.9A CN202010169348A CN111291067A CN 111291067 A CN111291067 A CN 111291067A CN 202010169348 A CN202010169348 A CN 202010169348A CN 111291067 A CN111291067 A CN 111291067A
- Authority
- CN
- China
- Prior art keywords
- block
- transaction
- carry
- transfer
- over
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Strategic Management (AREA)
- Data Mining & Analysis (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Computing Systems (AREA)
- Technology Law (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明是一种区块链数据结转方法,包括如下步骤:发起结转交易;生成结转区块;上链结转区块;结转历史区块;封存结转历史区块;查询结转历史区块;删除结转历史区块。通过发起账户的结转交易,且结转交易上链生效之后对应账户的余额是可信和可用的,之后该账户可以使用该余额为基础和源头进行后续交易,对该账户的后续交易验证可以不需要区块链之前区块存储的历史交易信息,只要有账户最近生效的结转交易即可进行交易验证和共识,对当前区块链的正常运行无影响,已结转的历史区块可以封存或删除。该方法可以有效地减少区块链节点存储实时运行的数据量,避免出现因数据量大而引发的各种问题。
Description
技术领域
本发明涉及区块链应用技术领域,具体的说是一种区块链数据结转方法。
背景技术
区块链本质是一个分布式的共享账本和数据库,具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特性,这些特性为区块链创造信任奠定了基础。区块链丰富的应用场景,基本上都基于区块链能够解决信息不对称问题,实现多个主体之间的协作信任与一致行动。区块链技术是目前实现各种加密数字货币的基础技术,各个加密数字货币的实现都大同小异。以比特币为例,在比特币形成过程中,区块是一个一个的存储单元,记录了一定时间内各个节点全部的交易信息;各个区块之间通过随机散列(也称哈希算法)实现链接,后一个区块包含前一个区块的哈希值,一个区块与一个区块相继接续,形成的结果就叫区块链。
共识机制是各种区块链保证信息有效和防止篡改的关键,在达成共识时需要在区块链上验证交易是否合法有效。比如,A账户给B账户转账100元,区块链验证节点需要确认A账户确实有100元可以用,并且大多数参与确认的节点确认结果都是A账户有100元可以用,在这种情况下才将这笔转账交易记录打包存入某一区块中并存储到区块链的节点上,由这些区块形成一条区块链,这个就是一个简单的共识过程。要验证确认A账户有100元可用就是要追溯A账户的所有交易,找到这100元的来源,而验证确认的支撑数据就是区块链上与A账户有关的所有历史交易信息,这些历史交易信息随机存储于区块链的各个区块中,而这些区块也随机散落在区块链的各个位置。
如上所述,如果某个区块链节点需要参与共识(验证)则需要该节点存有区块链的全部区块信息。因为,交易验证确认时所使用到的区块都是和某一账户相关的,首先待验证确认的账户具有随机性,其次所需区块也具有随机性,这些都是不可预测的,因此只能存储所有区块数据才能满足共识(验证)的要求。然而随着交易的不断进行和时间的推移,区块数会越来越多,而且是不断增长的,如果需要存储所有的区块数据则会占用很多的存储空间而且所需的存储空间还会不断地增长。在一段时期后用来存储区块数据的存储空间是惊人的,同时伴随着数据量的不断增加为了保证交易验证的效率,对共识节点的运算能力也不断提出更高的要求。出现这种情况后只有少数的“超级节点”才能满足共识的要求,长期以往共识就只能在少数“超级节点”之间进行。对“超级节点”的要求也会越来越高,满足要求的“超级节点”的数量会越来越少,逐渐呈现出了中心化的趋势,最终可能会演变为中心化,更有可能最后没有“超级节点”能承担海量的数据存储和提供超高的运算能力从而造成区块链停摆,严重破坏了区块链的生态体系。
发明内容
本发明要解决的技术问题是提供一种区块链数据结转方法,该种区块链数据结转方法能够减少区块链共识节点存储的数据量、不提高共识节点的运算能力要求,在保证安全可信的前提下,可以使尽可能多的区块链节点满足共识要求参与共识,与原有区块链的交易和共识体系可以完全兼容,不会因为交易的不断进行和时间的推移而改变区块链去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特性,使区块链一直处于良好的运行状态,从而维护区块链的生态体系。
为解决上述技术问题,本发明采用的技术方案为:
一种区块链数据结转方法,其特征在于:采用对账户进行结转的方式减少数据规模,区块链任一账户结转后的数据可作为后续交易的基础和源头,区块链数据结转具体步骤如下:
步骤1,发起结转交易,所述的结转交易为设置增加了结转标记的区块链交易信息,所述的结转交易的触发条件为区块数量达到设定数量时***自动出发所有账户进行结转交易,也可以为按照设定时间周期性的自动触发各个账户进行结转交易;从满足同一触发结转条件开始到所有账户都生产了结转交易为止,这期间的所有结转交易都使用同一个结转序号;
步骤2,生成结转区块,包含了结转交易的区块称之为结转区块;记账节点生成新的区块时优先打包结转交易生成新区块,若新区块中包含了结转交易则增加结转标记,并标识该区块是结转区块;若新生成的区块中没有结转交易则该新区块保持与原来区块一致;新区块生成后按照原区块链的共识机制将该新区块上链;
步骤3,通过原区块链的共识机制将结转区块上链,结转区块所包含的结转交易经过共识上链之后即成为经区块链认证的信息与区块链的其他交易具备一样的特性,可以作为该账户后续交易的源交易使用;将一批连续的区块划分为不同的结转周期,其中0号结转周期包括第一个结转区块之前的所有区块,后续每个结转周期包括从一个结转序号的第一个结转区块开始到下一个结转序号第一个结转区块的前一个区块结束;某一结转周期之前的所有区块称之为该结转周期的历史区块;
步骤4,若达到设定条件的历史区块对于区块链信息的真实性和区块链正常运转无影响,此时账户交易溯源只需要溯源到最近的结转交易,则满足设定条件的历史区块为结转历史区块;若需对结转历史区块进行封存,则转入步骤5;若需对结转历史区块进行删除,则转入步骤7;
步骤5,以结转周期为单位存储了一批连续的结转历史区块则称之为封存结转历史区块,该区块链节点称之为封存节点;封存结转历史区块时封存该节点发起封存结转历史区块交易,封存结转历史区块交易中包含封存的结转周期信息以及封存节点信息并由封存节点签名交易,将已封存的结转周期信息上链供后续使用;
步骤6,查询结转历史区块;发起结转历史区块查询交易,获取封存结转周期列表后与当前区块链拼接,最终可查询结转历史区块交易并执行激励分配政策;
步骤7,除了封存结转历史区块的节点外,其他所有节点均被允许删除结转历史区块,不会影响区块链的共识和其他正常业务。
步骤1中结转交易的输出信息为账户当前总的余额,结转交易验证也就是验证该账户当前总的余额是否正确和可用。
所述的结转序号从1开始按顺序编号,计算结转序号时在区块链上获取上一个结转序号加1,步骤1中结转交易的触发条件为区块数量达到设定数量时,从第一个触发的区块高度往前寻找第一个结转区块即可以获取到上一结转序号,此时发起结转交易的步骤如下:
步骤1.1.1,新区块生成后,满足发起结转交易触发条件;
步骤1.1.2,计算结转序号;
步骤1.1.3,顺序遍历所有账户,判断某一账户是否存在当前结转序号发起的结转交易,若不存在则发起该账户的结转交易并签名,直到所有的帐户都生成结转交易。
所述的步骤1.1.3中,判断某一账户是否存在当前结转序号发起的结转交易的方法为:通过验证节点缓存的交易池中是否有该账户对应结转序号的结转交易以及后续区块中是否有该账户对应结转序号的结转交易,若两次验证结果均无该账户对应结转序号的结转交易,则能够判定账户不存在当前结转序号发起的结转交易。
所述的结转序号从1开始按顺序编号,计算结转序号时在区块链上获取上一个结转序号加1,步骤1中结转交易的触发条件为按照设定时间周期性的自动触发时,则往前查询小于触发时间点的第一个结转区块即可以获取到上一结转序号,此时发起结转交易的步骤如下:
步骤1.2.1,某一账户发起交易前,判定是否满足预设触发时间条件,若不满足条件,则直接发起交易;
步骤1.2.2,若某一账户发起交易前满足条件,计算结转序号;
步骤1.2.3,判断是否存在当前结转序号已生效的转结交易,如已经存在,则可继续发起交易;
步骤1.2.4,若不存在,在结转交易生效后方可进行继续发起交易。
所述的步骤6内若账户发起历史交易信息查询,具体流程如下:
步骤6.1,发起结转历史区块查询交易;所述的结转历史区块查询交易可得到各个区块链的激励机制支持,且对于公有链存在激励机制;
步骤6.2,获取封存结转周期列表;
步骤6.3,判断结转周期是否能与当前区块链链接;将当前已经封存的结转周期按编号从大到小往前推,直到结转周期编号不连续为止,如果存在编号能连续的结转周期则返回成功并进入步骤6.4否则返回失败;
步骤6.4,获取结转历史区块信息并与当前区块链拼装;
步骤6.5,判断拼装是否成功,若拼装失败,则不存在与当前区块往前推移能连续的结转历史区块;若拼装成功,则存在与当前区块往前推移能连续的结转历史区块;
步骤6.6,查询结转历史区块交易并执行激励分配方案;查询结转历史区块交易信息并返回结果,对提供相关服务的区块链节点按照激励方案分配激励。
所述的步骤6.4中,结转历史区块信息与当前区块链拼装流程为:从封存节点获取结转历史区块信息,并将所有获取到的结转历史区块与当前区块链拼装,形成一条临时链,拼装时通过区块链的后续区块保存前一区块的特征信息的机制验证前一区块是否被篡改,如果被判定已被篡改则丢弃该区块,并从其他封存节点重新获取对应的结转历史区块,如果没有符合条件的结转历史区块则拼装结束;如果获取到区块且没有被篡改则将该区块拼装入链,继续下一个区块拼装,直到所有结转历史区块都拼装完成。
该种区块链数据结转方法能够产生的有益效果为:该种区块链数据结转方法通过借鉴银行业务中的结转业务,将区块链中所有账户计算当前各个账户的总的余额,并发起一个账户将余额转给自己的特殊交易,这个特殊交易称之为结转交易,这个过程称之为账户结转。结转交易上链生效之后对应账户的余额是可信和可用的,之后该账户可以使用该余额为基础和源头进行后续交易,对该账户的后续交易验证可以不需要区块链之前区块存储的历史交易信息,只要有账户最近生效的结转交易即可进行交易验证和共识。部分区块存在与否对于当前区块链的正常运行无影响,这些区块称之为结转历史区块,区块链节点可以封存结转历史区块也可以删除结转历史区块。各个共识节点不要存储区块链上所有的区块也能实现区块链的去中心化、不可篡改、集体维护、公开透明等特性,不影响区块链的正常运行,通过本发明可以有效地减少区块链节点存储实时运行的数据量,避免出现因数据量大而引发的各种问题。同时通过激励机制等各种手段使部分区块链节点封存结转的历史区块和提供查询服务,进一步实现区块链的全程留痕、可以追溯等特性,从而满足区块链的各项业务需求。
附图说明
图1为本发明一种区块链数据结转方法的工作流程图。
图2为本发明一种区块链数据结转方法中结转交易与普通交易结构对比示意图
图3为本发明一种区块链数据结转方法中结转区块与普通区块结构对比示意图。
图4为本发明一种区块链数据结转方法中新区块生成后校验结转交易触发条件的工作流程图。
图5为本发明一种区块链数据结转方法中验证某一账户是否存在当前结转序号发起的结转交易的工作流程图。
图6为本发明一种区块链数据结转方法中某账户新交易发起时校验结转交易触发条件的工作流程图。
图7为本发明一种区块链数据结转方法中增加了结转区块后区块链示意图。
图8为本发明一种区块链数据结转方法中区块链结转周期示意图。
图9为本发明一种区块链数据结转方法中结转历史区块以结转周期为单位进行存储的示意图。
图10为本发明一种区块链数据结转方法中封存结转历史区块的流程图。
图11为本发明一种区块链数据结转方法中结转历史区块删除后相关节点保存的区块链示意图。
图12为本发明一种区块链数据结转方法中删除结转历史区块的流程图。
图13为本发明一种区块链数据结转方法中查询交易信息的流程图。
图14为本发明一种区块链数据结转方法中结转历史区块与当前区块链拼装的流程图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述。
一种区块链数据结转***和装置采用以单记账节点为共识机制的区块链,单记账节点共识机制指的是永远不会出现有一个以上区块同时产生的情况,同一时刻有且只有一个记账节点能生成新区块,不会出现区块链分叉的情况。
如图1所示,一种区块链数据结转方法包括如下步骤:步骤1,发起结转交易;步骤2,生成结转区块;步骤3,上链结转区块;步骤4,结转历史区块;步骤5,封存结转历史区块;步骤6,查询结转历史区块;步骤7,删除结转历史区块。
步骤1中,结转交易只需扩展原区块链的交易信息,增加结转标记,即填充结转序号即可,与兼容原有交易,如图2所示,有结转标记的交易为结转交易,指的是账户自己对自己发起的特殊转账交易,该交易的输入交易可以为空也可以是当前账户最后一次交易,输出信息是当前账户总的余额,后续交易验证也就是验证该账户当前总的余额是否正确和可用。在该方案发起结转交易过程中不会使用到输入交易信息,填充输入交易用于适应某些区块链的需要。
结转交易触发的触发条件包括但不限于:第一,以区块数量为触发条件;第二,以固定时间间隔为触发条件。不管何种方式单独触发或者两种方式组合触发,两次结转交易触发条件需要间隔合理的时间,避免频繁触发结转交易同时还需要预留足够的时间保证所有账户都能完成结转交易。从满足触发结转条件开始到所有账户都生产了结转交易为止,这期间的所有结转交易都使用同一个结转序号,结转序号从1开始按顺序编号。计算结转序号时在区块链上获取上一个结转序号+1。
由于区块链的数据量与区块数密切相关,当以区块数量为触发条件时,可以定义到达一定数量的区块后时由***自动触发所有账户的结转交易,此时,可以从第一个触发的区块高度往前寻找第一个结转区块即可以获取到上一结转序号。
由于区块链的数据量与运行时间同样密切相关,以固定时间间隔为触发条件时,可以设置每周、每月、每季度、每年等固定的时间间隔由***周期性自动触发所有账户的结转交易,此时,此时可以往前查询小于触发时间点的的第一个结转区块即可以获取到上一结转序号。
当一新区块生成后检查是否满足结转交易触发条件流程如图4所示:新区块生成后如果达到触发结转交易条件则计算结转序号,循环遍历所有账户,判断某一账户是否存在当前结转序号发起的结转交易,如果不存在则发起该账户的结转交易并签名,直到所有的帐户都生成结转交易。验证某一账户是否存在当前结转序号发起的结转交易流程如图5所示:由于各个区块链的交易主要存在于各节点的交易池和区块链的区块中,结转交易也是交易的一种,可以兼容原区块链的交易机制,因此通过在节点缓存的交易池和已上链区块中验证当前账户是否已经发起了当前结转序号的结转交易。当节点缓存的交易池和已上链区块中均不存在当前结转序号的结转交易时,才发起该账户的结转交易,能够避免重复发起某账户的结转交易。
当某一账户发起交易前校验是否满足结转交易触发条件流程如图6所示:在某一账户发起交易前验证是否达到结转交易触发的条件,如果没有达到条件则直接发起新交易;如果达到结转交易触发条件则新交易要以生效的当前结转序号的结转交易为最终源才能发起新的交易,因此需要验证否存在已经生效的当前结转序号的结转交易;如果存在已经生效的当前结转序号的结转交易则需要以该结转交易作为后续所有交易的最终源交易发起新的交易;如果不存在已生效的当前结转序号的结转交易,则判断是否存在未生效的当前结转序号的结转交易;如果存在还未生效的当前结转序号的结转交易则等待该结转交易生效后再发起新的交易;如果不存在未生效的当前结转序号的结转交易则提示用户发起账户结转交易,待相关结转交易生效后再发起新的交易。
进一步的,该***中存在结转交易和普通交易两种交易方式,两种交易验证方法如下:结转交易验证根据当前区块链上某账户的所有交易计算该账户当前总的余额,验证该账户在生成结转交易时总的余额是否正确和可用。同时还需要验证交易签名,交易签名的验证只验证交易信息与签名是否一致,交易信息是否被篡改。结转交易验证通过后结转交易记入节点交易池,验证不通过则丢弃该结转交易。普通交易验证则时对于交易的溯源可以只到最近一次已经生效的结转交易为止,不需要再往前溯源验证,因为按照区块链的机制结转交易的余额是真实可信和可用的,其他验证内容不变。交易验证通过后交易记入节点交易池,验证不通过则丢弃交易。
步骤2中,结转区块与普通区块的差别在于当前区块中是否包含了结转交易,如图3所示,记账节点生成新的区块时优先打包结转交易生成新区块,同一个区块中的结转交易序号一致,结转交易触发机制和结转序号计算算法保证了不会同时出现结转序号不一致的结转交易待打包,如果新区块中包含了结转交易则增加结转标记标识该区块是结转区块,结转标记为填充结转交易的结转序号,如果该区块中没有结转区块则新区块保持与原来区块一致。新区块生成后按照原区块链的共识机制将该新区块上链。
步骤3中,通过原区块链的共识机制将区块上链,结转区块和普通区块上链基本无差别,在共识时对于交易验证只需对结转交易和普通交易分别验证即可,其他则完全兼容原区块链的共识机制,增加了结转区块后区块链如图7所示,结转区块和普通区块可以间隔出现也可以连续出现,不需要两种类型都连续。结转交易经过共识上链之后即成为经区块链认证的信息与区块链的其他交易具备一样的特性,信息是真实可信的,可以作为该账户后续交易的源交易使用。
进一步的,将区块链中一批连续的区块划分为不同的结转周期,如图8所示,出现第一个结转区块之前的所有区块都属于第一个结转周期,我们将其定义为编号为0号的结转周期。从一个结转序号的第一个结转区块开始到下一个结转序号第一个结转区块的前一个结转区块结束为一个结转周期,以两者较小的结转序号作为该结转周期的序号,上述这批区块就属于该结转周期,并依此类推将区块链划分成多个结转周期,此时每个相应区块可归属到某一结转周期之中。结转区块和普通区块可以间隔出现也可以连续出现,不影响结转周期的划分。结转周期0是特殊结转周期,该结转周期不包含结转区块,其他结转周期都是以结转区块开头。任一结转周期之前的所有区块称之为该结转周期的历史区块也可简称为历史区块,后续都使用历史区块来表示这种关系。
步骤4中,通过预先设置条件,将符合条件的历史区块定义为结转历史区块,例如可将三个结转周期之前历史区块定义为结转历史区块。符合条件的历史区块对区块链信息的真实性和区块链正常运转无影响,账户交易溯源只需要溯源到最近的结转交易即可。后续步骤对结转历史区块以结转周期为单位进行处理。
步骤5中,封存结转历史区块流程如图10所示,发起封存结转历史区块任务后对结转历史区块是否存在进行判定,将存在的结转历史区块进行存储形成封存结转历史区块,最后将封存结转历史区块信息上链。区块链节点以结转周期为单位存储了一批连续的结转历史区块则称之为封存结转历史区块,该区块链节点称之为封存节点,如图9所示。封存结转历史区块的节点发起封存结转历史区块交易,该交易中包含封存的结转周期信息以及封存节点信息并由封存节点签名交易,已封存的结转周期信息上链供后续使用。封存节点需要保证封存的结转历史区块未被篡改而且能正常提供服务才能获取对应的激励。公有链必须要有激励机制来鼓励区块链节点封存结转历史区块,对于联盟链和私有链则可以设置激励机制让特定的区块链节点封存结转历史区块。激励机制可以按照不同的情况进行定义,本实施例中采用激励机制为:存储结转历史区块的节点可以为后续结转历史区块查询提供服务并获取对应的激励,建议激励机制中对于提供存储时间越久的结转历史区块的封存节点可以获取更多的激励。
步骤6中,查询结转历史区块需要按照区块链的激励机制有偿查询,查询交易信息的流程如图13所示,查询历史交易时分为当前区块链查询和结转历史区块查询,查询结转历史区块信息步骤如下:
步骤6.1,发起结转历史区块查询交易;如果需要查询结转历史区块中的交易信息则需要发起结转历史区块查询交易,此交易需要各个区块链的激励机制配合,对于公有链必须要有激励,对于联盟链和私有链可以按照具体情况确定是否需要激励;
步骤6.2,获取封存结转周期列表;因区块链节点封存结转历史区块后相关封存的结转周期信息都会上链,将所有的封存节点的封存信息进行综合,优先选用存储封存结转历史区块最多的并可以提供服务的节点。
步骤6.3,结转周期是否能与当前区块链链接;按照当前区块链的结转周期编号,将当前已经封存的结转周期按编号从大到小往前推,直到结转周期编号不连续为止,如果存在编号能连续的结转周期则返回成功否则返回失败。
步骤6.4,获取结转历史区块信息并与当前区块链拼装;结转历史区块与当前区块链拼装流程如图14所示,从封存节点获取结转历史区块信息,并将所有获取到的结转历史区块与当前区块链拼装,形成一条临时链。按照区块链的后续区块都保存前一区块的特征信息的特有机制,拼装时需要验证前一区块是否被篡改,如果被篡改了则丢弃该区块。对于被篡改的区块或者未获取到信息的区块,需要从其他封存节点重新获取对应的结转历史区块,如果没有符合条件的结转历史区块则拼装结束;如果获取到区块且没有被篡改则将该区块拼装入链,继续下一个区块拼装,直到所有结转历史区块都拼装完成。结转历史区块拼装入链后其信息就是可信的。拼装时要保证结转历史区块往前推移的区块数最多,也就是可以拼装的区块链是最长链,直到全网没有可以继续成功拼装的结转历史区块为止。
步骤6.5,判断拼装是否成功;拼装失败:不存在与当前区块往前推移能连续的结转历史区块;拼装成功:存在与当前区块往前推移能连续的结转历史区块。
步骤6.6,查询结转历史区块交易并执行激励分配方案;区块链拼装完成后可以查询结转历史区块交易信息并返回结果,对提供相关服务的区块链节点按照激励方案分配激励。
步骤7中,删除结转历史区块流程如图12所示,首先发起删除结转历史区块任务并判断是否存在结转历史区块,若存在结转历史区块则删除结转历史区块。区块链节点可以删除结转历史区块以节省存储空间和提升节点运行效率,达到区块链“瘦身”的目标,除了封存结转历史区块的节点外,其他所有节点都可以删除结转历史区块,不影响区块链的共识和其他正常业务。删除后的相关节点保存的区块链信息如图11所示。
该种区块链数据结转方法及***中,区块链的账户结转是指计算区块链某一账户当前时刻的全部余额,并发起将该余额由区块链账户转给自己的交易,这个交易称之为结转交易,这个行为就是账户结转。结转交易中的余额是该账户当前可用余额的总和,每个账户当前都只有一个最终余额,结转交易经过区块链的交易认证和共识上链生效之后该账户当前总的余额信息是可信的,余额是可用的,后续的交易都可以该结转交易作为源交易进行交易验证。共识节点只需要在交易验证时找到待验证交易账户生效的最近的结转交易即可进行验证,无需再往前追溯,从而可以减少交易验证的源数据规模,共识节点也就不需要存储太多的历史信息,在安全可信的前提下,达到大大缩减共识节点的数据存储量的目标。
进一步的,其他共识机制的区块链如果采用对账户进行结转的方式减少数据规模也属于本发明要求的权利范围。结转方式不限于账户自己给自己转账,也就是说通过某种方式来确定某一账户某一时刻余额并以该余额作为后续交易的基础和源头,不需要其他历史交易验证的共识机制也属于本发明要求的权利范围。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (6)
1.一种区块链数据结转方法,其特征在于:采用对账户进行结转的方式减少数据规模,区块链任一账户结转后的数据可作为后续交易的基础和源头,区块链数据结转具体步骤如下:
步骤1,发起结转交易,所述的结转交易为设置增加了结转标记的区块链交易信息,所述的结转交易的触发条件为区块数量达到设定数量时***自动触发所有账户进行结转交易,也可以为按照设定时间周期性的自动触发各个账户进行结转交易;从满足同一触发结转条件开始到所有账户都生成了结转交易为止,这期间的所有结转交易都使用同一个结转序号;
步骤2,生成结转区块,包含了结转交易的区块称之为结转区块;记账节点生成新的区块时优先打包结转交易生成新区块,若新区块中包含了结转交易则增加结转标记,并标识该区块是结转区块;若新生成的区块中没有结转交易则该新区块保持与原来区块一致;新区块生成后按照原区块链的共识机制将该新区块上链;
步骤3,通过区块链的共识机制将结转区块上链,结转区块所包含的结转交易经过共识上链之后即成为经区块链认证的信息与区块链的其他交易具备一样的特性,可以作为该账户后续交易的源交易使用;将一批连续的区块划分为不同的结转周期,其中0号结转周期包括第一个结转区块之前的所有区块,后续每个结转周期包括从一个结转序号的第一个结转区块开始到下一个结转序号第一个结转区块的前一个区块结束;某一结转周期之前的所有区块称之为该结转周期的历史区块;
步骤4,若达到设定条件的历史区块对于区块链信息的真实性和区块链正常运转无影响,此时账户交易溯源只需要溯源到最近的结转交易,则满足设定条件的历史区块为结转历史区块;若需对结转历史区块进行封存,则转入步骤5;若需对结转历史区块进行删除,则转入步骤7;
步骤5,以结转周期为单位存储了一批连续的结转历史区块则称之为封存结转历史区块,该区块链节点称之为封存节点;封存结转历史区块时封存节点发起封存结转历史区块交易,封存结转历史区块交易中包含封存的结转周期信息以及封存节点信息并由封存节点签名该交易,将已封存的结转周期信息上链供后续使用;
步骤6,查询结转历史区块;发起结转历史区块查询交易,获取封存结转周期列表后与当前区块链拼接,最终可查询结转历史区块交易并执行激励分配政策;
步骤7,除了封存结转历史区块的节点外,其他所有节点均被允许删除结转历史区块,不会影响区块链的共识和其他正常业务。
2.如权利要求1所述的一种区块链数据结转方法,其特征在于:步骤1中结转交易的输出信息为账户当前总的余额,结转交易验证也就是验证该账户当前总的余额是否正确和可用。
3.如权利要求2所述的一种区块链数据结转方法,其特征在于:所述的结转序号从1开始按顺序编号,计算结转序号时在区块链上获取上一个结转序号加1,步骤1中结转交易的触发条件为区块数量达到设定数量时,从第一个触发的区块高度往前寻找第一个结转区块即可以获取到上一结转序号,此时发起结转交易的步骤如下:
步骤1.1.1,新区块生成后,满足发起结转交易触发条件;
步骤1.1.2,计算结转序号;
步骤1.1.3,顺序遍历所有账户,判断某一账户是否存在当前结转序号发起的结转交易,若不存在则发起该账户的结转交易并签名,直到所有的帐户都生成结转交易;
所述的步骤1.1.3中,判断某一账户是否存在当前结转序号发起的结转交易的方法为:通过验证节点缓存的交易池中是否有该账户对应结转序号的结转交易以及已上链区块中是否有该账户对应结转序号的结转交易,若两次验证结果均无该账户对应结转序号的结转交易,则能够判定账户不存在当前结转序号发起的结转交易。
4.如权利要求2所述的一种区块链数据结转方法,其特征在于:所述的结转序号从1开始按顺序编号,计算结转序号时在区块链上获取上一个结转序号加1,步骤1中结转交易的触发条件为按照设定时间周期性的自动触发时,则往前查询小于触发时间点的第一个结转区块即可以获取到上一结转序号,此时发起结转交易的步骤如下:
步骤1.2.1,某一账户发起交易前,判定是否满足预设触发时间条件,若不满足条件,则直接发起交易;
步骤1.2.2,若某一账户发起交易前满足条件,计算结转序号;
步骤1.2.3,判断是否存在当前结转序号已生效的转结交易,如已经存在,则可继续发起交易;
步骤1.2.4,若不存在,在结转交易生效后方可进行继续发起交易。
5.如权利要求1所述的一种区块链数据结转方法,其特征在于:所述的步骤6内若账户发起历史交易信息查询,具体流程如下:
步骤6.1,发起结转历史区块查询交易;所述的结转历史区块查询交易可得到各个区块链的激励机制支持,且对于公有链存在激励机制;
步骤6.2,获取封存结转周期列表;
步骤6.3,判断结转周期是否能与当前区块链链接;将当前已经封存的结转周期按编号从大到小往前推,直到结转周期编号不连续为止,如果存在编号能连续的结转周期则返回成功并进入步骤6.4否则返回失败;
步骤6.4,获取结转历史区块信息并与当前区块链拼装;
步骤6.5,判断拼装是否成功,若拼装失败,则不存在与当前区块往前推移能连续的结转历史区块;若拼装成功,则存在与当前区块往前推移能连续的结转历史区块;
步骤6.6,查询结转历史区块交易并执行激励分配方案;查询结转历史区块交易信息并返回结果,对提供相关服务的区块链节点按照激励方案分配激励。
6.如权利要求5所述的一种区块链数据结转方法,其特征在于:所述的步骤6.4中,结转历史区块信息与当前区块链拼装流程为:从封存节点获取结转历史区块信息,并将所有获取到的结转历史区块与当前区块链拼装,形成一条临时链,拼装时通过区块链的后续区块保存前一区块的特征信息的机制验证前一区块是否被篡改,如果被判定已被篡改则丢弃该区块,并从其他封存节点重新获取对应的结转历史区块,如果没有符合条件的结转历史区块则拼装结束;如果获取到区块且没有被篡改则将该区块拼装入链,继续下一个区块拼装,直到所有结转历史区块都拼装完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010169348.9A CN111291067B (zh) | 2020-03-12 | 2020-03-12 | 一种区块链数据结转方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010169348.9A CN111291067B (zh) | 2020-03-12 | 2020-03-12 | 一种区块链数据结转方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111291067A true CN111291067A (zh) | 2020-06-16 |
CN111291067B CN111291067B (zh) | 2021-01-26 |
Family
ID=71029615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010169348.9A Active CN111291067B (zh) | 2020-03-12 | 2020-03-12 | 一种区块链数据结转方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111291067B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112465546A (zh) * | 2020-11-26 | 2021-03-09 | 中诚信征信有限公司 | 一种用户识别方法、装置及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106228446A (zh) * | 2016-05-12 | 2016-12-14 | 北京众享比特科技有限公司 | 基于私有区块链的资产交易平台***及方法 |
CN106649838A (zh) * | 2016-12-29 | 2017-05-10 | 先锋支付有限公司 | 数据传输方法、区块链节点及分布式数据库 |
US20180285412A1 (en) * | 2017-03-29 | 2018-10-04 | Alibaba Group Holding Limited | Method, apparatus, and system for blockchain consensus |
-
2020
- 2020-03-12 CN CN202010169348.9A patent/CN111291067B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106228446A (zh) * | 2016-05-12 | 2016-12-14 | 北京众享比特科技有限公司 | 基于私有区块链的资产交易平台***及方法 |
CN106649838A (zh) * | 2016-12-29 | 2017-05-10 | 先锋支付有限公司 | 数据传输方法、区块链节点及分布式数据库 |
US20180285412A1 (en) * | 2017-03-29 | 2018-10-04 | Alibaba Group Holding Limited | Method, apparatus, and system for blockchain consensus |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112465546A (zh) * | 2020-11-26 | 2021-03-09 | 中诚信征信有限公司 | 一种用户识别方法、装置及设备 |
CN112465546B (zh) * | 2020-11-26 | 2024-04-19 | 中诚信征信有限公司 | 一种用户识别方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111291067B (zh) | 2021-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107169865B (zh) | 基于区块链技术的资产数据处理*** | |
CN107392608B (zh) | 基于区块链***的数字资产交易方法及区块链*** | |
CN108924092B (zh) | 基于区块链的可公开仲裁分布式云存储方法及*** | |
CN110493148B (zh) | 一种区块处理、区块共识和区块同步方法及装置 | |
CN107807951A (zh) | 一种区块链生成方法、数据验证方法、节点及*** | |
CN107657438A (zh) | 一种区块链生成方法、数据验证方法、节点及*** | |
CN109711836A (zh) | 一种交易的存储方法、存储网络和电子设备 | |
CN107301536A (zh) | 资源转移方法及装置 | |
US20230109969A1 (en) | Data processing method and apparatus based on node internal memory, device and medium | |
CN109166037B (zh) | 区块链的共识方法 | |
CN112015823B (zh) | 一种区块链数据的删除方法和装置 | |
CN109447605A (zh) | 一种基于区块链的链货币兑换方法、装置、设备和介质 | |
CN111966538B (zh) | 一种区块链数据的恢复方法和装置 | |
CN112015822B (zh) | 一种区块链数据的删除方法和装置 | |
CN112015596B (zh) | 一种区块链数据的恢复方法和装置 | |
CN110060161A (zh) | 用于区块链交易防重的客户端服务实现方法及服务组件 | |
CN111967995A (zh) | 一种智能合约的创建方法和装置 | |
CN111291067B (zh) | 一种区块链数据结转方法 | |
CN111667270A (zh) | 基于区域的数字货币使用方法、装置及电子设备 | |
CN110930152A (zh) | 一种基于区块链的数据处理方法及相关设备 | |
CN112261157A (zh) | 提交跨片事务的方法及***、主链节点和源分片节点 | |
CN115456772A (zh) | 一种智能合约的创建方法和装置 | |
CN112261160B (zh) | 包含分片的区块链***中退出跨片事务的方法及*** | |
CN110162274A (zh) | 一种基于区块链的数据处理方法、装置及设备 | |
CN112015577A (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 |