[0034] 在时刻n=θ,并且TSAR并未撤回,转账双方账户状态发生更改,即转账到账,[0035] 在时刻n≥θ,对TSAR发起的撤回交易TR均为无效交易。
[0036] 本申请还公开了一种区块链的账户撤回系统,包括:
[0037] 可撤回账户客户端,用于发起转账交易请求及或撤回请求至服务器;
[0038] 服务器端,用于延迟θ时间执行或更改该转账交易请求。
[0039] 本申请还公开了一种计算机设备,包括
存储器、处理器和存储在所述存储器内并能由所述处理器运行的
计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的方法。
[0040] 本申请还公开了一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现上述任一项所述的方法。
[0041] 本申请还公开了一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行上述任一项所述的方法。
[0042] 本申请所提供的区块链的账户撤回方法,基于现有区块链技术,实现账户状态更改可安全撤回,具有功能完备、易于实现、复杂性低的特点。相比基于比特币和以太坊的传统区块链账户模型,提出的可撤回账本进一步设计了新的可撤回账户类型,支持撤回账户状态更改操作。可撤回账户的设计为用户提供了更好的安全保障。增加了实现状态更改操作撤回的交易。考虑到区块链对交易提供验证支持,提出的可撤回账本设计采用交易方式实现账户状态操作撤回。交易方式充分地利用了现有区块链成熟技术,“原生”实现可撤回操作。本文工作考虑了可撤回账本的安全、使用和性能,给出了可撤回业务逻辑的验证性实现。
附图说明
[0043] 构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性
实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0044] 图1是根据本申请一个实施例的区块链的账户撤回方法的流程示意图;
[0045] 图2是根据本申请一个实施例的计算机设备的示意图;以及
[0046] 图3是根据本申请一个实施例的计算机可读存储介质的示意图。
具体实施方式
[0047] 为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0048] 需要说明的是,本申请的
说明书和
权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何
变形,意图在于
覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0049] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0050] 在本申请所包的公式当中设有多个变量或常量,这些变量或常量的基本定义如下:
[0051] 业务状态(State):业务状态通常以一个有理数表示状态s∈R。时刻(区块高度)n的业务状态表示为sn。
[0052] 账户(Account):账户是业务状态的集合。给定业务
状态空间S,账户空间A,具有k个业务状态的账户A(x)∈A形式化表示为A(k)={s1,...,si},si∈S,i=[1,k]。账户A(x)在时刻n的状态表示为 si∈S,i=[1,k]。
[0053] 交易(Transaction):业务状态的一次更改称为一次交易,即顺序为第i+1个交易标识为Ti=F(Si,Ii+1)→Si+1,i∈N。
[0054] 状态机(State Machine):状态机表示账户业务状态随时间的变化情况。定义状态转移函数F(S,I):S*S→S,其中I,S∈S分别称为状态转移函数的输入和起始状态,状态机形式化表示为状态转移函数的集合,M={F(Si,Ii)→Si+1},其中 是所有账户在第i个交易时的业务状态, 是账户在第i个交易的输入。
[0055] 账本(Ledger):交易的集合形成账本L。时刻n的账本表示为L(n)={Ti},i=[1,n]。
[0056] 业务状态可撤回(State Retractable):业务状态可撤回指从业务层面看,对账本状态的更改可在严格
许可的条件下部分或完全撤回。对于给定交易顺序i和j,i
[0057] 可撤回账本(Retractable Ledger):如果账本是采用支持业务状态可撤回的区块链实现,则称为可撤回账本。
[0058] 请参照图1,在本申请一实施例中,区块链的账户撤回方法,包括:
[0059] S2:可撤回账户发起转账交易请求至服务器;
[0060] S4:服务器延迟θ时间执行该转账交易请求;
[0061] S6:在延迟期θ内,可撤回账户发起撤回请求至服务器;及
[0062] S8:服务器更改所述转账交易。
[0063] 在本申请一实施例中,所述可撤回账户的形式化定义为:
[0064] A(k)=,
[0065] 其中:
[0066] k是账户A(k)的唯一标识;
[0067] addr(k)是账户A(k)的地址;
[0068] type是账户A(k)的类型,type∈{n,s},n标示普通账户,s标识可撤回账户;
[0069] S(k)是账户A(k)管理的业务状态;
[0070] key(k)是账户A(k)的公钥;
[0071] L(t)是账户A(k)的清算时间(区块高度);
[0072] I(k)指定可撤回账户撤回状态输出的账户;
[0073] data记录A(k)发起的可撤回交易列表。
[0074] 在本申请一实施例中,可撤回账户创建交易TSAC(SecureAccountCreation Transaction),创建可撤回账户A(k),操作是从正常账户A(j)发起类型为SAC的转账交易,[0075]
[0076] TIAC是不可撤回交易,交易成功执行将Ii+1指定的数额从A(j)转给可撤回账户A(k),A(j)的状态更改为 A(k)的状态更改为 Ii+1。
[0077] 在本申请一实施例中,可撤回交易TSAR(SecureAccountRetractable Transaction),从可撤回账户A(k)发起,转账给账户A(j),即
[0078]
[0079] 其中,θ是 设定的可撤回时间。
[0080] 在本申请一实施例中,撤回交易TR(Retract Transaction),从可撤回账户A(k)发起,撤回 到交易发起账户A(k)绑定的安全账户I(k),即:
[0081]
[0082] TR正确执行的条件是交易Tm所在的区块高度小于θ。
[0083] 在本申请一实施例中,可撤回交易TSAR和撤回交易TR,设计可撤回业务包括:
[0084] 用户k在时刻i通过可撤回账户A(k)发起一笔可撤回转账交易TSAR。TSAR指定转账金额I,目的账户为用户j的账户A(j),延时生效时间为θ;
[0085] 交易经验证和链上确认后,在账本中记录TSAR之外,也在账户A(k)和A(j)中记录TSAR涉及的状态更改,但并未立刻更改 和
[0086] 如果用户k在时刻i
[0087] 如果在时刻i
[0088] 在时刻n=θ,并且TSAR并未撤回,转账双方账户状态发生更改,即转账到账,[0089] 在时刻n≥θ,对TSAR发起的撤回交易TR均为无效交易。
[0090] 本申请还提供了一种区块链的账户撤回系统,包括:
[0091] 可撤回账户客户端,用于发起转账交易请求及或撤回请求至服务器;
[0092] 服务器端,用于延迟θ时间执行或更改该转账交易请求。
[0093] 在本申请一实施例中,基于可撤回模型做了具体验证实现,一是引入可撤回账户作为可撤回账户,并以设定的安全账户作为可撤回账户撤回的输出;二是实现了交易撤回逻辑,适用于用户在具有账户密钥但产生非预期转账交易的场景,例如黑客攻击、误操作和金融诈骗等;三是引入可撤回交易和撤回交易类型,
支撑交易撤回逻辑。
[0094] 可撤回账户支持可撤回交易:
[0095] 从该类型账户转出的交易具有设定的延时生效期
[0096] 交易本身记录在区块链系统中,
[0097] 但账户状态不会
马上更改,而是等待延时期限之后才会真正生效[0098] 在延时期内,可撤回账户可发起撤回交易撤回对应的转出交易对账户状态的操作。
[0099] 可撤回账户撤回的目标账户称为安全账户。
[0100] 可撤回账户的撤回输出并非返回发起可撤回账户本身,而是输出到安全账户。安全账户提高了撤回的安全性。
[0101] 通过账户类型的划分,用户能够清楚的分辨当前账户是否为可撤回账户,区分账户转出的资产是否可撤回,以及可撤回交易是否已经生效,便于用户根据实际需要选择不不同的账户类型
[0102] 交易的撤回逻辑适用于用户拥有密钥的情况下撤回可撤回账户转出交易的场景,实现流程如下:
[0103] 可撤回账户A发起一笔转账交易转移资产到账户B,并设置为可撤回交易,[0104] 交易执行成功后,在A和B账户中分别记录交易及生效时间,
[0105] 但转账资产在A和B中不可用。
[0106] 在交易有效期已过情况下,转账交易正式生效,资产在B中正式可用。
[0107] 在交易易有效期内,可撤回账户A本身可发起回撤交易,
[0108] 则资产撤回A并立即可用,B中取消转账。
[0109] 交易本身被记录在区块链系统中,并清除账户中维持的未生效交易。
[0110] 如图2所示,本申请还提供了一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的方法。
[0111] 如图3所示,一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现上述任一项所述的方法。
[0112] 一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行上述任一项所述的方法。
[0113] 与
现有技术相比,本申请具有如下优点:
[0114] 为解决用户误操作、金融诈骗等导致转账到错误地址,可撤回账本额外引入了新的可撤回交易,在交易实现上,未额外增加交易的复杂性,确保系统的整体性能不会降低。
[0115] 添加对上一笔账户交易类型检查,用于撤回操作的验证避免了恶意用户通过大量发起可撤回交易而攻击系统,保证了业务的健壮性.
[0116] 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成
电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的
硬件和
软件结合。
[0117] 以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。