基于区块链的定时清算方法及系统与流程

文档序号:19378030发布日期:2019-12-11 00:04阅读:421来源:国知局
本申请涉及通信领域,具体而言,涉及一种基于区块链的定时清算方法及系统。
背景技术
::随着区块链项目的逐渐推广应用,在一些实际场景中,区块链使用者在享有区块链不可篡改、安全保密等优势的同时,其密钥保管问题一直困扰着使用者。由于区块链去中心化、不可篡改的特点,所有使用者将自主管理自己的区块链账户,但是绝大多数使用者忽略了在缺少中心机构协助下独立管理自己账户的难度,如用户密钥丢失,被盗等情况时有发生并造成了可观的损失。目前基于此类情况提出的解决方案主要可以分为两种,一种是通过中心化机构协助管理,第二种是通过硬件辅助个人对账户密钥进行管理,简化管理难度。但是上述方案存在a)中心化机构本身的公信力低、b)机构对抗攻击的能力以及c)个人辅助设备可能的损坏、遗失问题。技术实现要素:本申请的主要目的在于提供一种基于区块链的定时清算方法,包括:创建可清算账户,包括:创建可清算账户交易;及查询所述可清算账户的详情,并确定可清算账户的创建情况;设置清算时间,包括:创建设置清算时间,包括以区块高度为时间单位以及实际时间和相对参考时间的方式;设置清算时间生效延迟;清算可清算账户,包括:在所述清算时间之前的可清算的数据将全部转入安全账户;到达所述清算时间之后,由当前出块节点作为清算节点自动发起对应的清算交易;所述清算节点验证清算交易对应可清算数据;通过验证后,将所述可清算从被清算的可清算转移到安全账户;可清算数据在清算后被清除;安全账户收到被清算的可清算内所有数据。可选地,创建可清算账户交易包括:可清算账户交易只有唯一的输入地址和唯一输出地址,且所述输入为所述可清算账户,输出为所述可清算账户的安全地址;所述清算时间必须合法到期;所述清算账户账户内数据不为空;所述可清算账户交易的签名必须是所述清算节点的签名。可选地,设置清算时间包括:交易只有唯一的输入和输出,且所述输入和输出均为所述可清算账户;清算时间大于生效时间;设置未生效之前,不能再次设置新的清算时间,且使用旧的清算时间;清算交易与清算时间之间独立执行。可选地,所述可清算账户的形式化定义为:a(k)=<k,addr(a),type,s(k),key,l(t),i(k),data>,其中:k是账户a(k)的唯一标识;addr(k)是账户a(k)的地址;type是账户a(k)的类型,type∈{n,s},n标示普通账户,s标识可清算账户;s(k)是账户a(k)管理的业务状态;key(k)是账户a(k)的公钥;l(t)是账户a(k)的清算时间;i(k)指定可清算账户撤回状态输出的账户;data记录a(k)发起的可撤回交易列表。可选地,可清算账户创建交易tsac,创建可清算账户a(k),操作是从正常账户a(j)发起类型为sac的转账交易,tiac是不可撤回交易,交易成功执行将ii+1指定的数额从a(j)转给可清算账户a(k),a(j)的状态更改为a(k)的状态更改为可选地,可撤回交易tsar,从可清算账户a(k)发起,转账给账户a(j),即其中,θ是设定的可撤回时间。可选地,撤回交易tr,从可清算账户a(k)发起,撤回到交易发起账户a(k)绑定的安全账户i(k),即:tr正确执行的条件是交易tm所在的区块高度小于θ。可选地,可撤回交易tsar和撤回交易tr,设计可撤回业务包括:用户k在时刻i通过可清算账户a(k)发起一笔可撤回转账交易tsar。tsar指定转账金额i,目的账户为用户j的账户a(j),延时生效时间为θ;交易经验证和链上确认后,在账本中记录tsar之外,也在账户a(k)和a(j)中记录tsar涉及的状态更改,但并未立刻更改和如果用户k在时刻i<n<θ期间发现交易存在问题,可发送一次性撤回交易tr,将tsar转账金额i撤回a(k)指定的一个安全账户s(k);如果在时刻i<n<θ期间,对tsar发起过一次撤回交易tr,并且tr经验证和链上确认,那么在n时刻之后发起的对tsar撤回交易均为无效;在时刻n=θ,并且tsar并未撤回,转账双方账户状态发生更改,即转账到账,在时刻n≥θ,对tsar发起的撤回交易tr均为无效交易。本申请还提供了一种区块链的账户撤回系统,包括:可清算账户创建模块,所述可清算账户创建模块创建可清算账户交易且查询所述可清算账户的详情,并确定可清算账户的创建情况;清算时间设置模块,所述清算时间设置模块创建设置清算时间,包括以区块高度为时间单位以及实际时间和相对参考时间的方式,且设置清算时间生效延迟;清算模块,所述清算模块在所述清算时间之前的可清算的数据将全部转入安全账户;到达所述清算时间之后,由当前出块节点作为清算节点自动发起对应的清算交易;所述清算节点验证清算交易对应可清算数据;通过验证后,将所述可清算从被清算的可清算转移到安全账户;可清算数据在清算后被清除;安全账户收到被清算的可清算内所有数据。本申请还提供了一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的方法。与现有技术相比,本申请所提供的基于区块链的定时清算方法,具有以下优点:1.有效解决了区块链账户密钥遗失后对账户内数据失去控制而产生的损失。2.可以定期或按需对区块链系统数据进行维护,提高数据使用率。3.实现了自动清算,避免了人为操作可能产生安全隐患。4.清算方法可定制,系统用户可以按照需要设置不同的清算策略。5.确保了区块链系统不可篡改、去中心化、透明公开的特点。附图说明构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是根据本申请一个实施例的基于区块链的定时清算方法的流程示意图;图2是根据本申请一个实施例的计算机设备的示意图;以及图3是根据本申请一个实施例的计算机可读存储介质的示意图。具体实施方式为了使本
技术领域
:的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请提供一种基于区块链的定时清算方法及系统,以解决区块链系统中因密钥遗失而造成的数据丢失;保证区块链交易系统的极难篡改、去中心化的特性不变;提高区块链系统的清算效率;通过自动清算避免人为操作存在的风险。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。在本申请所包的公式当中设有多个变量或常量,这些变量或常量的基本定义如下:业务状态(state):业务状态通常以一个有理数表示状态s∈r。时刻(区块高度)n的业务状态表示为sn。账户(account):账户是业务状态的集合。给定业务状态空间s,账户空间a,具有k个业务状态的账户a(x)∈a形式化表示为a(k)={s1,...,si},si∈s,i=[1,k]。账户a(x)在时刻n的状态表示为si∈s,i=[1,k]。交易(transaction):业务状态的一次更改称为一次交易,即顺序为第i+1个交易标识为ti=f(si,ii+1)→si+1,i∈n。状态机(statemachine):状态机表示账户业务状态随时间的变化情况。定义状态转移函数f(s,i):s*s→s,其中i,s∈s分别称为状态转移函数的输入和起始状态,状态机形式化表示为状态转移函数的集合,m={f(si,ii)→si+1},其中是所有账户在第i个交易时的业务状态,是账户在第i个交易的输入。账本(ledger):交易的集合形成账本l。时刻n的账本表示为l(n)={ti},i=[1,n]。业务状态可撤回(stateretractable):业务状态可撤回指从业务层面看,对账本状态的更改可在严格许可的条件下部分或完全撤回。对于给定交易顺序i和j,i<j,部分撤回指实现账户a(x)的某个状态sj=si,全部撤回指实现sj=si。可撤回账本(retractableledger):如果账本是采用支持业务状态可撤回的区块链实现,则称为可撤回账本。请参照图1,本申请一实施例提供了一种基于区块链的定时清算方法,包括:s2:创建可清算账户,包括:s21:创建可清算账户交易;及s22:查询所述可清算账户的详情,并确定可清算账户的创建情况;s4:设置清算时间,包括:s41:创建设置清算时间,包括以区块高度为时间单位以及实际时间和相对参考时间的方式;s42:设置清算时间生效延迟;s6:清算可清算账户,包括:s61:在所述清算时间之前的可清算的数据将全部转入安全账户;s62:到达所述清算时间之后,由当前出块节点作为清算节点自动发起对应的清算交易;s63:所述清算节点验证清算交易对应可清算数据;s64:通过验证后,将所述可清算从被清算的可清算转移到安全账户;s66:可清算数据在清算后被清除;s66:安全账户收到被清算的可清算内所有数据。在本申请一实施例中,创建可清算账户交易包括:可清算账户交易只有唯一的输入地址和唯一输出地址,且所述输入为所述可清算账户,输出为所述可清算账户的安全地址;所述清算时间必须合法到期;所述清算账户账户内数据不为空;所述可清算账户交易的签名必须是所述清算节点的签名。在本申请一实施例中,设置清算时间包括:交易只有唯一的输入和输出,且所述输入和输出均为所述可清算账户;清算时间大于生效时间;设置未生效之前,不能再次设置新的清算时间,且使用旧的清算时间;清算交易与清算时间之间独立执行。在本申请一实施例中,所述可清算账户的形式化定义为:a(k)=<k,addr(a),type,s(k),key,l(t),i(k),data>,其中:k是账户a(k)的唯一标识;addr(k)是账户a(k)的地址;type是账户a(k)的类型,type∈{n,s},n标示普通账户,s标识可清算账户;s(k)是账户a(k)管理的业务状态;key(k)是账户a(k)的公钥;l(t)是账户a(k)的清算时间(区块高度);i(k)指定可清算账户撤回状态输出的账户;data记录a(k)发起的可撤回交易列表。在本申请一实施例中,可清算账户创建交易tsac(secureaccountcreationtransaction),创建可清算账户a(k),操作是从正常账户a(j)发起类型为sac的转账交易,tiac是不可撤回交易,交易成功执行将ii+1指定的数额从a(j)转给可清算账户a(k),a(j)的状态更改为a(k)的状态更改为在本申请一实施例中,可撤回交易tsar(secureaccountretractabletransaction),从可清算账户a(k)发起,转账给账户a(j),即其中,θ是设定的可撤回时间。在本申请一实施例中,撤回交易tr(retracttransaction),从可清算账户a(k)发起,撤回到交易发起账户a(k)绑定的安全账户i(k),即:tr正确执行的条件是交易tm所在的区块高度小于θ。在本申请一实施例中,可撤回交易tsar和撤回交易tr,设计可撤回业务包括:用户k在时刻i通过可清算账户a(k)发起一笔可撤回转账交易tsar。tsar指定转账金额i,目的账户为用户j的账户a(j),延时生效时间为θ;交易经验证和链上确认后,在账本中记录tsar之外,也在账户a(k)和a(j)中记录tsar涉及的状态更改,但并未立刻更改和如果用户k在时刻i<n<θ期间发现交易存在问题,可发送一次性撤回交易tr,将tsar转账金额i撤回a(k)指定的一个安全账户s(k);如果在时刻i<n<θ期间,对tsar发起过一次撤回交易tr,并且tr经验证和链上确认,那么在n时刻之后发起的对tsar撤回交易均为无效;在时刻n=θ,并且tsar并未撤回,转账双方账户状态发生更改,即转账到账,在时刻n≥θ,对tsar发起的撤回交易tr均为无效交易。本申请还提供了一种区块链的账户撤回系统,包括:可清算账户客户端,用于发起转账交易请求及或撤回请求至服务器;服务器端,用于延迟θ时间执行或更改该转账交易请求。在本申请一实施例中,基于可撤回模型做了具体验证实现,一是引入可清算账户作为可清算账户,并以设定的安全账户作为可清算账户撤回的输出;二是实现了交易撤回逻辑,适用于用户在具有账户密钥但产生非预期转账交易的场景,例如黑客攻击、误操作和金融诈骗等;三是引入可撤回交易和撤回交易类型,支撑交易撤回逻辑。可清算账户支持可撤回交易:从该类型账户转出的交易具有设定的延时生效期交易本身记录在区块链系统中,但账户状态不会马上更改,而是等待延时期限之后才会真正生效在延时期内,可清算账户可发起撤回交易撤回对应的转出交易对账户状态的操作。可清算账户撤回的目标账户称为安全账户。可清算账户的撤回输出并非返回发起可清算账户本身,而是输出到安全账户。安全账户提高了撤回的安全性。通过账户类型的划分,用户能够清楚的分辨当前账户是否为可清算账户,区分账户转出的资产是否可撤回,以及可撤回交易是否已经生效,便于用户根据实际需要选择不不同的账户类型交易的撤回逻辑适用于用户拥有密钥的情况下撤回可清算账户转出交易的场景,实现流程如下:可清算账户a发起一笔转账交易转移资产到账户b,并设置为可撤回交易,交易执行成功后,在a和b账户中分别记录交易及生效时间,但转账资产在a和b中不可用。在交易有效期已过情况下,转账交易正式生效,资产在b中正式可用。在交易易有效期内,可清算账户a本身可发起回撤交易,则资产撤回a并立即可用,b中取消转账。交易本身被记录在区块链系统中,并清除账户中维持的未生效交易。如图2所示,本申请还提供了一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的方法。如图3所示,一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现上述任一项所述的方法。一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行上述任一项所述的方法。本申请所提供的基于区块链的定时清算方法定义了不同功能的账户及行为名称:普通账户/地址:用户对正常业务建立的账户。由普通账户发起的交易,经验证后即时生效,不可撤销。保险账户/地址:用户为可撤销业务建立的账户。保险账户只支持延时交易。在创建保险账户时,会绑定保险账户并要求设置清算时间。安全账户/地址:指保险账户绑定的普通账户。创建保险账户交易:当用户需要创建保险账户时,发起一笔创建保险账户交易,同时在交易中指定保险账户地址,安全账户地址,清算时间和初始的安全账户,清算时间。清算交易:实现清空保险账户并将金额全部转入安全账户的交易。清算交易完成后,原保险账户中数据全部转入其所绑定的安全账户中清算时间:用户为保险账户设置的一个时间长度值。一旦发生用户私钥丢失而无法提取保险账户中的数据,那么该数据会在清算时间到期后自动转存入安全账户。清算时间采用区块高度作为运算。清算时间延迟生效时间:指用户发起设置保险账户的清算时间,到清算时间真实生效之间的时间。也就是设置清算时间不会立即生效,在清算时间延迟生效时间之后才会生效。设置清算时间交易:用户修改保险账户清算时间所发起的交易。交易事务账户数据结构中主要增加以下结构:清算时间(说明见上述1)中e)项)代表账户在指定时间后将自动实施账户清算。安全地址,代表账户在实施清算行为是对应的数据转入地址。上述数据通过链下账户树的形式组织起来,最终形成账户树根将保存到区块中,账户树的数据结构形式为mpt。与现有技术相比,本申请所提供的基于区块链的定时清算方法,具有以下优点:1.有效解决了区块链账户密钥遗失后对账户内数据失去控制而产生的损失。2.可以定期或按需对区块链系统数据进行维护,提高数据使用率。3.实现了自动清算,避免了人为操作可能产生安全隐患。4.清算方法可定制,系统用户可以按照需要设置不同的清算策略。5.确保了区块链系统不可篡改、去中心化、透明公开的特点显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1