1.本发明属于区块链技术领域,具体特别涉及一种基于区块链系统的交易数据移除方法。
背景技术:
2.区块链是一种分布式账本系统,由多个节点共同维护,其特点是不易篡改、很难伪造、可追溯。区块链记录发生交易的所有信息,一旦数据进入了区块链,即使是内部工作人员在区块链中也无法做任何更改。这种不可更改的特点不是来自使用某种操作,而是由于区块链系统和机制本身。这使得运用区块链技术较之其他安全技术而言更为简便和有效。凡是需要公正、公平、诚实的地方,都可以使用区块链技术。
3.但是欧盟提出一般数据保护法(general data protection regulation, gdpr)却规定客户可以要求将他们不好的记录从数据库移除。在传统数据库上,这是很容易做的,但是在传统区块链定义下,这是不可能的任务。因为这会更改区块链定义。但是gdpr已经实施,以后区块链系统必须符合gdpr的规定。因此需要系统做到:(1)在一般情形下,数据存在区块链系统内,是不能更改的;(2)但是,在客户引用法律规则例如gdpr规则下,要求区块链系统更改数据,数据在区块链系统上是可以更改。数据移除后,原来区块链的上的数据结构不同,需要有补偿机制,使原来的没有改变的区块链可以仍然正常操作,好像区块链系统没有被更改过,只是被移除的数据从区块链系统消失了;(3)数据被移除,同时移除事件会被记录;以后如果查询被移除的数据,会查到“被移除”的事件记录,数据已经被移除了。
4.这样,区块链系统仍然保有“不能篡改性”,任何人企图更改数据,会被记录和发现。而依据法律移除的数据会在区块链系统上消失,但是会留下“被移除”的记录在区块链系统上。
5.一般来说,数据需要从区块链系统移除的原因是多半是因为从事违法交易或是参与不光彩的场景。由于区块链交易可以回滚,而交易回滚后,数据还是留存在区块链系统上,所以需要回滚交易不是要求移除数据的合理原因。这也表示,数据移除不代表相关交易可以回滚。数据移除和回滚是两个独立的机制,彼此没有关系。交易回滚情况下,相关数据还是存在;而数据移除情况下,相关的交易已经结算多时,数据不能回滚。需要移除的数据大部分是有一些时间的历史,例如几个月到几年后,客户才能要求将他们的数据移除,这也说明需要移除的数据是早已经在区块链系统上存储的,交易早已经经过结算,数据的移除不会影响到市场情况,因此是合法的。而移除数据代表区块链数据结构改变,因此在移除数据时不适合还进行交易,必须停止一切交易,等到数据移除后,才继续交易。
技术实现要素:
6.后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。
附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。本发明的目标及特征考虑到如下结合附图的描述将更加明显,附图中:
附图说明
图1为根据本发明优选实施例的方法流程图;图2为根据本发明优选实施例的第一次共识流程图;图3为根据本发明优选实施例的第二次共识流程图;图4为根据本发明优选实施例的第三次共识流程图;图5为根据本发明优选实施例的双链更改流程图;图6为根据本发明优选实施例的双链更改后的结果示意图;图7为根据本发明优选实施例的双链不共享更改结果,两个替代区块互相引用的示意图;图8为根据本发明优选实施例的单链更改流程图;图9为根据本发明优选实施例的单链更改后的区块链架构示意图;图10为根据本发明优选实施例的merkle树更改流程图。
具体实施方式
7.为了使得本发明能够针对其发明要点更加明显易懂,下面将结合附图和实例对本发明作进一步的说明。在下面的描述中阐述了很多细节和具体实例,提供这些实例是为了能够更透彻地理解本发明,并且能够将本发明完整形象地传达给本领域的技术人员。虽然本发明能够以很多不同于此描述的其它方式实施,但是本领域技术人员可以在不违背本发明内涵的情况下做相应的推广,因此本发明不受下面公开的具体实例及具体附图所限制。
8.在下面的描述中阐述了很多细节和具体实例,提供这些实例是为了能够更透彻地理解本发明,并且能够将本发明完整形象地传达给本领域的技术人员。虽然本发明能够以很多不同于此描述的其它方式实施,但是本领域技术人员可以在不违背本发明内涵的情况下做相应的推广,因此本发明不受下面公开的具体实例及具体附图所限制。
9.本实施例如图1-4所示提供一种基于区块链系统的交易数据移除方法,包括:步骤1,区块链系统发起“启动数据移除作业”,包括由发起“启动数据移除作业”时的领导节点发送所有的区块链节点参与共识的信息,所述领导节点由运行的区块链系统动态确定,所述动态确定包括随机选择所述领导节点;步骤2,执行第一次共识机制,包括每个参与的所述区块链节点收到“启动数据移除作业”的信息后,停止接收新交易,只处理正在进行的交易,并向所述领导节点发送同意参与“启动数据移除作业”的信息;步骤3,所述领导节点完成正在进行的交易后,开发并且发送“更改数据计划”,向所有区块链节点发送参与同意执行“更改数据计划”的共识请求;步骤4,执行第二次共识机制,包括每个参与的区块链节点收到“更改数据计划”共识请求后,保证自己节点不再执行交易后,回复同意“更改数据计划”;步骤5,当每个区块链节点收到其他区块链节点的共识信息后,根据“更改数据计
划”上的计划移除相关的数据;步骤6,移除相关的数据完成后,所述领导节点向所有所述区块链节点发送“完成数据移除”共识请求;步骤7,执行第三次共识机制,包括其他所述区块链节点收到所述“完成数据移除”共识请求后,如果完成所述“更改数据计划”,回复同意“完成数据移除”共识。
10.作为优选的实施方式,执行两次共识机制,而不执行三次共识机制;如果使用两次共识,所述步骤1到所述步骤4在一次共识流程中完成。由于每个节点需要等待现在正在进行的交易结束后才能回复,等待时间不容易控制。
11.作为优选的实施方式,所述步骤3的所述“更改数据计划”包括:步骤31,确定需要移除数据所在的区块n,所述区块n的哈希值a以及存在所述区块n的前一个区块的哈希值b;步骤32,重新建立替代区块m,将所述区块n内除了需要被移除的数据外的其他所所有数据都存储到所述替代区块m内,将所述哈希值a和所述哈希值b存储到所述替代区块m内,所述替代区块m具有新的标志,当执行区块链查询时,查询所述替代区块m时会启动与查询所述区块n不同的算法,而不是使用传统算法。所述替代区块m的存在代表有数据被移除。如果一条区块链上没有所述替代区块m,代表该条区块链上的数据没有被更改过。每一次更改都设置一个对应的替代区块。这样所述区块n的前一区块会指向替代区块m,而原来区块n的下一块还是存哈希值a,但是下一区块指向替代区块m。除了被移除的数据外,其他数据都一样保留。
12.步骤33,依据协议进行交易数据的移除。
13.区块链传统上是不能移除数据而不被发现。但是由于法律的关系必须移除数据是可以允许的。更改数据会造成原来数据结构被改变,因此数据的移除会被发现;但是发现后,需要区分是:操作员故意暗中移除;还是依据法律公开移除。
14.作为优选的实施方式,需要证实是依据法律更改数据,而不是操作员暗中更改,确定属于合理更改后再进行数据移除处理。如果移除数据,操作人员必须进行数字签名,并且只有特殊人员才可以批准区块链系统更改。如果要启动区块链数据移除,启动软件需要先验证操作人员的数字签名,如果数字签名和名单上的数字签名不一致,区块链系统拒绝执行数据的移除。
15.作为优选的实施方式,所述步骤33的所述协议为使用“更改链”记录数据移除。
16.图5表示使用“更改链”记录数据移除的双链更改流程。图5上面是“更改链”,下面是原来的区块链系统。哈希值a是前一区块的哈希,现在也是更新记录链的一个区块中,而原来哈希值b是更新记录链内替代区块提供给下一个区块。在替代区块内,原来需要移除的数据不存在取得区块内。图5是示意图,表示数据移除,而事实上如果数据移除,数据就消失了。这样原来区块链(下面的区块链)可以继续运行,而这次数据更新也记录在“更新链”上。
17.由于区块链数据移除是一件重大事件,数据移除事件必须记录在区块链系统上,流程包括:步骤331,建立另外一条链,双链更改流程将这数据移除记录在另外一条链上,另外一条链命名为“更改记录链”或“更改链”;步骤332,在所述更改链上记录数据移除事件,所述记录包括:原区块链的身份证;
数据移除日期和时间;参与数据移除的人员和机构、数据移除人员的数字签名及机构的数字签名;区块n和替代区块m的信息及哈希值a和哈希值b;数据移除原因;数据移除的法律依据;加密的客户信息,所述客户信息包括客户姓名,住址,身份证和数字签名。
18.由于加密,数据移除记录的信息不公开,但是由于使用数字签名,如果涉及诉讼和官司,可以对数据移除事件进行认证;认证过程没有需要移除的信息。从而符合欧盟gdpr的隐私要求。
19.作为优选的实施方式,如图6所示,所述替代区块m可以被所述更改链和原区块链共享,图6是改变后的区块链配置,两条链共用一个区块,共用区块包含:1)原来区块的所有信息,减去需要移除的数据;2)哈希值a,b,c,d。a 和b维持原来区块链的特性,c和d维持“更新链”的区块链特性;3)数据更改信息,包括更改日期、时间;参与更改的人员以及机构;更改原因;法律依据;客户信息包括客户姓名,住址,身份证,数字签名,客户信息以加密信息存在区块链区块中,保护客户的隐私。
20.或者如图7所示,显示“更改链”和原来链不共享“替代区块”的模型。所述更改链和原区块链分别具有所述替代区块m的两个不同拷贝m1和m2,而两个替代区块m相互索引:在所述更改链上的所述替代区块m1引用原区块链上的所述替代区块m;在原区块链上的替代区块m2引用更改链上的替代区块m1。
21.作为优选的实施方式,客户可能选择不披露自己信息,但是由于法律需求,还是需要记录客户隐私的身份信息(而不是客户公开的信息),避免以后的法律纠纷。但是由于加密,没有密钥,其他人无法获知客户真实身份;同时由于具有客户数字签名,客户必须被认定为是自己要求移除数据,而且在区块链系统上移除,在所述更改链上会留下一个更改补丁。
22.作为优选的实施方式,由于所述更改链上的交易不频繁,因此无需高性能的区块链作为所述更改链,而且同一更改链可以同时服务多个不同的区块链系统。
23.作为优选的实施方式,可以保留需要移除的区块实体,但是在逻辑上视为移除所述区块,即业务上无法查找到所述区块。
24.作为优选的实施方式,在一些情况下,一个替代区块m建立的一段时间后,还需要继续移除其他没有移除的数据。由于前一次的更改已经保持了区块链的架构,只是所述更改链和原区块链共享所述替代区块m。在这情形下,可以使用下面流程:复制所述替代区块m形成第二替代区块,所述更改链继续持有所述替代区块m;原区块链系统拥有第二替代区块;第二替代区块经过所述步骤32,产生第二版替代区块m’,所述第二版替代区块m’存储在所述更改链和原区块链上,所述第二版替代区块m’内至少有两处数据移除。作为优选的实施方式,采用以上的类似流程产生第三版替代区块m
’’
以及第四版替代区块m
’’’
等。
25.作为优选的实施方式,更改链和原区块链不共享替代区块,使用两个替代区块m1和m2,其中一个m1存储在所述更改链上,另一个m2存储在原区块链上,无需复制所述替代区块。
26.作为优选的实施方式,所述步骤33的所述协议为单链方法。更改记录放在原来区块链系统内,图8显示新区块链的机构采用单链更改的流程图。如果没有“更改链”,可以使用原区块链来记录数据移除。由于只有一条链,更新区块还是在原来区块链上。包括:步骤331’,在可以建立一个新区块的时候,建立一个替代区块n’,所述替代区块n’存储前一个区块的哈希值,替代区块n’存储以下信息:数据移除日期、时间;参与数据移除的人员以及机构;区块n的信息以及哈希值a和哈希值b;数据移除原因;法律依据;加密的客户信息,所述客户信息包括客户姓名,住址,身份证和数字签名。
27.如图9所示更新后的区块链图。步骤332’,移除原区块,并更改新添加的区块,包括:前一区块的下一块会是新区块原来的下一区块;新区块的下一块会接着被取代区块的下一区块生成。
28.作为优选的实施方式,一个处理的方式,就是不移除被替代的区块,而继续留在原来链上,但是链作业时,不处理原来的区块,而处理新“替代区块”。这方法一个特性是原来数据还在,但是系统在查询的时候,不能处理原来的区块。对于gdpr来说,这方案不是最好的选择。
29.作为优选的实施方式,由于区块链数据存储在不同节点,也可能存在不同存储服务器上,移除的过程需要查询全部存储服务器。
30.作为优选的实施方式,在一些情形下,一个所述替代区块还继续需要移除数据。由于前一次的更改,已经保持了区块链的架构。在这情形下,可以使用步骤1-7的流程来产生第二版替代区块m’,所述第二版替代区块m’使用同样的协议存在原区块链上,所述第二版替代区块m’内至少有两处数据移除。查询的时候,若查询到第二版替代区块m’可以确定有两处数据被移除了。
31.作为优选的实施方式,采用以上的类似流程产生第三版替代区块m
’’
以及第四版替代区块m
’’’
等。
32.作为优选的实施方式,还包括步骤8:更改merkle树,图10显示该流程,图10表示一个交易底层节点被换掉后,一个空节点取代换掉的节点,而又提供原来的哈希值。这不是传统意义上的merkle树,由于被取代的节点的哈希值改变了,只是在计算的时候,使用存储的哈希值,而不是根据更新的数据。
33.传统区块链系统使用merkle树或是可信树。merkle树的底端是交易,中间点是下面点数据的哈希值。由于merkle树保证下面数据不能更改,所以如果区块链需要更新数据,merkle树也需要更新;包括:步骤81,确定需要移除的数据的merkle树底端节点k,其哈希值是l;步骤82,建立一个新底端节点s,s上报所述哈希值l;这样原来的merkle树除了节点外都没有改变;步骤83,所述新底端节点s的内部包含更新的数据,所述更新的数据为已经删除了需要移除的数据的原数据;步骤84,所述新底端节点s内部添加如下信息“更新过内容,移除部分数据”;由于已经将更新事件记录在“更改链”上,这里就不需要存更新事件信息。
34.作为优选的实施方式,一些区块链系统使用类似merkle树,例如merkle patricia 树或是其他使用哈希树。针对这类区块链系统仍然可以使用所述步骤8。
35.由于更改数据会使一些账户不能对账,账本会存在问题,因此要求该方法保证除了有问题的交易外,其他交易和账户信息都必须仍然保持一致,并且区块链作业除了被移除数据外,其他数据结构以及作业流程都不能改变,此外,原来数据被移除后,原来区块链的上的数据结构不同,需要有补偿机制,使更新的区块链仍然可以被正常操作,并且记录该数据移除事件,如果查询该被移除的数据,会查到“被移除”的事件记录,只是数据已经被移除了。本实施例的方法可以使区块链系统符合欧盟gdpr的规则;由于gdpr对于任何想在欧盟进行贸易的企业有巨大的影响,区块链系统以后必定需要符合gdpr的数据移除的需求。该方法使得任何企业可以使用区块链系统在欧盟进行各种交易。
36.虽然本发明已经参考特定的说明性实施例进行了描述,但是不会受到这些实施例的限定而仅仅受到附加权利要求的限定。本领域技术人员应当理解可以在不偏离本发明的保护范围和精神的情况下对本发明的实施例能够进行改动和修改。
技术特征:
1.一种基于区块链系统的交易数据移除方法,其特征在于包括:步骤1,区块链系统发起“启动数据移除作业”,包括由发起“启动数据移除作业”时的领导节点发送所有的区块链节点参与共识的信息,所述领导节点由运行的区块链系统动态确定,所述动态确定包括随机选择所述领导节点;步骤2,执行第一次共识机制,包括每个参与的所述区块链节点收到“启动数据移除作业”的信息后,停止接收新交易,只处理正在进行的交易,并向所述领导节点发送同意参与“启动数据移除作业”的信息;步骤3,所述领导节点完成正在进行的交易后,开发并且发送“更改数据计划”,向所有区块链节点发送参与同意执行“更改数据计划”的共识请求;步骤4,执行第二次共识机制,包括每个参与的区块链节点收到“更改数据计划”共识请求后,保证自己节点不再执行交易后,回复同意“更改数据计划”;步骤5,当每个区块链节点收到其他区块链节点的共识信息后,根据“更改数据计划”上的计划移除相关的数据;步骤6,移除相关的数据完成后,所述领导节点向所有所述区块链节点发送“完成数据移除”共识请求;步骤7,执行第三次共识机制,包括其他所述区块链节点收到所述“完成数据移除”共识请求后,如果完成所述“更改数据计划”,回复同意“完成数据移除”共识。2.根据权利要求1所述的一种基于区块链系统的交易数据移除方法,其特征在于,执行两次共识机制,而不执行三次共识机制;如果使用两次共识,所述步骤1到所述步骤4在一次共识流程中完成。3.根据权利要求1所述的一种基于区块链系统的交易数据移除方法,其特征在于,所述步骤3的所述“更改数据计划”包括:步骤31,确定需要移除数据所在的区块n,所述区块n的哈希值a以及存在所述区块n的前一个区块的哈希值b;步骤32,重新建立替代区块m,将所述区块n内除了需要被移除的数据外的其他所所有数据都存储到所述替代区块m内,将所述哈希值a和所述哈希值b存储到所述替代区块m内,所述替代区块m具有新的标志,当执行区块链查询时,查询所述替代区块m时会启动与查询所述区块n不同的算法,所述替代区块m的存在代表有数据被移除;如果一条区块链上没有所述替代区块m,代表该条区块链上的数据没有被更改过,每一次更改都设置一个对应的替代区块,所述区块n的前一区块会指向替代区块m,而原来区块n的下一块还是存储哈希值a,但是下一区块指向替代区块m;除了被移除的数据外,其他数据都保留;步骤33,依据协议进行交易数据的移除。4.根据权利要求3所述的一种基于区块链系统的交易数据移除方法,其特征在于,所述步骤33的所述协议为使用“更改链”记录数据移除,包括:步骤331,建立另外一条链,双链更改流程将这数据移除记录在另外一条链上,另外一条链命名为“更改记录链”或“更改链”;步骤332,在所述更改链上记录数据移除事件,所述记录包括:原区块链的身份证;数据移除日期和时间;参与数据移除的人员和机构、数据移除人员的数字签名及机构的数字签
名;区块n和替代区块m的信息及哈希值a和哈希值b;数据移除原因;数据移除的法律依据;加密的客户信息,所述客户信息包括客户姓名,住址,身份证和/或数字签名。5.根据权利要求3所述的一种基于区块链系统的交易数据移除方法,其特征在于,所述替代区块m被所述更改链和原区块链共享,共享的替代区块m包含:1)原来区块的所有信息,减去需要移除的数据;2)哈希值a,b,c,d,其中哈希值a 和b维持原来区块链的特性,哈希值c和d维持所述更新链的区块链特性;3)数据更改信息,包括更改日期、时间;参与更改的人员以及机构;更改原因;法律依据;客户信息包括客户姓名,住址,身份证和/或数字签名,客户信息以加密信息存在区块链区块中;或者所述更改链和所述原来链不共享所述替代区块,所述更改链和原区块链分别具有所述替代区块m的两个不同拷贝m1和m2,而两个替代区块m相互索引:在所述更改链上的所述替代区块m1引用原区块链上的所述替代区块m;在原区块链上的替代区块m2引用更改链上的替代区块m1。6.根据权利要求1所述的一种基于区块链系统的交易数据移除方法,其特征在于,客户选择不披露自己信息,但记录客户隐私的身份信息,并且在区块链系统上移除,在所述更改链上会留下一个更改补丁;同一更改链可以同时服务多个不同的区块链系统;保留需要移除的区块实体,但是在逻辑上视为移除所述区块,即业务上无法查找到所述区块。7.根据权利要求3所述的一种基于区块链系统的交易数据移除方法,其特征在于,替代区块m建立的一段时间后,还需要继续移除其他没有移除的数据,前一次的更改已经保持了区块链的架构,只是所述更改链和原区块链共享所述替代区块m,包括:复制所述替代区块m形成第二替代区块,所述更改链继续持有所述替代区块m;原区块链系统拥有第二替代区块;第二替代区块经过所述步骤32,产生第二版替代区块m’,所述第二版替代区块m’存储在所述更改链和原区块链上,所述第二版替代区块m’内至少有两处数据移除;重复以上流程产生多版替代区块。8.根据权利要求3所述的一种基于区块链系统的交易数据移除方法,其特征在于,所述步骤33的所述协议为单链方法,所述数据移除记录放在原区块链系统内,只有一条链,更新区块还是在原区块链上,包括:步骤331’,在可以建立一个新区块的时候,建立一个替代区块n’,所述替代区块n’存储前一个区块的哈希值,替代区块n’存储以下信息:数据移除日期、时间;参与数据移除的人员以及机构;区块n的信息以及哈希值a和哈希值b;数据移除原因;法律依据;加密的客户信息,所述客户信息包括客户姓名,住址,身份证和/或数字签名;步骤332’,移除原区块,并更改新添加的区块,包括:前一区块的下一块会是新区块原来的下一区块;新区块的下一块会接着被取代区块的下一区块生成。9.根据权利要求1所述的一种基于区块链系统的交易数据移除方法,其特征在于,还包括步骤8:更改merkle树,包括:步骤81,确定需要移除的数据的merkle树底端节点k,其哈希值是l;步骤82,建立一个新底端节点s,s上报所述哈希值l;这样原来的merkle树除了节点外
都没有改变;步骤83,所述新底端节点s的内部包含更新的数据,所述更新的数据为已经删除了需要移除的数据的原数据;步骤84,所述新底端节点s内部添加如下信息“更新过内容,移除部分数据”。10. 根据权利要求1所述的一种基于区块链系统的交易数据移除方法,其特征在于,针对使用merkle patricia 树或哈希树的区块链系统可以使用所述步骤8更新区块链系统。
技术总结
本发明提供一种基于区块链系统的交易数据移除方法,包括:区块链系统发起“启动数据移除作业”,由发起“启动数据移除作业”时的领导节点发送所有的区块链节点参与共识的信息;执行第一次共识机制,每个参与的区块链节点停止接收新交易,只处理正在进行的交易,并发送同意参与“启动数据移除作业”的信息;领导节点完成正在进行的交易后,向所有区块链节点发送参与同意执行“更改数据计划”的共识请求;执行第二次共识机制,每个参与的区块链节点回复同意“更改数据计划”;当每个区块链节点收到其他区块链节点的共识信息后移除相关的数据;执行第三次共识机制,其他区块链节点完成“更改数据计划”,回复同意“完成数据移除”共识。共识。共识。
技术研发人员:蔡维德
受保护的技术使用者:天民(青岛)国际沙盒研究院有限公司
技术研发日:2021.11.15
技术公布日:2022/3/8