JP6703918B2 - 生成プログラム、生成装置及び生成方法 - Google Patents

生成プログラム、生成装置及び生成方法 Download PDF

Info

Publication number
JP6703918B2
JP6703918B2 JP2016170013A JP2016170013A JP6703918B2 JP 6703918 B2 JP6703918 B2 JP 6703918B2 JP 2016170013 A JP2016170013 A JP 2016170013A JP 2016170013 A JP2016170013 A JP 2016170013A JP 6703918 B2 JP6703918 B2 JP 6703918B2
Authority
JP
Japan
Prior art keywords
generation
user
smart contract
contract
information
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.)
Active
Application number
JP2016170013A
Other languages
English (en)
Other versions
JP2018036893A (ja
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.)
Yahoo Japan Corp
Original Assignee
Yahoo Japan Corp
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 Yahoo Japan Corp filed Critical Yahoo Japan Corp
Priority to JP2016170013A priority Critical patent/JP6703918B2/ja
Publication of JP2018036893A publication Critical patent/JP2018036893A/ja
Application granted granted Critical
Publication of JP6703918B2 publication Critical patent/JP6703918B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、生成プログラム、生成装置及び生成方法に関する。
近年、ブロックチェーンの技術を利用した電子商取引が行われている。例えば、ブロックチェーンの技術を利用した仮想通貨(ビットコイン等)が流通し、商取引に用いられている。このようなブロックチェーンの技術を利用することで、ユーザは、銀行のような仲介者を要することなく、個人間の取引を比較的安全に行うことができる。
なお、個人間の商取引を支援する技術としては、例えば、売買契約を仲介するオークションプラットフォームにおいて認証等を行うことにより、商品有償譲渡契約の履行において完全履行を担保するような技術が提案されている。
特開2001−256377号公報
しかしながら、上記の従来技術では、ユーザ同士の柔軟な個人間取引を促進させることは難しい。具体的には、上記の従来技術は、予め売買の形態が定まった取引に利用されるものであり、中央管理者などの仲介者なしに、ユーザが任意に取引の内容を設定したり、自由に取引を発生させたりすることは困難である。また、ブロックチェーンの技術を利用した取引ではユーザが自由に契約内容を設定することは可能であるものの、かかる作業には、専用のスクリプト(プログラム)を作成することが求められる。このため一般ユーザにとっては敷居の高い作業となり、ブロックチェーンの技術を利用した取引であっても、現状では、柔軟な個人間取引を促進させることができるとは言い難い。
本願は、上記に鑑みてなされたものであって、ユーザ同士の柔軟な個人間取引を促進させることができる生成プログラム、生成装置及び生成方法を提供することを目的とする。
本願に係る生成プログラムは、生成を所望するスマートコントラクトに関する情報をユーザから受け付ける受付手順と、前記受付手順によって受け付けられた前記スマートコントラクトに関する情報に基づいて、ブロックチェーンを利用する所定のネットワーク上で執行可能なプログラムであるスマートコントラクトを生成する第1生成手順と、をコンピュータに実行させることを特徴とする。
実施形態の一態様によれば、ユーザ同士の柔軟な個人間取引を促進させることができるという効果を奏する。
図1は、実施形態に係る生成処理の一例を示す図(1)である。 図2は、実施形態に係る生成処理の一例を示す図(2)である。 図3は、実施形態に係る生成処理システムの構成例を示す図である。 図4は、実施形態に係る生成装置の構成例を示す図である。 図5は、実施形態に係るコントラクトテーブルの一例を示す図である。 図6は、実施形態に係るコントラクトデータを説明する図である。 図7は、実施形態に係るウェブサーバの構成例を示す図である。 図8は、実施形態に係る生成装置による処理手順を示すフローチャートである。 図9は、変形例に係る生成処理の一例を示す図(1)である。 図10は、変形例に係る生成処理の一例を示す図(2)である。 図11は、生成装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
以下に、本願に係る生成プログラム、生成装置及び生成方法を実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る生成プログラム、生成装置及び生成方法が限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
〔1.生成処理の一例〕
まず、図1及び図2を用いて、実施形態に係る生成処理の一例について説明する。図1は、実施形態に係る生成処理の一例を示す図(1)である。具体的には、図1では、本願に係る生成プログラムによって制御される情報処理端末である生成装置100によって、本願に係る生成処理が行われる流れについて説明する。より具体的には、図1では、本願に係る生成装置の一例である生成装置100によって、ブロックチェーンを利用するプラットフォームにおける商取引等の契約を示すプログラムであるスマートコントラクト(Smart Contract)が生成される処理の流れについて説明する。
実施形態では、ブロックチェーンを利用する所定のプラットフォームをブロックチェーンネットワーク50と称する。ブロックチェーンネットワーク50は、独自の仮想通貨システムを有しており、仮想通貨による取引が可能なネットワークであるものとする。例えば、ブロックチェーンネットワーク50は、イーサリアム(Ethereum)等の既存のプラットフォームであってもよい。
ブロックチェーンネットワーク50におけるスマートコントラクトとは、ブロックチェーンネットワーク50上において交わされる契約である。具体的には、スマートコントラクトは、デジタル形式で記述され、契約内容として設定された条件が達成された場合には、予め設定された内容に従い、自動的に処理が実行されるプログラムである。例えば、ユーザは、スマートコントラクトを生成することにより、ブロックチェーンネットワーク50において仮想通貨をやり取りするための商取引等を発生させることができる。
周知のように、ブロックチェーンは、中央管理システム等を必要とせずに情報の信頼性を保持する仕組みを有する。このため、スマートコントラクトを生成することで、ユーザは、商取引を仲介するサーバ等を介さずにユーザ間の商取引を行うことができる。例えば、ユーザは、商品名や、商品の価格や、取引に関してユーザが任意に設定する条件などを記述してスマートコントラクトを生成することができる。しかしながら、スマートコントラクトは、プラットフォームごとに独自の形式を有する場合もあり、一般ユーザが生成するには困難な点も多い。また、スマートコントラクトを生成したとしても、当該スマートコントラクトによって発生する商取引がユーザ間で充分に周知されなければ、取引が成立しない事態も起こり得る。
そこで、本願に係る生成装置100は、下記に説明する処理によって、一般ユーザであっても任意の条件を設定することが可能なスマートコントラクトを生成するとともに、生成したスマートコントラクトを他のユーザに周知させることを可能とする。以下、図1及び図2を用いて、本願に係る生成処理の流れについて説明する。なお、以下では、スマートコントラクトについて、単にコントラクトと表記する場合がある。
図1では、生成装置100と、ウェブサーバ30と、ブロックチェーンネットワーク50との間で情報のやり取りが行われる例を示す。生成装置100は、コントラクトを生成する情報処理端末である。図1に示す例では、商取引における売り手、すなわち、ブロックチェーンネットワーク50においてコントラクトを発生させて商品を売ることを所望するユーザU01によって、生成装置100が利用される。生成装置100は、例えば、スマートフォンやタブレット端末等である。
ウェブサーバ30は、ウェブページ等のサービスページをユーザに提供するサーバ装置である。具体的には、ウェブサーバ30は、情報処理端末からアクセスを受けた際に、ウェブページのデータを情報処理端末に提供する。情報処理端末は、ブラウザソフトウェア等を利用して、ウェブページを画面に表示する。
実施形態に係るウェブサーバ30は、例えば、SNS(Social Networking Service)を提供するサーバである。この場合、ウェブサーバ30は、ユーザから投稿されるメッセージを受信し、受信したメッセージを新たにユーザに提供するウェブページに反映させる。
ブロックチェーンネットワーク50は、ブロックチェーン技術を利用する所定のプラットフォームである。ブロックチェーンネットワーク50は、中央管理するシステム等を有さず、ネットワーク上に存在する複数のコンピュータによって処理される分散型システムを有する。また、ブロックチェーンネットワーク50は、独自の仮想通貨を有する。ブロックチェーンネットワーク50では、コントラクトの発生や、コントラクトの成立や、コントラクトの承認等の処理が行われた場合に、仮想通貨の移動が行われる。
図1に示す例において、ユーザU01は、コントラクトの生成を所望する。具体的には、ユーザU01は、自身が保持する商品に対価を設定し、ブロックチェーンネットワーク50において商品を売却するための商取引を示したコントラクトの生成を所望する。この場合、ユーザU01は、生成装置100に対して、自身が所望する商取引に関する情報を入力する。
生成装置100は、生成を所望するコントラクトに関する情報をユーザU01から受け付ける。例えば、生成装置100は、コントラクトに関する情報として、商取引における取引対象を識別する識別情報(例えば、商品名)や、取引対象に設定する価格情報や、取引における条件等の入力を受け付ける。この場合、生成装置100は、所定のユーザインターフェイス等を画面上に表示し、ユーザインターフェイスを介して、ユーザU01から入力を受け付けてもよい。
ブロックチェーンネットワーク50のコントラクトにおいて、取引対象に設定する価格や、取引における条件は、ユーザU01が任意に設定可能である。生成装置100は、例えば取引における条件として、取引先(商品の買い手となるユーザ)が過去に所定数の取引成立実績を有するか否か、取引先がユーザU01との間で過去に取引成立実績を有するか否か、取引先が過去に所定額以上の額の取引成立実績を有するか否か、などの条件を受け付ける。このような条件をコントラクトに含めることで、ユーザU01は、一定の信頼性を有するユーザとのみ取引を行うことができるため、取引の信頼性を高めることができる。
生成装置100は、ユーザから受け付けたコントラクトに関する情報に基づいて、コントラクトを生成する(ステップS11)。具体的には、生成装置100は、コントラクトに関する情報に基づいて、ブロックチェーンネットワーク50において利用可能なプログラミング言語で記載されたスクリプトを生成する。以下、生成装置100が生成したコントラクトに関するデータを「コントラクトデータ」と表記する場合がある。
そして、生成装置100は、生成したコントラクトデータをブロックチェーンネットワーク50上に送信(アップロード)する(ステップS12)。ブロックチェーンネットワーク50では、分散型システムを構築する複数のコンピュータによって、生成装置100から送信されたコントラクトデータが検証される(一般に、ブロックチェーン技術では、マイニングと呼ばれる)。コントラクトデータが検証されると、ブロックチェーンネットワーク50上に当該コントラクトが登録される。そして、ブロックチェーンネットワーク50上に、当該コントラクトを特定するためのアドレス(コントラクトアドレス)が発行される(ステップS13)。
生成装置100は、ブロックチェーンネットワーク50上で発行されたコントラクトアドレスを受信する(ステップS14)。生成装置100は、受信したコントラクトアドレスと生成したコントラクトとを対応付けて記憶する。
ここで、生成装置100は、生成したコントラクトとコントラクトアドレスとの情報を含む、所定のコードを生成する処理を行う。上述のように、ブロックチェーンネットワーク50上にコントラクトを登録した場合であっても、かかるコントラクトの情報が他のユーザに周知されなければ、当該コントラクトが成立する可能性が低くなる。そこで、生成装置100は、当該コントラクトを特定する情報であるコントラクトアドレスを含めることで、当該コントラクトに他のユーザがアクセスすることを可能とする所定のコードを生成する。
この場合、他のユーザをコントラクトにアクセスさせるためのコードは、多くのユーザの目に触れやすい態様で生成されることが望ましい。そこで、生成装置100は、所定のネットワークサービスにおいて掲出可能な態様でコードを生成する。例えば、生成装置100は、ウェブサーバ30が提供するSNSサービスにおいて、ユーザU01が投稿するメッセージに掲載できるような態様でコードを生成する。
具体的には、生成装置100は、所定のコードとして、サービスページへ掲出することが可能な掲出用QRコード(登録商標)を生成する(ステップS15)。生成装置100が生成するQRコードは、例えば、ブロックチェーンネットワーク50に送信されたスクリプト(コントラクトデータ)に対して発行されたコントラクトアドレスと、ブロックチェーンネットワーク50上で承認されたコントラクトに関する情報(商取引の内容)等を含む。
生成装置100は、ユーザU01の操作に従って、生成したQRコードをウェブサーバ30が提供するサービスページにアップロードする(ステップS16)。例えば、ユーザU01は、商品を宣伝する内容のメッセージとともに、QRコードをサービスページに投稿する。ウェブサーバ30は、アップされたQRコードを所定のサービスページに掲出する(ステップS17)。
このように、生成装置100は、生成を所望するコントラクトに関する情報をユーザU01から受け付ける。そして、生成装置100は、受け付けられたコントラクトに関する情報に基づいて、ブロックチェーンネットワーク50上で執行可能なコントラクトを生成する。さらに、生成装置100は、当該コントラクトに関する情報と、当該コントラクトにアクセスするためのコントラクトアドレスを含むQRコードを生成する。
すなわち、生成装置100は、ユーザU01に負担を掛けることなく、ユーザU01が所望するコントラクトを発生させることができる。また、生成装置100は、コントラクトを示すコードをサービスページに掲出可能な態様で生成することで、コントラクトを他のユーザに周知させる機会を増大させることができるので、個人間の取引を促進させることができる。
続いて、図2を用いて、生成装置100が生成したQRコードが他のユーザから利用される処理の流れについて説明する。図2は、実施形態に係る生成処理の一例を示す図(2)である。図2では、商取引において買い手となるユーザU02が、端末装置200を利用して、コントラクトに示された商取引を行う処理の流れについて説明する。
情報処理端末である端末装置200は、ユーザU02による操作に従い、ウェブサーバ30が提供するサービスページにアクセスする(ステップS21)。なお、端末装置200は、例えば、スマートフォンやタブレット端末等である。
ウェブサーバ30は、アクセスされたサービスページを端末装置200に配信する(ステップS22)。配信されたサービスページには、生成装置100によって生成されたQRコードが掲出されているものとする。
端末装置200は、ユーザU02によってサービスページに含まれるQRコードが選択された場合に、QRコードの情報を読み込む(ステップS23)。QRコードには、生成装置100が生成したコントラクトに対応するコントラクトアドレスが含まれる。このため、端末装置200は、QRコードがユーザU02から選択されたことを契機として、コントラクトアドレスが示すコントラクトにアクセスする。
端末装置200は、ブロックチェーンネットワーク50上におけるコントラクトにアクセスすることで、コントラクトに関する情報を取得する(ステップS24)。そして、端末装置200は、取得したコントラクトに関する情報を画面に表示する。例えば、端末装置200は、当該コントラクトにおける商品や、商品に設定された価格を表示する。
ここで、ユーザU02は、端末装置200に表示された商品を購入することを所望したとする。例えば、ユーザU02は、画面上に表示された商品の購入を示すボタン等を選択することにより、購入の意思を示す。端末装置200は、ユーザU02によって商品の購入操作が行われた場合に、商品の購入の要求をブロックチェーンネットワーク50に送信する(ステップS25)。
ブロックチェーンネットワーク50では、端末装置200が送信した商品の購入の要求が検証される。そして、要求の検証が済むと、当該コントラクトが成立したものとして、当該コントラクトが実行される(ステップS26)。このとき、生成装置100は、生成したコントラクトが実行された旨の通知を受信する。そして、通知を確認したユーザU01は、コントラクトに対応する商品をユーザU02に送る。
その後、ユーザU02は、ユーザU01から送られた商品を受領する。ユーザU02は、送られた商品とコントラクトに示される商品とが相違ないことを確認したのち、端末装置200を操作し、商品の受け取りの確認処理を行う(ステップS31)。具体的には、端末装置200は、商品に対応したコントラクトを示す画面において、商品の受領を示すボタン等がユーザU02から選択されることで、当該商品の受け取りの確認を示す情報を受信する。
端末装置200は、確認情報をブロックチェーンネットワーク50に送信する(ステップS32)。ブロックチェーンネットワーク50上では、端末装置200から送信された確認情報の検証が行われる。
そして、確認情報の検証が済むと、ブロックチェーンネットワーク50上において、コントラクトが成立する。そして、ブロックチェーンネットワーク50上において、コントラクトに設定された価格分の仮想通貨がユーザU02からユーザU01に移動する処理が実行される(ステップS33)。これにより、生成装置100によって生成されたコントラクトに関する一連の処理が終了する。なお、ステップS33における仮想通貨の移動処理は、種々の仮想通貨ごとに異なる方式が用いられてもよい。例えば、ユーザU02が購入の要求をしたときに、コントラクト上に価格分の仮想通貨が送金され(送金の記録がブロックチェーン上に記録され)、コントラクトが成立した場合に、コントラクト上からユーザU01に送金が行われるといった方式が用いられてもよい。
上述してきたように、生成装置100は、ユーザU01が所望する商取引のコントラクトを生成するとともに、コントラクトの内容を示すQRコードを生成する。これにより、生成装置100は、サービスページを閲覧する他のユーザであるユーザU02に、ユーザU01が生成したコントラクトに係る取引を周知することができる。このように、生成装置100によれば、ユーザ同士の柔軟な個人間取引を促進させることができる。
なお、生成装置100は、上述した処理を任意の手法で実現することができる。例えば、ユーザU01は、予め上記の生成処理を行う生成プログラムを、生成装置100で実行されるアプリケーション(アプリ)としてインストールしておいてもよい。この場合、生成装置100は、ユーザU01から上記アプリの起動操作を受けて、生成プログラムを実行する。また、端末装置200が行うQRコードの読み込みや、商品の購入の要求等の処理についても、専用のアプリによって実行されてもよい。また、生成プログラム自体は、種々の任意のプログラム言語によって記述されてもよい。以下、このような生成プログラムに従って、上述した生成処理を実行する生成装置100等について詳細に説明する。
〔2.生成処理システムの構成〕
まず、図3を用いて、実施形態に係る生成処理システム1の構成について説明する。図3は、実施形態に係る生成処理システム1の構成例を示す図である。図3に示すように、生成処理システム1は、生成装置100と、端末装置200と、ウェブサーバ30と、ブロックチェーンネットワーク50とを含む。生成装置100、端末装置200、ウェブサーバ30及びブロックチェーンネットワーク50は、ネットワークNを介して有線または無線により通信可能に接続される。なお、図3に示す生成処理システム1には、複数台の生成装置100や、複数台の端末装置200や、複数台のウェブサーバ30が含まれてもよい。また、生成処理システム1には、ブロックチェーンネットワーク50以外の、ブロックチェーンを利用する所定のプラットフォームが含まれてもよい。
生成装置100は、コントラクトの生成を所望するユーザから受け付けた情報に基づいて、コントラクトを生成する情報処理装置である。なお、生成装置100は、スマートフォンやタブレット端末に限られず、デスクトップ型PCや、ノート型PCや、PDA(Personal Digital Assistant)や、ウェアラブル端末等であってもよい。
端末装置200は、サービスページを閲覧したり、ブロックチェーンネットワーク50における商取引を利用したりすることを所望するユーザから利用される情報処理装置である。例えば、端末装置200は、デスクトップ型PCや、ノート型PCや、タブレット端末や、携帯電話機や、PDAや、ウェアラブル端末等である。
ウェブサーバ30は、ウェブページ等のサービスページを配信するウェブサーバである。例えば、ウェブサーバ30は、ポータルサイト、ニュースサイト、オークションサイト、天気予報サイト、ショッピングサイト、ファイナンス(株価)サイト、路線検索サイト、地図提供サイト、旅行サイト、飲食店紹介サイト、SNSサイト、ウェブブログなどに関連する各種情報を含むウェブページを生成装置100に配信する。
ウェブサーバ30によって配信されるウェブページは、例えば、HTMLにより記述されたHTMLファイルや、XML(Extensible Markup Language)により記述されたXMLファイル等により形成される。また、ウェブサーバ30によって配信されるウェブページには、広告取得命令が含まれてもよい。例えば、ウェブページを形成するHTMLファイル等には、所定の広告サーバのURL等が広告取得命令として記述される。この場合、生成装置100は、HTMLファイル等に記述されているURLにアクセスすることで、所定の広告サーバから広告コンテンツを取得する。
ブロックチェーンネットワーク50は、ブロックチェーン技術を利用する所定のプラットフォームである。上述のように、ブロックチェーンネットワーク50では、ネットワークN上にユーザがコントラクトを発生させることで、独自の仮想通貨を介した商取引等を行うことができる。
〔3.生成装置の構成〕
次に、図4を用いて、実施形態に係る生成装置100の構成について説明する。図4は、実施形態に係る生成装置100の構成例を示す図である。図4に示すように、生成装置100は、通信部110と、入力部120と、出力部125と、記憶部130と、制御部140とを有する。
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワークNと有線又は無線で接続され、端末装置200やウェブサーバ30との間で情報の送受信を行ったり、ブロックチェーンネットワーク50上に情報を送信したり、ブロックチェーンネットワーク50上の情報を受信したりする。
入力部120は、ユーザから各種操作を受け付ける入力装置である。例えば、入力部120は、キーボードやマウスや操作キー等によって実現される。出力部125は、各種情報を表示するための表示装置である。例えば、出力部125は、生成装置100の画面であり、液晶ディスプレイ等によって実現される。なお、生成装置100にタッチパネルが採用される場合には、入力部120と出力部125とは一体化される。
記憶部130は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部130は、コントラクトに関する情報が記憶されるデータテーブルとして、コントラクトテーブル131を有する。
図5に、コントラクトテーブル131に格納された情報の例を示す。図5は、実施形態に係るコントラクトテーブル131の一例を示す図である。図5に示した例では、コントラクトテーブル131は、「コントラクトID」、「コントラクトアドレス」、「商品ID」、「取引額」、「条件」、「QRコードデータ」、「取引成立」といった項目を有する。
「コントラクトID」は、コントラクトを識別するための識別情報を示す。「コントラクトアドレス」は、ブロックチェーンネットワーク50上においてコントラクトを特定するためのアドレスを示す。
「商品ID」は、コントラクトの取引対象である商品を識別するための識別情報を示す。「取引額」は、商品に対して設定される価格であり、コントラクトの成立に対して仮想通貨の移動が行われる額を示す。なお、図5に示す取引額の数値の単位は、ブロックチェーンネットワーク50で扱われる仮想通貨の単位であるものとする。
「条件」は、取引においてユーザが任意に設定する条件を示す。「QRコードデータ」は、コントラクトが生成され、コントラクトアドレスが発行された後に、生成装置100によって生成されるQRコードのデータを示す。QRコードには、コントラクトの内容や、コントラクトアドレスや、条件等の情報が含まれる。
なお、QRコードには、上記以外の種々の情報が含まれてもよい。例えば、QRコードには、商品を詳細に紹介するページ(例えば、商品の売り手であるユーザが提供するサービスページ)へのリンク等が含まれてもよい。例えば、QRコードには、商品の画像データが保持されているページへのリンク等が含まれてもよい。
「取引成立」は、コントラクトテーブル131に保持されているコントラクトについて取引が成立したか否かを示す。例えば、「取引成立」の項目が「0」であれば、まだ取引が成立していないことを示す。一方、「取引成立」の項目が「1」であれば、取引が成立したことを示す。
すなわち、図5に示した情報の一例では、コントラクトID「C10」によって識別されるコントラクトは、コントラクトアドレス「A10」であり、商品ID「G10」によって識別される商品を取引対象とするコントラクトであることを示している。また、当該コントラクトにおける取引額は「100」であり、「取引成立10件以上」のユーザや、「累計取引額1000以上」のユーザを取引の相手とするような条件が設定されていることを示している。さらに、当該コントラクトにはQRコードが生成されており、また、当該コントラクトは、まだ取引が成立していないことを示している。
図4に戻って、説明を続ける。制御部140は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、内部の記憶装置に記憶されている各種プログラム(例えば、本願に係る生成プログラム)がRAMを作業領域として実行されることにより実現される。また、制御部140は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
図4に示すように、制御部140は、受付部141と、第1生成部142と、受信部143と、表示制御部144と、第2生成部145と、格納部146と、送信部147とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部140の内部構成は、図4に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部140が有する各処理部の接続関係は、図4に示した接続関係に限られず、他の接続関係であってもよい。また、制御部140が有する各処理部は、本願に係る生成プログラムによって実行される各手順に対応する。例えば、受信部141が実行する処理は、生成プログラムが生成装置100に実行させる受信手順に対応する。
受付部141は、生成を所望するコントラクトに関する情報をユーザから受け付ける。例えば、受付部141は、所定のユーザインターフェイス等を介して、コントラクトに関する情報をユーザから受け付ける。
例えば、受付部141は、コントラクトに関する情報として、取引対象を識別する識別情報、取引対象の詳細データへのリンク先を示す情報、取引における価格情報、又は、取引における条件の少なくともいずれか一つの情報を受け付ける。
具体的には、受付部141は、取引対象となる商品の商品名や、取引対象とするサービスの名称や、商品の画像データへのリンク情報や、取引対象に設定した仮想通貨の額などを受け付ける。
また、受付部141は、取引における条件として、取引先が過去に所定数の取引成立実績を有すること、取引先がユーザとの間で過去に取引成立実績を有すること、又は、取引先が過去に所定額以上の額の取引成立実績を有すること、の少なくともいずれか一つを受け付けてもよい。これにより、受付部141は、一定の信頼を有するユーザのみを取引相手とするようなコントラクトに関する条件を受け付けることができる。
第1生成部142は、受付部141によって受け付けられたコントラクトに関する情報に基づいて、ブロックチェーンを利用する所定のネットワーク上で執行可能なコントラクトを生成する。より具体的には、第1生成部142は、ユーザが生成を所望するコントラクトにおけるスクリプト(コントラクトデータ)を生成する。
ここで、図6を用いて、第1生成部142が生成するコントラクトデータの概要を説明する。図6は、実施形態に係るコントラクトデータを説明する図である。図6では、ブロックチェーンネットワーク50で扱われるデータであるブロック60を概念的に示している。
図6に示すように、ブロック60は、タイムスタンプ61と、前ブロックハッシュ値62とを含む。また、ブロック60には、コントラクト63が含まれる。コントラクト63は、コントラクトのソースコードであり、例えば、コントラクトアドレスや、コントラクトで利用するメソッドや、仮想通貨の残高データ等の情報が含まれる。第1生成部142は、受付部141が受け付けた情報に基づいて、コントラクト63に対応する箇所のスクリプトを生成する。なお、図6に示すコントラクト63内には、複数のコントラクトが含まれてもよい。
そして、第1生成部142によって生成されたコントラクトデータがブロックチェーンネットワーク50に送信された場合に、図6に示すブロック60のようなデータ形式に変換され、ブロックチェーンネットワーク50上でブロック60の検証が行われる。なお、図6で示したブロック60の概念図は一例であり、第1生成部142は、ブロックチェーンを利用したプラットフォームごとに、種々のデータ形式に対応したコントラクトデータを生成するようにしてもよい。
なお、第1生成部142は、コントラクトを生成した生成元を識別するための識別情報を含むコントラクトを生成するようにしてもよい。例えば、第1生成部142は、コントラクト(スクリプト)を生成した生成装置100や、本願に係る生成プログラム自体を作成した作成者や、生成プログラムをアプリとして提供した提供元等を識別する情報を含むスクリプトを生成する。これにより、当該スクリプトに対応するコントラクトが、一定の信頼のおける生成元から提供されたプログラムによって生成されたものであることを証明することができる。なお、かかる識別情報は、例えば、生成プログラムをアプリとして提供した提供元が発行する秘密鍵等によって署名される署名情報などであってもよい。
受信部143は、各種情報を受信する。例えば、受信部143は、ブロックチェーンネットワーク50でコントラクトが登録された情報や、発行されたコントラクトアドレスに関する情報を受信する。
表示制御部144は、出力部125における表示を制御する。例えば、表示制御部144は、受信部143によってコントラクトアドレスが受信された場合に、QRコードの生成を所望するか否かを示すボタン等を出力部125(すなわち、生成装置100の画面上)に表示させる制御を行う。ユーザが表示されたボタンを選択することを契機として、後述する第2生成部145は、QRコードの生成処理を行う。
なお、表示制御部144は、受付部141による受付処理や、後述する送信部147による送信処理等においても、適宜、画面上にユーザから選択を受けるためのボタン等を表示するような制御を行ってもよい。すなわち、表示制御部144は、生成装置100における各種のユーザインターフェイスに関する処理を行ってもよい。
第2生成部145は、ブロックチェーンネットワーク50上に送信されたコントラクトに対してブロックチェーンネットワーク50から発行されるコントラクトアドレスと、ブロックチェーンネットワーク50上で承認されたコントラクトに関する情報とを含むコード(code)を生成する。
例えば、第2生成部145は、上記の情報を含むQRコードを生成する。なお、第2生成部145が生成するコードは、QRコードに限られない。例えば、第2生成部145は、バーコードなどの2次元コードや、情報が埋め込まれた画像など、所定の情報量を含むことができるタグであれば、いずれを生成してもよい。
なお、第2生成部145は、所定のネットワークサービスにおいて掲出可能な態様でコードを生成する。例えば、第2生成部145は、ユーザの操作に従い、ユーザがSNSサービスに投稿を行うことができるような態様(データ形式)でコードを生成する。
また、第2生成部145によって生成されるコードが掲出されるページはSNSページに限られない。すなわち、第2生成部145によって生成されるコードは、ウェブサーバ30から提供される各種サービスページに掲出可能である。例えば、第2生成部145は、ユーザが利用するウェブログサービスや、オークションサービス等において、ユーザから各サービスへ投稿可能な態様でコードを生成するようにしてもよい。
格納部146は、各種情報を記憶部130に格納する。例えば、格納部146は、第1生成部142によって生成されたコントラクトデータや、受信部143によって受信されたコントラクトアドレスや、第2生成部145によって生成されたQRコード等を、各々対応付けて、コントラクトテーブル131に格納する。
送信部147は、各種情報を送信する。例えば、送信部147は、第1生成部142によって生成されたスマートコントラクトに関するデータ(コントラクトデータ)をブロックチェーンネットワーク50上に送信する。また、送信部147は、ユーザの操作に従って、第2生成部145によって生成されたQRコードをウェブサーバ30に送信する。
〔4.ウェブサーバの構成〕
次に、図7を用いて、実施形態に係るウェブサーバ30の構成について説明する。図7は、実施形態に係るウェブサーバ30の構成例を示す図である。図7に示すように、ウェブサーバ30は、通信部31と、コンテンツ記憶部32と、制御部33とを有する。
通信部31は、例えば、NIC等によって実現される。そして、通信部31は、ネットワークNと有線または無線で接続され、生成装置100や端末装置200との間で情報の送受信を行う。
コンテンツ記憶部32は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。そして、コンテンツ記憶部32は、サービスページの一例であるウェブページを記憶する。例えば、コンテンツ記憶部32は、ウェブページを形成するHTMLファイルや、ウェブページに表示される静止画像や動画像を記憶する。なお、コンテンツ記憶部32に記憶されるウェブページには、ウェブページ上に表示させる広告コンテンツを取得するための広告取得命令が含まれる場合がある。
制御部33は、例えば、CPUやMPU等によって、ウェブサーバ30内部の記憶装置に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。また、制御部33は、例えば、ASICやFPGA等の集積回路により実現される。
図7に示すように、制御部33は、受付部34と、配信部35とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部33の内部構成は、図7に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部33が有する各処理部の接続関係は、図7に示した接続関係に限られず、他の接続関係であってもよい。
受付部34は、生成装置100や端末装置200からウェブページの取得要求を受け付ける。例えば、受付部34は、ウェブページの取得要求として、HTTPリクエストを受け付ける。
また、受付部34は、生成装置100からメッセージの投稿等があった場合、すなわち、生成装置100からアップロードされた情報がある場合、かかる情報を受け付ける。例えば、受付部34は、生成装置100によって生成されたQRコードを含むメッセージを受け付ける。
配信部35は、受付部34によってウェブページの取得要求が受け付けられた場合に、ウェブページを生成装置100や端末装置200に配信する。具体的には、配信部35は、コンテンツ記憶部32から取得要求対象のウェブページを取得し、取得したウェブページを生成装置100や端末装置200に配信する。また、配信部35は、生成装置100によって生成されたQRコードを含むメッセージを受け付けている場合には、当該受け付けた情報が反映されたウェブページを端末装置200に配信する。
〔5.生成装置の処理フロー〕
次に、図8を用いて、実施形態に係る生成装置100による処理の手順について説明する。図8は、実施形態に係る生成装置100による処理手順を示すフローチャートである。
図8に示すように、生成装置100は、ユーザからコントラクトに関する情報を受け付けたか否かを判定する(ステップS101)。コントラクトに関する情報を受け付けていない場合には、生成装置100は、受け付けるまで待機する(ステップS101;No)。
一方、コントラクトに関する情報を受け付けた場合には(ステップS101;Yes)、生成装置100は、コントラクトを生成する(ステップS102)。そして、生成装置100は、生成したコントラクトデータをブロックチェーンネットワーク50に送信する(ステップS103)。
その後、生成装置100は、ブロックチェーンネットワーク50で登録されたコントラクトに対応するコントラクトアドレスを受信する(ステップS104)。そして、生成装置100は、コントラクトに関する情報とコントラクトアドレスとを含むQRコードを生成する(ステップS105)。
〔6.変形例〕
上述した実施形態に係る処理は、上記実施形態以外にも種々の異なる形態にて実施されてもよい。以下では、生成処理システム1の他の実施形態について説明する。
〔6−1.サーバによる処理〕
上記実施形態では、生成装置100が、ユーザU01の有する端末であり、例えば、端末で動作するアプリを介して生成処理を行う例を示した。しかし、生成装置100は、端末ではなく、ネットワーク上に設置されるサーバであってもよい。この点について、図9及び図10を用いて説明する。図9は、変形例に係る生成処理の一例を示す図(1)である。
変形例に係る生成装置100は、図4で示した構成と同様の構成を有するものとする。また、生成装置100は、サーバとして機能する場合、ウェブサーバ30と同様に、サービスページを提供する処理を行ってもよい。この場合、生成装置100は、図4の構成に加えて、図7に示したウェブサーバ30と同様の構成をさらに有してもよい。
生成装置100がサーバである場合、商品の売り手(出品者)であるユーザU21は、自身が利用する出品者端末300を介して、コントラクトの生成を生成装置100に要求する。
すなわち、出品者端末300は、ユーザU21の操作に従い、出品を所望する商品や、商品の対価や、条件などの出品データを生成装置100に送信する(ステップS41)。言い換えれば、出品者端末300は、ユーザが生成を所望するコントラクトに関する情報を生成装置100に送信する。
生成装置100は、受信した情報に基づいて、コントラクトを生成する(ステップS42)。そして、生成装置100は、生成したコントラクトに関するコントラクトデータをブロックチェーンネットワーク50に送信する(ステップS43)。ブロックチェーンネットワーク50上では、コントラクトの登録、及び、コントラクトアドレスの発行が行われる(ステップS44)。そして、生成装置100は、ブロックチェーンネットワーク50上で発行されたコントラクトアドレスを受信する(ステップS45)。
そして、生成装置100は、受信したコントラクトアドレスと生成したコントラクトとを対応付けて、当該コントラクトをサービスページに掲出する。すなわち、生成装置100は、サービスページにユーザU21が出品する商品をリスティングする(ステップS46)。例えば、生成装置100が、個人間の取引を行うためのショッピングサイトを提供する場合、ユーザU21が出品した商品は、当該ショッピングサイトに出品された商品としてリスティングされる。この場合、生成装置100は、コントラクトに対応するQRコードについては、生成しなくてもよい。
続いて、図10を用いて、当該商品がユーザU02から購入される場合の流れについて説明する。図10は、変形例に係る生成処理の一例を示す図(2)である。
端末装置200は、ユーザU02の操作に従い、リスティングされた商品の購入を要求する(ステップS51)。生成装置100は、端末装置200から購入の要求を受信した場合、かかる購入要求をブロックチェーンネットワーク50上に送信する(ステップS52)。ブロックチェーンネットワーク50では、当該購入要求に対応したコントラクトが実行される(ステップS53)。生成装置100は、ブロックチェーンネットワーク50上でコントラクトが実行されたことを示す通知を受信する(ステップS54)。
そして、生成装置100は、コントラクトが実行されたことを示す通知を出品者である出品者端末300に送信する(ステップS55)。通知を受領した出品者であるユーザU21は、ユーザU02に商品を送る。
その後、ユーザU02は、ユーザU21から送られた商品とコントラクトに示される商品とが相違ないことを確認したのち、端末装置200を操作し、商品の受け取りの確認処理を行う(ステップS61)。端末装置200は、確認情報を生成装置100に送信する(ステップS62)。生成装置100は、端末装置200から受信した確認情報をブロックチェーンネットワーク50に送信する(ステップS63)。ブロックチェーンネットワーク50上では、生成装置100から送信された確認情報の検証が行われる。
そして、確認情報の検証が済むと、ブロックチェーンネットワーク50上において、コントラクトが成立する。そして、ブロックチェーンネットワーク50上において、コントラクトに設定された価格分の仮想通貨がユーザU02からユーザU21に移動する処理が実行される(ステップS64)。これにより、変形例に係る生成装置100によって生成されたコントラクトに関する一連の処理が終了する。
上述してきたように、生成装置100で実行される生成プログラムは、端末内のアプリとして機能するのみならず、生成装置100がサーバである場合であっても、同様の機能を果たすことができる。これにより、生成装置100は、生成処理システム1が種々の変形を含む場合であっても、ユーザ同士の柔軟な個人間取引を促進させることができる。
〔6−2.サービスページ〕
上記実施形態では、生成装置100の生成したQRコードがサービスページに掲出される例を示した。しかし、QRコードは、どのような媒体に掲出されてもよい。
例えば、QRコードは、スマートフォンに提供されるアプリや、サービスページに含まれる広告枠に表示される広告コンテンツとして掲出されてもよい。この場合、ユーザは、広告コンテンツとして表示されているQRコードを選択したり、読み込ませたりすることにより、当該QRコードに対応するコントラクトにアクセスすることができる。この場合、生成処理システム1には、ウェブサーバ30の他に、広告配信サーバ等が含まれてもよい。
〔6−3.コントラクト〕
ブロックチェーンネットワーク50において、コントラクトはユーザの任意に設定可能であることについて説明した。具体的には、実施形態では、ユーザが、所望する商品を自由に選択してコントラクトを生成させたり、対価の額を設定させたりすることが可能な点について説明した。
ここで、コントラクトには、上記の情報以外にも、ユーザが任意に設定を行うことが可能である。例えば、コントラクトには、取引が行われる期限や、取引に関する送料や、キャンセルに関する条件等が記述されてもよい。すなわち、生成装置100は、かかる情報をコントラクトに関する情報として受け付け、当該情報を反映させたコントラクトを生成する。これにより、生成装置100は、ユーザの希望に応じたコントラクトを生成することができる。なお、上記の情報は一例であり、生成装置100は、例えば、一般に個人間の取引や、オークションサイト等で設定される各種情報について、ユーザから任意に受け付けるようにしてもよい。
〔6−4.条件〕
生成装置100は、コントラクトに関する条件として、上記実施形態で例示した以外の条件を受け付けてもよい。例えば、生成装置100は、取引の相手となるユーザの属性情報を条件として受け付けてもよい。例えば、生成装置100は、ユーザの年齢や、性別や、居住地等の条件を受け付けてもよい。これにより、生成装置100を利用するユーザは、取引の相手に関する条件を任意に指定することができるため、より安心して個人間の売買を行うことができる。
〔6−5.過去の情報の利用〕
生成装置100は、コントラクトの生成に際して、過去に生成されたコントラクトに関する情報に基づいて所定の処理を行ってもよい。例えば、生成装置100は、これまでに各端末等において生成されたコントラクトの履歴情報を取得する。具体的には、生成装置100は、ネットワークNを介して、ユーザが出品しようとしている商品と同じ商品が出品された際のコントラクトに関する情報を取得する。
そして、生成装置100は、当該商品に関するコントラクトをユーザが生成させようとする場合に、過去のコントラクトに関する情報をレコメンドとして表示する。例えば、生成装置100は、過去のコントラクトにおける当該商品に設定された対価や、取引が成立した際の対価の額等の情報をユーザに提供する。これにより、生成装置100は、取引に不慣れなユーザから利用される場合であっても、適切な条件が設定されたコントラクトを生成することができる。このように、生成装置100は、ユーザビリティの高い生成処理を行うことができる。
〔6−6.取引履歴の利用〕
上記実施形態において、生成装置100は、取引における条件として、取引先が過去に所定数の取引成立実績を有すること、取引先がユーザとの間で過去に取引成立実績を有すること、又は、取引先が過去に所定額以上の額の取引成立実績を有すること、の少なくともいずれか一つを受け付けてもよいことを示した。
生成装置100は、このように取引履歴を利用した条件を受け付ける場合、ブロックチェーン上における取引履歴を確認する。例えば、ブロックチェーンに係る技術において、生成装置100は、ブロックをさかのぼって走査し取引先の実績を確認する手法により、過去の取引実績を確認することができる。
具体的には、生成装置100は、取引における条件を受け付けると、ブロックチェーン上で取引先の過去のトランザクションのブロックを走査し、所定の取引実績があるかどうかをチェックするソースコード(スクリプト)を生成する。例えば、生成装置100は、「10回以上取引を成立させていること」が条件であるときには、トランザクションをさかのぼり、10回以上の取引を成立させているという条件を満たした場合に、当該ユーザを一定の信頼を有するユーザと判定する。この場合、生成装置100は、当該ユーザに対しては、例えば取引における購入ボタンをアクティブにするような処理を行うことで、購入を許可するユーザとして判定する。一方、条件を満たしていないユーザに対しては、生成装置100は、ユーザからの購入要求を非アクティブにしたり、QRコードを読めなくしたり、商品リスティングの対象外としたりするような処理を行うことができる。
すなわち、生成装置100に係る第1生成部142は、受付部141が受け付けた条件に応じて、ブロックチェーンを利用する所定のネットワーク上におけるブロックを走査することで当該条件を満たすか否かを判定するためのスクリプトを含むコントラクトを生成する。これにより、生成装置100は、受け付けた条件を満たすユーザを精度良く判定することができる。なお、ブロックを走査するためのスクリプト(プログラム)に関しては、ブロックチェーンを利用したプラットフォームごとの既存のスクリプトを利用してもよいし、プラットフォームの仕様に適合するスクリプトをリアルタイムに生成するようにしてもよい。
なお、生成装置100は、上記条件の判定について、ブロックチェーン上のトランザクションを走査するのではなく、アプリ上で判定を行ってもよい。例えば、ユーザが、生成装置100が提供するアプリを介して取引を行う場合、アプリ上で取引履歴を記憶するものとする。生成装置100は、ユーザが商品を出品する場合に、取引相手が10回以上取引成立させていることを条件に設定した場合には、取引相手が使用する端末の取引履歴を参照させ、10回以上取引を成立させているという条件を満たすか否かを判定する。条件を満たした場合、生成装置100は、当該取引における購入ボタンをアクティブにするといった処理を行う。
すなわち、生成装置100に係る第1生成部142は、受付部141が受け付けた条件に応じて、取引先が利用する端末装置に記録された取引に関する履歴に基づき当該条件を満たすか否かを判定するためのスクリプトを含むスマートコントラクトを生成する。かかる手法によっても、生成装置100は、受け付けた条件を満たすユーザを精度良く判定することができる。
〔6−7.プログラム〕
上述してきた生成装置100による処理は、本願に係る生成プログラムにより実現されることを説明した。例えば、生成装置100に係る第1生成部142は、生成装置100が有するCPUやMPU等によって、生成プログラムがRAMを作業領域として、生成プログラムに係る第1生成手順が実行されることにより実現される。生成装置100に係る他の処理部も同様に、生成プログラムによる各手順が実行されることにより実現される。
ここで、本願に係る生成装置100が実行する処理は、必ずしも全てが生成プログラムによって実現されるものでなくてもよい。例えば、表示制御部144が情報を表示する処理等は、生成装置100が有するOS(Operating System)によって実行されてもよい。すなわち、生成プログラム自体が、上述してきたような生成装置100で実行される処理を全て実行するのではなく、生成プログラムは、OSによって実行されたり、取得されたりしたデータを利用して、上述してきた処理を実現するようにしてもよい。
〔7.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図4に示した受付部141と受信部143とは統合されてもよい。
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔8.ハードウェア構成〕
また、上述してきた実施形態に係る生成装置100、端末装置200、出品者端末300及びウェブサーバ30は、例えば図11に示すような構成のコンピュータ1000によって実現される。以下、生成装置100を例に挙げて説明する。図11は、生成装置100の機能を実現するコンピュータ1000の一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
CPU1100は、ROM1300又はHDD1400に格納されたプログラム(例えば、本願に係る生成プログラム)に基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を記憶する。通信インターフェイス1500は、ネットワークNを介して他の機器からデータを受信してCPU1100へ送り、また、ネットワークNを介してCPU1100が生成したデータを他の機器へ送信する。
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、入出力インターフェイス1600を介して生成したデータを出力装置へ出力する。
メディアインターフェイス1700は、記録媒体1800に格納されたプログラム又はデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が実施形態に係る生成装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部140の機能を実現する。また、HDD1400には、生成装置100が備える記憶部130内のデータが格納される。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
〔9.効果〕
上述してきたように、実施形態に係る生成プログラムは、生成を所望するスマートコントラクトに関する情報をユーザから受け付ける受付手順と、受付手順によって受け付けられたスマートコントラクトに関する情報に基づいて、ブロックチェーンを利用する所定のネットワーク上(例えば、ブロックチェーンネットワーク50)で執行可能なプログラムであるスマートコントラクトを生成する第1生成手順と、を生成装置100に実行させる。
このように、実施形態に係る生成プログラムは、ユーザから受け付けた情報に基づいてスマートコントラクトを生成することができるので、プログラム言語等を扱うことのできないユーザに対しても、ユーザが所望するコントラクトを生成することができる。すなわち、生成プログラムは、ユーザがブロックチェーンネットワーク50に参加する敷居を下げることにより、ユーザ同士の柔軟な個人間取引を促進させることができる。
また、実施形態に係る生成プログラムは、第1生成手順によって生成されたスマートコントラクトを所定のネットワーク上に送信する送信手順と、送信手順によって送信されたスマートコントラクトに対して所定のネットワークから発行されるアドレスと、所定のネットワーク上で承認されたスマートコントラクトに関する情報とを含むコード(code)を生成する第2生成手順と、をさらに生成装置100に実行させる。
このように、実施形態に係る生成プログラムは、第1生成手順によって生成されたコントラクトに関するアドレス情報を含む所定のコードをさらに生成する。これにより、生成プログラムは、単にコントラクトを発生させるのみならず、当該コントラクトを他のユーザに周知する手段をユーザに提供することができる。
また、第2生成手順は、所定のネットワークサービスにおいて掲出可能な態様でコードを生成する。
このように、実施形態に係る生成プログラムは、2次的に活用することができる態様でコードを生成する。例えば、生成プログラムは、所定のネットワークサービスに掲出可能なQRコードを生成する。これにより、生成プログラムは、生成したコントラクトをより他のユーザの目に触れやすくすることができるため、個人間の取引を促進させることができる。
また、第2生成手順は、ユーザが利用するウェブログサービス、SNS(Social Networking Service)、又は、オークションサービスのいずれかにおいて、ユーザから各サービスへ投稿可能な態様でコードを生成する。
このように、実施形態に係る生成プログラムによれば、例えばウェブサーバ30等から提供される各種サービスページに投稿することが可能なコードを生成することができる。すなわち、生成プログラムによれば、ユーザは、所望するサービスに商品を宣伝するメッセージとともにQRコードを投稿するなど、よりコントラクトを周知させる行動を採りやすくなる。これにより、生成プログラムは、個人間の取引を促進させることができる。
また、第1生成手順は、スマートコントラクトを生成した生成元を識別するための識別情報を含むスマートコントラクトを生成する。
このように、実施形態に係る生成プログラムは、スマートコントラクトを生成した生成装置100や、本願に係る生成プログラムを作成した作成者や、生成プログラムをアプリとして提供した提供元等を識別する情報を含むスマートコントラクトを生成してもよい。これにより、生成プログラムは、生成されたコントラクトが一定の信頼のおける生成元から提供されたプログラムによって生成されたものであることを証明することができる。このため、生成プログラムは、よりユーザにとって信頼感のあるコントラクトを生成することができる。
また、受付手順は、スマートコントラクトに関する情報として、取引対象を識別する識別情報、取引対象の詳細データへのリンク先を示す情報、取引における価格情報、又は、取引における条件の少なくともいずれか一つの情報を受け付ける。
このように、実施形態に係る生成プログラムによれば、ユーザが任意に設定可能な種々の情報を受け付けることができる。これにより、生成プログラムは、ユーザの所望する内容を的確に反映させたコントラクトを生成することができる。
また、受付手順は、取引における条件として、取引先が過去に所定数の取引成立実績を有すること、取引先がユーザとの間で過去に取引成立実績を有すること、又は、取引先が過去に所定額以上の額の取引成立実績を有すること、の少なくともいずれか一つを受け付ける。
このように、実施形態に係る生成プログラムによれば、取引に関する任意の条件を受け付けることができる。すなわち、生成プログラムによれば、売り手となるユーザは、例えば過去に取引を安全に行うことができた買い手や、所定額の取引成立実績があるような安全性の高い買い手のみを取引の相手として指定するようなスクリプトを簡単に生成させることができる。これにより、生成プログラムは、安心感のある取引をユーザに提供できるため、ユーザ間の取引を促進させることができる。
また、第1生成手順は、受付手順が受け付けた条件に応じて、ブロックチェーンを利用する所定のネットワーク上におけるブロックを走査することで当該条件を満たすか否かを判定するためのスクリプトを含むスマートコントラクトを生成する。
このように、実施形態に係る生成プログラムによれば、ブロックチェーン上を走査するプログラムを生成して取引履歴等を確認することができるため、受け付けた条件を満たすユーザを精度良く判定することができる。
また、第1生成手順は、受付手順が受け付けた条件に応じて、取引先が利用する端末装置に記録された取引に関する履歴に基づき当該条件を満たすか否かを判定するためのスクリプトを含むスマートコントラクトを生成する。
このように、実施形態に係る生成プログラムによれば、購入を要求するユーザが利用する端末装置の履歴等を利用して、条件の判定を行う。例えば、生成プログラムは、購入を要求するユーザが利用する端末装置にインストールされたアプリの機能を利用して取引履歴を確認する。これにより、生成プログラムは、受け付けた条件を満たすユーザを精度良く判定することができる。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、第1生成部は、第1生成手段や第1生成回路に読み替えることができる。
1 生成処理システム
30 ウェブサーバ
50 ブロックチェーンネットワーク
100 生成装置
110 通信部
120 入力部
125 出力部
130 記憶部
131 コントラクトテーブル
140 制御部
141 受付部
142 第1生成部
143 受信部
144 表示制御部
145 第2生成部
146 格納部
147 送信部
200 端末装置
300 出品者端末

Claims (7)

  1. 生成を所望するスマートコントラクトに関する情報として当該スマートコントラクトにおける取引の条件をユーザから受け付ける受付手順と、
    前記受付手順によって受け付けられた前記スマートコントラクトに関する情報に基づいて、ブロックチェーンを利用する所定のネットワーク上で執行可能なプログラムであるスマートコントラクトであって、当該所定のネットワーク上におけるブロックを走査することで前記ユーザから受け付けた条件を満たすか否かを判定するためのスクリプトを含むスマートコントラクトを生成し、生成されたスマートコントラクトを記憶部に格納する第1生成手順と、
    前記第1生成手順によって記憶部に格納されたスマートコントラクトを前記所定のネットワーク上に送信する送信手順と、
    前記送信手順によって送信されたスマートコントラクトに対して前記所定のネットワークから発行されるアドレスと、前記所定のネットワーク上で承認された前記スマートコントラクトに関する情報とを含むコード(code)であって、前記ユーザが利用するウェブログサービス、SNS(Social Networking Service)、又は、オークションサービスのいずれかにおいて、当該ユーザから各サービスへ投稿可能な態様のコードを生成する第2生成手順と、
    をコンピュータに実行させることを特徴とする生成プログラム。
  2. 前記第1生成手順は、
    前記スマートコントラクトを生成した生成元を識別するための識別情報を含むスマートコントラクトを生成する、
    ことを特徴とする請求項1に記載の生成プログラム。
  3. 前記受付手順は、
    前記スマートコントラクトに関する情報として、取引対象を識別する識別情報、取引対象の詳細データへのリンク先を示す情報、取引における価格情報、又は、取引における条件の少なくともいずれか一つの情報を受け付ける、
    ことを特徴とする請求項1又は2に記載の生成プログラム。
  4. 前記受付手順は、
    前記取引における条件として、取引先が過去に所定数の取引成立実績を有すること、取引先が前記ユーザとの間で過去に取引成立実績を有すること、又は、取引先が過去に所定額以上の額の取引成立実績を有すること、の少なくともいずれか一つを受け付ける、
    ことを特徴とする請求項3に記載の生成プログラム。
  5. 前記第1生成手順は、
    前記受付手順が受け付けた条件に応じて、前記取引先が利用する端末装置に記録された取引に関する履歴に基づき当該条件を満たすか否かを判定するためのスクリプトを含むスマートコントラクトを生成する、
    ことを特徴とする請求項4に記載の生成プログラム。
  6. 生成を所望するスマートコントラクトに関する情報として当該スマートコントラクトにおける取引の条件をユーザから受け付ける受付部と、
    前記受付部によって受け付けられた前記スマートコントラクトに関する情報に基づいて、ブロックチェーンを利用する所定のネットワーク上で執行可能なプログラムであるスマートコントラクトであって、当該所定のネットワーク上におけるブロックを走査することで前記ユーザから受け付けた条件を満たすか否かを判定するためのスクリプトを含むスマートコントラクトを生成し、生成されたスマートコントラクトを記憶部に格納する第1生成部と、
    前記第1生成部によって記憶部に格納されたスマートコントラクトを前記所定のネットワーク上に送信する送信部と、
    前記送信部によって送信されたスマートコントラクトに対して前記所定のネットワークから発行されるアドレスと、前記所定のネットワーク上で承認された前記スマートコントラクトに関する情報とを含むコード(code)であって、前記ユーザが利用するウェブログサービス、SNS(Social Networking Service)、又は、オークションサービスのいずれかにおいて、当該ユーザから各サービスへ投稿可能な態様のコードを生成する第2生成部と、
    を備えたことを特徴とする生成装置。
  7. コンピュータが実行する生成方法であって、
    生成を所望するスマートコントラクトに関する情報として当該スマートコントラクトにおける取引の条件をユーザから受け付ける受付工程と、
    前記受付工程によって受け付けられた前記スマートコントラクトに関する情報に基づいて、ブロックチェーンを利用する所定のネットワーク上で執行可能なプログラムであるスマートコントラクトであって、当該所定のネットワーク上におけるブロックを走査することで前記ユーザから受け付けた条件を満たすか否かを判定するためのスクリプトを含むスマートコントラクトを生成し、生成されたスマートコントラクトを記憶部に格納する第1生成工程と、
    前記第1生成工程によって記憶部に格納されたスマートコントラクトを前記所定のネットワーク上に送信する送信工程と、
    前記送信工程によって送信されたスマートコントラクトに対して前記所定のネットワークから発行されるアドレスと、前記所定のネットワーク上で承認された前記スマートコントラクトに関する情報とを含むコード(code)であって、前記ユーザが利用するウェブログサービス、SNS(Social Networking Service)、又は、オークションサービスのいずれかにおいて、当該ユーザから各サービスへ投稿可能な態様のコードを生成する第2生成工程と、
    を含んだことを特徴とする生成方法。
JP2016170013A 2016-08-31 2016-08-31 生成プログラム、生成装置及び生成方法 Active JP6703918B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016170013A JP6703918B2 (ja) 2016-08-31 2016-08-31 生成プログラム、生成装置及び生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016170013A JP6703918B2 (ja) 2016-08-31 2016-08-31 生成プログラム、生成装置及び生成方法

Publications (2)

Publication Number Publication Date
JP2018036893A JP2018036893A (ja) 2018-03-08
JP6703918B2 true JP6703918B2 (ja) 2020-06-03

Family

ID=61566508

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016170013A Active JP6703918B2 (ja) 2016-08-31 2016-08-31 生成プログラム、生成装置及び生成方法

Country Status (1)

Country Link
JP (1) JP6703918B2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6931999B2 (ja) 2017-02-06 2021-09-08 株式会社日立製作所 信用度管理システムおよび信用度管理方法
CN111861433B (zh) 2018-03-30 2024-04-02 创新先进技术有限公司 基于区块链的业务执行方法及装置、电子设备
CN108520415A (zh) * 2018-04-26 2018-09-11 泰康保险集团股份有限公司 基于区块链的数据处理方法及装置
JP7303653B2 (ja) * 2018-06-18 2023-07-05 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 管理方法、管理装置、及び、プログラム
WO2019246072A1 (en) * 2018-06-21 2019-12-26 Rare Bits, Inc. Bid matching for blockchain-based goods/assets systems and methods
EP3819857A4 (en) * 2018-07-06 2022-03-09 Hitachi, Ltd. RESOURCE PICKING SUPPORT SYSTEM, RESOURCE PICKING SUPPORT METHOD AND RESOURCE PICKING SUPPORT DEVICE
KR102004511B1 (ko) * 2018-07-26 2019-10-01 (주)유니온소프트 영업점에서 전자 화폐로 결제하기 위한 서버 및 결제 컴퓨팅 장치
CN109150996A (zh) * 2018-08-01 2019-01-04 长沙龙生光启新材料科技有限公司 一种区块链接收方法及系统
JP6850772B2 (ja) * 2018-08-10 2021-03-31 Gmoメディア株式会社 仮想通貨管理装置、仮想通貨管理システム、仮想通貨管理方法およびコンピュータプログラム
JP7206698B2 (ja) * 2018-08-28 2023-01-18 セイコーエプソン株式会社 提供装置、処理システム及び通信方法
JP7098734B2 (ja) * 2018-08-29 2022-07-11 double jump.tokyo株式会社 ブロックチェーンシステム、及びブロックチェーンシステムの制御方法
JP7320099B2 (ja) * 2018-08-29 2023-08-02 double jump.tokyo株式会社 ブロックチェーンシステム、及びブロックチェーンシステムの制御方法
KR101947760B1 (ko) * 2018-09-04 2019-02-13 김종현 스마트콘트랙트의 보안 인증 서버
JP2020060954A (ja) * 2018-10-10 2020-04-16 加賀デバイス株式会社 売買方法、売買処理装置、売買処理システム及びコンピュータプログラム
US11138597B2 (en) 2018-11-27 2021-10-05 Advanced New Technologies Co., Ltd. System and method for improving security of smart contract on blockchain
US11354727B2 (en) * 2018-11-27 2022-06-07 Advanced New Technologies Co., Ltd. System and method for improving security of smart contract on blockchain
CN113850676A (zh) * 2018-11-30 2021-12-28 创新先进技术有限公司 用于在区块链网络内原子转移智能资产的平台
JP7188997B2 (ja) * 2018-12-03 2022-12-13 株式会社シーエーシー P2p保険を実施するための方法、コンピュータ、システム及びプログラム
KR102143511B1 (ko) * 2019-01-31 2020-08-11 김종현 스마트 거래의 보안 안정성 관리 서버
JP7260093B2 (ja) * 2019-04-26 2023-04-18 株式会社Nexpoint 情報処理システム
KR102271733B1 (ko) * 2019-06-03 2021-06-30 주식회사 세이브원그룹 가격 통제 기반 전자 상거래 플랫폼 시스템 및 이의 운영 방법
JP7140389B2 (ja) * 2019-07-16 2022-09-21 ジャパンモード株式会社 仮想アイテム出品受付プログラム及びシステム
US11620722B2 (en) 2019-11-27 2023-04-04 Electronics And Telecommunications Research Institute Method and apparatus of generating policy-based smart contract
JP6710401B1 (ja) * 2019-12-05 2020-06-17 bacoor dApps株式会社 対象物を管理する方法及び管理サーバ
JP7242733B2 (ja) * 2021-03-08 2023-03-20 Gmoメディア株式会社 仮想通貨管理装置、仮想通貨管理システム、仮想通貨管理方法およびコンピュータプログラム
JP7044927B6 (ja) 2021-05-18 2022-05-06 グリー株式会社 画像処理プログラム、画像処理プログラムおよび画像処理装置
JP7345714B2 (ja) * 2021-06-09 2023-09-19 悠人 竹井 広告出力装置、広告提供装置、情報処理方法および情報処理プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002236844A (ja) * 2001-02-09 2002-08-23 T & I Solution Co Ltd 事業所情報提供システム
JP2010086341A (ja) * 2008-09-30 2010-04-15 Yahoo Japan Corp オークションサーバ装置、方法、プログラム
US20150379510A1 (en) * 2012-07-10 2015-12-31 Stanley Benjamin Smith Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain.
EP3140979A4 (en) * 2014-05-09 2017-12-27 Veritaseum Inc. Devices, systems, and methods for facilitating low trust and zero trust value transfers
US9818092B2 (en) * 2014-06-04 2017-11-14 Antti Pennanen System and method for executing financial transactions

Also Published As

Publication number Publication date
JP2018036893A (ja) 2018-03-08

Similar Documents

Publication Publication Date Title
JP6703918B2 (ja) 生成プログラム、生成装置及び生成方法
JP6279756B2 (ja) 通信セッションの状態の保存
JP5241839B2 (ja) 従来の小売りに適する電子商取引の方法、システム、及び装置
JP6147401B1 (ja) 譲渡仲介システム
KR20140019418A (ko) 판매자 부근의 사용자 디바이스를 통한 거래들
KR101598611B1 (ko) 대리 결제 서비스 제공 방법
JPWO2006051968A1 (ja) 電子商取引システム、電子商取引支援装置および電子商取引支援方法
JP6187564B2 (ja) 情報処理システム、情報処理装置、連携情報処理システム、情報処理方法、プログラム
JP5601645B2 (ja) 商品毎の二次元コードを利用するショッピングカートシステム
JP2011095815A (ja) オークション出品の入力を支援するシステム、装置、方法及びコンピュータ・プログラム
JP6795484B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
WO2012053504A1 (ja) コメント投稿支援システム、コメント投稿支援装置、コメント投稿支援装置の制御方法、プログラム、及び情報記憶媒体
JP6422558B1 (ja) 取引制御装置、取引制御方法および取引制御プログラム
WO2019190843A1 (en) Online platform for interaction with influencers
JP2010113487A (ja) 電子書籍の作者とアニメ漫画系クリエータとを結びつけるマッチングシステム
KR100963543B1 (ko) 구매 후기를 지도 정보에 매칭한 쇼핑 서비스를 제공하는방법 및 서버
JP6896686B2 (ja) 情報処理装置、配信システム、情報処理方法、及び情報処理プログラム
JP6368023B1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP2009129066A (ja) 商品流通システム
JP5096439B2 (ja) 通信ネットワークを利用したクレジット決済システム及びプログラム
US11928725B2 (en) Methods for searching and obtaining design items and meta data concerning the design items
Malgwi et al. Development and implementation of e-commerce system.
JP7453453B1 (ja) 電子決済サービスを提供する情報処理装置、電子決済サービスを提供する情報処理方法及び電子決済サービスを提供する情報処理プログラム
JP7339383B1 (ja) 情報提供装置、情報提供方法、および情報提供プログラム
JP7403564B2 (ja) 電子商取引システム、電子商取引支援プログラムおよび電子商取引支援方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180612

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180807

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181113

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20181121

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20181214

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20191101

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20191108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200511

R150 Certificate of patent or registration of utility model

Ref document number: 6703918

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350