CN113287110A - 具有篡改检测性的数据管理系统 - Google Patents
具有篡改检测性的数据管理系统 Download PDFInfo
- Publication number
- CN113287110A CN113287110A CN201980082068.XA CN201980082068A CN113287110A CN 113287110 A CN113287110 A CN 113287110A CN 201980082068 A CN201980082068 A CN 201980082068A CN 113287110 A CN113287110 A CN 113287110A
- Authority
- CN
- China
- Prior art keywords
- asset
- objects
- update request
- status update
- management
- 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.)
- Pending
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
第二计算机系统的节点系统执行更新由来自第一计算机系统的请求指定的对象的状态的处理,在该执行中,对资产集中的与上述对象对应的资产追加客体。客体是表示对象的状态的数据。每个对象都有资产,资产是客体的时间序列。资产集是资产的集合,构成DAG结构。节点是客体,边缘表示客体之间的关系。被追加的客体是末端客体。节点系统输出作为末端客体或其概要的存在证明,该存在证明保存在由与该节点系统的管理主体不同的管理主体管理的外部系统中。
Description
技术领域
本发明总体上涉及一种篡改检测技术。
背景技术
作为具有篡改检测性的系统的一例,已知有应用了分布式账本技术的系统,作为分布式账本技术的一例,已知有区块链(例如非专利文献1)。
现有技术文献
非专利文献
非专利文献1:https://bitcoin.org/bitcoin.pdf
发明内容
发明要解决的问题
作为区块链,已知例如公链和私链。
通常,在私链中,与公链不同,没有Proof of Work(工作量证明)或Proof ofStake(权益证明)这样的竞争,能够比较简单地删除并重新制作全部的记录。
这种问题不限于私链,在作为管理数据的系统的全部数据管理系统(例如联盟链、应用了区块链以外的技术的数据管理系统)中也会发生。
解决问题的技术手段
本发明具备:一个或多个第一计算机系统所具备的一个或多个第一管理部;以及与一个或多个第一计算机系统进行通信的第二计算机系统中的一个或多个节点系统所具备的一个或多个第二管理部。第一管理部向第二计算机系统发布指定了对象的状态更新请求。第二管理部接收该状态更新请求,执行更新由该状态更新请求指定的对象的状态的处理。在该执行中,该第二管理部在该第二管理部管理的资产集中的、与上述对象对应的资产中追加客体。客体是表示对象的状态的数据。每个对象都有资产。资产是对象的时间序列。资产集是资产的集合。资产集形成DAG(Directed Acyclic Graph)结构。在形成DAG结构的资产集中,节点是客体,边缘表示更新一个以上的对象的状态的一个以上的处理中的客体间的关系。上述追加的客体是与由上述状态更新请求指定的对象对应的资产中的末端客体。第二管理部输出作为末端客体或其概要的存在证明。输出的存在证明保存在由与具有第二管理部的节点系统的管理主体不同的管理主体管理的外部系统中。
发明的效果
每个对象的末端客体的存在证明存在于外部系统中。因此,在被进行了对某个对象重新生成履历或替换末端客体等篡改的情况下,通过使用外部系统中的存在证明,能够检测该篡改。
附图说明
图1表示实施例的系统整体的构成的一例。
图2表示客户端系统和节点系统的实施例的构成的一例。
图3表示客户端管理数据的一例。
图4表示悬停表(サスペンションテーブル)的一例。
图5表示提交表的一例。
图6表示服务器管理数据的一例。
图7表示资产表的一例。
图8表示资产表的概念的一例。
图9表示实施例的概览的一例。
图10是在实施例中进行的处理的流程图。
图11A示出存在证明的第1保存例。
图11B示出存在证明的第2保存例。
图12示出以客户端系统进行篡改检测处理的情况一例。
具体实施方式
在以下的说明中,“接口设备”包括一个以上的接口。一个以上的接口可以是一个以上的相同类型的通信接口设备(例如,一个以上的NIC(Network Interface Card,网络接口卡))或两个网络接口卡不同类型的通信接口设备(例如,NIC和HBA(Host Bus Adapter,主机总线适配器))。
另外,在以下的说明中,“存储装置”包括一个以上的存储器。关于存储装置,至少一个存储器可以是易失性存储器。存储装置主要在由处理器进行处理时使用。除了存储器之外,存储装置还可以包括一个以上的非易失性存储设备(例如,HDD(Hard Disk Drive,硬盘驱动器)或SSD(Solid State Drive,固态驱动器))。
此外,在以下的说明中,“处理器”包括一个以上的处理器。至少一个处理器典型地是CPU(Central Processing Unit,中央处理单元)那样的微处理器。一个以上的处理器中的每一个可以是单核也可以是多核。处理器可以包括执行部分或全部处理的硬件电路。
另外,在以下的说明中,有时将“程序”作为主语来说明处理,但程序通过处理器来执行,由此,适当使用存储装置(例如存储器)和/或接口装置(例如通信端口)等并进行所定的处理,因此处理的主语也可以是处理器。以程序为主语说明的处理也可以是处理器或具有该处理器的装置进行的处理。另外,处理器也可以包括进行处理的一部分或全部的硬件电路(例如,FPGA(Field-Programmable Gate Array:现场可编程门阵列)或ASIC(Application Specific Integrated Circuit:专用集成电路))。程序可以从程序源安装到计算机那样的装置中。程序源例如可以是程序分发服务器或计算机可读的记录介质(例如,非临时记录介质)。另外,在以下的说明中,可以将两个以上的程序作为一个程序来实现,也可以将一个程序作为两个以上的程序来实现。
另外,在以下的说明中,在不区别同种类的要素而进行说明的情况下,有时使用参照符号中的共同符号,在区别同种类的要素的情况下,有时使用参照符号。
另外,在以下的说明中,“客体”是指从应用程序那样的程序来看的一个逻辑电子数据的块,具体而言,是表示对象的状态的数据。作为客体的数据例如是记录、键值对或元组。以下,作为客体,以记录为例。
另外,在以下的说明中,“对象”是指任意的有形物或无形物。例如,可以采用账户作为“对象”,采用余额作为对象的状态。
另外,在以下的说明中,“状态更新请求”是状态更新处理的请求。“状态更新处理”是指更新对象的状态的处理。
图1表示实施例的系统整体的构成的一例。
多个客户端系统13A、13B、...以及服务器系统15通过通信网络19可通信地连接。服务器系统15由从一个或多个节点系统1300构成。以下,为了简化说明,假设服务器系统15由一个节点系统1300构成。另外,多个客户端系统13A、13B、...是一个或多个第一计算机系统的一例。服务器系统15是第二计算机系统的一例。每个节点系统1300的管理主体可以不同,两个以上(例如全部)的节点系统1300的管理主体也可以相同。
客户端系统13执行客户端程序134。也可以存在除了客户端程序134之外还执行用户程序124的客户端系统13(例如,客户端系统13A),或者可以存在经由通信网络14与执行用户程序124的用户系统12连接的客户端系统13(例如,客户端系统13B)。用户系统12可以是用户的计算机(例如,个人计算机)。用户程序124可以是Web浏览器,也可以是应用程序。通信网络14可以与通信网络19一体化。
数据管理系统10具备由多个客户端系统13A、13B、...执行的多个客户端程序134和由节点系统1300执行的服务器程序154。
图2表示客户端系统13和节点系统1300的本实施例的构成的一例。
客户端系统13包括一个或多个客户端计算机130。
客户端计算机130具有接口装置131、存储装置132以及与它们连接的处理器133。
接口装置131与通信网络19连接。
存储装置132存储客户端程序134和客户端管理数据135。客户端管理数据135是在客户端计算机130中管理的数据。
处理器133执行客户端程序134。通过由处理器133执行客户端程序134来实现作为第一管理部的一例的功能。该功能的一部分可以通过FPGA或ASIC这样的硬件电路来实现。
节点系统1300包括一个或多个服务器计算机150(节点计算机)。
服务器计算机150具有接口装置151、存储装置152以及与它们连接的处理器153。
接口装置151与通信网络19连接。
存储装置152存储服务器程序154和服务器管理数据155。服务器管理数据155是在服务器计算机150中管理的数据。
处理器153执行服务器程序154。处理器153执行服务器程序154,由此实现作为第二管理部的一例的功能。该功能的一部分可以通过FPGA或ASIC这样的硬件电路来实现。
图3表示客户端管理数据135的一例。
客户端管理数据135是私钥301和验证数据302。
私钥301是用户的私钥。在客户端计算机130被多个用户共享的情况下(例如,在客户端计算机130上经由通信网络14连接有多个用户系统124的情况下),针对每个用户存储私钥301。另外,用户可以是个人,也可以是组织(例如,企业或金融机构)。
验证数据302是悬停表321和提交表322。
悬停表321是第一命名空间内的数据的一例。悬停表321具有与响应从该客户端计算机130发送的信息更新请求而进行的信息更新处理中的在服务器系统15中未完成的状态更新处理对应的规定种类的数据(例如,如后所述,由状态更新请求指定的key以及nonce)。
提交表322是第二命名空间中的数据的一例。提交表322具有与响应从客户端计算机130发送的信息更新请求而在服务器系统15中完成的状态更新处理相对应的规定种类的数据(例如,如后所述,构成后述的验证记录的密钥、age、HV和nonce)。
图4表示悬停表321的一例。
悬停表321针对每个对象具有记录。悬停表321中的记录可以被称为“悬停记录”。
各悬停记录具有key401和nonce402这样的信息。以下,以一个对象为例(在图4的说明中为“关注对象”)。
key401是关注对象的ID。nonce402是由客户端程序134生成的密码学上冲突非常困难的值(例如随机数)的一例。
图5表示提交表322的一例。
提交表322针对每个对象具有记录。提交表322中的记录可以被称为“提交记录”。
对于各对象,提交记录是从服务器系统15接收到的验证记录,该验证记录是后述的资产集800(参见图8)中的末端资产记录的存在证明的一例。“验证记录”是末端资产记录或其概要。因此,各提交记录具有末端资产记录所具有的全部或部分信息。例如,各提交记录具有信息key501、age502、HV503和nonce504作为末端资产记录的概要(参见图7和图8)。以下,以一个对象为例(在图5的说明中为“关注对象”)。
key501是关注对象的ID(末端资产记录中的key701)。age502表示关注对象的最新状态的世代(末端资产记录中的age702)。hash503是与关注对象对应的末端资产记录的散列值(末端资产记录中的HV710)。该散列值是密码学上难以冲突的值的一例。nonce504是与关注对象的最新状态对应的nonce(末端资产记录中的nonce707)。
图6表示服务器管理数据155的一例。
服务器管理数据155是公钥601和资产集800。
公钥601是用户的公钥。对每个用户获取公钥601。
资产集800是资产的集合。
图7表示资产集800的一例。图8表示资产集800的概念的一例。
资产集800针对每个对象具有资产810。从对象的key识别对象的资产810。对于每个对象,资产810可对应于帐本。
对于每个对象,资产810是记录的时间序列。资产810中的记录可以被称为“资产记录”。资产810至少包括末端资产记录。资产记录包括key701、age702、input703、output704、BL705、Arg706、nonce707、Sig708、Prev-HV709和HV710这样的信息。以下,以一个对象和一个资产记录为例(在图7和图8的说明中为“关注对象”和“关注资产记录”)。
key701是关注对象的ID。Age702表示关注对象的状态的世代。每次更新关注对象的状态时,追加具有递增后的age702的末端资产记录。
input703表示包括关注对象的一个以上的对象中的每一个的上一状态。output704表示关注对象的最新状态。例如,在要追加关注资产记录的状态更新处理是从帐户A(关注对象的一例)帐户到帐户B(某另一个对象的一例)的转账的情况下,input703表示帐户A和账户B中的每一个的上一余额。output704表示帐户A的最新状态。
BL705是用于确定状态更新处理的处理逻辑(例如函数)的逻辑信息。逻辑信息在本实施例中是处理逻辑本身,但也可以取而代之,是处理逻辑的ID。
Arg706是作为在该处理逻辑中使用的一个以上的自变量的自变量信息。
XXXi是第i个XXX。outputi可以表示为outputi=BLi(inputi,Argi)。即,outputi是作为使用inputi和Argi执行BLi而得的结果的状态。此外,input703实现对象间(资产810间)的记录链(参照图8的虚线箭头)。
nonce707是与关注对象的最新状态(output704)对应的nonce。具体而言,nonce707是与获得该最新状态的状态更新处理的状态更新请求相关联的nonce。
Sig708是使用发布了得到关注对象的最新状态(output704)的状态更新请求的用户的私钥301的电子签名。在本实施例中,根据BL705、Arg706和nonce707来生成Sig708。此外,基于BL705生成的电子签名、基于Arg706生成的电子签名和基于nonce707生成的电子签名可以分别存在。
Prev-HV709是与关注对象的上一状态(上一世代)的资产记录(即,父资产记录)的HV710相同的值。即,Prev-HV709与父资产记录内的HV710之间的链接(参见图8中的实线箭头)实现了与对象对应的资产810内的记录链。
HV710是关注对象的资产记录的概要,例如是HV710以外的信息的至少一部分信息(在本实施例中为全部的信息701~709)的散列值(密码学上难以冲突的散列值)。
如上所述,在资产集800中,在不同资产810的资产记录中的input703之间实现记录链,并且在相同资产810的资产记录中的Prev-HV709和HV710之间实现记录链。这样,资产集800形成DAG(Directed Acyclic Graph:有向无环图)结构。在资产集800中,节点是资产记录,并且边缘表示一个以上的状态更新处理中的资产记录之间的关系。
图9表示本实施例的概览的一例。
在参照图9的概览说明中,取以下的前提。
·以管理与用户A对应的key“abc”的客户端系统13A为例。另外,将客户端系统13A内的要素的参照符号的末尾设为“A”。
·在资产集800中,关于key“abc”,存在末端资产记录81b及其父资产记录81a。因此,客户端系统13A的提交记录82A是末端资产记录81b的存在证明。
根据图9,本实施例的概览的一例如下。
客户端程序134A从提交表322A中获取包含与key“abc”相匹配的key501A的提交记录82A,生成与该提交记录82A内的信息相关联的状态更新请求(例如,具有该提交记录82A内的信息的请求),将该状态更新请求发送到服务器系统15。
服务器系统15中的至少一个节点系统1300的服务器程序154接收该状态更新请求。服务器程序154将与该状态更新请求相关联的信息内的HV“H2”与对应于该信息内的key“abc”的资产810的末端资产记录81b内的HV710“H2”进行比较。即,服务器程序154使用提交记录82A(存在证明),进行判断末端资产记录81b有无篡改的篡改检测处理。
如果篡改检测处理的结果是没有篡改,则服务器程序154响应于状态更新请求执行状态更新处理。服务器程序154在该状态更新处理的执行中,追加age702递增为“2”的资产记录81c。结果,资产记录81c成为最新的末端资产记录,具有age702“1”的资产记录81b成为最新的末端资产记录81c的父资产记录。
服务器程序154将作为末端资产记录81c的存在证明的验证记录(即,以key“abc”、age“2”、HV“H3”以及nonce“yyx”构成的记录)发送到客户端程序134A。
客户端程序134A用从服务器程序154接收到的验证记录覆盖提交记录82A。该验证记录可以作为新的提交记录82A被追加到提交表322A。
以下,参照图10详细说明在本实施例中进行的处理。
图10是在本实施例中进行的处理的流程图。
例如,在客户端程序134从用户程序124接收到状态更新请求时,开始图10所示的处理流程。
在S1001中,客户端程序134生成nonce。
在S1002中,客户端程序134判断由状态更新请求指定的对象key(在图10的说明中为“关注key”)和在S1001中生成的nonce是否能够保存在悬停表321中。在不存在包括与关注key相匹配的key401的悬停记录的情况下,S1002的判断结果为真(S1002:是)。在存在该悬停记录的情况下,S1002的确定结果为假(S1002:否)。在S1002:否的情况下,等待删除该悬停记录。
在S1002:是的情况下,在S1003中,客户端程序134将包含关注key和在S1001中生成的nonce的悬停记录保存在悬停表321中。在图10的说明中将在S1003中保存的悬停记录称为“R1”。
在S1004中,如果客户端程序134有包含与关注key相匹配的key701的提交记录,则从提交表322中获取该提交记录。在图10的说明中将在S1004中获取的提交记录称为“R2”。
在S1005中,客户端程序134生成状态更新请求,并将所生成的状态更新请求发送到服务器系统15。所发送的状态更新请求与下述(a)~(d)相关联。
(a)R1或R1和R2(R2是在对关注key进行第二次及以后的更新的情况下存在的提交记录)。
(b)与状态更新处理有关的BL和Arg。
(c)在S1001中生成的nonce。
(d)使用针对(b)和(c)发行了该状态更新请求的用户的私钥生成的Sig。
在S1011中,服务器程序154接收在S1005中发送的状态更新请求。服务器程序154使用与该请求对应的用户的公钥验证与该状态更新请求相关联的Sig的正当性。其结果,如果Sig不正当,则在S1020中,服务器程序154向客户端程序134返回表示在状态更新请求中有篡改的可能性的异常响应(错误)。
在S1012中,服务器程序154判别在S1011中接收到的状态更新请求是否与R1和R2两者相关联。在S1012的判断结果为假的情况下(S1012:否),执行S1017。
在S1012的判断结果为真的情况下(S1012:是),在S1013中,服务器程序154进行篡改检测处理,具体地说,进行下述(x)和(y)。
(x)服务器程序154判断包含与R1内的key相匹配的key701的资产记录是否包含与R1内的nonce相匹配的nonce707。该判断结果为真意味着该资产记录可能被篡改。可以对包括与R1内的key相匹配的key701的所有资产记录进行(x)的判断。
(y)服务器程序154判断包含与R2内的key匹配的key701的末端资产记录是否包含与R2内的HV和nonce匹配的HV710和nonce707。该判断结果为假意味着该末端资产记录有可能被篡改。
在S1014中,服务器程序154判断在S1013中是否有篡改的可能性。在S1014的判断结果为真的情况下(S1014:是),在S1020中,服务器程序154向客户端程序134返回表示与关注key对应的资产810有可能被篡改的异常响应。异常响应可以包括可能被篡改的资产记录或其概要。
在S1014的判断结果为假的情况下(S1014:否),在S1015中,服务器程序154重新计算包含与R2内的key相匹配的key701的末端资产记录的散列值。
在S1016中,服务器程序154判断在S1015中计算出的散列值是否与该末端资产记录内的HV710相匹配(即该HV710是否合法)。在S1016的判断结果为假的情况下(S1016:否),在S1020中,服务器程序154向客户端程序134返回表示与关注key对应的资产810有可能被篡改的异常响应。异常响应可以包括可能被篡改的末端资产记录或其概要。
在S1016的判断结果为真的情况下(S1016:是),在S1017中,服务器程序154按照在S1011中接收到的请求执行状态更新处理。在该状态更新处理的执行中,对关注key将新的资产记录追加到资产集800中。在S1018中,服务器程序154生成在S1017中追加的新的末端资产记录的验证记录(由该末端资产记录内的key、age、HV和nonce构成的记录)。在S1019中,服务器程序154针对在S1011中接收到的状态更新请求,将与在S1018中生成的验证记录相关联的完成响应返回给客户端程序134。
在S1021中,客户端程序134接收异常响应和与验证记录相关联的正常响应中的某一个。
在S1022中,客户端程序134判断在S1021中接收到的响应是否是正常响应。在S1022的判断结果为假的情况下(S1022:否),在S1025中,客户端程序134将异常响应(例如,篡改的可能性的通知)返回给用户程序124。
在S1022的判断结果为真的情况下(S1022:是),在S1023中,客户端程序134在与关注key对应的提交记录上覆盖与正常响应相关联的验证记录。在S1024中,客户端程序134删除与关注key相对应的悬停记录。在S1025中,客户端程序134将正常响应返回给用户程序124。
以上是在本实施例中进行的处理的详细内容。另外,例如可以采用下述中的至少一个。
·可以省略S1002和S1003(可以是可选的处理)。结果,也可以没有R1。
·可以与响应于状态更新请求而执行的状态更新处理分开地(异步地)执行使用R1和R2(在省略S1003的情况下为R2)的篡改检测处理。
·可以省略S1015和S1016(可以是可选的处理)。
·可以没有用户的私钥,并且资产集800的数据结构可以是其他数据结构,只要它是DAG结构的子集(例如,树结构)。这是因为用户的私钥和资产集800的上述数据结构不是生成和存储末端资产记录的存在证明所必需的。因此,在S1011中的认证中也可以不使用电子签名。
在本实施例中,例如可期待下述的效果。
对于各对象,末端资产记录以外的一部分资产记录的篡改,可以通过服务器程序154从开头资产记录开始确认HV(散列值)(追踪散列链)来检测,但末端资产记录的篡改(例如更新或删除)难以仅通过服务器程序154来检测。因此,以恶意地一致改写由不同的管理主体(例如,个人、组织或计算机)管理的多个系统内的数据非常困难为前提,在由与节点系统1300的管理主体不同的管理主体管理的外部系统(例如,其他节点系统1300或服务器系统15的外部系统)中保持针对各对象的末端资产记录的存在证明,使用该存在证明进行判断末端资产记录有无篡改的篡改检测处理,由此,在末端资产记录被篡改的情况下,能够检测该篡改。
此外,对于各对象,保存在外部系统中的存在证明是有关服务器系统15中的资产810中的末端资产记录的存在证明这样的与整个资产810相比小量的数据。由此,能够削减外部系统中的消耗存储容量。
此外,对于各对象,末端资产记录的存在性证明可以是末端资产记录本身,但是在本实施例中是包括末端资产记录的HV(散列值)的小量的数据。由此,与存储末端资产记录本身时的消耗存储容量相比,能够削减外部系统中的消耗存储容量。
另外,对于各对象,保存末端资产记录的存在证明的外部系统可以是管理该末端资产记录的节点系统1300以外的任意的系统,但在本实施例中,是对该对象发布了追加了末端资产记录的状态更新处理的状态更新请求的客户端系统13。即,发布状态更新请求的客户端系统13自身管理响应于状态更新请求而追加的资产记录的存在证明。因此,与在由客户端系统13的管理主体以外的管理主体管理的系统中管理存在证明的情况相比,存在证明被篡改的可能性低。
另外,对于各对象,由于在提交记录中存在由客户端程序134生成的nonce,所以服务器系统15侧难以否定该对象的末端资产记录的存在。
另外,在本实施例中,对处理逻辑赋予使用了用户的私钥的电子签名。即,可以定义处理逻辑的是具有有效私钥的用户。可以使用这种具有电子签名的处理逻辑来重新计算output和散列值。结果,提高了篡改检测性能。
另外,悬停表321对于确认客户端系统13和服务器系统15间的匹配性、基于该确认的结果的恢复和篡改可能性的检测是有用的。例如,可以如下所述。
·关于与某个对象有关的请求,在悬停表321中有记录而资产集800中没有记录的情况下,可以推测虽然从客户端系统13发布了请求,但在服务器系统15中可能没有执行遵照该请求的状态更新处理,或者虽然在服务器系统15中执行了,但资产记录可能被删除。因此,在这种情况下,客户端程序134重新发送请求或者执行篡改检测处理。
·关于与某个对象有关的请求,在悬停表321中有记录,在资产集800中也有记录,但在提交表322中没有记录的情况下,可以推测虽然从客户端系统13发布了请求,但在服务器系统15中执行了按照该请求的状态更新处理,但验证记录没有到达客户端系统13。因此,在这种情况下,客户端程序134将指定了关注key的验证记录获取请求(与关注key相对应的验证记录的获取请求)发送到服务器系统15,从而从服务器系统15获取验证记录。
以上是对本实施例的说明。本实施例可以是假定部分拜占庭故障的实施例(例如,服务器程序154和资产集800中的服务器程序154不能被篡改,但是资产集800可以被篡改)。在客户端,DAG的末端资产记录的散列值可以被保持为存在证明的一例。在本实施例中,例如可以采用下述中的至少一个。
·末端资产记录的存在证明的保存位置,只要是由与具有该末端资产记录的节点系统1300的管理主体不同的管理主体管理的系统即可,不限于客户端系统13,可以是具有该末端资产记录的节点系统1300(或者,包含该节点系统1300的服务器系统15)以外的任意的系统。
·处理逻辑可以是用户从外部站点或服务器系统15获得的逻辑。
·可以存在多个构成服务器系统15的服务器计算机150。在这种情况下,可以采用任何架构的服务器系统(例如,主/从系统),但是也可以采用分散式系统作为服务器系统。
·服务器系统15可以包括多个节点系统,各节点系统可以由一个或多个服务器计算机150构成。在这种情况下,在某一个节点系统中生成的验证记录可以保存在由与该某一个节点系统的管理主体不同的管理主体管理的另一个节点系统中,而不是保存在客户端系统13中。
另外,在本实施例中,可以将包含客户端系统13以及服务器系统15的系统整体大致分为作为服务器系统15存在的部分的服务器端、和作为系统整体中的服务器端以外的部分的客户端。末端资产记录的存在证明可以保存在客户端。作为客户端的存在证明保存,例如有下述的第1和第2保存例。
图11A表示第1保存例。根据第1保存例,在多个客户端系统13(或同一客户端系统13中的多个客户端计算机130)能够访问的共享的存储装置1100中,存储与各对象对应的末端资产记录的存在证明。例如,在从客户端系统13A发送用户A的请求,并且响应于该请求,资金从用户A的帐户A(对象A的一例)转移到用户B的帐户B(对象B的一例),结果,向与帐户A对应的资产810A追加末端资产记录(表示从帐户A支出后的余额的资产记录),并且还向与帐户B对应的资产810B追加末端资产记录(表示向帐户B支付后的余额的资产记录)的情况下,向帐户A的资产810A追加的末端资产记录的存在证明86A和向帐户B的资产810B追加的末端资产记录的存在证明86B可以存储在上述共享存储装置中。根据第1保存例,由各客户端系统13管理的资产记录不需要是disjoint。
图11B表示第2保存例。第2保存例仅适用于由各客户端系统13管理的资产记录是disjoint的情形。因此,根据第2保存例,例如,从客户端系统13A发送指定对象A的状态更新请求,响应于该状态更新请求,将末端资产记录追加到与对象A对应的资产810A,并且将所追加的末端资产记录的存在证明86A存储在客户端系统13A中。该存在证明86A不存储在除客户端系统13A之外的客户端系统中。
以上,说明了一实施例,但这些只是用于说明本发明的例示,并不意味着将本发明的范围仅限定于这些实施例。本发明也能够以其他各种方式来执行。
例如,资产集可以是DAG结构的多个交易(各交易包括一个以上的输入和一个以上的输出),例如UTXO(Unspent Transaction Output,未处理输出)。即,成为节点的客体可以是交易,边缘表示的关系可以是交易间的关系。
另外,例如,判断末端资产记录有无篡改的篡改检测处理,也可以在具有服务器程序154的节点系统1300以外的某个系统中进行。“某个系统”可以是另一个节点系统1300、客户端系统13或其他系统。具体地说,例如,在进行图9所例示的状态更新处理,客户端程序134A接收最新的末端资产记录81c的验证记录,作为提交记录82A保存后,如图13所例示,客户端程序134A从节点系统1300接收末端资产记录81c或其概要,使用末端资产记录81c或其概要和上述保存的提交记录82A(存在证明),进行判断该资产记录81c有无篡改的篡改检测处理。客户端程序134A从节点系统1300接收末端资产记录81c或其概要的契机可以是下述中的任一个。
·客户端程序134A将状态参照请求发送到节点系统1300。状态参照请求是参照状态的请求。至少提交记录82A中的key“abc”与状态参照请求相关联。接收到该状态参照请求的服务器程序154对与该状态参照请求相关联的key“abc”所对应的资产810的末端资产记录81c进行获取,将末端资产记录81c或其概要响应给客户端程序134A。由此,客户端程序134A从节点系统1300接收末端资产记录81c或其概要。
·客户端程序134A向节点系统1300发送了在追加了末端资产记录81c的状态更新处理之后向与key“abc”对应的资产810追加末端资产记录的状态更新处理的状态更新请求。至少提交记录82A内的key“abc”与该状态更新请求相关联。接收到该状态更新请求的服务器程序154对与该状态更新请求相关联的key“abc”所对应的资产810的末端资产记录81c进行获取,将末端资产记录81c或其概要响应给客户端程序134A。由此,客户端程序134A从节点系统1300接收末端资产记录81c或其概要。在这种情形下,在响应于状态更新请求而执行的状态更新处理中,服务器系统150可以不执行篡改检测处理(例如,图10中的S1013)。
除了一个或多个节点系统1300之外,服务器系统15还可以包括对服务器系统15和节点系统1300之间的通信进行中继的中继系统。中继系统可以将来自客户端系统13的请求转发到节点系统1300,或者可以将来自节点系统1300的验证记录转发到客户端系统13。
符号说明
13…客户端系统
15…服务器系统。
Claims (15)
1.一种数据管理系统,其特征在于,具备:
一个或多个第一计算机系统所具备的一个或多个第一管理部;以及
与所述一个或多个第一计算机系统进行通信的第二计算机系统中的一个或多个节点系统所具备的一个或多个第二管理部,
第一管理部向所述第二计算机系统发布指定了对象的状态更新请求,
第二管理部接收所述状态更新请求,执行更新由所述状态更新请求指定的对象的状态的处理,
在该执行中,该第二管理部在该第二管理部管理的资产集中的与所述对象对应的资产中追加客体,
客体是表示对象的状态的数据,
每个对象都有资产,
资产是客体的时间序列,
资产集是资产的集合,
资产集构成DAG(Directed Acyclic Graph)结构,
在构成所述DAG结构的资产集中,节点是客体,边缘表示更新一个以上的对象的状态的一个以上的处理中的客体间的关系,
追加的所述客体是与由所述状态更新请求指定的对象对应的资产中的末端客体,
所述第二管理部输出作为所述末端客体或其概要的存在证明,
输出的所述存在证明被保存在由与具有该第二管理部的节点系统的管理主体不同的管理主体管理的外部系统中。
2.根据权利要求1所述的数据管理系统,其特征在于,
任何第一计算机系统的管理主体都与所述第二计算机系统中的任何节点系统的管理主体不同。
3.根据权利要求1或2所述的数据管理系统,其特征在于,
在所述处理是更新包含由所述状态更新请求指定的对象的多个对象的状态的处理的情况下,在该处理的执行中,所述第二管理部在该第二管理部管理的资产集中的、与包含指定的所述对象的一个或多个对象对应的一个或多个资产的每一个中追加客体,
所述第二管理部针对所述一个或多个资产中的每一个输出存在证明,所述存在证明是追加到该资产的客体的概要。
4.根据权利要求1至3中任一项所述的数据管理系统,其特征在于,
所述外部系统是具有发布了所述状态更新请求的所述第一管理部的第一计算机系统、或者包含该第一计算机系统的所述一个或多个第一计算机系统的全部能够访问的存储系统。
5.根据权利要求4所述的数据管理系统,其特征在于,
所述第一管理部进行以下动作:
从所述第二计算机系统接收所述存在证明并保存后,从所述第二计算机系统接收所述末端客体或其概要,
使用该末端客体或其概要和保存的所述存在证明,判断该末端客体有无篡改。
6.根据权利要求5所述的数据管理系统,其特征在于,
所述第一管理部进行以下动作:
向所述第二计算机系统发布指定了所述对象的状态参照请求,
响应所述状态参照请求,从所述第二计算机系统接收与所述对象对应的资产的末端客体或其概要。
7.根据权利要求4所述的数据管理系统,其特征在于,
所述第二管理部从所述第一管理部接收所述存在证明,使用该存在证明,判断所述末端客体有无篡改。
8.根据权利要求7所述的数据管理系统,其特征在于,
所述第一管理部向所述第二计算机系统发布指定了与指定的所述对象相同的对象的下一个状态更新请求,
所述存在证明与所述下一状态更新请求相关联,
所述第二管理部在更新由所述下一状态更新请求指定的对象的状态的处理的执行中,使用与所述下一状态更新请求相关联的存在证明,判断所述末端客体有无篡改。
9.根据权利要求1至8中任一项所述的数据管理系统,其特征在于,
所述状态更新请求与由所述第一管理部生成的密码学上难以冲突的值相关联,
所述末端客体及其存在证明中的每一个都包括该值。
10.根据权利要求1至9中任一项所述的数据管理系统,其特征在于,
所述状态更新请求关联有:
作为用于确定处理的ID或处理本身的处理信息;以及
作为在该处理中使用的一个以上的自变量的自变量信息,
追加的所述对象包括:
表示指定的所述对象的处理前的状态的处理前状态信息;
表示指定的所述对象的处理后的状态的处理后状态信息;
与所述状态更新请求相关联的处理信息;以及
与所述状态更新请求相关联的自变量信息。
11.一种数据管理方法,其特征在于,
一个或多个第一计算机系统中的某一个第一计算机系统向与所述一个或多个第一计算机系统进行通信的第二计算机系统发布指定了对象的状态更新请求,
所述第二计算机系统中的一个或多个节点系统中的某一个节点系统接收所述状态更新请求,执行更新由所述状态更新请求指定的对象的状态的处理,
在该执行中,所述节点系统向该节点系统管理的资产集中的、与所述对象对应的资产追加客体,
客体是表示对象的状态的数据,
每个对象都有资产,
资产是客体的时间序列,
资产集是资产的集合,
资产集构成DAG(Directed Acyclic Graph)结构,
在构成所述DAG结构的资产集中,节点是客体,边缘表示更新一个以上的对象的状态的一个以上的处理中的客体间的关系,
追加的所述客体是与由所述状态更新请求指定的对象对应的资产中的末端客体,所述节点系统输出作为所述末端客体或其概要的存在证明,
输出的所述存在证明被保存在由与该节点系统的管理主体不同的管理主体管理的外部系统中。
12.一种数据管理方法,其特征在于,
与一个或多个第一计算机系统进行通信的第二计算机系统中的一个或多个节点系统中的某一个节点系统接收指定了对象的状态更新请求,
所述节点系统执行更新由所述状态更新请求指定的对象的状态的处理,
在该执行中,所述节点系统在所述节点系统管理的资产集中的、与所述对象对应的资产中追加客体,
客体是表示对象的状态的数据,
每个对象都有资产,
资产是对象的时间序列,
资产集是资产的集合,
资产集构成DAG(Directed Acyclic Graph)结构,
在构成所述DAG结构的资产集中,节点是客体,边缘表示更新一个以上的对象的状态的一个以上的处理中的客体间的关系,
追加的所述客体是与由所述状态更新请求指定的对象对应的资产中的末端客体,所述节点系统输出作为所述末端客体或其概要的存在证明,
输出的所述存在证明被保存在由与所述节点系统的管理主体不同的管理主体管理的外部系统中。
13.一种数据管理方法,其特征在于,
与包含一个或多个节点系统的第二计算机系统进行通信的一个或多个第一计算机系统中的某一个第一计算机系统,向所述第二计算机系统发布指定了对象的状态更新请求,
所述一个或多个节点系统中的某一个节点系统接收所述状态更新请求,执行更新由所述状态更新请求指定的对象的状态的处理,
在该执行中,所述节点系统在所述节点系统管理的资产集中的、与所述对象对应的资产中追加客体,
客体是表示对象的状态的数据,
每个对象都有资产,
资产是对象的时间序列,
资产集是资产的集合,
资产集构成DAG(Directed Acyclic Graph)结构,
在构成所述DAG结构的资产集中,节点是客体,边缘表示更新一个以上的对象的状态的一个以上的处理中的客体间的关系,
追加的所述客体是与由所述状态更新请求指定的对象对应的资产中的末端客体,
所述节点系统输出作为所述末端客体或其概要的存在证明,
输出的所述存在证明被保存在由与具有该第二管理部的节点系统的管理主体不同的管理主体管理的外部系统中,
所述外部系统是所述第一计算机系统、或者包含该第一计算机系统的所述一个或多个第一计算机系统的全部能够访问的存储系统,
所述第一计算机系统从所述第二计算机系统接收所述存在证明并保存后,从所述第二计算机系统接收所述末端客体或其概要,使用该末端客体或其概要和保存的所述存在证明,判断该末端客体有无篡改。
14.一种计算机程序,其特征在于,
使与一个或多个第一计算机系统进行通信的第二计算机系统中的一个或多个节点系统的某一个节点系统执行以下动作:
接收指定了对象的状态更新请求,
执行更新由所述状态更新请求指定的对象的状态的处理,
在该执行中,在所述节点系统管理的资产集中的、与所述对象对应的资产中追加客体,
客体是表示对象的状态的数据,
每个对象都有资产,
资产是对象的时间序列,
资产集是资产的集合,
资产集构成DAG(Directed Acyclic Graph)结构,
在构成所述DAG结构的资产集中,节点是客体,边缘表示更新一个以上的对象的状态的一个以上的处理中的客体间的关系,
追加的所述客体是与由所述状态更新请求指定的对象对应的资产中的末端客体,输出作为所述末端客体或其概要的存在证明,
输出的所述存在证明保存在由与所述节点系统的管理主体不同的管理主体管理的外部系统中。
15.一种计算机程序,其特征在于,
使与包含一个或多个节点系统的第二计算机系统进行通信的一个或多个第一计算机系统中的某一个的第一计算机系统执行以下动作:
向所述第二计算机系统发布指定了对象的状态更新请求,
所述一个或多个节点系统中的某一个节点系统接收所述状态更新请求,执行更新由所述状态更新请求指定的对象的状态的处理,
在该执行中,所述节点系统在所述节点系统管理的资产集中的、与所述对象对应的资产中追加客体,
客体是表示对象的状态的数据,
每个对象都有资产,
资产是对象的时间序列,
资产集是资产的集合,
资产集构成DAG(Directed Acyclic Graph)结构,
在构成所述DAG结构的资产集中,节点是客体,边缘表示更新一个以上对象的状态的一个以上处理中的客体间的关系,
追加的所述客体是与由所述状态更新请求指定的对象对应的资产中的末端客体,
所述节点系统输出作为所述末端客体或其概要的存在证明,
输出的所述存在证明被保存在由与具有该第二管理部的节点系统的管理主体不同的管理主体管理的外部系统中,
所述外部系统是所述第一计算机系统、或者包含该第一计算机系统的所述一个或多个第一计算机系统的全部能够访问的存储系统,
在从所述第二计算机系统接收所述存在证明并保存后,从所述第二计算机系统接收所述末端客体或其概要,使用该末端客体或其概要和保存的所述存在证明,判断该末端客体有无篡改。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019-009544 | 2019-01-23 | ||
JP2019009544 | 2019-01-23 | ||
PCT/JP2019/031507 WO2020152893A1 (ja) | 2019-01-23 | 2019-08-08 | 改ざん検知性を有するデータ管理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113287110A true CN113287110A (zh) | 2021-08-20 |
Family
ID=71735448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980082068.XA Pending CN113287110A (zh) | 2019-01-23 | 2019-08-08 | 具有篡改检测性的数据管理系统 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3916606A4 (zh) |
JP (1) | JP2020119502A (zh) |
CN (1) | CN113287110A (zh) |
WO (1) | WO2020152893A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102959495A (zh) * | 2010-09-10 | 2013-03-06 | 株式会社日立制作所 | 管理针对计算机系统的处理任务即基于用户操作的任务的系统及显示关于该种任务的信息的方法 |
US20170364552A1 (en) * | 2016-06-16 | 2017-12-21 | The Bank Of New York Mellon | Ensuring Data Integrity of Executed Transactions |
CN108667836A (zh) * | 2018-05-08 | 2018-10-16 | 众安信息技术服务有限公司 | 区块链共识方法 |
CN109003078A (zh) * | 2018-06-27 | 2018-12-14 | 阿里巴巴集团控股有限公司 | 基于区块链的智能合约调用方法及装置、电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10193696B2 (en) * | 2015-06-02 | 2019-01-29 | ALTR Solutions, Inc. | Using a tree structure to segment and distribute records across one or more decentralized, acylic graphs of cryptographic hash pointers |
JP6648555B2 (ja) * | 2016-02-29 | 2020-02-14 | 富士ゼロックス株式会社 | 情報処理装置及びプログラム |
US20170287090A1 (en) * | 2016-03-31 | 2017-10-05 | Clause, Inc. | System and method for creating and executing data-driven legal contracts |
JP6798604B2 (ja) * | 2017-02-24 | 2020-12-09 | 日本電気株式会社 | 情報検証システム、情報検証装置、方法およびプログラム |
CN108769154B (zh) * | 2018-05-15 | 2021-01-01 | 北京工业大学 | 基于有向无环图和分布式账本的数据存储方法 |
-
2019
- 2019-08-08 WO PCT/JP2019/031507 patent/WO2020152893A1/ja active Search and Examination
- 2019-08-08 EP EP19912177.3A patent/EP3916606A4/en active Pending
- 2019-08-08 CN CN201980082068.XA patent/CN113287110A/zh active Pending
- 2019-11-07 JP JP2019202672A patent/JP2020119502A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102959495A (zh) * | 2010-09-10 | 2013-03-06 | 株式会社日立制作所 | 管理针对计算机系统的处理任务即基于用户操作的任务的系统及显示关于该种任务的信息的方法 |
US20170364552A1 (en) * | 2016-06-16 | 2017-12-21 | The Bank Of New York Mellon | Ensuring Data Integrity of Executed Transactions |
CN108667836A (zh) * | 2018-05-08 | 2018-10-16 | 众安信息技术服务有限公司 | 区块链共识方法 |
CN109003078A (zh) * | 2018-06-27 | 2018-12-14 | 阿里巴巴集团控股有限公司 | 基于区块链的智能合约调用方法及装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
JP2020119502A (ja) | 2020-08-06 |
EP3916606A1 (en) | 2021-12-01 |
WO2020152893A1 (ja) | 2020-07-30 |
EP3916606A4 (en) | 2022-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3776208B1 (en) | Runtime self-correction for blockchain ledgers | |
US10904009B2 (en) | Blockchain implementing delta storage | |
US10635655B2 (en) | Device, method and program for securely reducing an amount of records in a database | |
US11018853B2 (en) | Workflow management via distributed ledgers and smart contracts | |
KR20210003234A (ko) | 분할된 블록체인 네트워크에서 블록체인의 블록을 유지하는 것 | |
TW202023224A (zh) | 事件驅動的區塊鏈工作流程處理 | |
US20190207748A1 (en) | Blockchain storage device | |
US10693646B2 (en) | Event execution using a blockchain approach | |
JP2016009276A (ja) | システム、認証装置、認証プログラム、及び、認証方法 | |
JP6618138B1 (ja) | 改ざん検知性を有するデータ管理システム | |
US11627122B2 (en) | Inter-system linking method and node | |
CN112291372B (zh) | 区块链的异步落账方法、装置、介质及电子设备 | |
WO2020224100A1 (zh) | 区块链配置文件的处理装置、系统、方法及存储介质 | |
US20200394162A1 (en) | Operation management method for distributed ledger system, operation management system for distributed ledger system, and operation management program for distributed ledger system | |
US20230208911A1 (en) | Visibility of digital assets at channel level | |
CN113287110A (zh) | 具有篡改检测性的数据管理系统 | |
US20220311595A1 (en) | Reducing transaction aborts in execute-order-validate blockchain models | |
JP6895149B1 (ja) | データ管理システム | |
US11743327B2 (en) | Topological ordering of blockchain associated proposals | |
WO2022250047A1 (ja) | ビザンチン故障を検知するデータ管理システム及び方法 | |
JP2022525551A (ja) | データレコードのコピーの分散型台帳システムへの誤伝送の防止 | |
CN117337431A (zh) | 探测拜占庭故障的数据管理系统以及方法 | |
CN114579611A (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 |