(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-03-31
(45)【発行日】2022-04-08
(54)【発明の名称】ノード装置、情報処理システム、優先権付与方法及び優先権付与プログラム
(51)【国際特許分類】
G06Q 20/38 20120101AFI20220401BHJP
【FI】
G06Q20/38 310
(21)【出願番号】P 2021035335
(22)【出願日】2021-03-05
【審査請求日】2022-02-09
【早期審査対象出願】
(73)【特許権者】
【識別番号】398034168
【氏名又は名称】株式会社アクセル
(74)【代理人】
【識別番号】100085660
【氏名又は名称】鈴木 均
(74)【代理人】
【識別番号】100149892
【氏名又は名称】小川 弥生
(74)【代理人】
【識別番号】100185672
【氏名又は名称】池田 雅人
(72)【発明者】
【氏名】星月 優佑
【審査官】田川 泰宏
(56)【参考文献】
【文献】国際公開第2019/219631(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 20/38
(57)【特許請求の範囲】
【請求項1】
トランザクションに優先的な承認権を付与する優先権販売者の秘密鍵を用いて生成された、優先権承認用の電子署名を検証する検証鍵を記憶する記憶部と、
前記検証鍵を用いて、分散型台帳に公開された未承認のトランザクションに付与されている電子署名を検証する検証部と、
前記検証部により前記未承認のトランザクションに付与されている電子署名が前記優先権承認用の電子署名であることが検証されたとき、前記未承認のトランザクションを、前記優先権承認用の電子署名が付与されていない未承認のトランザクションよりも優先的に含むブロックを生成する生成部と、
前記ブロックを前記分散型台帳に公開する公開部と、
を備えることを特徴とするノード装置。
【請求項2】
前記優先権承認用の電子署名は、
前記トランザクションと、前記優先権販売者の秘密鍵とを用いて生成された電子署名である
ことを特徴とする請求項1に記載のノード装置。
【請求項3】
前記ノード装置は、さらに、
前記ブロックに含まれる前記優先権承認用の電子署名が付与された未承認のトランザクションの数に応じて、マイニングの報酬を調整した報酬取得用のトランザクションを作成する作成部を備え、
前記生成部は、
前記報酬取得用のトランザクションを含むブロックを生成する
ことを特徴とする請求項1または2のいずれか一つに記載のノード装置。
【請求項4】
トランザクションに優先的な承認権を付与する優先権販売者の第1秘密鍵を用いて生成された第1電子署名を検証する第1検証鍵を記憶する記憶部と、
前記第1検証鍵を用いて、分散型台帳に公開された未承認のトランザクションに付与されている複数の電子署名を検証し、前記複数の電子署名に前記第1電子署名が含まれることが検証されたとき、前記未承認のトランザクションにさらに付与されている、代理販売者の第2秘密鍵を用いて生成された第2電子署名を検証する第2検証鍵を用いて、前記未承認のトランザクションに付与されている複数の電子署名を検証する検証部と、
前記検証部により前記未承認のトランザクションに付与されている電子署名に第2電子署名が含まれることが検証されたとき、前記未承認のトランザクションを、前記第2電子署名が付与されていない未承認のトランザクションよりも優先的に含むブロックを生成する生成部と、
前記ブロックを前記分散型台帳に公開する公開部と、
を備えることを特徴とするノード装置。
【請求項5】
優先権販売者の第1秘密鍵を用いて生成された第1電子署名を検証する第1検証鍵と、前記第1電子署名により検証された代理販売者の第2検証鍵を記憶する記憶部と、
前記記憶部に第2検証鍵を記憶するとき、前記第1検証鍵を用いて、前記第2検証鍵に付与されている電子署名を検証し、分散型台帳に未承認のトランザクションが公開されたとき、前記第2検証鍵を用いて、前記未承認のトランザクションに付与されている電子署名を検証する検証部と、
前記検証部により前記未承認のトランザクションに付与されている電子署名が前記代理販売者の第2秘密鍵を用いて生成された第2電子署名であることが検証されたとき、前記未承認のトランザクションを、前記第2電子署名が付与されていない未承認のトランザクションよりも優先的に含むブロックを生成する生成部と、
前記ブロックを前記分散型台帳に公開する公開部と、
を備えることを特徴とするノード装置。
【請求項6】
前記第1電子署名は、
前記トランザクションと、前記第1秘密鍵とを用いて生成された電子署名である
ことを特徴とする請求項4または5に記載のノード装置。
【請求項7】
前記第2電子署名は、
前記第2検証鍵と、前記第1秘密鍵とを用いて生成された電子署名である
ことを特徴とする請求項4から6のいずれか一つに記載のノード装置。
【請求項8】
前記ノード装置は、さらに、
前記ブロックに含まれる前記第2電子署名が付与された未承認のトランザクションの数に応じて、マイニングの報酬を調整した報酬取得用のトランザクションを作成する作成部を備え、
前記生成部は、
前記報酬取得用のトランザクションを含むブロックを生成する
ことを特徴とする請求項4から7のいずれか一つに記載のノード装置。
【請求項9】
情報処理装置と、ノード装置と、を備える情報処理システムであって、
前記情報処理装置は、
ユーザが作成したトランザクションを取得する取得部と、
前記取得部が取得したユーザが作成したトランザクションと、前記サーバ装置の秘密鍵とを用いて、前記ユーザが作成したトランザクションに付与する電子署名を生成する第1生成部と、
を備え、
前記ノード装置は、
前記秘密鍵を用いて生成された電子署名を検証する検証鍵を記憶する記憶部と、
前記検証鍵を用いて、分散型台帳に公開された未承認のトランザクションに付与されている電子署名を検証する検証部と、
前記検証部により前記未承認のトランザクションに付与されている電子署名が前記秘密鍵を用いて生成された電子署名であることが確認されたとき、前記未承認のトランザクションを、前記秘密鍵を用いて生成された電子署名が付与されていない未承認のトランザクションよりも優先的に含むブロックを生成する第2生成部と、
前記ブロックを前記分散型台帳に公開する第1公開部と、
を備えることを特徴とする情報処理システム。
【請求項10】
前記第1生成部は、
前記ユーザから電子署名を生成する対価を得たことが確認されたとき、前記秘密鍵を用いて、前記ユーザが作成したトランザクションに付与する電子署名を生成する
ことを特徴とする請求項9に記載の情報処理システム。
【請求項11】
前記情報処理装置は、さらに、
前記ユーザが作成したトランザクションに前記秘密鍵を用いて生成された電子署名を付与して、前記分散型台帳に公開する第2公開部
を備えることを特徴とする請求項9または10に記載の情報処理システム。
【請求項12】
前記情報処理システムは、さらに、
クライアント装置を備え、
前記情報処理装置は、さらに、
前記第1生成部により生成された前記秘密鍵を用いて生成された電子署名を前記クライアント装置に送信する送信部を備え、
前記クライアント装置は、
前記秘密鍵を用いて生成された電子署名を前記ユーザが作成したトランザクションに付与する付与部と、
前記秘密鍵を用いて生成された電子署名を付与したトランザクションを、前記分散型台帳に公開する第2公開部と、
を備えることを特徴とする請求項9または10に記載の情報処理システム。
【請求項13】
プロセッサによって実行される優先権付与方法であって、
トランザクションに優先的な承認権を付与する優先権販売者の秘密鍵を用いて生成された、優先権承認用の電子署名を検証する検証鍵を記憶部に記憶し、
前記検証鍵を用いて、分散型台帳に公開された未承認のトランザクションに付与されている電子署名を検証し、
前記検証部により前記未承認のトランザクションに付与されている電子署名が前記優先権承認用の電子署名であることが検証されたとき、前記未承認のトランザクションを、前記優先権承認用の電子署名が付与されていない未承認のトランザクションよりも優先的に含むブロックを生成し、
前記ブロックを前記分散型台帳に公開する、
を備えることを特徴とする優先権付与方法。
【請求項14】
プロセッサに実行させる優先権付与プログラムであって、
トランザクションに優先的な承認権を付与する優先権販売者の秘密鍵を用いて生成された、優先権承認用の電子署名を検証する検証鍵を記憶部に記憶し、
前記検証鍵を用いて、分散型台帳に公開された未承認のトランザクションに付与されている電子署名を検証し、
前記検証部により前記未承認のトランザクションに付与されている電子署名が前記優先権承認用の電子署名であることが検証されたとき、前記未承認のトランザクションを、前記優先権承認用の電子署名が付与されていない未承認のトランザクションよりも優先的に含むブロックを生成し、
前記ブロックを前記分散型台帳に公開する、
を備えることを特徴とする優先権付与プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ノード装置、情報処理システム、優先権付与方法及び優先権付与プログラムに関する。
【背景技術】
【0002】
ビットコインやライトコイン、モナコインなどブロックチェーンを利用した暗号資産が知られている。
また、イーサリアム(Ethereum)など、ブロックチェーンがもつ信頼性に基づく「スマートコントラクト」という仕組みを有するブロックチェーンシステムも存在する。
スマートコントラクトは、任意のトークン残高などをブロックチェーンに記録して新たな暗号資産などの価値を作りだしたり、重要な情報をブロックチェーンに書き込んだりすることができる。
なお、暗号資産の送金による決済やトークンの移転など、ブロックチェーンへの書き込みを伴う処理において、クライアント装置は、トランザクションと呼ばれる取引履歴をネットワークへ送信する。そして、ネットワークに接続されたマイナーノードは、クライアント装置から送信されたトランザクションを承認してブロックチェーンに取り込む処理を実行する必要がある。
特許文献1に記載されているようにネットワークへ送信するトランザクションにはトランザクション手数料が記載されている。トランザクション手数料は、トランザクションを取り込んだマイナーに対する報酬となりトランザクションを取り込む承認を行うモチベーションとなっている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のイーサリアムではトランザクション手数料が、マイナーがトランザクションを承認してブロックチェーンに取り込むモチベーションである。よって、手数料が高いトランザクションほど優先的に承認され易い。そのため高額な手数料を支払うほど早期に承認され易く、ネットワークが混雑している時間帯などでは手数料が高騰しやすい。
イーサリアムでは、一度ネットワークに送信したトランザクションの手数料を上乗せができる仕組みがある。しかし、ネットワークの混雑具合と承認まで待てる時間的余裕に応じて必要となる金額が変わるため、多めにETHを入手しておく必要があった。
常にある程度のETHを保持している利用者であれば大きな問題にはならない。しかし、普段は現金などの法定通貨で生活し稀にイーサリアムでの決済やトークン操作などを行う利用者にとっては、価格変動が大きなETHを常に所有しておくことはリスクとなる。また、ETHが必要になるたびに取引所で購入しようとしても、どの程度のETHを購入しておけばよいのか見積もりが難しい。
本発明は、一側面として、トランザクション手数料に利用する暗号資産を購入することなく、分散型台帳の利用を容易にすることを目的とする。
【課題を解決するための手段】
【0005】
本発明は、上記の課題を解決するためになされたものであり、以下の形態により実現することができる。
本発明に係る第1の形態は、トランザクションに優先的な承認権を付与する優先権販売者の秘密鍵を用いて生成された、優先権承認用の電子署名を検証する検証鍵を記憶する記憶部と、前記検証鍵を用いて、分散型台帳に公開された未承認のトランザクションに付与されている電子署名を検証する検証部と、前記検証部により前記未承認のトランザクションに付与されている電子署名が前記優先権承認用の電子署名であることが検証されたとき、前記未承認のトランザクションを、前記優先権承認用の電子署名が付与されていない未承認のトランザクションよりも優先的に含むブロックを生成する生成部と、前記ブロックを前記分散型台帳に公開する公開部と、を備えることを特徴とする。
【発明の効果】
【0006】
一実施態様によれば、トランザクション手数料に利用する暗号資産を購入することなく、分散型台帳の利用を容易にすることができる。
【図面の簡単な説明】
【0007】
【
図1】本実施形態に係るネットワーク構造の一例を示す図である。
【
図3】第1実施例の優先権付与処理の流れを説明する図である。
【
図4】
図3で説明した優先権付与処理を説明するフローチャートである。
【
図5】第2実施例の優先権付与処理の流れを説明する図である。
【
図6】
図5で説明した優先権付与処理を説明するフローチャートである。
【
図7】第3実施例の優先権付与処理の流れを説明する図である。
【
図8】
図7で説明した優先権付与処理を説明するフローチャートである。
【
図9】第3実施例の優先権付与処理における他の処理の流れを説明する図である。
【
図10】
図9で説明した優先権付与処理を説明するフローチャートである。
【
図11】優先権販売装置が有する機能を示すブロック図である。
【
図12】ノード装置が有する機能を示すブロック図である。
【
図13】利用者装置が有する機能を示すブロック図である。
【
図14】代理販売者装置が有する機能を示すブロック図である。
【
図15】コンピュータ装置の一実施例を示すブロック図である。
【発明を実施するための形態】
【0008】
以下に、図面を参照して、本発明の実施の形態を詳細に説明する。
本実施形態のシステムは、分散型台帳上での暗号資産の送金などに必要なトランザクションの承認にあたり、トラザクション手数料のための暗号資産の購入をしなくてもトランザクションを優先的に承認させる権利を利用者に付与するものである。
分散型台帳は分散型台帳技術(Distributed Ledger Technology)に基づくものであり、電子署名とハッシュポインタとを使用して改ざんを検出可能な構造のデータを、ネットワーク上に分散する複数のノードに保持させるという構成を有する。分散型台帳としては、例えば、ブロックチェーンやDAG(Directed acyclic graph)などが知られている。本明細書では、分散型台帳技術としてブロックチェーンを例に挙げて説明する。
なお、DAGでは、利用者がトランザクションを作成したとき、先に公開されている未承認のトランザクションを承認する。利用者が作成したトランザクションも、後から公開される未承認のトランザクションに承認される。閾値以上の未承認のトランザクションから直接または間接的に承認されたとき、利用者が作成したトランザクションは、ネットワークで合意されたものとみなされる、というコンセンサスアルゴリズムを採用している。
上記のようにDAGは、以下で説明するブロックチェーンと、コンセンサスアルゴリズムに違いがあるものの、トランザクションの構造はブロックチェーンと同様のものを採用することができる。
したがって、分散型台帳としてブロックチェーンを利用する処理と、分散型台帳としてDAGを利用する処理とは、同様の構成のトランザクションを用いて実行することができる。このため、以下で説明する分散型台帳としてブロックチェーンを利用する処理は、分散型台帳としてDAGを利用して実行することも可能である。
【0009】
まず、本実施形態のシステムを実現する要素技術として、分散型台帳の一例としてのブロックチェーンと暗号資産の送金について概説する。
[ブロックチェーン]
ブロックチェーンとは、複数の取引情報を含むブロックを生成し、生成したブロックを連結することにより、分散型ネットワークにデータを記録するデータベースである。
ブロックには、複数の取引情報に加えて、1つ前に生成されたブロックの内容を示すハッシュ値を含むので、ブロックチェーンは、生成されたブロックが時系列に沿ってつながっていくデータ構造を有する。ビットコインやモナコイン、イーサリアム等に代表される暗号資産(仮想通貨)の基礎技術である。
【0010】
資産の取引をトランザクションというデータ形式で表現し、それをP2Pネットワークで共有する。トランザクション全体をマークルツリーでまとめあげ、マークルツリーのルートノード(マークルルート)と前ブロックのハッシュ値、Nonceと呼ばれる任意の値などをまとめたハッシュ値が一定値以下になるようなNonceを探し当てる作業を、マイニングと呼ぶ。
マイニングに成功するとマイニング報酬が得られる。そのマイニング報酬を目当てにマイニングに投入される計算資源の多さによって、古いデータほど改ざんが難しくなる仕組みを、PoW(Proof of Work)型のブロックチェーンシステムと呼ぶ。
このように、何らかの報酬を与えることで、データベースへの信頼性を担保するための資源を提供させる仕組みのことをブロックチェーンと呼ぶ。
PoW型ブロックチェーン以外にもPoS型、PoI型、PoC型のブロックチェーンも適用が可能だが説明は割愛する。
【0011】
[暗号資産の送金の仕組み]
現在主流となっている暗号資産には大きく分けて2種類がある。ビットコインから派生して開発されているライトコインやモナコインなどと、イーサリアムから派生して開発されているルートストックなどである。
前者の場合、暗号資産の実体は未使用のトランザクションのアウトプット(Unspent Transaction Output、UTXO)である。
UTXOは通常、ECDSAという楕円曲線暗号を用いた電子署名によってのみアンロック可能なようにロックされている。また、特定の秘密鍵を持つ「所有者」にのみアンロックを可能とするため、通常UTXOには秘密鍵に対応する公開鍵が記述されている。
【0012】
ノード装置は、UTXOに記述されている公開鍵に対応するECDSA電子署名を与えることによりUTXOをアンロックする。そして、ノード装置は、アンロックしたUTXOを新たなトランザクションの入力に接続し、その新たなトランザクションのUTXOに送金先の所有者の公開鍵を記述する。これにより、ブロックチェーンを用いた暗号資産の送金は実現されている。
実際には、UTXOにはScriptPubKeyと呼ばれる領域があり、そこにはScriptと呼ばれるプログラミング言語で記述されたプログラムが書いてある。そのUTXOに接続しようとするトランザクションの入力には、ScriptSigと呼ばれる領域があり、この2つがちょうど対応づいている場合に、UTXOはアンロックされる。
イーサリアムやそこから派生した暗号資産については、スマートコントラクトを用いることで同様の仕組みを実現することが出来る。
【0013】
図1は、本実施形態に係るネットワーク構造の一例を示す図である。
ネットワークは、利用者装置10(クライアント装置)と、販売者装置20(サーバ装置)と、代理販売装置40と、ネットワーク30と、ネットワーク200とを含む。そして、利用者装置10と、販売者装置20と、ネットワーク30と、はネットワーク200を介して互いに通信可能に接続されている。利用者装置10と、販売者装置20と、代理販売装置40とは、例えば後述するコンピュータ装置である。
【0014】
ネットワーク30は、P2Pネットワークなどの分散型ネットワークであり、ブロックチェーン上に取引情報を記録する。
以下の説明では、一例として、ネットワーク30は、例えば、ビットコインのコンセンサスアルゴリズムであるプルーフオブワーク(PoW)を採用しているものとして説明する。
【0015】
また、ネットワーク30内で発生した取引を記録するブロックチェーンのことをビットコインのブロックチェーンともいう。なお、ネットワーク30は、プルーフオブステーク(PoS)、プルーフオブインポータンス(PoI)、及びプルーフオブコンセンサス(PoC)などの他のコンセンサスアルゴリズムを採用してもよい。
【0016】
ネットワーク30は、マイニングを実行する複数のノード装置301から30nが通信可能に接続されている。以下の説明では、ノード装置301から30nを特に区別しないときは、ノード装置300ともいう。
プルーフオブワークにおいて、マイニングとは、ブロックに含まれるNonceを変化させながら、ブロックのデータにハッシュ関数を適用したとき、決められた数以上の0が上位に並ぶハッシュ値が得られるNonce(以下、正しいNonceともいう)を探す作業のことである。ブロックのデータには、ブロックに連結される前ブロックのデータのハッシュ値と、Nonceと、取引情報とを含む。
【0017】
ノード装置は、ブロックを生成するとき、ブロックに含むトランザクションを検証する。そして、ノード装置は、正しいトランザクションを承認し、承認したトランザクションをブロックに含ませて、Nonceを探す作業を実行する。ノード装置は、正しいNonceを発見すると、正しいNonceを含むブロックを生成し、ノード装置が保持するブロックチェーンに新たに生成したブロックを連結する。また、ノード装置は、ブロックチェーンのネットワーク上に新たに生成したブロックを送信する。そして、新たに生成したブロックは、ネットワークに接続された他のノード装置が保持するブロックチェーンにも連結される。これにより、トランザクションは、ブロックチェーン上に記録される。以下の説明では、トランザクションを含んだブロックがブロックチェーンに連結されることを、トランザクションがブロックチェーンに記録されるともいう。
ネットワーク200は、ネットワーク30に限らず、さらに他のネットワークと接続されてもよい。また、ネットワーク200は、利用者装置10及び優先権販売装置20に加えて、さらに他の取引装置と接続されてもよい。
【0018】
図2は、暗号資産の取引情報の一例を示す図である。
図2(a)は、取引情報の構成を説明する図である。
図2(b)は、取引情報を接続する処理を説明する図である。取引情報とは、暗号資産の引き渡しと、受け取りとを実行し、暗号資産の所有権を移転する処理に用いられるトランザクションのことである。
以下の説明では、トランザクションスクリプトとして、P2PKH(Pay to Public Key Hash)を用いるものとして説明する。なお、トランザクションスクリプトとして、P2PK(Pay to Public Key)を用いる場合には、UTXOをロックするScriptPubKeyは、UTXOの受領者である送信先の利用者の公開鍵を含む。また、P2PKにおいて、UTXOをアンロックするScriptSigは、UTXOの授与者であるトランザクションを作成する送信元の利用者の秘密鍵を用いて生成した電子署名を含む。
【0019】
UTXOは、トランザクションのインプットとして使われていない、未使用のトランザクションのアウトプットのことである。UTXOは、暗号資産の所有権であり、次のトランザクションのインプットとして使用される。したがって、暗号資産の送金とは、送金者によりUTXOが使用され、着金者によってのみ使用可能なUTXOが作成されることである。トランザクションのインプットとは、暗号資産の使用を処理する情報である。また、トランザクションのアウトプットとは、暗号資産の使途を処理する情報である。
Bitcoinやそこから派生した各種アルトコインにおける資産の所有とは、ブロックチェーンのデータベースに記録されているトランザクションのアウトプットのうち、未使用かつ自分でアンロックできるアウトプット(UTXO)が存在するということである。UTXOのアンロックの条件はScriptPubKeyという領域に書き込まれており、通常は所有者による電子署名でアンロックし別のトランザクション入力へ接続できるようになっている。
【0020】
電子署名は、例えば、トランザクションのScriptSigを除くデータと、前トランザクションのScriptPubKeyとを用いて得られる電子署名用の値を、トランザクションを作成する送信元の利用者の秘密鍵で暗号化した値である。前トランザクションとは、送信元の利用者が送金時に作成するトランザクションのインプットと接続される、送信元の利用者への送金情報が記述されたアウトプットを含むトランザクションのことである。電子署名用の値とは、例えば、トランザクションのScriptSigを除くデータと、前トランザクションのScriptPubKeyとを含むデータにハッシュ関数を適用して得られる値である。
【0021】
図2(a)を参照してトランザクションの構成を説明する。
トランザクションは、暗号資産の所有の移転をまとめた取引情報である。トランザクションは、インプット(input)と、アウトプット(output)とを含む。
インプットは、トランザクションを作成する送信元の利用者が所有する前トランザクションのUTXOをアンロックするための情報である。そして、インプットは、ScriptSigを含む。
ScriptSigは、送信元の利用者が所有するUTXOをアンロックするためのプログラムである。ScriptSigは、送信元の利用者の電子署名と公開鍵とを含む。ScriptSigに含まれる電子署名及び公開鍵は、送信元の利用者の秘密鍵を用いて生成された値である。
【0022】
アウトプットは、暗号資産の所有権の移転を示す情報である。アウトプットは、送金額と、ScirptPubKeyとを含む。
ScriptPubKeyは、トランザクションのアウトプットをアンロックするための条件を定義したプログラムである。ScriptPubKeyは、送信先の利用者の秘密鍵を用いて生成された公開鍵のハッシュ値(以下、公開鍵ハッシュともいう)を含む。
【0023】
図2(b)を参照してトランザクションを接続する処理を説明する。以下の説明では、一例として、接続対象の前トランザクションのアウトプット0が、新規トランザクションに接続される処理を説明する。また、各トランザクションは、ネットワーク30内で処理されるものとする。
前トランザクションのアウトプットは、送金額とScirptPubKey0とを含むアウトプット0(output0)と、送金額とScirptPubKey1とを含むアウトプット1(output1)と、を含む。アウトプット0とアウトプット1とは、それぞれIndex0とIndex1と関連付けられている。Index0とIndex1とは、それぞれアウトプット0とアウトプット1とを識別する識別子である。
【0024】
前トランザクションのアウトプット0に、新規トランザクションのインプット0が接続される。新規トランザクションのインプットが接続されるまでは、前トランザクションのアウトプット0は、UTXOの状態である。
新規トランザクションのインプット0は、ScriptSigと、前トランザクションのトランザクションハッシュと、前トランザクションのアウトプットの識別子であるIndex0とを含む。
【0025】
ScriptSig0は、前トランザクションのアウトプット0をアンロックする処理に用いられる電子署名と公開鍵とを含む。電子署名は、例えば、新規トランザクションのScriptSig0を除くデータと、前トランザクションのアプトプット0に含まれるScriptPubKey0とを用いて得られる電子署名用の値を、秘密鍵を用いて暗号化することにより生成される。このとき、秘密鍵には、新規トランザクションを作成する利用者の秘密鍵が用いられる。
トランザクションハッシュは、前トランザクション全体のハッシュ値である。そして、トランザクションハッシュは、前トランザクションを識別するためのトランザクションIDとして用いられる。Index0は、前トランザクションにおける接続先のアウトプット0を識別する識別子である。
上記の前トランザクションに含まれるアウトプット0と、新規トランザクションに含まれるインプット0とが接続される処理を説明する。以下の説明では、前トランザクションがビットコインのブロックチェーンに記録された状態であるものとする。
【0026】
取引装置は、新規トランザクションを作成し、ネットワーク30に送信することにより、各ノード装置300が備える未承認のトランザクションを記憶するメモリプール(mempool)に新規トランザクションを記憶する。ノード装置300は、新規トランザクションをメモリプールに記憶する際に、新規トランザクションの入力に書かれているトランザクションIDとIndex0とを参照し、ブロックチェーン上のトランザクションを検索する。ノード装置300は、トランザクションIDに対応する前トランザクションを発見し、さらに、Index0に対応するアウトプット0を発見する。
【0027】
そして、ノード装置300は、インプット0に含まれるScriptSig0と、アウトプット0に含まれるScriptPubKey0とを連結する。これにより、ノード装置300は、ScriptSig0に含まれる公開鍵のハッシュ値と、ScriptPubKey0に含まれる公開鍵ハッシュとの一致を検証する第1検証を実行する。さらに、ノード装置300は、ScriptSig0に含まれる電子署名と公開鍵とを用いて電子署名を検証する第2検証を実行する。ノード装置300は、第1検証と第2検証とがともにパスした場合に限り、前トランザクションのアウトプット0と新規トランザクションのインプット0とを接続する。
そして、ノード装置300は、検証の結果、正当な所有者によって作成されたことを確認した新規トランザクションをブロックに含ませて、Nonceを探す作業を実行する。ノード装置300は、正しいNonceを発見すると、正しいNonceが含まれるブロックを生成し、ノード装置300が保持するブロックチェーンに新たに生成したブロックを連結する。また、ノード装置300は、ブロックチェーンのネットワーク上に新たに生成したブロックを送信する。これにより、新たに生成したブロックは、ネットワークに接続された他のノード装置が保持するブロックチェーンにも連結され、新規トランザクションがブロックチェーンに記録される。
下記にも説明するとおり、ノード装置300は、マイニング報酬を受け取るためのコインベーストランザクションと呼ばれるトランザクション(入力が空でマイナー宛てに所定の報酬を送金するトランザクション)を含んだマークルツリーを構築し、そのマークルルートを含んだブロックのNonceを探索する。
【0028】
以下、本実施形態のシステムについて詳しく説明する。
図1に示すシステムにおいて、利用者装置10は、システムの利用者が利用する端末装置である。利用者は、例えばスマートコントラクト上において、暗号資産の送金による決済を行う。利用者装置10は、例えば、利用者が暗号資産を送金するためのトランザクションを作成する。
優先権販売装置20は、トランザクションの優先的な承認権を販売する優先権販売者が利用する装置である。優先権販売者は、例えばノード装置300で実行するノードプログラム(マイニングプログラム)の開発者であってもよい。なお、以下の説明では優先的な承認権を優先権と記載する場合がある。
優先権販売者は、トランザクションを発行したい利用者から、トランザクション手数料の相当額の対価を受け取ることにより、トランザクションを優先的に承認させる。
優先権販売者に対する対価の支払いは、現金等の法定通貨や暗号資産によって行うことが出来る。
利用者が対価の支払いを行うと、優先権販売装置20は、利用者装置10が作成したトランザクションに対する電子署名を、優先権販売者の秘密鍵を用いて生成する。
優先権販売装置20は、利用者装置10が作成したトランザクションに優先権販売者の秘密鍵を用いて生成した電子署名を付した優先権付きトランザクションを作成し、利用者に代わってネットワークに公開する。
優先権販売者の電子署名を利用者に渡し、優先権販売者の電子署名を付した優先権付きトランザクションを、利用者がネットワークに公開するようにしてもよい。
優先権販売者の電子署名は、トランザクションのデータブロックの一部として公開してもよいし、トランザクションとは別にネットワークに公開してもよい。
代理販売装置40は、優先権販売者を代理してトランザクションの優先的な承認権を販売する代理販売者が利用する装置である。後に詳しく説明する。
【0029】
なお本明細書においてトランザクションに付与される電子署名は、具体的にはデジタル署名である。電子署名とはデジタル署名を含む上位概念を示す用語である。デジタル署名が、ECDSA署名などの署名アルゴリズムや電子データに付される署名自体を表すのに対し、電子署名はデジタル署名等を用いて何かを証明する機能を指す。電子署名の機能とは、大別して、ある電子データに対する電子署名をおこなった者がその電子データを作成した者であることを証明すること、電子署名後にその電子データが改変されていないことを証明すること、の2点である。
デジタル署名に対する検証鍵(デジタル署名を生成する際に用いた秘密鍵と対になる公開鍵)とデジタル署名とを組み合わせたものをデジタル証明書と呼ぶ。デジタル署名や、このようなデジタル証明書などが、電子署名の一例である。
【0030】
ノード装置300は、新規ブロックのマイニングを開始する際に、ネットワークに公開されてメモリプール内に記憶した未承認トランザクションからブロックに含めるトランザクションを選択する。
そして、ノード装置300は、選択したトランザクションからマークルツリーを構成し、ブロックのマイニングを開始する。
その際に、メモリプール内に優先権付きトランザクションが存在すると(優先権付きトランザクションがネットワーク30に公開されていると)、ノード装置300はこのトランザクションを優先的にブロックに含めてマイニングを行って承認し、ブロックチェーンに組み込む。
ここで、「優先的に」とは、メモリプール内に記憶された未承認トランザクションのうち、優先権販売者の電子署名が付与されていない、または優先権販売者の電子署名と関連付けられていないトラザクションと比較して優先的に、という意味である。
【0031】
ノード装置300は、メモリプール内に記憶された未承認トランザクションに含まれる電子署名が優先権販売装置20のものであるか否かを確認する。そして、ノード装置300は、電子署名が優先権販売のものであるとき、未承認トランザクションが、利用者から優先権販売者に対して対価を支払ったことにより発行された優先権付きトランザクションであると認める。
優先権販売者の電子署名は、利用者が優先権販売者に対して支払いをしたことに基づいて、トランザクションが優先的に処理される権利を有することをノード装置300に証明するものである。
【0032】
なお、優先権販売装置20に対してより多くの現金等を支払った利用者のトランザクションがより優先的に承認されるようにしてもよい。この場合には、優先権販売装置20は、例えば、利用者が支払った金額に応じて優先度をランク付けした電子署名を発行する。優先権販売装置20は、優先度を示す値とともに電子署名を付与してもよい。
そして、ノード装置300は、メモリプール内に優先権付きトランザクションが複数存在する場合、これらのうち優先度がより高い優先権付きトランザクションを優先的にブロックに取り込んで承認する処理をする。
【0033】
本実施形態のシステムにおいて、ノード装置300は、優先権販売者の電子署名を検証する検証鍵として、優先権販売者の公開鍵を保持する。すなわち、ノード装置300が優先権販売者の電子署名を検証可能なように、ノードプログラムには、優先権販売者としてのノード開発者の秘密鍵に対応する公開鍵が含まれる。優先権販売者の公開鍵は、ノードプログラムとは別途ノード装置300に供給されてもよい。例えば、優先権販売者の公開鍵は、トランザクションに付与され、トランザクションとともに公開されてもよい。
ノード装置300は、ブロックに追加されていない未承認トランザクションを一時的に記憶する記憶領域であるメモリプールを備える。
ノード装置300は、メモリプールに記憶された未承認トランザクションの中から、優先権販売者の公開鍵によって検証された電子署名を含む優先権付きトランザクションを検証して優先的にブロックに含める。
複数の異なる優先権販売者の公開鍵を保持し、優先権販売装置20が複数ある場合に対応してもよい。
【0034】
以上の仕組みにより、利用者は、トランザクションが優先的に承認される権利を法定通貨や暗号資産によって購入することができる。
イーサリアムの送金であればトランザクション手数料分のETHを考慮せず送金額分だけのETHを購入すればよいし、トークン移転などスマートコントラクトの操作であれば、手数料分のETHを購入する必要もない。従って、上記に説明した理由によって大きく変動するトランザクション手数料に必要なETHの額を見積もるという難しい作業が不要となる。
また、優先権販売装置20が介在することで、トランザクション手数料に相当する現金等と、トランザクション手数料分のイーサリアムとの換金レートを一定にすることができ、送金手段としてのイーサリアムの利便性をより高めることが出来る。
トランザクション手数料のためにイーサリアムを購入するための取引所への手数料を節約することも可能となる。
【0035】
ところで、マイニングに成功したマイナーのノード装置300は、マイニング報酬として受け取るためにコインベーストランクザクションを公開することにより、一定量の暗号資産をマイニング報酬として受け取ることができる。コインベーストランクザクションがネットワーク内で承認されると、ノード装置300のマイナーは、マイニング報酬を受け取ることが出来る。
単純に優先権を付与できるようにすると、マイナーにとってはそのトランザクションを承認するモチベーションがなくなるという問題が起こり得る。
【0036】
それに対して、例えば優先権付きトランザクションを承認することで、ネットワーク全体で合意された報酬額よりも多くの報酬を受け取ることができるようにしてもよい。
例えば、新しいブロックを生成するとき、マイナーは、ブロックに含まれる優先権付きトランザクションの数に、事前にネットワーク全体で合意した係数を乗じた値に対応する、追加する暗号資産の量を求める。さらに、マイナーは、通常のマイニング報酬に、求めた量の暗号資産を加えたマイニング報酬を受け取るためのコインベーストランザクションを作成する。そして、マイナーは、作成したコインベーストランザクションを新たに作成するブロックに含む処理をしてもよい。
例えばイーサリウムにおいて、マイナーは、優先権付きトランザクションを2つ承認したとき、優先権付きトランザクションの承認数2に係数0.1を乗じた0.2に対応する0.2ETHを追加のマイニング報酬とする。すなわち、マイナーは、通常のマイニング報酬3.0ETHの場合、通常のマイニング報酬3.0ETHに追加するマイニング報酬0.2ETHを加えた3.2ETHを、マイニング報酬としてコインベーストランザクションのアウトプットに書き込んでもよい。
マイニング報酬を増加させる係数の値は、優先権付きトランザクションを承認した数によって、増減するように設定されてもよい。
このように、本実施形態の優先権付与システムは、優先権付きトランザクションを含む新しいブロックを生成したマイナーに、本来のマイニング報酬よりも多額のマイニング報酬を与える。これにより、優先権付与システムは、優先権付きトランザクションを優先的にブロックに含める処理がマイナーにとって不利益にならないようにし、かつ優先権付きトランザクションを優先的に新しいブロックに含めるモチベーションをマイナーに与える。したがって、優先権付与システムは、マイナーたちのコミュニティから本実施形態のマイニングプログラムを利用する合意を得やすくする。
【0037】
優先権付きトランザクションを承認したマイナーのノード装置300は、承認した優先権付きトランザクションの数に応じて、通常のマイニング報酬よりも高額の報酬を受け取るコインベーストランクザクションを作成して公開する。
コインベーストランザクションを予め含めた状態でブロックをマイニングするため、コインベーストランザクションは必ず承認される。コインベーストランザクションを含む新規ブロックが、他のネットワーク内ノードによって承認された場合、通常のマイニング報酬より多いマイニング報酬をマイナーに与えることになるが、事前に合意された範囲内でマイニング報酬を記載したコインベーストランザクションは承認される。よって、マイナーは、優先権付きトランザクションを承認したことによるマイニング報酬を得ることが出来る。逆に、ネットワークとして合意された範囲を超える報酬額を記載したコインベーストランザクションは他のネットワーク内ノードによって承認されず、マイニング報酬を得ることは出来ない。
【0038】
さらに優先権販売装置20は、ネットワークが混雑してトランザクションが承認されにくい場合、例えば、利用者からの法定通貨の追加の入金を受けて、さらにプレミアを上乗せした優先権付きトランザクションを公開しなおすことが出来る。
例えば優先権販売装置20は、利用者から取得したトランザクションに、通常のマイニング報酬に対して上乗せするプレミア価格を追記する。
優先権販売装置20は、トランザクションに対して、優先権販売者の電子署名に加えプレミアの価格を追加した優先権付きトランザクションを新たに生成して公開する。
以前に公開した優先権付きトランザクションは、新しい優先権付きトランザクションが公開されると破棄される。
【0039】
本実施形態の優先権付与システムを詳細に説明する。
以下の説明では、説明の簡単化のため、ブロックチェーンを介した送金処理における各トランザクションのアウトプットには、1つのアウトプットが含まれるものとし、アウトプットをIndexに応じて参照する処理の説明を省略する。また、トランザクションスクリプトとして、P2PKHを用いるものとする。
[第1実施例]
第1実施例では、送金を行う利用者に替わり、優先権販売装置20が優先権付きトランザクションをネットワークに公開する。
【0040】
図3は、第1実施例の優先権付与処理の流れを説明する図である。
ステップ(11)において、システムの利用者は、優先権販売装置20を管理する優先権販売者に対して、法定通貨である現金等を支払う。あるいは、利用者は、暗号資産によって支払いを行ってもよい。優先権販売装置20に対する送金額はトランザクション手数料の相当額であり、優先権販売装置20で任意に設定することが出来る。例えば、前日に承認されたトラザクション数に応じて金額を変えてもよい。また、例えば100の優先権を購入した翌日は一定額、あるいは一定割合値引きをしてもよい。
現金等の支払いは、優先権販売装置20に対して直接行われるのではなく、例えばコンビニエンスストアの収納代行サービスなどを介して優先権販売者に行うことになる。現金等の支払いは、販売者の銀行口座への振り込みや、クレジットカード払い、暗号資産の送金であってもよい。なお、現金等の支払いは優先権販売者に対して直接行ってもよい。
利用者は、予めまとまった金額を優先権販売者支払っておいて、優先権を得るために電子署名の発行を受ける度にトランザクション手数料分を残高から減らすようにしてもよい。また、利用者は、優先権を得るために電子署名の発行を受ける度に、トランザクション手数料に相当する金額を優先権販売者支払うようにしてもよい。
【0041】
ステップ(12)において、利用者は、自身の端末装置(利用者装置10)を用いて、トランザクションTxAを作成し、優先権販売装置20に送信する。
ステップ(13)において、優先権販売装置20は、トランザクションTxA又はトランザクションTxAのハッシュを優先権販売者の秘密鍵Prk_Aを用いて暗号化した値を含む電子署名Sig_Aを生成する。
【0042】
ステップ(14)において、優先権販売装置20は、トランザクションTxAに電子署名Sig_A、電子署名Sig_Aの署名検証鍵としての優先権販売者の公開鍵PuK_Aを付与した優先権付きトランザクションTxPをブロックチェーン(ネットワーク30)に公開する。公開鍵PuK_Aがノードプログラムに含まれている(ノード装置300が、公開鍵PuK_Aを予め記憶部に保持している)場合は、優先権付きトランザクションTxPが公開鍵PuK_Aを含む必要がない。
優先権付きトランザクションTxPは、ScriptPubKeyに送金先のアドレスを含む。また、優先権付きトランザクションTxPは、ScriptSigに利用者の電子署名、及び利用者の公開鍵を含む。
優先権販売者の電子署名Sig_A、優先権販売者の公開鍵PuK_Aは、例えば、優先権付きトランザクションTxPのトランザクションデータの末尾などに記載してもよい。そして、電子署名Sig_A、公開鍵PuK_Aはトランザクションハッシュ(トランザクションID)、及び電子署名の生成には用いないようにする。なお、電子署名Sig_A、公開鍵PuK_Aは、トランザクションハッシュ、及び電子署名の生成に用いないようにすることが可能であれば、優先権付きトランザクションTxPの任意の位置に記載してもよい。
【0043】
電子署名Sig_A、公開鍵PuK_Aが優先権付きトランザクションTxPのScriptSigに記載されると、トランザクションハッシュがトランザクションTxAから変化してしまう。また電子署名Sig_A、公開鍵PuK_Aが優先権付きトランザクションTxPのOP_RETURNに記載されると、署名対象データが変化するため、ScriptSigに含まれる利用者の電子署名が無効になる。
このような不具合を防ぐため、優先権販売装置20は、電子署名Sig_A、公開鍵PuK_Aをトランザクションデータの末尾に記載し、トランザクションハッシュの算出対象外とする。
下記のように公開鍵PuK_Aがノードプログラムに含まれている(ノード装置300が、公開鍵PuK_Aを予め記憶部に保持している)場合は、優先権付きトランザクションTxPが公開鍵PuK_Aを含む必要がない。
ステップ(15)において、ノード装置300は、公開されている優先権付きトランザクションTxPを検証する。
ノード装置300による検証処理には、メモリプール内に記憶された未承認トランザクションに記載されている電子署名を、公開鍵PuK_Aを用いて検証する処理を含む。検証の結果、ノード装置300は、優先権販売者の電子署名Sig_Aが付与されていた未承認トランザクションを優先権付きトランザクションTxPであると認める。
【0044】
ステップ(16)において、ノード装置300は、マイニング報酬を獲得するためのコインベーストランザクションを作成する。そして、ノード装置300は、ブロックに含めるべきトランザクションを選択してマークルツリーを構築し、マークルルートを含むブロックデータを作成する。
ノード装置300は、ブロックに含めるべきトランザクションを選択するときに、優先権付きトランザクションTxPを、優先権販売者の電子署名Sig_Aが付与されていないトランザクションと比べて優先的に含む選択する。
ステップ(17)において、ノード装置300は、ブロックに対するマイニングを実行する。
ステップ(18)において、マイニングに成功したノード装置300は、コインベーストランザクションや優先権付きトランザクションTxPを含むブロックをネットワークに公開する。
【0045】
優先権販売者の電子署名及び署名検証鍵は、上記のように優先権付きトランザクションTxPの末尾に追加される。
優先権販売装置20は、優先権付きトランザクションTxPを構成せず、優先権販売者の電子署名及び署名検証鍵とトランザクションTxAとを別途公開してもよい。
ノード装置300が、優先権販売者の署名検証鍵(公開鍵)PuK_Aを予め記憶部に保持しておいてもよい。この場合には、優先権販売装置20が優先権付きトランザクションTxPとともに署名検証鍵(公開鍵)PuK_Aを公開しなくてもよい。
【0046】
図4は、
図3で説明した優先権付与処理を説明するフローチャートである。
ステップS101において、利用者は販売者に対して現金を支払う。
ステップS102において、利用者装置10は、トランザクションTxAを作成する。
ステップS103において、利用者装置10は、トランザクションTxAを優先権販売装置20送信する。
ステップS104において、優先権販売装置20は、トランザクションTxAと優先権販売者の秘密鍵Prk_Aを用いて電子署名Sig_Aを作成する。
ステップS105において、優先権販売装置20は、電子署名Sig_Aを付した送金トランザクションを作成する。
【0047】
ステップS106において、優先権販売装置20は、作成した電子署名Sig_Aを付した優先権付きトランザクションTxPをネットワーク30に公開する。
ステップS107において、ノード装置300は、ネットワーク30に公開され、メモリプールに記憶した優先権付きトランザクションTxPを検証する。
ステップS108において、ノード装置300は、優先権付きトランザクションTxPに付与された電子署名を、優先権販売者の公開鍵PuK_Aを用いて検証する。
ステップS109において、ノード装置300は、優先権付きトランザクションTxPとコインベーストランザクションを含むブロックを生成する。メモリプール内に記憶された未承認トランザクションが優先権付きトランザクションTxPを含む場合、ノード装置300は、優先権付きトランザクションTxPを優先権付きトランザクションTxP以外のトランザクションよりも優先してブロックに含める。
ステップS110において、ノード装置300は、マイニングを実行する。マイニングに成功した場合に、ノード装置300は、コインベーストランザクション、優先権付きトランザクションTxPを含むブロックをネットワーク30に公開する。
【0048】
[第2実施例]
第2実施例は、第1実施例の変形であり、優先権販売装置20が優先権付きトランザクションを公開するのではなく、利用者が利用者装置10を用いて優先権付きトランザクションを公開する。また第2実施形態は、第1実施形態と同様に優先権販売者の電子署名及び公開鍵を優先権付きトランザクションの末尾に記載する構成を採用することができる。
【0049】
図5は、第2実施例の優先権付与処理の流れを説明する図である。
ステップ(31)において、システムの利用者は、優先権販売装置20を管理する優先権販売者に対して、トランザクション手数料の相当額を支払う。システムの利用者によるトランザクション手数料の相当額の支払いは、例えば、第1実施形態の支払い方法と同様の処理を用いて支払らわれる。
ステップ(32)において、利用者は、自身の端末装置(利用者装置10)を用いて、トランザクションTxAを作成し、優先権販売装置20に送信する。
ステップ(33)において、優先権販売装置20は、トランザクションTxA又はトランザクションTxAのハッシュを優先権販売者の秘密鍵Prk_Aを用いて暗号化した値を含む電子署名Sig_Aを生成し、電子署名Sig_Aを利用者装置10に送信する。
優先権販売装置20は、電子署名Sig_Aの署名検証鍵としての公開鍵PuK_Aも利用者装置10に送信する。下記のように公開鍵PuK_Aがノードプログラムに含まれている(ノード装置300が、公開鍵PuK_Aを予め記憶部に保持している)場合は、優先権販売装置20が公開鍵PuK_Aを送付する必要がない。
【0050】
ステップ(34)において、利用者装置10は、トランザクションTxAに優先権販売装置20から受信した電子署名Sig_A、電子署名Sig_Aの署名検証鍵としての優先権販売者の公開鍵PuK_Aを付与した優先権付きトランザクションTxPをブロックチェーン(ネットワーク30)に公開する。
優先権付きトランザクションTxPは、ScriptPubKeyに送金先のアドレスを含む。また、優先権付きトランザクションTxPは、ScriptSigに利用者の電子署名、及び利用者の公開鍵を含む。
上記と同じ理由から、電子署名Sig_A、公開鍵PuK_Aは、優先権付きトランザクションTxPのトランザクションデータの末尾に記載される。そして、電子署名Sig_A、公開鍵PuK_Aはトランザクションハッシュ(トランザクションID)の算出対象外である。
【0051】
ステップ(35)において、ノード装置300は、公開されている優先権付きトランザクションTxPを検証する。
ノード装置300による検証処理には、メモリプール内に記憶された未承認トランザクションに記載されている電子署名を、優先権販売者の公開鍵PuK_Aを用いて検証する処理を含む。検証の結果、ノード装置300は、優先権販売者の電子署名Sig_Aが付与されていた未承認トランザクションを優先権付きトランザクションTxPであると認める。
ステップ(36)において、ノード装置300は、マイニング報酬を獲得するためのコインベーストランザクションを作成する。そして、ノード装置300は、ブロックに含めるべきトランザクションを選択してマークルツリーを構築し、マークルルートを含むブロックデータを作成する。
ノード装置300は、ブロックに含めるべきトランザクションを選択するときに、優先権付きトランザクションTxPを、優先権販売者の電子署名Sig_Aが付与されていないトランザクションと比べて優先的に選択する。
ステップ(37)において、ノード装置300は、ブロックに対するマイニングを実行する。
ステップ(38)において、マイニングに成功したノード装置300は、コインベーストランザクションや優先権付きトランザクションTxPを含むブロックをネットワークに公開する。
【0052】
優先権販売者の電子署名Sig_A及び署名検証鍵(公開鍵)PuK_Aは、上記のように優先権付きトランザクションTxPの末尾に記載される。
利用者装置10は、優先権付きトランザクションTxPを構成せず、優先権販売者の電子署名Sig_A及び公開鍵PuK_Aと、トランザクションTxAとを別途公開してもよい。
ノード装置300が、優先権販売者の公開鍵PuK_Aを予め記憶部に保持しておいてもよい。この場合には、優先権販売装置20は、利用者装置10に公開鍵PuK_Aを送信しなくてもよいし、利用者装置10が優先権付きトランザクションTxPとともに公開鍵PuK_Aを公開しなくてもよい。
【0053】
図6は、
図5で説明した優先権付与処理を説明するフローチャートである。
以下の説明では、トランザクションスクリプトとして、P2PKHを用いるものとして説明する。
ステップS201において、利用者は販売者に対して現金を支払う。
ステップS202において、利用者装置10は、トランザクションTxAを作成する。
ステップS203において、利用者装置10は、作成したトランザクションTxAを優先権販売装置20送信する。
ステップS204において、優先権販売装置20は、トランザクションTxAと優先権販売者の秘密鍵Prk_Aを用いて電子署名Sig_Aを作成する。
ステップS205において、優先権販売装置20は、作成した電子署名Sig_Aを利用者装置10に送信する。
ステップS206において、利用者装置10は、電子署名Sig_Aを付した優先権付きトランザクションTxPを作成する。
【0054】
ステップS207において、利用者装置10は、トランザクションTxPをネットワーク30に公開する。
ステップS208において、ノード装置300は、ネットワーク30に公開され、メモリプールに記憶した優先権付きトランザクションTxPを検証する。
ステップS209において、ノード装置300は、優先権付きトランザクションTxPに付与された電子署名を検証する。
ステップS210において、ノード装置300は、優先権付きトランザクションTxPとコインベーストランザクションを含むブロックを生成する。メモリプール内に記憶された未承認トランザクションが優先権付きトランザクションTxPを含む場合、ノード装置300は、優先権付きトランザクションTxPを優先権付きトランザクションTxP以外のトランザクションよりも優先してブロックに含める。
ステップS211において、ノード装置300は、マイニングを実行する。マイニングに成功した場合に、ノード装置300は、コインベーストランザクション、優先権付きトランザクションTxPを含むブロックをネットワーク30に公開する。
【0055】
[第3実施例]
また利用者は、トランザクション手数料に相当する対価の支払いを優先権販売者に行うのではなく、優先権販売者の代理者(代理店)である代理販売者に対して行ってもよい。
図7は、第3実施例の優先権付与処理の流れを説明する図である。
ステップ(51)において、優先権販売装置20は、優先権販売者の秘密鍵(第1秘密鍵)を用いて電子署名Sig_A(第1電子署名)を生成し、代理販売装置40に送信する。
ステップ(52)において、利用者は現金等を代理販売装置40(代理販売者)に対して支払い、ステップ(53)において、トランザクションTxAを代理販売装置40に送信する。
利用者による対価の支払いとトランザクションTxAの送信をうけて、ステップ(54)において、代理販売装置40は、トランザクションTxA又はトランザクションTxAのハッシュを代理販売者の秘密鍵Prk_B(第2秘密鍵)を用いて暗号化した値を含む電子署名Sig_B(第2電子署名)を生成する。
【0056】
ステップ(55)において、代理販売装置40は、トランザクションTxAに、優先権販売者の電子署名Sig_Aと、代理販売者の電子署名Sig_Bと、代理販売者の公開鍵Puk_Bを付与した優先権付きトランザクションTxPをネットワーク30に公開する。
代理販売者の公開鍵Puk_Bは、代理販売者の秘密鍵Prk_Bとペアになり、電子署名Sig_Bを検証するための署名検証鍵(第2検証鍵)となる。
優先権付きトランザクションTxPは、ScriptPubKeyに送金先のアドレスを含む。
また、優先権付きトランザクションTxPは、ScriptSigに利用者の電子署名、及び利用者の公開鍵を含む。
優先権販売者の電子署名Sig_A、代理販売者の電子署名Sig_B、代理販売者の公開鍵Puk_Bは、例えば、優先権付きトランザクションTxPのトランザクションデータの末尾などに記載してもよい。そして、電子署名Sig_A、電子署名Sig_B、公開鍵Puk_Bはトランザクションハッシュ、及び電子署名の生成には用いないようにする。なお、電子署名Sig_A、電子署名Sig_B、公開鍵Puk_Bは、トランザクションハッシュ、及び電子署名の生成に用いないようにすることが可能であれば、優先権付きトランザクションTxPの任意の位置に記載してもよい。
優先権販売者の電子署名Sig_A、代理販売者の電子署名Sig_B、代理販売者の公開鍵Puk_Bが優先権付きトランザクションTxPのScriptSigに記載されると、トランザクションハッシュがトランザクションTxAから変化してしまう。また電子署名Sig_A、公開鍵PuK_Aが優先権付きトランザクションTxPのOP_RETURNに記載されると、署名対象データが変化するため、ScriptSigに含まれる利用者の電子署名が無効になる。
このような不具合を防ぐため、優先権販売者の電子署名Sig_A、代理販売者の電子署名Sig_B、代理販売者の公開鍵Puk_Bをトランザクションデータの末尾に記載し、トランザクションハッシュの算出対象外とする。
【0057】
ステップ(56)において、ノード装置300は、ネットワーク30に公開され、ノード装置300のメモリプールに記憶されている未承認トランザクションに付与されている複数の電子署名を検証する処理を行う。
ノード装置300は、優先権販売者の電子署名Sig_Aを検証するための署名検証鍵(第1検証鍵)として、優先権販売者の秘密鍵Prk_Aと対になる公開鍵Puk_Aを保持している。あるいは、公開鍵Puk_Aが優先権付きトランザクションTxPに付与されていてもよい。
ノード装置300は、優先権販売者の公開鍵Puk_Aを用いて、未承認トランザクションに付与されている電子署名に優先権販売者の電子署名Sig_Aが含まれているか否かを検証する。
【0058】
未承認トランザクションに優先権販売者の電子署名Sig_Aが含まれていることが検証されると、ノード装置300は、未承認トランザクションに付されている代理販売者の公開鍵Puk_Bを用いて、未承認トランザクションに付与されている電子署名に代理販売者の電子署名Sig_Bが含まれているか否かを検証する。
代理販売者の電子署名Sig_Bが含まれていることが検証されると、ノード装置300は、未承認トランザクションが、優先権販売装置20によって優先権を付与された優先権付きトランザクションTxPであると認める。
その後ノード装置300は、
図3のステップ(16)~(18)などの場合と同様に、、優先権付きトランザクションTxPを、代理販売者の電子署名Sig_Bが付与されていないトランザクションよりも優先的に含むブロックを生成する。そして、マイニングに成功したノード装置300は、生成したブロックを分散型台帳に公開する。
【0059】
図5、
図6で説明した場合と同様に、優先権販売者の電子署名Sig_Aと、代理販売者の電子署名Sig_Bと、代理販売者の公開鍵Puk_Bと、を利用者装置10に送信してもよい。
そして利用者装置10が、優先権販売者の電子署名Sig_Aと、代理販売者の電子署名Sig_Bと、代理販売者の秘密鍵Prk_Bと対になる公開鍵と、を付与した優先権付きトランザクションTxPをブロックチェーン(ネットワーク30)に公開してもよい。
【0060】
図8は、
図7で説明した優先権付与処理を説明するフローチャートである。
以下の説明では、トランザクションスクリプトとして、P2PKHを用いるものとして説明する。
ステップS301において、優先権販売装置20は、優先権販売者の秘密鍵Prk_Aで電子署名Sig_Aを作成する。
ステップS302において、優先権販売装置20は、電子署名Sig_Aを代理販売装置40に送信する。
ステップS303において、利用者は販売者に対して現金を支払う。
ステップS304において、利用者装置10は、トランザクションTxAを作成する。
ステップS305において、利用者装置10は、作成したトランザクションTxAを代理販売装置40に送信する。
ステップS306において、代理販売装置40は、トランザクションTxAと代理販売者の秘密鍵Prk_Bを用いて電子署名Sig_Bを生成する。
【0061】
ステップS307において、代理販売装置40は、電子署名Sig_Aと、電子署名Sig_Bを付した優先権付きトランザクションTxPを作成する。
ステップS308において、代理販売装置40は、電子署名Sig_Aと、電子署名Sig_B付した優先権付きトランザクションTxPをネットワーク30に公開する。
ステップS309において、ノード装置300は、ネットワーク30に公開されてメモリプールに記憶した優先権付きトランザクションTxPを検証する。
ステップS310において、ノード装置300は、優先権付きトランザクションTxPに付与された電子署名を検証する。
ステップS311において、ノード装置300は、優先権付きトランザクションTxPとコインベーストランザクションを含むブロックを生成する。メモリプール内に記憶された未承認トランザクションが優先権付きトランザクションTxPを含む場合、ノード装置300は、優先権付きトランザクションTxPを優先権付きトランザクションTxP以外のトランザクションよりも優先してブロックに含める。
ステップS311において、ノード装置300は、マイニングを実行する。マイニングに成功した場合に、ノード装置300は、コインベーストランザクション、優先権付きトランザクションTxPを含むブロックをネットワーク30に公開する。
【0062】
図9は、第3実施例の優先権付与処理における他の処理の流れを説明する図である。
図9の例では、
図7とは異なり、署名検証鍵として代理販売者の公開鍵PuK_BをトランザクションTxPに付すのではなく、別途ノード装置300に配布する。
ステップ(71)において、優先権販売装置20は、優先権販売者の秘密鍵(第1秘密鍵)を用いて電子署名Sig_A(第1電子署名)を生成し、代理販売装置40に送信する。
ステップ(72)において、利用者は現金等を代理販売装置40(代理販売者)に対して支払い、ステップ(73)において、トランザクションTxAを代理販売装置40に送信する。
対価の支払いとトランザクションTxAの送信をうけて、ステップ(74)において、代理販売装置40は、電子署名Sig_B(第2電子署名)を生成する。電子署名Sig_Bは、トランザクションTxA又はトランザクションTxAのハッシュを代理販売者の秘密鍵Prk_B(第2秘密鍵)を用いて暗号化した値を含む。
ステップ(75)において、代理販売装置40は、優先権販売者の電子署名Sig_Aを付した代理販売者の公開鍵をノード装置300に送信する。
【0063】
ノード装置300は、優先権販売者の電子署名Sig_Aを検証するための署名検証鍵として、優先権販売者の秘密鍵Prk_Aと対になる公開鍵PuK_Aを保持している。あるいは、公開鍵Puk_Aが優先権付きトランザクションTxPに付与されていてもよい。
ステップ(76)において、ノード装置300は、優先権販売者の公開鍵PuK_Aを用いて、ノード装置300から送信された代理販売者の公開鍵PuK_Bに付与されている電子署名を検証する。
ノード装置300は、優先権販売者の電子署名Sig_Aが付与されており優先権を証明する代理販売者の公開鍵PuK_Bであることが確かめられた公開鍵PuK_Bを、記憶部に記憶する。
ステップ(77)において、代理販売装置40は、トランザクションTxAに、代理販売者の電子署名Sig_Bを付与した優先権付きトランザクションTxPをネットワーク30に公開する。
すなわち、優先権付きトランザクションTxPは、ScriptPubKeyに送金先のアドレスを含む。また、優先権付きトランザクションTxPは、ScriptSigに代理販売者の電子署名Sig_B、利用者の電子署名、及び利用者の公開鍵を含む。
【0064】
ノード装置300は、ネットワーク30に公開されてメモリプールに記憶されている未承認トランザクションに付与されている電子署名を検証する処理を行う。
ノード装置300は、ステップ(76)で検証した代理販売者の公開鍵PuK_Bを用いて、未承認トランザクションに付与されている電子署名に代理販売者の電子署名Sig_Bが含まれているか否かを検証する。
代理販売者の電子署名Sig_Bが含まれていることが検証されると、ノード装置300は、未承認トランザクションが、優先権販売装置20によって優先権を付与された優先権付きトランザクションTxPであると認める。
その後ノード装置300は、
図3のステップ(16)~(18)などの場合と同様に、、優先権付きトランザクションTxPを、代理販売者の電子署名Sig_Bが付与されていないトランザクションよりも優先的に含むブロックを生成する。そして、マイニングに成功したノード装置300は、生成したブロックを分散型台帳に公開する。
【0065】
この場合も、
図5、
図6で説明した場合と同様に、優先権販売者の電子署名Sig_Aと、代理販売者の電子署名Sig_Bと、を利用者装置10に送信してもよい。そして利用者装置10が、優先権販売者の電子署名Sig_Aと、代理販売者の電子署名Sig_Bと、を付与した優先権付きトランザクションTxPをブロックチェーン(ネットワーク30)に公開してもよい。
なお、代理販売装置40による、優先権販売者の電子署名Sig_Aを付した代理販売者の公開鍵の送信タイミングは、上記限定されることはない。
例えば、電子署名Sig_Aを付した代理販売者の公開鍵は、利用者による現金の支払い後、ノード装置300によるトランザクションTxPの検証までにノード装置300に送信されればよい。
ノード装置300による、優先権販売者の電子署名Sig_Aを付した代理販売者の公開鍵の検証についても同様であり、利用者による現金の支払い後、ノード装置300によるトランザクションTxPの検証までに行われればよい。
【0066】
図10は、
図9で説明した優先権付与処理を説明するフローチャートである。
以下の説明では、トランザクションスクリプトとして、P2PKHを用いるものとして説明する。
ステップS401において、優先権販売装置20は、優先権販売者の秘密鍵Prk_Aで電子署名Sig_Aを作成する。
ステップS402において、優先権販売装置20は、電子署名Sig_Aを代理販売装置40に送信する。
ステップS403において、利用者は販売者に対して現金を支払う。
ステップS404において、利用者装置10は、トランザクションTxAを作成する。
ステップS405において、利用者装置10は、作成したトランザクションTxAを代理販売装置40に送信する。
ステップS406において、代理販売装置40は、代理販売者の秘密鍵Prk_Bで電子署名Sig_Bを生成する。
【0067】
ステップS407において、代理販売装置40は、優先権販売者の電子署名Sig_Aを付した代理販売者の公開鍵を作成する。
ステップS408において、代理販売装置40は、優先権販売者の電子署名Sig_Aを付した代理販売者の公開鍵をノード装置300に送信する。
ステップS409において、ノード装置300は、優先権販売者の公開鍵Puk_Aで、代理販売者の公開鍵に付与されている優先権販売者の電子署名Sig_Aを検証する。
ステップS410において、代理販売装置40は、代理販売者の電子署名Sig_Bを付した優先権付きトランザクションTxPを作成する。
ステップS411において、代理販売装置40は、代理販売者の電子署名Sig_B付した優先権付きトランザクションTxPをネットワーク30に公開する。
ステップS412において、ノード装置300は、優先権付きトランザクションTxPを検証する。
ステップS413において、ノード装置300は、優先権付きトランザクションTxPに付与された電子署名を検証する。
ステップS414において、ノード装置300は、優先権付きトランザクションTxPとコインベーストランザクションを含むブロックを生成する。メモリプール内に記憶された未承認トランザクションが優先権付きトランザクションTxPを含む場合、ノード装置300は、優先権付きトランザクションTxPを、優先権付きトランザクションTxP以外のトランザクションよりも優先してブロックに含める。
ステップS415において、ノード装置300は、マイニングを実行する。マイニングに成功した場合に、ノード装置300は、コインベーストランザクション、優先権付きトランザクションTxPを含むブロックをネットワーク30に公開する。
【0068】
利用者装置、優先権販売者装置、ノード装置、代理販売者装置について説明する。
図11乃至
図14は、各装置の一実施例を示す機能ブロック図である。
利用者装置10、優先権販売装置20、ノード装置300は夫々、他の装置が有する機能の少なくとも1つ以上の機能を有してもよい。
【0069】
図11は優先権販売装置20が有する機能を示すブロック図である。
図11を参照して、優先権販売装置20の機能を説明する。
優先権販売装置20は、制御部60と、通信部91と、記憶部92とを含む。
通信部91は、優先権販売装置20をネットワークに接続する。
記憶部92は、各種情報を記憶する。記憶部92は、制御部60を確認部61と、生成部62と、出力部63と、作成部64と、公開部65と、取得部67として機能させる販売者プログラムを記憶する。
制御部60は、確認部61と、生成部62と、出力部63と、作成部64と、公開部65と、取得部67と、を含む。
確認部61は、例えば、外部の収納代行サービスなどを介して、利用者よりの法定通貨の入金を確認する。
生成部62は、優先権販売者の秘密鍵を用いて、優先権販売者の電子署名Sig_Aを生成する。
出力部63は、電子署名Sig_Aを出力し、通信部91を介して電子署名Sig_Aを利用者に送信する。具体的には、出力部63は、通信部91を介して、電子署名をE-MAILなどで利用者装置10に向けて送信したりする。また、出力部63は、通信部91を介して、利用者装置10から受信したトランザクションTxAに署名を付した優先権付きトランザクションTxPを利用者に送信してもよい。
作成部64は、電子署名を付した優先権付きトランザクションTxPを作成する。
公開部65は、作成部64が作成した優先権付きトランザクションTxPをネットワーク30に公開する。
取得部67は、利用者装置10から、トランザクションTxAを取得する。
【0070】
図12は、ノード装置300が有する機能を示すブロック図である。
図12を参照して、ノード装置300の機能を説明する。
ノード装置300は、制御部100と、通信部111と、記憶部112とを含む。
通信部111は、優先権販売装置20をネットワークに接続する。
記憶部112は、署名検証鍵と、各種情報とを記憶する。記憶部112は、制御部100を取得部101と、検証部102と、作成部103と、生成部104と、実行部105と、公開部106として機能させるノードプログラムを記憶する。
制御部100は、取得部101と、検証部102と、作成部103と、生成部104と、実行部105と、公開部106と、を含む。
記憶部112は、各種情報を記憶する。記憶部112は、例えば、優先権販売者の電子署名を検証するために用いる優先権販売者の公開鍵を記憶する。
公開鍵は1以上を記憶し、一以上の異なる優先権販売者の優先権販売装置20によって発行された優先権付きトランザクションに対応する。
また、記憶部112にはメモリプールを備える。メモリプールは、ブロックに未追加の未承認トランザクションを一時的に記憶しておく領域である。
ノード装置300は、メモリプールに溜まっている未承認トランザクションからブロックに追加するものを選択し、マイニングをして新たにブロックを生成する。
取得部101は、ネットワーク30から、トランザクションを取得し、メモリプールに記憶する。
検証部102は、メモリプール内に記憶されたトランザクションを検証する。
検証部102は、メモリプール内に記憶されたトランザクションに付された電子署名を署名検証鍵としての公開鍵によって検証する。
メモリプール内に記憶されるトランザクションのうち、優先権販売者の公開鍵(署名検証鍵)Puk_Aに対応する電子署名Sig_Aが付与されたトランザクションは、優先権販売者の電子署名を付与された優先権付きトランザクションである。これを優先的にブロックに含める(承認する)トランザクションとして選択する。
作成部103は、マイニングが成功した場合にマイニング報酬を受け取るためのコインベーストランザクションを作成する。
生成部104は、コインベーストランザクションを含むブロックを生成する。生成部104は、検証部102による検証によって確認された優先権付きトランザクションTxPがあるとき、優先権付きトランザクションTxPを優先的にブロックに含める。
実行部105は、マイニングを実行する。
公開部106は、ブロックをネットワークに公開する。
【0071】
図13は、利用者装置が有する機能を示すブロック図である。
図13を参照して、利用者装置10の機能を説明する。
利用者装置は、制御部120と、通信部131と、記憶部132と、を含む。
通信部131は、利用者装置10をネットワークに接続する。
記憶部132は、各種情報を記憶する。記憶部132は、制御部120を取得部121と、作成部122と、出力部123と、公開部124として機能させる利用者プログラムを記憶する。
制御部120は、取得部121と、作成部122と、公開部123と、を含む。
取得部121は、優先権販売装置20から、優先権販売者の電子署名を取得する。取得部121は、優先権販売装置20から、優先権販売者の電子署名付きの優先権付きトランザクションを取得してもよい。
作成部122は、トランザクションを作成する。また、作成部122は、優先権販売装置20から電子署名を取得したとき、電子署名を付した優先権付きトランザクションを作成する。
出力部123は、作成部122が作成したトランザクションを出力し、通信部131を介してトランザクションを優先権販売装置20に送信する。
公開部124は、作成部122が優先権付きトランザクションを作成したとき、優先権付きトランザクションをネットワーク30に公開する。また、公開部123は、優先権販売装置20から、優先権販売者の電子署名付きの優先権付きトランザクションを取得したとき、取得した優先権付きトランザクションをネットワーク30に公開してもよい。
【0072】
図14は、代理販売者装置が有する機能を示すブロック図である。
代理販売者装置40は、制御部140と、通信部151と、記憶部152とを含む。
通信部151は、代理販売者装置40をネットワークに接続する。
記憶部152は、各種情報を記憶する。記憶部152は、制御部140を確認部141と、生成部142と、出力部143と、作成部144と、公開部145と、取得部146として機能させる販売者プログラムを記憶する。
制御部140は、確認部141と、生成部142と、出力部143と、作成部144と、公開部145と、取得部146と含む。
確認部141は、例えば、外部の収納代行サービスなどを介して、利用者よりの法定通貨の入金を確認する。
生成部142は、代理販売者装置40の秘密鍵Prk_Bを用いて、代理販売者装置40の電子署名Sig_Bを生成する。
出力部143は、電子署名Sig_Bを出力し、通信部151を介して電子署名Sig_Bを利用者に送信する。具体的には、出力部143は、通信部151を介して、電子署名をE-MAILなどで利用者装置10に向けて送信したりする。また、出力部63は、通信部91を介して、利用者装置10から受信したトランザクションTxAに署名を付した優先権付きトランザクションTxPを利用者に送信してもよい。
作成部14は、電子署名を付した優先権付きトランザクションTxPを作成する。
公開部145は、作成部144が作成した優先権付きトランザクションTxPをネットワーク30に公開する。
取得部146は、利用者装置10から、トランザクションTxAを取得する。
【0073】
図15は、コンピュータ装置の一実施例を示すブロック図である。
図15を参照して、コンピュータ装置50の構成について説明する。
図15において、コンピュータ装置50は、制御回路51と、記憶装置52と、読書装置53と、記録媒体54、通信インターフェイス55と、入出力インターフェイス56と、入力装置57と、表示装置58とを含む。また、通信インターフェイス55は、ネットワーク600と接続される。そして各構成要素は、バス59により接続される。利用者装置10、優先権販売装置20は、ノード装置300は、コンピュータ装置50に記載の構成要素の一部または全てを適宜選択して構成することができる。
【0074】
制御回路51は、コンピュータ装置50全体の制御をする。制御回路51は、例えば、Central Processing Unit(CPU)、Field Programmable Gate Array(FPGA)、Application Specific Integrated Circuit(ASIC)及びProgrammable Logic Device(PLD)などのプロセッサである。制御回路51は、例えば、
図11において、制御部60として機能する。また制御回路51は、
図12において、制御部100として機能する。制御回路51は、例えば、
図13において、制御部120として機能する。
記憶装置52は、各種データを記憶する。そして、記憶装置52は、例えば、Read Only Memory(ROM)及びRandom Access Memory(RAM)などのメモリや、Hard Disk(HD)などである。記憶装置52は、制御回路51を、制御部60、100、120、130として機能させるプログラムを記憶してもよい。記憶装置52は、例えば、
図11において、記憶部92として機能する。また記憶部52は、
図12において、記憶部112として機能する。また記憶部52は、
図13において記憶部132として機能する。また記憶部52は、
図14において記憶部152として機能する。
【0075】
利用者装置10、優先権販売装置20、ノード装置300、代理販売装置40は、優先権付与処理をするとき、記憶装置52に記憶されたプログラムをRAMに読み出す。
RAMに読み出されたプログラムを制御回路51で実行することにより、優先権販売装置20は、確認処理と、生成処理と、出力処理と、作成処理と、公開処理と、取得処理と、のいずれか1以上を含む優先権付与処理を実行する。
またノード装置300は、RAMに読み出されたプログラムを制御回路51で実行することにより、取得処理と、検証処理と、生成処理と、実行処理と、作成処理と、公開処理と、のいずれか1以上を含むマイニング処理を実行する。
また利用者装置10は、RAMに読み出されたプログラムを制御回路51で実行することにより、取得処理と、生成処理と、公開処理と、のいずれか1以上を含む処理を実行する
また代理販売装置40は、確認処理と、生成処理と、出力処理と、作成処理と、公開処理と、取得処理と、のいずれか1以上を含む優先権付与処理を実行する。
なお、プログラムは、制御回路51が通信インターフェイス55を介してアクセス可能であれば、ネットワーク600上のサーバが有する記憶装置に記憶されていても良い。
【0076】
読書装置53は、制御回路51に制御され、着脱可能な記録媒体54のデータのリード/ライトを行なう。
記録媒体54は、各種データを保存する。記録媒体54は、例えば、優先権付与処理プログラム(販売者プログラム、ノードプログラム、及び利用者プログラムの少なくとも一つを含む。)を記憶する。記録媒体54は、例えば、Secure Digital(SD)メモリーカード、Floppy Disk(FD)、Compact Disc(CD)、Digital Versatile Disk(DVD)、Blu-ray(登録商標) Disk(BD)、及びフラッシュメモリなどの不揮発性メモリ(非一時的記録媒体)である。
【0077】
通信インターフェイス55は、ネットワーク600を介してコンピュータ装置50と他の装置とを通信可能に接続する。
通信インターフェイス55は、例えば、
図11において、通信部91として機能する。また通信インターフェイス55は、
図12において、通信部111として機能する。また通信インターフェイス55は、
図13において、通信部131として機能する。また、
図14において、通信部141として機能する。
入出力インターフェイス56は、例えば、各種入力装置と着脱可能に接続するインターフェイスである。入出力インターフェイス56は、接続された各種入力装置とコンピュータ装置50とを通信可能に接続する。そして、入出力インターフェイス56は、接続された各種入力装置から入力された信号を、バス59を介して制御回路51に出力する。また、入出力インターフェイス55は、制御回路51から出力された信号を、バス59を介して入出力装置に出力する。
ネットワーク600は、例えば、LAN、無線通信、P2Pネットワーク、またはインターネットなどであり、コンピュータ装置50と他の装置を通信接続する。
なお、本実施形態は、以上に述べた実施形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【0078】
以上記載した各実施例を含む実施形態に関し、さらに以下の付記を開示する。なお、本発明は、以下の付記に限定されるものではない。
(付記1)
第1秘密鍵を用いて生成された、優先権承認用の電子署名を検証する第1検証鍵を記憶する記憶部と、
前記第1検証鍵を用いて、分散型台帳に公開された未承認のトランザクションに付与されている電子署名を検証する検証部と、
前記検証部により前記未承認のトランザクションに付与されている電子署名が前記優先権承認用の電子署名であることが検証されたとき、前記未承認のトランザクションを、前記優先権承認用の電子署名が付与されていない未承認のトランザクションよりも優先的に含むブロックを生成する生成部と、
前記ブロックを前記分散型台帳に公開する公開部と、
を備えることを特徴とするノード装置。
(付記2)
前記優先権承認用の電子署名は、
前記トランザクションと、前記優先権販売者の秘密鍵とを用いて生成された電子署名である
ことを特徴とする付記1に記載のノード装置。
(付記3)
前記ノード装置は、さらに、
前記ブロックに含まれる前記第2電子署名が付与された未承認のトランザクションの数に応じて、マイニングの報酬を調整した報酬取得用のトランザクションを作成する作成部を備え、
前記生成部は、
前記報酬取得用のトランザクションを含むブロックを生成する
ことを特徴とする請求項1または2のいずれか一つに記載のノード装置。
(付記4)
前記記憶部は、前記第1検証鍵に代えて、
代理販売者の前記第1検証鍵と、優先権販売者の第2秘密鍵とを用いて生成された、第1検証鍵承認用の電子署名を検証する第2検証鍵を記憶し、
前記検証部は、
前記第2検証鍵を用いて、分散型台帳に公開された未承認のトランザクションに付与されている複数の電子署名を検証し、前記複数の電子署名に前記第1検証鍵承認用の電子署名が含まれることが検証されたとき、前記未承認のトランザクションにさらに付与されている、前記第1検証鍵を用いて、前記未承認のトランザクションに付与されている複数の電子署名を検証し、
前記生成部は、
前記検証部により前記未承認のトランザクションに付与されている電子署名に前記権承認用の電子署名が含まれることが検証されたとき、前記未承認のトランザクションを、前記権承認用の電子署名が付与されていない未承認のトランザクションよりも優先的に含むブロックを生成する
ことを特徴とする付記1に記載のノード装置。
【符号の説明】
【0079】
10 利用者装置
20 販売者措置
40 代理販売装置
50 コンピュータ装置
51 制御回路
52 記憶装置
53 読書装置
54 記録媒体
55 通信I/F
56 入出力I/F
57 入力装置
58 表示装置
59 バス
60、100、120、140 制御部
91、111、131、151 通信部
92、112、132、152 記憶部
300 ノード装置
【要約】 (修正有)
【課題】手数料のために暗号資産を購入せずともトランザクションを承認され易くするノード装置、情報処理システム、優先権付与方法及び優先権付与プログラムを提供する。
【解決手段】ノード装置300は、電子署名を生成する外部装置の秘密鍵に基づく署名検証鍵を記憶する記憶部112と、分散型台帳からトランザクションを取得する取得部101と、取得したトランザクションに対応する電子署名が署名検証鍵と対応するか否かの検証を行う検証部102と、署名検証鍵に対応する電子署名を有する優先トランザクションを優先的に含めたブロックを生成する生成部104と、生成したブロックについてマイニングを実行する実行部105と、を備える。
【選択図】
図12