CN111737276B - 一种修改区块链数据的方法和系统 - Google Patents
一种修改区块链数据的方法和系统 Download PDFInfo
- Publication number
- CN111737276B CN111737276B CN202010691311.2A CN202010691311A CN111737276B CN 111737276 B CN111737276 B CN 111737276B CN 202010691311 A CN202010691311 A CN 202010691311A CN 111737276 B CN111737276 B CN 111737276B
- Authority
- CN
- China
- Prior art keywords
- block
- modified
- value
- transaction
- data
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000012986 modification Methods 0.000 claims abstract description 198
- 230000004048 modification Effects 0.000 claims abstract description 198
- 238000012795 verification Methods 0.000 claims description 34
- 238000012217 deletion Methods 0.000 claims description 4
- 230000037430 deletion Effects 0.000 claims description 4
- 238000004422 calculation algorithm Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 230000006872 improvement Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000004816 latex Substances 0.000 description 2
- 229920000126 latex Polymers 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 239000010977 jade Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/2379—Updates performed during online database operations; commit processing
-
- 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/602—Providing cryptographic facilities or services
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- 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/02—Banking, e.g. interest calculation or account maintenance
-
- 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
-
- 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
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/18—Legal services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Bioethics (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Tourism & Hospitality (AREA)
- Computing Systems (AREA)
- Human Resources & Organizations (AREA)
- Primary Health Care (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本说明书实施例公开了一种修改区块链数据的方法和系统,所述方法由区块链节点执行,包括:获取待修改数据所在的第一区块,在所述第一区块中对所述待修改数据进行修改,并将所述第一区块中第一域值修改为所述区块链节点中新区块的定位数据;接收修改交易,并将所述修改交易放于所述新区块中;所述修改交易至少包括:第二域值、原始校验值和现有校验值,所述第二域值为修改前所述第一区块中的第一域值,所述原始校验值基于修改前所述第一区块生成,所述现有校验值基于修改后所述第一区块生成。
Description
技术领域
本申请涉及区块链技术领域,特别涉及一种修改区块链数据的方法和系统。
背景技术
区块链是一种去中心化的分布式数据库,区块链被广泛应用于各个交易存储、数据存证等平台。在区块链的应用中,为了避免有害信息传播,在一些特殊情况下会要求区块链平台支持对链上数据进行修改。
因此,本申请提出一种修改区块链数据的方法和系统。
发明内容
本说明书实施例的一个方面提供一种修改区块链数据的方法。所述方法由区块链中的节点执行,包括:获取待修改数据所在的第一区块,在所述第一区块中对所述待修改数据进行修改,并将所述第一区块中第一域值修改为所述区块链节点中新区块的定位数据;接收修改交易,并将所述修改交易放于所述新区块中;所述修改交易至少包括:第二域值、原始校验值和现有校验值,所述第二域值为修改前所述第一区块中的第一域值,所述原始校验值基于修改前所述第一区块生成,所述现有校验值基于修改后所述第一区块生成。
本说明书实施例的另一个方面提供一种修改区块链数据的系统。所述系统位于区块链节点上,包括:修改模块,用于获取待修改数据所在的第一区块,在所述第一区块中对所述待修改数据进行修改,并将所述第一区块中第一域值修改为所述区块链节点中新区块的定位数据;交易接收模块,用于接收修改交易,并将所述修改交易放于所述新区块中;所述修改交易至少包括:第二域值、原始校验值和现有校验值,所述第二域值为修改前所述第一区块中的第一域值,所述原始校验值基于修改前所述第一区块生成,所述现有校验值基于修改后所述第一区块生成。
本说明书实施例的另一个方面一种修改区块链数据的装置,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现前述任一项所述的方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的修改区块链数据的系统的应用场景示意图;
图2是根据本说明书一些实施例所示的修改区块链数据的方法的示例性流程图;
图3是根据本说明书一些实施例所示的对被校验区块的最后一次修改后的状态进行校验方法的示例性流程图;
图4是根据本说明书的一些实施例所示的对被校验区块的其他修改后和未修改的状态进行校验的方法的示例性流程图;
图5是根据本说明书的一些实施例所示的对被校验区块的所有状态进行校验的方法的示例性流程图;
图6a、6b和6c是根据本说明书一些实施例所示的修改区块链数据的示例性示意图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本说明书中所使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图1是根据本说明书的一些实施例所示的示例性修改区块链数据的系统的应用场景示意图。
修改区块链数据的系统100可以通过实施本申请中披露的方法和/或过程来实现修改区块链数据。系统100可以应用于各个区块链的交易存储、存证等平台上实现对区块链上现有数据的修正或删除,例如银行交易存储的区块链、法律存证的区块链、公证数据存证的区块链等。
如图1所示,修改区块链数据的系统可以包括若干个区块链节点(例如,110-1、110-2、110-3和110-4)、网络(120)、用户端(例如,130-1和130-2)。
在一些实施例中,若干个节点110-1、110-2、110-3、110-4通过网络120相连。在一些实施例中,可以将一方的计算设备、一方的服务器或者一个具有计算和存储能力的系统等作为一个节点。在一些实施例中,节点可以存储数据,其中,数据存储于节点中的区块中。例如,节点可以存储银行的交易数据等。在一些实施例中,节点可以增加数据,并将增加的数据写入区块链。在系统100中,节点增加的数据可以以区块的形式写入区块链,节点中所增加的数据可以保存在节点本地,并基于区块链机制可以在众多其它节点上同步记录。在一些实施例中,节点的数据可以被修改,例如,修正和删除。在一些实施例中,节点通过网络120从用户端获取修改指令之后,节点中的处理设备可以对需要修改的数据进行修改,同时对修改后的数据在所在区块进行更新。
在一些实施例中,网络120可促进数据和/或信息的交换,数据或信息可以包括节点设备输入的数据内容、存储的数据内容等。在一些实施例中,修改区块链数据的系统中的一个或多个节点(例如,110-1、110-2、110-3、110-4、…)可通过网络120发送数据和/或信息给区块链系统中的其他节点。在一些实施例中,网络120可是任意类型的有线或无线网络。例如,网络120可包括缆线网络、有线网络、光纤网络、电信网络、内部网络、网际网络、区域网络(LAN)、广域网络(WAN)、无线区域网络(WLAN)、都会区域网络(MAN)、公共电话交换网络(PSTN)、蓝牙网络、ZigBee网络、近场通讯(NFC)网络等或以上任意组合。在一些实施例中,网络120可包括一个或多个网络进出点。例如,网络120可包含有线或无线网络进出点,如基站和/或网际网络交换点120-1、120-2、…,通过这些进出点,修改区块链数据的系统中的若干个个节点可连接到网络120上以交换数据和/或信息。
用户终端指用户所使用的一个或多个终端设备或软件。在一些实施例中,使用用户终端的可以是一个或多个用户,可以包括直接使用服务的用户,也可以包括其他相关用户。在一些实施例中,用户终端与节点通过网络120相连。在一些实施例中,一个节点(例如,节点110-1、110-2等)对应一个或者多个用户终端(例如,用户终端130-1、130-2等)。在一些实施例中,用户终端可以是移动设备、平板计算机、膝上型计算机、台式计算机等其他具有输入和/或输出功能的设备中的一种或其任意组合。在一些实施例中,使用用户终端的用户可以通过用户终端输入区块链的修改指令,例如,对区块链中某个节点的区块中的数据进行删除的指令。在一些实施例中,修改指令可以通过网络120传输给区块链中的节点。
在一些实施例中,修改区块链数据的系统100可以由修改模块、交易接收模块和校验模块组成。在一些实施例中,系统100部署在区块链节点上。
修改模块,用于获取待修改数据所在的第一区块,在所述第一区块中对所述待修改数据进行修改,并将所述第一区块中第一域值修改为所述区块链节点中新区块的定位数据。在一些实施例中,所述定位数据为块高或块号。
在一些实施例中,所述修改模块用于:对所述待修改交易数据进行加密,得到加密密文。
在一些实施例中,当所述区块链中所述区块的数据未被修改时,所述区块的第一域值为默认值,所述默认值不同于所述区块链中任意区块的定位数据。
关于对待修改数据进行修改参见步骤210及其相关描述。
交易接收模块,用于接收修改交易,并将所述修改交易放于所述新区块中;所述修改交易至少包括:第二域值、原始校验值和现有校验值,所述第二域值为修改前所述第一区块中的第一域值,所述原始校验值基于修改前所述第一区块生成,所述现有校验值基于修改后所述第一区块生成。在一些实施例中,所述修改交易还包括:所述待修改数据。在一些实施例中,所述修改交易还包括密钥,所述密钥用于解密所述加密密文。
关于生成修改交易参见步骤220及其相关描述。
校验模块,用于当被校验区块中第一域值为其他区块的定位数据,基于所述被校验区块的被校验值,以及该第一域值定位的区块中修改交易的现有校验值,对所述被校验区块进行校验。
在一些实施例中,所述校验模块还用于:当更新区块中修改交易的第二域值为其他区块的定位数据,基于所述更新区块中修改交易的原始校验值,以及该第二域值定位的区块中修改交易的现有校验值,对所述被校验区块进行校验;其中,所述更新区块用于记录修改所述被校验区块对应的修改交易;当所述更新区块中修改交易的第二域值不为其他区块的定位数据,从下一相邻区块中获取待校验值,基于所述待校验值,以及所述更新区块中修改交易的原始校验值,对所述被校验区块进行校验;其中,所述下一相邻区块的定位数据紧随所述被校验区块的定位数据之后。关于校验参见图3-图5及其相关描述。
图2是根据本说明书的一些实施例所示的修改区块链数据的方法的示例性流程图。具体的,方法200在区块链节点上执行。
区块链(blockchain)是由多个节点共同参与、共同维护的去中心化的分布式数据库,可以将信息写入区块链,也可以从区块链读取信息。区块链由一个个区块(block)链接组成,在区块链中每次写入数据,就是创建一个区块。例如,在区块链系统中,当有新交易需要记录时,会在区块链创建一个区块来记录该新交易的数据。每个区块包含区块头(Head)和区块体(Body)两个部分。区块头(Head)可以用于记录当前区块的多项特征值,例如生成时间、实际数据(即区块体)的哈希、上一个区块的哈希等。区块体(Body)可以用于记录交易数据。
如图2所示,该修改区块链数据的方法200可以包括:
步骤210,获取待修改数据所在的第一区块,在所述第一区块中对所述待修改数据进行修改,并将所述第一区块中第一域值修改为所述区块链节点中新区块的定位数据。具体的,该步骤210可以由修改模块执行。
待修改数据可以是区块链中需要被修改的数据。在一些实施例中,待修改数据可以是区块体记录的交易数据。交易是已经执行或将要执行的行为。在一些实施例中,交易可以是转账、创建智能合约、调用智能合约或其他行为。交易数据是记录交易相关信息的数据。在一些实施例中,交易数据可以包括交易发送者地址、交易接收者地址、转账金额、执行代码、交易签名和交易ID等中的一种或多种的组合。
第一区块是区块链中待修改数据所在的区块。在一些实施例中,第一区块可以是一个或多个。
在一些实施例中,获取区块链中的第一区块可以是获取第一区块的定位数据。可以理解,通过定位数据可以找到对应区块的数据。在一些实施例中,定位数据可以块号、块高(区块高度)、区块所在位置空间的二进制地址编码或其他数据等。优选地,块号是基于对应区块在区块链中的生成顺序获取的、用于标识区块的数字。例如,区块的块号依次为:1、2、3、4和5。
在一些实施例中,获取区块链中的第一区块可以通过根据系统指定第一区块来获取、通过查找某个数据来对应找到第一区块的方式获取或其它可得到第一区块的方式,本实施例不做限制。
在一些实施例中,在第一区块中对待修改数据进行修改可以包括对待修改数据进行修正或删除。在一些实施例中,修正和删除可以是直接对待修改数据进行相应操作,例如,将其中某个数据修正为其他数据,或者直接删除某个数据等,又或者添加某个数据等。
在一些实施例中,当修改为删除时,在第一区块对待修改数据进行修改包括:对待修改数据进行加密,得到加密密文。可以理解,在不解密的情况下,被加密的数据无法被看到,效果相当于删除。
在一些实施例中,加密可以采用哈希算法、对称加密算法、非对称加密算法等算法,本实施例不做限制。其中,哈希算法是将任意长度的二进制值映射为较短的固定长度的二进制值,这个较短的二进制值称为哈希值。对称加密算法是通过一个密钥进行加密和解密。非对称加密算法是公钥加密,私钥解密,其中,公钥是公开的,私钥是个人持有,不能被他人获取。
在一些实施例中,采用非对称加密算法实现对待修改数据进行加密时,由于私钥是个人持有不能被他人获取,可以直接采用公钥和私钥对数据进行加密和解密。通过本实施例可以保证对待修改交易数据进行加密的安全性。
在一些实施例中,采用对称加密算法实现对待修改交易数据进行加密时,可以先用对称密钥将待修改交易数据进行加密。由于对称密钥不具备私密性,为了保证加密的安全性,可以用公钥将该对称密钥再次进行加密。
在一些实施例中,区块链中的区块均存在对应的域,是用于存储区块中的数据的存储空间。其中,第一域是指用于存储最新修改交易(即,截至到当前,最后一次修改本区块所生成的修改交易)所在区块的定位数据的存储空间,第一域的值即为该定位数据。例如,区块链每生成或写入一个新的区块时,该新的区块中都会存在对应的第一域,且第一域的值(第一域值)为默认值。
在一些实施例中,区块链中某区块的第一域可以设置在区块的区块头中,也可以设置在该区块的区块体中,本实施例不做限制。在一些实施例中,区块链中某区块设置的第一域还可以存储于该区块链以外的存储设备(例如,数据库)中,且该存储设备与该区块相关联,可以通过该区块检索到该第一域。优选地,第一域可以设置为区块头中的一个字段。
在一些实施例中,当区块链中区块的数据未被修改时,该区块的第一域值可以为默认值。默认值可以是不同于所述区块链中任意区块的定位数据。可以理解,若在区块链中,定位数据是按照自然数n(n为大于等于1的整数)由小到大的方式进行排序的块号,默认值即可以设置为与任一块号都不同的值,例如0,-1、-2等。如图6a所示,在未对区块链数据进行修改前,区块链中区块2和区块3的第一域值为默认值-1。
根据上述对第一域值的说明,以及步骤210中对第一域值的修改可知,每对区块中的数据修改一次,第一域值就会发生改变,即将当前第一域值修改为该修改生成的修改交易所在区块的定位数据。
新区块是指区块链的节点为了记录修改交易新写入的区块。关于修改交易的说明参见步骤220,此处不再赘述。其中,新区块的定位数据可以基于区块链中已经生成的最新区块的定位数据确定。如前所述,若定位数据是按照自然数n(n为大于等于1的整数)由小到大的方式进行排序的块号,则新区块的定位数据为最新区块的块号的下一整数。例如,区块链中已经生成的最新区块的定位数据为3,则新区块的定位数据为4。在一些实施例中,在对第一区块中的待修改数据进行修改后,生成对应的修改交易。节点接收到修改交易后,可以将修改交易放于交易池中,和交易池中其他多个交易进行打包,并将打包的交易放于新区块中,此时打包的交易中至少包含修改交易,该节点将新区块与区块链其他所有或部分节点进行共识,共识之后,若该节点共识成功,则新区块以区块的形式存储于区块链中。若共识失败,则重新获取新区块,将第一区块中第一域值修改为新获取的新区块的定位数据,并基于当前的第一区块的数据生成修改交易,节点接收到该修改交易之后再进行交易打包、后续共识等操作。此时新区块与共识前的新区块不同,是基于共识失败之后区块链中的区块情况确定,例如,若在共识之前,区块链的区块号仅到3,则新区块为区块4,共识失败之后,记录其他交易的区块4上链了,则新区块为区块5。因为第一域值发生了变化,修改交易也发生了变化。可以理解的,最后以区块形式上链的修改交易,是基于第一域值为上链区块的块号生成的。
在一些实施例中,可以是区块链外部的终端对第一区块中的待修改数据进行修改。例如,区块链的节点通过调用智能合约实现数据的修改,具体的,用户发起修改请求,该修改请求触发“修改合约”(能够对第一区块中待修改数据进行修改的智能合约)的调用,调用完成之后,节点在其虚拟机上执行该修改合约,完成修改。在一些实施例中,也可以是节点对第一区块中的待修改数据进行修改。
可以理解,在第一区块中对待修改数据进行修改以后,第一区块中第一域值从当前值被修改为新区块的定位数据(即,修改待修改数据生成的修改交易所在的区块的定位数据),因此,可以通过第一域值找到该修改交易。可以理解的,第一域值的修改也可以通过调用智能合约实现,与前述修改待修改数据类似。可以理解的,与前面的“修改合约”可以属于一个合约,也可以是独立的合约。
第一域值或第二域值可以用Latest表示。例如,对定位数据为a的这个区块最新一次修改(也可以理解截止到当前最后一次修改)的修改交易存于定位数据为b的区块,则定位数据为a的区块中的第一域值为b,即,Latest=b。
在一些实施例中,当需要对某个区块的数据进行修改时,将该区块的数据读取到内存中进行修改。
步骤220,接收修改交易,并将所述修改交易放于所述新区块中;所述修改交易至少包括:第二域值、原始校验值和现有校验值。具体的,该步骤220可以由交易接收模块执行。
修改交易可以是指修改产生的交易数据。
第二域是以交易(例如,修改交易)形式存储第一域值的存储空间,第二域的值为第二域值。步骤210中的第一域与第二域不同,第一域并非存储交易形式数据的存储空间。可以理解的,本说明书的第一域值和第二域值属于同类型的数据。第二域值为修改前所述第一区块中第一域值,即进行步骤210之前,第一区块中第一域值。可以理解,若在进行步骤210之前,第一区块未进行任何修改,则该值为默认值,若在进行步骤210之前,第一区块进行了一次或多次修改,则该值为:之前最后一次修改的修改交易所在区块的定位数据。
原始校验值是基于修改前的第一区块生成,可以理解,原始校验值是基于进行步骤210之前的第一区块得到的,即,生成原始校验值的第一区块中,待修改数据未被修改,第一域值也未被修改。在一些实施例中,校验值可以是整个修改前的第一区块的哈希(Hash)值。在一些实施例中,校验值也可以是其他,本实施例不做限制。
现有校验值是基于修改后的第一区块生成,可以理解,现有校验值是基于完成步骤210之后的第一区块得到。可以理解,生成现有校验值的第一区块中,待修改数据已被修改,第一域值也被修改为新区块的定位数据。在一些实施例中,现有校验值可以是整个修改后的第一区块的哈希值。可以理解,在计算修改后第一区块的现有校验值时,需要将修改后的第一域值包含在内。
为了修改后能够恢复修改的数据,需要找到修改前的原始数据。在一些实施例中,修改交易还可以包括该次修改前的待修改数据。以图6a为例,第一次修改的修改记录中可以包括第一次修改前的待修改数据X1,其中,记录的方式可以是只记录X1,也可以是记录整个交易数据(X1、Y1、Z1),第二次修改的修改记录中可以包括第二次修改前的待修改数据Y2,记录方式与第一次修改类似。
如前所述,可以通过对待修改数据进行加密实现待修改数据的删除,因此,为了恢复删除的数据,修改交易中还可以包含用于解密加密密文的密钥。在一些实施例中,若采用对称加密的方式对待修改的数据进行加密,则解密密钥作为修改交易写入新区块之前,需要先用交易的发起者(或交易的相关方)的公钥对该解密密钥进行加密,再写入新区块中。
在一些实施例中,节点可以在本地执行获取修改交易的过程。具体地,节点通过网络从区块链中将第一区块的信息下载到本地(例如,本地的内存中),并基于修改后的第一区块,获取修改交易。
在一些实施例中,修改交易可以通过智能合约获取,例如,第一区块被修改后(包括,待修改数据和第一域值),节点调用“生成合约”,该“生成合约”用于基于修改前的第一区块和修改后的第一区块获取修改交易。其中,触发调用“生成合约”代码的可以是前述的“修改合约”,也可以是修改请求。可以理解的,区块链中任意一个区块被修改,都可以调用同一个合约来获取修改交易。在一些实施例中,节点也可以直接基于修改后的第一区块生成修改交易,具体的,获取现有校验值、原始校验值和修改前第一域值生成修改交易。
现结合图6a、6b和6c,示例性说明上述过程:
在一些实施例中,可以对一个第一区块中的一条交易数据进行多次修改。
如图6a所示,区块链中的区块仅到区块3,对区块2中的交易数据进行两次修改,则该两次修改时,区块2为第一区块。第一次修改是将X1修改为X2,修改前区块2的区块体中记录的交易数据为(X1、Y1、Z1),第一次修改后,得到新的交易数据(X2、Y1、Z1),修改X1的同时需要修改区块2第一域值(因为之前未进行修改,当前第一域值为默认值),即,将Latest=-1修改为Latest=4(此时,新区块为区块4),区块4中会存储第一修改生成的修改交易,该修改交易中包含:区块2在第一次修改前整个区块2的校验值(原始校验值),可以用OH2表示,OH2=Hash(HH2+hash(X1、Y1、Z1,Latest=-1)),其中,HH2包括区块1的哈希H1以及区块2版本号等信息;区块2在第一次修改后整个区块2的校验值(现有校验值),可以用HNew1表示,HNew1=Hash(HH2+hash(X2、Y1、Z1,Latest=4);第二域值,即区块2在第一次修改前区块2第一域值Latest=-1。
第二次修改是将X2进行删除,则可以加密X2,得到X2的加密密文X2’。第二次修改前区块2的区块体中记录的交易数据为(X2、Y1、Z1),修改后区块2的交易数据为(X2’、Y1、Z1),删除的同时需要修改区块2第一域值即,将Latest=4修改为Latest=5(此时,新区块为区块5),区块5中会存储第二修改生成的修改交易,该修改交易中包含:区块2在第二次修改前整个区块2的校验值(原始校验值),可以用OH2’表示, OH2’=Hash(HH2+hash(X2、Y1、Z1,Latest=4),可以理解,若在第一次修改后和第二次修改前之间的时间,没有对区块2的数据进行非法修改,则OH2’与HNew1相同;区块2在第二次修改后整个区块2的校验值(现有校验值),可以用HNew2表示,HNew2=Hash(HH2+hash(X2’、Y1、Z1,Latest=5);第二域值,即区块2在第二次修改前区块2第一域值Latest=4。
由此可见,通过第一区块中第一域值Latest=4可以找到第一次修改的修改交易;通过第一域值Latest=5可以找到第二次修改的修改交易。
在一些实施例中,可以同时对一个第一区块中的多条交易数据进行修改。如图6b所示,区块链中的区块仅到区块7,需要对区块6中的交易数据A1和B1同时进行修改(且为该区块的第一次修改),区块6作为第一区块,修改前区块体中记录的交易数据为(A1、B1、C1),修改具体为将A1修改为A2和删除B1,则修改后区块6的交易数据为(A2、C1)。同时,需要将区块6中的第一域值Latest=-1修改为Latest=8(区块8为新区块)。区块8中会存储该修改生成的修改交易,包含:修改前整个区块6的校验值(原始校验值),可以用OH6表示,OH6=Hash(HH6+hash(A1、B1、C1,Latest=-1);修改后整个区块6的校验值(现有校验值),可以用HNew6表示,HNew6=Hash(HH6+hash(A2、C1,Latest=8);第二域值,即修改前区块6的第一域值Latest=-1。
在一些实施例中,可以同时对多个第一区块中的多条交易数据进行修改。如图6c所示,区块链中的区块仅到区块12,需要对区块9中的交易数据a1和对区块11中的交易数据c1进行修改,则区块9和区块11作为第一区块,修改前区块9和区块11的区块体中记录的交易分别为(a1、b1)和(c1、d1),将区块9的a1修改为a2,得到新的交易数据(a2、b1),将区块11的c1进行删除,例如,可以加密c1,得到c1的加密密文c1’,得到新的交易数据(c1’,d1),同时将区块9和区块10的第一域值Latest=-1均修改为Latest=13(区块13为新区块),以及将区块9和区块11修改后的修改交易都存储在区块13,区块9的修改交易中包含:修改前整个区块9的校验值(原始校验值),可以用OH9表示,OH9=Hash(HH9+hash(a1、b1,Latest=-1));修改后整个区块9的校验值(现有校验值),可以用HNew9表示,HNew9=Hash(HH9+hash(a2、b1,Latest=13));第二域值,即修改前区块9第一域值Latest=-1。同时,区块11的修改交易中包含:修改前整个区块11的校验值(原始校验值),可以用OH11表示,OH11=Hash(HH11+hash(c1、d1,Latest=-1)),修改后整个区块11的校验值(现有校验值),可以用HNew11表示,HNew11=Hash(HH11+hash(c1’、d1,Latest=13);第二域值,即修改前区块11第一域值Latest=-1。
通过在修改交易中记录第二域值,结合第一区块中记录的最新修改交易对应的第一域值,可以找到区块每一次修改的修改交易,进一步的,可以实现第一区块的校验。关于第一区块的校验参见图3及其相关描述。
为了保证数据的真实性和完整性,需要对节点中的区块的完整性进行校验。具体的,校验过程可以由校验模块执行。
可以理解,区块链中任一节点的任一区块均可以被校验,可以将需要校验的区块命名为被校验区块。在一些实施例中,可以通过被校验区块的第一域值确定被校验区块是否为数据被修改过的区块。具体的,当被校验区块中第一域值为其他区块的定位数据(即,校验区块中第一域值定位到了其他区块),则被校验区块为被修改过的区块,反之,则为未被修改过的区块。其中,若被校验区块为被修改后的区块,则将存储被验证区块之前修改的修改交易的区块称为更新区块。可以理解的,若被校验区块被修改了多次,则更新区块为多个。本实施例主要对数据被修改过的区块进行校验的过程说明,具体见图3、图4和图5。
图3是根据本说明书一些实施例所示的对被校验区块的最后一次修改后的状态进行校验方法的示例性流程图。具体的,该流程图由校验模块执行。
如图3所示,该校验流程300可以包括:
步骤310,基于被校验区块计算被校验值。
被校验值是指基于被校验区块生成,可以理解,被校验值是基于被校验区块当前的数据生成的校验值。若被校验区块之前被修改过(如,被校验区块为第一区块),则被校验值是基于修改后区块的数据计算生成的。
在一些实施例中,计算被校验值的算法可以是Hash算法(又称,单向散列算法)。所述Hash算法包括但不限于MD5信息摘要算法(Message Digest Algorithm 5)、安全散列算法(SHA,Secure Hash Algorithm)、带密钥的Hash算法(MAC,Message AuthenticationCode)和循环冗余校验(CRC,Cyclic Redundancy Check)等中的任意一种。
上述对于校验算法的说明,均可适用于本说明书其他部分。其中不同位置的校验可以使用相同的算法,也可以使用不同的算法,只要满足校验值和被校验值采用相匹配的校验算法计算即可。
步骤320,获取被校验区块第一域值定位的区块中修改交易的现有校验值。
可以理解,被校验区块第一域值定位的区块记录最后一次修改被校验区块生成的修改交易。
步骤330,判断被校验值和现有校验值是否一致。
以图6a为例,被校验区块为经过两次修改后的区块2,若区块2两次修改后未被非法修改,则两次修改后的区块2的被校验值RH=Hash(HH2+hash(X2’、Y1、Z1,Latest=5)),被校验区块中第一域值Latest=5,因此,获取区块5的修改交易中的现有校验值,即HNew2,判断HNew2是否与两次修改后的区块2的被校验值一致。一致则校验成功,不一致则校验失败。
可以理解的,图3对应的部分是对被校验区块在最后一次修改后的状态进行校验,确定最后一次修改后的该区块是否被非法篡改。
图4是根据本说明书的一些实施例所示的对被校验区块的其他修改后和未修改的状态进行校验的方法的示例性流程图。具体的,该流程图由校验模块执行。
如图4所示,该校验流程400可以包括:
步骤410,判断被校验区块对应的更新区块的第二域值是否为其他区块的定位数据。
更新区块的第二域值是指更新区块的修改交易中的第二域值,且该修改交易是基于修改被校验区块生成的。
在一些实施例中,可以通过第二域值判断更新区块中修改交易对应的修改是否为第一次修改。具体的,若第二域值为其他区块的定位数据,则说明更新区块中修改交易对应的修改不为第一次修改,此时,通过步骤420-440对被校验区块进行校验。若第二域值不为其他区块的定位数据,则说明更新区块中修改交易对应的修改为第一次修改,此时,通过步骤450-460对被校验区块进行校验。
步骤420,获取更新区块的修改交易中的原始校验值。
步骤430,获取第二域值定位的区块中修改交易的现有校验值。
具体的,从更新区块的修改交易中获取第二域值,再从该第二域值定位的区块的修改交易中获取现有校验值。
可以理解的,该第二域值定位的区块的修改交易,基于上一次(即,相对于更新区块的修改交易对应的修改)修改被校验区块生成。
步骤440,判断原始被校验值和现有校验值是否一致。
图3和图4的步骤410-440是对被校验区块在被每一次修改之后的状态进行校验,确定每一次修改之后是否被非法篡改,其中,图3是对最后一次修改之后的状态进行校验,而图4的步骤410-440是对其他次修改之后的状态进行校验。
步骤420,获取更新区块的修改交易中的原始校验值。
步骤450,从下一相邻区块中获取待校验值。
若定位数据为块号,则下一相邻区块的块号紧随被校验区块的块号。例如,被校验区块为两次修改后的区块2,则区块3为下一相邻区块。
区块链中,在写入新的区块时,会在新的区块的块头中存放上一个写入的区块的哈希。即,某个区块的下一相邻区块的块头中会存放该区块的哈希。其中,下一相邻区块是指紧接着该区块写入的区块。可以理解,被校验区块的下一相邻区块的块头中会存放被校验区块的哈希值,待校验值即为该哈希值。
步骤460,判断原始被校验值和待校验值是否一致。
一致则校验成功,不一致则校验失败。步骤420、450-460是对被校验区块在未进行任何修改时的状态进行校验,若校验成功则说明,则第一次修改之前,该区块未被非法篡改。
如图6a所示,被校验区块为两次修改后的区块2,若更新区块为区块5,通过步骤420-440进行校验,则从更新区块中获取的原始校验值为OH2’,从区块4的修改交易中获取现有校验值为HNew1。判断OH2’是否与HNew1一致,一致则校验成功,不一致则校验失败。若更新区块为区块4,则通过步骤420、450-460进行校验。其中,图6a中,区块5记录的修改交易是数据没有被非法篡改的情况。
在一些实施例中,根据需求,可以只对被校验区块一个或多个状态进行校验。例如,当图3和图4的所有校验均成功时,被校验区块视为合法区块。
图5是根据本说明书的一些实施例所示的对被校验区块的所有状态进行校验的方法的示例性流程图。具体的,该流程图500由校验模块执行。
步骤510,基于被校验区块,计算被校验值。
具体见步骤310,不再赘述。
步骤520,基于第一更新区块中现有校验值与被校验值进行校验,第一更新区块为被校验区块的第一域值定位的区块。
具体的,判断基于第一更新区块中现有校验值与被校验值是否一致,一致则校验成功(进入步骤530),反之,则校验失败。
步骤530,判断第一更新区块中修改交易的第二域值是否定位其他区块。
是则进入步骤540,否则进入步骤560。可以理解,若第一更新区块中修改交易的第二域值定位其他区块,则说明仅进行了一次修改,则直接进行步骤560,进行被校验区块修改前的校验。
步骤540,基于第二更新区块的现有校验值与第一更新区块的原始校验值进行校验,第二更新区块为第一更新区块中修改交易的第二域值定位的区块。
具体的,判断第二更新区块的现有校验值与第一更新区块的原始校验值是否一致,一致则校验成功(进入步骤550),反之,则校验失败。
第二更新区块是更新区块中修改交易的第二域值定位的区块,例如,第二更新区块为第一更新区块的修改交易中的第二域值定位的区块(即,倒数第二次修改的修改交易所在的区块)。又例如,第二更新区块可以包括:记录(或存储)第N-1次、第N-2次……第2次修改的修改交易的区块,N为第一区块的修改次数。第二更新区块可以基于修改交易中的第二域值获取。
步骤550,判断第二更新区块中修改交易的第二域值是否定位其他区块。
是则重复执行540,否则进入步骤560。
重复执行步骤540,即重复执行:基于第N-1次修改的修改交易的原始校验值和第N-2次修改的修改交易的现有校验值进行校验。具体的,判断每次重复校验时,第N-2次修改的修改交易的现有校验值)和第N-1次修改的修改交易的原始校验值是否一致,一致则校验成功,不一致则失败。
若重复执行的每一步都校验成功,则说明被校验区块在每次历史修改后的数据都是完整和有效的。可以理解,第一区块在第N-1次到第N-2次、在第N-2次到第N-3次……在第2次到第1次修改期间,均未被非法修改。
重复执行,直到第二更新区块中修改交易的第二域值不为任意区块的定位数据,则执行步骤560。
步骤560,从变化区块的下一相邻区块中获取待校验值,基于待校验值与第二更新区块中的原始校验值进行校验。
具体的,判断第二更新区块的原始校验值与待校验值是否一致,是则成功,反之失败。
可以理解的,是基于待校验值与重复结束时第二更新区块中修改交易的原始校验值进行校验。重复结束时的第二更新区块是指记录第一次修改的修改交易的区块。通过该步骤,可以校验没有被修改的区块的数据的完整性和有效性。
本说明书实施例还提供一种装置,其至少包括处理器以及存储器。所述存储器用于存储指令。当所述指令被所述处理器执行时,导致所述装置实现前述的方法。
本说明书实施例可能带来的有益效果包括但不限于:(1)通过将修改记录以修改交易的方式记录在区块链新写入的区块中,可以实现修改记录的保存;(2)将存放修改交易的区块的定位数据(例如,块号)更新为区块的第一域值中,可以实现每一次修改交易的获取;(3)通过在修改交易中记录修改前的数据或者记录解密的密钥,可以实现数据的恢复;(4)基于智能合约的方式获取修改交易,节点可以反复执行统一智能合约的代码,提高效率。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施。
Claims (15)
1.一种修改区块链数据的方法,所述方法由区块链中的节点执行,包括:
获取待修改数据所在的第一区块,在所述第一区块中对所述待修改数据进行修改,并将所述第一区块中第一域值修改为所述区块链节点中新区块的定位数据;所述第一域值为第一域的值,所述第一域是用于存储所述第一区块的最新修改交易所在区块的定位数据;所述定位数据为块号或块高;
接收修改交易,并将所述修改交易放于所述新区块中;所述修改交易至少包括:第二域值、原始校验值和现有校验值,所述第二域值为修改前所述第一区块中的第一域值,所述原始校验值基于修改前所述第一区块生成,所述现有校验值基于修改后所述第一区块生成。
2.如权利要求1所述的方法,所述修改交易还包括:所述待修改数据。
3.如权利要求1所述的方法,当所述修改为删除时,所述在所述第一区块对所述待修改数据进行修改包括:
对所述待修改数据进行加密,得到加密密文。
4.如权利要求3所述的方法,所述方法还包括:
所述修改交易还包括密钥,所述密钥用于解密所述加密密文。
5.如权利要求1所述的方法,当所述区块链中区块的数据未被修改时,所述区块的第一域值为默认值,所述默认值不同于所述区块链中任意区块的定位数据。
6.如权利要求5所述的方法,所述方法还包括:
当被校验区块中第一域值为其他区块的定位数据,基于所述被校验区块的被校验值,以及该第一域值定位的区块中修改交易的现有校验值,对所述被校验区块进行校验。
7.如权利要求6所述的方法,所述方法还包括:
当更新区块中修改交易的第二域值为其他区块的定位数据,基于所述更新区块中修改交易的原始校验值,以及该第二域值定位的区块中修改交易的现有校验值,对所述被校验区块进行校验;其中,所述更新区块用于记录修改所述被校验区块对应的修改交易;
当所述更新区块中修改交易的第二域值不为其他区块的定位数据,从下一相邻区块中获取待校验值,基于所述待校验值,以及所述更新区块中修改交易的原始校验值,对所述被校验区块进行校验;
其中,所述下一相邻区块的定位数据紧随所述被校验区块的定位数据之后。
8.一种修改区块链数据的系统,所述系统位于区块链节点上,包括:
修改模块,用于获取待修改数据所在的第一区块,在所述第一区块中对所述待修改数据进行修改,并将所述第一区块中第一域值修改为所述区块链节点中新区块的定位数据;所述第一域值为第一域的值,所述第一域是用于存储所述第一区块的最新修改交易所在区块的定位数据;所述定位数据为块号或块高;
交易接收模块,用于接收修改交易,并将所述修改交易放于所述新区块中;所述修改交易至少包括:第二域值、原始校验值和现有校验值,所述第二域值为修改前所述第一区块中的第一域值,所述原始校验值基于修改前所述第一区块生成,所述现有校验值基于修改后所述第一区块生成。
9.如权利要求8所述的系统,所述修改交易还包括:所述待修改数据。
10.如权利要求8所述的系统,所述修改模块用于:
对所述待修改数据进行加密,得到加密密文。
11.如权利要求10所述的系统,所述修改交易还包括密钥,所述密钥用于解密所述加密密文。
12.如权利要求8所述的系统,当所述区块链中区块的数据未被修改时,所述区块的第一域值为默认值,所述默认值不同于所述区块链中任意区块的定位数据。
13.如权利要求12所述的系统,所述系统还包括校验模块,所述校验模块用于:
当被校验区块中第一域值为其他区块的定位数据,基于所述被校验区块的被校验值,以及该第一域值定位的区块中修改交易的现有校验值,对所述被校验区块进行校验。
14.如权利要求13所述的系统,所述校验模块还用于:
当更新区块中修改交易的第二域值为其他区块的定位数据,基于所述更新区块中修改交易的原始校验值,以及该第二域值定位的区块中修改交易的现有校验值,对所述被校验区块进行校验;其中,所述更新区块用于记录修改所述被校验区块对应的修改交易;
当所述更新区块中修改交易的第二域值不为其他区块的定位数据,从下一相邻区块中获取待校验值,基于所述待校验值,以及所述更新区块中修改交易的原始校验值,对所述被校验区块进行校验;
其中,所述下一相邻区块的定位数据紧随所述被校验区块的定位数据之后。
15.一种修改区块链数据的装置,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如权利要求1~7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010691311.2A CN111737276B (zh) | 2020-07-17 | 2020-07-17 | 一种修改区块链数据的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010691311.2A CN111737276B (zh) | 2020-07-17 | 2020-07-17 | 一种修改区块链数据的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111737276A CN111737276A (zh) | 2020-10-02 |
CN111737276B true CN111737276B (zh) | 2020-12-04 |
Family
ID=72654915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010691311.2A Active CN111737276B (zh) | 2020-07-17 | 2020-07-17 | 一种修改区块链数据的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111737276B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113438073B (zh) * | 2021-06-24 | 2023-05-09 | 福建师范大学 | 基于周期且支持指定修改次数的区块链编校方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239325A (zh) * | 2013-06-17 | 2014-12-24 | 阿里巴巴集团控股有限公司 | 区块定位方法和装置 |
WO2019164713A1 (en) * | 2018-02-20 | 2019-08-29 | Dershem Michael | Use of cryptocurrency in healthcare |
CN110489495A (zh) * | 2019-10-21 | 2019-11-22 | 杭州趣链科技有限公司 | 一种基于修改集的区块链快照制作方法 |
CN111078790A (zh) * | 2019-12-04 | 2020-04-28 | 福州博泉网络科技有限公司 | 区块链中孤块数据的同步方法、系统及存储介质 |
-
2020
- 2020-07-17 CN CN202010691311.2A patent/CN111737276B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239325A (zh) * | 2013-06-17 | 2014-12-24 | 阿里巴巴集团控股有限公司 | 区块定位方法和装置 |
WO2019164713A1 (en) * | 2018-02-20 | 2019-08-29 | Dershem Michael | Use of cryptocurrency in healthcare |
CN110489495A (zh) * | 2019-10-21 | 2019-11-22 | 杭州趣链科技有限公司 | 一种基于修改集的区块链快照制作方法 |
CN111078790A (zh) * | 2019-12-04 | 2020-04-28 | 福州博泉网络科技有限公司 | 区块链中孤块数据的同步方法、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111737276A (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11501533B2 (en) | Media authentication using distributed ledger | |
US11184157B1 (en) | Cryptographic key generation and deployment | |
CN111753335B (zh) | 区块内容的编辑方法及装置 | |
CN109194466A (zh) | 一种基于区块链的云端数据完整性检测方法及系统 | |
CN111475824B (zh) | 数据访问方法、装置、设备和存储介质 | |
WO2018165940A1 (en) | A system and method for controlling a ledger of transactions | |
KR20210045353A (ko) | 인코딩된 블록체인 데이터의 인덱싱 및 복구 | |
CN110881063A (zh) | 一种隐私数据的存储方法、装置、设备及介质 | |
US20220216999A1 (en) | Blockchain system for supporting change of plain text data included in transaction | |
Thangavel et al. | Enabling ternary hash tree based integrity verification for secure cloud data storage | |
US10200407B1 (en) | Network gateway messaging systems and methods | |
Sookhak et al. | Towards dynamic remote data auditing in computational clouds | |
JP2007522739A (ja) | 一方向性認証 | |
CN107947917A (zh) | 一种生成白盒密钥的方法及装置 | |
CN107566360B (zh) | 一种数据认证码的生成方法 | |
CN109657497B (zh) | 安全文件系统及其方法 | |
CN109635593B (zh) | 电力系统中基于电力缴费终端的数据完整性存储保护方法 | |
EP1430680B1 (en) | Server with file verification | |
CN111737276B (zh) | 一种修改区块链数据的方法和系统 | |
US11818116B2 (en) | Network gateway messaging systems and methods | |
CN108133026B (zh) | 一种多数据的处理方法、系统及存储介质 | |
CN110266641A (zh) | 信息读取方法及装置 | |
US20220067727A1 (en) | Method for operating a distributed database system, distributed database system, and industrial automation system | |
CN113342802A (zh) | 区块链数据存储的方法和装置 | |
CN113987574A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40038758 Country of ref document: HK |