(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-15
(45)【発行日】2022-12-23
(54)【発明の名称】トランザクション処理方法、システムおよびプログラム
(51)【国際特許分類】
G06Q 20/06 20120101AFI20221216BHJP
【FI】
G06Q20/06
(21)【出願番号】P 2020538366
(86)(22)【出願日】2019-08-18
(86)【国際出願番号】 JP2019032205
(87)【国際公開番号】W WO2020040070
(87)【国際公開日】2020-02-27
【審査請求日】2021-06-28
(31)【優先権主張番号】P 2018157871
(32)【優先日】2018-08-24
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】518172509
【氏名又は名称】株式会社STANDAGE
(74)【代理人】
【識別番号】100120581
【氏名又は名称】市原 政喜
(72)【発明者】
【氏名】安島 丈雄
(72)【発明者】
【氏名】杉江 規行
【審査官】山内 裕史
(56)【参考文献】
【文献】特開2018-128723(JP,A)
【文献】特開2012-248915(JP,A)
【文献】特開2018-081342(JP,A)
【文献】特開2017-220710(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 - 99/00
(57)【特許請求の範囲】
【請求項1】
送金管理装置において、仮想通貨を用いて送金を行う方法であって、
送金コントラクトに送金を実行させるための、送金元から送金先に送金する送金額に対応する仮想通貨を振替える支払トランザクションを生成し、前記送金元用に生成された送金元秘密キーおよび前記送金先用に生成された送金先秘密キーを用いて署名し、当該署名された支払トランザクションを保存するトランザクション生成ステップと、
所定の支払条件が満足したか否かを判定して満足したと判定すると、前記保存された支払トランザクションを読み出し、前記送金コントラクトに送信して、当該送信された支払トランザクションを実行させるトランザクション実行ステップと
を備え、前記トランザクション生成ステップは、前記送金元から送信された保存されないパスフレーズに基づいて前記送金元秘密キーを暗号化し、および前記送金先から送信された保存されないパスフレーズに基づいて前記送金先秘密キーを暗号化して保存することを特徴とする方法。
【請求項2】
前記送金額に対応する仮想通貨を、送金を実行する送金コントラクトのアドレスに該送金元から予め送金するデポジットステップをさらに備えることを特徴とする請求項1に記載の方法。
【請求項3】
前記支払トランザクションは、前記送金コントラクトのアドレスから前記送金先へ前記送金額を振替えるトランザクションであり、
前記トランザクション生成ステップは、前記送金コントラクトのアドレスから前記送金元へ前記送金額を振替える返金トランザクションをさらに生成することを特徴とする請求項2に記載の方法。
【請求項4】
前記トランザクション実行ステップは、前記支払条件が満足されなかったと判定すると、前記保存された返金トランザクションを読み出し、前記送金コントラクトに送信して、当該送信された返金トランザクションを実行させることを特徴とする請求項3に記載の方法。
【請求項5】
前記送金コントラクトを生成して、分散処理プラットフォームにデプロイするコントラクト生成ステップをさらに備えることを特徴とする請求項1ないし4のいずれかに記載の方法。
【請求項6】
前記分散処理プラットフォームは、Ethereumであることを特徴とする請求項5に記載の方法。
【請求項7】
前記送金コントラクトは、前記
支払トランザクションを受信すると、ブロードキャストして実行することを特徴とする請求項1ないし6のいずれかに記載の方法。
【請求項8】
前記
支払トランザクションは、前記送金先
用に生成された送金先秘密キーを用いてさらに署名されることを特徴とする請求項1ないし7のいずれかに記載の方法。
【請求項9】
コンピュータに仮想通貨を用いた送金方法を実行させるプログラムであって、該送金方法は、
送金コントラクトに送金を実行させるための、送金元から送金先に送金する送金額を振替えるトランザクションを生成し、前記送金元用に生成された送金元秘密キーおよび前記送金先用に生成された送金先秘密キーを用いて署名し、当該署名されたトランザクションを保存するトランザクション生成ステップと、
所定の支払条件が満足したか否かを判定して満足したと判定すると、前記保存されたトランザクションを読み出し、前記送金コントラクトに送信して、当該送信されたトランザクションを実行させるトランザクション実行ステップと
を備え、前記トランザクション生成ステップは、前記送金元から送信された保存されないパスフレーズに基づいて前記送金元秘密キーを暗号化し、および前記送金先から送信された保存されないパスフレーズに基づいて前記送金先秘密キーを暗号化して保存することを特徴とするプログラム。
【請求項10】
仮想通貨を用いて送金を行うシステムであって、
送金コントラクトに送金を実行させるための、送金元から送金先に送金する送金額を振替えるトランザクションを生成し、前記送金元用に生成された送金元秘密キーおよび前記送金先用に生成された送金先秘密キーを用いて署名し、当該署名されたトランザクションを保存するトランザクション生成手段と、
所定の支払条件が満足したか否かを判定して満足したと判定すると、前記保存されたトランザクションを読み出し、前記送金コントラクトに送信して、当該送信されたトランザクションを実行させるトランザクション実行手段と
を備え、前記トランザクション生成手段は、前記送金元から送信された保存されないパスフレーズに基づいて前記送金元秘密キーを暗号化し、および前記送金先から送信された保存されないパスフレーズに基づいて前記送金先秘密キーを暗号化して保存することを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はトランザクション処理方法、システムおよびプログラムに関し、より具体的には、仮想通貨を用いてトランザクションを処理し、所定の費用を送金するためのトランザクション処理方法、システムおよびプログラムに関する。
【背景技術】
【0002】
近年、商品購入時の代金の支払いの安全性を確保するため、および確実な商品の提供のため、商品代金を予めデポジット(預託、寄託)しておき、所定の要件が満たされるまで資金の移動を止めておく、いわゆるエスクローサービスシステムとして様々なシステムが提供されている。このようなエスクローサービスシステムのほとんどは、基本的に法定通貨を対象にしたものであり、金融機関に預託口座等を設定して行われる。具体的には、何らかの契約に基づく金銭のやり取りを含む取引において、送金元のユーザが預託口座に所定の金額を預託して、それをサービス提供者が確認して送金先に伝え、取引が行われ完了すると最終的に預託された金銭に基づいて送金先に送金を行うことにより、取引の安全が図られている。例えば、特許文献1には、決済費用が安く、商品が到着しないにも関わらず代金を負担する顧客のリスクをなくす、資金プール装置、ネットショップ決済方法およびネットショップ決済システムを得ることを目的とし、顧客端末20、ECサイト端末40、資金プール装置50、商店端末60、荷物追跡管理サーバ80がネットワーク10を介して接続されているシステムが開示されている。ECサイト端末40は顧客端末から入力される商品発注情報を受け付けて送信し、資金プール装置50は商品購入代金の決済手続情報と商品購入代金の入金処理情報を受け付けて商品購入代金をプールし、商店端末60は商品発注情報を受け付け、商店端末60または荷物追跡管理サーバ80は商品の配送情報を送信し、ECサイト端末40は配送情報を受けて入金指令信号を資金プール装置に向けて送信し、資金プール装置50は入金指令信号を受けて商店端末に商品購入代金を送金する(特許文献1を参照)。
【0003】
一方、様々な取引における対価等の支払方法として、従来の法定通貨に加え、仮想通貨が用いられるようになっている。このような仮想通貨の1つとして、分散型プラットフォームを前提とした「ビットコイン(登録商標)」を用いたサービスがすでに提供されている。ビットコイン等の仮想通貨の実装においては、「ブロックチェーン」と呼ばれる技術が使用されている。一般に、ブロックチェーンにおいては、ハッシュ関数と公開鍵暗号方式とを用いて真正性を担保された、仮想通貨の取引データであるトランザクションが、仮想通貨を利用するP2Pネットワークで接続された全端末に対してブロードキャストで送信される。送信されたトランザクションは、マイナー(採掘者)と呼ばれる端末によって真正性が検証され、承認されるとブロックにまとめられ、ブロックチェーンと呼ばれる取引の元帳に記録される。これにより、高度な信頼性を保持しながら分散システムによる管理が可能となる
特許文献2には、効率的にブロックチェーンを連携させることを目的とし、利用者装置1が仮想通貨ブロックチェーンBC1用の支払いトランザクションを内包する許諾要求トランザクションをコンテンツ権利管理ブロックチェーンBC2のP2Pネットワークに送信し、権利者装置2が許諾要求トランザクションに応じた許諾トランザクションをコンテンツ権利管理ブロックチェーンBC2のP2Pネットワークに送信するとともに、許諾要求トランザクションに内包された支払いトランザクションを仮想通貨ブロックチェーンBC1に送信することにより、利用者及び権利者はコンテンツ権利管理ブロックチェーンBC2を監視するだけで対価の支払いと視聴許諾を管理することが可能となるシステムが開示されている(特許文献2参照)。
【文献】特開2018-81342号公報
【文献】特開2017-204070号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、仮想通貨を用いてエクスローサービスシステムを構築する場合、例えば特許文献1のシステムでは、仮想通貨も使用できると記載されているものの、あくまで金融機関にプール(預託)用の口座を設定することが必要である。すなわち、例えば、入金可能と判断されると、資金プール装置50に向けて入金指令信号を送信し、資金プール装置50は、入金指令を受けて、資金プール装置50から出店者のネットバンク口座に入金処理情報を送信し商品購入代金を決済するというものであって、あくまで金融機関の口座同士の処理であるため、この開示内容を見ても仮想通貨の送金方法に即した安全なエスクローサービスシステムを構築することができないという問題がある。
【0005】
本発明は上記従来の問題に鑑みてなされたものであり、仮想通貨に最適なエスクローサービスを提供する送金システムを構築し、仮想通貨のメリットである安価な手数料と迅速な送金を達成するとともに、より安全な取引を達成することが可能なトランザクション処理方法、システムおよびプログラムを提供することを目的とする。また、エスクローサービスに限らず、仮想通貨を用いた送金における安全なトランザクション処理を提供することを目的とする。
【課題を解決するための手段】
【0006】
請求項1に記載の発明は、送金管理装置において、仮想通貨を用いて送金を行う方法であって、送金コントラクトに送金を実行させるための、送金元から送金先に送金する送金額に対応する仮想通貨を振替える支払トランザクションを生成し、送金元用に生成された送信元秘密キーを用いて署名し、署名された支払トランザクションを保存するトランザクション生成ステップと、所定の支払条件が満足したか否かを判定して満足したと判定すると、保存された支払トランザクションを読み出し、送金コントラクトに送信して、送信された支払トランザクションを実行させるトランザクション実行ステップとを備えることを特徴とする。
【0007】
請求項2に記載の発明は、請求項1に記載の方法において、送金額に対応する仮想通貨を、送金を実行する送金コントラクトのアドレスに送金元から予め送金するデポジットステップをさらに備えることを特徴とする。
【0008】
請求項3に記載の発明は、請求項2に記載の方法において、支払トランザクションは、送金コントラクトのアドレスから送金先へ送金額を振替えるトランザクションであり、トランザクション生成ステップは、送金コントラクトのアドレスから送金元へ送金額を振替える返金トランザクションをさらに生成ことを特徴とする。
【0009】
請求項4に記載の発明は、請求項3に記載の方法において、トランザクション実行ステップは、支払条件判定ステップにおいて支払条件が満足されなかったと判定すると、保存された返金トランザクションを読み出し、送金コントラクトに送信して、送信された返金トランザクションを実行させることを特徴とする。
【0010】
請求項5に記載の発明は、請求項1ないし4のいずれかに記載の方法において、送金コントラクトを生成して、分散処理プラットフォームにデプロイするコントラクト生成ステップをさらに備えることを特徴とする。
【0011】
請求項6に記載の発明は、請求項5に記載の方法において、分散処理プラットフォームは、Ethereumであることを特徴とする。
【0012】
請求項7に記載の発明は、請求項1ないし6のいずれかに記載の方法において、送金コントラクトは、トランザクションを受信すると、ブロードキャストして実行することを特徴とする。
【0013】
請求項8に記載の発明は、請求項1ないし7のいずれかに記載の方法において、トランザクションは、送金元用に生成された送信元秘密キーを用いてさらに署名されることを特徴とする。
【0014】
請求項9に記載の発明は、請求項1ないし8のいずれかに記載の方法において、トランザクション生成ステップは、保存されないパスフレーズに基づいて秘密キーを暗号化して保存することを特徴とすることを特徴とする。
【0015】
請求項10に記載の発明において、コンピュータに仮想通貨を用いた送金方法を実行させるプログラムであって、送金方法は、送金コントラクトに送金を実行させるための、送金元から送金先に送金する送金額を振替えるトランザクションを生成し、送金元用に生成された送信元秘密キーを用いて署名し、署名されたトランザクションを保存するトランザクション生成ステップと、所定の支払条件が満足したか否かを判定して満足したと判定すると、保存されたトランザクションを読み出し、送金コントラクトに送信して、送信されたトランザクションを実行させるトランザクション実行ステップとを備えることを特徴とする。
【0016】
請求項11に記載の発明は、仮想通貨を用いて送金を行うシステムであって、送金コントラクトに送金を実行させるための、送金元から送金先に送金する送金額を振替えるトランザクションを生成し、送金元用に生成された送信元秘密キーを用いて署名し、署名されたトランザクションを保存するトランザクション生成手段と、所定の支払条件が満足したか否かを判定して満足したと判定すると、保存されたトランザクションを読み出し、送金コントラクトに送信して、送信されたトランザクションを実行させるトランザクション実行手段と を備えることを特徴とする。
【発明の効果】
【0017】
本発明によると、仮想通貨を用いて送金を行う方法であって、送金を実行する送金コントラクトに実行させるための、送金元から送金先に送金する送金額に対応する仮想通貨を振替えるトランザクションを生成し、送金元用に生成された送信元秘密キーを用いて署名し、署名されたトランザクションを保存するトランザクション生成ステップと、所定の支払条件が満足したか否かを判定して満足したと判定すると、保存されたトランザクションを読み出し、送金コントラクトに送信して、送信されたトランザクションを実行させるトランザクション実行ステップとを備えるので、仮想通貨を用いたエスクローにより迅速で確実な取引が可能になる。また、仮想通貨を用いた送金における安全なトランザクション処理が可能になる。
【図面の簡単な説明】
【0018】
【
図1】本発明の一実施形態の全体のシステム構成図である。
【
図2】本発明の一実施形態のSHCコアの機能ブロック図である。
【
図3】本発明の一実施形態で使用するトランザクションの一例を示す図である。
【
図4】本発明の一実施形態の分散処理プラットフォームを説明するための図である。
【
図5】本発明の一実施形態のブロックチェーンの一例を示す図である。
【
図6】本発明の一実施形態のコールドウォレットの機能ブロック図である。
【
図7】本発明の一実施形態のHSMを使用した暗号化を説明するための図である。
【
図8】本発明の一実施形態のトランザクション生成処理を示すフローチャートである。
【
図9】本発明の一実施形態のトランザクション実行処理を示すフローチャートである。
【
図10】本発明の一実施形態で使用するトランザクションの別の例を示す図である。
【
図11】本発明の別の実施例のトランザクション生成処理を示すフローチャートである。
【
図12】本発明の別の実施例のトランザクション適用処理を示すフローチャートである。
【
図13】本発明の別の実施例の実行処理を示すフローチャートである。
【発明を実施するための形態】
【0019】
以下、本発明の仮想通貨を用いたトランザクション処理方法、システムおよびプログラムについて、図面を参照して実施形態を説明する。なお、異なる図面でも、同一の処理、構成を示すときは同一の符号を用いる。
【0020】
本実施形態は、何らかの商取引を行った当事者がその対価などの支払を仮想通貨で行うものであり、あくまで取引が成立した状態以降の金銭のやり取り部分の処理であるが、これに限られることなく、取引の当初からの処理を含めたシステムとすることもできる。例えば、海外の商品をネット経由で購入したり、逆に海外の購入者に商品を輸出して送金を受け取ったりする場合などに適用することができるが、これに限られず様々な取引における送金のシーンに適用することができる。すなわち、例えば海外の事業者が提供する販売サイトで購入者が商品提供者の商品を確認して購入を決定し、支払処理に進んだ段階で本実施形態のシステムが動作する。この場合、販売サイトにおいて、送金に必要な情報の取得をした後、本実施形態の送金システムに情報が渡されて処理を進めることもできるし、販売サイトで購入を決定して支払処理を選択すると、別途設けられた本実施形態の送金システムに接続され、以降送金に必要な情報を入力したり、送金元や送金先との情報のやり取りをしたりすることもできる。
【0021】
また、本実施形態では仮想通貨としてShake Hands Contract(以降、SHCという)またはEtherを用い、また本実施形態のソフトウェアはEthereumプラットフォーム上でデプロイされ実行されるが、これに限られず、種々の仮想通貨、種々の分散型プラットフォームを使用することができる。この場合、本実施形態の各種処理を行うソフトウェアは、ネットワークに接続された、パソコン、サーバなどのコンピュータであるEthereumノード上で分散処理されるが、本発明の原理は、このような形態にかかわらず一部の処理を特定のサーバが実行したり、特定のデータベースを利用したりすることにより、トランザクションをブロードキャストして送金を行うシステムに適用して、本技術分野で知られたいずれかの方法でシステムを構成することができる。さらに、本実施形態の送金システムは、エスクローサービスを実現するものであるが、本発明の原理は通常のトランザクション処理にも適用することができる。
【0022】
(システム構成)
本発明の一実施形態で用いる送金システムの動作及び処理を以下に説明する。
図1は、本発明の一実施形態の全体のシステム構成図である。本システムでは、送金処理の主な機能を実行し、購入者などの送金元、商品提供者などの送金先とのインタフェースを処理したり、システム全体を制御したりするためのSHCコア101、およびSHCコア101とのやり取りを行ってSHCに関連する各種処理を実行するEthereumプラットフォーム102上で動作する各種ソフトウェア、コントラクト121、122、123を備えており、ネットワーク103を介して接続されている。
【0023】
また、これらネットワークに接続されたノード以外にネットワークから隔離され、ネットワークを介した不正な操作から主要なデータを保護するコールドウォレット131を備える。コールドウォレット131とSHCコア101とのデータのやり取りは常時接続のネットワーク以外の、取り外し可能なメモリ装置などで行うことができる。
【0024】
さらに、図示しない販売サイトなどに接続して、商品の購入処理などを行う送金元端末111は、基本的に無線、有線を問わずネットワーク103に接続されており、例えばデスクトップパソコンとすることができ、本実施形態でネットワーク103との接続としては、通常の接続のほか、携帯電話の回線や、Wi-fi、BLUETOOTH(登録商標)等の無線ネットワークにより行うこともできる。ここで端末111、112はデスクトップパソコンのほか、タブレット端末、スマートフォン、あるいはモバイルパソコン等とすることができるが、基本的に送受信を実行でき、画像を表示、およびタッチパネル、マウスまたはキーボードで一定の入力操作をすることができれば、汎用、専用端末などいずれの装置を用いることができる。また、本実施形態では、以上の各機能に加え、商品等の荷を配送する運送業者や、運送業者による配送状況を管理する図示しない配送管理システムなどもネットワーク103を介して接続され、送金の実行を決定する処理など、送金システムを運用するうえで必要な情報を入手することもできる。
【0025】
図2は、本発明の一実施形態のSHCコアの機能ブロック図である。SHCコアは主に、送金処理の主たる機能を実行し、システム全体を制御するSHCコアシステム201および送金元、送金先とのインタフェース等外部のシステム向けサービスを処理するSHCウェブサービス202を備える。ここで、SHCコアシステム201は、送金処理の主な機能、具体的には送金元や送金先など本実施形態の送金システムを使用する利用者のアドレスを生成・管理するSHCアドレス生成機能、取引ごとにSHCエスクローコントラクトを生成するマルチシグコントラクト生成機能、所定の条件で仮想通貨であるSHCまたはEtherによる送金又は返金などを指示するSHC/Etherの振替機能、およびドキュメントハッシュの格納機能を実行するが、これに加え運送業者や配送情報管理機関から配送完了通知を受信等する配送情報チェック機能なども有することができる。
【0026】
また、SHCウェブサービス202は、送金元、送金先とのインタフェース関連の主な処理、具体的には送金元、送金先など取引の関係者のユーザアカウントの入出力や管理機能、商品購入サイトなどからリンクして本実施形態の取引の生成および参加機能、商品購入者などの支払者からデポジットに関するSHC/Etherの預託情報処理機能、取引書類の格納機能、商品配送時の配送識別情報を受けとり管理等する配送情報の入力/修正機能などを実行する。SHCコアは、さらに後述するハードウェアセキュリティモジュール(HSM)およびEthereumノード接続機能等、その他のシステム構成に応じた種々の機能を有することができる。
【0027】
図3は、本発明の一実施形態で使用するトランザクションの一例を示す図である。一般にブロックチェーンを用いる仮想通貨では、その所有の移転(振替)をトランザクションというデータに書き込んで所定の手続きを経ることにより送金が実行される。本実施形態でも振替える額と相手先とをトランザクションに書き込むことにより、送金処理が開始される。本実施形態では、例えばビットコイン等でも用いられている
図3に示すようなトランザクションを用いて送金処理をすることができる。すなわち、送金額等のトランザクションの内容302及び、送金先の情報303、送金元の情報304をトランザクション301に書き込み、送金元の署名を行う。具体的に署名は、例えばトランザクションのハッシュ値を送金元の秘密キーで暗号化したものを書き込むことで実装することができる。
【0028】
本実施形態では、後述するように、SHCコアシステム201がトランザクションを生
成する際に使用する送金元の秘密キーは、トランザクションを生成した後その後の使用のため暗号化してディスクに格納するが、SHCコアシステム201が秘密キーを用いて不適切な処理をできないようにするため、秘密キーを容易に解読できないような構成としている。具体的に本実施形態では、秘密キーを格納する際に暗号化のために使用するパスフレーズを送金元などから都度取得するように(SHCコアシステム内に保存しないように)して、ユーザが暗号化キーを提供しない限り、SHCコアシステム201はディスクなどに保存されている秘密キーを取得(解読)して使用することができないように構成されている。
【0029】
本実施形態では、秘密キーをその後の処理にも使用するため、あえてパスフレーズで暗号化して保存することにより不適切処理を回避しているが、秘密キーを保存自体しないようにすることもできる。すなわち、保存していなければSHCコアシステム201は秘密キーを使用できないので、必要に応じてユーザから取得するようにし、ディスク等には保存しないようにして対応することもできる。この際、秘密キー自体はシステムでランダムに発生させている場合は、予めユーザに提示して、その後ユーザが自ら入力することができるようにすることもできる。
【0030】
いずれにしても、本実施形態では、このようにSHCコアシステム201がトランザクション生成の際だけ秘密キーを使用できるが、その後はユーザからの提供がない限り秘密キーを使用できないようにすることにより、システム側の裁量だけでトランザクションを生成させないようにすることによって、安全なトランザクションの生成を達成することができる。
【0031】
図4は、本発明の一実施形態の分散処理プラットフォームの例としてEthereumプラットフォームを説明するための図である。Ethereumプラットフォーム102は、様々な分散処理アプリケーション(Dapps)を動作させることができ、本実施形態ではSHCトークンコントラクト121およびSHCブロックチェーン122が置かれている。SHCトークンコントラクト401は、SHCトークンの管理を行うが、具体的な機能は本技術分野の各種トークンの管理ソフトで必要とされるものが用意されているものとする。
【0032】
さらに、Ethereumプラットフォーム102には、
図4に示すように取引ごとに生成されるSHCエスクローコントラクト401がデプロイされる。SHCエスクローコントラクト401は、本実施形態の送金に関する取引ごとに生成され、送信されたデポジットを保持し、またSHCコアシステム201からの指示で送金処理を行う。本実施形態のSHCエスクローコントラクト401は、マルチシグを実装することができ、売手と買手、本実施形態でいえば送金先と送金元の双方のパスフレーズがなければ処理ができないようにすることができるので、これにより第三者がシステムに侵入しても不正な送金を行うことはできない構成とすることもできる。この場合、マルチシグは、送信元および送信先の秘密キーを使用するが、これに限らず本技術分野で知られた複数のキーを使用したいずれかの暗号化手法を用いることができる。本実施形態ではこのようにコントラクトをEthereumプラットフォーム102にデプロイして、独立して実行させることにより、SHCコアシステム201は一度コントラクトを生成すると、生成済みのトランザクションの処理を実行させるだけで、その処理に介入することができないので、システムの安全性をより向上させることができる。
【0033】
図5は、本発明の一実施形態のSHCブロックチェーンの一例を示す図である。SHCブロックチェーン122は、取引書類501およびKYC情報など502を含んでおり、本実施形態の各ソフトウェアで使用される。取引書類501には、トランザクションの実行があると、新たなブロックが書き込まれ、ブロックチェーンを形成する。また、KYC
情報など502は、いわゆるKnow Your Customer(KYC)、すなわち新規に口座開設する際に金融機関側から要求される、顧客本人の身元確認における書類手続きの総称であり、その他の情報も含め格納することができる。
【0034】
(本実施形態のセキュリティ対応)
本実施形態の送金システムでは、安全な取引を可能にするための様々なセキュリティ機能を有するが、主要なものを以下に説明する。
図6は、本発明の一実施形態のコールドウォレットの機能ブロック図である。本実施形態では、秘密キーや流動性の乏しい通貨は、オフラインによりネットワークから隔離されたコールドウォレット131に格納され、必要な場合にデータを取り出して使用する。具体的にはUSBメモリなどの取り外し可能なメモリなどを用いて実装することができるが、これに限られず本技術分野で知られた種々の手法を用いることができる。コールドウォレット131は、重要データをオフラインで管理するためのSHCコールドウォレットシステム602のほか、後述するHSM601も備える。
【0035】
図7は、本発明の一実施形態のHSMを使用した暗号化を説明するための図である。本実施形態のSHCコア101では、HSM(ハードウェアセキュリティモジュール)によって、全ての秘密キー、およびトランザクションが保護される。使用するHSMは以下の仕様を全て満たしており、仮にハッキングなどによるデータ流出が起きた場合でも、HSMなしでは流出したデータは復元不能で使用できない。
・暗号キーを安全な耐タンパー性のハードウェアに保管し、キーの流出を防止
・米国連邦標準規格FIPS140-2レベル2/3準拠
・暗号キーのエクスポートが不可能であり、利用者がキー値を知ることができない
図7に示すように、本実施形態では、ディスク701上に保存する際は、秘密キー702もトランザクション703も暗号化して保存しており、秘密キーおよびトランザクションを利用時にHSM721を使用してオンデマンドで解読し、メモリ711上では解読済みの平文の秘密キー712および平文のトランザクション713として各処理を行い、例えばEthereumノードへのブロードキャストを行ったりするが、平文のデータはディスクには保存せずに使用することにより、セキュアなエスクローサービスを実現することができる。ここで、本実施形態のSHCコアシステム201は、上述の通り、ユーザが承認してトランザクションを生成する際だけ秘密キーが使用できる。その後SHCコアシステム201の裁量で秘密キーを使用できないように、HSMに格納された暗号化キーに加え、ユーザから都度取得して保存しないパスフレーズを使用して暗号化するようにしているが、これに限られず本技術分野で知られたいずれかの方法で同様の処理をして、SHCコアシステム201の裁量で不適切にトランザクションを生成することを防止するようにすることができる。
【0036】
(第1実施例の処理)
本実施形態では、本発明の説明の便宜上、所定の販売サイトで送金元である購入者と、送金先である商品提供者とが売買取引を完了し、代金の支払いおよび取引の一定の履行である、商品の配送手続きをこれから行うというフェーズから説明するが、本実施形態の送金システムはこれに限られることなく、例えば販売サイトの売買取引処理に組み込むこともできるし、販売サイトから必要な情報を受信して本実施形態のシステム引き続き処理を進めることもできる。本実施例では、本発明の原理を適用した基本的な処理を用いており、後述する第2実施例ではさらにセキュリティを強化した処理を用いる。また、本実施形態はエスクローサービスシステムを前提として説明しているが、これに限られず本発明の原理は、一般の仮想通貨を用いた送金システムにおけるトランザクション処理に適用することもできる。
【0037】
図8は、本発明の一実施形態のトランザクション生成処理を示すフローチャートである
。本システムで種々の処理を行う前提として取引当事者、すなわち送金元および送金先に対しSHCウェブサービス202が情報入力画面などを提供し、必要な情報を入力させてアカウントを生成する(ステップ801)。一般的には、売買取引が完了していれば送金先が、送金元および取引の情報を有しているので、送金先が情報を入力するとアカウントが生成されて、当事者双方に送信されるが、例えば販売サイトから各情報を自動的に送信することもできるし、送金元である購入者が情報を入力することもできる。同様に、取引情報が当事者の一方若しくは双方からまたは自動的に入力されると(ステップ802)、SHCコアシステム201は送金元および送金先の、それぞれの秘密キーAおよびBを生成する(ステップ803)。
【0038】
さらに、SHCコアシステム201は、入手した取引情報に基づき、取引の額の支払トランザクションを生成する(ステップ804)が、後述するように支払額に相当するSHCはSHCエスクローコントラクト402に預託されるので、支払トランザクションは代金額に相当する預託されているSHCをSHCエスクローコントラクト402から送金先112に振替えるトランザクションである。
【0039】
その後、生成されたトランザクションに送金元の秘密キーAで署名を行い(ステップ805)、署名されたトランザクションを所定の暗号化キーで暗号化して保存する(ステップ806)が、秘密キーAや関連するキーなどについてはさらに別途送金元から提供されたパスフレーズαを用いて暗号化して保存する。パスフレーズαは暗号処理に用いられた後、保存されないようにして、上述の通り不用意な処理を回避するようになっているが、具体的な暗号化の方法は本技術分野で知られたいずれかの方法を用いることができ、またその後の処理で秘密キーなどを用いる必要がないならば保存せずに、SHCコアシステム201が新たなトランザクションを生成することができないようにすることもできる。この際、秘密キー自体はシステムでランダムに発生させている場合は、予めユーザに提示して、その後ユーザが自ら入力することができるようにすることもできる。
【0040】
(本実施例のトランザクション実行処理)
以上、本実施形態では送金処理の最初の段階で、先ず支払トランザクションを生成しておき、その後、所定の条件がそろった状況、すなわち、送金先における取引の一定の段階まで完了、例えば商品の購入取引であれば、商品が購入者である送金元に着荷するなどして、送金が実行されても問題がないことが確認された状況でトランザクションが実行され、送金先に送金される。これにより、取引を安全に行うエスクローが達成される。
【0041】
図9は、本実施例のトランザクション実行処理を示すフローチャートである。上述の様に、トランザクションが生成され取引の一定の完了を待っている状態から本処理は開始される。まず、SHCエスクローコントラクト401を生成し、Ethereumプラットフォーム102にデプロイする(ステップ901)。なお、本ステップは、次の預託の確認の前に置かれているがこれに限られず、預託確認後などとすることもできる。
【0042】
次に、預託済みか否かを確認し(ステップ903)、まだ預託されていないときは、送金元に預託を督促する(ステップ904)。預託が確認されれば送金先にその旨連絡し(ステップ905)、取引の履行、例えば商品の出荷等を促す。ここで、預託の完了は、必ずしも取引の履行開始の要件ではないが、送金先の判断の1要素として、その他の情報も斟酌して判定することができる。ただし一般には、預託が確認されれば取引の履行の準備に入らないと、その後の支払などの処理が遅延するので、遅滞なく送金先に通知することが好ましい。また、本実施形態で預託あるいはデポジットは、具体的にはSHCエスクローコントラクト402のアドレスに送金元111から送金することにより行う。これにより、支払額のSHCをSHCエスクローコントラクト402が保持することとなるから、支払時にはSHCエスクローコントラクト402から送金先112へ振替えるトランザク
ションを実行すればいい。
【0043】
返金時には預託の額のSHCをSHCエスクローコントラクト402に保持させず、同額のSHCを別途保持しておく等本技術分野で知られた方法で預託することもできる。この場合、取引が履行されなかったとき返金は、本技術分野で知られた何らかの方法で実施することができる。また、返金トランザクションを予め生成しておき、SHCエスクローコントラクト402から送金元111へ振替えるトランザクションを実行するようにすることもできる。
【0044】
送金先が取引を一定以上履行し送金元がこれを確認した結果、送金しても問題ないと判断すると、送金元はSHCコアにその旨指示するので、これを確認し(ステップ906)、取引の履行がなされなかった場合は、取引は不成立として契約を解除する(ステップ908)。この際は、本技術分野で知られたいずれかの方法によりデポジットされた仮想通貨を送金元に返金する処理を行う。
【0045】
一方、送金の指示があった場合は、支払トランザクションをコントラクトに送信して、実行させる(ステップ907)。支払トランザクションの実行は、SHCエスクローコントラクト402がEthereumノードにブロードキャストすることにより実行される。
【0046】
(第2実施例の処理)
本実施例の処理は、上述の第1実施例の処理と以下の点で異なる。第1点はトランザクションへの署名は第1実施例では、送金元だけであったが、これに加え、送金先の署名も行うことにより、信頼性をさらに向上させる。第2に、トランザクション生成の際、支払トランザクションに加え、返金トランザクションを生成する。特に、エスクローサービスにおいては、予め送金元は一定額を預託していることが前提となり、様々な形態で預託しておくことが可能であるが、本実施形態のような仮想通貨による簡潔なシステムでは、第1実施例で示したように生成されたSHCエスクローコントラクトに預託金を送金しておき、送金実行時にはこれを送金先に振替えるトランザクションを実行させるのが適切である。この場合、取引が履行されず送金元に返金する必要があるときは、SHCエクスローコントラクトから送金元に送金するトランザクションを用いるのが好ましい。さらに、第1実施例で実行されているように、予めトランザクションを生成しておいて、実行まで改ざんできないようにしておくことが望ましいので、本実施例ではトランザクション生成時に、支払トランザクションと返金トランザクションとを生成するようにする。その他は、基本的に第1実施例と同様である。
【0047】
図10は、本実施例で使用するトランザクションの例を示す図である。上述の第1実施例と同様に本実施例でも、トランザクションというデータに書き込んで所定の手続きを経ることにより送金が実行されるが、第1実施例では、送金額等のトランザクションの内容302及び、送金先の情報303、送金先元の情報304をトランザクション301に書き込み、送金元の署名を行う。本実施例のトランザクション1001では、これに加えて送金先の署名も行う。具体的には、例えばトランザクションのハッシュ値を、送金元の秘密キーに加え、送金先の秘密キー1002で暗号化して書き込むことで実装することができる。
【0048】
秘密キーの扱いについては、第1実施例と同様に、本実施例でも、トランザクション生成で使用した後、その後の使用のため暗号化してディスクに格納するが、SHCコアシステム201が秘密キーを用いて不適切な処理をできないようにするため、秘密キーを容易に解読できないように、秘密キーを格納する際に暗号化のために使用するパスフレーズを送金元および送金先などから都度取得するようにして、ユーザが暗号化キーを提供しない
限り、SHCコアシステム201はディスクなどに保存されている秘密キーを取得(解読)して使用することができないように構成されている。
【0049】
本実施例でも、秘密キーを他の処理にも使用するため、あえてユーザの提示するパスフレーズで暗号化して保存することにより不適切処理を回避しているが、秘密キーを保存自体しないようにすることもできる。この際、秘密キー自体はシステムでランダムに発生させている場合は、予めユーザに提示して、その後ユーザが自ら入力することができるようにすることもできる。
【0050】
図11は、本発明の別の実施形態のトランザクション生成処理を示すフローチャートである。本実施例は第1実施例と同様の処理を行うが、特にトランザクションの生成(ステップ1101)およびトランザクションへの署名(ステップ1102)が異なるが、全体を説明する。本システムで種々の処理を行う前提として取引当事者、すなわち送金元および送金先に対しSHCウェブサービス202が情報入力画面などを提供し、必要な情報を入力させてアカウントを生成する(ステップ801)。次に、取引情報が当事者の一方若しくは双方からまたは自動的に入力されると(ステップ802)、SHCコアシステム201は送金元および送金先の、それぞれの秘密キーAおよびBを生成する(ステップ803)。
【0051】
さらに、SHCコアシステム201は、入手した取引情報に基づき、取引の額の支払トランザクションおよび返金トランザクションを生成する(ステップ1101)が、支払額に相当するSHCはSHCエスクローコントラクト402に預託されるので、支払トランザクションは代金額に相当する預託されているSHCをSHCエスクローコントラクト402から送金先112に振替えるトランザクションであり、返金トランザクションは代金額に相当する預託されているSHCをSHCエスクローコントラクト402から送金元112に振替えるトランザクションである。本実施例では、このようにトランザクション生成時に、支払トランザクションと返金トランザクションとを生成することにより、取引が不調に終わった場合でも容易に返金処理ができるようにしている。すなわち、エスクローシステムでは、取引の完了前に預託処理が行われるため、取引が問題なく完了し支払処理が行われる場合だけでなく、不調に終わった場合一旦預託した通貨をどう処理するかは必然的にシステムとして対応しなければならない処理だが、支払トランザクションを生成する際に、返金トランザクションを生成しておけば、取引が完了しなかった場合に種々の処理をすることなく、返金トランザクションを実行させれば解決するので、仮想通貨によりエスクローサービスを提供する際にはきわめて有効である。
【0052】
その後、生成されたトランザクションに送金元の送金元秘密キーAおよび送金先の送金先秘密キーBで署名を行う(ステップ1102)。本実施例では、上述の通り支払トランザクション及び返金トランザクションを生成するので、必然的に送金元および送金先の双方の秘密キーを使用しているといこともあり、トランザクションには送金元および送金先の双方で署名することにより、より処理の安全性を向上させている。このようにして暗号化された署名済みトランザクションを所定の暗号化キーで暗号化して保存する(ステップ806)が、第1実施例と同様に、パスフレーズαおよびβなどを用いて暗号化して保存する。
【0053】
パスフレーズαおよびβなどにより暗号化を行うが、具体的な暗号化の方法は本技術分野で知られたいずれかの方法を用いることができ、またその後の処理で秘密キーAまたはBなどを用いる必要がなければ保存せずに、SHCコアシステム201が新たなトランザクションを生成することができないようにすることもできる。また、その後秘密キーを使用する場合も、秘密キー自体はシステムでランダムに発生させているときは、予めユーザに提示して、その後ユーザが自ら入力することができるようにすることもできる。
【0054】
(本実施例のトランザクション実行処理)
以上、本実施形態では送金処理の最初の段階で、先ず支払トランザクションを生成しておき、その後、所定の条件がそろった状況、すなわち送金元としては送金先における取引の一定の完了、例えば商品の購入取引であれば送金元である購入者に商品が到着したことが確認でき、送金が実行されても問題がないことが確認された状況でトランザクションが実行され、送金先に送金される。これにより、取引を安全に行うエスクローが達成される。
【0055】
図12は、本発明の本実施例のトランザクション適用処理を示すフローチャートである。上述の様に、トランザクションが生成され取引の一定の完了を待っている状態から本処理は開始される。まず、SHCエスクローコントラクト401を生成し、Ethereumプラットフォーム102にデプロイする(ステップ901)。なお、本ステップは、次の預託の確認の前に置かれているがこれに限られず、預託確認後などとすることもできる。
【0056】
次に、預託済みか否かを確認し(ステップ903)、まだ預託されていないときは、送金元に預託を督促する(ステップ904)。預託が確認されれば送金先にその旨連絡し(ステップ905)、取引の履行を促す。ここで、預託の完了は、必ずしも取引の履行開始の要件ではないが、送金先の判断の1要素として、その他の情報も斟酌して判定することができる。ただし一般には、預託が確認されれば取引の履行の準備に入らないと、その後の支払などの処理が遅延するので、遅滞なく送金先に通知することが好ましい。また、本実施形態で預託あるいはデポジットは、具体的にはSHCエスクローコントラクト402のアドレスに送金元111から送金することにより行う。これにより、支払額のSHCをSHCエスクローコントラクト402が保持することとなるから、支払時にはSHCエスクローコントラクト402から送金先112へ振替えるトランザクションを実行すればいい。
【0057】
返金時には、返金トランザクションを使用して、SHCエスクローコントラクト402から送金元111へ振替えるトランザクションを実行するようにする。
【0058】
送金先が取引を一定以上履行、例えば商品の購入取引であれば送金元である購入者に商品が到着し送金元がこれを確認した結果、送金しても問題ないと判断すると、送金元はSHCコアにその旨指示するので、これを確認し(ステップ906)、処理がなされなかった場合は、取引は不成立として返金トランザクションを読み出してSHCエスクローコントラクトに送信して実行させる(ステップ1202)。一方、送金の指示があった場合は、
図13に示すような処理、すなわち支払トランザクションをコントラクトに送信してトランザクションを実行する処理に進む(ステップ1101)。ここで、本実施例では、送金元からの送金指示を確認して支払処理あるいは返金処理を行っているが、基本的に商取引等の場合は、送金の原因となる荷物の受け渡しが行われることが通常であり、従来送金元である商品の購入者は商品の到着後、あるいは到着した後の種々の処理の後、支払の実行を指示する。しかし、後述するように、近年では荷物の到着の情報なども一元管理されているので、そのようなトラッキングシステムを導入して、送金元の指示なしに送金を実行することもできる。
【0059】
(トラッキング処理)
本実施形態で荷物等の配送処理が伴う場合、基本的に送金元による代金分のSHCの預託を条件に、送金先は配送処理を行い、運送業者による配送完了を条件に預託されたSHCを送金先に送金することもできる。運送業者への配送の依頼方法や、具体的な手続きについては本技術分野で知られたいずれの方法でも実行することができるが、一般に配送を
依頼すると、ユニークな配送識別情報が付与されるため、本実施形態でもSHCコアシステム201は、送金先からあるいは自ら配送識別情報を入手し、これに基づいて処理を進めることができる。送金先が、運送業者に配送を依頼すると、配送識別情報が設定されるので、これをSHCウェブサービス202に通知するか、運送業者から連絡させる等によりSHCコアが対応する取引と関連付けて配送識別情報を取得できるようにする。すなわち、配送処理がなされ配送識別情報が設定された場合は、配送が完了すると通知を受信するように着荷確認を設定する。現在、国内外の運送業者の多くが自社あるいは関連情報処理企業等の外部機関・企業で、取り扱う荷物の配送管理、追跡システムを有しており、出荷、着荷だけでなく途中の営業所の通過などの情報もリアルタイムで入手できるようになっている。近年では、このような運送会社個別の追跡システムだけではなく、複数の運送会社の情報を収集して提供する企業も登場し、特に海外も含め配送を行う場合は、このような企業の提供する情報を使用することもできる。
【0060】
本実施形態では、例えばAfterShipといったサービスにより、海外も含む主要な運送業者の追跡が可能とすることができるが、これに限られず様々な企業が提供する同種のサービスを利用することもできる。着荷の確認は、使用する追跡サービスにもよるが、本実施形態では上述の様に、配送識別情報を設定しておいて配送が完了すると(送金元が商品を受け取ると)、その旨通知を受けるように予め設定しているので、追跡サービスから指定の荷物が着荷したとの通知を待ってその後の処理を行えばよい。ここで、配送識別情報は、運送業者に配送を依頼した際に設定される問合せ番号とすることができるが、これに限られず配送する荷物を特定できるものであれば商品番号等、いずれかの識別力ある情報とすることもできる。以上、本実施例のシステムにトラッキング処理を取り入れることにより、より有効なシステムン構築が可能であるが、本処理は上述の第1実施例においても取り入れることができる。
【0061】
(本実施例のトランザクション実行処理)
以上、送金元からの送金指示等、送金が可能になった場合に送金実行処理や返金処理に移行することを説明した。次に、さらに具体的に送金を実行する処理を説明する。
【0062】
図13は、本発明の一実施形態のトランザクションについての実行処理を示すフローチャートである。上述の様に、取引の一定の完了を待っている状態から本処理は開始される。まず、書類の不備等があるか否かを確認する(ステップ1301)。例えば国内での取引ではなく、特に輸出入を伴う場合は、二国間の取引となるため様々な書類が必要になる。ここでは、その詳細は説明しないが、書類が不備の場合その不備の程度により、もはや取引を中止する必要があることもあるので、この場合、一般には両者で協議し決定した内容に応じて、SHCコアシステム201はSHCエスクローコントラクト402に、保存してある支払トランザクション又は返金トランザクションを送って実行させる(S1304)。
【0063】
また、何らかの事故等により取引が完了しない場合があり、この場合も所定の期限を過ぎれば取引は中止すべきである場合が多いので、本実施形態でも取引を中止とし、SHCコアシステム201はSHCエスクローコントラクト402に返金トランザクションを実行させる(S1305)。期限内に取引が一定以上が完了した場合でも当事者のどちらかから異議申し立てがあった場合は、その内容によっては最早取引を中止する必要があることもあるので、この場合、一般には両者で協議し決定した内容に応じて、SHCコアシステム201はSHCエスクローコントラクト402に、支払トランザクション又は返金トランザクションを実行させる(S1304)。
【0064】
書類不備も、異議申立てもなく、期限内に取引が完了した場合はすぐ送金処理を実行させることもできるが、当事者間に何らかの不測の事態が発生する可能性もあるため、送金
元からの指示などから24時間経過した後SHCコアシステム201はSHCエスクローコントラクト402に支払トランザクションを実行させる(S1306)。本実施形態では、24時間待機してからトランザクションの実行を行うが、待機期間はこれに限られず、取引内容や、使用環境等により任意に設定することができる。
【0065】
ここで、支払トランザクション及び返金トランザクションの実行は、SHCエスクローコントラクト402がEthereumノードにブロードキャストすることにより実行される。