【解決手段】本発明によるアートワークの取引方法は、コンピュータによって実行されるアートワークの取引方法であって、前記コンピュータが、出品されたアートワークの取得の要求を外部機器から受信し、前記出品されたアートワークの取得の要求の受信に応じて、ブロックチェーンネットワークのコントラクトアカウントに対し、前記出品されたアートワークの取得の要求に関する情報および前記取得を要求されたアートワークの出品に関する情報を含むトランザクションを発行する、ことを特徴とする。
前記コンピュータが、前記秘密鍵、および、前記暗号化され、かつ、前記QRコード(登録商標)が埋め込まれた前記アートワークを識別する情報を前記外部機器に送信する、
ことを特徴とする請求項4に記載のアートワークの取引方法。
前記秘密鍵、および、前記暗号化され、かつ、前記QRコード(登録商標)が埋め込まれた前記アートワークを識別する情報を前記外部機器に送信する送信部をさらに有する、
ことを特徴とする請求項10に記載のコンピュータ。
【発明を実施するための形態】
【0011】
以下、添付図面を参照しながら、本発明の実施の形態について詳細に説明する。
【0012】
図1は、本実施の形態によるアートワーク取引システム1の構成を示す図である。同図に示すように、アートワーク取引システム1は、プラットフォームポータルサーバ10と、アーティスト端末40と、購入者端末41と、ブロックチェーンネットワーク50と、分散ファイルシステム51と、カタログデータベース52とがネットワーク2を介して相互に接続された構成を有している。また、プラットフォームポータルサーバ10にはセキュアキーストア53が接続されている。
【0013】
図2は、プラットフォームポータルサーバ10、アーティスト端末40、及び購入者端末41のハードウェア構成の一例を示す図である。プラットフォームポータルサーバ10、アーティスト端末40、及び購入者端末41はそれぞれ、図示した構成を有するコンピュータ100によって構成され得る。
【0014】
図2に示すように、コンピュータ100は、CPU(Central Processing Unit)101、記憶装置102、入力装置103、出力装置104、及び通信装置105を有して構成される。
【0015】
CPU101は、コンピュータ100の各部を制御するとともに、記憶装置102に記憶される各種のプログラムを読み出して実行する装置である。後掲する
図6〜
図13を参照して説明する各処理は、プラットフォームポータルサーバ10のCPU101が記憶装置102に記憶されるプログラムを実行することによって実現される。
【0016】
記憶装置102は、DRAM(Dynamic Random Access Memory)などの主記憶装置と、ハードディスクなどの補助記憶装置とを含み、コンピュータ100のオペレーティングシステムや各種のアプリケーションを実行するための各種のプログラム、及び、これらのプログラムによって利用されるデータを記憶する役割を果たす。
【0017】
入力装置103は、ユーザの入力操作を受け付けてCPU101に供給する装置であり、例えばキーボード、マウス、タッチ検出装置を含んで構成される。このうちタッチ検出装置はタッチセンサ及びタッチコントローラを含む装置であり、ペン入力又はタッチ入力を検出するために使用される。
【0018】
出力装置104は、CPU101の処理結果をユーザに対して出力する装置であり、例えばディスプレイ、スピーカーを含んで構成される。通信装置105は、外部の装置と通信するための装置であり、CPU101の指示にしたがってデータの送受信を行う。プラットフォームポータルサーバ10、アーティスト端末40、及び購入者端末41の間でのデータの送受信は、それぞれの通信装置105が相互に通信を行うことによって実現される。
【0019】
図1に戻る。アーティスト端末40は、アーティストがアートワークの入力及び出品、並びに、後述するバイオメトリック署名データの入力を行うために使用されるコンピュータである。アートワーク及びバイオメトリック署名データはそれぞれデジタルデータであり、アーティスト端末40の入力装置103に対し、アーティストがペンPを用いてペン入力を行うことによって生成される。アートワークの出品のための具体的な処理については、後述する。
【0020】
図3は、バイオメトリック署名データの構成を示す図である。バイオメトリック署名データは、例えばWILL(Wacom Ink Layer Language)又はFSS(Forensic Signature Stream)に従って生成されるデータであり、同図に示すように、動的署名データ、署名した書類のハッシュ値、コンテキスト情報、及び追加情報と、動的署名データ、署名した書類のハッシュ値、及びコンテキスト情報のハッシュ値、このハッシュ値及び追加情報のハッシュ値、並びに、このハッシュ値の送受信の際に生じ得る誤りを検出するためのチェックサムを含んで構成される。
【0021】
動的署名データは、線画を構成する一連の座標データを含むデジタルインクデータである。各座標データは、上述したタッチ検出装置により検出されるペンPの位置を示すデータである。この検出について詳しく説明すると、タッチセンサは、それぞれY方向に延在し、X方向に等間隔で配置された複数のX電極と、それぞれX方向に延在し、Y方向に等間隔で配置された複数のY電極とを含んで構成される。ペンPが信号を送信可能に構成される場合、タッチコントローラは、これら複数のX電極及び複数のY電極のそれぞれでペンPが送信したバースト信号を受信することにより、ペンPの位置を示す座標データを取得する。一方、ペンPが信号を送信できない場合、タッチコントローラは、複数のX電極のそれぞれに順次信号を送信し、複数のY電極のそれぞれでこの信号を受信し、受信される信号の振幅変化を検出することにより、ペンPの位置を示す座標データを取得する。タッチコントローラは、例えば1秒当たり100回又は200回の頻度で、座標データを収集するように構成される。
【0022】
動的署名データには、座標データの他に、筆圧値及びペン角度データを含んでもよい。筆圧値はペンPのペン先に加えられた圧力であり、ペンPの内蔵センサによって検出され、ペンPからタッチセンサに供給される。
【0023】
図4は、ペン角度データを説明する図である。ペン角度データは、ペンPの内蔵センサ又はタッチセンサによって検出されるデータであり、同図に示す方位角θと、チルト角φと、回転角ψとを含んで構成される。
【0024】
図3に戻る。署名した書類のハッシュ値は、バイオメトリック署名データを生成するためにアーティストが署名した書類(出品申込書、契約書など)の電子データのハッシュ値である。なお、ハッシュ値は、対象の電子データを所定の一方向ハッシュ関数に入力することによって得られる値である。この点は、後述する他のハッシュ値についても同様である。
【0025】
コンテキスト情報は、署名したアーティストの氏名データ、署名日時、署名の目的、署名のために使用したタッチ検出装置の情報(メーカー名、モデル名など)、署名のために使用したアプリケーションの情報(アプリケーション名、バージョン情報など)、アーティスト端末40のオペレーティングシステムの情報(オペレーティングシステム名、バージョン情報など)、アーティスト端末40のアドレス情報(IPアドレス、MACアドレスなど)などを含む情報である。追加情報は、動的署名データ、署名した書類のハッシュ値、コンテキスト情報の他に、アートワーク取引システム1の管理者が任意で指定できる情報である。
【0026】
図1に戻る。購入者端末41は、購入者がアートワーク(アーティストによって出品されたアートワーク)を購入するために使用されるコンピュータである。この購入のための具体的な処理については、後述する。
【0027】
ブロックチェーンネットワーク50は、ピアツーピアによって接続された複数のコンピュータのネットワークであり、スマート・コントラクトのトランザクションをブロックチェーンに記録するように構成される。具体的な例を挙げると、ブロックチェーンネットワーク50はイーサリアムネットワークである。トランザクションのブロックチェーンへの記録は、ブロックチェーンネットワーク50に接続されたいくつかのコンピュータ(以下、「マイナー」と称する)によって実行される。
【0028】
具体的に説明すると、ブロックチェーンを構成する各ブロックは、ブロックヘッダと、トランザクションの具体的な内容を示すデータ(取引データ)とを含んで構成される。このうちブロックヘッダには、取引データのサイズを圧縮してなるデータであるマークルルートと、1つ前のブロックのハッシュ値と、任意の文字列であるナンス値とが含まれる。ブロックチェーンネットワーク50においては、新たなブロックをブロックチェーンに接続するには、そのブロックのハッシュ値が所定の条件(例えば、「000」で始まる値である、という条件)を満たしていなければならないというルールが定められている。そこで、ブロックチェーンにあるブロックを記録しようとするマイナーは、そのブロックのブロックヘッダのハッシュ値が上記所定の条件を満たすこととなるよう、総当たり的にナンス値を見つける作業(マイニング)を行う。この作業の結果として、最も早くナンス値の発見に成功したマイナーがそのブロックをブロックチェーンに連結することによって、トランザクションのブロックチェーンへの記録が完了する。
【0029】
分散ファイルシステム51は、ピアツーピアによって接続された複数のコンピュータのネットワークであり、任意の電子データを格納するように構成される。具体的な例を挙げると、分散ファイルシステム51はIPFS(InterPlanetary File System)である。分散ファイルシステム51内に格納された電子データは、そのハッシュ値によって識別される。すなわち、分散ファイルシステム51においては、格納された電子データのハッシュ値がその電子データのアドレス情報として機能する。本実施の形態では、暗号化されたアートワークを格納するために分散ファイルシステム51が使用される。
【0030】
カタログデータベース52は、1つ又は複数のコンピュータ上に実装されたデータベースである。本実施の形態では、アートワークのカタログ(販売のために必要となる情報)を格納するために使用される。カタログデータベース52は、プラットフォームポータルサーバ10内に実装されることとしてもよい。
【0031】
セキュアキーストア53は、データの暗号化のために用いる暗号化鍵を格納するためのデータベースであり、プラットフォームポータルサーバ10からのアクセスしか受け付けないように予め設定される。本実施の形態においては、後述する公開鍵1,2、秘密鍵1,2、及びデータ暗号化鍵1,2を格納するためにセキュアキーストア53が使用される。
【0032】
プラットフォームポータルサーバ10は、アートワークの取引装置として機能するコンピュータであり、アーティストによるアートワークの出品を受け付けるとともに、出品されたアートワークの購入を実現する役割を果たす。
【0033】
図5は、プラットフォームポータルサーバ10に対するデータの入出力を示す図である。まずアートワークの出品を受け付ける段階では、プラットフォームポータルサーバ10は、アーティスト端末40からアートワークの出品を受け付ける。この出品には、アートワークの本体(例えば、JPEGファイルなどのラスター形式のデジタル画像データ、又は、デジタルインクファイルなどのベクトル形式のデジタル画像データ)と、販売条件(有料/無料の別、有料の場合の価格等)とが含まれる。なお、価格は、ブロックチェーンネットワーク50により実現される仮想通貨(イーサなど)によって示されることが好ましい。プラットフォームポータルサーバ10はまた、アーティスト端末40から、上述したバイオメトリック署名データの入力も受け付ける。出品及びバイオメトリック署名データを受信したプラットフォームポータルサーバ10は、出品を示すトランザクション(出品トランザクション)をブロックチェーンネットワーク50に記録する。出品トランザクションの具体的な内容については、後述する。
【0034】
アートワークの出品を受け付けたプラットフォームポータルサーバ10は、アートワーク本体を共通鍵暗号方式の共通鍵に相当するデータ暗号化鍵1により暗号化し、分散ファイルシステム51に格納する。また、プラットフォームポータルサーバ10は、公開鍵暗号方式における公開鍵及び秘密鍵に相当する公開鍵1及び秘密鍵1のペアを生成し、公開鍵1によってデータ暗号化鍵1を暗号化する。そして、公開鍵1及び秘密鍵1のペアと、暗号化したデータ暗号化鍵1とをセキュアキーストア53に格納する。なお、アートワーク本体の暗号化を公開鍵1でなくデータ暗号化鍵1によって行うのは、公開鍵暗号方式における公開鍵では、アートワークのようなサイズの大きいデータを暗号化できないためである。
【0035】
プラットフォームポータルサーバ10はさらに、出品されたアートワークのサムネイル、販売条件、及び、ブロックチェーンネットワーク50に記録した出品トランザクションのID(識別情報)をカタログデータベース52に登録するとともに、アーティスト端末40に対し、出品トランザクションのID、及び秘密鍵1を返送する。返送された出品トランザクションのIDは、アーティストがブロックチェーンネットワーク50を参照し、自身の出品内容を確認するために使用される。また、秘密鍵1は、アーティストが自身のアートワークを分散ファイルシステム51から取り出すために使用される。
【0036】
次に、出品されたアートワークの購入を実現する段階では、プラットフォームポータルサーバ10は、購入者端末41から購入申し込みを受け付ける。この購入申し込みには、購入者を示す購入者情報(ブロックチェーンネットワーク50のアカウント、氏名など)と、購入者が選択したアートワークを示す情報と、代金(例えば、任意の量の仮想通貨を示す情報)とが含まれる。購入申し込みを受け付けたプラットフォームポータルサーバ10は、購入を示すトランザクション(購入トランザクション)をブロックチェーンネットワーク50に記録する。購入トランザクションの具体的な内容については、後述する。
【0037】
購入申し込みを受け付けたプラットフォームポータルサーバ10は、セキュアキーストア53から秘密鍵1及びデータ暗号化鍵1を取り出すとともに、分散ファイルシステム51からアートワークを取り出す。そして、データ暗号化鍵1を秘密鍵1で復号し、復号したデータ暗号化鍵1によりアートワークを復号する。
【0038】
プラットフォームポータルサーバ10はさらに、復号したアートワークにウォーターマークを埋め込むことによって透かし入りアートワークを生成し、データ暗号化鍵2により暗号化したうえで、分散ファイルシステム51に格納する。詳しくは後述するが、このウォーターマークは、購入トランザクションのID(識別情報)に基づいて生成される。
【0039】
プラットフォームポータルサーバ10はまた、公開鍵暗号方式における公開鍵及び秘密鍵に相当する公開鍵2及び秘密鍵2のペアを生成し、公開鍵2によってデータ暗号化鍵2を暗号化する。そして、公開鍵2及び秘密鍵2のペアと、暗号化したデータ暗号化鍵2とをセキュアキーストア53に格納する。なお、透かし入りアートワークの暗号化を公開鍵2でなくデータ暗号化鍵2によって行うのは、出品時と同様、透かし入りアートワークのサイズが大きいことによる。
【0040】
その後、プラットフォームポータルサーバ10は、購入者端末41に対し、購入トランザクションのID、秘密鍵2、及び、暗号化透かし入りアートワークのハッシュ値を返送する処理を行うとともに、アーティスト端末40に対し、購入トランザクションのID及び売上金を送信する処理を行う。各端末に返送された購入トランザクションのIDは、購入者及びアーティストがブロックチェーンネットワーク50を参照し、購入内容を確認するために使用される。また、秘密鍵2、及び、暗号化透かし入りアートワークのハッシュ値は、購入者が購入したアートワークを分散ファイルシステム51から取り出して復号するために使用される。
【0041】
図6及び
図7は、プラットフォームポータルサーバ10の機能ブロック図である。
図6は、アートワークの出品にかかるプラットフォームポータルサーバ10の機能ブロックを示し、
図7は、アートワークの販売にかかるプラットフォームポータルサーバ10の機能ブロックを示している。以下、これらの図を参照しながら、プラットフォームポータルサーバ10の機能ブロックについて詳しく説明する。
【0042】
初めに
図6を参照すると、プラットフォームポータルサーバ10は、アートワークの出品にかかる機能ブロックとして、受信部11と、重複判定部12と、アートワーク暗号化処理部13と、アートワーク格納処理部14と、鍵ペア生成部15と、トランザクション発行部16と、鍵暗号化処理部17と、カタログ生成部18と、送信部19とを有して構成される。
【0043】
受信部11は、アーティスト端末40からアートワークの出品を受信する。この出品には、上述したように、アートワークの本体と、販売条件を示す情報とが含まれる。
【0044】
重複判定部12は、出品されたアートワークが他のアートワークと重複しているか否か(すなわち、出品されたアートワークがユニークでないか否か)を判定する。この判定は、例えば、プラットフォームポータルサーバ10が過去に分散ファイルシステム51内に格納したアートワークとの比較によって実施してもよいし、インターネット上での検索によって得られる画像との比較によって実施してもよいし、その両方によって実施してもよい。比較の結果、出品されたアートワークと重複する他のアートワークが発見されなかった場合、重複判定部12は重複していないと判定し、受信部11に、上述したバイオメトリック署名データをアーティスト端末40からさらに受信させる。一方、出品されたアートワークと重複する他のアートワークが発見された場合、重複判定部12は重複していると判定し、アーティスト端末40に出品不可を返信する。
【0045】
アートワーク暗号化処理部13は、重複判定部12が重複していないと判定した場合に、アートワークの暗号化を行う。具体的に説明すると、アートワーク暗号化処理部13はまず、共通鍵暗号方式における共通鍵に相当するデータ暗号化鍵1を生成する。そして、生成したデータ暗号化鍵1を用いて、アートワークの暗号化を実行する。
【0046】
アートワーク格納処理部14は、アートワーク暗号化処理部13によって暗号化されたアートワークを分散ファイルシステム51に格納する処理を行うとともに、そのハッシュ値を取得する。
【0047】
鍵ペア生成部15は、公開鍵暗号方式における公開鍵及び秘密鍵に相当する公開鍵1及び秘密鍵1のペアを生成する。
【0048】
トランザクション発行部16は、アートワーク格納処理部14によって取得された暗号化アートワークのハッシュ値と、受信部11によって受信されたバイオメトリック署名データと、鍵ペア生成部15によって生成された公開鍵1とを含む出品トランザクションを生成し、ブロックチェーンネットワーク50のコントラクトアカウント(後述)に対して発行する。この後、ブロックチェーンネットワーク50に接続されたいずれかのマイナーにより、出品トランザクションのブロックチェーンへの記録が完了する。
【0049】
鍵暗号化処理部17は、鍵ペア生成部15によって生成された公開鍵1を用いてデータ暗号化鍵1を暗号化し、公開鍵1及び秘密鍵1のペアとともに、トランザクション発行部16によって発行された出品トランザクションのIDに対応付けて、セキュアキーストア53に格納する。
【0050】
カタログ生成部18は、出品されたアートワークのサムネイルを生成し、販売条件及び出品トランザクションのIDとともに、カタログデータベース52に登録する。このようにして出品されたアートワークがカタログデータベース52に登録されることにより、購入者は、カタログデータベース52を参照し、購入したいアートワークを選択することが可能になる。
【0051】
送信部19は、トランザクション発行部16によって発行された出品トランザクションのIDと、鍵ペア生成部15によって生成された秘密鍵1とをアーティスト端末40に返送する。これによりアーティストは、ブロックチェーンネットワーク50上で出品トランザクションを確認することが可能になるとともに、分散ファイルシステム51に格納された暗号化アートワークを取得して復号することにより、元のアートワークを確認することが可能になる。
【0052】
アーティストによる元のアートワークの確認について、より詳しく説明する。アーティストは、アーティスト端末40を用いて、出品トランザクションのIDと、秘密鍵1とをプラットフォームポータルサーバ10に送信する。プラットフォームポータルサーバ10は、アーティスト端末40から受信した出品トランザクションのIDに基づいてブロックチェーンネットワーク33を参照することにより、暗号化アートワークのハッシュ値を取得する。そして、取得したハッシュ値を用いて分散ファイルシステム51にアクセスし、暗号化アートワークを読み出す。プラットフォームポータルサーバ10はまた、アーティスト端末40から受信した出品トランザクションのIDに基づいてセキュアキーストア53から暗号化データ暗号化鍵1を読み出し、アーティスト端末40から受信した秘密鍵1により復号する。最後にプラットフォームポータルサーバ10は、復号したデータ暗号化鍵1を用いて暗号化アートワークを復号することによってアートワークを取得し、アーティスト端末40に返信する。こうしてアーティストは、アートワークを確認することができる。
【0053】
次に
図7を参照すると、プラットフォームポータルサーバ10は、アートワークの販売にかかる機能ブロックとして、受信部20と、購入可否判定部21と、鍵復号処理部22と、アートワーク復号処理部23と、鍵ペア生成部24と、トランザクション発行部25と、ウォーターマーク生成部26と、ウォーターマーク埋め込み処理部27と、アートワーク暗号化処理部28と、アートワーク格納処理部29と、鍵暗号化処理部30と、送信部31とを有して構成される。
【0054】
受信部11は、購入者端末41からアートワークの購入意思を示す購入申し込みを受信する。この購入申し込みには、上述したように、購入者情報と、購入者が選択したアートワークを示す情報と、代金とが含まれる。
【0055】
購入可否判定部21は、購入申し込みの成立可否を判定する。具体的に説明すると、購入可否判定部21はまず、対応するアートワークの販売条件及び出品トランザクションのIDをカタログデータベース52から読み出す。そして、読み出した販売条件を購入申し込みの内容と比較し、その結果に基づいて購入申し込みの成立可否を判定する。一例を挙げると、販売条件としてアートワークの価格が1イーサであることが規定されていた場合、購入申し込みに1イーサが含まれていれば、購入可否判定部21は、購入申し込みが成立したと判定する。一方、購入申し込みに1イーサが含まれていなければ、購入可否判定部21は、購入申し込みが成立しないと判定する。後者の場合、購入可否判定部21は、購入者端末41に購入不可を返信する。
【0056】
鍵復号処理部22は、出品トランザクションのIDに基づいて、秘密鍵1及び暗号化データ暗号化鍵1をセキュアキーストア53から読み出す。そして、読み出した秘密鍵1を用いて、読み出した暗号化データ暗号化鍵1を復号する。
【0057】
アートワーク復号処理部23は、出品トランザクションのIDに基づいてブロックチェーンネットワーク50を参照することにより、暗号化されたアートワークのハッシュ値を取得する。そして、取得したハッシュ値に基づいて、分散ファイルシステム51から暗号化アートワークを読み出し、鍵復号処理部22により復号されたデータ暗号化鍵1を用いて復号する。
【0058】
鍵ペア生成部24は、公開鍵暗号方式における公開鍵及び秘密鍵に相当する公開鍵2及び秘密鍵2のペアを生成する。
【0059】
トランザクション発行部25は、購入申し込みに含まれていた購入者情報と、購入可否判定部21がカタログデータベース52から読み出した出品トランザクションのIDと、アートワークの購入額を示す金額と、鍵ペア生成部24によって生成された公開鍵2とを含む購入トランザクションを生成し、ブロックチェーンネットワーク50のコントラクトアカウント(後述)に対して発行する。この後、ブロックチェーンネットワーク50に接続されたいずれかのマイナーにより、購入トランザクションのブロックチェーンへの記録が完了する。
【0060】
ウォーターマーク生成部26は、トランザクション発行部25によって発行された購入トランザクションのIDに基づいて、ウォーターマークを生成する。こうして生成されるウォーターマークは、例えば、購入トランザクションのIDを示すQRコード(登録商標)である。ウォーターマーク埋め込み処理部27は、アートワーク復号処理部23により復号されたアートワークにウォーターマークを埋め込むことにより、透かし入りアートワークを生成する処理を行う。この処理の詳細については、後ほど
図12を参照して詳しく説明する。
【0061】
アートワーク暗号化処理部28は、共通鍵暗号方式における共通鍵に相当するデータ暗号化鍵2を生成し、生成したデータ暗号化鍵2を用いて透かし入りアートワークを暗号化する。アートワーク格納処理部29は、アートワーク暗号化処理部28によって暗号化された透かし入りアートワークを分散ファイルシステム51に格納する処理を行うとともに、そのハッシュ値を取得する。
【0062】
鍵暗号化処理部30は、鍵ペア生成部24によって生成された公開鍵2を用いてデータ暗号化鍵2を暗号化し、トランザクション発行部25によって発行された購入トランザクションのIDに対応付けて、セキュアキーストア53に格納する。
【0063】
送信部31は、購入トランザクションのIDと、アートワーク格納処理部29により取得されたハッシュ値と、鍵ペア生成部24によって生成された秘密鍵2とを購入者端末41に返送するとともに、購入トランザクションのIDと、売上金とをアーティスト端末40に送信する。これにより購入者及びアーティストは、ブロックチェーンネットワーク50上で購入トランザクションを確認することが可能になる。また、購入者は、分散ファイルシステム51に格納された暗号化透かし入りアートワークを取得して復号することにより、購入したアートワークを透かし入りの状態で入手することが可能になる。
【0064】
購入者によるアートワークの入手について、より詳しく説明する。購入者は、購入者端末41を用いて、暗号化透かし入りアートワークのハッシュ値と、購入トランザクションのIDと、秘密鍵2とをプラットフォームポータルサーバ10に送信する。プラットフォームポータルサーバ10は、購入者端末41から受信したハッシュ値を用いて分散ファイルシステム51にアクセスし、暗号化透かし入りアートワークを読み出す。プラットフォームポータルサーバ10はまた、購入者端末41から受信した購入トランザクションのIDに基づいてセキュアキーストア53から暗号化データ暗号化鍵2を読み出し、購入者端末41から受信した秘密鍵2により復号する。最後にプラットフォームポータルサーバ10は、復号したデータ暗号化鍵2を用いて暗号化透かし入りアートワークを復号することによって透かし入りアートワークを取得し、購入者端末41に返信する。こうして購入者は、透かし入りアートワークを入手することができる。
【0065】
図8〜
図12は、プラットフォームポータルサーバ10が実行する処理を示す処理フロー図である。以下、これらの図を参照しながら、プラットフォームポータルサーバ10が実行する処理について、さらに詳しく説明する。
【0066】
初めに
図8を参照すると、プラットフォームポータルサーバ10はまず、ブロックチェーンネットワーク50にアートワークの出品や購入を記録できるようにするため、ブロックチェーンネットワーク50のアカウント(コントラクトアカウント)を生成する処理を行う。具体的には、コントラクトのコードを含むトランザクションをブロックチェーンネットワーク50に送信し(ステップS1)、その結果として生成されたコントラクトアカウントのアドレスを取得する(ステップS2)。
【0067】
その後、プラットフォームポータルサーバ10は、アーティスト端末40からアートワークの出品を受信したか否かを判定する処理(ステップS3)と、購入者端末41からアートワークの購入申し込みを受信したか否かを判定する処理(ステップS4)とを繰り返し実行する。
【0068】
ステップS3においてアートワークの出品を受信したと判定した場合、プラットフォームポータルサーバ10は、アートワーク出品処理を実行する(ステップS5)。また、ステップS4においてアートワークの購入申し込みを受信したと判定した場合、プラットフォームポータルサーバ10は、アートワーク販売処理を実行する(ステップS6)。
【0069】
図9は、
図8のステップS5で実行されるアートワーク出品処理の詳細を示す図である。同図に示すように、アートワーク出品処理を開始したプラットフォームポータルサーバ10は、アートワーク本体及び販売条件を含むアートワークの出品を取得する(ステップS11)。そして、アップロードされたアートワークを、既知のワークと比較する(ステップS12)。この比較の詳細については、上述したとおりである。
【0070】
プラットフォームポータルサーバ10は、ステップS12で実行した比較の結果に基づき、アートワークがユニークであるか否かを判定する(ステップS13)。その結果、ユニークでないと判定した場合、プラットフォームポータルサーバ10は、アーティスト端末40に出品不可を返し、アートワーク出品処理を終了する(ステップS14)。一方、ユニークであると判定した場合、プラットフォームポータルサーバ10は、アーティスト端末40からバイオメトリック署名データを受信する(ステップS15)。具体的な例では、アーティスト端末40のディスプレイ上に署名を促す画面を表示し、アーティストに上述した動的署名データを入力させる。アーティスト端末40は、こうして入力された動的署名データに
図3を参照して説明した各情報を追加することによってバイオメトリック署名データを生成し、プラットフォームポータルサーバ10に対して送信する。
【0071】
次にプラットフォームポータルサーバ10は、公開鍵1及び秘密鍵1のペアを生成する(ステップS16)。また、データ暗号化鍵1を生成し、公開鍵1を用いて暗号化する(ステップS17)。
【0072】
続いてプラットフォームポータルサーバ10は、データ暗号化鍵1を用いてアートワークを暗号化し(ステップS18)、暗号化されたアートワークを分散ファイルシステム51に格納する(ステップS19)。その後、プラットフォームポータルサーバ10は、
図8のステップS1,S2で生成したコントラクトアカウントに対して、暗号化アートワークのハッシュ値、バイオメトリック署名データ、及び公開鍵1を含む出品トランザクションを発行する(ステップS20)。
【0073】
ステップS20を実行したプラットフォームポータルサーバ10は、発行した出品トランザクションのIDに対応付けて、公開鍵1及び秘密鍵1のペアと、ステップS17で暗号化したデータ暗号化鍵1とをセキュアキーストア53に格納する(ステップS21)。そして、出品トランザクションのID、及び秘密鍵1をアーティスト端末40に返送する(ステップS22)とともに、アートワークのサムネイル、販売条件、出品トランザクションのIDを対応付けてカタログデータベース52に登録し(ステップS23)、アートワーク出品処理を終了する。
【0074】
図10及び
図11は、
図8のステップS6で実行されるアートワーク販売処理の詳細を示す図である。同図に示すように、アートワーク販売処理を開始したプラットフォームポータルサーバ10は、カタログデータベース52におけるアートワークの選択結果と、購入者情報及び代金とを含む購入申し込みを取得する(ステップS30)。そして、販売条件及び出品トランザクションのIDをカタログデータベース52から読み出し(ステップS31)、購入申し込みが成立するか否かを判定する(ステップS32)。この判定の詳細については、上述したとおりである。
【0075】
ステップS32において購入不成立と判定した場合、プラットフォームポータルサーバ10は、購入者端末41に購入不可を返し、アートワーク販売処理を終了する(ステップS33)。一方、購入成立と判定した場合、プラットフォームポータルサーバ10はまず、出品トランザクションのIDに基づいてセキュアキーストア53から秘密鍵1及び暗号化データ暗号化鍵1を読み出し(ステップS34)、読み出した秘密鍵1を用いて、読み出した暗号化データ暗号化鍵1を復号する(ステップS35)。
【0076】
次にプラットフォームポータルサーバ10は、ブロックチェーンネットワーク50において出品トランザクションを参照することにより、暗号化アートワークのハッシュ値を取得する(ステップS34)。そして、取得したハッシュ値に基づいて分散ファイルシステム51から暗号化アートワークを読み出し、ステップS35で取得したデータ暗号化1により復号する(ステップS37)。
【0077】
続いてプラットフォームポータルサーバ10は、ステップS34で取得した格納場所に基づいてセキュアキーストア53から暗号化データ暗号化鍵1を読み出し、ステップS5で取得した秘密鍵1により復号する(ステップS36)。また、ステップS34で取得したハッシュ値に基づいて分散ファイルシステム51から暗号化アートワークを読み出し、ステップS36で取得したデータ暗号化鍵1により復号する(ステップS37)。
【0078】
次にプラットフォームポータルサーバ10は、公開鍵2及び秘密鍵2のペアを生成する(ステップS38)。そして、
図8のステップS1,S2で生成したコントラクトアカウントに対して、購入者情報、出品トランザクションのID、金額、及び公開鍵2を含む購入トランザクションを発行する(ステップS39)。
【0079】
次いでプラットフォームポータルサーバ10は、購入トランザクションのIDからQRコード(登録商標)を生成し(ステップS40)、生成したQRコード(登録商標)をアートワークに埋め込むためのQRコード(登録商標)埋め込み処理を実行する(ステップS41)。
【0080】
図12は、
図10のステップS41で実行されるQRコード(登録商標)埋め込み処理の詳細を示す図である。なお、同図には、一例として特異値分解(SVD:Singular Value Decomposition)を利用するアプローチ(SVD Based Approach)による場合を示しているが、他のアプローチによってQRコード(登録商標)埋め込み処理を行ってもよい。そのようなアプローチの例としては、離散的コサイン変換(DCT:Discrete Cosine Transform)を利用するアプローチ(Optimal DCT-Psychovisual Threshold)、YCbCr色空間での符号化を用いるアプローチ(YCbCr Colour Space Encoding Approach)、多重解像度解析を用いるアプローチ(Multi-resolution Wavelet Decomposition)などが挙げられる。
【0081】
図12に示すように、プラットフォームポータルサーバ10はまず、n×nビットのQRコード(登録商標)W=(w
1,w
2,・・・,w
n×n)を取得する(ステップS50)。w
1,w
2,・・・,w
n×nはそれぞれ、0又は1のいずれかの値である。
【0082】
次にプラットフォームポータルサーバ10は、所定のロバストネスファクターσを取得する(ステップS51)。ロバストネスファクターσは、大きいほど埋め込まれたQRコード(登録商標)の復元可能性を上昇させる一方で、大きいほど透かし入りアートワークの画質を低下させる値である。したがって、QRコード(登録商標)の復元可能性と透かし入りアートワークの画質を考慮して、予め最適なσの値を決めておくことが好ましい。
【0083】
続いてプラットフォームポータルサーバ10は、m×mビットのアートワークを、色チャネル別(例えば、RGBカラーモデルの赤(Red)、緑(GReen)、青(Blue))の3つの画像I1,I2,I3に分離する(ステップS52)。そして、画像I1,I2,I3のうち最もエントロピーの高い画像(すなわち、最も均質で変化の少ない画像)を選択する(ステップS53)。ここでは、画像I1のエントロピーが最も高く、ステップS53で画像I1が選択されたとして説明を続ける。
【0084】
画像I1を選択したプラットフォームポータルサーバ10は、画像I1を、オーバーラップしない各4×4ビットのブロックB(j)に分割する(ステップS54)。ただし、1≦j≦(m/4)×(m/4)である。
【0085】
次にプラットフォームポータルサーバ10は、所定の種(シード)を用いて、重複しないn×n個の擬似乱数の列P=(p
1,p
2,・・・,p
n×n)を発生する(ステップS55)。ただし、1≦p
k≦(m/4)×(m/4)である。そしてプラットフォームポータルサーバ10は、1以上n×n以下である整数kのそれぞれについて、ステップS57〜S60の処理を実行する(ステップS56)。
【0086】
ステップS57〜S60の処理について具体的に説明すると、プラットフォームポータルサーバ10はまず、p
k番目のブロックB(p
k)を選択する(ステップS57)。次にプラットフォームポータルサーバ10は、選択したブロックB(p
k)を特異値分解することによって得られる4×4の対角行列S(p
k)=diag(s
1,s
2,s
3,s
4)を取得する(ステップS58)。なお、この特異値分解は、B(p
k)=U(p
k)S(p
k)V(p
k)
Tにより表される。ただし、U(p
k)及びV(p
k)はそれぞれ、4×4のユニタリ行列である。
【0087】
そして、ロバストネスファクターσ及びビットw
kを用いてこの対角行列S(p
k)を操作することにより、4×4の対角行列S'(p
k)=diag(s
1,s
2+σ×w
k,s
2,s
3×0.1)を導出する(ステップS59)。そして、導出したS'(p
k)を用いて特異値分解の逆処理を行うことにより、WB(p
k)を生成する(ステップS60)。具体的には、WB(p
k)=U(p
k)S'(p
k)V(p
k)
Tの計算を行うことににより、WB(p
k)を生成する。
【0088】
ステップS57〜S60の処理がすべて完了したら、プラットフォームポータルサーバ10は、生成されたn×n個のWB(j)と、ステップS57で選択されなかった(m/4)×(m/4)−n×n個のブロックB(j)とを用いて、画像I1'を生成する(ステップS61)。具体的には、画像I1を構成する(m/4)×(m/4)個のブロックB(j)のうち、n×n個のブロックB(p
1)〜B(p
n×n)をそれぞれWB(p
1)〜WB(p
n×n)で置き換えることにより、画像I1'を生成する。
【0089】
最後に、プラットフォームポータルサーバ10は、画像I1'と、画像I2,I3とを用いて透かし入りアートワークを生成する(ステップS62)。具体的には、画像I1',I2,I3を合成することにより、透かし入りアートワークを生成する。
【0090】
図10に戻る。QRコード(登録商標)埋め込み処理を終えたプラットフォームポータルサーバ10は、データ暗号化鍵2を生成し、公開鍵2を用いて暗号化する(ステップS42)。そして、
図11に示すように、購入トランザクションのIDに対応付けて、公開鍵2及び秘密鍵2のペアと、暗号化されたデータ暗号化鍵2とをセキュアキーストア53に格納する(ステップS43)。
【0091】
次にプラットフォームポータルサーバ10は、データ暗号化鍵2を用いて透かし入りアートワークを暗号化し(ステップS44)、暗号化された透かし入りアートワークを分散ファイルシステム51に格納する(ステップS45)。その後、プラットフォームポータルサーバ10は、暗号化透かし入りアートワークのハッシュ値、購入トランザクションのID、及び秘密鍵2を購入者端末41に返送する(ステップS46)とともに、購入トランザクションのID、及び売上金をアーティスト端末40に返送し(ステップS47)、アートワーク販売処理を終了する。
【0092】
ここで、透かし入りアートワークからQRコード(登録商標)を読み出すためのQRコード(登録商標)読み出し処理について、
図13を参照しながら説明する。
図13には
図12に示したQRコード(登録商標)埋め込み処理により生成した透かし入りアートワークからQRコード(登録商標)を読み出すための処理を示しているが、他の種類のQRコード(登録商標)読み出し処理により透かし入りアートワークを生成した場合には、その処理に応じた読み出し処理が必要となることは言うまでもない。また、以下ではプラットフォームポータルサーバ10がQRコード(登録商標)読み出し処理を行うこととして説明するが、他のコンピュータでQRコード(登録商標)読み出し処理を行ってもよい。
【0093】
プラットフォームポータルサーバ10はまず、所定のロバストネスファクターσを取得する(ステップS71)。このロバストネスファクターσは、
図12のステップS51で取得したロバストネスファクターσと同じ値であることが好ましい。
【0094】
続いてプラットフォームポータルサーバ10は、m×mビットの透かし入りアートワークを、色チャネル別の3つの画像I1,I2,I3に分離する(ステップS71)。そして、画像I1,I2,I3のうち最もエントロピーの高い画像を選択する(ステップS72)。ステップS71,S72の処理は、
図12のステップS52,S53と同じ処理である。ここでも、画像I1のエントロピーが最も高く、ステップS72で画像I1が選択されたとして説明を続ける。
【0095】
画像I1を選択したプラットフォームポータルサーバ10は、画像I1を、オーバーラップしない各4×4ビットのブロックB(j)に分割する(ステップS73)。ただし、1≦j≦(m/4)×(m/4)である。この処理も、
図12のステップS54と同じ処理である。
【0096】
次にプラットフォームポータルサーバ10は、所定の種(シード)を用いて、重複しないn×n個の擬似乱数の列P=(p
1,p
2,・・・,p
n×n)を発生する(ステップS74)。ただし、1≦p
k≦(m/4)×(m/4)である。ステップS74で用いる所定の種は、
図12のステップS55で用いた種と同じである必要がある。種が分からなければQRコード(登録商標)を読み出すことはできないので、種は一種の共通鍵としても機能する。
【0097】
続いてプラットフォームポータルサーバ10は、1以上n×n以下である整数kのそれぞれについて、ステップS76〜S79の処理を実行する(ステップS75)。
【0098】
ステップS76〜S79の処理について具体的に説明すると、プラットフォームポータルサーバ10はまず、p
k番目のブロックB(p
k)を選択する(ステップS76)。次にプラットフォームポータルサーバ10は、選択したブロックB(p
k)を特異値分解することによって得られる4×4の対角行列S'(p
k)=diag(s
1,s
2',s
3',s
4')を取得する(ステップS77)。この特異値分解は、
図12のステップS58と同様、B(p
k)=U(p
k)S'(p
k)V(p
k)
Tにより表される。
【0099】
次にプラットフォームポータルサーバ10は、s2'−s3'を導出する(ステップS78)。こうして導出される値は、
図12のステップS59で説明した対角行列S'(p
k)の導出方法から明らかなように、σ×w
kに等しい。そこでプラットフォームポータルサーバ10は、導出した値がσ/2以上である(σ×w
k≧σ/2)ならばw
kに1を代入し、さもなければw
kに0を代入する(ステップS79)。これにより、k番目のw
kが読み出されたことになる。
【0100】
ステップS76〜S79の処理がすべて完了したら、プラットフォームポータルサーバ10は、読み出したn×n個のw
kに基づき、n×nビットのQRコード(登録商標)W=(w
1,w
2,・・・,w
n×n)を取得する(ステップS80)。これにより、QRコード(登録商標)Wの読み出しが完了する。
【0101】
以上説明したように、本実施の形態によるアートワーク取引システム1によれば、アーティストによる署名を含むバイオメトリック署名データが出品トランザクションの一部としてブロックチェーンネットワーク50に記録されるので、後日、アートワークの出品者がアーティスト本人であることを確認することが可能になる。また、アートワークが暗号化された状態で分散ファイルシステム51に格納されるので、出品後にアートワークが何者かによって改ざんされていないことを保証することが可能になる。さらに、販売されたアートワークに購入トランザクションのIDを示すQRコード(登録商標)が埋め込まれるので、販売後のアートワークが不正に流出した場合に、流出したアートワークからQRコード(登録商標)を読み出すことによって、流出元の購入者を特定することが可能になる。したがって、本実施の形態によるアートワーク取引システム1によれば、スマートコントラクトを用いて、アートワークをセキュアに取引することが可能になると言える。
【0102】
以上、本発明の好ましい実施の形態について説明したが、本発明はこうした実施の形態に何等限定されるものではなく、本発明が、その要旨を逸脱しない範囲において、種々なる態様で実施され得ることは勿論である。
【0103】
例えば、上記実施の形態では、販売対象のアートワークに埋め込むウォーターマークを購入トランザクションのIDに基づいて生成する例を説明したが、他の情報に基づいてウォーターマークを生成することとしてもよい。具体的な例を挙げると、アーティストがアートワークとしてのデジタル画像を描く際にアーティスト端末40が取得したデータに基づいて、ウォーターマーク生成部26がQRコード(登録商標)その他のビットマップ表現であるウォーターマークを生成することとしてもよい。ここで、上記「デジタル画像を描く際にアーティスト端末40が取得したデータ」とは、例えば、上述したWILLに従って生成されるデジタルインクファイルの中に含まれるデータである。そのようなデータの具体的な例としては、例えば、デジタル画像又はその一部分を構成する1以上のストロークデータや、アートワークの生成に用いられたアーティスト端末40の識別情報などが挙げられる。ウォーターマーク生成部26は、「デジタル画像を描く際にアーティスト端末40が取得したデータ」を所定のハッシュ関数に代入することによってハッシュ値(「デジタル画像を描く際にアーティスト端末40が取得したデータ」のフィンガープリント)を導出し、導出したハッシュ値に基づいてウォーターマークを生成すればよい。