IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2024-22339対価分配プログラム、対価分配方法及び対価分配装置
<>
  • 特開-対価分配プログラム、対価分配方法及び対価分配装置 図1
  • 特開-対価分配プログラム、対価分配方法及び対価分配装置 図2
  • 特開-対価分配プログラム、対価分配方法及び対価分配装置 図3
  • 特開-対価分配プログラム、対価分配方法及び対価分配装置 図4
  • 特開-対価分配プログラム、対価分配方法及び対価分配装置 図5
  • 特開-対価分配プログラム、対価分配方法及び対価分配装置 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024022339
(43)【公開日】2024-02-16
(54)【発明の名称】対価分配プログラム、対価分配方法及び対価分配装置
(51)【国際特許分類】
   H04L 9/32 20060101AFI20240208BHJP
   G06Q 20/06 20120101ALI20240208BHJP
【FI】
H04L9/32 200Z
G06Q20/06
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022125843
(22)【出願日】2022-08-05
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】宮前 剛
(72)【発明者】
【氏名】ジャン・シエヌビヌ
【テーマコード(参考)】
5L055
【Fターム(参考)】
5L055AA12
(57)【要約】
【課題】サプライチェーンにおけるセキュリティを向上させる対価分配プログラム、対価分配方法及び対価分配装置を提供する。
【解決手段】サプライチェーンに含まれる複数の工程のうちの所定工程において、ブロックチェーンに格納された、1つ下流の工程において所定の乱数に基づくハッシュ値を用いてロックされ且つ最上流の工程から所定工程までの第1累積対価を含む第1トランザクションの妥当性を検証し、検証の結果が妥当であれば、ハッシュ値を用いてロックした最上流の工程から1つ上流の工程までの第2累積対価を含む第2トランザクションをブロックチェーンに格納し、所定の乱数を基に第1トランザクションをアンロックして第1累積対価を取得し、所定の乱数を前記1つ下流の工程へ送信する処理をコンピュータに実行させる。
【選択図】図3
【特許請求の範囲】
【請求項1】
サプライチェーンに含まれる複数の工程のうちの所定工程において、
ブロックチェーンに格納された、1つ下流の工程において所定の乱数に基づくハッシュ値を用いてロックされ且つ最上流の工程から前記所定工程までの第1累積対価を含む第1トランザクションの妥当性を検証し、
前記検証の結果が妥当であれば、前記ハッシュ値を用いてロックした前記最上流の工程から1つ上流の工程までの第2累積対価を含む第2トランザクションを前記ブロックチェーンに格納し、
前記所定の乱数を基に前記第1トランザクションをアンロックして前記第1累積対価を取得し、
前記所定の乱数を前記1つ下流の工程へ送信する
処理をコンピュータに実行させることを特徴とする対価分配プログラム。
【請求項2】
前記最上流の工程において、前記所定の乱数を生成し、前記所定の乱数に基づくハッシュ値を算出し、
前記最上流の工程により算出された前記ハッシュ値を前記第1トランザクションから取得して、前記第2トランザクションをロックする処理を前記コンピュータに実行させることを特徴とする請求項1に記載の対価分配プログラム。
【請求項3】
前記最上流の工程において、前記所定の乱数を生成し、前記所定の乱数に基づくハッシュ値を算出し、
前記所定工程が前記最上流の工程であれば生成した前記所定の乱数を用い、前記所定工程が前記最上流の工程以外の工程であれば前記1つ上流の工程から受信した前記所定の乱数を用いて、前記第1トランザクションをアンロックして前記第1累積対価を取得する
処理を前記コンピュータに実行させることを特徴とする請求項1に記載の対価分配プログラム。
【請求項4】
前記最上流の工程において、前記サプライチェーンにより提供される物の全体累積対価を支払う消費者に対して前記ハッシュ値を通知し、
最下流の工程において、前記消費者により前記ブロックチェーンに格納された前記全体累積対価を前記第1累積対価として含む前記消費者からのトランザクションを検証して、妥当であれば前記第2トランザクションを前記ブロックチェーンに格納する
処理を前記コンピュータに実行させることを特徴とする請求項1に記載の対価分配プログラム。
【請求項5】
前記所定の乱数を開示して前記第1トランザクションのロックを解除する第3トランザクションを前記ブロックチェーンに送信し、送信した前記第3トランザクションが正しいと認められた場合に、前記第1累積対価を取得する処理を前記コンピュータに実行させることを特徴とする請求項1に記載の対価分配プログラム。
【請求項6】
分岐を有する前記サプライチェーンにおける複数の前記最上流の工程のそれぞれにおいて、前記第1トランザクションの検証結果が妥当である場合に、各前記最上流の工程の署名を送信し、
前記最上流の工程以外の各前記所定工程において、1つ又は複数の1つ上流の工程から受信した署名を下流の工程へ送信し、
前記サプライチェーンにより提供された物の全体の累積対価を支払う消費者が、全ての前記最上流の工程の署名を取得して前記ブロックチェーンへ確認完了を記録した場合に、複数の前記最上流の工程のそれぞれにおいて、それぞれが生成した前記所定の乱数を1つ下流の工程へ送信し、
前記最上流の工程以外の各前記所定工程において、1つ又は複数の1つ上流の工程から受信した各前記所定の乱数を基に前記第1トランザクションをアンロックして前記第1累積対価を取得し、且つ、1つ又は複数の上流の工程から受信した各前記所定の乱数を1つ下流の工程へ送信する
処理を前記コンピュータに実行させることを特徴とする請求項1に記載の対価分配プログラム。
【請求項7】
サプライチェーンに含まれる複数の工程のうちの所定工程における対価分配装置が、
ブロックチェーンに格納された、1つ下流の工程において所定の乱数に基づくハッシュ値を用いてロックされ且つ最上流の工程から前記所定工程までの第1累積対価を含む第1トランザクションの妥当性を検証し、
前記検証の結果が妥当であれば、前記ハッシュ値を用いてロックした前記最上流の工程から1つ上流の工程までの第2累積対価を含む第2トランザクションを前記ブロックチェーンに格納し、
前記所定の乱数を基に前記第1トランザクションをアンロックして前記第1累積対価を取得し、
前記所定の乱数を前記1つ下流の工程へ送信する
処理を実行することを特徴とする対価分配方法。
【請求項8】
サプライチェーンに含まれる複数の工程のうちの所定工程に配置される対価分配装置であって、
ブロックチェーンに格納された、1つ下流の工程において所定の乱数に基づくハッシュ値を用いてロックされ且つ最上流の工程から前記所定工程までの第1累積対価を含む第1トランザクションの妥当性を検証するトランザクション検証部と、
前記トランザクション検証部による前記検証の結果が妥当であれば、前記ハッシュ値を用いてロックした前記最上流の工程から1つ上流の工程までの第2累積対価を含む第2トランザクションを前記ブロックチェーンに格納する送金トランザクション管理部と、
前記所定の乱数を基に前記第1トランザクションをアンロックして前記第1累積対価を取得し、前記所定の乱数を前記1つ下流の工程へ送信する対価取得部と
を備えたことを特徴とする対価分配装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、対価分配プログラム、対価分配方法及び対価分配装置に関する。
【背景技術】
【0002】
従来、サプライチェーンにおけるトレーサビリティ管理において、ブロックチェーンを用いた分散台帳技術や、分散台帳に取引条件を記載したスマートコントラクトを管理する技術を適用することが知られている。このような仕組みを活かした、無形価値流通による仮想経済圏は、ソーシャルチェーンなどと呼ばれる。
【0003】
近年では、気候変動、工業用水汚染、水の大量使用など環境問題が取り沙汰されており、サプライチェーンの参加者に、環境負荷を低減させるための意識改革や行動変容を促進させることが望まれる。そこで、これまで価値として認知されていなかった活動を指標化して、その価値を流通させることで、世の中を豊かにする仮想経済圏の実現へ向けた取り組みが進められている。例えば、サプライチェーンの各段階でのCO排出量などの情報を、無形の価値のトークンとして商品に内包させ、生産者から販売者へ、販売者から消費者へと、サプライチェーン全体で循環させる。このようなソーシャルチェーンを利用することで、企業も消費者も、その無形の価値を評価した取引などによる仮想経済の力学により、環境や社会全体にとってより良い結果を生み出すように行動を変化させる。
【0004】
ただし、サプライチェーンには、価値が多少高くても環境に良いものを購入したい消費者にとって、購入しようとする製品がどの様な環境貢献の元で製造されたものか分かりづらいという問題があった。他にも、サプライチェーンには、企業にとって、CO2排出量削減やエコ材料使用などの環境貢献のコストを、企業間で不均衡なく回収することが難しく、継続的な環境貢献に結び付きにくいといった問題があった。
【0005】
そこで、ソーシャルチェーンでは、これらの問題を次の2つの視点による解決が検討されている。1つは、無形価値を可視化して流通させる技術である。例えば、サプライチェーンが生み出す無形価値を可視化する証跡管理技術により、無形価値への消費者の関心を喚起することが可能である。また、証跡情報に基づいてトークンを生成するトークン生成技術により、消費者や投資家に無形価値への投資機会を提供することが可能となる。他の1つは、無形価値の適正な対価還元の技術である。例えば、証跡情報に基づいてトークンを分配する対価還元技術により、サプライヤーに対する無形価値への適切な対価の還元を実現することが可能となる。
【0006】
この2つの視点に基づく仕組みとして、無形価値に応じた対価を消費者からサプライチェーンに還元させ、この対価を、ブロックチェーン上で管理されるスマートコントラクトにより、サプライチェーン上の各工程の価値に応じて分配する仕組みが提案されている。
【0007】
なお、ブロックチェーンを用いた情報管理技術として、広告主が商品販売実績をゼロ知識証明の形式でブロックチェーン上に記録して、視聴者が広告実績と商品販売実績とを結びつけることで広告の成果を証明する技術が提案されている。また、携帯電話通信の基地局エリア毎にエッジノードを配置してブロックチェーンを構成し、サプライヤーは自己の基地局エリアのエッジノードにスマートコントラクトを要求する技術が提案されている。また、ブロックチェーンを利用する販売者システムにおいて、ゼロ知識証明を用いて販売者及び顧客のアカウントを匿名化する技術が提案されている。また、確率的準同型暗号及びゼロ知識証明を用いて、ブロックチェーン上でコミットメント化された取引金額及びお釣りの整合性を保証する技術が提案されている。さらに、証明者装置が有する秘密情報について証明者装置と複数の検証者装置との間で、複数並行して行われるゼロ知識対話証明プロトコルのセッションを管理する技術が提案されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】米国特許出願公開第2020/0334708号明細書
【特許文献2】米国特許出願公開第2022/0038289号明細書
【特許文献3】特表2022-510790号公報
【特許文献4】特表2020-515885号公報
【特許文献5】特開2006-41836号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、スマートコントラクトによりサプライチェーン上の各工程の価値に応じて対価を分配するシステムでは、サプライチェーンのルートに沿って対価分配が行われる場合がある。これは、信頼できる第三者機関を仮定しない場合に、ピアツーピアによる対価の受け渡しが強いられることを理由の1つとする。また、プライバシー保護の観点から累積価値を秘匿化する場合、各サプライヤーには1つ上流のサプライヤー以外の累積価値の情報が秘匿化されるため、サプライチェーンのルートに沿った対価分配が仕組みとして容易であることも理由の1つである。また、累積価値を秘匿化しない場合でも、消費者とサプライヤーとの間に、必ずしも対価の金額と比べて手数料が非常に安価な送金手段を付与することができないことも理由となる。ただし、この理由は、サプライヤー同士が日頃からペイメントチャネルのような手数料が非常に安価な送金手段を使用していることが前提となる。このように、サプライチェーンのルートに沿って対価分配が行われた場合、対価の一部もしくは全部が悪意のあるサプライヤーに持ち逃げされる危険が存在する。そのため、従来のサプライチェーンにおける対価分配技術では、サプライチェーンの安全性を十分に確保することが困難となる。
【0010】
開示の技術は、上記に鑑みてなされたものであって、サプライチェーンにおけるセキュリティを向上させる対価分配プログラム、対価分配方法及び対価分配装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
本願の開示する対価分配プログラム、対価分配方法及び対価分配装置の一つの態様において、サプライチェーンに含まれる複数の工程のうちの所定工程において、ブロックチェーンに格納された、1つ下流の工程において所定の乱数に基づくハッシュ値を用いてロックされ且つ最上流の工程から前記所定工程までの第1累積対価を含む第1トランザクションの妥当性を検証し、前記検証の結果が妥当であれば、前記ハッシュ値を用いてロックした前記最上流の工程から1つ上流の工程までの第2累積対価を含む第2トランザクションを前記ブロックチェーンに格納し、前記所定の乱数を基に前記第1トランザクションをアンロックして前記第1累積対価を取得し、前記所定の乱数を前記1つ下流の工程へ送信する。
【発明の効果】
【0012】
1つの側面では、本発明は、サプライチェーンにおけるセキュリティを向上させることができる。
【図面の簡単な説明】
【0013】
図1図1は、実施例1に係るサプライチェーンシステムのシステム構成図である。
図2図2は、対価分配装置のブロック図である。
図3図3は、実施例1に係るサプライチェーンシステムにおける対価分配処理の概要を示す図である。
図4図4は、実施例1に係るサプライチェーンシステムによる対価分配処理のシーケンス図である。
図5図5は、実施例2に係るサプライチェーンシステムによる対価分配処理の概略図である。
図6図6は、対価分配装置のハードウェア構成図である。
【発明を実施するための形態】
【0014】
以下に、本願の開示する対価分配プログラム、対価分配方法及び対価分配装置の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する対価分配プログラム、対価分配方法及び対価分配装置が限定されるものではない。
【実施例0015】
図1は、実施例1に係るサプライチェーンシステムのシステム構成図である。本実施例に係るサプライチェーンシステム1は、ある製品に関するサプライチェーンにおいて、各サプライヤー11~13が付加した部品の物理的価値及び無形価値に対する対価を、サプライチェーンのルートに沿って無形価値の付加に応じて適切に分配する。本実施例に係るサプライチェーンシステム1は、HTLC(Hashed Time Lock Contract)と呼ばれる技術を用いて対価の分配を行なう。HTLCとは、送金者が対価を送金する際に「トランザクションデータ内にハッシュ値」を入れ込み、そのハッシュ値の元の乱数を提供した者がその値のロックを解除できる仕組である。
【0016】
ここで、本実例におけるサプライチェーンは、製造工程における製品の原材料・部品の調達から、製造、在庫管理、販売、配送までを一連のプロセスを意味する。また、本実施形態のサプライチェーンによって製造される製品の部品毎の価値とは、サプライチェーンに含まれる製造工程のうち、部品を製造する工程の価値の一例である。
【0017】
本実施例に係るサプライチェーンシステム1には、3つのサプライヤー11~13及び消費者Pが存在する。例えば、各サプライヤー11~13は、サプライヤー11、12、13の順に部品を追加していき製品を完成させる。この際、各サプライヤー11~13は、それぞれの部品の製造において環境への配慮などに取り組むことで、それぞれの部品に無形価値を付加する。完成した製品は、消費者Pに提供される。サプライヤー11~13のそれぞれで付加された無形価値は、累積されていき、累積した無形価値として製品とともに消費者Pに提供される。以下の説明では、サプライヤー11~13のそれぞれを区別しない場合、サプライヤー10と呼ぶ。
【0018】
ここで、無形価値は、例えば、部品の製造工程において生じる環境価値などである。環境価値とは、例えば、環境維持または環境負荷の低減に貢献した度合いを示す指標であってもよい。
【0019】
また、以下の説明では、サプライチェーンにおいて、ある工程(部品)よりも上流の工程(部品)を、上流工程(上流部品)と呼び、ある工程(部品)よりも下流の工程(部品)を、下流工程(下流部品)と呼ぶ場合がある。
【0020】
消費者Pは、提供された製品及びその製品に付加された累積された無形価値に対価を支払う。支払われた対価は、各サプライヤー11~13に配分されて支払われる。以下に、サプライチェーンシステム1における対価配分について詳細に説明する。
【0021】
サプライチェーンシステム1は、図1に示すように、各サプライヤー11~13が有する対価分配装置100A~100C、消費者Pが有する端末装置20及びブロックチェーン管理装置30が配置される。以下では、対価分配装置100A~100Cをそれぞれ区別しない場合には、対価分配装置100と呼ぶ。
【0022】
対価分配装置100及び端末装置20とブロックチェーン管理装置30とは、ネットワークを介して接続されており、互いに通信可能とされている。また、サプライチェーンで取引関係のあるサプライヤー10同士、すなわち、サプライヤー11とサプライヤー12と、及び、サプライヤー12とサプライヤー13とは、データの送受信を直接行うための通信チャネルを有する。例えば、情報管理装置100Aと情報管理装置100Bと、情報管理装置100Bと情報管理装置100Cとがネットワークで接続される。また、最下流の工程のサプライヤー13と消費者Pとの間には、データの送受信を直接行うための通信チャネルが存在する。例えば、情報管理装置100Cと端末装置20とは、ネットワークで接続される。
【0023】
ブロックチェーン管理装置30は、サプライチェーンシステム1に含まれる分散台帳を管理する装置であり、複数の装置を含んでおり、それぞれがP2P(Peer to Peer)方式で接続される。
【0024】
ブロックチェーン管理装置30は、スマートコントラクト管理部31と、ブロックチェーン300とを有する。スマートコントラクト管理部31は、ブロックチェーン300に格納されたスマートコントラクトを管理する。ブロックチェーン300は、サプライチェーンに利用されても良く、その場合、部品登録スマートコントラクトや部品情報が格納される。また、ブロックチェーン300は、各サプライヤー10のそれぞれにおいて提供された部品及び無形価値の単体価値、及び、最上流のサプライヤー11からそのサプライヤー10までの累積価値の情報が格納される。
【0025】
端末装置20は、最上流の工程のサプライヤー11の対価分配装置100Aが生成した乱数に基づくハッシュ値を、対価分配装置100Aから受信する。そして、端末装置20は、サプライヤー11~13に対する累積価値の対価である累積対価を送金するための、宛先をサプライヤー13とするトランザクションであり、且つ、ハッシュ値を用いてロックをかけた送金トランザクションを生成する。そして、端末装置20は、生成した送金トランザクションをブロックチェーン300へ送信する。
【0026】
図2は、対価分配装置のブロック図である。次に、サプライヤー11~13における端末装置20から送信された累積対価の分配について説明する。また、ここではサプライヤー10が対価分配装置100を有するものとする。
【0027】
図2に示すように、対価分配装置100は、送金トランザクション管理部101、トランザクション検証部102、対価取得部103及び乱数生成部104を有する。ここで、乱数生成部104は、最上流の工程の対価分配装置100が有すればよく、他の対価分配装置100は有さなくてもよい。
【0028】
乱数生成部104は、最上流の工程の対価分配装置100で動作する。乱数生成部104は、適当な乱数を生成する。さらに、乱数生成部104は、生成した乱数のハッシュ値を計算して、算出したハッシュ値を消費者Pの端末装置20へ送信する。ここで、乱数生成部104は、例えば、閲覧の権限を消費者Pに限定したハッシュ値を含むトランザクションをブロックチェーン300へ送信することで、端末装置20へハッシュ値を送信することができる。他にも、最上流工程のサプライヤー11が消費者Pとの間にデータの送受信を直接行うための通信チャネルが存在する場合、乱数生成部104は、その通信チャネルを用いてハッシュ値を消費者Pに送信してもよい。
【0029】
トランザクション検証部102は、宛先が自装置であり且つ乱数に基づくハッシュ値でロックされた自工程までの累積対価の送金トランザクションが1つ下流の対価分配装置110からブロックチェーン300に登録されたことを確認する。自工程とは、自装置を有するサプライヤー10が行なう工程である。ここで、最下流の工程の対価分配装置100であれば、トランザクション検証部102は、同様の送金トランザクションの消費者Pによる登録を確認する。この1つ下流の工程から登録されたトランザクション検証部102による検証の対象となる送金トランザクションが、「第1トランザクション」の一例にあたる。
【0030】
次に、トランザクション検証部102は、最上流の工程の対価分配装置100で生成された乱数から算出されたハッシュ値を送金トランザクションから取得する。そして、トランザクション検証部102は、取得したハッシュ値を用いて送信された送金トランザクションの妥当性を検証する。例えば、トランザクション検証部102は、ブロックチェーン300に格納された自己のサプライヤー10による単体価値及び最上流の工程のサプライヤー10から自工程までの累積価値を基に、ゼロ知識証明を用いて送金トランザクションの検証を行う。
【0031】
送金トランザクションが妥当でない場合、トランザクション検証部102は、手続きの中止を決定する。これにより、対価分配装置100は、対価分配の手続きを中止する。この場合、サプライヤー11~13のいずれも対価を得られない。
【0032】
これに対して、送金トランザクションが妥当である場合、トランザクション検証部102は、トランザクションの送信を送金トランザクション管理部101に指示する。また、トランザクション検証部102は、最上流の工程の対価分配装置100で生成された乱数から算出されたハッシュ値を送金トランザクション管理部101へ出力する。
【0033】
ただし、最上流の工程の対価分配装置100であれば、トランザクション検証部102は、送金トランザクションが妥当である場合、累積対価の取得を対価取得部103に指示する。
【0034】
送金トランザクション管理部101は、最上流の工程の対価分配装置100で生成された乱数から算出されたハッシュ値とともに、トランザクションの送信の指示をトランザクション検証部102から受ける。次に、送金トランザクション管理部101は、宛先が自装置であり、1つ上流の工程までの累積対価を含み、且つ乱数から算出されたハッシュ値でロックをかけた送金トランザクションを生成する。ここで、送金トランザクション管理部101は、最上流の工程の対価分配装置100で生成された乱数から算出されたハッシュ値を送金トランザクションに含ませる。そして、送金トランザクション管理部101は、生成した送金トランザクションをブロックチェーン300へ送信する。この送金トランザクション管理部101から送られた送金トランザクションが、「第2トランザクション」の一例にあたる。ただし、この送金トランザクションは、宛先の対価分配装置100から見れば「第1トランザクション」にあたる。
【0035】
例えば、送金トランザクション管理部101は、次のような送金トランザクションを生成してブロックチェーン300へ送信する。送金トランザクション管理部101は、自己が所有する累積対価分のトランザクションアウトプットをトランザクションインプットとする。また、送金トランザクション管理部101は、「次のいずれかの条件を満たせば受取可能である」と記述したスクリプトをトランザクションアウトプットとする。送金トランザクション管理部101は、条件の1つを、例えば、予め決められた30日といった制限期間が経過し、且つ、送信元の正しい署名が付与された場合とする。また、送金トランザクション管理部101は、他の条件を、指定された数値のハッシュ値が登録されているハッシュ値と一致し、且つ、サプライヤー10の正しい署名が付与された場合とする。この送金トランザクションにより送信された累積対価は、乱数が開示されず対価分配が失敗した場合に消費者Pに返される。
【0036】
対価取得部103は、自装置から送信されたハッシュ値でロックがかけられた送金トランザクションをアンロックして累積対価を1つ上流の対価分配装置100へ送信するトランザクションがブロックチェーン300に取り込まれたことを確認する。以下では、ハッシュ値でロックがかけられた送金トランザクションをアンロックしてその送金トランザクションに含まれる累積価値を送信するトランザクションを、「解除トランザクション」と呼ぶ。ただし、最上流の工程の対価分配装置100における対価取得部103は、解除トランザクションの確認は行わない。
【0037】
次に、対価取得部103は、1つ上流の対価分配装置100により送信された解除トランザクションから、最上流工程の対価分配装置100で生成された乱数を取得する。ただし、最上流の工程の対価分配装置100の場合、対価取得部103は、乱数生成部104から乱数を取得し、且つ、累積対価の取得指示をトランザクション検証部102から受ける。
【0038】
次に、対価取得部103は、乱数を開示して、自装置宛ての累積価値がロックされた送金トランザクションをアンロックして、そこに含まれる累積対価をサプライヤー10へ送信する解除トランザクションをブロックチェーン300へ送信する。
【0039】
例えば、対価取得部103は、次のような解除トランザクションを生成してブロックチェーン300へ送信する。対価取得部103は、アンロックする送金トランザクションの識別子、乱数、及び、アンロックする送金トランザクションに対する自己のサプライヤー10の署名をトランザクションインプットとする。また、対価取得部103は、自己のサプライヤー10の正しい署名が付与された場合に受取可能となるスクリプトをトランザクションアウトプットとする。
【0040】
解除トランザクションを送信後、検証者であるマイナーに開示した乱数が正当であると判定された場合、サプライヤー10は、送金トランザクションに含まれていた累積対価を取得できる。このように、サプライチェーンシステム1は、送金トランザクションに乱数のハッシュ値でロックをかけ、乱数を開示する解除トランザクションを用いて送金トランザクションをアンロックして累積対価を取得するHTLCを利用して対価分配を実行する。
【0041】
マイナーとは、ブロックチェーン300におけるトランザクションの検証者である。例えば、マイナーは、対価分配装置100からブロックチェーン300に送信された解除トランザクションのトランザクションインプットによって与えられたパラメータが正しいことを確認する。具体的には、マイナーは、解除トランザクションを検索し、解除トランザクションの中身を参照したうえで、トランザクションアウトプットのスクリプトを乱数及び解除トランザクションに対する送信者の署名を引数として実行して、正常応答が得られる場合に乱数が適切と判定する。すなわち、マイナーは、開示された乱数に予め決められたハッシュ関数を用いてハッシュ値を算出し、その算出したハッシュ値が送金トランザクションに含まれるハッシュ値と一致するか否かにより開示された乱数が正しいか否かを判定する。マイナーは複数存在し、おおむね半数のマイナーが正常応答を確認した場合に、解除トランザクションがブロックチェーン300上に取り込まれ、ロックされていた累積価値がアンロックされて送信者であるサプライヤー10に所有権が移動する。
【0042】
図3は、実施例1に係るサプライチェーンシステムにおける対価分配処理の概要を示す図である。次に、図3を参照して、サプライチェーンシステム1における対価分配処理の概要をまとめて説明する。以下では、サプライヤー11~13及び消費者Pの間でトランザクションに含まれるデータが直接送受信されるように説明するが、実際にはブロックチェーン300を介してトランザクションに含まれるデータの送受信が行われる。また、ここでは、消費者Pが3BTC(Bit Coin)を支払い、サプライヤー11~13がそれぞれ1BTCずつ対価として受け取る場合で説明する。
【0043】
サプライヤー11の対価分配装置100Aの乱数生成部104が、乱数rを生成する。その後、乱数生成部104は、生成した乱数rから算出したハッシュ値H=hash(r)を消費者Pの端末装置20へ送信する(ステップS1)。
【0044】
端末装置20は、サプライヤー11~13の累積対価である3BTCを含み、宛先がサプライヤー13であり、且つ、ハッシュ値Hでロックした送金トランザクションをブロックチェーン300上の仮アドレス303に送信する(ステップS2)。ここでは、この送金トランザクションを、HTLC##3と示した。ここで、ブロックチェーン300上の仮アドレス301~303とは、所定の条件を満たせば受け取り可能であると記述されたスクリプトであるトランザクションアウトプットを表す。これにより、消費者Pは、ハッシュ値Hでロックされた3BTCを含む累積対価#3をサプライヤー13に送信する(ステップS2’)。
【0045】
サプライヤー13の対価分配装置100Cのトランザクション検証部102は、消費者Pから送信された累積対価#3を含むHTLC##3の妥当性を検証する。そして、累積対価#3を含むHTLC##3が妥当である場合、対価分配装置100Cの送金トランザクション管理部101は、サプライヤー11~12の累積対価である2BTCを含み、宛先をサプライヤー12とし、且つ、送金トランザクションをハッシュ値Hでロックした送金トランザクションを生成する。そして、対価分配装置100Cの送金トランザクション管理部101は、生成した送金トランザクションであるHTLC##2をブロックチェーン300上の仮アドレス302に送信する(ステップS3)。これにより、サプライヤー13は、ハッシュ値Hでロックされた2BTCを含む累積対価#2をサプライヤー12に送信する(ステップS3’)。
【0046】
サプライヤー12の対価分配装置100Bのトランザクション検証部102は、サプライヤー13の対価分配装置100Cから送信された累積対価#2を含むHTLC##2の妥当性を検証する。そして、累積対価#2を含むHTLC##2が妥当である場合、対価分配装置100Bの送金トランザクション管理部101は、サプライヤー11の累積対価である1BTCを含み、宛先をサプライヤー11とし、且つ、ハッシュ値Hでロックした送金トランザクションを生成する。そして、対価分配装置100Bの送金トランザクション管理部101は、生成した送金トランザクションであるHTLC##1をブロックチェーン300上の仮アドレス301に送信する(ステップS4)。これにより、サプライヤー12は、ハッシュ値Hでロックされた1BTCを含む累積対価#1をサプライヤー11に送信する(ステップS4’)。
【0047】
サプライヤー11の対価分配装置100Aのトランザクション検証部102は、サプライヤー12の対価分配装置100Bから送信された累積対価#1を含むHTLC##1の妥当性を検証する。そして、累積対価#1を含むHTLC##1が妥当である場合、対価分配装置100Aの対価取得部103は、乱数rを開示してブロックチェーン300上の仮アドレス301を有する送金トランザクションをアンロックする解除トランザクションを送信する。これにより、HTLC##1がアンロックされ、サプライヤー11は、1BTCである累積対価#1を取得する(ステップS5)。そして、サプライヤー12は、乱数rをサプライヤー11から取得する(ステップS5’)。
【0048】
サプライヤー12の対価分配装置100Bの対価取得部103は、乱数rを開示してブロックチェーン300上の仮アドレス302を有する送金トランザクションをアンロックする解除トランザクションをブロックチェーン300に送信する。これにより、HTLC##2がアンロックされ、サプライヤー12は、2BTCである累積対価#2を取得する(ステップS6)。そして、サプライヤー13は、乱数rをサプライヤー12から取得する(ステップS6’)。
【0049】
サプライヤー13の対価分配装置100Cの対価取得部103は、乱数rを開示してブロックチェーン300上の仮アドレス303を有する送金トランザクションをアンロックする解除トランザクションをブロックチェーン300に送信する。これにより、乱数rは消費者Pに開示され(ステップS7’)、HTLC##3がアンロックされる。そして、サプライヤー13は、3BTCである累積対価#3を取得する(ステップS7)。
【0050】
このように、本実施例に係るサプライチェーンシステム1は、HTLCを応用し、複数の送金トランザクションを、全てのトランザクションが成立するかもしくは全てが成立しなくなるかのいずれかとなるようにアトミックに実行する。すなわち、あるサプライヤー10が正当な対価を受け取れない場合は、一定時間後に全てのHTLCがロールバックされ、不正者を含めた全てのサプライヤー10が対価を受け取れなくなる。
【0051】
図4は、実施例1に係るサプライチェーンシステムによる対価分配処理のシーケンス図である。次に、図4を参照して、本実施例に係るサプライチェーンシステム1による対価分配処理の流れを説明する。
【0052】
対価分配装置100Aの乱数生成部104は、乱数を生成する。さらに、対価分配装置100Aは、生成した乱数のハッシュ値を算出する(ステップS101)。
【0053】
次に、対価分配装置100Aの乱数生成部104は、ハッシュ値を消費者Pの端末装置20に通知する(ステップS102)。
【0054】
消費者Pの端末装置20は、サプライヤー13までの累積対価を含む送金トランザクションをハッシュ値でロックをかけてサプライヤー13へ送信する(ステップS103)。
【0055】
対価分配装置100Cのトランザクション検証部102は、累積対価を含む送金トランザクションを検証する(ステップS104)。
【0056】
対価分配装置100Cのトランザクション検証部102は、検証結果により送金トランザクションが妥当か否かを判定する(ステップS105)。送金トランザクションが妥当でない場合(ステップS105:否定)、対価分配装置100Cは、手続きを中止する(ステップS106)。
【0057】
これに対して、送金トランザクションが妥当な場合(ステップS105:肯定)、対価分配装置100Cの送金トランザクション管理部101は、サプライヤー12までの累積対価を含むハッシュ値でロックをかけた送金トランザクションを生成する。そして、対価分配装置100Cの送金トランザクション管理部101は、生成した送金トランザクションをサプライヤー12へ送信する(ステップS107)。
【0058】
対価分配装置100Bのトランザクション検証部102は、累積対価を含む送金トランザクションを検証する(ステップS108)。
【0059】
対価分配装置100Bのトランザクション検証部102は、検証結果により送金トランザクションが妥当か否かを判定する(ステップS109)。送金トランザクションが妥当でない場合(ステップS109:否定)、対価分配装置100Bは、手続きを中止する(ステップS110)。
【0060】
これに対して、送金トランザクションが妥当な場合(ステップS109:肯定)、対価分配装置100Bの送金トランザクション管理部101は、サプライヤー11までの累積対価を含み且つハッシュ値でロックをかけた送金トランザクションを生成する。そして、対価分配装置100Bの送金トランザクション管理部101は、生成した送金トランザクションをサプライヤー11へ送信する(ステップS111)。
【0061】
対価分配装置100Aのトランザクション検証部102は、累積対価を含む送金トランザクションを検証する(ステップS112)。
【0062】
対価分配装置100Aのトランザクション検証部102は、検証結果により送金トランザクションが妥当か否かを判定する(ステップS113)。送金トランザクションが妥当でない場合(ステップS113:否定)、対価分配装置100Aは、手続きを中止する(ステップS114)。
【0063】
これに対して、送金トランザクションが妥当な場合(ステップS113:肯定)、対価分配装置100Aのトランザクション検証部102は、累積対価の取得を対価分配装置100Aの対価取得部103に指示する。対価分配装置100Aの対価取得部103は、乱数生成部104により生成された乱数を含む解除トランザクションをサプライヤー12へ送信する(ステップS115)。
【0064】
そして、対価分配装置100Aの対価取得部103は、乱数の開示によりサプライヤー11までの累積対価を取得する(ステップS116)。
【0065】
対価分配装置100Bの対価取得部103は、対価分配装置100Aから送信された解除トランザクションから乱数生成部104により生成された乱数を取得する。そして、対価分配装置100Bの対価取得部103は、乱数生成部104により生成された乱数を含む解除トランザクションをサプライヤー11へ送信する(ステップS117)。
【0066】
そして、対価分配装置100Bの対価取得部103は、乱数の開示によりサプライヤー12までの累積対価を取得する(ステップS118)。
【0067】
対価分配装置100Cの対価取得部103は、対価分配装置100Bから送信された解除トランザクションから乱数生成部104により生成された乱数を取得する。そして、対価分配装置100Cの対価取得部103は、乱数生成部104により生成された乱数を含む解除トランザクションを消費者Pへ送信する(ステップS119)。
【0068】
そして、対価分配装置100Cの対価取得部103は、乱数の開示によりサプライヤー13までの累積対価を取得する(ステップS120)。
【0069】
以上に説明したように、本実施例に係るサプライチェーンシステムは、HTLCを用いて消費者及び各サプライヤーが上位のサプライヤーに送信する対価分配のための送金トランザクションをアトミックに実行する。すなわち、いずれかのサプライヤーが適切な累積対価を得られない場合、サプライチェーンシステムに含まれる全てのサプライヤーへの対価分配が中止される。これにより、信頼できる第三者機関が存在しなくても、対価再分配における不正な持ち逃げを防止し、サプライチェーンのルートに沿った適切な対価分配を行なうことが可能となる。したがって、サプライチェーンにおけるセキュリティを向上させることが可能となる。
【実施例0070】
図5は、実施例2に係るサプライチェーンシステムによる対価分配処理の概略図である。本実施例に係るサプライチェーンシステム1は、サプライチェーンのルートの途中で枝分かれが存在する。本実施例に係るサプライチェーンシステム1は、サプライヤー11~14を有する。そして、各サプライヤー11~14は、対価分配装置100A~100Dをそれぞれ有する。
【0071】
サプライヤー11~13は、実施例1と同様のサプライチェーンのルートを有する。サプライヤー14は、サプライヤー12の1つ上流の工程を担当する。すなわち、サプライヤー12は、サプライヤー11及び14の双方から部品の供給を受ける。以下の説明では、消費者P及びサプライヤー11~14の間で送金トランザクションなどのデータの送受信を直接行うように説明する場合があるが、実際にはブロックチェーン300を介してデータの送受信が行われる。
【0072】
サプライチェーンの各枝における最上流のサプライヤー11及び14は、それぞれ、独立に乱数r1及びr2を生成する。すなわち、対価分配装置100Aの乱数生成部104は、乱数r1を生成する。また、対価分配装置100Dの乱数生成部104は、乱数r2を生成する。次に、対価分配装置100Aの乱数生成部104は、乱数r1のハッシュ値H1=hash(r1)を算出して消費者Pの端末装置20へ通知する(ステップS201)。同様に、対価分配装置100Dの乱数生成部104は、乱数r2のハッシュ値H2=hash(r2)を算出して消費者Pの端末装置20へ通知する(ステップS202)。
【0073】
消費者Pの端末装置20は、累積対価を含む送金トランザクションをハッシュ値H1及びH2を用いてロックをかけてサプライヤー13へ送信する(ステップS203)。
【0074】
サプライヤー13の対価分配装置100Cのトランザクション検証部102は、端末装置20から送信された送金トランザクションを検証する。送金トランザクションが妥当であれば、サプライヤー13の対価分配装置100Cの送金トランザクション管理部101は、累積対価を含む送金トランザクションをハッシュ値H1及びH2を用いてロックをかけてサプライヤー12へ送信する(ステップS204)。
【0075】
サプライヤー12の対価分配装置100Bのトランザクション検証部102は、サプライヤー13の対価分配装置100Cから送信された送金トランザクションを検証する。送金トランザクションが妥当であれば、対価分配装置100Bの送金トランザクション管理部101は、分岐した1つの枝であるサプライヤー11までの累積対価を含み且つハッシュ値H1を用いてロックをかけた送金トランザクションを生成する。そして、対価分配装置100Bの送金トランザクション管理部101は、サプライヤー11までの累積対価を含む生成した送金トランザクションをサプライヤー11へ送信する(ステップS205)。また、対価分配装置100Bの送金トランザクション管理部101は、分岐したもう1つの枝であるサプライヤー14までの累積対価を含み且つハッシュ値H2でロックをかけた送金トランザクションをサプライヤー14へ送信する。(ステップS206)。
【0076】
サプライヤー11の対価分配装置100Aのトランザクション検証部102は、サプライヤー12の対価分配装置100Bから送信された送金トランザクションを検証する。送金トランザクションが妥当であれば、サプライヤー11の対価分配装置100Aの対価取得部103は、ハッシュ値H1に対して電子署名を付与して1つ下流のサプライヤー12へ送信する(ステップS207)。
【0077】
サプライヤー14の対価分配装置100Dの対価取得部103は、サプライヤー12の対価分配装置100Bから送信された送金トランザクションを検証する。送金トランザクションが妥当であれば、サプライヤー14の対価分配装置100Dの対価取得部103は、ハッシュ値H2に対して電子署名を付与して1つ下流のサプライヤー12へ送信する(ステップS208)。このように、サプライチェーンのルートに分岐がある場合には、各枝の先端に位置する葉のサプライヤー10の対価分配装置100のそれぞれが、自己が送信したハッシュ値に対して電子署名を付して下流に送り返す。
【0078】
サプライヤー12の対価分配装置100Bの対価取得部103は、ハッシュ値H1に付されたサプライヤー11の電子署名を対価分配装置100Aから受信する。また、対価分配装置100Bの対価取得部103は、ハッシュ値H2に付されたサプライヤー14の電子署名を対価分配装置100Dから受信する。そして、対価分配装置100Bの対価取得部103は、ハッシュ値H1に付されたサプライヤー11の電子署名及びハッシュ値H2に付されたサプライヤー14の電子署名をサプライヤー11の対価分配装置100Cへ送信する(ステップS209)。
【0079】
サプライヤー13の対価分配装置100Cの対価取得部103は、ハッシュ値H1に付されたサプライヤー11の電子署名及びハッシュ値H2に付されたサプライヤー14の電子署名を消費者Pの端末装置20へ送信する(ステップS210)。
【0080】
消費者Pの端末装置20は、各葉のサプライヤー11及び14の電子署名を受信してそれぞれ検証する。そして、全ての葉のサプライヤー11及び14の電子署名の妥当性が確認できると、消費者Pの端末装置20は、ブロックチェーン300上に事前準備が完了した旨を記録する(ステップS211)。
【0081】
サプライヤー11の対価分配装置100Aの対価取得部103は、ブロックチェーン300上の事前準備完了の記録を確認して、乱数r1を開示する解除トランザクションをサプライヤー12へ送信する(ステップS212)。乱数r1を開示することで、サプライヤー11の対価分配装置100Aの対価取得部103は、サプライヤー11までの累積対価を取得する。
【0082】
また、サプライヤー14の対価分配装置100Dの対価取得部103は、ブロックチェーン300上の事前準備完了の記録を確認して、乱数r2を開示する解除トランザクションをサプライヤー12へ送信する(ステップS213)。乱数r2を開示することで、サプライヤー14の対価分配装置100Dの対価取得部103は、サプライヤー14までの累積対価を取得する。
【0083】
サプライヤー12の対価分配装置100Bの対価取得部103は、乱数r1及びr2をそれぞれの解除トランザクションから取得する。そして、サプライヤー12の対価分配装置100Bの対価取得部103は、乱数r1及びr2を開示する解除トランザクションをサプライヤー13へ送信する(ステップS214)。乱数r1及びr2を開示することで、サプライヤー12の対価分配装置100Bの対価取得部103は、サプライヤー12までの累積対価を取得する。
【0084】
サプライヤー13の対価分配装置100Cの対価取得部103は、乱数r1及びr2を解除トランザクションから取得する。そして、サプライヤー13の対価分配装置100Cの対価取得部103は、乱数r1及びr2を開示する解除トランザクションを消費者Pへ送信する(ステップS215)。乱数r1及びr2を開示することで、サプライヤー13の対価分配装置100Dの対価取得部103は、サプライヤー13までの累積対価を取得する。
【0085】
以上に説明したように、サプライチェーンのルートに分岐がある場合には、各枝の先端に位置する葉のサプライヤーそれぞれが、自己が送信したハッシュ値に対して電子署名を付して下流に送り返す。そして、葉のサプライヤー以外の各サプライヤーは、上流の全ての葉のサプライヤーの電子署名をサプライチェーンのルートに沿って消費者まで伝達する。消費者は、全ての葉のサプライヤーの電子署名を受信して検証を終えると、ブロックチェーン上に事前準備が完了した旨を記録する。各サプライヤーは、この事前準備の完了の記録を確認して、上流から順次乱数を開示して累積対価を取得していく。
【0086】
これにより、サプライチェーンのルートに分岐がある場合にも、サプライチェーンのルートに沿った適切な対価分配を行なうことが可能となる。したがって、サプライチェーンにおけるセキュリティを向上させることが可能となる。
【0087】
(ハードウェア構成)
図6は、対価分配装置のハードウェア構成図である。次に、図6を参照して、各実施例に係る対価分配装置100のハードウェア構成について説明する。
【0088】
本実施形態の対価分配装置100は、それぞれバス99で相互に接続されている入力装置91、出力装置92、ドライブ装置93、補助記憶装置94、メモリ装置95、演算処理装置96及びインターフェース装置97を含む情報処理装置である。
【0089】
入力装置91は、各種の情報の入力を行うための装置であり、出力装置92は、各種の情報の出力を行うための装置である。インターフェース装置97は、LAN(Local Area Network)カード等を含み、ネットワークに接続する為に用いられる。
【0090】
対価分配装置100が有する対価分配プログラムは、対価分配装置100の有する各種プログラムの少なくとも一部である。
【0091】
これらのプログラムは、例えば記憶媒体98の配布やネットワークからのダウンロード等によって提供される。また、これらのプログラムを記録した記憶媒体98は、CD-ROM(Compact Disk-Read Only Memory)、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記憶媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記憶媒体を用いることができる。
【0092】
また、対価分配プログラムは、これらを記録した記憶媒体98がドライブ装置93にセットされると、記憶媒体98からドライブ装置93を介して補助記憶装置94にインストールされる。ネットワークからダウンロードされた対価分配プログラムは、インターフェース装置97を介して補助記憶装置94にインストールされる。
【0093】
補助記憶装置94は、インストールされたプログラムを格納すると共に、必要なファイル、データ等を格納する。演算処理装置96は、対価分配装置100の起動時に補助記憶装置94から各種のプログラムを読み出してメモリ装置95に展開して格納する。そして、演算処理装置96は、メモリ装置95に格納されたプログラムを実行することで、図2に例示した、送金トランザクション管理部101、トランザクション検証部102、対価取得部103及び乱数生成部104の機能を実現する。
【0094】
各実施例で説明したサプライチェーンシステムは、上流の工程から取得した物に手を加えて付加価値を追加して下流の工程に渡していくサプライチェーンであれば適用可能である。例えば、適用可能なサプライチェーンとしては、機械の部品を付加して製品を製造するサプライチェーン、サブコンポーネントを各工程で順次付加していくようなソフトウェアに関するサプライチェーンなどがある。他にも、適用可能なサプライチェーンとして、原稿をアレンジして次に渡すような出版に関するサプライチェーンなどでもよい。
【符号の説明】
【0095】
1 サプライチェーンシステム
10~14 サプライヤー
20 端末装置
30 ブロックチェーン管理装置
31 スマートコントラクト管理部
100、100A~100D 対価分配装置
101 送金トランザクション管理部
102 トランザクション検証部
103 対価取得部
104 乱数生成部
300 ブロックチェーン
P 消費者
図1
図2
図3
図4
図5
図6