JP6275302B2 - Existence proof device, existence proof method, and program therefor - Google Patents

Existence proof device, existence proof method, and program therefor Download PDF

Info

Publication number
JP6275302B2
JP6275302B2 JP2017055290A JP2017055290A JP6275302B2 JP 6275302 B2 JP6275302 B2 JP 6275302B2 JP 2017055290 A JP2017055290 A JP 2017055290A JP 2017055290 A JP2017055290 A JP 2017055290A JP 6275302 B2 JP6275302 B2 JP 6275302B2
Authority
JP
Japan
Prior art keywords
transaction
electronic data
byte array
existence
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.)
Expired - Fee Related
Application number
JP2017055290A
Other languages
Japanese (ja)
Other versions
JP2017123692A (en
Inventor
裕三 加納
裕三 加納
峰史 小宮山
峰史 小宮山
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/en
Publication of JP2017123692A publication Critical patent/JP2017123692A/en
Application granted granted Critical
Publication of JP6275302B2 publication Critical patent/JP6275302B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、特定の電子データが特定の時点で存在していたことを証明する存在証明プログラムおよび存在証明サーバに関する。   The present invention relates to a presence proof program and a presence proof server that prove that specific electronic data existed at a specific time.

従来より、特定の電子データが特定の時点で存在していたことを証明する様々な証明手法が提案されている。例えば、特許文献1には、タイムスタンプ局装置から送信されたタイムスタンプデータに基づいて証明対象データの証明を可能にするタイムスタンプ更新装置が開示されている。具体的には、証明対象データが入力されると、証明対象データから算出されたハッシュ値がタイムスタンプ局装置に送信され、タイムスタンプ局装置から受信したタイムスタンプデータが証明対象データと関連づけて記憶される。そして、証明対象データに関連づけられたタイムスタンプデータの有効期間の論理和が算出され、検証時から遡れる期間が、証明対象データの存在証明可能な期間として出力される。   Conventionally, various proof methods for proving that specific electronic data existed at a specific time have been proposed. For example, Patent Document 1 discloses a time stamp update device that enables certification of data to be certified based on time stamp data transmitted from a time stamp authority device. Specifically, when the certification target data is input, the hash value calculated from the certification target data is transmitted to the time stamp authority apparatus, and the time stamp data received from the time stamp authority apparatus is stored in association with the certification target data. Is done. Then, a logical sum of the valid periods of the time stamp data associated with the certification target data is calculated, and a period that goes back from the verification time is output as a period during which the certification target data can be proved.

また、特許文献2には、ネットワーク上において、電子メール等のデータを正確な時刻情報を利用してやり取りすることのできるデータ送受信システムが開示されている。具体的には、認証局は、認証メールサーバに対し、高精度な時刻情報を含む電子消印が発行できることを認証する。電子メールの送信側の認証メールサーバは、送信者が送信する電子メールに、高精度な時刻情報が埋め込まれた電子消印を押印する。このとき、認証メールサーバで時刻情報が付与された電子消印のデータは、所定の電子消印発行プログラムによって改ざんができないようになっており、さらに暗号化して受信側メールサーバに転送される。   Patent Document 2 discloses a data transmission / reception system capable of exchanging data such as e-mail using accurate time information on a network. Specifically, the certificate authority authenticates that an electronic postmark including highly accurate time information can be issued to the authentication mail server. The authentication mail server on the e-mail transmission side stamps an electronic postmark in which highly accurate time information is embedded in the e-mail transmitted by the sender. At this time, the electronic postmark data to which the time information is given by the authentication mail server cannot be altered by a predetermined electronic postmark issuing program, and is further encrypted and transferred to the receiving mail server.

さらに、特許文献3には、オリジナル文書が特定の日付に特定の格納場所に存在したことを証明する存在証明プログラムが開示されている。具体的には、まず、登録者は、文書の複製物をコンテンツとして予め保存しておく。文書存在証明サーバは、登録者からの要求に応じて、指定されたURLによって文書を取得し、登録日付、文書URL及び文書の内容からハッシュを生成し、そのリンクを登録DBに登録し、登録者にハッシュURLを通知する。この通知を受けた登録者は、ハッシュURLを含む存在確認ページを作成してHTMLファイルに保存する。コンテンツ及びHTMLファイルの複製物を取得した閲覧者は、コンテンツ及び存在確認ページ中の登録日付、文書URLに基づいてハッシュを生成し、文書存在証明サーバから取得したハッシュと比較してオリジナル文書の存在を検証する。   Further, Patent Document 3 discloses a presence certification program that proves that an original document exists in a specific storage location on a specific date. Specifically, first, the registrant saves a copy of the document in advance as content. In response to a request from the registrant, the document existence certification server obtains a document with a specified URL, generates a hash from the registration date, the document URL, and the content of the document, registers the link in the registration DB, and registers The hash URL is notified to the user. Upon receiving this notification, the registrant creates an existence confirmation page including a hash URL and saves it in an HTML file. The viewer who has acquired a copy of the content and the HTML file generates a hash based on the content, the registration date in the existence confirmation page, and the document URL, and compares the hash acquired from the document presence certificate server with the presence of the original document. To verify.

特開2010−055634号公報JP 2010-055634 A 特開2002−116695号公報JP 2002-116695 A 特開平11−175512号公報JP-A-11-175512

本発明は、特定の電子データが特定の時点で存在していたことを高い堅牢性で証明する新規な存在証明手法を提供することである。   The present invention is to provide a novel existence proofing method that proves with high robustness that specific electronic data existed at a specific time.

かかる課題を解決すべく、第1の発明は、特定の電子データがトランザクション発生時に存在していたことを証明する存在証明プログラムを提供する。この存在証明プログラムは、存在証明の登録対象となる電子データの内容に基づき一義的に決定されるバイト配列をスクリプト中に埋め込んだトランザクションを生成し、このトランザクションを公開鍵暗号を使ってデジタル署名した上で、ブロックチェーンが存在するP2Pネットワークにブロードキャストする第1のステップと、トランザクションに固有のトランザクション識別子と、バイト配列とを関連付けて管理データベースに記憶する第2のステップと、トランザクション識別子をキーに、P2Pネットワーク上のブロックチェーンを検索して、トランザクション識別子に対応するトランザクションを特定し、このトランザクションに埋め込まれたバイト配列を抽出する第3のステップを有する処理をコンピュータに実行させる。   In order to solve this problem, the first invention provides a presence proof program for certifying that specific electronic data existed when a transaction occurred. This existence certification program generates a transaction in which a byte array uniquely determined based on the contents of electronic data to be registered for existence certification is embedded in a script, and digitally signs this transaction using public key cryptography. In the above, the first step of broadcasting to the P2P network where the block chain exists, the second step of associating the transaction identifier unique to the transaction and the byte array in association with each other and storing them in the management database, A block chain on the P2P network is searched to identify a transaction corresponding to the transaction identifier, and the computer is caused to execute a process including a third step of extracting a byte array embedded in the transaction.

ここで、第1の発明において、存在証明の検証対象となる電子データのバイト配列をキーとして、管理データベースを検索し、バイト配列に関連付けられたトランザクション識別子を特定する第4のステップをさらに有することが好ましい。   Here, the first invention further includes a fourth step of searching the management database using the byte array of electronic data to be verified for existence as a key and identifying a transaction identifier associated with the byte array. Is preferred.

第1の発明において、上記第1のステップは、電子データを登録しようとする者によって指定された仮想通貨アドレスを仮想通貨の送り先としたトランザクションを生成するステップを含んでいてもよい。   In the first invention, the first step may include a step of generating a transaction using a virtual currency address designated by a person who intends to register electronic data as a destination of the virtual currency.

第1の発明において、上記バイト配列は、電子データがファイルの場合、このファイルのハッシュ値であって、電子データがテキストメッセージの場合、このテキストメッセージのバイナリ表現であることが好ましい。   In the first invention, the byte array is preferably a hash value of the file when the electronic data is a file, and is a binary representation of the text message when the electronic data is a text message.

第1の発明において、上記電子データはファイルであって、上記第1のステップは、このファイルを暗号化した上で、このファイルのハッシュ値であるバイト配列と関連付けて記憶するステップを含むことが好ましい。   In the first invention, the electronic data is a file, and the first step includes a step of encrypting the file and storing it in association with a byte array that is a hash value of the file. preferable.

第2の発明は、ネットワークを介してクライアントに接続され、特定の電子データがトランザクション発生時に存在していたことを証明する存在証明サーバを提供する。この存在証明サーバは、データ送受部と、データ登録部と、データ検索部とを有する。データ送受部は、クライアントから送信され、かつ、存在証明の登録対象となる電子データを受け付ける。データ登録部は、電子データの内容に基づき一義的に決定されるバイト配列をスクリプト中に埋め込んだトランザクションを生成し、このトランザクションを公開鍵暗号を使ってデジタル署名した上で、ブロックチェーンが存在するP2Pネットワークにブロードキャストする。また、データ登録部は、トランザクションに固有のトランザクション識別子と、バイト配列とを対応付けて管理データベースに登録する。データ検索部は、トランザクション識別子をキーに、P2Pネットワーク上のブロックチェーンを検索して、トランザクション識別子に対応するトランザクションを特定し、このトランザクションに埋め込まれたバイト配列を抽出する。   The second invention provides a presence proof server that is connected to a client via a network and proves that specific electronic data existed when a transaction occurred. The presence certification server includes a data transmission / reception unit, a data registration unit, and a data search unit. The data transmission / reception unit accepts electronic data transmitted from the client and to be registered as a presence certificate. The data registration unit generates a transaction in which a byte array uniquely determined based on the contents of electronic data is embedded in a script, and after digitally signing this transaction using public key cryptography, a block chain exists. Broadcast to a P2P network. The data registration unit registers the transaction identifier unique to the transaction and the byte array in association with each other in the management database. The data search unit searches the block chain on the P2P network using the transaction identifier as a key, specifies a transaction corresponding to the transaction identifier, and extracts a byte array embedded in the transaction.

ここで、第2の発明において、データ検索部は、存在証明の検証対象となる電子データのバイト配列をキーとして、管理データベースを検索し、バイト配列に関連付けられたトランザクション識別子を抽出することが好ましい。   Here, in the second invention, it is preferable that the data search unit searches the management database using the byte array of electronic data to be verified for existence as a key, and extracts a transaction identifier associated with the byte array. .

ビットコイン(bitcoin)やその派生通貨を含む仮想通貨では、公開鍵暗号方式と、分散型暗号化データベースであるブロックチェーンとが用いられており、これらの技術によって、仮想通貨が誰から誰に渡ったかを示すトランザクション(取引)が高い堅牢性で保証される。本発明は、このような堅牢性を電子データの存在証明に利用するものであって、電子データの内容に基づき一義的に決定されるバイト配列を埋め込んだトランザクションを生成し、これを、ブロックチェーンが存在するP2Pネットワークにブロードキャストする。これによって、P2Pネットワーク上に存在するブロックチェーンに、バイト配列が埋め込まれたトランザクションが取り込まれる。電子データの存在証明を検証する場合、トランザクション識別子をキーにブロックチェーンを検索し、ヒットしたトランザクション中に埋め込まれたバイト配列を抽出することによって、電子データがトランザクション発生時に存在していたことの可否を高い堅牢性で検証・証明することができる。   In virtual currencies including bitcoin and its derivatives, public key cryptography and blockchain, which is a distributed encryption database, are used. A transaction that indicates whether or not the transaction is guaranteed with high robustness. The present invention utilizes such robustness for the existence proof of electronic data, generates a transaction in which a byte array uniquely determined based on the contents of the electronic data is embedded, and generates the transaction as a block chain. Broadcast to the existing P2P network. As a result, the transaction in which the byte array is embedded in the block chain existing on the P2P network is captured. When verifying the presence of electronic data, the blockchain is searched using the transaction identifier as a key, and the byte array embedded in the hit transaction is extracted to determine whether the electronic data existed when the transaction occurred Can be verified and proved with high robustness.

本実施形態に係る存在証明サーバのブロック構成図Block configuration diagram of the presence certification server according to the present embodiment 存在証明の登録対象となるファイルの入力画面例Example of input screen for file to be registered for existence certificate 存在証明の登録対象となるテキストメッセージの入力画面例Input screen example of text message to be registered for existence certificate 電子データの登録ルーチンのフローチャートFlow chart of electronic data registration routine トランザクションの概念図Conceptual diagram of transaction トランザクションにおけるデータ構造の説明図Illustration of data structure in transaction バイト配列を埋め込んだトランザクションのスクリプトの一例を示す図Diagram showing an example of transaction script with embedded byte array ブロックチェーン21の説明図Illustration of blockchain 21 電子データを入力としてトランザクション識別子を検索する検索ルーチンのフローチャートFlowchart of a search routine for searching for a transaction identifier using electronic data as input ブロックチェーンの検索ルーチンのフローチャートBlockchain search routine flowchart 電子データの存在証明の説明図Illustration of the existence proof of electronic data

図1は、本実施形態に係る存在証明サーバのブロック構成図である。この存在証明サーバ1は、インターネット等のネットワークを介して、仮想通貨の利用者が操作するクライアント10および仮想通貨ネットワーク20に接続されている。仮想通貨ネットワーク20は、P2P(peer to peer)ネットワークであって、多数の端末間で通信を行う際、対等の者(Peer)同士が通信をするアーキテクチャが採用されている。また、仮想通貨ネットワーク20上には、後述するように、分散型暗号化データベースの一種であるブロックチェーン21が存在する。存在証明サーバ1は、電子データの存在証明機能、すなわち、特定の電子データが特定の時点で存在していたことを証明する機能を有している。本実施形態において、存在証明の対象となる電子データとしては、所定の文字数以下のテキストメッセージ(文字列)、および、ドキュメント、静止画、動画といったファイルの2種類が存在する。このような電子データの存在証明機能を実現するために、存在証明サーバ1は、データ送受部2と、データ登録部3と、データ検索部4と、管理データベース5と、ファイル記憶部6とを有している。   FIG. 1 is a block diagram of a presence proof server according to the present embodiment. The presence certificate server 1 is connected to a client 10 and a virtual currency network 20 operated by a virtual currency user via a network such as the Internet. The virtual currency network 20 is a peer-to-peer (P2P) network, and adopts an architecture in which peers communicate with each other when communicating between a large number of terminals. Further, as will be described later, a block chain 21 which is a kind of distributed encryption database exists on the virtual currency network 20. The existence proof server 1 has an electronic data existence proof function, that is, a function to prove that specific electronic data existed at a specific time. In the present embodiment, there are two types of electronic data that are subject to existence certification: text messages (character strings) having a predetermined number of characters or less, and files such as documents, still images, and moving images. In order to realize such electronic data existence certification function, the existence certification server 1 includes a data transmission / reception unit 2, a data registration unit 3, a data search unit 4, a management database 5, and a file storage unit 6. Have.

データ送受部2は、存在証明サーバ1とクライアント10との間におけるデータの送受を司るインターフェースであり、特に、存在証明の登録対象や検証対象となる電子データをクライアント10から受信する(受け付ける)と共に、登録結果や検索結果をクライアント10に送信する。   The data transmission / reception unit 2 is an interface that controls transmission / reception of data between the presence certification server 1 and the client 10, and in particular, receives (accepts) from the client 10 electronic data to be registered and verified for existence certification. The registration result and the search result are transmitted to the client 10.

データ登録部3は、受け付けた電子データに基づき、この電子データの内容によって一義的に決定されるバイト配列BA(後述するハッシュ値やバイナリ表現)を生成し、このバイト配列BAをスクリプト中に埋め込んだトランザクションを生成する。そして、データ登録部3は、このトランザクションを公開鍵暗号方式を用いてデジタル署名した上で、ブロックチェーン21に取り込むために、仮想通貨ネットワーク20にブロードキャストする。また、データ登録部3は、トランザクションに固有のトランザクション識別子TrIDと、バイト配列BAとを対応付けて管理データベース5に登録・記憶する。さらに、データ登録部3は、クライアント10から受け付けた電子データがファイルの場合(テキストメッセージを除く。)、このファイルを、バイト配列BA(ファイルのハッシュ値)と関連付けて、ファイル記憶部6に記憶・保存する。   Based on the received electronic data, the data registration unit 3 generates a byte array BA (hash value or binary expression described later) that is uniquely determined by the contents of the electronic data, and embeds this byte array BA in the script. Generate a transaction. Then, the data registration unit 3 digitally signs this transaction using a public key cryptosystem, and broadcasts it to the virtual currency network 20 for incorporation into the block chain 21. Further, the data registration unit 3 registers and stores the transaction identifier TrID unique to the transaction and the byte array BA in association with each other in the management database 5. Further, when the electronic data received from the client 10 is a file (excluding a text message), the data registration unit 3 stores this file in the file storage unit 6 in association with the byte array BA (file hash value). ·save.

データ検索部4は、電子データの存在証明を検証する際、トランザクション識別子TrIDをキーにブロックチェーン21を検索して、トランザクション識別子TxIDに対応するトランザクションを特定し、このトランザクションに埋め込まれたバイト配列BAを抽出する。また、データ検索部4は、この検索の前処理として必要に応じて、存在証明の検証対象となる電子データのバイト配列BAをキーとして、管理データベース5を検索し、このバイト配列BAに関連付けられたトランザクション識別子TxIDを抽出する。   When verifying the existence proof of the electronic data, the data search unit 4 searches the block chain 21 using the transaction identifier TrID as a key, identifies the transaction corresponding to the transaction identifier TxID, and stores the byte array BA embedded in this transaction. To extract. In addition, the data search unit 4 searches the management database 5 using the byte array BA of the electronic data to be verified for existence as a key as a pre-process of this search, as necessary, and is associated with this byte array BA. The transaction identifier TxID is extracted.

なお、本実施形態では、電子データの存在証明機能のみに着目しているが、ビットコインやその派生通貨を含む仮想通貨の取引や管理を行うプラットフォームの一機能として、電子データの存在証明サービスを提供してもよい。   In this embodiment, attention is focused only on the presence verification function of electronic data, but the presence verification service of electronic data is provided as one function of a platform for trading and managing virtual currency including bitcoin and its derivatives. May be provided.

図2は、存在証明の登録対象となるファイルの入力画面例である。クライアント10を操作するユーザは、図示された入力画面の指示に従い、仮想通貨の送り先となる仮想通貨アドレスおよびパスワードを入力すると共に、アップロードするファイルを選択する。また、図3は、存在証明の登録対象となるテキストメッセージの入力画面例である。ユーザは、入力画面例の書き込みの指示「Write a Message」に従い、図2に示したファイルの選択の代わりに、アップロードするテキストメッセージを同指示の下欄のボックスに入力する。これらユーザによるファイル選択及び送信アイコンの選択や、テキストメッセージの入力及び書き込みアイコン(図3の「Write Forever」)を受け、当該ファイル・テキストメッセージのデータがクライアント10から存在証明サーバ1に送信され、存在証明サーバ1側のデータ登録部3にて受け付けられる。これら図2及び図3に示す入力画面は、存在証明サーバ1からクライアント10に処理の都度提供され、あるいは予め提供されたアプリケーションにより実行され得る。   FIG. 2 is an example of an input screen for a file to be registered as a presence certificate. A user who operates the client 10 inputs a virtual currency address and a password to which a virtual currency is to be sent, and selects a file to be uploaded in accordance with an instruction on the illustrated input screen. FIG. 3 shows an example of an input screen for a text message to be registered for existence certification. In accordance with the write instruction “Write a Message” in the input screen example, the user inputs the text message to be uploaded into the box in the lower column of the instruction instead of selecting the file shown in FIG. In response to selection of a file selection and transmission icon by the user, and input and writing icon of a text message (“Write Forever” in FIG. 3), the data of the file / text message is transmitted from the client 10 to the presence proof server 1, The data registration unit 3 on the presence certificate server 1 side accepts it. These input screens shown in FIGS. 2 and 3 can be provided from the presence certificate server 1 to the client 10 every time processing is performed, or can be executed by an application provided in advance.

図4は、電子データの登録ルーチンのフローチャートである。この登録ルーチンは、存在証明の登録対象となる電子データがデータ送受部1によって受け付けられた場合に、データ登録部2によって実行される。   FIG. 4 is a flowchart of an electronic data registration routine. This registration routine is executed by the data registration unit 2 when electronic data to be registered for the presence certificate is received by the data transmission / reception unit 1.

まず、ステップ1において、登録対象となる電子データの種別が判定される。電子データの種別がファイルの場合、ファイルのハッシュ値が例えばSHA256を用いて生成される(ステップ2)。ハッシュ値は、同じ入力値からは必ず同一値が出力される一方、少しでも異なる入力値からはまったく違う値が出力されるといった特徴を有する。また、ハッシュ関数は、不可逆な一方向関数を含むため、出力されたハッシュ値から入力値を割り出すことはできない。このような特徴から、ハッシュ値は、ファイルの改ざんを検出する用途で広く利用されている。本実施形態において、ファイルの内容から一義的に決定されるハッシュ値は、存在証明の登録対象となるファイルを特徴付けるバイト配列BAとされる。   First, in step 1, the type of electronic data to be registered is determined. If the electronic data type is a file, a hash value of the file is generated using, for example, SHA256 (step 2). The hash value is characterized in that the same value is always output from the same input value, but a completely different value is output from a slightly different input value. Moreover, since the hash function includes an irreversible one-way function, an input value cannot be determined from the output hash value. Because of these characteristics, hash values are widely used for detecting falsification of files. In the present embodiment, the hash value uniquely determined from the contents of the file is a byte array BA that characterizes the file to be registered for the existence certificate.

ステップ3において、ファイルは、暗号化された上で、このファイルのバイト配列BA(ハッシュ値)と関連付けてファイル記憶部6に格納される。ファイルを暗号化する理由は、もっぱら、第三者に対してファイルの内容を秘匿することにあるから、秘匿性が要求されないのであれば、平文のままファイルをファイル記憶部6に格納してもよい。   In step 3, the file is encrypted and stored in the file storage unit 6 in association with the byte array BA (hash value) of the file. The reason for encrypting the file is to keep the contents of the file secret from a third party. Therefore, if confidentiality is not required, the file can be stored in the file storage unit 6 in plain text. Good.

一方、電子データの種別がテキストメッセージの場合、ステップ1からステップ4に進み、テキストメッセージのバイナリ表現(例えば、UTF−8でエンコードした値)がバイト配列BAとされる。いうまでもなく、このバイナリ表現も、テキストメッセージの内容から一義的に決定されるものである。   On the other hand, when the type of electronic data is a text message, the process proceeds from step 1 to step 4, and the binary representation of the text message (for example, a value encoded by UTF-8) is set as the byte array BA. Needless to say, this binary representation is also uniquely determined from the contents of the text message.

ステップ3またはステップ4に続くステップ5において、電子データを登録しようとする者によって指定された仮想通貨アドレスを仮想通貨の送り先として、バイト配列BAが埋め込まれたトランザクションが生成される。ここで、図5に基づき、ビットコインにおけるトランザクションの概念について説明する。ビットコインにおいて、通貨は取引履歴、すなわち、通貨が今まで経てきた全取引のまとまりとして表現される。それぞれのトランザクション(通貨の取引)では、前のトランザクションのハッシュ値や、新たな所有者の公開鍵を含み、元の所有者の暗号鍵によってデジタル署名されている。全てのトランザクションに関する情報は、P2Pネットワーク全体で共有される。このようにトランザクションを表現することで、元の所有者の許可なく、通貨を本人以外が勝手に譲渡することはできず、また、第三者は、通貨の譲渡を客観的に確認できるといった利点を有する。   In step 5 following step 3 or step 4, a transaction in which the byte array BA is embedded is generated using the virtual currency address designated by the person who intends to register the electronic data as the destination of the virtual currency. Here, based on FIG. 5, the concept of transaction in Bitcoin will be described. In Bitcoin, currency is expressed as a transaction history, that is, a collection of all transactions that the currency has gone through. Each transaction (currency transaction) is digitally signed with the original owner's encryption key, including the hash value of the previous transaction and the public key of the new owner. Information about all transactions is shared across the P2P network. By expressing the transaction in this way, it is not possible to transfer the currency without permission of the original owner, and the third party can objectively confirm the transfer of the currency. Have.

図6は、トランザクションにおけるデータ構造の説明図である。トランザクションのデータ構造は、「出力 (出金する通貨)」と、「入力 (入金に用いる通貨)」とを有している。送金には、相手に渡す通貨(額面)および宛先が必要であるが、それらを表現したものが出力である。自分に宛てられた通貨を使う (=誰かに送金する) ためには、過去のトランザクションの出力を参照しなければならず、それが今回のトランザクションにおける入力に相当する。一つのトランザクションにおいて、出力および入力はそれぞれ複数指定できる。任意の額の送金を行うためには、過去の自分宛のトランザクションの出力を集め、これから行う取引の入力として指定する必要がある。   FIG. 6 is an explanatory diagram of a data structure in a transaction. The data structure of the transaction has “output (currency for withdrawal)” and “input (currency used for deposit)”. For remittance, the currency (face value) to be sent to the other party and the destination are required, but the output is a representation of them. To use the currency addressed to you (= send money to someone), you must refer to the output of a past transaction, which corresponds to the input in the current transaction. Multiple outputs and inputs can be specified for each transaction. In order to send an arbitrary amount of money, it is necessary to collect the output of past transactions addressed to itself and specify it as an input for a future transaction.

図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のバイト数には上限がある関係上、ファイルについてはハッシュ値を用い、テキストメッセージについては上限値を超えないことが条件となる。   FIG. 7 is a diagram illustrating an example of a transaction script in which the byte array BA is embedded. In Bitcoin, a transaction is described by a Bitcoin script. The transaction shown in the figure means that a predetermined amount of money is sent to the user B using the bit coin sent from the user A to himself / herself in the past. Each transaction is given a transaction identifier TxID unique to the transaction, and usually a transaction hash value is used. As described above, “OutputScript” can specify a plurality of outputs. “Output 2” is a normal description for verifying an input digital signature, whereas “Output 1” has a byte array BA. It is a description for adding. In the Bitcoin script, there is a code called "OP_RETURN", which, like a general program return, stops the script when it comes there and does not allow you to reference its output. is there. If the byte array BA is added using “OP_PUSHDATA” following “OP_RETURN”, “output 1” can be used as a description column of the byte array BA without adversely affecting the digital signature. Taking advantage of the characteristics of “OP_RETURN” as described above, the data registration unit 3 embeds the byte array BA by automatically adding the byte array BA specified in steps 2 and 4 to the description of the normal script. Generated transactions. Note that the number of bytes of the byte array BA that can be added using “OP_PUSHDATA” has an upper limit, so that the hash value is used for the file and the upper limit value is not exceeded for the text message.

再び図4を参照して、ステップ6において、ステップ5で生成されたトランザクションが公開鍵暗号を使ってデジタル署名され、そのハッシュ値がトランザクション識別子TxID、すなわち、トランザクションを一義的に特定するための固有の値として採番される。ステップ7において、ステップ2またはステップ4で特定されたバイト配列BAと、ステップ6で採番されたトランザクション識別子TxIDとが関連付けて、管理データベース5に登録される。また、電子データの検証時に、バイト配列BAがハッシュ値およびバイナリ表現のいずれであるかを判別するために、バイト配列BAの種別も併せて管理データベース5に記憶される。   Referring again to FIG. 4, in step 6, the transaction generated in step 5 is digitally signed using public key cryptography, and its hash value is a transaction identifier TxID, a unique identifier for uniquely identifying the transaction. It is numbered as the value of. In step 7, the byte array BA specified in step 2 or step 4 and the transaction identifier TxID numbered in step 6 are associated with each other and registered in the management database 5. In addition, the type of the byte array BA is also stored in the management database 5 in order to determine whether the byte array BA is a hash value or a binary representation when the electronic data is verified.

ステップ8において、バイト配列BAが埋め込まれたトランザクション(ステップ5)が、P2Pネットワークである仮想通貨ネットワーク20にブロードキャストされる。ここで、ブロードキャストとは、トランザクションを仮想通貨ネットワーク20に接続された複数のユーザに送信することをいう。ブロードキャストされたトランザクションは、通常のトランザクションと同様、仮想通貨ネットワーク20全体で共有され、採掘者(マイナー)と呼ばれるネットワークノードによって、ブロックチェーン21中に取り込まれる。これは、配列BAが埋め込まれたトランザクションが、ブロックチェーン21という極めて堅牢な分散型暗号化データベースに登録されることを意味する。   In step 8, the transaction (step 5) in which the byte array BA is embedded is broadcast to the virtual currency network 20 which is a P2P network. Here, broadcasting refers to transmitting a transaction to a plurality of users connected to the virtual currency network 20. The broadcasted transaction is shared throughout the virtual currency network 20 and is taken into the block chain 21 by a network node called a miner (minor) in the same manner as a normal transaction. This means that the transaction in which the array BA is embedded is registered in the extremely robust distributed encryption database called the block chain 21.

図8は、ブロックチェーン21の説明図である。ブロックチェーン21は、ビットコインおよびその派生通貨で採用されている二重譲渡を防ぐ仕組みである。二重譲渡とは、元の通貨の持ち主が二人以上の相手に、全く同じ通貨を譲渡することである。通貨として用いるためには、どちらの譲渡のみをネットワーク全体で正しい取引として決定する必要がある。一般には、時系列的に後のトランザクションを無効とみなすのが自然だが、これらの取引はP2Pネットワーク上でなされるので、ネットワーク全体として見たとき、どちらが先に行われた取引であるかということを確実には決定できない。しかしながら、ここで重要なのは、ネットワーク全体で特定のどちらか一方のみを一貫して正しい取引であると決定できることであって、矛盾する二つの取引のあるとき、厳密にどちらの取引が先になされたかというのは、あまり重要でない。ブロックチェーン(Block Chain; ブロック鎖)において、それぞれのブロック(Block)は、多数のトランザクションと、ナンス(Nonce)と呼ばれる特別な値と、直前のブロックのハッシュとを有している。ブロックに含まれたトランザクション(取引)のみを「正しい取引」と認めることにする。そして、ネットワーク全体で「唯一のブロックの鎖」を持つようにする。これによって、一貫した取引履歴をネットワーク全体で共有できる、というのがブロックチェーンの仕組みである。   FIG. 8 is an explanatory diagram of the block chain 21. The block chain 21 is a mechanism for preventing double transfer adopted in bit coins and derivatives thereof. Double transfer is the transfer of the exact same currency to two or more opponents of the original currency. In order to use it as a currency, only one of the transfers needs to be determined as a correct transaction throughout the network. Generally, it is natural to consider later transactions as invalid in time series, but since these transactions are performed on the P2P network, which is the earlier transaction when viewed as the whole network Cannot be determined reliably. However, what is important here is that only one of the specifics can be consistently determined to be a correct transaction throughout the network, and when there are two conflicting transactions, exactly which transaction was made first. That's not very important. In a block chain, each block has a number of transactions, a special value called a nonce, and a hash of the previous block. Only transactions (transactions) included in the block are recognized as “correct transactions”. And make sure that the entire network has a “single block of blocks”. In this way, the blockchain mechanism is that a consistent transaction history can be shared across the entire network.

そして、ステップ9において、電子データの登録が完了した旨の通知をクライアント10に送信することによって、本ルーチンを抜ける。   In step 9, a notification that the registration of the electronic data is completed is transmitted to the client 10, thereby exiting this routine.

図9は、電子データを入力としてトランザクション識別子を検索する検索ルーチンのフローチャートである。この検索ルーチンは、存在証明の検証対象となる電子データがデータ送受部1によって受け付けられ、これを入力としてトランザクション識別子TxIDを検索する場合に、データ検索部4によって実行される。   FIG. 9 is a flowchart of a search routine for searching for a transaction identifier using electronic data as an input. This search routine is executed by the data search unit 4 when electronic data to be verified for existence certification is received by the data transmission / reception unit 1 and the transaction identifier TxID is searched by using this as input.

まず、ステップ11において、検索対象となる電子データの種別が判定される。電子データの種別がファイルの場合、ファイルのハッシュ値が、登録時と同じハッシュ関数(例えばSHA256)を用いて生成される(ステップ12)。そして、このハッシュ値は、存在証明の検証対象となるファイルを特徴付けるバイト配列BAとされる。   First, in step 11, the type of electronic data to be searched is determined. If the electronic data type is a file, a hash value of the file is generated using the same hash function (for example, SHA256) as that used for registration (step 12). This hash value is a byte array BA that characterizes the file to be verified for existence.

一方、電子データの種別がテキストメッセージの場合、ステップ11からステップ13に進み、テキストメッセージのバイナリ表現(例えば、UTF−8でエンコードした値)がバイト配列BAとされる。   On the other hand, when the type of electronic data is a text message, the process proceeds from step 11 to step 13, and the binary representation of the text message (for example, a value encoded by UTF-8) is set as the byte array BA.

ステップ12またはステップ13に続くステップ14において、バイト配列BAをキーに管理データベース5が検索され、このバイト配列BAに関連付けられたトランザクション識別子TxIDが特定される。そして、ステップ15において、このトランザクション識別子TxIDが検索結果としてクライアント10に通知されて、本ルーチンを抜ける。   In step 14 following step 12 or step 13, the management database 5 is searched using the byte array BA as a key, and the transaction identifier TxID associated with this byte array BA is specified. In step 15, the transaction identifier TxID is notified to the client 10 as a search result, and the routine is exited.

図10は、ブロックチェーン21の検索ルーチンのフローチャートである。この検索ルーチンは、トランザクション識別子TxIDをキーにブロックチェーン21を検索し、トランザクション中に埋め込まれたバイト配列BAを抽出する場合に、データ検索部4によって実行される。   FIG. 10 is a flowchart of the search routine for the block chain 21. This search routine is executed by the data search unit 4 when searching the block chain 21 using the transaction identifier TxID as a key and extracting the byte array BA embedded in the transaction.

まず、ステップ17において、トランザクション識別子TxIDをキーとして、仮想通貨ネットワーク20上に存在するブロックチェーン21が検索される。ブロックチェーン21において、トランザクション識別子TxIDに対応するトランザクションが存在する場合には、ステップ18の肯定判定を経てステップ19に進む。一方、ブロックチェーン21において、トランザクション識別子TxIDに対応するトランザクションが存在しない場合には、ステップ18の否定判定を経てステップ24に進み、クライアント10にエラーを送信して、本ルーチンを抜ける。   First, in step 17, the block chain 21 existing on the virtual currency network 20 is searched using the transaction identifier TxID as a key. If there is a transaction corresponding to the transaction identifier TxID in the block chain 21, the process proceeds to step 19 through an affirmative determination in step 18. On the other hand, if there is no transaction corresponding to the transaction identifier TxID in the block chain 21, the process proceeds to step 24 through a negative determination in step 18, transmits an error to the client 10, and exits this routine.

ステップ19において、トランザクション識別子TxIDに対応するトランザクションに記述されたバイト配列BAが抽出・取得される。つぎに、ステップ20において、電子データの種別が判定される。電子データの種別がファイルの場合には、ステップ22に進み、バイト配列BAをキーにファイル記憶部6が検索される。そして、ステップ22において、検索結果をクライアント10に送信して、本ルーチンを抜ける。   In step 19, the byte array BA described in the transaction corresponding to the transaction identifier TxID is extracted and acquired. Next, in step 20, the type of electronic data is determined. If the type of electronic data is a file, the process proceeds to step 22 where the file storage unit 6 is searched using the byte array BA as a key. In step 22, the search result is transmitted to the client 10 and the routine is exited.

この検索結果は、電子データの存在証明の可否のみならず、存在を証明できる場合には、ファイルの名称およびトランザクション発生時の提示を含んでいてもよい。ここで、「トランザクション発生時」とは、厳密には、仮想通貨ネットワーク20にアップロードされたトランザクションを含む新たなブロックがブロックチェーン21中に取り込まれた日時であって、この日時はブロックチェーン21を検索することによって、随時、特定可能である。これにより、トランザクションに埋め込まれたバイト配列BA(ハッシュ値)がトランザクション発生時に存在していたことが保証される。上述したように、バイト配列BAであるハッシュ値は、ファイルから一義的に決定される値であるから、存在証明の検証対象となるファイルのハッシュ値BAと、トランザクションから抽出されたバイト配列BAとが一致するということは、すなわち、検証対象となるファイルと同一内容のものがトランザクションの発生時に存在していたことを意味する。なお、検索結果の形態としては様々なものが考えられ、例えば、存在証明サーバ1側において、存在証明の検証対象となるファイルのバイト配列BAと、トランザクションから抽出されたバイト配列BAとを比較して、存在証明の可否を明示的に判断・通知してもよいし、あるいは、トランザクションから抽出されたバイト配列BAをクライアント10に通知して、存在証明の可否の判断についてはユーザに委ねてもよい。   This search result may include not only the presence / absence of the electronic data existence proof but also the file name and presentation when the transaction occurs when the existence can be proved. Here, “when a transaction occurs” is strictly the date and time when a new block including a transaction uploaded to the virtual currency network 20 is taken into the block chain 21, and this date and time indicates the block chain 21. By searching, it can be specified at any time. This ensures that the byte array BA (hash value) embedded in the transaction was present when the transaction occurred. As described above, since the hash value that is the byte array BA is a value that is uniquely determined from the file, the hash value BA of the file to be verified for existence proof, the byte array BA extracted from the transaction, That is, it means that a file having the same content as the file to be verified existed when the transaction occurred. Various forms of search results are conceivable. For example, the existence certificate server 1 compares the byte array BA of the file to be verified with the existence certificate and the byte array BA extracted from the transaction. Then, the presence / absence of the existence proof may be explicitly determined / notified, or the client 10 may be notified of the byte array BA extracted from the transaction, and the user may be left to determine whether the existence proof is acceptable. Good.

一方、電子データの種別がテキストメッセージの場合には、ステップ20からステップ23に進み、バイト配列BAがデコードされてテキストメッセージが復元される。そして、このテキストメッセージをクライアント10に送信して、本ルーチンを抜ける。これにより、そのテキストメッセージがトランザクション発生時に存在していたことが証明される。   On the other hand, if the type of electronic data is a text message, the process proceeds from step 20 to step 23, where the byte array BA is decoded and the text message is restored. Then, this text message is transmitted to the client 10 and the routine is exited. This proves that the text message was present when the transaction occurred.

このように、本実施形態によれば、ファイルやテキストメッセージといった電子データがトランザクション発生時に存在していたことの可否を高い堅牢性で検証・証明することができる。この点を詳述すると、図11に示すように、まず、バイト配列BAが埋め込まれたトランザクションBが仮想通貨ネットワーク20上にアップロードされ、これによって、このトランザクションがブロックチェーン21に取り込まれる。バイト配列BAは、ファイルの場合はファイルのハッシュ値、テキストメッセージの場合はテキストメッセージのバイナリ表現であって、いずれも、電子データから一義的に決定される固有値である。ビットコインでは、第三者による改変や二重譲渡を防止するための仕組みとして、公開鍵暗号技術および分散型暗号化データベース技術が採用されており、これによって、仮想通貨が誰から誰に渡ったかを示すトランザクションが高い堅牢性で保証されている。   As described above, according to the present embodiment, it is possible to verify and prove with high robustness whether electronic data such as a file or a text message existed when a transaction occurred. To elaborate on this point, as shown in FIG. 11, first, the transaction B in which the byte array BA is embedded is uploaded onto the virtual currency network 20, and thereby this transaction is taken into the block chain 21. The byte array BA is a hash value of a file in the case of a file, a binary representation of a text message in the case of a text message, and is a unique value that is uniquely determined from electronic data. Bitcoin employs public key encryption technology and distributed encryption database technology as a mechanism to prevent modification or double transfer by a third party. Transactions that are guaranteed to be highly robust.

一方、電子データの検証時においては、存在証明サーバ1側に記憶されているトランザクション識別子TxID=Bを検索キーとして、ブロックチェーン21を検索することによって、多数のトランザクションの中からトランザクションBが特定される。そして、このトランザクションBに埋め込まれたバイト配列BAを取得・抽出することによって、電子データがトランザクション発生時に存在していたことの検証・証明が可能になる。すなわち、電子データがファイルの場合には、検証対象となるファイルのバイト配列BAと、ブロックチェーン21から取得・抽出されたバイト配列BAとが一致することをもって、検証対象となるファイルと同一内容のものがトランザクション発生時に存在していたことが証明される。また、電子データがテキストメッセージの場合には、ブロックチェーン21から取得・抽出されたバイト配列BA(デコードされたテキストメッセージ)自体がトランザクション発生時に存在していたことが証明される。   On the other hand, at the time of verification of the electronic data, the transaction B is identified from a large number of transactions by searching the block chain 21 using the transaction identifier TxID = B stored on the existence proof server 1 side as a search key. The Then, by acquiring / extracting the byte array BA embedded in the transaction B, it becomes possible to verify and prove that the electronic data existed when the transaction occurred. That is, when the electronic data is a file, the byte array BA of the file to be verified and the byte array BA acquired / extracted from the block chain 21 have the same contents as the file to be verified. It is proved that things existed at the time of the transaction. If the electronic data is a text message, it is proved that the byte array BA (decoded text message) itself acquired / extracted from the block chain 21 was present when the transaction occurred.

以上のことから、電子データの存在証明という観点でいえば、仮想通貨ネットワーク20上のブロックチェーン21は、一般的な意味でいう仮想通貨の取引履歴というよりも、むしろ、存在証明用のデータベースとして捉えることができ、また、このデータベースを構成する1つのトランザクションは、存在証明に必要なデータ(バイト配列BA)が記述された1つのレコードとして捉えることができる。そこで、本明細書では、「ブロックチェーン」および「トランザクション」という用語を、そのような拡張的な意味で用いることとする。   From the above, from the viewpoint of the existence proof of electronic data, the block chain 21 on the virtual currency network 20 is not a virtual currency transaction history in a general sense, but rather a database for proof of existence. One transaction constituting this database can be regarded as one record in which data (byte array BA) necessary for existence proof is described. Therefore, in this specification, the terms “block chain” and “transaction” are used in such an expanded sense.

なお、上述した実施形態では、仮想通貨の典型であるビットコインを例に説明したが、本発明は、これに限定されるものではなく、以下の2要件を満たす派生通貨等に対して、広く適用可能である。
(1)P2Pネットワーク上にブロックチェーンが存在すること
(2)個々のトランザクションが公開鍵暗号方式を用いてデジタル署名されること
In the above-described embodiment, bit coins, which are typical virtual currencies, have been described as examples. However, the present invention is not limited to this, and is widely applied to derivative currencies that satisfy the following two requirements. Applicable.
(1) The block chain exists on the P2P network. (2) Each transaction is digitally signed using a public key cryptosystem.

また、上述した実施形態では、存在証明の対象となる電子データとして、テキストメッセージおよびファイルの2種類を取り扱う例について説明したが、いずれか一方のみを取り扱うようにしてもよい。   In the above-described embodiment, an example has been described in which two types of text message and file are handled as electronic data to be subject to existence certification. However, only one of them may be handled.

さらに、上述した実施形態では、図6、図9および図10に示したフローチャートを有するプログラムが存在証明サーバ1にインストールされている例について説明したが、このプログラムを利用者が操作するコンピュータにインストールすることによって、電子データの登録および検証を利用者自身が直接行うようにしてもよい。   Further, in the above-described embodiment, the example in which the program having the flowcharts shown in FIGS. 6, 9, and 10 is installed in the existence proof server 1 has been described, but this program is installed in the computer operated by the user. By doing so, the user may directly register and verify the electronic data.

1 存在証明サーバ
2 データ送受部
3 データ登録部
4 データ検索部
5 管理データベース
6 ファイル記憶部
10 クライアント
20 仮想通貨ネットワーク
21 ブロックチェーン
DESCRIPTION OF SYMBOLS 1 Existence proof server 2 Data transmission / reception part 3 Data registration part 4 Data search part 5 Management database 6 File storage part 10 Client 20 Virtual currency network 21 Block chain

Claims (10)

特定の電子データが存在していたことを証明するための存在証明方法であって、
存在証明の登録対象となる電子データを登録する際に、
サーバが、前記電子データの内容に基づき決定されるバイト配列を有するトランザクションを生成して、当該トランザクションをデジタル署名した上でブロックチェーンが存在するネットワークにブロードキャストするステップと、
前記サーバが、前記バイト配列と前記トランザクションに対応するトランザクション識別子とを関連付けて前記サーバのデータベースに記憶するステップと
を含み、
前記電子データの存在証明を検証する際に、
前記サーバが、前記電子データの内容に基づき決定されるバイト配列を生成し、前記データベースに記憶されたバイト配列とトランザクション識別子との関連付けを参照して、前記バイト配列に関連付けられた前記トランザクション識別子を特定するステップと、
前記サーバが、前記トランザクション識別子をキーに前記ネットワーク上に存在する前記ブロックチェーンを検索して、前記トランザクション識別子に対応するトランザクションの有無を判定するステップと、
前記サーバが、前記判定の結果が有の場合に、前記トランザクション識別子に対応する前記トランザクションからバイト配列を抽出するステップと
を含み、
前記抽出されたバイト配列が前記登録の際に記憶されたバイト配列と一致することにより前記電子データの存在が証明されることを特徴とする存在証明方法。
A proof of existence method for proving that specific electronic data existed,
When registering electronic data to be registered for existence certification,
A server generates a transaction having a byte arrangement determined based on the content of the electronic data, digitally signs the transaction, and broadcasts the transaction to a network in which a block chain exists;
The server associating the byte array with a transaction identifier corresponding to the transaction in a database of the server ;
When verifying the existence proof of the electronic data,
The server generates a byte array determined based on the content of the electronic data, refers to the association between the byte array stored in the database and a transaction identifier, and determines the transaction identifier associated with the byte array. Identifying steps;
The server searches the block chain existing on the network using the transaction identifier as a key, and determines whether there is a transaction corresponding to the transaction identifier;
The server extracting a byte array from the transaction corresponding to the transaction identifier if the determination result is yes,
A presence proving method characterized in that the existence of the electronic data is proved when the extracted byte array matches the byte array stored at the time of registration.
前記バイト配列は、前記電子データの種別に応じてハッシュ値又はバイナリ表現のいずれかであることを特徴とする請求項1に記載の存在証明方法。   The existence certifying method according to claim 1, wherein the byte array is either a hash value or a binary representation according to a type of the electronic data. 前記バイト配列は、前記トランザクションのスクリプトに記述されていることを特徴とする請求項1又は2に記載の存在証明方法。   3. The existence verification method according to claim 1, wherein the byte array is described in a script of the transaction. 前記電子データの存在証明を検証する際に、
前記抽出されたバイト配列をキーに前記登録の際に記憶されたバイト配列を検索するステップをさらに含むことを特徴とする請求項1乃至3のいずれかに記載の存在証明方法。
When verifying the existence proof of the electronic data,
4. The existence verification method according to claim 1, further comprising a step of searching for a byte array stored at the time of registration using the extracted byte array as a key.
前記抽出されたバイト配列と一致するバイト配列が記憶されている場合に、前記電子データが存在していたことの証明を通知するステップをさらに含むことを特徴とする請求項4に記載の存在証明方法。   5. The existence proof according to claim 4, further comprising a step of notifying the proof that the electronic data existed when a byte arrangement that matches the extracted byte arrangement is stored. Method. 前記通知は、前記電子データが登録された日時を含むことを特徴とする請求項5に記載の存在証明方法。   6. The existence certification method according to claim 5, wherein the notification includes a date and time when the electronic data was registered. 前記ネットワークは、仮想通貨ネットワークであることを特徴とする請求項1乃至6のいずれかに記載の存在証明方法。   The existence proof method according to claim 1, wherein the network is a virtual currency network. 前記ブロードキャストされるトランザクションは、前記電子データの登録者によって指定された仮想通貨アドレスを送り先とすることを特徴とする請求項7に記載の存在証明方法。   8. The existence certification method according to claim 7, wherein the broadcasted transaction is sent to a virtual currency address designated by a registrant of the electronic data. コンピュータに、特定の電子データが存在していたことを証明するための存在証明方法を実行させるためのプログラムであって、前記存在証明方法は、
存在証明の登録対象となる電子データを登録する際に、
前記コンピュータが、前記電子データの内容に基づき決定されるバイト配列を有するトランザクションを生成して、当該トランザクションをデジタル署名した上でブロックチェーンが存在するネットワークにブロードキャストするステップと、
前記コンピュータが、前記バイト配列と前記トランザクションに対応するトランザクション識別子とを関連付けて前記コンピュータのデータベースに記憶するステップと
を含み、
前記電子データの存在証明を検証する際に、
前記コンピュータが、前記電子データの内容に基づき決定されるバイト配列を生成し、前記データベースに記憶されたバイト配列とトランザクション識別子との関連付けを参照して、前記バイト配列に関連付けられた前記トランザクション識別子を特定するステップと、
前記コンピュータが、前記トランザクション識別子をキーに前記ネットワーク上に存在する前記ブロックチェーンを検索して、前記トランザクション識別子に対応するトランザクションの有無を判定するステップと、
前記コンピュータが、前記判定の結果が有の場合に、前記トランザクション識別子に対応する前記トランザクションからバイト配列を抽出するステップと
を含み、
前記抽出されたバイト配列が前記登録の際に記憶されたバイト配列と一致することにより前記電子データの存在が証明されることを特徴とするプログラム。
A program for causing a computer to execute a presence certification method for proving that specific electronic data existed, the existence certification method comprising:
When registering electronic data to be registered for existence certification,
The computer generates a transaction having a byte array determined based on the content of the electronic data, digitally signs the transaction, and broadcasts the transaction to a network in which a block chain exists;
The computer associating and storing the byte array and a transaction identifier corresponding to the transaction in a database of the computer ;
When verifying the existence proof of the electronic data,
The computer generates a byte array determined based on the contents of the electronic data, refers to the association between the byte array stored in the database and a transaction identifier, and determines the transaction identifier associated with the byte array. Identifying steps;
The computer searches the block chain existing on the network using the transaction identifier as a key, and determines whether there is a transaction corresponding to the transaction identifier;
The computer extracting a byte array from the transaction corresponding to the transaction identifier if the result of the determination is yes,
A program characterized in that the existence of the electronic data is proved when the extracted byte array matches the byte array stored at the time of registration.
特定の電子データが存在していたことを証明するための存在証明装置であって、
存在証明の登録対象となる電子データを登録する際に、
前記電子データの内容に基づき決定されるバイト配列を有するトランザクションを生成して、当該トランザクションをデジタル署名した上でブロックチェーンが存在するネットワークにブロードキャストし、
前記バイト配列と前記トランザクションに対応するトランザクション識別子とを関連付けて前記存在証明装置のデータベースに記憶し、
前記電子データの存在証明を検証する際に、
前記電子データの内容に基づき決定されるバイト配列を生成し、前記データベースに記憶されたバイト配列とトランザクション識別子との関連付けを参照して、前記バイト配列に関連付けられた前記トランザクション識別子を特定し、
前記トランザクション識別子をキーに前記ネットワーク上に存在する前記ブロックチェーンを検索して、前記トランザクション識別子に対応するトランザクションの有無を判定し、
前記判定の結果が有の場合に、前記トランザクション識別子に対応する前記トランザクションからバイト配列の抽出を行い、
前記抽出されたバイト配列が前記登録の際に記憶されたバイト配列と一致することにより前記電子データの存在証明ることを特徴とする存在証明装置。
An existence proof device for proving that specific electronic data existed,
When registering electronic data to be registered for existence certification,
Wherein to generate a transaction having the byte sequence determined based on the content of the electronic data, after the transaction digitally signed, Broadcast networks that exist block chain,
Storing the byte array in association with a transaction identifier corresponding to the transaction in the database of the existence proving device ;
When verifying the existence proof of the electronic data,
Generating a byte array determined based on the content of the electronic data, referring to an association between a byte array stored in the database and a transaction identifier, and identifying the transaction identifier associated with the byte array;
Search the block chain existing on the network with the transaction identifier as a key, and determine whether there is a transaction corresponding to the transaction identifier,
If the determination result is yes, a byte array is extracted from the transaction corresponding to the transaction identifier,
Existence and wherein that you prove the existence of the electronic data by the extracted byte array matches the stored byte array during the registration.
JP2017055290A 2017-03-22 2017-03-22 Existence proof device, existence proof method, and program therefor Expired - Fee Related JP6275302B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017055290A JP6275302B2 (en) 2017-03-22 2017-03-22 Existence proof device, existence proof method, and program therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017055290A JP6275302B2 (en) 2017-03-22 2017-03-22 Existence proof device, existence proof method, and program therefor

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015230306A Division JP6608256B2 (en) 2015-11-26 2015-11-26 Electronic data existence certification program and existence certification server

Publications (2)

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

Family

ID=59306762

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017055290A Expired - Fee Related JP6275302B2 (en) 2017-03-22 2017-03-22 Existence proof device, existence proof method, and program therefor

Country Status (1)

Country Link
JP (1) JP6275302B2 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562775B (en) 2017-07-14 2020-04-24 创新先进技术有限公司 Data processing method and device based on block chain
JP7119346B2 (en) 2017-11-13 2022-08-17 トヨタ自動車株式会社 Environmental improvement system and server used for it
KR101878869B1 (en) * 2017-11-17 2018-08-16 주식회사 미탭스플러스 Distributed Ledger Device and Distributed Ledger Method for User Identification Management Based on Block Chain
JP2019109635A (en) * 2017-12-16 2019-07-04 株式会社bitFlyer Method for enabling past transaction to be accessed in block chain network and node to configure block chain network
JP7013921B2 (en) 2018-02-19 2022-02-01 株式会社デンソー Verification terminal
JP7031374B2 (en) 2018-03-01 2022-03-08 株式会社デンソー Verification terminal, verification system
JP6583841B1 (en) * 2018-06-26 2019-10-02 国立大学法人佐賀大学 Information communication apparatus, information communication method, and information communication program
EA202190731A1 (en) 2018-09-11 2021-08-13 Сикпа Холдинг Са IMPROVED METHODS, SYSTEMS AND DEVICES FOR REGISTRATION OF INFORMATION IN THE DATABASE
CN110472979B (en) * 2019-07-16 2023-05-26 中央财经大学 Verification method of cross host object based on blockchain

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002049590A (en) * 2000-08-04 2002-02-15 Hitachi Ltd Electronic authentication system
EP1209579A1 (en) * 2000-11-21 2002-05-29 DR. Riccardo Genghini Studio Notarile Genghini System for automatic performing transactions by active identity managment
US20140129396A1 (en) * 2012-11-06 2014-05-08 Ebay Inc. Systems and methods for reducing fraudulent activity in transaction dispute resolution
US10340038B2 (en) * 2014-05-13 2019-07-02 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain, systems and methods

Also Published As

Publication number Publication date
JP2017123692A (en) 2017-07-13

Similar Documents

Publication Publication Date Title
JP6608256B2 (en) Electronic data existence certification program and existence certification server
JP6275302B2 (en) Existence proof device, existence proof method, and program therefor
KR102051288B1 (en) Methods and systems for verifying the integrity of digital assets using distributed hash tables and peer-to-peer distributed ledgers
US20160283920A1 (en) Authentication and verification of digital data utilizing blockchain technology
US7519824B1 (en) Time stamping method employing multiple receipts linked by a nonce
US8185733B2 (en) Method and apparatus for automatically publishing content based identifiers
JP2020517200A (en) Block chain-based document management method using UTXO-based protocol and document management server using this method
US20020004800A1 (en) Electronic notary method and system
EP0940945A2 (en) A method and apparatus for certification and safe storage of electronic documents
US20110231645A1 (en) System and method to validate and authenticate digital data
CN110489946B (en) Copyright authentication method, device, equipment and storage medium based on block chain
CN1937492A (en) Information processing device and controlling method thereof
JP2003521154A (en) How to issue electronic identification information
US20080109651A1 (en) System and methods for digital file management and authentication
CN114651248A (en) Random node selection for licensed blockchains
US7660981B1 (en) Verifiable chain of transfer for digital documents
US11449285B2 (en) Document security and integrity verification based on blockchain in image forming device
CN110597836B (en) Information inquiry request response method and device based on block chain network
CN107635028B (en) Resource naming method and device, block chain cluster and electronic equipment
JP2009530906A (en) Endpoint verification using call sign
JP4608845B2 (en) How to publish signature records
US6993656B1 (en) Time stamping method using aged time stamp receipts
US7490241B1 (en) Time stamping method employing user specified time
KR100654933B1 (en) System and its method for authenticating dynamically created certificate by user's password input
US6965998B1 (en) Time stamping method using time-based signature key

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 Written amendment

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