掌桥专利:专业的专利平台
掌桥专利
首页

验证方法、控制方法、信息处理装置以及验证程序

文献发布时间:2024-04-18 19:53:33


验证方法、控制方法、信息处理装置以及验证程序

技术领域

本发明涉及验证方法、控制方法、信息处理装置以及验证程序。

背景技术

有时信息处理系统通过在能够由多个用户访问的数据库中记录交易信息,从而使交易信息的真实性的证明变得容易。记录交易信息的数据库也可以是耐篡改性高的分布式数据库即区块链。区块链有时被称为分布式账本,交易信息有时被称为事务。区块链具有将多个区块连结而成的列表结构。

此外,提出了如下的区块链系统:基于交易信息的保密义务等级判定信息种类,根据所判定的信息种类选择任一个区块链,在所选择的区块链中写入交易信息。

专利文献1:国际公开第2018/214898号

有时交易执行者对验证者公开交易信息所包含的特定的项目的项目信息,并想要主张所公开的项目信息是真实的。例如,在公司的业务员为了业务而购买商品或者服务的情况下,有时想向公司请求购买费用。如果在数据库中记录有交易信息本身,则验证者只要确认从交易执行者公开的项目信息与记录于数据库的信息一致即可。

但是,在能够由验证者访问的数据库中记录交易信息本身,验证者能够参照交易信息的整体的情况下,存在交易执行者的秘密信息泄露给验证者之虞。例如,若从交易系统对交易执行者赋予的用户ID包含于交易信息中,则存在验证者获取交易执行者的用户ID,而也能够知晓交易执行者过去进行的其它交易之虞。因此,在一个方面中,本发明的目的在于限定对验证者公开的交易信息。

发明内容

在一个方式中,提供由计算机执行以下的处理的验证方法。接受识别由用户进行的第一交易的第一识别信息、和第一交易的执行结果所包含的多个第一项目信息中的由用户指定的第一项目信息。参照存储部获取与第一识别信息对应的多个第一隐匿信息中的至少与所指定的第一项目信息对应的第一隐匿信息,在该存储部中,针对多个交易中的每一个交易,将识别交易的识别信息和通过将交易的执行结果所包含的多个项目信息分别隐匿化而生成的多个隐匿信息建立对应地存储。基于指定的第一项目信息与获取的第一隐匿信息之间的对应关系,验证指定的第一项目信息的真实性。

另外,在一个方式中,提供由计算机执行以下的处理的控制方法。若接受交易请求,则参照按照每个交易种类规定了多个项目的设定信息,确定与接受到的交易请求表示的第一交易种类对应的多个第一项目。从存储根据交易请求而执行的交易的执行结果的第一存储部获取与确定出的多个第一项目对应的多个项目信息。将获取到的多个项目信息分别隐匿化来生成多个隐匿信息,并且将识别交易的识别信息和多个隐匿信息建立对应地存储于第二存储部。

另外,在一个方式中,提供具有存储部和处理部的信息处理装置。另外,在一个方式中,提供使计算机执行的验证程序。

在一个方面中,能够限定对验证者公开的交易信息。

本发明的上述以及其它目的、特征以及优点通过与表示作为本发明的例子而优选的实施方式的附图相关的以下的说明而变得明确。

附图说明

图1是用于说明第一实施方式的信息处理系统的图。

图2是表示第二实施方式的信息处理系统的例子的图。

图3是表示终端装置的硬件例的框图。

图4是表示使用了区块链的第一交易证明的例子的图。

图5是表示使用了区块链的第二交易证明的例子的图。

图6是表示信息处理系统的功能例的框图。

图7是表示交易执行的步骤例的流程图。

图8是表示交易证明的步骤例的流程图。

图9是表示使用了区块链的第三交易证明的例子的图。

图10是表示使用了区块链的第四交易证明的例子的图。

具体实施方式

以下,参照附图对本实施方式进行说明。

[第一实施方式]

对第一实施方式进行说明。

图1是用于说明第一实施方式的信息处理系统的图。

第一实施方式的信息处理系统验证与从交易执行者向验证者公开的交易相关的信息的真实性。信息处理系统包括信息处理装置10、20以及存储部30。信息处理装置10、20以及存储部30例如与网络连接。网络可以包含LAN(Local Area Network:局域网),也可以包含互联网。但是,存储部30也可以包含于信息处理装置20中。

信息处理装置10将与执行完毕的交易相关的信息提示给信息处理装置20。信息处理装置10例如是交易执行者使用的智能手机、平板终端、PC(Personal Computer:个人计算机)等终端装置。信息处理装置20验证从信息处理装置10提示的信息。信息处理装置20例如是验证者使用的智能手机、平板终端、PC等终端装置。

例如,信息处理装置10向交易系统发送交易请求,购买业务上使用的商品或者服务,从交易系统接收表示所执行的交易的交易信息。交易系统也可以是使用区块链的区块链系统。交易信息表示交易的执行结果,包括与多个项目对应的多个项目信息。信息处理装置10将表示购买物的名称、购买金额的项目信息发送到信息处理装置20,并请求垫付的购买价款的细算。信息处理装置20从信息处理装置10接收项目信息,确认按照项目信息进行了交易的事实。

信息处理装置20具有通信部21以及处理部22。通信部21是与网络连接的通信接口。通信部21可以是有线通信接口,也可以是无线通信接口。处理部22执行信息处理。处理部22也可以是CPU(Central Processing Unit:中央处理器)、GPU(Graphics ProcessingUnit:图形处理器)、DSP(Digital Signal Processor:数字信号处理器)等处理器。处理部22也可以执行存储于RAM(Random Access Memory:随机存取存储器)等存储器的程序。另外,处理部22也可以包括ASIC(Application Specific Integrated Circuit:专用集成电路)、FPGA(Field Programable Gate Array:现场可编程门阵列)等电子电路。

通信部21从信息处理装置10接受识别信息11以及项目信息12。识别信息11是识别由用户进行的交易的识别信息。识别信息11有时被称为事务ID。项目信息12是交易的执行结果所包含的多个项目信息中的由用户指定的项目信息。指定的项目信息也可以是两个以上。例如,项目信息12是表示所购买的商品或者服务的名称的项目信息或者表示购买金额的项目信息。

但是,信息处理装置10也可以不将交易的执行结果所包含的全部的项目信息发送到信息处理装置20,能够隐藏不用于验证的一部分项目信息。例如,在交易的执行结果中包含交易执行者的用户ID的情况下,信息处理装置10也可以不将用户ID发送到信息处理装置20。

处理部22验证所指定的项目信息12的真实性。此时,处理部22参照存储部30。存储部30针对多个交易中的每一个交易,将识别交易的识别信息和多个隐匿信息建立对应地存储。识别信息以及多个隐匿信息例如在交易执行时由交易系统记录。另外,识别信息以及多个隐匿信息例如记录于耐改善性高的分布式数据库即区块链。区块链有时被称为分布式账本。

多个隐匿信息与交易的执行结果所包含的多个项目信息对应。一个隐匿信息通过将一个项目信息隐匿化而生成。隐匿信息被生成为难以仅根据隐匿信息推测原来的项目信息。例如,隐匿信息是利用散列函数根据项目信息计算的散列值。另外,例如,隐匿信息是对项目信息进行加密后的密文。在隐匿信息的生成中,也可以除了项目信息之外,还使用随机数。例如,交易系统按照每个项目选择随机数,将所选择的随机数与项目信息一并通知给信息处理装置10。在存储部30中存储隐匿信息的项目也可以是形成交易的执行结果的多个项目中的一部分。

存储部30针对某个交易存储识别信息31以及隐匿信息32、33。隐匿信息32通过将交易的执行结果所包含的一个项目信息隐匿化而生成。例如,隐匿信息32与表示购买的商品或者服务的名称的项目信息对应。隐匿信息33通过将与隐匿信息32不同的一个项目信息隐匿化而生成。例如,隐匿信息33与表示购买金额的项目信息对应。

处理部22参照存储部30,获取与识别信息11对应的多个隐匿信息中的至少与项目信息12对应的隐匿信息。此时,处理部22也可以获取与识别信息11对应的多个隐匿信息的全部。例如,在识别信息11和识别信息31相同的情况下,处理部22从存储部30获取与识别信息31建立对应的隐匿信息32、33。在项目信息12是购买金额的项目的项目信息的情况下,处理部22也可以从存储部30仅获取隐匿信息33。

处理部22基于所指定的项目信息12和与和项目信息12相同的项目相关的隐匿信息33之间的对应关系,验证项目信息12的真实性。例如,处理部22将项目信息12隐匿化,判定根据项目信息12生成的隐匿信息与隐匿信息33是否一致。处理部22也可以计算项目信息12的散列值,判定项目信息12的散列值与隐匿信息33是否一致。在隐匿信息一致的情况下,验证成功,判定为所提示的项目信息12是真实的。在隐匿信息不一致的情况下,验证失败,判定为所提示的项目信息12是虚假的。

在隐匿信息33的生成中使用随机数的情况下,信息处理装置10也可以向信息处理装置20还发送随机数。处理部22也可以使用接收到的随机数来将项目信息12隐匿化,并与隐匿信息33进行比较。

另外,信息处理装置10也可以代替发送随机数,而将零知识证明信息发送到信息处理装置20,该零知识证明信息表示信息处理装置10知晓用于将项目信息12转换为隐匿信息33的随机数。该零知识证明信息是数值的集合,并且是不知道正确的随机数而很难与项目信息12以及隐匿信息33匹配地生成的信息。处理部22例如通过将项目信息12、隐匿信息33以及零知识证明信息输入到验证算法,来确认零知识证明信息正确,作为其结果,认定为项目信息12真实。

处理部22输出项目信息12的验证结果。例如,处理部22将验证结果显示于显示装置。另外,例如,处理部22将验证结果保存于非易失性储存器。另外,例如,处理部22将验证结果发送到其它的信息处理装置。

如以上说明那样,第一实施方式的信息处理装置20接受识别交易的识别信息11、和交易的执行结果所包含的多个项目信息中的由用户指定的项目信息12。信息处理装置20参照存储部30,获取与识别信息11建立对应的隐匿信息33。信息处理装置20基于项目信息12与隐匿信息33之间的对应关系,验证项目信息12的真实性。

由此,信息处理装置20能够确认从信息处理装置10提示的项目信息12是交易的执行结果所包含的真实的项目信息,未被篡改。例如,信息处理装置20能够确认从信息处理装置10报告的交易对象物的名称、交易金额是真实的,未被篡改。

另外,信息处理装置10也可以不将交易的执行结果所包含的全部的项目信息发送到信息处理装置20,发送成为基于信息处理装置20的验证的对象的一部分项目信息即可。另外,存储部30按照每个项目存储隐匿信息代替项目信息。因此,信息处理装置20针对由识别信息11识别的交易,并非从存储部30获取项目信息本身。因而,抑制交易执行者的个人信息等秘密信息向验证者泄露的风险。

例如,交易的执行结果有时包含交易系统对交易执行者赋予的用户ID。若在项目信息12的验证时信息处理装置10也向信息处理装置20发送用户ID,则验证者会知晓交易执行者的用户ID。另外,若与识别信息11建立对应地将用户ID本身存储于存储部30,则通过参照存储部30,验证者会知晓交易执行者的用户ID。在该情况下,验证者有可能能够参照交易执行者过去进行的其它交易的记录。与此相对,在第一实施方式中,抑制交易执行者的用户ID的泄露。

[第二实施方式]

接下来,对第二实施方式进行说明。

图2是表示第二实施方式的信息处理系统的例子的图。

第二实施方式的信息处理系统包括与网络60连接的协作系统61、区块链系统62、63以及终端装置100、200。网络60可以包含LAN,也可以包含互联网。协作系统61具有包含服务器装置300的多个服务器装置。区块链系统62具有包含服务器装置400的多个服务器装置。区块链系统63具有包含服务器装置500的多个服务器装置。

终端装置100与第一实施方式的信息处理装置10对应。终端装置200与第一实施方式的信息处理装置20对应。服务器装置300或者服务器装置300所包含的存储装置与第一实施方式的存储部30对应。

协作系统61以及区块链系统62、63分别执行交易,并将交易的执行结果记录于区块链。协作系统61根据来自用户的交易请求,使多个区块链系统协作来实现一系列的交易。区块链系统62、63分别根据来自协作系统61的请求执行特定的种类的交易。协作系统61也可以被称为连接链,区块链系统62、63也可以被称为端部链。

例如,区块链系统62是使金钱在用户间移动的结算系统。区块链系统63是使表示服务利用权的令牌在用户间移动的服务买卖系统。协作系统61向区块链系统63请求从一个用户向另一个用户的令牌的移动,向区块链系统62请求从另一个用户向一个用户的金钱的移动。由此,协作系统61实现服务利用权的买卖契约。

区块链系统62、63是相互独立的交易系统,对用户发行独自的用户ID。另外,协作系统61以及区块链系统62、63对交易赋予独自的事务ID。此外,在第二实施方式中,协作的多个交易系统是区块链系统,但也可以是其它种类的信息处理系统(链下系统)。

区块链是耐篡改性高的分布式数据库。区块链包括连结的多个区块。各区块包括一个以上的交易数据亦即事务。各事务包括识别交易的事务ID,包括一个以上(通常,两个以上)的项目名与项目值的对。另外,各区块包括前一个区块的散列值。新产生的事务被追加到区块链的末尾的区块。

服务器装置300、400、500是执行交易并且管理区块链的服务器计算机。服务器装置300根据来自终端装置100的交易请求调取服务器装置400、500。服务器装置300生成表示服务器装置400、500的信息处理形成一系列的交易的事务,并记录于协作系统61具有的区块链。协作系统61所包含的多个服务器装置具有相同的区块链的复制。

服务器装置400根据来自服务器装置300的交易请求,进行形成一系列的交易的一部分的单独的信息处理。服务器装置400生成表示区块链系统62担当的交易的执行结果的事务,并记录于自身的区块链。区块链系统62所包含的多个服务器装置具有相同的区块链的复制。同样地,服务器装置500根据来自服务器装置300的交易请求,进行形成一系列的交易的一部分的单独的信息处理。服务器装置500生成表示区块链系统63担当的交易的执行结果的事务,并记录于自身的区块链。区块链系统63所包含的多个服务器装置具有相同的区块链的复制。

另外,服务器装置300根据来自协作系统61的外部的参照请求,从协作系统61具有的区块链读出事务并发送。在参照请求中,例如,指定事务ID。同样地,服务器装置400根据来自区块链系统62的外部的参照请求,从区块链系统62具有的区块链读出事务并发送。服务器装置500根据来自区块链系统63的外部的参照请求,从区块链系统63具有的区块链读出事务并发送。

终端装置100是交易执行者使用的客户端计算机。终端装置100例如是智能手机、平板终端、笔记本型PC或者台式PC。终端装置100向协作系统61发送交易请求。交易请求包括交易种类和用于交易执行的输入数据。输入数据例如包括交易当事人的用户ID、交易对象物的标识符以及交易金额。终端装置100从协作系统61接收表示交易的执行结果的交易数据。

另外,终端装置100根据来自交易执行者的指示,将用于主张交易数据所包含的特定的项目值的合法性的证明信息发送到终端装置200。例如,在交易执行者购买业务上使用的服务利用权的情况下,对交易执行者所属的公司请求垫付的购买费用的支付。此时,终端装置100将包含服务名以及购买金额的证明信息发送到终端装置200。

终端装置200是验证者使用的客户端计算机。验证者例如是公司的会计主管。终端装置200例如是智能手机、平板终端、笔记本型PC或者台式PC。终端装置200从终端装置100接收证明信息。终端装置200基于证明信息访问协作系统61,获取记录于协作系统61的事务。终端装置200也可以访问区块链系统62、63。

终端装置200将接收到的证明信息和记录的事务进行对照,验证证明信息所包含的项目值的真实性。例如,终端装置200确认从终端装置100接收的服务名以及购买金额与记录于区块链的事务匹配。在验证成功的情况下,验证者判断为从终端装置100接收到的项目值未被篡改,来自交易执行者的请求合法。在验证失败的情况下,验证者判断为从终端装置100接收到的项目值有可能被篡改,来自交易执行者的请求非法。

图3是表示终端装置的硬件例的框图。

终端装置100具有与总线连接的CPU101、RAM102、HDD103、GPU104、输入接口105、介质阅读器106以及通信接口107。终端装置200以及服务器装置300、400、500也可以具有与终端装置100相同的硬件。

CPU101是执行程序的命令的处理器。CPU101将存储于HDD103的程序以及数据的至少一部分加载到RAM102,执行程序。终端装置100也可以具有多个处理器。处理器的集合也可以被称为多处理器或者仅被称为“处理器”。

RAM102是暂时存储在CPU101中执行的程序以及在CPU101中用于运算的数据的易失性半导体存储器。终端装置100也可以具有RAM以外的种类的易失性存储器。

HDD103是存储OS(Operating System:操作系统)、中间件、应用软件等软件的程序以及数据的非易失性储存器。终端装置100也可以具有闪存、SSD(Solid State Drive:固态驱动器)等其它种类的非易失性储存器。

GPU104与CPU101协作来生成图像,并向与终端装置100连接的显示装置111输出图像。显示装置111例如是CRT(Cathode Ray Tube:阴极射线管)显示器、液晶显示器、有机EL(Electro Luminescence:电致发光)显示器或者投影仪。此外,也可以在终端装置100连接有打印机等其它种类的输出设备。

输入接口105从与终端装置100连接的输入设备112接受输入信号。输入设备112例如是鼠标、触摸面板或者键盘。也可以在终端装置100连接有多个输入设备。

介质阅读器106是读取记录于记录介质113的程序以及数据的读取装置。记录介质113例如是磁盘、光盘或者半导体存储器。磁盘包括软盘(FD:Flexible Disk)以及HDD。光盘包括CD(Compact Disc:压缩光盘)以及DVD(Digital Versatile Disc:数字多功能光盘)。介质阅读器106将从记录介质113读取的程序以及数据复印至RAM102、HDD103等其它记录介质。所读取的程序有时由CPU101执行。

记录介质113也可以是便携式记录介质。记录介质113有时用于程序以及数据的分发。另外,记录介质113以及HDD103也可以被称为计算机可读取的记录介质。

通信接口107与网络60连接,经由网络60与终端装置200、服务器装置300通信。通信接口107可以是与开关、路由器等有线通信装置连接的有线通信接口,也可以是与基站、接入点等无线通信装置连接的无线通信接口。

接下来,对记录于协作系统61的事务的格式和从终端装置100向终端装置200发送的证明信息的格式进行说明。

图4是表示使用了区块链的第一交易证明的例子的图。

区块链系统62具有的区块链430包括事务431、432。事务431、432是表示用户间的汇款的事务。事务431、432分别包括事务ID、汇款源用户ID、汇款目的地用户ID以及金额。

区块链系统63具有的区块链530包括事务531、532、533。事务531是表示宾馆利用权的事务。事务531包括事务ID、令牌ID、宾馆名以及宾馆地址。事务532、533是表示用户间的令牌的转让的事务。事务532、533分别包括事务ID、转让人ID、受让人ID以及令牌ID。事务532所包含的令牌ID与事务531的令牌ID相同。

协作系统61具有的区块链330包括事务331、332。事务331将事务431、532建立关联。事务332将事务432、533建立关联。事务331、332分别包括用户ID、区块链系统62的事务ID以及区块链系统63的事务ID。

协作系统61以及区块链系统62、63分别对各用户赋予独自的用户ID。因而,事务331的用户ID、事务431的汇款源用户ID、事务532的受让人ID虽然是赋予到相同的交易执行者的标识符,但是是不同的值。事务431的事务ID可以由区块链系统62赋予,也可以由协作系统61指定。事务532的事务ID可以由区块链系统63赋予,也可以由协作系统61指定。

终端装置100向终端装置200发送消息131。消息131针对用户ID、金额以及宾馆名的每一个,包括项目名与项目值的对。消息131所包含的用户ID是事务331的用户ID。消息131所包含的金额是事务431的金额。消息131所包含的宾馆名是事务531的宾馆名。

在该情况下,终端装置200基于消息131所包含的用户ID,从区块链330读出事务331。终端装置200基于事务331所包含的事务ID,从区块链430读出事务431。另外,终端装置200从区块链530读出事务532,基于事务532所包含的令牌ID读出事务531。

而且,终端装置200确认消息131所包含的金额与事务431的金额相同,并且消息131所包含的宾馆名与事务531的宾馆名相同。由此,终端装置200判断为消息131的各项目值未被篡改,是真实的。

但是,终端装置200从区块链430读出事务431,因此知晓区块链系统62中的交易执行者的用户ID。因而,交易执行者进行的其它的交易的事务有可能从区块链430被读出。同样地,终端装置200从区块链530读出事务532,因此知晓区块链系统63中的交易执行者的用户ID。因而,交易执行者进行的其它的交易的事务有可能从区块链530被读出。这样,由于消息131的发送,存在验证对象外的交易执行者的个人信息向验证者泄露的风险。

作为一个方法,也有不向协作系统61记录区块链系统62、63的事务ID本身,而是向协作系统61记录事务ID的散列值的方法。终端装置100将记录有验证对象的项目值的区块链系统的事务ID发送到终端装置200即可。由此,终端装置200不读出不具有验证对象的项目值的区块链系统的事务,限定与一系列的交易相关的项目值中的对验证者公开的项目值的范围。

但是,由上述方法保护的项目值以区块链系统为单位。在记录于某个区块链系统的项目值为验证对象的情况下,该区块链系统的用户ID等相同区块链系统的其它的项目值不被保护。因此,在第二实施方式中,如以下那样变更协作系统61的事务的格式和从终端装置100向终端装置200发送的消息的格式。

图5是表示使用了区块链的第二交易证明的例子的图。

协作系统61按照每个交易种类存储设定信息。设定信息由协作系统61的管理者预先制成。设定信息规定记录于区块链系统62、63的事务所包含的项目中的、记录于协作系统61的事务所包含的项目。

由设定信息规定的项目也可以是区块链系统62、63的事务所包含的全部的项目。因而,由设定信息规定的项目可以包含区块链系统62、63的事务ID,也可以包含区块链系统62、63中的交易执行者的用户ID。另外,从交易证明的形态以及秘密信息保护的观点出发,由设定信息规定的项目也可以被限定为一部分项目。因而,由设定信息规定的项目可以不包含区块链系统62、63的事务ID,也可以不包含区块链系统62、63中的交易执行者的用户ID。

设定信息333是设定信息的例子。设定信息333规定区块链系统62的汇款源用户ID、汇款目的地用户ID及金额、和区块链系统63的转让人ID、受让人ID、令牌ID、宾馆名及宾馆地址。

事务334接受区块链系统62的事务431以及区块链系统63的事务532,并记录于协作系统61。事务334包括协作系统61赋予的事务ID。另外,事务334针对设定信息333所规定的多个项目的每一个,包括项目名与承诺的对。

承诺是以难以推测原来的项目值的方式从原来的项目值转换后的隐匿信息。第二实施方式的承诺是原来的项目值的散列值。从项目值向散列值的转换使用SHA(SecureHash Algorithm:安全散列算法)-256等散列函数。此外,如后所述,承诺的生成有时使用协作系统61选择的随机数。

事务334包括事务431的汇款源用户ID的承诺、汇款目的地用户ID的承诺以及金额的承诺。另外,事务334包括事务532的转让人ID的承诺、受让人ID的承诺以及令牌ID的承诺。另外,事务334包括事务531的宾馆名的承诺以及宾馆地址的承诺。这样,在事务334中收集有与一系列的交易相关的各种项目值的承诺。

终端装置100向终端装置200发送消息132。消息132包括事务334的事务ID、事务334所包含的项目中的成为验证对象的一部分项目的项目名与项目值的对。在图5的例子中,验证对象项目是结算金额和宾馆名。此外,如后所述,从终端装置100向终端装置200发送的消息有时包含随机数,有时包含用于证明终端装置100知晓正确的随机数的信息。

终端装置200从终端装置100接收消息132。于是,终端装置200从协作系统61具有的区块链330读出与所指定的连接ID对应的事务334。另外,终端装置200将消息132所包含的各项目值转换为承诺。

终端装置200将根据消息132生成的承诺与事务334所包含的承诺按每个项目进行比较。此处,终端装置200确认结算金额的承诺与事务334所包含的承诺一致,并且宾馆名的承诺与事务334所包含的承诺一致。由此,终端装置200判断为消息132所包含的各项目值未被篡改,是真实的。

此时,终端装置200可以不访问区块链系统62、63。终端装置200不获取事务431的事务ID,不从区块链系统62读出事务431。因而,区块链系统62中的用户ID等、事务431的其它的项目值被保护。另外,终端装置200不获取事务532的事务ID,不从区块链系统63读出事务532。因而,区块链系统63中的用户ID等、事务532的其它的项目值被保护。

此外,即使区块链系统62、63的事务ID、用户ID是协作系统61的保存对象项目,该事务ID、用户ID的项目值也被隐匿化。因而,终端装置200即使读出事务334的整体,也不会得到验证对象外的事务ID、用户ID的项目值。

接下来,对信息处理系统的功能以及处理步骤进行说明。

图6是表示信息处理系统的功能例的框图。

终端装置100具有交易数据存储部121、交易请求部122以及交易证明部123。交易数据存储部121例如使用RAM102或者HDD103来安装。交易请求部122以及交易证明部123例如使用CPU101、通信接口107以及程序来安装。

交易数据存储部121存储从服务器装置300接收的交易数据。交易数据包括识别所执行的交易的事务ID。该事务ID是由协作系统61赋予的。另外,交易数据包括与交易相关的多个项目各自的项目值。该交易数据所包含的项目值未被转换为承诺。如后所述,交易数据存储部121存储的交易数据有时包含各项目的随机数。

交易请求部122根据来自交易执行者的指示,向服务器装置300发送交易请求。交易请求包括交易种类和表示交易内容的输入数据。交易请求部122从服务器装置300接收交易数据,作为对交易请求的响应。交易请求部122将接收到的交易数据保存于交易数据存储部121。

交易证明部123根据来自交易执行者的指示,生成用于证明交易数据所包含的项目值的真实性的证明信息,并将证明信息发送到终端装置200。交易证明部123从存储于交易数据存储部121的交易数据中提取事务ID和由交易执行者选择的项目的项目值,并插入到证明信息中。如后所述,证明信息有时包含由交易执行者选择的项目的随机数。另外,交易证明部123有时代替将随机数本身插入到证明信息中,而将表示知晓该随机数的零知识证明信息插入到证明信息中。

终端装置200具有证明信息接收部221以及交易验证部222。证明信息接收部221以及交易验证部222例如使用终端装置200具有的CPU、通信接口以及程序来安装。

证明信息接收部221从终端装置100接收证明信息。于是,证明信息接收部221使用证明信息所包含的事务ID访问服务器装置300,从服务器装置300接收事务。此时,证明信息接收部221可以从服务器装置300读出事务整体,也可以从服务器装置300仅读出验证对象项目的承诺。

交易验证部222验证从终端装置100接收的项目值的真实性。交易验证部222将从终端装置100接收的项目值分别转换为承诺。交易验证部222按每个项目,将所生成的承诺和事务所包含的承诺进行比较。在两者一致的情况下,验证成功,在两者不一致的情况下,验证失败。如后所述,交易验证部222有时根据项目值和随机数生成承诺。另外,交易验证部222有时代替将项目值转换为承诺,而根据项目值、事务所包含的承诺以及零知识证明信息来验证项目值的真实性。

服务器装置300具有设定信息存储部321、区块链存储部322、交易执行部323、事务记录部324以及事务发送部325。设定信息存储部321以及区块链存储部322例如使用服务器装置300具有的RAM或者HDD来安装。交易执行部323、事务记录部324以及事务发送部325例如使用服务器装置300具有的CPU、通信接口以及程序来安装。

设定信息存储部321按每个交易种类存储设定信息。设定信息规定记录于服务器装置300的事务中包含的项目。设定信息所规定的项目是记录于服务器装置400、500的事务所包含的项目的全部或者一部分。另外,设定信息存储部321包含与从服务器装置400、500获取设定信息所规定的项目的项目值的方法相关的信息。根据项目值,有时难以仅通过指定事务ID获取一次事务而得到,有时通过利用获取到的事务所包含的项目值获取其它的事务而得到。

区块链存储部322存储协作系统61具有的区块链。该区块链所包含的事务包括协作系统61赋予的事务ID、设定信息所规定的多个项目各自的项目名与承诺的对。如后所述,承诺除了项目值之外,有时还使用随机数来生成。

交易执行部323从终端装置100接收交易请求。交易执行部323根据接收到的交易请求所包含的交易种类,生成区块链系统用的交易请求,并将所生成的交易请求发送到服务器装置400、500。发送到服务器装置400、500的交易请求有时包括从终端装置100接收的交易请求所包含的输入数据的全部或者一部分。

交易执行部323将记录于服务器装置400、500的事务的事务ID通知给事务记录部324。区块链系统用的事务ID有时由交易执行部323决定并对服务器装置400、500指定。另外,区块链系统用的事务ID有时由服务器装置400、500决定并报告给交易执行部323。交易执行部323从事务记录部324获取交易数据,并将获取到的交易数据发送到终端装置100,作为对交易请求的响应。

事务记录部324向区块链存储部322的区块链记录事务。事务记录部324从交易执行部323获取区块链系统62、63的事务ID,从设定信息存储部321读出与交易种类对应的设定信息。事务记录部324使用事务ID获取服务器装置400、500的事务,从事务提取设定信息规定的项目的项目值。

事务记录部324生成协作系统61的事务ID,生成包括所生成的事务ID、以及设定信息所规定的多个项目各自的项目名与项目值的对的交易数据。如后所述,事务记录部324有时按每个项目选择随机数,将随机数包含于交易数据中。事务记录部324将交易数据输出到交易执行部323。另外,事务记录部324将交易数据的项目值分别转换为承诺,生成协作系统61的事务。事务记录部324将所生成的事务记录于区块链。

事务发送部325根据来自终端装置200的请求,从区块链存储部322的区块链读出事务。事务发送部325将读出的事务的整体或者由终端装置200指定的项目的承诺发送到终端装置200。

服务器装置400具有区块链存储部421、交易执行部422以及事务发送部423。区块链存储部421例如使用服务器装置400具有的RAM或者HDD来安装。交易执行部422以及事务发送部423例如使用服务器装置400具有的CPU、通信接口以及程序来安装。服务器装置500也可以具有与服务器装置400相同的模块。

区块链存储部421存储区块链系统62具有的区块链。该区块链所包含的事务表示根据来自服务器装置300的交易请求而由服务器装置400执行的交易。

交易执行部422从服务器装置300接收交易请求。交易执行部422使用接收到的交易请求所包含的输入数据执行交易,生成表示区块链系统62中的交易结果的事务。例如,交易执行部422生成使指定的金额的金钱在指定的用户间移动的事务。交易执行部422将事务记录于区块链。

事务发送部423根据来自服务器装置300的请求,从区块链存储部421的区块链读出事务。事务发送部423将读出的事务发送到服务器装置300。

图7是表示交易执行的步骤例的流程图。

(S10)交易请求部122根据来自交易执行者的输入,生成包含交易种类以及输入数据的交易请求,向服务器装置300发送交易请求。

(S11)交易执行部323从终端装置100接收交易请求。交易执行部323根据接收到的交易请求表示的交易种类和输入数据,确定分别向区块链系统62、63请求的交易。交易执行部323生成发给区块链系统62的交易请求并发送到服务器装置400。另外,交易执行部323生成发给区块链系统63的交易请求并发送到服务器装置500。

(S12)交易执行部422从服务器装置300接收交易请求。交易执行部422基于接收到的交易请求所包含的输入数据生成事务,向事务赋予事务ID。交易执行部422将生成的事务写入区块链系统62具有的区块链。服务器装置500也执行与服务器装置400相同的处理。

(S13)交易执行部422获取区块链系统62、63各自的事务ID。此处,区块链系统用的事务ID有时由协作系统61决定。在该情况下,交易执行部323向服务器装置400、500指定事务ID。另外,区块链系统用的事务ID有时由各区块链系统决定。在该情况下,交易执行部323从服务器装置400、500接收事务ID。

(S14)事务记录部324从设定信息存储部321读出与来自终端装置100的交易请求表示的交易种类对应的设定信息。

(S15)事务记录部324使用在步骤S13中获取到的事务ID,生成读出区块链系统62、63的事务的事务请求,并发送到服务器装置400、500。

(S16)事务发送部423从服务器装置300接收事务请求。事务发送部423从区块链读出具有所指定的事务ID的事务,并发送到服务器装置300。服务器装置500也执行与服务器装置400相同的处理。

此处,事务记录部324有时不在指定了事务ID的仅一次事务请求中,收集设定信息所规定的全部的项目的项目值。在该情况下,事务记录部324有时使用获取到的事务所包含的项目值(例如,令牌ID),将追加的事务请求发送到服务器装置400、500。这样的表示项目值的收集方法的信息也可以存储于设定信息存储部321。

(S17)事务记录部324决定作为协作系统61的事务ID。另外,事务记录部324从由服务器装置400、500收集的事务中提取设定信息所规定的项目的项目值。然后,事务记录部324生成交易数据。交易数据包括协作系统61的事务ID。另外,交易数据针对多个项目的每一个包括项目名与项目值的对。

(S18)事务记录部324针对交易数据所包含的多个项目的每一个,根据项目值计算承诺。例如,事务记录部324将项目值输入到散列函数来计算散列值。

但是,如后所述,事务记录部324有时根据项目值和随机数生成承诺。在该情况下,事务记录部324按每个项目选择随机数。例如,事务记录部324在项目值的末尾结合随机数并输入到散列函数。另外,例如,事务记录部324计算项目值与随机数的积,并将积输入到散列函数。

(S19)事务记录部324生成事务。事务相当于将交易数据的项目值置换为承诺而成的。因而,事务包括协作系统61的事务ID。另外,事务针对多个项目的每一个包括项目名与承诺的对。事务记录部324将事务写入区块链。

(S20)交易执行部323将步骤S17的交易数据发送到终端装置100。但是,在承诺的生成中使用随机数的情况下,发送到终端装置100的交易数据还包括与多个项目对应的多个随机数。

(S21)交易请求部122从服务器装置300接收交易数据。交易请求部122将接收到的交易数据保存于交易数据存储部121。

图8是表示交易证明的步骤例的流程图。

(S30)交易证明部123从交易执行者接受想要证明真实性的项目的指定。交易证明部123从交易数据存储部121读出交易数据。

(S31)交易证明部123从交易数据提取一部分信息生成证明信息。证明信息包括事务ID、以及由交易执行者指定的项目的项目名与项目值的对。如后所述,证明信息有时包含由交易执行者指定的项目的随机数。另外,证明信息有时包含零知识证明信息来代替所指定的项目的随机数。该零知识证明信息是证明终端装置100知晓满足根据项目值和随机数生成的承诺与记录于协作系统61的内容一致这样的条件的随机数的信息。交易证明部123将所生成的证明信息发送到终端装置200。

(S32)证明信息接收部221从终端装置100接收证明信息。证明信息接收部221指定证明信息所包含的事务ID,并向服务器装置300发送承诺请求。此时,证明信息接收部221可以获取与指定的事务ID对应的事务整体,也可以限定于与证明信息所包含的项目名建立对应的承诺来获取。

(S33)事务发送部325从协作系统61具有的区块链读出具有由终端装置100指定的事务ID的事务。事务发送部325将事务的整体或者其中的一部分的承诺发送到终端装置200。

(S34)交易验证部222根据从终端装置100接收的证明信息所包含的项目值计算承诺。例如,交易验证部222将项目值输入到散列函数来计算散列值。关于所使用的散列函数,在终端装置200与服务器装置300之间预先达成协议。

但是,如后所述,交易验证部222有时根据项目值和随机数生成承诺。例如,交易验证部222将证明信息所包含的随机数结合在项目值的末尾并输入到散列函数。另外,例如,交易验证部222计算项目值与随机数的积,并将积输入到散列函数。

(S35)交易验证部222按每个项目,将在步骤S34中计算出的承诺和从服务器装置300接收的承诺进行比较。交易验证部222在两个承诺一致的情况下,判定为验证成功,在两个承诺不一致的情况下,判定为验证失败。

但是,如后所述,虽然协作系统61具有的承诺依赖于随机数,但有时不从终端装置100提示随机数本身。在该情况下,交易验证部222将从终端装置100提示的项目值、记录于协作系统61的承诺、以及从终端装置100接收的零知识证明信息输入到特定的验证函数。交易验证部222在零知识证明信息的验证成功的情况下,认定为终端装置100知晓正确的随机数,判断为项目值的验证成功。另一方面,交易验证部222在零知识证明信息的验证失败的情况下,认定为终端装置100不知晓正确的随机数,判断为项目值的验证失败。

(S36)交易验证部222输出表示所提示的项目值的验证成功与否的验证结果。例如,交易验证部222将验证结果显示于终端装置200的显示装置。另外,例如,交易验证部222将验证结果发送到终端装置100或者其它的信息处理装置。另外,例如,交易验证部222将验证结果保存于非易失性储存器。

接下来,对承诺的生成中使用随机数的情况进行说明。

图9是表示使用了区块链的第三交易证明的例子的图。

事务335记录于协作系统61具有的区块链330。事务335包括协作系统61赋予的事务ID。另外,事务335针对设定信息333所规定的多个项目的每一个,包括项目名与承诺的对。

该承诺是根据原来的项目值和随机数计算的散列值。例如,服务器装置300在原来的项目值的末尾结合随机数并输入到散列函数。另外,例如,服务器装置300将原来的项目值与随机数的积输入到散列函数。服务器装置300优选针对每个项目选择不同的随机数。在交易执行后,从服务器装置300向终端装置100除了通知项目值之外,还通知随机数。

终端装置100向终端装置200发送消息133。消息133包括事务335的事务ID、事务335所包含的项目中的成为验证对象的一部分项目的项目名、项目值、随机数。

终端装置200从终端装置100接收消息133。于是,终端装置200从协作系统61具有的区块链330读出与连接ID对应的事务335。另外,终端装置200根据消息133所包含的项目值和随机数计算承诺。终端装置200将根据消息133生成的承诺和事务335所包含的承诺按每个项目进行比较。

根据项目,有时项目值的候补较少。在不使用随机数的情况下,终端装置200通过循环计算项目值的候补的承诺并与事务335的承诺进行比较,从而有时能够推测未由终端装置100公开的项目值。与此相对,在使用随机数的情况下,终端装置200难以通过循环来推测未由终端装置100公开的项目值。

图10是表示使用了区块链的第四交易证明的例子的图。

在协作系统61具有的区块链330中记录有上述的事务335。因而,在协作系统61的承诺中使用随机数。与此相对,终端装置100将不包含随机数的消息132发送到终端装置200。另外,终端装置100除了消息132之外,还将零知识证明信息134发送到终端装置200。

关于零知识证明,在以下的文献中也有记载。Bryan Parno,Jon Howell,CraigGentry and Mariana Raykova,"Pinocchio:Nearly Practical VerifiableComputation",Proc.of the 2013IEEE Symposium on Security and Privacy,May 19,2013。

零知识证明信息134是用于不公开随机数r3、r7本身地证明终端装置100知晓与金额对应的随机数r3和与宾馆名对应的随机数r7的信息。零知识证明信息134包括由特定的算法生成的数值的集合。例如,终端装置100根据验证对象项目的项目值及随机数、与使用的散列函数相应的参数,生成零知识证明信息134。零知识证明信息134也可以按每个项目分开生成。

未从终端装置100公开随机数,因此终端装置200不将消息132所包含的项目值转换为承诺。代替此,终端装置200根据消息132所包含的项目值、事务335所包含的承诺、零知识证明信息134,验证知晓正确的随机数这样的终端装置100的主张。该零知识证明利用不知晓正确的随机数的装置能够偶然生成与项目值及承诺匹配的零知识证明信息134的概率足够小这一性质。终端装置100通过特定的算法,生成满足这样的性质的数值的集合作为零知识证明信息134。

若终端装置100向终端装置200发送随机数,则验证者对于验证对象项目知晓真实的项目值以及随机数。在该情况下,验证者有可能能够关于该交易,进一步对其它的验证者冒充成交易执行者来进行行动。与此相对,终端装置100将零知识证明信息代替随机数发送到终端装置200的情况下,抑制使用随机数的冒充。

如以上说明那样,在第二实施方式的信息处理系统中,经由协作系统61而区块链系统62、63协作执行一系列的信息处理。由此,灵活地执行多种交易。另外,表示交易的执行结果的事务记录于区块链。由此,事务的可靠性提高。另外,通过协作系统61,分布记录于区块链系统62、63的事务相关联。由此,交易的验证变得容易。

另外,终端装置200参照记录于协作系统61的事务验证从终端装置100接收的项目值。由此,终端装置100相对于终端装置200,能够证明项目值的真实性。

另外,协作系统61从区块链系统62、63收集与交易种类相应的项目值,以项目为单位将项目值的承诺记录于区块链。由此,终端装置100能够将交易数据所包含的多个项目值中的发送到终端装置200的项目值限定为验证对象的项目值。另外,抑制终端装置200从协作系统61获取验证对象外的项目值。因此,交易执行者的秘密信息向验证者泄露的风险降低。

另外,终端装置200即使参照协作系统61的事务,也难以确定信息收集源的区块链系统62、63的事务。因此,秘密信息从区块链系统62、63泄露的风险也被抑制。另外,与终端装置100向终端装置200发送特定的区块链系统的事务ID的情况相比,能够以区块链系统为单位细粒度地保护项目值。

另外,在承诺的生成中使用随机数,从而根据记录于协作系统61的承诺通过循环来推测原来的项目值的风险降低。另外,从终端装置100向终端装置200发送零知识证明信息来代替随机数,从而基于验证者的冒充的风险降低。

上述内容仅表示本发明的原理。进一步,多种变形、变更对于本领域技术人员来说是可能的,本发明如上述所示,并不限定于说明的准确的结构以及应用例,对应的全部的变形例以及等效物被视为基于附加的权利要求及其等效物的本发明的范围。

附图标记说明:10、20…信息处理装置;11、31…识别信息;12…项目信息;21…通信部;22…处理部;30…存储部;32、33…隐匿信息。

技术分类

06120116338148