JP2017123692A - 存在証明装置、存在証明方法、及びそのためのプログラム - Google Patents

存在証明装置、存在証明方法、及びそのためのプログラム Download PDF

Info

Publication number
JP2017123692A
JP2017123692A JP2017055290A JP2017055290A JP2017123692A JP 2017123692 A JP2017123692 A JP 2017123692A JP 2017055290 A JP2017055290 A JP 2017055290A JP 2017055290 A JP2017055290 A JP 2017055290A JP 2017123692 A JP2017123692 A JP 2017123692A
Authority
JP
Japan
Prior art keywords
transaction
electronic data
existence
byte array
transaction identifier
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.)
Granted
Application number
JP2017055290A
Other languages
English (en)
Other versions
JP6275302B2 (ja
Inventor
裕三 加納
Yuzo Kano
裕三 加納
峰史 小宮山
Takafumi Komiyama
峰史 小宮山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BitFlyer Inc
Original Assignee
BitFlyer Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by BitFlyer Inc filed Critical BitFlyer Inc
Priority to JP2017055290A priority Critical patent/JP6275302B2/ja
Publication of JP2017123692A publication Critical patent/JP2017123692A/ja
Application granted granted Critical
Publication of JP6275302B2 publication Critical patent/JP6275302B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】電子データが特定の時点で存在していたことを高い堅牢性で証明する。【解決手段】存在証明の登録対象となる電子データを受け付ける。つぎに、この電子データの内容に基づき一義的に決定されるバイト配列BAをスクリプト中に埋め込んだトランザクションを生成する。つぎに、生成したトランザクションを公開鍵暗号方式にてデジタル署名した上で、仮想通貨のブロックチェーン21に取り込むために、仮想通貨ネットワーク20にブロードキャストする。そして、トランザクションに固有のトランザクション識別子TrIDと、バイト配列BAとを関連付けて管理データベース5に登録する。【選択図】図1

Description

本発明は、特定の電子データが特定の時点で存在していたことを証明する存在証明プログラムおよび存在証明サーバに関する。
従来より、特定の電子データが特定の時点で存在していたことを証明する様々な証明手法が提案されている。例えば、特許文献1には、タイムスタンプ局装置から送信されたタイムスタンプデータに基づいて証明対象データの証明を可能にするタイムスタンプ更新装置が開示されている。具体的には、証明対象データが入力されると、証明対象データから算出されたハッシュ値がタイムスタンプ局装置に送信され、タイムスタンプ局装置から受信したタイムスタンプデータが証明対象データと関連づけて記憶される。そして、証明対象データに関連づけられたタイムスタンプデータの有効期間の論理和が算出され、検証時から遡れる期間が、証明対象データの存在証明可能な期間として出力される。
また、特許文献2には、ネットワーク上において、電子メール等のデータを正確な時刻情報を利用してやり取りすることのできるデータ送受信システムが開示されている。具体的には、認証局は、認証メールサーバに対し、高精度な時刻情報を含む電子消印が発行できることを認証する。電子メールの送信側の認証メールサーバは、送信者が送信する電子メールに、高精度な時刻情報が埋め込まれた電子消印を押印する。このとき、認証メールサーバで時刻情報が付与された電子消印のデータは、所定の電子消印発行プログラムによって改ざんができないようになっており、さらに暗号化して受信側メールサーバに転送される。
さらに、特許文献3には、オリジナル文書が特定の日付に特定の格納場所に存在したことを証明する存在証明プログラムが開示されている。具体的には、まず、登録者は、文書の複製物をコンテンツとして予め保存しておく。文書存在証明サーバは、登録者からの要求に応じて、指定されたURLによって文書を取得し、登録日付、文書URL及び文書の内容からハッシュを生成し、そのリンクを登録DBに登録し、登録者にハッシュURLを通知する。この通知を受けた登録者は、ハッシュURLを含む存在確認ページを作成してHTMLファイルに保存する。コンテンツ及びHTMLファイルの複製物を取得した閲覧者は、コンテンツ及び存在確認ページ中の登録日付、文書URLに基づいてハッシュを生成し、文書存在証明サーバから取得したハッシュと比較してオリジナル文書の存在を検証する。
特開2010−055634号公報 特開2002−116695号公報 特開平11−175512号公報
本発明は、特定の電子データが特定の時点で存在していたことを高い堅牢性で証明する新規な存在証明手法を提供することである。
かかる課題を解決すべく、第1の発明は、特定の電子データがトランザクション発生時に存在していたことを証明する存在証明プログラムを提供する。この存在証明プログラムは、存在証明の登録対象となる電子データの内容に基づき一義的に決定されるバイト配列をスクリプト中に埋め込んだトランザクションを生成し、このトランザクションを公開鍵暗号を使ってデジタル署名した上で、ブロックチェーンが存在するP2Pネットワークにブロードキャストする第1のステップと、トランザクションに固有のトランザクション識別子と、バイト配列とを関連付けて管理データベースに記憶する第2のステップと、トランザクション識別子をキーに、P2Pネットワーク上のブロックチェーンを検索して、トランザクション識別子に対応するトランザクションを特定し、このトランザクションに埋め込まれたバイト配列を抽出する第3のステップを有する処理をコンピュータに実行させる。
ここで、第1の発明において、存在証明の検証対象となる電子データのバイト配列をキーとして、管理データベースを検索し、バイト配列に関連付けられたトランザクション識別子を特定する第4のステップをさらに有することが好ましい。
第1の発明において、上記第1のステップは、電子データを登録しようとする者によって指定された仮想通貨アドレスを仮想通貨の送り先としたトランザクションを生成するステップを含んでいてもよい。
第1の発明において、上記バイト配列は、電子データがファイルの場合、このファイルのハッシュ値であって、電子データがテキストメッセージの場合、このテキストメッセージのバイナリ表現であることが好ましい。
第1の発明において、上記電子データはファイルであって、上記第1のステップは、このファイルを暗号化した上で、このファイルのハッシュ値であるバイト配列と関連付けて記憶するステップを含むことが好ましい。
第2の発明は、ネットワークを介してクライアントに接続され、特定の電子データがトランザクション発生時に存在していたことを証明する存在証明サーバを提供する。この存在証明サーバは、データ送受部と、データ登録部と、データ検索部とを有する。データ送受部は、クライアントから送信され、かつ、存在証明の登録対象となる電子データを受け付ける。データ登録部は、電子データの内容に基づき一義的に決定されるバイト配列をスクリプト中に埋め込んだトランザクションを生成し、このトランザクションを公開鍵暗号を使ってデジタル署名した上で、ブロックチェーンが存在するP2Pネットワークにブロードキャストする。また、データ登録部は、トランザクションに固有のトランザクション識別子と、バイト配列とを対応付けて管理データベースに登録する。データ検索部は、トランザクション識別子をキーに、P2Pネットワーク上のブロックチェーンを検索して、トランザクション識別子に対応するトランザクションを特定し、このトランザクションに埋め込まれたバイト配列を抽出する。
ここで、第2の発明において、データ検索部は、存在証明の検証対象となる電子データのバイト配列をキーとして、管理データベースを検索し、バイト配列に関連付けられたトランザクション識別子を抽出することが好ましい。
ビットコイン(bitcoin)やその派生通貨を含む仮想通貨では、公開鍵暗号方式と、分散型暗号化データベースであるブロックチェーンとが用いられており、これらの技術によって、仮想通貨が誰から誰に渡ったかを示すトランザクション(取引)が高い堅牢性で保証される。本発明は、このような堅牢性を電子データの存在証明に利用するものであって、電子データの内容に基づき一義的に決定されるバイト配列を埋め込んだトランザクションを生成し、これを、ブロックチェーンが存在するP2Pネットワークにブロードキャストする。これによって、P2Pネットワーク上に存在するブロックチェーンに、バイト配列が埋め込まれたトランザクションが取り込まれる。電子データの存在証明を検証する場合、トランザクション識別子をキーにブロックチェーンを検索し、ヒットしたトランザクション中に埋め込まれたバイト配列を抽出することによって、電子データがトランザクション発生時に存在していたことの可否を高い堅牢性で検証・証明することができる。
本実施形態に係る存在証明サーバのブロック構成図 存在証明の登録対象となるファイルの入力画面例 存在証明の登録対象となるテキストメッセージの入力画面例 電子データの登録ルーチンのフローチャート トランザクションの概念図 トランザクションにおけるデータ構造の説明図 バイト配列を埋め込んだトランザクションのスクリプトの一例を示す図 ブロックチェーン21の説明図 電子データを入力としてトランザクション識別子を検索する検索ルーチンのフローチャート ブロックチェーンの検索ルーチンのフローチャート 電子データの存在証明の説明図
図1は、本実施形態に係る存在証明サーバのブロック構成図である。この存在証明サーバ1は、インターネット等のネットワークを介して、仮想通貨の利用者が操作するクライアント10および仮想通貨ネットワーク20に接続されている。仮想通貨ネットワーク20は、P2P(peer to peer)ネットワークであって、多数の端末間で通信を行う際、対等の者(Peer)同士が通信をするアーキテクチャが採用されている。また、仮想通貨ネットワーク20上には、後述するように、分散型暗号化データベースの一種であるブロックチェーン21が存在する。存在証明サーバ1は、電子データの存在証明機能、すなわち、特定の電子データが特定の時点で存在していたことを証明する機能を有している。本実施形態において、存在証明の対象となる電子データとしては、所定の文字数以下のテキストメッセージ(文字列)、および、ドキュメント、静止画、動画といったファイルの2種類が存在する。このような電子データの存在証明機能を実現するために、存在証明サーバ1は、データ送受部2と、データ登録部3と、データ検索部4と、管理データベース5と、ファイル記憶部6とを有している。
データ送受部2は、存在証明サーバ1とクライアント10との間におけるデータの送受を司るインターフェースであり、特に、存在証明の登録対象や検証対象となる電子データをクライアント10から受信する(受け付ける)と共に、登録結果や検索結果をクライアント10に送信する。
データ登録部3は、受け付けた電子データに基づき、この電子データの内容によって一義的に決定されるバイト配列BA(後述するハッシュ値やバイナリ表現)を生成し、このバイト配列BAをスクリプト中に埋め込んだトランザクションを生成する。そして、データ登録部3は、このトランザクションを公開鍵暗号方式を用いてデジタル署名した上で、ブロックチェーン21に取り込むために、仮想通貨ネットワーク20にブロードキャストする。また、データ登録部3は、トランザクションに固有のトランザクション識別子TrIDと、バイト配列BAとを対応付けて管理データベース5に登録・記憶する。さらに、データ登録部3は、クライアント10から受け付けた電子データがファイルの場合(テキストメッセージを除く。)、このファイルを、バイト配列BA(ファイルのハッシュ値)と関連付けて、ファイル記憶部6に記憶・保存する。
データ検索部4は、電子データの存在証明を検証する際、トランザクション識別子TrIDをキーにブロックチェーン21を検索して、トランザクション識別子TxIDに対応するトランザクションを特定し、このトランザクションに埋め込まれたバイト配列BAを抽出する。また、データ検索部4は、この検索の前処理として必要に応じて、存在証明の検証対象となる電子データのバイト配列BAをキーとして、管理データベース5を検索し、このバイト配列BAに関連付けられたトランザクション識別子TxIDを抽出する。
なお、本実施形態では、電子データの存在証明機能のみに着目しているが、ビットコインやその派生通貨を含む仮想通貨の取引や管理を行うプラットフォームの一機能として、電子データの存在証明サービスを提供してもよい。
図2は、存在証明の登録対象となるファイルの入力画面例である。クライアント10を操作するユーザは、図示された入力画面の指示に従い、仮想通貨の送り先となる仮想通貨アドレスおよびパスワードを入力すると共に、アップロードするファイルを選択する。また、図3は、存在証明の登録対象となるテキストメッセージの入力画面例である。ユーザは、入力画面例の書き込みの指示「Write a Message」に従い、図2に示したファイルの選択の代わりに、アップロードするテキストメッセージを同指示の下欄のボックスに入力する。これらユーザによるファイル選択及び送信アイコンの選択や、テキストメッセージの入力及び書き込みアイコン(図3の「Write Forever」)を受け、当該ファイル・テキストメッセージのデータがクライアント10から存在証明サーバ1に送信され、存在証明サーバ1側のデータ登録部3にて受け付けられる。これら図2及び図3に示す入力画面は、存在証明サーバ1からクライアント10に処理の都度提供され、あるいは予め提供されたアプリケーションにより実行され得る。
図4は、電子データの登録ルーチンのフローチャートである。この登録ルーチンは、存在証明の登録対象となる電子データがデータ送受部1によって受け付けられた場合に、データ登録部2によって実行される。
まず、ステップ1において、登録対象となる電子データの種別が判定される。電子データの種別がファイルの場合、ファイルのハッシュ値が例えばSHA256を用いて生成される(ステップ2)。ハッシュ値は、同じ入力値からは必ず同一値が出力される一方、少しでも異なる入力値からはまったく違う値が出力されるといった特徴を有する。また、ハッシュ関数は、不可逆な一方向関数を含むため、出力されたハッシュ値から入力値を割り出すことはできない。このような特徴から、ハッシュ値は、ファイルの改ざんを検出する用途で広く利用されている。本実施形態において、ファイルの内容から一義的に決定されるハッシュ値は、存在証明の登録対象となるファイルを特徴付けるバイト配列BAとされる。
ステップ3において、ファイルは、暗号化された上で、このファイルのバイト配列BA(ハッシュ値)と関連付けてファイル記憶部6に格納される。ファイルを暗号化する理由は、もっぱら、第三者に対してファイルの内容を秘匿することにあるから、秘匿性が要求されないのであれば、平文のままファイルをファイル記憶部6に格納してもよい。
一方、電子データの種別がテキストメッセージの場合、ステップ1からステップ4に進み、テキストメッセージのバイナリ表現(例えば、UTF−8でエンコードした値)がバイト配列BAとされる。いうまでもなく、このバイナリ表現も、テキストメッセージの内容から一義的に決定されるものである。
ステップ3またはステップ4に続くステップ5において、電子データを登録しようとする者によって指定された仮想通貨アドレスを仮想通貨の送り先として、バイト配列BAが埋め込まれたトランザクションが生成される。ここで、図5に基づき、ビットコインにおけるトランザクションの概念について説明する。ビットコインにおいて、通貨は取引履歴、すなわち、通貨が今まで経てきた全取引のまとまりとして表現される。それぞれのトランザクション(通貨の取引)では、前のトランザクションのハッシュ値や、新たな所有者の公開鍵を含み、元の所有者の暗号鍵によってデジタル署名されている。全てのトランザクションに関する情報は、P2Pネットワーク全体で共有される。このようにトランザクションを表現することで、元の所有者の許可なく、通貨を本人以外が勝手に譲渡することはできず、また、第三者は、通貨の譲渡を客観的に確認できるといった利点を有する。
図6は、トランザクションにおけるデータ構造の説明図である。トランザクションのデータ構造は、「出力 (出金する通貨)」と、「入力 (入金に用いる通貨)」とを有している。送金には、相手に渡す通貨(額面)および宛先が必要であるが、それらを表現したものが出力である。自分に宛てられた通貨を使う (=誰かに送金する) ためには、過去のトランザクションの出力を参照しなければならず、それが今回のトランザクションにおける入力に相当する。一つのトランザクションにおいて、出力および入力はそれぞれ複数指定できる。任意の額の送金を行うためには、過去の自分宛のトランザクションの出力を集め、これから行う取引の入力として指定する必要がある。
図7は、バイト配列BAを埋め込んだトランザクションのスクリプトの一例を示す図である。ビットコインでは、ビットコイン・スクリプトによってトランザクションが記述される。同図に示したトランザクションは、過去に利用者Aから自分宛に送金されたビットコインを用いて、利用者B宛てに所定の額面の通貨を送金することを意味している。トランザクションには、そのトランザクション固有のトランザクション識別子TxIDが付されており、通常、トランザクションのハッシュ値が用いられる。上述したように、「OutputScript」には複数の出力が指定できるところ、「出力2」は、入力のデジタル署名を検証する通常の記述であるのに対し、「出力1」は、バイト配列BAを付加するための記述である。ビットコイン・スクリプトでは、「OP_RETURN」というコードが用意されており、これは、一般的なプログラミングのreturnと同様、そこに来るとスクリプトをストップし、その出力の参照を許さない、とするものである。そして、「OP_RETURN」に続き、「OP_PUSHDATA」を用いてバイト配列BAを付加すれば、デジタル署名に悪影響を及ぼすことなく、「出力1」をバイト配列BAの記述欄として利用することができる。以上のような「OP_RETURN」の特性を活かして、データ登録部3は、通常のスクリプトの記述にステップ2,4で特定されたバイト配列BAを自動的に付加することによって、バイト配列BAが埋め込まれたトランザクションを生成する。なお、「OP_PUSHDATA」を用いて付加できるバイト配列BAのバイト数には上限がある関係上、ファイルについてはハッシュ値を用い、テキストメッセージについては上限値を超えないことが条件となる。
再び図4を参照して、ステップ6において、ステップ5で生成されたトランザクションが公開鍵暗号を使ってデジタル署名され、そのハッシュ値がトランザクション識別子TxID、すなわち、トランザクションを一義的に特定するための固有の値として採番される。ステップ7において、ステップ2またはステップ4で特定されたバイト配列BAと、ステップ6で採番されたトランザクション識別子TxIDとが関連付けて、管理データベース5に登録される。また、電子データの検証時に、バイト配列BAがハッシュ値およびバイナリ表現のいずれであるかを判別するために、バイト配列BAの種別も併せて管理データベース5に記憶される。
ステップ8において、バイト配列BAが埋め込まれたトランザクション(ステップ5)が、P2Pネットワークである仮想通貨ネットワーク20にブロードキャストされる。ここで、ブロードキャストとは、トランザクションを仮想通貨ネットワーク20に接続された複数のユーザに送信することをいう。ブロードキャストされたトランザクションは、通常のトランザクションと同様、仮想通貨ネットワーク20全体で共有され、採掘者(マイナー)と呼ばれるネットワークノードによって、ブロックチェーン21中に取り込まれる。これは、配列BAが埋め込まれたトランザクションが、ブロックチェーン21という極めて堅牢な分散型暗号化データベースに登録されることを意味する。
図8は、ブロックチェーン21の説明図である。ブロックチェーン21は、ビットコインおよびその派生通貨で採用されている二重譲渡を防ぐ仕組みである。二重譲渡とは、元の通貨の持ち主が二人以上の相手に、全く同じ通貨を譲渡することである。通貨として用いるためには、どちらの譲渡のみをネットワーク全体で正しい取引として決定する必要がある。一般には、時系列的に後のトランザクションを無効とみなすのが自然だが、これらの取引はP2Pネットワーク上でなされるので、ネットワーク全体として見たとき、どちらが先に行われた取引であるかということを確実には決定できない。しかしながら、ここで重要なのは、ネットワーク全体で特定のどちらか一方のみを一貫して正しい取引であると決定できることであって、矛盾する二つの取引のあるとき、厳密にどちらの取引が先になされたかというのは、あまり重要でない。ブロックチェーン(Block Chain; ブロック鎖)において、それぞれのブロック(Block)は、多数のトランザクションと、ナンス(Nonce)と呼ばれる特別な値と、直前のブロックのハッシュとを有している。ブロックに含まれたトランザクション(取引)のみを「正しい取引」と認めることにする。そして、ネットワーク全体で「唯一のブロックの鎖」を持つようにする。これによって、一貫した取引履歴をネットワーク全体で共有できる、というのがブロックチェーンの仕組みである。
そして、ステップ9において、電子データの登録が完了した旨の通知をクライアント10に送信することによって、本ルーチンを抜ける。
図9は、電子データを入力としてトランザクション識別子を検索する検索ルーチンのフローチャートである。この検索ルーチンは、存在証明の検証対象となる電子データがデータ送受部1によって受け付けられ、これを入力としてトランザクション識別子TxIDを検索する場合に、データ検索部4によって実行される。
まず、ステップ11において、検索対象となる電子データの種別が判定される。電子データの種別がファイルの場合、ファイルのハッシュ値が、登録時と同じハッシュ関数(例えばSHA256)を用いて生成される(ステップ12)。そして、このハッシュ値は、存在証明の検証対象となるファイルを特徴付けるバイト配列BAとされる。
一方、電子データの種別がテキストメッセージの場合、ステップ11からステップ13に進み、テキストメッセージのバイナリ表現(例えば、UTF−8でエンコードした値)がバイト配列BAとされる。
ステップ12またはステップ13に続くステップ14において、バイト配列BAをキーに管理データベース5が検索され、このバイト配列BAに関連付けられたトランザクション識別子TxIDが特定される。そして、ステップ15において、このトランザクション識別子TxIDが検索結果としてクライアント10に通知されて、本ルーチンを抜ける。
図10は、ブロックチェーン21の検索ルーチンのフローチャートである。この検索ルーチンは、トランザクション識別子TxIDをキーにブロックチェーン21を検索し、トランザクション中に埋め込まれたバイト配列BAを抽出する場合に、データ検索部4によって実行される。
まず、ステップ17において、トランザクション識別子TxIDをキーとして、仮想通貨ネットワーク20上に存在するブロックチェーン21が検索される。ブロックチェーン21において、トランザクション識別子TxIDに対応するトランザクションが存在する場合には、ステップ18の肯定判定を経てステップ19に進む。一方、ブロックチェーン21において、トランザクション識別子TxIDに対応するトランザクションが存在しない場合には、ステップ18の否定判定を経てステップ24に進み、クライアント10にエラーを送信して、本ルーチンを抜ける。
ステップ19において、トランザクション識別子TxIDに対応するトランザクションに記述されたバイト配列BAが抽出・取得される。つぎに、ステップ20において、電子データの種別が判定される。電子データの種別がファイルの場合には、ステップ22に進み、バイト配列BAをキーにファイル記憶部6が検索される。そして、ステップ22において、検索結果をクライアント10に送信して、本ルーチンを抜ける。
この検索結果は、電子データの存在証明の可否のみならず、存在を証明できる場合には、ファイルの名称およびトランザクション発生時の提示を含んでいてもよい。ここで、「トランザクション発生時」とは、厳密には、仮想通貨ネットワーク20にアップロードされたトランザクションを含む新たなブロックがブロックチェーン21中に取り込まれた日時であって、この日時はブロックチェーン21を検索することによって、随時、特定可能である。これにより、トランザクションに埋め込まれたバイト配列BA(ハッシュ値)がトランザクション発生時に存在していたことが保証される。上述したように、バイト配列BAであるハッシュ値は、ファイルから一義的に決定される値であるから、存在証明の検証対象となるファイルのハッシュ値BAと、トランザクションから抽出されたバイト配列BAとが一致するということは、すなわち、検証対象となるファイルと同一内容のものがトランザクションの発生時に存在していたことを意味する。なお、検索結果の形態としては様々なものが考えられ、例えば、存在証明サーバ1側において、存在証明の検証対象となるファイルのバイト配列BAと、トランザクションから抽出されたバイト配列BAとを比較して、存在証明の可否を明示的に判断・通知してもよいし、あるいは、トランザクションから抽出されたバイト配列BAをクライアント10に通知して、存在証明の可否の判断についてはユーザに委ねてもよい。
一方、電子データの種別がテキストメッセージの場合には、ステップ20からステップ23に進み、バイト配列BAがデコードされてテキストメッセージが復元される。そして、このテキストメッセージをクライアント10に送信して、本ルーチンを抜ける。これにより、そのテキストメッセージがトランザクション発生時に存在していたことが証明される。
このように、本実施形態によれば、ファイルやテキストメッセージといった電子データがトランザクション発生時に存在していたことの可否を高い堅牢性で検証・証明することができる。この点を詳述すると、図11に示すように、まず、バイト配列BAが埋め込まれたトランザクションBが仮想通貨ネットワーク20上にアップロードされ、これによって、このトランザクションがブロックチェーン21に取り込まれる。バイト配列BAは、ファイルの場合はファイルのハッシュ値、テキストメッセージの場合はテキストメッセージのバイナリ表現であって、いずれも、電子データから一義的に決定される固有値である。ビットコインでは、第三者による改変や二重譲渡を防止するための仕組みとして、公開鍵暗号技術および分散型暗号化データベース技術が採用されており、これによって、仮想通貨が誰から誰に渡ったかを示すトランザクションが高い堅牢性で保証されている。
一方、電子データの検証時においては、存在証明サーバ1側に記憶されているトランザクション識別子TxID=Bを検索キーとして、ブロックチェーン21を検索することによって、多数のトランザクションの中からトランザクションBが特定される。そして、このトランザクションBに埋め込まれたバイト配列BAを取得・抽出することによって、電子データがトランザクション発生時に存在していたことの検証・証明が可能になる。すなわち、電子データがファイルの場合には、検証対象となるファイルのバイト配列BAと、ブロックチェーン21から取得・抽出されたバイト配列BAとが一致することをもって、検証対象となるファイルと同一内容のものがトランザクション発生時に存在していたことが証明される。また、電子データがテキストメッセージの場合には、ブロックチェーン21から取得・抽出されたバイト配列BA(デコードされたテキストメッセージ)自体がトランザクション発生時に存在していたことが証明される。
以上のことから、電子データの存在証明という観点でいえば、仮想通貨ネットワーク20上のブロックチェーン21は、一般的な意味でいう仮想通貨の取引履歴というよりも、むしろ、存在証明用のデータベースとして捉えることができ、また、このデータベースを構成する1つのトランザクションは、存在証明に必要なデータ(バイト配列BA)が記述された1つのレコードとして捉えることができる。そこで、本明細書では、「ブロックチェーン」および「トランザクション」という用語を、そのような拡張的な意味で用いることとする。
なお、上述した実施形態では、仮想通貨の典型であるビットコインを例に説明したが、本発明は、これに限定されるものではなく、以下の2要件を満たす派生通貨等に対して、広く適用可能である。
(1)P2Pネットワーク上にブロックチェーンが存在すること
(2)個々のトランザクションが公開鍵暗号方式を用いてデジタル署名されること
また、上述した実施形態では、存在証明の対象となる電子データとして、テキストメッセージおよびファイルの2種類を取り扱う例について説明したが、いずれか一方のみを取り扱うようにしてもよい。
さらに、上述した実施形態では、図6、図9および図10に示したフローチャートを有するプログラムが存在証明サーバ1にインストールされている例について説明したが、このプログラムを利用者が操作するコンピュータにインストールすることによって、電子データの登録および検証を利用者自身が直接行うようにしてもよい。
1 存在証明サーバ
2 データ送受部
3 データ登録部
4 データ検索部
5 管理データベース
6 ファイル記憶部
10 クライアント
20 仮想通貨ネットワーク
21 ブロックチェーン

Claims (10)

  1. 特定の電子データが存在していたことを証明するための存在証明方法であって、
    存在証明の登録対象となる電子データを登録する際に、
    前記電子データの内容に基づき決定されるバイト配列を有するトランザクションを生成して、当該トランザクションをデジタル署名した上でブロックチェーンが存在するネットワークにブロードキャストするステップと、
    前記バイト配列と前記トランザクションに対応するトランザクション識別子とを関連付けて記憶するステップと
    を含み、
    前記電子データの存在証明を検証する際に、
    前記電子データの内容に基づき決定されるバイト配列を生成し、前記バイト配列に関連付けられた前記トランザクション識別子を特定するステップと、
    前記トランザクション識別子をキーに前記ネットワーク上に存在する前記ブロックチェーンを検索して、前記トランザクション識別子に対応するトランザクションの有無を判定するステップと、
    前記判定の結果が有の場合に、前記トランザクション識別子に対応する前記トランザクションからバイト配列を抽出するステップと
    を含み、
    前記抽出されたバイト配列が前記登録の際に記憶されたバイト配列と一致することにより前記電子データの存在が証明されることを特徴とする存在証明方法。
  2. 前記バイト配列は、前記電子データの種別に応じてハッシュ値又はバイナリ表現のいずれかであることを特徴とする請求項1に記載の存在証明方法。
  3. 前記バイト配列は、前記トランザクションのスクリプトに記述されていることを特徴とする請求項1又は2に記載の存在証明方法。
  4. 前記電子データの存在証明を検証する際に、
    前記抽出されたバイト配列をキーに前記登録の際に記憶されたバイト配列を検索するステップをさらに含むことを特徴とする請求項1乃至3のいずれかに記載の存在証明方法。
  5. 前記抽出されたバイト配列と一致するバイト配列が記憶されている場合に、前記電子データが存在していたことの証明を通知するステップをさらに含むことを特徴とする請求項4に記載の存在証明方法。
  6. 前記通知は、前記電子データが登録された日時を含むことを特徴とする請求項5に記載の存在証明方法。
  7. 前記ネットワークは、仮想通貨ネットワークであることを特徴とする請求項1乃至6のいずれかに記載の存在証明方法。
  8. 前記ブロードキャストされるトランザクションは、前記電子データの登録者によって指定された仮想通貨アドレスを送り先とすることを特徴とする請求項7に記載の存在証明方法。
  9. コンピュータに、特定の電子データが存在していたことを証明するための存在証明方法を実行させるためのプログラムであって、前記存在証明方法は、
    存在証明の登録対象となる電子データを登録する際に、
    前記電子データの内容に基づき決定されるバイト配列を有するトランザクションを生成して、当該トランザクションをデジタル署名した上でブロックチェーンが存在するネットワークにブロードキャストするステップと、
    前記バイト配列と前記トランザクションに対応するトランザクション識別子とを関連付けて記憶するステップと
    を含み、
    前記電子データの存在証明を検証する際に、
    前記電子データの内容に基づき決定されるバイト配列を生成し、前記バイト配列に関連付けられた前記トランザクション識別子を特定するステップと、
    前記トランザクション識別子をキーに前記ネットワーク上に存在する前記ブロックチェーンを検索して、前記トランザクション識別子に対応するトランザクションの有無を判定するステップと、
    前記判定の結果が有の場合に、前記トランザクション識別子に対応する前記トランザクションからバイト配列を抽出するステップと
    を含み、
    前記抽出されたバイト配列が前記登録の際に記憶されたバイト配列と一致することにより前記電子データの存在が証明されることを特徴とするプログラム。
  10. 特定の電子データが存在していたことを証明するための存在証明装置であって、
    存在証明の登録対象となる電子データを登録する際に、
    前記電子データの内容に基づき決定されるバイト配列を有するトランザクションを生成して、当該トランザクションをデジタル署名した上でブロックチェーンが存在するネットワークにブロードキャストし、
    前記バイト配列と前記トランザクションに対応するトランザクション識別子とを関連付けて記憶し、
    前記電子データの存在証明を検証する際に、
    前記電子データの内容に基づき決定されるバイト配列を生成して、前記バイト配列に関連付けられた前記トランザクション識別子を特定し、
    前記トランザクション識別子をキーに前記ネットワーク上に存在する前記ブロックチェーンを検索して、前記トランザクション識別子に対応するトランザクションの有無を判定し、
    前記判定の結果が有の場合に、前記トランザクション識別子に対応する前記トランザクションからバイト配列の抽出を行い、
    前記抽出されたバイト配列が前記登録の際に記憶されたバイト配列と一致することにより前記電子データの存在が証明されることを特徴とする存在証明装置。
JP2017055290A 2017-03-22 2017-03-22 存在証明装置、存在証明方法、及びそのためのプログラム Expired - Fee Related JP6275302B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017055290A JP6275302B2 (ja) 2017-03-22 2017-03-22 存在証明装置、存在証明方法、及びそのためのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017055290A JP6275302B2 (ja) 2017-03-22 2017-03-22 存在証明装置、存在証明方法、及びそのためのプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015230306A Division JP6608256B2 (ja) 2015-11-26 2015-11-26 電子データの存在証明プログラムおよび存在証明サーバ

Publications (2)

Publication Number Publication Date
JP2017123692A true JP2017123692A (ja) 2017-07-13
JP6275302B2 JP6275302B2 (ja) 2018-02-07

Family

ID=59306762

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017055290A Expired - Fee Related JP6275302B2 (ja) 2017-03-22 2017-03-22 存在証明装置、存在証明方法、及びそのためのプログラム

Country Status (1)

Country Link
JP (1) JP6275302B2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6362805B1 (ja) * 2017-12-16 2018-07-25 株式会社bitFlyer ブロックチェーン・ネットワークにおいて過去のトランザクションにアクセス可能とするための方法及び当該ネットワークを構成するためのノード
EP3484194A2 (en) 2017-11-13 2019-05-15 Toyota Jidosha Kabushiki Kaisha Vehicle information communication system and environment improvement system, and server used therein
JP2019096272A (ja) * 2017-11-17 2019-06-20 メタップス・プラス・インコーポレイテッドMetaps Plus Inc. ブロックチェーンベースのユーザ識別管理用の分散型台帳装置、分散型台帳方法
CN110472979A (zh) * 2019-07-16 2019-11-19 中央财经大学 基于区块链的交易主客体的验证方法
JP2020003907A (ja) * 2018-06-26 2020-01-09 国立大学法人佐賀大学 情報通信装置、情報通信方法及び情報通信プログラム
JP2020512611A (ja) * 2017-07-14 2020-04-23 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ブロックチェーンを基にしたデータ処理方法および装置
JP2021536639A (ja) * 2018-09-11 2021-12-27 シクパ ホルディング ソシエテ アノニムSicpa Holding Sa 情報をデータベースに登録する先進的な方法、システム及びデバイス
US11374942B2 (en) 2018-02-19 2022-06-28 Denso Corporation Verification terminal
US11431474B2 (en) 2018-03-01 2022-08-30 Denso Corporation Verification terminal and verification system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002049590A (ja) * 2000-08-04 2002-02-15 Hitachi Ltd 電子公証システム
JP2002170058A (ja) * 2000-11-21 2002-06-14 Riccardo Genghini アクティブ識別管理による商取引の自動実行システム
US20140129396A1 (en) * 2012-11-06 2014-05-08 Ebay Inc. Systems and methods for reducing fraudulent activity in transaction dispute resolution
US20150332283A1 (en) * 2014-05-13 2015-11-19 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain proof-of-work, systems and methods

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002049590A (ja) * 2000-08-04 2002-02-15 Hitachi Ltd 電子公証システム
JP2002170058A (ja) * 2000-11-21 2002-06-14 Riccardo Genghini アクティブ識別管理による商取引の自動実行システム
US20140129396A1 (en) * 2012-11-06 2014-05-08 Ebay Inc. Systems and methods for reducing fraudulent activity in transaction dispute resolution
US20150332283A1 (en) * 2014-05-13 2015-11-19 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain proof-of-work, systems and methods

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
淵田 康之: "イノベーションと金融", 野村資本市場クォータリー 2015年秋号, vol. 第19巻 第2号, JPN6017002636, 1 November 2015 (2015-11-01), pages 11 - 35, ISSN: 0003600629 *
藤武 寛之: "「ビットコイン」は本当に"危ない"のか 決済システムとしての"仮想通貨"の実力", CARDWAVE, vol. 第27巻 第3号, JPN6016036826, 1 June 2014 (2014-06-01), JP, pages 20 - 25, ISSN: 0003715265 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020512611A (ja) * 2017-07-14 2020-04-23 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ブロックチェーンを基にしたデータ処理方法および装置
US11093523B2 (en) 2017-07-14 2021-08-17 Advanced New Technologies Co., Ltd. Blockchain based data processing method and device
US11245749B2 (en) 2017-11-13 2022-02-08 Toyota Jidosha Kabushiki Kaisha Vehicle information communication system and environment improvement system, and server used therein
EP3484194A2 (en) 2017-11-13 2019-05-15 Toyota Jidosha Kabushiki Kaisha Vehicle information communication system and environment improvement system, and server used therein
JP2019096272A (ja) * 2017-11-17 2019-06-20 メタップス・プラス・インコーポレイテッドMetaps Plus Inc. ブロックチェーンベースのユーザ識別管理用の分散型台帳装置、分散型台帳方法
WO2019117311A1 (ja) * 2017-12-16 2019-06-20 株式会社bitFlyer ブロックチェーン・ネットワークにおいて過去のトランザクションにアクセス可能とするための方法及びノード
JP2019110511A (ja) * 2017-12-16 2019-07-04 株式会社bitFlyer ブロックチェーン・ネットワークにおいて過去のトランザクションにアクセス可能とするための方法及び当該ネットワークを構成するためのノード
JP6362805B1 (ja) * 2017-12-16 2018-07-25 株式会社bitFlyer ブロックチェーン・ネットワークにおいて過去のトランザクションにアクセス可能とするための方法及び当該ネットワークを構成するためのノード
US11374942B2 (en) 2018-02-19 2022-06-28 Denso Corporation Verification terminal
US11431474B2 (en) 2018-03-01 2022-08-30 Denso Corporation Verification terminal and verification system
JP2020003907A (ja) * 2018-06-26 2020-01-09 国立大学法人佐賀大学 情報通信装置、情報通信方法及び情報通信プログラム
JP2021536639A (ja) * 2018-09-11 2021-12-27 シクパ ホルディング ソシエテ アノニムSicpa Holding Sa 情報をデータベースに登録する先進的な方法、システム及びデバイス
JP7419628B2 (ja) 2018-09-11 2024-01-23 シクパ ホルディング ソシエテ アノニム 情報をデータベースに登録する先進的な方法、システム及びデバイス
CN110472979A (zh) * 2019-07-16 2019-11-19 中央财经大学 基于区块链的交易主客体的验证方法
CN110472979B (zh) * 2019-07-16 2023-05-26 中央财经大学 基于区块链的交易主客体的验证方法

Also Published As

Publication number Publication date
JP6275302B2 (ja) 2018-02-07

Similar Documents

Publication Publication Date Title
JP6608256B2 (ja) 電子データの存在証明プログラムおよび存在証明サーバ
JP6275302B2 (ja) 存在証明装置、存在証明方法、及びそのためのプログラム
KR102051288B1 (ko) 분산형 해시 테이블과 피어투피어 분산 원장을 사용하여 디지털 자산의 무결성을 검증하기 위한 방법 및 시스템
US20160283920A1 (en) Authentication and verification of digital data utilizing blockchain technology
US9268969B2 (en) System and method for field-verifiable record authentication
US8185733B2 (en) Method and apparatus for automatically publishing content based identifiers
JP2020517200A (ja) Utxo基盤プロトコルを利用したブロックチェーン基盤の文書管理方法及びこれを利用した文書管理サーバ{method for managing document on basis of blockchain by using utxo−based protocol,and document management server using same}
US20110231645A1 (en) System and method to validate and authenticate digital data
US20020004800A1 (en) Electronic notary method and system
CN110489946B (zh) 基于区块链的版权认证方法、装置、设备和存储介质
JPH11338780A (ja) 電子文書を認定し安全に保管するための方法及び装置
US20080109651A1 (en) System and methods for digital file management and authentication
CN114651248A (zh) 用于经许可的区块链的随机节点选择
US7660981B1 (en) Verifiable chain of transfer for digital documents
CN115398857A (zh) 基于区块链的争议解决
US11449285B2 (en) Document security and integrity verification based on blockchain in image forming device
US20230069988A1 (en) Generating electronic signatures
CN107635028B (zh) 一种资源的命名方法、装置、区块链集群和电子设备
CN111523142B (zh) 数据处理方法、装置、电子设备及介质
JP4608845B2 (ja) 署名記録の公開方法
US6993656B1 (en) Time stamping method using aged time stamp receipts
US6839842B1 (en) Method and apparatus for authenticating information
US7490241B1 (en) Time stamping method employing user specified time
US6965998B1 (en) Time stamping method using time-based signature key
KR100654933B1 (ko) 사용자의 패스워드 입력에 따라서 동적 생성되는 인증서를인증하는 인증시스템 및 인증방법

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170509

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170714

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171025

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180109

R150 Certificate of patent or registration of utility model

Ref document number: 6275302

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees