(57)【要約】【課題】ユーザ同士の柔軟な個人間取引を促進させること。【解決手段】本願に係る生成プログラムは、受付手順と、第１生成手順とをコンピュータに実行させる。受付手順は、生成を所望するスマートコントラクトに関する情報をユーザから受け付ける。第１生成手順は、受付手順によって受け付けられたスマートコントラクトに関する情報に基づいて、ブロックチェーンを利用する所定のネットワーク上で執行可能なプログラムであるスマートコントラクトを生成する。【選択図】図１
2018036893.tif 000002
【特許請求の範囲】
【請求項１】
生成を所望するスマートコントラクトに関する情報をユーザから受け付ける受付手順と、
前記受付手順によって受け付けられた前記スマートコントラクトに関する情報に基づいて、ブロックチェーンを利用する所定のネットワーク上で執行可能なプログラムであるスマートコントラクトを生成する第１生成手順と、
をコンピュータに実行させることを特徴とする生成プログラム。
【請求項２】
前記第１生成手順によって生成されたスマートコントラクトを前記所定のネットワーク上に送信する送信手順と、
前記送信手順によって送信されたスマートコントラクトに対して前記所定のネットワークから発行されるアドレスと、前記所定のネットワーク上で承認された前記スマートコントラクトに関する情報とを含むコード（code）を生成する第２生成手順と、
をさらにコンピュータに実行させることを特徴とする請求項１に記載の生成プログラム。
【請求項３】
前記第２生成手順は、
所定のネットワークサービスにおいて掲出可能な態様で前記コードを生成する、
ことを特徴とする請求項２に記載の生成プログラム。
【請求項４】
前記第２生成手順は、
前記ユーザが利用するウェブログサービス、ＳＮＳ（Social  Networking  Service）、又は、オークションサービスのいずれかにおいて、ユーザから各サービスへ投稿可能な態様で前記コードを生成する、
ことを特徴とする請求項２又は３に記載の生成プログラム。
【請求項５】
前記第１生成手順は、
前記スマートコントラクトを生成した生成元を識別するための識別情報を含むスマートコントラクトを生成する、
ことを特徴とする請求項１〜４のいずれか一つに記載の生成プログラム。
【請求項６】
前記受付手順は、
前記スマートコントラクトに関する情報として、取引対象を識別する識別情報、取引対象の詳細データへのリンク先を示す情報、取引における価格情報、又は、取引における条件の少なくともいずれか一つの情報を受け付ける、
ことを特徴とする請求項１〜５のいずれか一つに記載の生成プログラム。
【請求項７】
前記受付手順は、
前記取引における条件として、取引先が過去に所定数の取引成立実績を有すること、取引先が前記ユーザとの間で過去に取引成立実績を有すること、又は、取引先が過去に所定額以上の額の取引成立実績を有すること、の少なくともいずれか一つを受け付ける、
ことを特徴とする請求項６に記載の生成プログラム。
【請求項８】
前記第１生成手順は、
前記受付手順が受け付けた条件に応じて、前記ブロックチェーンを利用する所定のネットワーク上におけるブロックを走査することで当該条件を満たすか否かを判定するためのスクリプトを含むスマートコントラクトを生成する、
ことを特徴とする請求項７に記載の生成プログラム。
【請求項９】
前記第１生成手順は、
前記受付手順が受け付けた条件に応じて、前記取引先が利用する端末装置に記録された取引に関する履歴に基づき当該条件を満たすか否かを判定するためのスクリプトを含むスマートコントラクトを生成する、
ことを特徴とする請求項７に記載の生成プログラム。
【請求項１０】
生成を所望するスマートコントラクトに関する情報をユーザから受け付ける受付部と、
前記受付部によって受け付けられた前記スマートコントラクトに関する情報に基づいて、ブロックチェーンを利用する所定のネットワーク上で執行可能なプログラムであるスマートコントラクトを生成する第１生成部と、
を備えたことを特徴とする生成装置。
【請求項１１】
コンピュータが実行する生成方法であって、
生成を所望するスマートコントラクトに関する情報をユーザから受け付ける受付工程と、
前記受付工程によって受け付けられた前記スマートコントラクトに関する情報に基づいて、ブロックチェーンを利用する所定のネットワーク上で執行可能なプログラムであるスマートコントラクトを生成する第１生成工程と、
を含んだことを特徴とする生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生成プログラム、生成装置及び生成方法に関する。
【背景技術】
【０００２】
近年、ブロックチェーンの技術を利用した電子商取引が行われている。例えば、ブロックチェーンの技術を利用した仮想通貨（ビットコイン等）が流通し、商取引に用いられている。このようなブロックチェーンの技術を利用することで、ユーザは、銀行のような仲介者を要することなく、個人間の取引を比較的安全に行うことができる。
【０００３】
なお、個人間の商取引を支援する技術としては、例えば、売買契約を仲介するオークションプラットフォームにおいて認証等を行うことにより、商品有償譲渡契約の履行において完全履行を担保するような技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−２５６３７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の従来技術では、ユーザ同士の柔軟な個人間取引を促進させることは難しい。具体的には、上記の従来技術は、予め売買の形態が定まった取引に利用されるものであり、中央管理者などの仲介者なしに、ユーザが任意に取引の内容を設定したり、自由に取引を発生させたりすることは困難である。また、ブロックチェーンの技術を利用した取引ではユーザが自由に契約内容を設定することは可能であるものの、かかる作業には、専用のスクリプト（プログラム）を作成することが求められる。このため一般ユーザにとっては敷居の高い作業となり、ブロックチェーンの技術を利用した取引であっても、現状では、柔軟な個人間取引を促進させることができるとは言い難い。
【０００６】
本願は、上記に鑑みてなされたものであって、ユーザ同士の柔軟な個人間取引を促進させることができる生成プログラム、生成装置及び生成方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願に係る生成プログラムは、生成を所望するスマートコントラクトに関する情報をユーザから受け付ける受付手順と、前記受付手順によって受け付けられた前記スマートコントラクトに関する情報に基づいて、ブロックチェーンを利用する所定のネットワーク上で執行可能なプログラムであるスマートコントラクトを生成する第１生成手順と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【０００８】
実施形態の一態様によれば、ユーザ同士の柔軟な個人間取引を促進させることができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係る生成処理の一例を示す図（１）である。
【図２】図２は、実施形態に係る生成処理の一例を示す図（２）である。
【図３】図３は、実施形態に係る生成処理システムの構成例を示す図である。
【図４】図４は、実施形態に係る生成装置の構成例を示す図である。
【図５】図５は、実施形態に係るコントラクトテーブルの一例を示す図である。
【図６】図６は、実施形態に係るコントラクトデータを説明する図である。
【図７】図７は、実施形態に係るウェブサーバの構成例を示す図である。
【図８】図８は、実施形態に係る生成装置による処理手順を示すフローチャートである。
【図９】図９は、変形例に係る生成処理の一例を示す図（１）である。
【図１０】図１０は、変形例に係る生成処理の一例を示す図（２）である。
【図１１】図１１は、生成装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【００１０】
以下に、本願に係る生成プログラム、生成装置及び生成方法を実施するための形態（以下、「実施形態」と呼ぶ）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る生成プログラム、生成装置及び生成方法が限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【００１１】
〔１．生成処理の一例〕
まず、図１及び図２を用いて、実施形態に係る生成処理の一例について説明する。図１は、実施形態に係る生成処理の一例を示す図（１）である。具体的には、図１では、本願に係る生成プログラムによって制御される情報処理端末である生成装置１００によって、本願に係る生成処理が行われる流れについて説明する。より具体的には、図１では、本願に係る生成装置の一例である生成装置１００によって、ブロックチェーンを利用するプラットフォームにおける商取引等の契約を示すプログラムであるスマートコントラクト（Smart  Contract）が生成される処理の流れについて説明する。
【００１２】
実施形態では、ブロックチェーンを利用する所定のプラットフォームをブロックチェーンネットワーク５０と称する。ブロックチェーンネットワーク５０は、独自の仮想通貨システムを有しており、仮想通貨による取引が可能なネットワークであるものとする。例えば、ブロックチェーンネットワーク５０は、イーサリアム（Ethereum）等の既存のプラットフォームであってもよい。
【００１３】
ブロックチェーンネットワーク５０におけるスマートコントラクトとは、ブロックチェーンネットワーク５０上において交わされる契約である。具体的には、スマートコントラクトは、デジタル形式で記述され、契約内容として設定された条件が達成された場合には、予め設定された内容に従い、自動的に処理が実行されるプログラムである。例えば、ユーザは、スマートコントラクトを生成することにより、ブロックチェーンネットワーク５０において仮想通貨をやり取りするための商取引等を発生させることができる。
【００１４】
周知のように、ブロックチェーンは、中央管理システム等を必要とせずに情報の信頼性を保持する仕組みを有する。このため、スマートコントラクトを生成することで、ユーザは、商取引を仲介するサーバ等を介さずにユーザ間の商取引を行うことができる。例えば、ユーザは、商品名や、商品の価格や、取引に関してユーザが任意に設定する条件などを記述してスマートコントラクトを生成することができる。しかしながら、スマートコントラクトは、プラットフォームごとに独自の形式を有する場合もあり、一般ユーザが生成するには困難な点も多い。また、スマートコントラクトを生成したとしても、当該スマートコントラクトによって発生する商取引がユーザ間で充分に周知されなければ、取引が成立しない事態も起こり得る。
【００１５】
そこで、本願に係る生成装置１００は、下記に説明する処理によって、一般ユーザであっても任意の条件を設定することが可能なスマートコントラクトを生成するとともに、生成したスマートコントラクトを他のユーザに周知させることを可能とする。以下、図１及び図２を用いて、本願に係る生成処理の流れについて説明する。なお、以下では、スマートコントラクトについて、単にコントラクトと表記する場合がある。
【００１６】
図１では、生成装置１００と、ウェブサーバ３０と、ブロックチェーンネットワーク５０との間で情報のやり取りが行われる例を示す。生成装置１００は、コントラクトを生成する情報処理端末である。図１に示す例では、商取引における売り手、すなわち、ブロックチェーンネットワーク５０においてコントラクトを発生させて商品を売ることを所望するユーザＵ０１によって、生成装置１００が利用される。生成装置１００は、例えば、スマートフォンやタブレット端末等である。
【００１７】
ウェブサーバ３０は、ウェブページ等のサービスページをユーザに提供するサーバ装置である。具体的には、ウェブサーバ３０は、情報処理端末からアクセスを受けた際に、ウェブページのデータを情報処理端末に提供する。情報処理端末は、ブラウザソフトウェア等を利用して、ウェブページを画面に表示する。
【００１８】
実施形態に係るウェブサーバ３０は、例えば、ＳＮＳ（Social  Networking  Service）を提供するサーバである。この場合、ウェブサーバ３０は、ユーザから投稿されるメッセージを受信し、受信したメッセージを新たにユーザに提供するウェブページに反映させる。
【００１９】
ブロックチェーンネットワーク５０は、ブロックチェーン技術を利用する所定のプラットフォームである。ブロックチェーンネットワーク５０は、中央管理するシステム等を有さず、ネットワーク上に存在する複数のコンピュータによって処理される分散型システムを有する。また、ブロックチェーンネットワーク５０は、独自の仮想通貨を有する。ブロックチェーンネットワーク５０では、コントラクトの発生や、コントラクトの成立や、コントラクトの承認等の処理が行われた場合に、仮想通貨の移動が行われる。
【００２０】
図１に示す例において、ユーザＵ０１は、コントラクトの生成を所望する。具体的には、ユーザＵ０１は、自身が保持する商品に対価を設定し、ブロックチェーンネットワーク５０において商品を売却するための商取引を示したコントラクトの生成を所望する。この場合、ユーザＵ０１は、生成装置１００に対して、自身が所望する商取引に関する情報を入力する。
【００２１】
生成装置１００は、生成を所望するコントラクトに関する情報をユーザＵ０１から受け付ける。例えば、生成装置１００は、コントラクトに関する情報として、商取引における取引対象を識別する識別情報（例えば、商品名）や、取引対象に設定する価格情報や、取引における条件等の入力を受け付ける。この場合、生成装置１００は、所定のユーザインターフェイス等を画面上に表示し、ユーザインターフェイスを介して、ユーザＵ０１から入力を受け付けてもよい。
【００２２】
ブロックチェーンネットワーク５０のコントラクトにおいて、取引対象に設定する価格や、取引における条件は、ユーザＵ０１が任意に設定可能である。生成装置１００は、例えば取引における条件として、取引先（商品の買い手となるユーザ）が過去に所定数の取引成立実績を有するか否か、取引先がユーザＵ０１との間で過去に取引成立実績を有するか否か、取引先が過去に所定額以上の額の取引成立実績を有するか否か、などの条件を受け付ける。このような条件をコントラクトに含めることで、ユーザＵ０１は、一定の信頼性を有するユーザとのみ取引を行うことができるため、取引の信頼性を高めることができる。
【００２３】
生成装置１００は、ユーザから受け付けたコントラクトに関する情報に基づいて、コントラクトを生成する（ステップＳ１１）。具体的には、生成装置１００は、コントラクトに関する情報に基づいて、ブロックチェーンネットワーク５０において利用可能なプログラミング言語で記載されたスクリプトを生成する。以下、生成装置１００が生成したコントラクトに関するデータを「コントラクトデータ」と表記する場合がある。
【００２４】
そして、生成装置１００は、生成したコントラクトデータをブロックチェーンネットワーク５０上に送信（アップロード）する（ステップＳ１２）。ブロックチェーンネットワーク５０では、分散型システムを構築する複数のコンピュータによって、生成装置１００から送信されたコントラクトデータが検証される（一般に、ブロックチェーン技術では、マイニングと呼ばれる）。コントラクトデータが検証されると、ブロックチェーンネットワーク５０上に当該コントラクトが登録される。そして、ブロックチェーンネットワーク５０上に、当該コントラクトを特定するためのアドレス（コントラクトアドレス）が発行される（ステップＳ１３）。
【００２５】
生成装置１００は、ブロックチェーンネットワーク５０上で発行されたコントラクトアドレスを受信する（ステップＳ１４）。生成装置１００は、受信したコントラクトアドレスと生成したコントラクトとを対応付けて記憶する。
【００２６】
ここで、生成装置１００は、生成したコントラクトとコントラクトアドレスとの情報を含む、所定のコードを生成する処理を行う。上述のように、ブロックチェーンネットワーク５０上にコントラクトを登録した場合であっても、かかるコントラクトの情報が他のユーザに周知されなければ、当該コントラクトが成立する可能性が低くなる。そこで、生成装置１００は、当該コントラクトを特定する情報であるコントラクトアドレスを含めることで、当該コントラクトに他のユーザがアクセスすることを可能とする所定のコードを生成する。
【００２７】
この場合、他のユーザをコントラクトにアクセスさせるためのコードは、多くのユーザの目に触れやすい態様で生成されることが望ましい。そこで、生成装置１００は、所定のネットワークサービスにおいて掲出可能な態様でコードを生成する。例えば、生成装置１００は、ウェブサーバ３０が提供するＳＮＳサービスにおいて、ユーザＵ０１が投稿するメッセージに掲載できるような態様でコードを生成する。
【００２８】
具体的には、生成装置１００は、所定のコードとして、サービスページへ掲出することが可能な掲出用ＱＲコード（登録商標）を生成する（ステップＳ１５）。生成装置１００が生成するＱＲコードは、例えば、ブロックチェーンネットワーク５０に送信されたスクリプト（コントラクトデータ）に対して発行されたコントラクトアドレスと、ブロックチェーンネットワーク５０上で承認されたコントラクトに関する情報（商取引の内容）等を含む。
【００２９】
生成装置１００は、ユーザＵ０１の操作に従って、生成したＱＲコードをウェブサーバ３０が提供するサービスページにアップロードする（ステップＳ１６）。例えば、ユーザＵ０１は、商品を宣伝する内容のメッセージとともに、ＱＲコードをサービスページに投稿する。ウェブサーバ３０は、アップされたＱＲコードを所定のサービスページに掲出する（ステップＳ１７）。
【００３０】
このように、生成装置１００は、生成を所望するコントラクトに関する情報をユーザＵ０１から受け付ける。そして、生成装置１００は、受け付けられたコントラクトに関する情報に基づいて、ブロックチェーンネットワーク５０上で執行可能なコントラクトを生成する。さらに、生成装置１００は、当該コントラクトに関する情報と、当該コントラクトにアクセスするためのコントラクトアドレスを含むＱＲコードを生成する。
【００３１】
すなわち、生成装置１００は、ユーザＵ０１に負担を掛けることなく、ユーザＵ０１が所望するコントラクトを発生させることができる。また、生成装置１００は、コントラクトを示すコードをサービスページに掲出可能な態様で生成することで、コントラクトを他のユーザに周知させる機会を増大させることができるので、個人間の取引を促進させることができる。
【００３２】
続いて、図２を用いて、生成装置１００が生成したＱＲコードが他のユーザから利用される処理の流れについて説明する。図２は、実施形態に係る生成処理の一例を示す図（２）である。図２では、商取引において買い手となるユーザＵ０２が、端末装置２００を利用して、コントラクトに示された商取引を行う処理の流れについて説明する。
【００３３】
情報処理端末である端末装置２００は、ユーザＵ０２による操作に従い、ウェブサーバ３０が提供するサービスページにアクセスする（ステップＳ２１）。なお、端末装置２００は、例えば、スマートフォンやタブレット端末等である。
【００３４】
ウェブサーバ３０は、アクセスされたサービスページを端末装置２００に配信する（ステップＳ２２）。配信されたサービスページには、生成装置１００によって生成されたＱＲコードが掲出されているものとする。
【００３５】
端末装置２００は、ユーザＵ０２によってサービスページに含まれるＱＲコードが選択された場合に、ＱＲコードの情報を読み込む（ステップＳ２３）。ＱＲコードには、生成装置１００が生成したコントラクトに対応するコントラクトアドレスが含まれる。このため、端末装置２００は、ＱＲコードがユーザＵ０２から選択されたことを契機として、コントラクトアドレスが示すコントラクトにアクセスする。
【００３６】
端末装置２００は、ブロックチェーンネットワーク５０上におけるコントラクトにアクセスすることで、コントラクトに関する情報を取得する（ステップＳ２４）。そして、端末装置２００は、取得したコントラクトに関する情報を画面に表示する。例えば、端末装置２００は、当該コントラクトにおける商品や、商品に設定された価格を表示する。
【００３７】
ここで、ユーザＵ０２は、端末装置２００に表示された商品を購入することを所望したとする。例えば、ユーザＵ０２は、画面上に表示された商品の購入を示すボタン等を選択することにより、購入の意思を示す。端末装置２００は、ユーザＵ０２によって商品の購入操作が行われた場合に、商品の購入の要求をブロックチェーンネットワーク５０に送信する（ステップＳ２５）。
【００３８】
ブロックチェーンネットワーク５０では、端末装置２００が送信した商品の購入の要求が検証される。そして、要求の検証が済むと、当該コントラクトが成立したものとして、当該コントラクトが実行される（ステップＳ２６）。このとき、生成装置１００は、生成したコントラクトが実行された旨の通知を受信する。そして、通知を確認したユーザＵ０１は、コントラクトに対応する商品をユーザＵ０２に送る。
【００３９】
その後、ユーザＵ０２は、ユーザＵ０１から送られた商品を受領する。ユーザＵ０２は、送られた商品とコントラクトに示される商品とが相違ないことを確認したのち、端末装置２００を操作し、商品の受け取りの確認処理を行う（ステップＳ３１）。具体的には、端末装置２００は、商品に対応したコントラクトを示す画面において、商品の受領を示すボタン等がユーザＵ０２から選択されることで、当該商品の受け取りの確認を示す情報を受信する。
【００４０】
端末装置２００は、確認情報をブロックチェーンネットワーク５０に送信する（ステップＳ３２）。ブロックチェーンネットワーク５０上では、端末装置２００から送信された確認情報の検証が行われる。
【００４１】
そして、確認情報の検証が済むと、ブロックチェーンネットワーク５０上において、コントラクトが成立する。そして、ブロックチェーンネットワーク５０上において、コントラクトに設定された価格分の仮想通貨がユーザＵ０２からユーザＵ０１に移動する処理が実行される（ステップＳ３３）。これにより、生成装置１００によって生成されたコントラクトに関する一連の処理が終了する。なお、ステップＳ３３における仮想通貨の移動処理は、種々の仮想通貨ごとに異なる方式が用いられてもよい。例えば、ユーザＵ０２が購入の要求をしたときに、コントラクト上に価格分の仮想通貨が送金され（送金の記録がブロックチェーン上に記録され）、コントラクトが成立した場合に、コントラクト上からユーザＵ０１に送金が行われるといった方式が用いられてもよい。
【００４２】
上述してきたように、生成装置１００は、ユーザＵ０１が所望する商取引のコントラクトを生成するとともに、コントラクトの内容を示すＱＲコードを生成する。これにより、生成装置１００は、サービスページを閲覧する他のユーザであるユーザＵ０２に、ユーザＵ０１が生成したコントラクトに係る取引を周知することができる。このように、生成装置１００によれば、ユーザ同士の柔軟な個人間取引を促進させることができる。
【００４３】
なお、生成装置１００は、上述した処理を任意の手法で実現することができる。例えば、ユーザＵ０１は、予め上記の生成処理を行う生成プログラムを、生成装置１００で実行されるアプリケーション（アプリ）としてインストールしておいてもよい。この場合、生成装置１００は、ユーザＵ０１から上記アプリの起動操作を受けて、生成プログラムを実行する。また、端末装置２００が行うＱＲコードの読み込みや、商品の購入の要求等の処理についても、専用のアプリによって実行されてもよい。また、生成プログラム自体は、種々の任意のプログラム言語によって記述されてもよい。以下、このような生成プログラムに従って、上述した生成処理を実行する生成装置１００等について詳細に説明する。
【００４４】
〔２．生成処理システムの構成〕
まず、図３を用いて、実施形態に係る生成処理システム１の構成について説明する。図３は、実施形態に係る生成処理システム１の構成例を示す図である。図３に示すように、生成処理システム１は、生成装置１００と、端末装置２００と、ウェブサーバ３０と、ブロックチェーンネットワーク５０とを含む。生成装置１００、端末装置２００、ウェブサーバ３０及びブロックチェーンネットワーク５０は、ネットワークＮを介して有線または無線により通信可能に接続される。なお、図３に示す生成処理システム１には、複数台の生成装置１００や、複数台の端末装置２００や、複数台のウェブサーバ３０が含まれてもよい。また、生成処理システム１には、ブロックチェーンネットワーク５０以外の、ブロックチェーンを利用する所定のプラットフォームが含まれてもよい。
【００４５】
生成装置１００は、コントラクトの生成を所望するユーザから受け付けた情報に基づいて、コントラクトを生成する情報処理装置である。なお、生成装置１００は、スマートフォンやタブレット端末に限られず、デスクトップ型ＰＣや、ノート型ＰＣや、ＰＤＡ（Personal  Digital  Assistant）や、ウェアラブル端末等であってもよい。
【００４６】
端末装置２００は、サービスページを閲覧したり、ブロックチェーンネットワーク５０における商取引を利用したりすることを所望するユーザから利用される情報処理装置である。例えば、端末装置２００は、デスクトップ型ＰＣや、ノート型ＰＣや、タブレット端末や、携帯電話機や、ＰＤＡや、ウェアラブル端末等である。
【００４７】
ウェブサーバ３０は、ウェブページ等のサービスページを配信するウェブサーバである。例えば、ウェブサーバ３０は、ポータルサイト、ニュースサイト、オークションサイト、天気予報サイト、ショッピングサイト、ファイナンス（株価）サイト、路線検索サイト、地図提供サイト、旅行サイト、飲食店紹介サイト、ＳＮＳサイト、ウェブブログなどに関連する各種情報を含むウェブページを生成装置１００に配信する。
【００４８】
ウェブサーバ３０によって配信されるウェブページは、例えば、ＨＴＭＬにより記述されたＨＴＭＬファイルや、ＸＭＬ（Extensible  Markup  Language）により記述されたＸＭＬファイル等により形成される。また、ウェブサーバ３０によって配信されるウェブページには、広告取得命令が含まれてもよい。例えば、ウェブページを形成するＨＴＭＬファイル等には、所定の広告サーバのＵＲＬ等が広告取得命令として記述される。この場合、生成装置１００は、ＨＴＭＬファイル等に記述されているＵＲＬにアクセスすることで、所定の広告サーバから広告コンテンツを取得する。
【００４９】
ブロックチェーンネットワーク５０は、ブロックチェーン技術を利用する所定のプラットフォームである。上述のように、ブロックチェーンネットワーク５０では、ネットワークＮ上にユーザがコントラクトを発生させることで、独自の仮想通貨を介した商取引等を行うことができる。
【００５０】
〔３．生成装置の構成〕
次に、図４を用いて、実施形態に係る生成装置１００の構成について説明する。図４は、実施形態に係る生成装置１００の構成例を示す図である。図４に示すように、生成装置１００は、通信部１１０と、入力部１２０と、出力部１２５と、記憶部１３０と、制御部１４０とを有する。
【００５１】
通信部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。そして、通信部１１０は、ネットワークＮと有線又は無線で接続され、端末装置２００やウェブサーバ３０との間で情報の送受信を行ったり、ブロックチェーンネットワーク５０上に情報を送信したり、ブロックチェーンネットワーク５０上の情報を受信したりする。
【００５２】
入力部１２０は、ユーザから各種操作を受け付ける入力装置である。例えば、入力部１２０は、キーボードやマウスや操作キー等によって実現される。出力部１２５は、各種情報を表示するための表示装置である。例えば、出力部１２５は、生成装置１００の画面であり、液晶ディスプレイ等によって実現される。なお、生成装置１００にタッチパネルが採用される場合には、入力部１２０と出力部１２５とは一体化される。
【００５３】
記憶部１３０は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部１３０は、コントラクトに関する情報が記憶されるデータテーブルとして、コントラクトテーブル１３１を有する。
【００５４】
図５に、コントラクトテーブル１３１に格納された情報の例を示す。図５は、実施形態に係るコントラクトテーブル１３１の一例を示す図である。図５に示した例では、コントラクトテーブル１３１は、「コントラクトＩＤ」、「コントラクトアドレス」、「商品ＩＤ」、「取引額」、「条件」、「ＱＲコードデータ」、「取引成立」といった項目を有する。
【００５５】
「コントラクトＩＤ」は、コントラクトを識別するための識別情報を示す。「コントラクトアドレス」は、ブロックチェーンネットワーク５０上においてコントラクトを特定するためのアドレスを示す。
【００５６】
「商品ＩＤ」は、コントラクトの取引対象である商品を識別するための識別情報を示す。「取引額」は、商品に対して設定される価格であり、コントラクトの成立に対して仮想通貨の移動が行われる額を示す。なお、図５に示す取引額の数値の単位は、ブロックチェーンネットワーク５０で扱われる仮想通貨の単位であるものとする。
【００５７】
「条件」は、取引においてユーザが任意に設定する条件を示す。「ＱＲコードデータ」は、コントラクトが生成され、コントラクトアドレスが発行された後に、生成装置１００によって生成されるＱＲコードのデータを示す。ＱＲコードには、コントラクトの内容や、コントラクトアドレスや、条件等の情報が含まれる。
【００５８】
なお、ＱＲコードには、上記以外の種々の情報が含まれてもよい。例えば、ＱＲコードには、商品を詳細に紹介するページ（例えば、商品の売り手であるユーザが提供するサービスページ）へのリンク等が含まれてもよい。例えば、ＱＲコードには、商品の画像データが保持されているページへのリンク等が含まれてもよい。
【００５９】
「取引成立」は、コントラクトテーブル１３１に保持されているコントラクトについて取引が成立したか否かを示す。例えば、「取引成立」の項目が「０」であれば、まだ取引が成立していないことを示す。一方、「取引成立」の項目が「１」であれば、取引が成立したことを示す。
【００６０】
すなわち、図５に示した情報の一例では、コントラクトＩＤ「Ｃ１０」によって識別されるコントラクトは、コントラクトアドレス「Ａ１０」であり、商品ＩＤ「Ｇ１０」によって識別される商品を取引対象とするコントラクトであることを示している。また、当該コントラクトにおける取引額は「１００」であり、「取引成立１０件以上」のユーザや、「累計取引額１０００以上」のユーザを取引の相手とするような条件が設定されていることを示している。さらに、当該コントラクトにはＱＲコードが生成されており、また、当該コントラクトは、まだ取引が成立していないことを示している。
【００６１】
図４に戻って、説明を続ける。制御部１４０は、コントローラ（controller）であり、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、内部の記憶装置に記憶されている各種プログラム（例えば、本願に係る生成プログラム）がＲＡＭを作業領域として実行されることにより実現される。また、制御部１４０は、コントローラであり、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現される。
【００６２】
図４に示すように、制御部１４０は、受付部１４１と、第１生成部１４２と、受信部１４３と、表示制御部１４４と、第２生成部１４５と、格納部１４６と、送信部１４７とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部１４０の内部構成は、図４に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部１４０が有する各処理部の接続関係は、図４に示した接続関係に限られず、他の接続関係であってもよい。また、制御部１４０が有する各処理部は、本願に係る生成プログラムによって実行される各手順に対応する。例えば、受信部１４１が実行する処理は、生成プログラムが生成装置１００に実行させる受信手順に対応する。
【００６３】
受付部１４１は、生成を所望するコントラクトに関する情報をユーザから受け付ける。例えば、受付部１４１は、所定のユーザインターフェイス等を介して、コントラクトに関する情報をユーザから受け付ける。
【００６４】
例えば、受付部１４１は、コントラクトに関する情報として、取引対象を識別する識別情報、取引対象の詳細データへのリンク先を示す情報、取引における価格情報、又は、取引における条件の少なくともいずれか一つの情報を受け付ける。
【００６５】
具体的には、受付部１４１は、取引対象となる商品の商品名や、取引対象とするサービスの名称や、商品の画像データへのリンク情報や、取引対象に設定した仮想通貨の額などを受け付ける。
【００６６】
また、受付部１４１は、取引における条件として、取引先が過去に所定数の取引成立実績を有すること、取引先がユーザとの間で過去に取引成立実績を有すること、又は、取引先が過去に所定額以上の額の取引成立実績を有すること、の少なくともいずれか一つを受け付けてもよい。これにより、受付部１４１は、一定の信頼を有するユーザのみを取引相手とするようなコントラクトに関する条件を受け付けることができる。
【００６７】
第１生成部１４２は、受付部１４１によって受け付けられたコントラクトに関する情報に基づいて、ブロックチェーンを利用する所定のネットワーク上で執行可能なコントラクトを生成する。より具体的には、第１生成部１４２は、ユーザが生成を所望するコントラクトにおけるスクリプト（コントラクトデータ）を生成する。
【００６８】
ここで、図６を用いて、第１生成部１４２が生成するコントラクトデータの概要を説明する。図６は、実施形態に係るコントラクトデータを説明する図である。図６では、ブロックチェーンネットワーク５０で扱われるデータであるブロック６０を概念的に示している。
【００６９】
図６に示すように、ブロック６０は、タイムスタンプ６１と、前ブロックハッシュ値６２とを含む。また、ブロック６０には、コントラクト６３が含まれる。コントラクト６３は、コントラクトのソースコードであり、例えば、コントラクトアドレスや、コントラクトで利用するメソッドや、仮想通貨の残高データ等の情報が含まれる。第１生成部１４２は、受付部１４１が受け付けた情報に基づいて、コントラクト６３に対応する箇所のスクリプトを生成する。なお、図６に示すコントラクト６３内には、複数のコントラクトが含まれてもよい。
【００７０】
そして、第１生成部１４２によって生成されたコントラクトデータがブロックチェーンネットワーク５０に送信された場合に、図６に示すブロック６０のようなデータ形式に変換され、ブロックチェーンネットワーク５０上でブロック６０の検証が行われる。なお、図６で示したブロック６０の概念図は一例であり、第１生成部１４２は、ブロックチェーンを利用したプラットフォームごとに、種々のデータ形式に対応したコントラクトデータを生成するようにしてもよい。
【００７１】
なお、第１生成部１４２は、コントラクトを生成した生成元を識別するための識別情報を含むコントラクトを生成するようにしてもよい。例えば、第１生成部１４２は、コントラクト（スクリプト）を生成した生成装置１００や、本願に係る生成プログラム自体を作成した作成者や、生成プログラムをアプリとして提供した提供元等を識別する情報を含むスクリプトを生成する。これにより、当該スクリプトに対応するコントラクトが、一定の信頼のおける生成元から提供されたプログラムによって生成されたものであることを証明することができる。なお、かかる識別情報は、例えば、生成プログラムをアプリとして提供した提供元が発行する秘密鍵等によって署名される署名情報などであってもよい。
【００７２】
受信部１４３は、各種情報を受信する。例えば、受信部１４３は、ブロックチェーンネットワーク５０でコントラクトが登録された情報や、発行されたコントラクトアドレスに関する情報を受信する。
【００７３】
表示制御部１４４は、出力部１２５における表示を制御する。例えば、表示制御部１４４は、受信部１４３によってコントラクトアドレスが受信された場合に、ＱＲコードの生成を所望するか否かを示すボタン等を出力部１２５（すなわち、生成装置１００の画面上）に表示させる制御を行う。ユーザが表示されたボタンを選択することを契機として、後述する第２生成部１４５は、ＱＲコードの生成処理を行う。
【００７４】
なお、表示制御部１４４は、受付部１４１による受付処理や、後述する送信部１４７による送信処理等においても、適宜、画面上にユーザから選択を受けるためのボタン等を表示するような制御を行ってもよい。すなわち、表示制御部１４４は、生成装置１００における各種のユーザインターフェイスに関する処理を行ってもよい。
【００７５】
第２生成部１４５は、ブロックチェーンネットワーク５０上に送信されたコントラクトに対してブロックチェーンネットワーク５０から発行されるコントラクトアドレスと、ブロックチェーンネットワーク５０上で承認されたコントラクトに関する情報とを含むコード（code）を生成する。
【００７６】
例えば、第２生成部１４５は、上記の情報を含むＱＲコードを生成する。なお、第２生成部１４５が生成するコードは、ＱＲコードに限られない。例えば、第２生成部１４５は、バーコードなどの２次元コードや、情報が埋め込まれた画像など、所定の情報量を含むことができるタグであれば、いずれを生成してもよい。
【００７７】
なお、第２生成部１４５は、所定のネットワークサービスにおいて掲出可能な態様でコードを生成する。例えば、第２生成部１４５は、ユーザの操作に従い、ユーザがＳＮＳサービスに投稿を行うことができるような態様（データ形式）でコードを生成する。
【００７８】
また、第２生成部１４５によって生成されるコードが掲出されるページはＳＮＳページに限られない。すなわち、第２生成部１４５によって生成されるコードは、ウェブサーバ３０から提供される各種サービスページに掲出可能である。例えば、第２生成部１４５は、ユーザが利用するウェブログサービスや、オークションサービス等において、ユーザから各サービスへ投稿可能な態様でコードを生成するようにしてもよい。
【００７９】
格納部１４６は、各種情報を記憶部１３０に格納する。例えば、格納部１４６は、第１生成部１４２によって生成されたコントラクトデータや、受信部１４３によって受信されたコントラクトアドレスや、第２生成部１４５によって生成されたＱＲコード等を、各々対応付けて、コントラクトテーブル１３１に格納する。
【００８０】
送信部１４７は、各種情報を送信する。例えば、送信部１４７は、第１生成部１４２によって生成されたスマートコントラクトに関するデータ（コントラクトデータ）をブロックチェーンネットワーク５０上に送信する。また、送信部１４７は、ユーザの操作に従って、第２生成部１４５によって生成されたＱＲコードをウェブサーバ３０に送信する。
【００８１】
〔４．ウェブサーバの構成〕
次に、図７を用いて、実施形態に係るウェブサーバ３０の構成について説明する。図７は、実施形態に係るウェブサーバ３０の構成例を示す図である。図７に示すように、ウェブサーバ３０は、通信部３１と、コンテンツ記憶部３２と、制御部３３とを有する。
【００８２】
通信部３１は、例えば、ＮＩＣ等によって実現される。そして、通信部３１は、ネットワークＮと有線または無線で接続され、生成装置１００や端末装置２００との間で情報の送受信を行う。
【００８３】
コンテンツ記憶部３２は、例えば、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。そして、コンテンツ記憶部３２は、サービスページの一例であるウェブページを記憶する。例えば、コンテンツ記憶部３２は、ウェブページを形成するＨＴＭＬファイルや、ウェブページに表示される静止画像や動画像を記憶する。なお、コンテンツ記憶部３２に記憶されるウェブページには、ウェブページ上に表示させる広告コンテンツを取得するための広告取得命令が含まれる場合がある。
【００８４】
制御部３３は、例えば、ＣＰＵやＭＰＵ等によって、ウェブサーバ３０内部の記憶装置に記憶されている各種プログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部３３は、例えば、ＡＳＩＣやＦＰＧＡ等の集積回路により実現される。
【００８５】
図７に示すように、制御部３３は、受付部３４と、配信部３５とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部３３の内部構成は、図７に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部３３が有する各処理部の接続関係は、図７に示した接続関係に限られず、他の接続関係であってもよい。
【００８６】
受付部３４は、生成装置１００や端末装置２００からウェブページの取得要求を受け付ける。例えば、受付部３４は、ウェブページの取得要求として、ＨＴＴＰリクエストを受け付ける。
【００８７】
また、受付部３４は、生成装置１００からメッセージの投稿等があった場合、すなわち、生成装置１００からアップロードされた情報がある場合、かかる情報を受け付ける。例えば、受付部３４は、生成装置１００によって生成されたＱＲコードを含むメッセージを受け付ける。
【００８８】
配信部３５は、受付部３４によってウェブページの取得要求が受け付けられた場合に、ウェブページを生成装置１００や端末装置２００に配信する。具体的には、配信部３５は、コンテンツ記憶部３２から取得要求対象のウェブページを取得し、取得したウェブページを生成装置１００や端末装置２００に配信する。また、配信部３５は、生成装置１００によって生成されたＱＲコードを含むメッセージを受け付けている場合には、当該受け付けた情報が反映されたウェブページを端末装置２００に配信する。
【００８９】
〔５．生成装置の処理フロー〕
次に、図８を用いて、実施形態に係る生成装置１００による処理の手順について説明する。図８は、実施形態に係る生成装置１００による処理手順を示すフローチャートである。
【００９０】
図８に示すように、生成装置１００は、ユーザからコントラクトに関する情報を受け付けたか否かを判定する（ステップＳ１０１）。コントラクトに関する情報を受け付けていない場合には、生成装置１００は、受け付けるまで待機する（ステップＳ１０１；Ｎｏ）。
【００９１】
一方、コントラクトに関する情報を受け付けた場合には（ステップＳ１０１；Ｙｅｓ）、生成装置１００は、コントラクトを生成する（ステップＳ１０２）。そして、生成装置１００は、生成したコントラクトデータをブロックチェーンネットワーク５０に送信する（ステップＳ１０３）。
【００９２】
その後、生成装置１００は、ブロックチェーンネットワーク５０で登録されたコントラクトに対応するコントラクトアドレスを受信する（ステップＳ１０４）。そして、生成装置１００は、コントラクトに関する情報とコントラクトアドレスとを含むＱＲコードを生成する（ステップＳ１０５）。
【００９３】
〔６．変形例〕
上述した実施形態に係る処理は、上記実施形態以外にも種々の異なる形態にて実施されてもよい。以下では、生成処理システム１の他の実施形態について説明する。
【００９４】
〔６−１．サーバによる処理〕
上記実施形態では、生成装置１００が、ユーザＵ０１の有する端末であり、例えば、端末で動作するアプリを介して生成処理を行う例を示した。しかし、生成装置１００は、端末ではなく、ネットワーク上に設置されるサーバであってもよい。この点について、図９及び図１０を用いて説明する。図９は、変形例に係る生成処理の一例を示す図（１）である。
【００９５】
変形例に係る生成装置１００は、図４で示した構成と同様の構成を有するものとする。また、生成装置１００は、サーバとして機能する場合、ウェブサーバ３０と同様に、サービスページを提供する処理を行ってもよい。この場合、生成装置１００は、図４の構成に加えて、図７に示したウェブサーバ３０と同様の構成をさらに有してもよい。
【００９６】
生成装置１００がサーバである場合、商品の売り手（出品者）であるユーザＵ２１は、自身が利用する出品者端末３００を介して、コントラクトの生成を生成装置１００に要求する。
【００９７】
すなわち、出品者端末３００は、ユーザＵ２１の操作に従い、出品を所望する商品や、商品の対価や、条件などの出品データを生成装置１００に送信する（ステップＳ４１）。言い換えれば、出品者端末３００は、ユーザが生成を所望するコントラクトに関する情報を生成装置１００に送信する。
【００９８】
生成装置１００は、受信した情報に基づいて、コントラクトを生成する（ステップＳ４２）。そして、生成装置１００は、生成したコントラクトに関するコントラクトデータをブロックチェーンネットワーク５０に送信する（ステップＳ４３）。ブロックチェーンネットワーク５０上では、コントラクトの登録、及び、コントラクトアドレスの発行が行われる（ステップＳ４４）。そして、生成装置１００は、ブロックチェーンネットワーク５０上で発行されたコントラクトアドレスを受信する（ステップＳ４５）。
【００９９】
そして、生成装置１００は、受信したコントラクトアドレスと生成したコントラクトとを対応付けて、当該コントラクトをサービスページに掲出する。すなわち、生成装置１００は、サービスページにユーザＵ２１が出品する商品をリスティングする（ステップＳ４６）。例えば、生成装置１００が、個人間の取引を行うためのショッピングサイトを提供する場合、ユーザＵ２１が出品した商品は、当該ショッピングサイトに出品された商品としてリスティングされる。この場合、生成装置１００は、コントラクトに対応するＱＲコードについては、生成しなくてもよい。
【０１００】
続いて、図１０を用いて、当該商品がユーザＵ０２から購入される場合の流れについて説明する。図１０は、変形例に係る生成処理の一例を示す図（２）である。
【０１０１】
端末装置２００は、ユーザＵ０２の操作に従い、リスティングされた商品の購入を要求する（ステップＳ５１）。生成装置１００は、端末装置２００から購入の要求を受信した場合、かかる購入要求をブロックチェーンネットワーク５０上に送信する（ステップＳ５２）。ブロックチェーンネットワーク５０では、当該購入要求に対応したコントラクトが実行される（ステップＳ５３）。生成装置１００は、ブロックチェーンネットワーク５０上でコントラクトが実行されたことを示す通知を受信する（ステップＳ５４）。
【０１０２】
そして、生成装置１００は、コントラクトが実行されたことを示す通知を出品者である出品者端末３００に送信する（ステップＳ５５）。通知を受領した出品者であるユーザＵ２１は、ユーザＵ０２に商品を送る。
【０１０３】
その後、ユーザＵ０２は、ユーザＵ２１から送られた商品とコントラクトに示される商品とが相違ないことを確認したのち、端末装置２００を操作し、商品の受け取りの確認処理を行う（ステップＳ６１）。端末装置２００は、確認情報を生成装置１００に送信する（ステップＳ６２）。生成装置１００は、端末装置２００から受信した確認情報をブロックチェーンネットワーク５０に送信する（ステップＳ６３）。ブロックチェーンネットワーク５０上では、生成装置１００から送信された確認情報の検証が行われる。
【０１０４】
そして、確認情報の検証が済むと、ブロックチェーンネットワーク５０上において、コントラクトが成立する。そして、ブロックチェーンネットワーク５０上において、コントラクトに設定された価格分の仮想通貨がユーザＵ０２からユーザＵ２１に移動する処理が実行される（ステップＳ６４）。これにより、変形例に係る生成装置１００によって生成されたコントラクトに関する一連の処理が終了する。
【０１０５】
上述してきたように、生成装置１００で実行される生成プログラムは、端末内のアプリとして機能するのみならず、生成装置１００がサーバである場合であっても、同様の機能を果たすことができる。これにより、生成装置１００は、生成処理システム１が種々の変形を含む場合であっても、ユーザ同士の柔軟な個人間取引を促進させることができる。
【０１０６】
〔６−２．サービスページ〕
上記実施形態では、生成装置１００の生成したＱＲコードがサービスページに掲出される例を示した。しかし、ＱＲコードは、どのような媒体に掲出されてもよい。
【０１０７】
例えば、ＱＲコードは、スマートフォンに提供されるアプリや、サービスページに含まれる広告枠に表示される広告コンテンツとして掲出されてもよい。この場合、ユーザは、広告コンテンツとして表示されているＱＲコードを選択したり、読み込ませたりすることにより、当該ＱＲコードに対応するコントラクトにアクセスすることができる。この場合、生成処理システム１には、ウェブサーバ３０の他に、広告配信サーバ等が含まれてもよい。
【０１０８】
〔６−３．コントラクト〕
ブロックチェーンネットワーク５０において、コントラクトはユーザの任意に設定可能であることについて説明した。具体的には、実施形態では、ユーザが、所望する商品を自由に選択してコントラクトを生成させたり、対価の額を設定させたりすることが可能な点について説明した。
【０１０９】
ここで、コントラクトには、上記の情報以外にも、ユーザが任意に設定を行うことが可能である。例えば、コントラクトには、取引が行われる期限や、取引に関する送料や、キャンセルに関する条件等が記述されてもよい。すなわち、生成装置１００は、かかる情報をコントラクトに関する情報として受け付け、当該情報を反映させたコントラクトを生成する。これにより、生成装置１００は、ユーザの希望に応じたコントラクトを生成することができる。なお、上記の情報は一例であり、生成装置１００は、例えば、一般に個人間の取引や、オークションサイト等で設定される各種情報について、ユーザから任意に受け付けるようにしてもよい。
【０１１０】
〔６−４．条件〕
生成装置１００は、コントラクトに関する条件として、上記実施形態で例示した以外の条件を受け付けてもよい。例えば、生成装置１００は、取引の相手となるユーザの属性情報を条件として受け付けてもよい。例えば、生成装置１００は、ユーザの年齢や、性別や、居住地等の条件を受け付けてもよい。これにより、生成装置１００を利用するユーザは、取引の相手に関する条件を任意に指定することができるため、より安心して個人間の売買を行うことができる。
【０１１１】
〔６−５．過去の情報の利用〕
生成装置１００は、コントラクトの生成に際して、過去に生成されたコントラクトに関する情報に基づいて所定の処理を行ってもよい。例えば、生成装置１００は、これまでに各端末等において生成されたコントラクトの履歴情報を取得する。具体的には、生成装置１００は、ネットワークＮを介して、ユーザが出品しようとしている商品と同じ商品が出品された際のコントラクトに関する情報を取得する。
【０１１２】
そして、生成装置１００は、当該商品に関するコントラクトをユーザが生成させようとする場合に、過去のコントラクトに関する情報をレコメンドとして表示する。例えば、生成装置１００は、過去のコントラクトにおける当該商品に設定された対価や、取引が成立した際の対価の額等の情報をユーザに提供する。これにより、生成装置１００は、取引に不慣れなユーザから利用される場合であっても、適切な条件が設定されたコントラクトを生成することができる。このように、生成装置１００は、ユーザビリティの高い生成処理を行うことができる。
【０１１３】
〔６−６．取引履歴の利用〕
上記実施形態において、生成装置１００は、取引における条件として、取引先が過去に所定数の取引成立実績を有すること、取引先がユーザとの間で過去に取引成立実績を有すること、又は、取引先が過去に所定額以上の額の取引成立実績を有すること、の少なくともいずれか一つを受け付けてもよいことを示した。
【０１１４】
生成装置１００は、このように取引履歴を利用した条件を受け付ける場合、ブロックチェーン上における取引履歴を確認する。例えば、ブロックチェーンに係る技術において、生成装置１００は、ブロックをさかのぼって走査し取引先の実績を確認する手法により、過去の取引実績を確認することができる。
【０１１５】
具体的には、生成装置１００は、取引における条件を受け付けると、ブロックチェーン上で取引先の過去のトランザクションのブロックを走査し、所定の取引実績があるかどうかをチェックするソースコード（スクリプト）を生成する。例えば、生成装置１００は、「１０回以上取引を成立させていること」が条件であるときには、トランザクションをさかのぼり、１０回以上の取引を成立させているという条件を満たした場合に、当該ユーザを一定の信頼を有するユーザと判定する。この場合、生成装置１００は、当該ユーザに対しては、例えば取引における購入ボタンをアクティブにするような処理を行うことで、購入を許可するユーザとして判定する。一方、条件を満たしていないユーザに対しては、生成装置１００は、ユーザからの購入要求を非アクティブにしたり、ＱＲコードを読めなくしたり、商品リスティングの対象外としたりするような処理を行うことができる。
【０１１６】
すなわち、生成装置１００に係る第１生成部１４２は、受付部１４１が受け付けた条件に応じて、ブロックチェーンを利用する所定のネットワーク上におけるブロックを走査することで当該条件を満たすか否かを判定するためのスクリプトを含むコントラクトを生成する。これにより、生成装置１００は、受け付けた条件を満たすユーザを精度良く判定することができる。なお、ブロックを走査するためのスクリプト（プログラム）に関しては、ブロックチェーンを利用したプラットフォームごとの既存のスクリプトを利用してもよいし、プラットフォームの仕様に適合するスクリプトをリアルタイムに生成するようにしてもよい。
【０１１７】
なお、生成装置１００は、上記条件の判定について、ブロックチェーン上のトランザクションを走査するのではなく、アプリ上で判定を行ってもよい。例えば、ユーザが、生成装置１００が提供するアプリを介して取引を行う場合、アプリ上で取引履歴を記憶するものとする。生成装置１００は、ユーザが商品を出品する場合に、取引相手が１０回以上取引成立させていることを条件に設定した場合には、取引相手が使用する端末の取引履歴を参照させ、１０回以上取引を成立させているという条件を満たすか否かを判定する。条件を満たした場合、生成装置１００は、当該取引における購入ボタンをアクティブにするといった処理を行う。
【０１１８】
すなわち、生成装置１００に係る第１生成部１４２は、受付部１４１が受け付けた条件に応じて、取引先が利用する端末装置に記録された取引に関する履歴に基づき当該条件を満たすか否かを判定するためのスクリプトを含むスマートコントラクトを生成する。かかる手法によっても、生成装置１００は、受け付けた条件を満たすユーザを精度良く判定することができる。
【０１１９】
〔６−７．プログラム〕
上述してきた生成装置１００による処理は、本願に係る生成プログラムにより実現されることを説明した。例えば、生成装置１００に係る第１生成部１４２は、生成装置１００が有するＣＰＵやＭＰＵ等によって、生成プログラムがＲＡＭを作業領域として、生成プログラムに係る第１生成手順が実行されることにより実現される。生成装置１００に係る他の処理部も同様に、生成プログラムによる各手順が実行されることにより実現される。
【０１２０】
ここで、本願に係る生成装置１００が実行する処理は、必ずしも全てが生成プログラムによって実現されるものでなくてもよい。例えば、表示制御部１４４が情報を表示する処理等は、生成装置１００が有するＯＳ（Operating  System）によって実行されてもよい。すなわち、生成プログラム自体が、上述してきたような生成装置１００で実行される処理を全て実行するのではなく、生成プログラムは、ＯＳによって実行されたり、取得されたりしたデータを利用して、上述してきた処理を実現するようにしてもよい。
【０１２１】
〔７．その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【０１２２】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図４に示した受付部１４１と受信部１４３とは統合されてもよい。
【０１２３】
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【０１２４】
〔８．ハードウェア構成〕
また、上述してきた実施形態に係る生成装置１００、端末装置２００、出品者端末３００及びウェブサーバ３０は、例えば図１１に示すような構成のコンピュータ１０００によって実現される。以下、生成装置１００を例に挙げて説明する。図１１は、生成装置１００の機能を実現するコンピュータ１０００の一例を示すハードウェア構成図である。コンピュータ１０００は、ＣＰＵ１１００、ＲＡＭ１２００、ＲＯＭ１３００、ＨＤＤ１４００、通信インターフェイス（Ｉ／Ｆ）１５００、入出力インターフェイス（Ｉ／Ｆ）１６００、及びメディアインターフェイス（Ｉ／Ｆ）１７００を有する。
【０１２５】
ＣＰＵ１１００は、ＲＯＭ１３００又はＨＤＤ１４００に格納されたプログラム（例えば、本願に係る生成プログラム）に基づいて動作し、各部の制御を行う。ＲＯＭ１３００は、コンピュータ１０００の起動時にＣＰＵ１１００によって実行されるブートプログラムや、コンピュータ１０００のハードウェアに依存するプログラム等を格納する。
【０１２６】
ＨＤＤ１４００は、ＣＰＵ１１００によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を記憶する。通信インターフェイス１５００は、ネットワークＮを介して他の機器からデータを受信してＣＰＵ１１００へ送り、また、ネットワークＮを介してＣＰＵ１１００が生成したデータを他の機器へ送信する。
【０１２７】
ＣＰＵ１１００は、入出力インターフェイス１６００を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。ＣＰＵ１１００は、入出力インターフェイス１６００を介して、入力装置からデータを取得する。また、ＣＰＵ１１００は、入出力インターフェイス１６００を介して生成したデータを出力装置へ出力する。
【０１２８】
メディアインターフェイス１７００は、記録媒体１８００に格納されたプログラム又はデータを読み取り、ＲＡＭ１２００を介してＣＰＵ１１００に提供する。ＣＰＵ１１００は、かかるプログラムを、メディアインターフェイス１７００を介して記録媒体１８００からＲＡＭ１２００上にロードし、ロードしたプログラムを実行する。記録媒体１８００は、例えばＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【０１２９】
例えば、コンピュータ１０００が実施形態に係る生成装置１００として機能する場合、コンピュータ１０００のＣＰＵ１１００は、ＲＡＭ１２００上にロードされたプログラムを実行することにより、制御部１４０の機能を実現する。また、ＨＤＤ１４００には、生成装置１００が備える記憶部１３０内のデータが格納される。コンピュータ１０００のＣＰＵ１１００は、これらのプログラムを記録媒体１８００から読み取って実行するが、他の例として、他の装置からネットワークＮを介してこれらのプログラムを取得してもよい。
【０１３０】
〔９．効果〕
上述してきたように、実施形態に係る生成プログラムは、生成を所望するスマートコントラクトに関する情報をユーザから受け付ける受付手順と、受付手順によって受け付けられたスマートコントラクトに関する情報に基づいて、ブロックチェーンを利用する所定のネットワーク上（例えば、ブロックチェーンネットワーク５０）で執行可能なプログラムであるスマートコントラクトを生成する第１生成手順と、を生成装置１００に実行させる。
【０１３１】
このように、実施形態に係る生成プログラムは、ユーザから受け付けた情報に基づいてスマートコントラクトを生成することができるので、プログラム言語等を扱うことのできないユーザに対しても、ユーザが所望するコントラクトを生成することができる。すなわち、生成プログラムは、ユーザがブロックチェーンネットワーク５０に参加する敷居を下げることにより、ユーザ同士の柔軟な個人間取引を促進させることができる。
【０１３２】
また、実施形態に係る生成プログラムは、第１生成手順によって生成されたスマートコントラクトを所定のネットワーク上に送信する送信手順と、送信手順によって送信されたスマートコントラクトに対して所定のネットワークから発行されるアドレスと、所定のネットワーク上で承認されたスマートコントラクトに関する情報とを含むコード（code）を生成する第２生成手順と、をさらに生成装置１００に実行させる。
【０１３３】
このように、実施形態に係る生成プログラムは、第１生成手順によって生成されたコントラクトに関するアドレス情報を含む所定のコードをさらに生成する。これにより、生成プログラムは、単にコントラクトを発生させるのみならず、当該コントラクトを他のユーザに周知する手段をユーザに提供することができる。
【０１３４】
また、第２生成手順は、所定のネットワークサービスにおいて掲出可能な態様でコードを生成する。
【０１３５】
このように、実施形態に係る生成プログラムは、２次的に活用することができる態様でコードを生成する。例えば、生成プログラムは、所定のネットワークサービスに掲出可能なＱＲコードを生成する。これにより、生成プログラムは、生成したコントラクトをより他のユーザの目に触れやすくすることができるため、個人間の取引を促進させることができる。
【０１３６】
また、第２生成手順は、ユーザが利用するウェブログサービス、ＳＮＳ（Social  Networking  Service）、又は、オークションサービスのいずれかにおいて、ユーザから各サービスへ投稿可能な態様でコードを生成する。
【０１３７】
このように、実施形態に係る生成プログラムによれば、例えばウェブサーバ３０等から提供される各種サービスページに投稿することが可能なコードを生成することができる。すなわち、生成プログラムによれば、ユーザは、所望するサービスに商品を宣伝するメッセージとともにＱＲコードを投稿するなど、よりコントラクトを周知させる行動を採りやすくなる。これにより、生成プログラムは、個人間の取引を促進させることができる。
【０１３８】
また、第１生成手順は、スマートコントラクトを生成した生成元を識別するための識別情報を含むスマートコントラクトを生成する。
【０１３９】
このように、実施形態に係る生成プログラムは、スマートコントラクトを生成した生成装置１００や、本願に係る生成プログラムを作成した作成者や、生成プログラムをアプリとして提供した提供元等を識別する情報を含むスマートコントラクトを生成してもよい。これにより、生成プログラムは、生成されたコントラクトが一定の信頼のおける生成元から提供されたプログラムによって生成されたものであることを証明することができる。このため、生成プログラムは、よりユーザにとって信頼感のあるコントラクトを生成することができる。
【０１４０】
また、受付手順は、スマートコントラクトに関する情報として、取引対象を識別する識別情報、取引対象の詳細データへのリンク先を示す情報、取引における価格情報、又は、取引における条件の少なくともいずれか一つの情報を受け付ける。
【０１４１】
このように、実施形態に係る生成プログラムによれば、ユーザが任意に設定可能な種々の情報を受け付けることができる。これにより、生成プログラムは、ユーザの所望する内容を的確に反映させたコントラクトを生成することができる。
【０１４２】
また、受付手順は、取引における条件として、取引先が過去に所定数の取引成立実績を有すること、取引先がユーザとの間で過去に取引成立実績を有すること、又は、取引先が過去に所定額以上の額の取引成立実績を有すること、の少なくともいずれか一つを受け付ける。
【０１４３】
このように、実施形態に係る生成プログラムによれば、取引に関する任意の条件を受け付けることができる。すなわち、生成プログラムによれば、売り手となるユーザは、例えば過去に取引を安全に行うことができた買い手や、所定額の取引成立実績があるような安全性の高い買い手のみを取引の相手として指定するようなスクリプトを簡単に生成させることができる。これにより、生成プログラムは、安心感のある取引をユーザに提供できるため、ユーザ間の取引を促進させることができる。
【０１４４】
また、第１生成手順は、受付手順が受け付けた条件に応じて、ブロックチェーンを利用する所定のネットワーク上におけるブロックを走査することで当該条件を満たすか否かを判定するためのスクリプトを含むスマートコントラクトを生成する。
【０１４５】
このように、実施形態に係る生成プログラムによれば、ブロックチェーン上を走査するプログラムを生成して取引履歴等を確認することができるため、受け付けた条件を満たすユーザを精度良く判定することができる。
【０１４６】
また、第１生成手順は、受付手順が受け付けた条件に応じて、取引先が利用する端末装置に記録された取引に関する履歴に基づき当該条件を満たすか否かを判定するためのスクリプトを含むスマートコントラクトを生成する。
【０１４７】
このように、実施形態に係る生成プログラムによれば、購入を要求するユーザが利用する端末装置の履歴等を利用して、条件の判定を行う。例えば、生成プログラムは、購入を要求するユーザが利用する端末装置にインストールされたアプリの機能を利用して取引履歴を確認する。これにより、生成プログラムは、受け付けた条件を満たすユーザを精度良く判定することができる。
【０１４８】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０１４９】
また、上述してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、第１生成部は、第１生成手段や第１生成回路に読み替えることができる。
【符号の説明】
【０１５０】
１  生成処理システム
３０  ウェブサーバ
５０  ブロックチェーンネットワーク
１００  生成装置
１１０  通信部
１２０  入力部
１２５  出力部
１３０  記憶部
１３１  コントラクトテーブル
１４０  制御部
１４１  受付部
１４２  第１生成部
１４３  受信部
１４４  表示制御部
１４５  第２生成部
１４６  格納部
１４７  送信部
２００  端末装置
３００  出品者端末
【図１】
2018036893.tif 000003
【図２】
2018036893.tif 000004
【図３】
2018036893.tif 000005
【図４】
2018036893.tif 000006
【図５】
2018036893.tif 000007
【図６】
2018036893.tif 000008
【図７】
2018036893.tif 000009
【図８】
2018036893.tif 000010
【図９】
2018036893.tif 000011
【図１０】
2018036893.tif 000012
【図１１】
2018036893.tif 000013