(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-04-08
(45)【発行日】2025-04-16
(54)【発明の名称】制御方法、制御装置、および、プログラム
(51)【国際特許分類】
H04L 9/32 20060101AFI20250409BHJP
【FI】
H04L9/32 200Z
(21)【出願番号】P 2022517034
(86)(22)【出願日】2021-04-19
(86)【国際出願番号】 JP2021015890
(87)【国際公開番号】W WO2021215401
(87)【国際公開日】2021-10-28
【審査請求日】2024-01-25
(32)【優先日】2020-04-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】514136668
【氏名又は名称】パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
【氏名又は名称原語表記】Panasonic Intellectual Property Corporation of America
(74)【代理人】
【識別番号】100109210
【氏名又は名称】新居 広守
(74)【代理人】
【識別番号】100137235
【氏名又は名称】寺谷 英作
(74)【代理人】
【識別番号】100131417
【氏名又は名称】道坂 伸一
(72)【発明者】
【氏名】田口 雅裕
(72)【発明者】
【氏名】海上 勇二
(72)【発明者】
【氏名】廣瀬 雄揮
(72)【発明者】
【氏名】渕上 哲司
【審査官】中里 裕正
(56)【参考文献】
【文献】特表2018-525729(JP,A)
【文献】米国特許出願公開第2018/0276663(US,A1)
【文献】米国特許出願公開第2017/0075941(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
分散台帳を保有している複数の装置を備える分散台帳システムにおいて、当該複数の装置のうちの第一装置が実行する制御方法であって、
前記複数の装置のうちの前記第一装置と異なる第二装置から、近距離無線通信を介して前記第二装置の第二識別情報を受信し、
前記第一装置が有するトランザクションプールから選択したトランザクションデータと、前記第二識別情報と、前記第一装置の第一識別情報とを含むブロックを生成し、
生成した前記ブロックを、前記複数の装置が保有している前記分散台帳に格納する格納処理を実行する
制御方法。
【請求項2】
前記格納処理では、前記分散台帳に格納されているブロックのうち、前記第一装置と前記第二装置との近接無線通信に基づいて生成されたブロックの個数が少ないほど、より高い確率で、生成した前記ブロックを前記分散台帳に格納する
請求項1に記載の制御方法。
【請求項3】
前記格納処理では、前記分散台帳に格納されているブロックのうち、前記第一装置と前記第二装置との近接無線通信に基づいて生成されたブロックの個数が所定数以下である場合に、生成した前記ブロックを前記分散台帳に格納する
請求項1または2に記載の制御方法。
【請求項4】
前記格納処理では、前記分散台帳に格納されているブロックのうちの最新の所定数のブロックのうち、前記第一装置と前記第二装置との近接無線通信に基づいて生成されたブロックの個数が少ないほど、より高い確率で、生成した前記ブロックを前記分散台帳に格納する
請求項1または2に記載の制御方法。
【請求項5】
前記格納処理では、前記分散台帳に格納されているブロックのうちの最新の所定数のブロックのうち、前記第一装置と前記第二装置との近接無線通信に基づいて生成されたブロックの個数が所定数以下である場合に、生成した前記ブロックを前記分散台帳に格納する
請求項1または4に記載の制御方法。
【請求項6】
前記格納処理では、前記分散台帳に格納されているブロックのうちの最新のブロックが、前記第一装置と前記第二装置との近接無線通信に基づいて生成されたブロックである場合、生成した前記ブロックを前記分散台帳に格納することを禁止する
請求項1~5のいずれか1項に記載の制御方法。
【請求項7】
前記格納処理では、
生成した前記ブロックを前記分散台帳に格納する場合には、生成した前記ブロックを前記複数の装置に送信することによって、前記複数の装置が保有している前記分散台帳に格納させ、
生成した前記ブロックを前記分散台帳に格納しない場合には、生成した前記ブロックを前記複数の装置に送信しない
請求項1~6のいずれか1項に記載の制御方法。
【請求項8】
前記格納処理では、生成した前記ブロックを前記分散台帳に格納する場合には、
生成した前記ブロックを前記第二装置に送信することによって、送信した前記ブロックに前記第二装置の電子署名を付与させ、
前記第二装置の前記電子署名が付与された前記ブロックを受信し、
受信した前記ブロックに前記第一装置の電子署名を付与し、
前記第一装置および前記第二装置の前記電子署名が付与された前記ブロックを、前記複数の装置が保有している前記分散台帳に格納する
請求項1~7のいずれか1項に記載の制御方法。
【請求項9】
前記第二識別情報は、前記第二装置の秘密鍵を用いて生成された認証情報を含み、
前記第二識別情報を受信した場合には、
前記第二識別情報に含まれる前記認証情報を、前記第二装置の公開鍵を用いて検証し、検証が成功した場合に限り、前記ブロックを生成する
請求項1~8のいずれか1項に記載の制御方法。
【請求項10】
分散台帳を保有している複数の装置を備える分散台帳システムにおいて、当該複数の装置のうちの第一装置である制御装置であって、
前記複数の装置のうちの前記第一装置と異なる第二装置から、近距離無線通信を介して前記第二装置の第二識別情報を受信する近距離通信部と、
(a)前記第一装置が有するトランザクションプールから選択したトランザクションデータと、前記第二識別情報と、前記第一装置の第一識別情報とを含むブロックを生成し、
(b)生成した前記ブロックを、前記複数の装置が保有している前記分散台帳に格納する格納処理を実行する、制御部とを備える
制御装置。
【請求項11】
請求項1~9のいずれか1項に記載の制御方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御方法、制御装置、および、プログラムに関する。
【背景技術】
【0002】
分散台帳技術(例えばブロックチェーン技術)において、ブロックの生成時の承認を制御する手法として、Proof of Work(以下、PoW)またはProof of Stake(以下、PoS)などがある(例えば非特許文献1および2参照)。
【先行技術文献】
【非特許文献】
【0003】
【文献】Satoshi Nakamoto,“Bitcoin: A Peer-to-Peer Electronic Cash System”,[online],2008年,[令和3年4月1日検索],インターネット<URL:https://bitcoin.org/bitcoin.pdf>
【文献】Sunny King, Scott Nadal,“PPCoin: Peer-to-Peer Crypto-Currency with Proof-of-Stake”,[online],2012年,[令和3年4月1日検索],インターネット<URL:https://decred.org/research/king2012.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、PoWまたはPoS等の手法を用いる場合、装置が実行する分散台帳に関する処理の処理量が、装置ごとに偏重するという問題がある。
【0005】
そこで、本発明は、分散台帳システムにおける処理量の装置ごとの偏重を抑制する制御方法などを提供する。
【課題を解決するための手段】
【0006】
本発明の一態様に係る制御方法は、分散台帳を保有している複数の装置を備える分散台帳システムにおいて、当該複数の装置のうちの第一装置が実行する制御方法であって、前記複数の装置のうちの前記第一装置と異なる第二装置から、近距離無線通信を介して前記第二装置の第二識別情報を受信し、前記第一装置が有するトランザクションプールから選択したトランザクションデータと、前記第二識別情報と、前記第一装置の第一識別情報とを含むブロックを生成し、生成した前記ブロックを、前記複数の装置が保有している前記分散台帳に格納する格納処理を実行する制御方法である。
【0007】
なお、これらの包括的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、装置、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【0008】
本発明によれば、分散台帳システムにおける処理量の装置ごとの偏重を抑制することができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施の形態1におけるブロックチェーンシステムの全体の構成を示す説明図である。
【
図2】
図2は、実施の形態1におけるノードの機能構成を示す説明図である。
【
図3】
図3は、実施の形態1におけるブロックのデータ構造を示す説明図である。
【
図4】
図4は、実施の形態1におけるブロックの生成および格納の処理を示すシーケンス図である。
【
図5】
図5は、実施の形態1におけるブロックの共有および格納の処理を示すシーケンス図である。
【
図6】
図6は、実施の形態2におけるブロックの生成および格納の処理を示すフロー図である。
【
図7】
図7は、変形例における制御装置の機能構成を示す説明図である。
【
図8】
図8は、変形例における制御方法を示すフロー図である。
【発明を実施するための形態】
【0010】
本発明者は、「背景技術」の欄において記載した、ブロックチェーン技術に関し、以下の問題が生じることを見出した。
【0011】
分散台帳技術(例えばブロックチェーン技術)において、ブロックの生成時の承認を制御する手法として、PoWまたはPoSなどがある。
【0012】
PoWは、ブロックチェーンに参加する装置(ノードともいう)の演算処理性能に基づいて、ブロックの承認を制御する。また、PoSは、ブロックチェーンにおける通貨の保有量に基づいて、ブロックの承認を制御する。
【0013】
しかしながら、PoWでは、ノードは、ブロックの承認のために膨大な演算処理を行う必要がある。そのため、膨大な演算処理を実行するためのハードウェアリソースまたは電力が必要であり、コストが増大するという問題がある。また、演算処理性能が比較的高いノードまたはノード群に、ブロックを承認する権限が偏重し、その結果、ノードごとの処理量が偏重してしまうので、ブロックチェーンの永続性および公平性を維持できなくなる問題が生じ得る。
【0014】
一方、PoSでは、ブロックを承認する権限を、ノードが保有している仮想通貨の保有量の多少で決定する。これにより、高性能な計算機を必要とせずに、PoWにおける上記問題が解決され得る。
【0015】
しかしながら、PoSでは、仮想通貨を比較的多く保有するノードに、ブロックを承認する権限が偏重し、その結果、ノードごとの処理量が偏重してしまうので、ブロックチェーンの永続性および公平性を維持できなくなる問題が生じ得る。また、通貨の流動性が低下し、言い換えれば、通貨の寡占化を招くという問題が生じ得る。
【0016】
このように、分散台帳システムにおいて、ノードが実行する分散台帳に関する処理の処理量が、装置ごとに偏重するという問題がある。処理量が装置ごとに偏重すると、分散台帳を維持および更新する動作が適切になされないことがある。
【0017】
そこで、本発明は、分散台帳システムにおける処理量の装置ごとの偏重を抑制する制御方法などを提供する。これにより、分散台帳システムの適切な動作に寄与し得る。
【0018】
なお、本発明は、分散台帳システムにおける装置ごとの投票権の偏重を抑制する制御方法などを提供する、ともいえる。すなわち、本明細書における「処理量の装置ごとの偏重」は、分散台帳システムにおける装置ごとの投票権の偏重と言い換えることができる。ここで、投票権とは、システムへの投票をする権利を意味する。本発明が提供する制御方法は、PoWにおける処理量の多寡、または、Posにおける仮想通貨の保有量の多寡への依存による、システムへの投票権の偏りを抑制し得る。
【0019】
このような問題を解決するために、本発明の一態様に係る制御方法は、分散台帳を保有している複数の装置を備える分散台帳システムにおいて、当該複数の装置のうちの第一装置が実行する制御方法であって、前記複数の装置のうちの前記第一装置と異なる第二装置から、近距離無線通信を介して前記第二装置の第二識別情報を受信し、前記第一装置が有するトランザクションプールから選択したトランザクションデータと、前記第二識別情報と、前記第一装置の第一識別情報とを含むブロックを生成し、生成した前記ブロックを、前記複数の装置が保有している前記分散台帳に格納する格納処理を実行する制御方法である。
【0020】
上記態様によれば、分散台帳システムを構成する複数の装置のうち、物理的に近接した2つの装置、つまり近距離無線通信を行った2つの装置が、その近距離無線通信を行ったことに基づいてブロックの格納処理を実行する。2つの装置が近距離無線通信可能な距離に位置することは、比較的高い頻度で起こり得るので、ブロックの承認の速度を低減させずに維持することができる。また、近距離無線通信を行う2つの装置は、分散台帳システムを構成する複数のノードのうちから偏りなく選ばれ得る。そのため、上記制御方法によれば、分散台帳システムにおける処理量の装置ごとの偏重を抑制することができる。
【0021】
また、上記制御方法によれば、PoWで行われるような膨大な演算処理が必要とされないので、膨大な演算処理を実行するためのハードウェアリソースまたは電力が不要であり、コストの増大を抑制することができる。そのため、演算能力が比較的低いコンピュータ(例えば、スマートフォンまたはパーソナルコンピュータ)であっても、ブロックを承認することが可能である。このことは、通貨の寡占化を抑制し、言い換えれば、通貨の流動性を高めることに寄与し得る。また、上記制御方法によれば、PoSにおいて発生する通貨の保有量に応じたブロック承認権限の偏重が生ずることがないので、装置ごとの処理量の偏重を抑制できる。
【0022】
このように、本発明に係る制御方法では、ブロックの生成時において、計算機の演算性能の高低または通貨の保有量の多少に依存せずに、装置同士の物理的な近接に基づいてブロックの承認を制御する。これにより、分散台帳技術における改ざん困難性および信頼性を維持したまま、計算機の性能または通貨保有量に依存しない分散台帳システムを実現することができる。
【0023】
例えば、前記格納処理では、前記分散台帳に格納されているブロックのうち、前記第一装置と前記第二装置との近接無線通信に基づいて生成されたブロックの個数が少ないほど、より高い確率で、生成した前記ブロックを前記分散台帳に格納してもよい。
【0024】
上記態様によれば、過去に近接無線通信に基づいてブロックを生成したことが、より少ない2つの装置の近接無線通信に基づいて生成されたブロックが、より高い確率で分散台帳に格納され得る。そのため、ブロックの生成に関わる装置が特定の少数の装置に偏重することが、抑制される。よって、分散台帳システムにおける処理量の装置ごとの偏重を抑制することができる。
【0025】
例えば、前記格納処理では、前記分散台帳に格納されているブロックのうち、前記第一装置と前記第二装置との近接無線通信に基づいて生成されたブロックの個数が所定数以下である場合に、生成した前記ブロックを前記分散台帳に格納してもよい。
【0026】
上記態様によれば、過去に近接無線通信に基づいて生成したブロックの個数が所定数以下である2つの装置の近接無線通信に基づいて生成されたブロックが、分散台帳に格納され得る。そのため、ブロックの生成に関わる装置が、特定の少数の装置に偏重することがより適切に抑制される。よって、分散台帳システムにおける処理量の装置ごとの偏重を、より適切に抑制することができる。
【0027】
例えば、前記格納処理では、前記分散台帳に格納されているブロックのうちの最新の所定数のブロックのうち、前記第一装置と前記第二装置との近接無線通信に基づいて生成されたブロックの個数が少ないほど、より高い確率で、生成した前記ブロックを前記分散台帳に格納してもよい。
【0028】
上記態様によれば、現時点を終期とする所定期間に近接無線通信に基づいてブロックを生成したことが、より少ない2つの装置の近接無線通信に基づいて生成されたブロックが、より高い確率で分散台帳に格納され得る。そのため、ブロックの生成に関わる装置が、特定の少数の装置に偏重することがより適切に抑制される。よって、分散台帳システムにおける処理量の装置ごとの偏重をより適切に抑制することができる。
【0029】
例えば、前記格納処理では、前記分散台帳に格納されているブロックのうちの最新の所定数のブロックのうち、前記第一装置と前記第二装置との近接無線通信に基づいて生成されたブロックの個数が所定数以下である場合に、生成した前記ブロックを前記分散台帳に格納してもよい。
【0030】
上記態様によれば、現時点を終期とする所定期間に近接無線通信に基づいて生成したブロックが所定数以下である2つの装置の近接無線通信に基づいて生成されたブロックが、分散台帳に格納され得る。そのため、ブロックの生成に関わる装置が、特定の少数の装置に偏重することがより適切に抑制される。よって、分散台帳システムにおける処理量の装置ごとの偏重を、より適切に抑制することができる。
【0031】
例えば、前記格納処理では、前記分散台帳に格納されているブロックのうちの最新のブロックが、前記第一装置と前記第二装置との近接無線通信に基づいて生成されたブロックである場合、生成した前記ブロックを前記分散台帳に格納することを禁止してもよい。
【0032】
上記態様によれば、現時点の直前に近接無線通信に基づいてブロックを生成した2つの装置の近接無線通信に基づいて生成されたブロックが、分散台帳に格納されることが禁止される。そのため、特定の2つの装置が連続して分散台帳にブロックを格納することが抑制される。よって、分散台帳システムにおける処理量の装置ごとの偏重を抑制することができる。
【0033】
例えば、前記格納処理では、生成した前記ブロックを前記分散台帳に格納する場合には、生成した前記ブロックを前記複数の装置に送信することによって、前記複数の装置が保有している前記分散台帳に格納させ、生成した前記ブロックを前記分散台帳に格納しない場合には、生成した前記ブロックを前記複数の装置に送信しなくてもよい。
【0034】
上記態様によれば、生成したブロックを、複数の装置に送信するか否かを制御することによって、より容易に、当該ブロックを分散台帳に格納するか否かを制御することができる。よって、分散台帳システムにおける処理量の装置ごとの偏重をより容易に抑制することができる。
【0035】
例えば、前記格納処理では、生成した前記ブロックを前記分散台帳に格納する場合には、生成した前記ブロックを前記第二装置に送信することによって、送信した前記ブロックに前記第二装置の電子署名を付与させ、前記第二装置の前記電子署名が付与された前記ブロックを受信し、受信した前記ブロックに前記第一装置の電子署名を付与し、前記第一装置および前記第二装置の前記電子署名が付与された前記ブロックを、前記複数の装置が保有している前記分散台帳に格納してもよい。
【0036】
上記態様によれば、生成したブロックに、近接無線通信をした2つの装置それぞれの電子署名が付与され、分散台帳に格納される。これにより、当該ブロックが確かに上記2つの装置による近接無線通信に基づいて生成されたことが明確となり、また、後に検証され得るようになる。よって、上記制御方法によれば、ブロックの生成に関わった装置を明確にしながら、分散台帳システムにおける処理量の装置ごとの偏重を抑制することができる。
【0037】
例えば、前記第二識別情報は、前記第二装置の秘密鍵を用いて生成された認証情報を含み、前記第二識別情報を受信した場合には、前記第二識別情報に含まれる前記認証情報を、前記第二装置の公開鍵を用いて検証し、検証が成功した場合に限り、前記ブロックを生成してもよい。
【0038】
上記態様によれば、分散台帳システムにおける正規の装置として検証した装置との近接に基づいて、ブロックを生成し得る。よって、上記制御方法によれば、正規の装置との近接無線通信を用いて、より適切に、分散台帳システムにおける処理量の装置ごとの偏重を抑制することができる。
【0039】
また、このような問題を解決するために、本発明の一態様に係る制御装置は、分散台帳を保有している複数の装置を備える分散台帳システムにおいて、当該複数の装置のうちの第一装置である制御装置であって、前記複数の装置のうちの前記第一装置と異なる第二装置から、近距離無線通信を介して前記第二装置の第二識別情報を受信する近距離通信部と、(a)前記第一装置が有するトランザクションプールから選択したトランザクションデータと、前記第二識別情報と、前記第一装置の第一識別情報とを含むブロックを生成し、(b)生成した前記ブロックを、前記複数の装置が保有している前記分散台帳に格納する格納処理を実行する、制御部とを備える制御装置である。
【0040】
上記態様によれば、上記制御方法と同様の効果を奏する。
【0041】
また、このような問題を解決するために、本発明の一態様に係るプログラムは、上記の制御方法をコンピュータに実行させるプログラムである。
【0042】
上記態様によれば、上記制御方法と同様の効果を奏する。
【0043】
なお、これらの包括的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、装置、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
【0044】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【0045】
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【0046】
(実施の形態1)
本実施の形態において、分散台帳システムにおける処理量の装置ごとの偏重を抑制するブロックチェーンシステム1を構成するノードの制御方法などについて説明する。
【0047】
1. システム構成
ここでは、ブロックチェーンシステム1に属している2つのノードがすれ違うことに基づいて、ブロックチェーンに新たなブロックを格納する場合を例として説明する。
【0048】
なお、以降において、分散台帳システムの一例としてのブロックチェーンシステム1について説明する。分散台帳は、ブロックチェーンと異なる他の方式の分散台帳(例えば、IOTAまたはハッシュグラフ等)を採用することも可能である。
【0049】
1.1 システムの全体構成
図1は、本実施の形態におけるブロックチェーンシステム1の全体の構成を示す説明図である。ブロックチェーンシステム1は、ノード100a、100bおよび100c(ノード100a等ともいう)を備える。ノード100a等は、ブロックチェーンシステム1を構成しているブロックチェーンのノードである。ノード100a等は、コンピュータ装置により実現され、より具体的には、パーソナルコンピュータ、スマートフォンまたはタブレットなどにより実現される。
【0050】
ノード100a等は、ネットワークNを介して通信可能に接続されている。また、ノード100aとノード100bとは、近距離無線通信で通信可能に接続され得る。例えば、ノード100aとノード100bとは、それぞれ、ユーザによって持ち運ばれ、ノード100aのユーザと、ノード100bのユーザとがすれ違うときに、ノード100aとノード100bとが近接無線通信で接続される。以降では、この場合を想定して説明する。ノード100aが第一装置に相当し、ノード100bが第二装置に相当する。
【0051】
ブロックチェーンシステム1は、ネットワークNを備えていてもよいし、備えていなくてもよい。
【0052】
なお、ノード100a等それぞれのハードウェア構成および機能構成は同じであり、ノード100a等それぞれは独立に動作する。
【0053】
1.2 ノードの構成
図2は、本実施の形態におけるノード100a等の代表として、ノード100aの機能構成を示す説明図である。
【0054】
図2に示されるように、ノード100aは、機能部として、近距離通信部101と、暗号処理部102と、クライアント部103と、記憶部104と、通信部105とを備える。また、クライアント部103は、判定部107を備える。ノード100aが備える機能部は、ノード100aが備えるプロセッサ(例えばCPU(Central Processing Unit))(不図示)がメモリ(不図示)を用いて所定のプログラムを実行することで実現される。
【0055】
近距離通信部101は、近距離無線通信を行う機能部であり、近接無線通信を行う通信インタフェースを備える。近接無線通信は、例えば、Bluetooth(登録商標)規格に従う近接無線通信である。
【0056】
近距離通信部101は、ノード100aが他のノードと接近したとき、つまり、他のノードとの距離が、近距離無線通信が可能な範囲内になったときに、上記他のノードの近距離通信部101と近距離無線通信を行うことで、接続情報を交換する。ノード100aが他のノードと接近することは、ノード100aと他のノードとがすれ違うことに相当する。なお、このような近距離通信は、一般に、すれ違い通信とも呼ばれ得る。
【0057】
接続情報は、ノードを一意に特定し得る識別情報、および、ブロックチェーンシステム1に接続するための鍵情報などを含む。識別情報は、そのノードの秘密鍵を用いて生成された認証情報を含む。
【0058】
例えば、ノード100aの近距離通信部101は、ノード100aとノード100bとがすれ違うときに、ノード100bからノード100bの接続情報を受信する。
【0059】
暗号処理部102は、近距離通信部101が受信した情報を復号し、また、近距離通信部101が送信する情報を暗号化する処理部である。暗号処理部102は、近距離通信部101が受信して復号した情報をもとに、接続相手であるノード100bがブロックチェーンシステム1に接続される正規のノードであることを検証する。暗号処理部102は、上記検証が成功した場合には、近距離通信部101による近接無線通信を維持し、上記検証が失敗した場合には、上記近接無線通信を切断する。
【0060】
暗号処理部102が復号または暗号化する情報は、接続情報を含む。接続情報が暗号化されることで、ブロックチェーンシステム1の外の装置からの介入または盗聴が防止される。
【0061】
クライアント部103は、ノード100aがブロックチェーンクライアントとして動作するための処理を実行する機能部である。クライアント部103は、ブロックの生成、判定部107を利用したブロックの承認、ブロックの承認のための条件式のパラメータ調整、通信部105を用いた他のノードとの通信(例えばブロック情報の送受信を含む)、および、記憶部104へのデータ書込みおよび読込み制御などを行う。クライアント部103は、承認されたブロックをブロックチェーンに格納する一方、承認されなかったブロックをブロックチェーンに格納しない。
【0062】
判定部107は、ブロックの承認についての判定を行う機能部である。判定部107は、所定の条件式を用いて、ブロックチェーンシステム1で既に共有している承認済みブロックを生成したノードの組合せ(ノードのペアともいう)を考慮して、ブロックの承認についての判定を行う。
【0063】
クライアント部103は、より具体的には、ノード100aが有するトランザクションプールから選択した1以上のトランザクションデータと、ノード100bの識別情報と、ノード100aの識別情報とを含むブロックを生成する。そして、クライアント部103は、生成したブロックを、ノード100a等が保有している分散台帳に格納する格納処理を実行する。格納処理では、生成したブロックを承認するか否かについての判定部107による判定結果を用いて、ブロックをブロックチェーンに格納するか否かを制御する。
【0064】
格納処理では、ブロックチェーンに格納されているブロックのうち、ノード100aとノード100bとの近接無線通信に基づいて生成されたブロックの個数が少ないほど、より高い確率で、生成したブロックをブロックチェーンに格納してもよい。
【0065】
また、格納処理では、ブロックチェーンに格納されているブロックのうち、ノード100aとノード100bとの近接無線通信に基づいて生成されたブロックの個数が所定数以下である場合に、生成したブロックをブロックチェーンに格納してもよい。
【0066】
また、格納処理では、ブロックチェーンに格納されているブロックのうちの最新の所定数のブロックのうち、ノード100aとノード100bとの近接無線通信に基づいて生成されたブロックの個数が少ないほど、より高い確率で、生成したブロックをブロックチェーンに格納してもよい。
【0067】
また、格納処理では、ブロックチェーンに格納されているブロックのうちの最新の所定数のブロックのうち、ノード100aとノード100bとの近接無線通信に基づいて生成されたブロックの個数が所定数以下である場合に、生成したブロックをブロックチェーンに格納してもよい。
【0068】
また、格納処理では、ブロックチェーンに格納されているブロックのうちの最新のブロックが、ノード100aとノード100bとの近接無線通信に基づいて生成されたブロックである場合、生成したブロックをブロックチェーンに格納することを禁止してもよい。
【0069】
クライアント部103は、ノード100bの接続情報に含まれる識別情報を受信した場合には、当該識別情報に含まれる認証情報を、ノード100bの公開鍵を用いて検証し、検証が成功した場合に限り、ブロックを生成してもよい。
【0070】
クライアント部103は、格納処理では、生成したブロックを分散台帳に格納する場合には、生成したブロックをノード100bおよび100cに通信部105を用いて送信することによって、ノード100bおよび100cが保有している分散台帳に格納させる。また、生成したブロックを分散台帳に格納しない場合には、生成したブロックをノード100bおよび100cに送信しない。
【0071】
記憶部104は、各種情報を記憶する機能部であり、記憶装置を含む。記憶部104は、暗号処理部102およびクライアント部103による処理に用いられる情報を記憶する。記憶部104は、例えば、他のノードの識別情報、ブロックチェーンデータ、および、ブロックの承認のための条件式(後述)におけるパラメータ(αまたはβなど)を記憶する。パラメータは、ブロックチェーンシステム1に含まれる各ノードで共有の値である。
【0072】
通信部105は、ネットワークNに通信可能に接続する機能部であり、通信インタフェースを備える。通信部105は、例えば、携帯電話キャリアのアクセスネットワークに接続する通信インタフェース、または、WiFi(登録商標)などの無線LAN(Local Area Network)に接続する通信インタフェースを備える。なお、通信部105は、イーサネットなどの有線ネットワークに接続する通信インタフェースを備えてもよい。
【0073】
1.3 ブロックのデータ構造
次に、ブロックのデータ構造について説明する。
【0074】
図3は、本実施の形態におけるブロック20のデータ構造を示す説明図である。ブロック20は、クライアント部103により生成される。
【0075】
図3に示されるように、ブロック20は、トランザクション部21と、ヘッダ部22と、署名部23とを備える。
【0076】
トランザクション部21は、1以上のトランザクションデータ(例えば、トランザクションデータ211、212、・・・)を含む。トランザクション部21に含まれている1以上のトランザクションデータは、ブロックチェーンシステム1において生成されたトランザクションに関する情報を含んでおり、ノード100aが有するトランザクションプールから選択されたものである。
【0077】
ヘッダ部22は、ハッシュ値221と、ブロック番号222と、識別情報223および224と、作成日時225と、パラメータ226とを含む。
【0078】
ハッシュ値221は、ブロックチェーンにおける、当該ブロックの直前のブロックのハッシュ値であり、所定のハッシュ関数を用いて算出されたハッシュ値である。
【0079】
ブロック番号222は、ブロックチェーンにおける、当該ブロックの番号である。
【0080】
識別情報223は、当該ブロックの生成に関った2つのノードのうちの一方の識別情報である。
【0081】
識別情報224は、当該ブロックの生成に関った2つのノードのうちの他方の識別情報である。
【0082】
作成日時225は、当該ブロックが生成された日時を示す情報である。
【0083】
パラメータ226は、パラメータαおよびβを含む。
【0084】
署名部23は、当該ブロックの生成に関った2つのノードの電子署名として、署名231および232を含む。ブロック20が、ノード100aとノード100bとのすれ違い通信に基づいて生成された場合には、署名231および232は、ノード100aおよびノード100bの署名を含む。なお、単に署名という場合、電子署名を意味する。以降でも同様とする。
【0085】
1.4 ブロックを承認する条件
以下において、クライアント部103(より具体的には判定部107)によるブロックの承認の判定に用いられる条件を説明する。
【0086】
クライアント部103は、上記の通り、ブロックチェーンに格納されているブロックのうち、ノード100aおよび100bの近接無線通信に基づいて生成されたブロックの個数が少ないほど、より高い確率で、生成したブロックをブロックチェーンに格納する。
【0087】
このような処理を実現すべく、クライアント部103は、例えば、所定のハッシュ関数により算出されるハッシュ値H(100a,100b)が閾値Thより小さい場合(下記(式1))に、ブロックを承認し、そうでない場合(下記(式2))に、ブロックを承認しない。
【0088】
H(100a,100b)<Th ・・・ 承認 (式1)
H(100a,100b)≧Th ・・・ 非承認 (式2)
【0089】
ハッシュ値H(100a,100b)は、ノード100aの識別情報と、ノード100bの識別情報とを所定のハッシュ関数により演算して得られた値である。
【0090】
【0091】
ここで、αおよびβは、ブロックを承認する確率を制御するパラメータである。
【0092】
αは、閾値Thを一律に増大または減少させることにより、ブロックを承認する確率を一律に増大または減少させる。
【0093】
βは、既にブロックチェーンに存在するブロックの生成に関った2つのノードのペアの出現回数が閾値Thに寄与する度合いを増大または減少させる。
【0094】
Nは、既存のブロックチェーンに含まれるブロックの個数である。COUNT(Bi,j)は、既存のブロックチェーンに含まれるブロックのうちノードiおよびノードjによるすれ違い通信に基づいて生成されたブロックの個数を示す。
【0095】
以下で具体例を用いて閾値Thを説明する。
【0096】
図1の構成において、既存のブロックチェーンに含まれるブロックの個数Nが1であり、そのブロックがノード100aおよびノード100bによるすれ違い通信に基づいて生成されたものであるとする。この場合における、ブロックチェーンの2個目のブロックを生成して承認するときの条件判定を例として説明する。
【0097】
なお、説明の簡易化のため、閾値Thにおけるαを100.0とし、βを1.0とする。ノード100aの識別情報と、ノード100bの識別情報とをハッシュ関数により演算して得られるハッシュ値H(100a,100b)が10であるとする。ノード100aの識別情報と、ノード100cの識別情報とをハッシュ関数により演算して得られるハッシュ値H(100a,100c)が20であるとする。
【0098】
まず、ノード100aとノード100bとによるすれ違い通信に基づいてブロックを生成した場合、閾値Thは、100.0×(1-1.0×1÷1)、つまり0となる。ハッシュ値H(100a,100b)である10は、上記演算の結果である0より大きいので、クライアント部103は、生成したブロックを承認しない(上記(式2))。
【0099】
次に、ノード100aとノード100cとがすれ違ったことによってブロックを生成した場合、閾値Thは、100.0×(1-1.0×0÷1)、つまり100となる。ハッシュ値H(100a,100c)である20は、上記演算の結果である100より小さいので、クライアント部103は、生成したブロックを承認する(上記(式1))。
【0100】
なお、COUNT(Bi,j)は、既存のブロックチェーンに含まれるブロックであって、最新の所定数のブロックのうちの、ノードiおよびノードjによるすれ違い通信に基づいて生成されたブロックの個数を示すものとしてもよい。このようにすると、最新の所定数のブロックだけを用いて新たなブロックの承認を制御することにより、分散台帳システムにおける処理量の装置ごとの偏重を抑制することができる。
【0101】
1.5 ブロックの生成、共有および格納の処理
以下において、ノード100a等によるブロックの生成、共有および格納の処理を説明する。
【0102】
図4は、本実施の形態におけるブロックの生成および格納の処理を示すシーケンス図である。ここでは、ノード100aとノード100bとがすれ違い通信をしたことに基づいてブロックを生成する処理を説明する。
【0103】
図4に示されるように、ステップS101において、ノード100a等の近距離通信部101は、他のノードとの近距離通信を確立する。例えば、ノード100aとノード100bとが、近接無線通信が可能な距離以内に近づいたときに、ノード100aの近距離通信部101と、ノード100bの近距離通信部101とが、近距離無線通信を確立する。近距離通信を確立した場合には、ステップS102に進み、そうでない場合には、近距離通信部101は、近距離通信を確立するまでステップS101で待機状態をとる。
【0104】
なお、ノード100aは、近距離無線通信を確立したときだけでなく、近距離無線通信を確立している状態において所定時間が経過するごとに、ステップS102に進むようにしてもよい。
【0105】
ステップS102において、ノード100aは、ステップS101で近距離無線通信の接続をした接続相手であるノード100bに接続情報を送信する。同様に、ノード100bの近距離通信部101は、接続相手であるノード100aに接続情報を送信することで、ノード100aとの間で接続情報を共有する。これにより、ノード100aと100bとで接続情報を共有する。
【0106】
ステップS103において、ノード100aは、ステップS102で受け取った接続情報をもとに、接続相手(つまりノード100b)がブロックチェーンシステム1内における正規ノードであるか否かを判定する。接続相手が正規ノードであると判定した場合(ステップS103でYes)には、ステップS104に進み、そうでない場合(ステップS103でNo)には、
図4に示されている一連の処理を終了する。ノード100bも同様の処理を実行する。
【0107】
ステップS104において、ノード100aのクライアント部103は、自装置が有するトランザクションプールから、これから生成するブロックに含めるトランザクションデータを選択する。そして、ノード100aのクライアント部103は、選択したトランザクションデータ、ブロックチェーンに含まれている最新のブロックのハッシュ値、ノード100aの識別情報、ノード100bの識別情報および作成日時を含むブロックを生成する。この時点では、生成されるブロックの署名部23には、署名は含まれていない。
【0108】
上記トランザクションデータの選択では、例えば、ノード100aがトランザクションデータを承認することで得られる手数料の高低に基づいて、トランザクションデータを選択する。例えば、クライアント部103は、トランザクションデータを承認することで得られる手数料が高いトランザクションデータほど、より優先的に選択してもよい。
【0109】
ステップS105において、ノード100aのクライアント部103は、ステップS104で生成したブロックを承認するか否かを判定する。このとき、クライアント部103は、ノード100aの識別情報とノード100bの識別情報とを少なくとも用いて、上記ブロックを承認するか否かを判定する。上記ブロックを承認すると判定した場合(ステップS105でYes)には、ステップS106に進み、そうでない場合(ステップS105でNo)は、
図4に示される一連の処理を終了する。
【0110】
ステップS106において、ノード100aのクライアント部103は、ステップS104で生成したブロックをノード100bに送信し、これにより上記ブロックに署名を付与する依頼をする。ノード100bは、送信されたブロックを受信する。
【0111】
ステップS107において、ノード100bは、ステップS106で受信したブロックの識別情報を用いて、当該ブロックを承認するか否かを判定する。当該ブロックを承認すると判定した場合(ステップS107でYes)には、ステップS108に進み、そうでない場合(ステップS107でNo)には、
図4に示される一連の処理を終了する。
【0112】
ステップS108において、ノード100bは、ステップS106で受信したブロックの署名部23に署名を付与する。
【0113】
ステップS109において、ノード100bは、ステップS108で署名を付与したブロックをノード100aに送信する。ノード100aは、送信されたブロックを受信する。
【0114】
ステップS110において、ノード100aは、ステップS109で受信したブロックの署名部23に署名を付与する。
【0115】
ステップS111において、ノード100aは、ステップS110で署名を付与したブロックをブロックチェーンに格納する。
【0116】
ステップS200において、ノード100aは、ステップS109で受信したブロックを、ブロックチェーンシステム1内でブロードキャストすることにより共有する。ステップS200の処理の詳細は、後述する。
【0117】
1.6 ブロックの共有
以下、ノード100a、100bおよび100c間でのブロックの共有の処理を説明する。
【0118】
図5は、本実施の形態におけるブロックの共有および格納の処理を示すシーケンス図である。
図5には、ノード100aが生成したブロックを、ブロックチェーンシステム1内でブロードキャストすることによって、ノード100bおよびノード100cに伝搬させ、これにより上記ブロックをブロックチェーンシステム1内で共有する処理が示されている。
図5に示される処理は、
図4に示されるステップS200に含まれる処理を詳細に示すものである。
【0119】
ここでは、前提として、ブロックチェーンシステム1のP2Pネットワーク上でノード100aとノード100bとが接続されており、また、ノード100bとノード100cとが相互に接続されているとする。
【0120】
ステップS201において、ノード100aは、ステップS110で署名を付与したブロックをノード100bに送信する。ノード100bは、送信されたブロックを受信する。
【0121】
ステップS202において、ノード100bは、ステップS201で受信したブロックを承認するか否かを判定する。具体的には、ノード100bは、上記ブロックについてブロックを承認する条件(上記(式1))が満たされるか否かを判定する。ノード100bは、上記ブロックを承認する、つまり、上記条件が満たされると判定した場合(ステップS202でYes)には、ステップS203に進み、そうでないと判定した場合(ステップS202でNo)には、ブロックを破棄し、
図5に示される一連の処理を終了する。
【0122】
ステップS203において、ノード100bは、ステップS201で受信したブロックが不正なトランザクションデータを含んでいるか否かを判定する。不正なトランザクションデータの判定は、例えば、同一の支払いを示す複数のトランザクションデータがブロックチェーンに含まれることになる(つまり、二重払いが生ずる)か否かの判定を含む。不正なトランザクションデータを含むと判定した場合(ステップS203でYes)には、ブロックを破棄し、
図5に示される一連の処理を終了し、そうでない場合(ステップS203でNo)には、ステップS204に進む。
【0123】
ステップS204において、ノード100bは、ステップS201で受信したブロックをブロックチェーンに格納する。
【0124】
ステップS205において、ノード100bは、ステップS201で受信したブロックをノード100cに送信する。ノード100cは、送信されたブロックを受信する。
【0125】
ステップS206において、ノード100cは、ステップS205で受信したブロックについて、ブロックを承認する条件(上記(式1))が満たされたか否かを判定する。ノード100cは、上記ブロックを承認すると判定した場合(ステップS206でYes)には、ステップS207に進み、そうでないと判定した場合(ステップS202でNo)には、ブロックを破棄し、
図5に示される一連の処理を終了する。
【0126】
ステップS207において、ノード100cは、ステップS205で受信したブロックが不正なトランザクションデータを含んでいるか否かを判定する。不正なトランザクションデータを含むと判定した場合(ステップS207でYes)には、ブロックを破棄し、
図5に示される一連の処理を終了し、そうでない場合(ステップS207でNo)には、ステップS208に進む。
【0127】
ステップS208において、ノード100cは、ステップS205で受信したブロックをブロックチェーンに格納する。
【0128】
1.7 実施の形態1の効果
実施の形態1に示されるように、ブロックチェーンシステム1は、ノード同士のすれ違いまたは近接を利用してブロック生成する。これによって、高性能計算機を用いて常時演算をせずともブロック生成が可能となる。その際、ブロックの生成または承認の成否が、ブロックの生成に関ったノードのペアの出現頻度を用いて制御される。これにより、ブロックチェーンシステム1は、寡占化、または、流動性の低下を抑制することができる。
【0129】
(実施の形態2)
2. システム構成
本実施の形態において、分散台帳システムにおける処理量の装置ごとの偏重を抑制するブロックチェーンシステム1を構成するノードの制御方法などについて、実施の形態1とは異なる構成を説明する。
【0130】
具体的には、実施の形態1では、ブロックチェーンシステム1に属するノードであって、すれ違ったノードのうちの片側が、ブロックを生成する構成を説明したが、本実施の形態では、すれ違ったノードの両方がそれぞれブロックを生成する構成を説明する。なお、以下では、実施の形態1から実施の形態2への差分を主に示す。
【0131】
2.1 ブロックの生成、共有および格納の処理
以下において、ノード100a等によるブロックの生成、共有および格納の処理を説明する。
【0132】
図6は、本実施の形態におけるブロックの生成および格納の処理を示すフロー図である。具体的には、
図6は、ノード100aとノード100bとのすれ違い通信に基づいて、それぞれのノードがブロックを生成する処理を説明する。
【0133】
ステップS301~ステップS303は、実施の形態1におけるステップS101~S103と同様である。
【0134】
ステップS304において、ノード100aのクライアント部103は、実施の形態1におけるステップS104と同様に、自装置が有するトランザクションプールからトランザクションデータを選択し、選択したトランザクションデータ等を含むブロック(ブロックAともいう)を生成する。また、ノード100bのクライアント部103は、実施の形態1におけるステップS104と同様に、自装置が有するトランザクションプールからトランザクションデータを選択し、選択したトランザクションデータ等を含むブロック(ブロックBともいう)を生成する。なお、ノード100aおよび100bが選択するトランザクションデータは、異なっていてもよい。
【0135】
ステップS305において、ノード100aのクライアント部103は、ステップS304で生成したブロックを承認するか否かを判定する。このとき、クライアント部103は、ノード100aの識別情報とノード100bの識別情報とを少なくとも用いて、上記ブロックを承認するか否かを判定する。上記ブロックを承認すると判定した場合(ステップS305でYes)には、ステップS306に進み、そうでない場合(ステップS305でNo)は、
図6に示される一連の処理を終了する。同様に、ノード100bのクライアント部103は、ステップS304で生成したブロックを承認するか否かを判定する。なお、ノード100aおよびノード100bそれぞれが上記判定に用いる条件式(上記(式1))におけるパラメータαまたはβは異なっていてもよい。
【0136】
ステップS306において、ノード100aは、ステップS304で生成したブロックAをノード100bに送信する。同様に、ノード100bは、ステップS304で生成したブロックBをノード100aに送信する。
【0137】
ステップS307において、ノード100aは、ステップS304で生成したブロックAと、ステップS306で受信したブロックBとのどちらのブロックをブロックチェーンに格納するかを決定する。同様に、ノード100bは、ステップS304で生成したブロックBと、ステップS306で受信したブロックAとのどちらのブロックをブロックチェーンに格納するかを決定する。このとき、ノード100aとノード100bとで、共通の基準に基づいて、上記どちらのブロックをブロックチェーンに格納するかを決定する。
【0138】
上記ステップS307でのブロックの決定では、報酬の高低に基づいて、ブロックを決定してもよい。例えば、当該ブロックをブロックチェーンに格納することで、より多くの報酬を得られるほうのブロックを決定する。ここでは一例として、ノード100aが生成したブロックAを、ブロックチェーンに格納するブロックとして決定した場合の処理を説明する。
【0139】
ステップS308において、ノード100bは、ステップS306で受信したブロックAの署名部23に署名を付与する。
【0140】
ステップS309において、ノード100bは、ステップS308で署名を付与したブロックAをノード100aに送信する。ノード100aは、送信されたブロックAを受信する。
【0141】
ステップS310において、ノード100aは、ステップS309で受信したブロックAに署名を付与する。
【0142】
ステップS311において、ノード100aは、ステップS310で署名を付与したブロックAをブロックチェーンに格納する。
【0143】
ステップS200において、ノード100aは、ステップS309で受信したブロックAを、ブロックチェーンシステム1内でブロードキャストすることにより共有する。ステップS200は、実施の形態1におけるステップS200と同じである。
【0144】
2.2 ブロックを承認する条件
本実施の形態では、閾値Thにおいて、ブロックのハッシュ値が含まれていてもよい。例えば、αにブロックのハッシュ値が含まれていると、ノード100aおよび100bのそれぞれが個別に選択したトランザクションデータを含むブロックごとに、ブロックを承認するか否かを変化させることができる。
【0145】
2.3 実施の形態2の効果
実施の形態2において、本システムのブロックチェーンは実施の形態1の効果に加えて、一度のすれ違いによって2つのブロックを生成することを試行することができるようになるので、ネットワーク全体におけるトランザクション処理速度が向上する。また、ノードがブロックを承認することで報酬を得られる可能性が高まるので、ノードをネットワークに参加させるインセンティブが働きやすくなる効果があり得る。
【0146】
(変形例)
以降において、上記実施の形態のノードおよび制御方法の変形例を説明する。
【0147】
本変形例におけるノード110について
図7を参照して説明する。
【0148】
図7に示されるように、本変形例におけるノード110は、近距離通信部111と、制御部112とを備える。ノード110は、上記実施の形態におけるノード100a等それぞれに相当する。
【0149】
近距離通信部111は、ブロックチェーンシステム1に属している複数のノードのうち、ノード110と異なるノードから、近距離無線通信を介して上記異なるノードの識別情報を受信する。近距離通信部111は、上記実施の形態の近距離通信部101に相当する。
【0150】
制御部112は、ノード110が有するトランザクションプールから選択したトランザクションデータと、上記異なるノードの識別情報と、ノード110の識別情報とを含むブロックを生成する。また、制御部112は、生成したブロックを、上記複数のノードが保有しているブロックチェーンに格納する格納処理を実行する。制御部112は、上記実施の形態のクライアント部103に相当する。
【0151】
ノード110は、上記構成を備えることにより、分散台帳システムにおける処理量の装置ごとの偏重を抑制することができる。
【0152】
次に、本変形例における制御方法について説明する。
【0153】
図8に示されるように、本変形例における制御方法では、ステップS1において、上記異なるノードから、近距離無線通信を介して上記異なるノードの識別情報を受信する。
【0154】
ステップS2において、ノード110が有するトランザクションプールから選択したトランザクションデータと、上記異なるノードの識別情報と、ノード110の識別情報とを含むブロックを生成する。
【0155】
ステップS3において、生成したブロックを、上記複数のノードが保有しているブロックチェーンに格納する格納処理を実行する。
【0156】
ノード110は、上記制御方法により、分散台帳システムにおける処理量の装置ごとの偏重を抑制することができる。
【0157】
(その他変形例)
なお、本発明を上記各実施の形態に基づいて説明してきたが、本発明は、上記各実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
【0158】
(1)実施の形態1では、ブロックチェーンに格納されている全承認済みブロックに対する、新たなブロックを生成したノードのペアの出現頻度を用いて、新たなブロックを承認するか否かを決定したが、他の基準値を用いて決定してもよい。例えば、直近のN個のブロックに対する、新たなブロックを生成したノードのペアの出現頻度を用いて、新たなブロックを承認するか否かを決定してもよい。
【0159】
(2)実施の形態1では、新たなブロックの生成に関わったノードのペアの出現頻度を利用して、新たなブロックを承認するか否かを決定したが、ブロックチェーンシステム1を構成するノード間で発生した全てあるいは一部のすれ違いの総回数を用いて、新たなブロックを承認するか否かを決定してもよい。例えば、チェーン上でN回目に発生したすれ違いに基づいて、新たなブロックを承認するとしてもよい。
【0160】
(3)実施の形態1では、新たなブロックの生成に関わったノードのペアの出現頻度を利用して、新たなブロックを承認するか否かを決定したが、片方のノードの出現頻度を用いてもよい。
【0161】
(4)上記の実施の形態では、新たなブロックの生成に関わったノードのペアの出現頻度を利用して、新たなブロックを承認するか否かを決定したが、ブロック生成の時刻を用いて決定してもよい。例えば、直前のブロックの生成時刻が古いほど難度が下がるようにしてもよいし、同じノードのペアの直前のブロック生成時刻を利用してもよい。
【0162】
(5)実施の形態1では、ブロックの共有の処理において、逐次的にブロックを伝搬する方法を示したが、並行してブロックを送信してもよい。
【0163】
(6)実施の形態2では、すれ違いをした両ノードが生成したブロックの選択条件を報酬の高低としたが、ブロックを生成した時刻の先後(例えば、先に生成されたブロックを選択する)などの条件を用いてもよい。
【0164】
(7)上記実施の形態において、ブロックに含めるトランザクションを選択する基準を手数料の高低としたが、他の基準を用いてもよい。例えば、スマートコントラクトなどの処理コストの高低としてもよい。この場合、トランザクションの検証によるノードの負荷を低減することができる。
【0165】
(8)上記の実施の形態の条件式(式1)におけるパラメータαは定数として説明したが、任意の演算による可変値としてもよい。例えば、前のブロックのハッシュ値が因子として含まれてもよい。この場合、条件判定によってブロックの連結性も保証することができる。
【0166】
(9)上記実施の形態の条件式(式2)におけるパラメータβは定数として説明したが、任意の演算による可変値としてもよい。例えば、現在時刻と、前のブロックの作成時刻の差に反比例するようにすれば、同じノードのペアによるすれ違い通信があった場合でも、時間経過によってブロックが承認される確率を高めることができる。
【0167】
(10)上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【0168】
(11)上記の実施の形態における各装置は、構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
【0169】
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていてもよいし、一部又はすべてを含むように1チップ化されてもよい。
【0170】
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用してもよい。
【0171】
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【0172】
(12)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【0173】
(13)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【0174】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【0175】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【0176】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【0177】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【0178】
(14)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【0179】
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態の制御装置などを実現するソフトウェアは、次のようなプログラムである。
【0180】
すなわち、このプログラムは、コンピュータに、分散台帳を保有している複数の装置を備える分散台帳システムにおいて、当該複数の装置のうちの第一装置が実行する制御方法であって、前記複数の装置のうちの前記第一装置と異なる第二装置から、近距離無線通信を介して前記第二装置の第二識別情報を受信し、前記第一装置が有するトランザクションプールから選択したトランザクションデータと、前記第二識別情報と、前記第一装置の第一識別情報とを含むブロックを生成し、生成した前記ブロックを、前記複数の装置が保有している前記分散台帳に格納する格納処理を実行する制御方法を実行させるプログラムである。
【0181】
以上、一つまたは複数の態様に係る制御装置などについて、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
【産業上の利用可能性】
【0182】
本発明は、分散台帳システムを構成する装置に利用可能である。
【符号の説明】
【0183】
1 ブロックチェーンシステム
20 ブロック
21 トランザクション部
22 ヘッダ部
23 署名部
100a、100b、100c、110 ノード
101、111 近距離通信部
102 暗号処理部
103 クライアント部
104 記憶部
105 通信部
107 判定部
112 制御部
211、212 トランザクションデータ
221 ハッシュ値
222 ブロック番号
223、224 識別情報
225 作成日時
226 パラメータ
231、232 署名
N ネットワーク