JP6767022B1 - 情報処理システム、情報処理方法及びプログラム - Google Patents

情報処理システム、情報処理方法及びプログラム Download PDF

Info

Publication number
JP6767022B1
JP6767022B1 JP2020087460A JP2020087460A JP6767022B1 JP 6767022 B1 JP6767022 B1 JP 6767022B1 JP 2020087460 A JP2020087460 A JP 2020087460A JP 2020087460 A JP2020087460 A JP 2020087460A JP 6767022 B1 JP6767022 B1 JP 6767022B1
Authority
JP
Japan
Prior art keywords
transaction
blockchain
card
alice
asset
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
JP2020087460A
Other languages
English (en)
Other versions
JP2021182263A (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.)
LayerX Inc
Original Assignee
LayerX Inc
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 LayerX Inc filed Critical LayerX Inc
Priority to JP2020087460A priority Critical patent/JP6767022B1/ja
Application granted granted Critical
Publication of JP6767022B1 publication Critical patent/JP6767022B1/ja
Publication of JP2021182263A publication Critical patent/JP2021182263A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】複数台帳間での状態遷移についてのアトミック性を担保することができるようにする。【解決手段】情報処理方法であって、第1のアセットを管理する第1の台帳データベースに対して第1のアセットに対する第1の操作を行うとともに、第2のアセットを管理する第2の台帳データベースに対して第2のアセットに対する第2の操作を行う場合に、第1の台帳データベースにおいて第1のアセットをロックし、第2の台帳データベースに対して第2の操作を行うトランザクションを送信し、トランザクションが成功した場合に、第1のアセットのロックを解除し、第1の操作を行うこと、を特徴とする。【選択図】図1

Description

本発明は、情報処理システム、情報処理方法及びプログラムに関する。
複数のブロックチェーン間で通信を行うクロスチェーン通信が検討されている(例えば特許文献1参照)。
特表2019−536380号公報
しかしながら、特許文献1に記載のシステムでは複数のブロックチェーンに跨がる状態遷移についてアトミック性を担保することができない。
本発明はこのような背景を鑑みてなされたものであり、複数台帳間での状態遷移についてのアトミック性を担保することのできる技術を提供することを目的とする。
上記課題を解決するための本発明の主たる発明は、情報処理方法であって、第1のアセットを管理する第1の台帳データベースに対して前記第1のアセットに対する第1の操作を行うとともに、第2のアセットを管理する第2の台帳データベースに対して前記第2のアセットに対する第2の操作を行う場合に、前記第1の台帳データベースにおいて前記第1のアセットをロックし、前記第2の台帳データベースに対して前記第2の操作を行うトランザクションを送信し、前記トランザクションが成功した場合に、前記第1のアセットのロックを解除し、前記第1の操作を行うこと、を特徴とする。
その他本願が開示する課題やその解決方法については、発明の実施形態の欄及び図面により明らかにされる。
本発明によれば、複数台帳間での状態遷移についてのアトミック性を担保することができる。
本実施形態の取引管理システムの構成例を示す図である。 ブロックチェーンAの構成例を示す図である。 本実施形態の取引管理システムにおける取引を説明する図である。 ブロックチェーンA及びBを構成するノード20のハードウェア構成例を示す図である。 ノード20のソフトウェア構成例を示す図である。 ユーザ端末13のソフトウェア構成例を示す図である。 クロスチェーンでのカードの操作が正常に終了した場合の動作を説明する図である。 クロスチェーンでのカードの移転がブロックチェーンAで失敗した場合の動作を説明する図である。 クロスチェーンでの騎士のカードの移転操作がブロックチェーンBで失敗した場合の動作を説明する図である。 クロスチェーンでのカードの操作中に取引の中止が指示された場合の動作を説明する図である。 クロスチェーンでのアセットの操作中に中止が指示されたが中止できなかった場合の動作を説明する図である。
<発明の概要>
本発明の実施形態の内容を列記して説明する。本発明は、たとえば、以下のような構成を備える。
[項目1]
第1のアセットを管理する第1の台帳データベースに対して前記第1のアセットに対する第1の操作を行うとともに、第2のアセットを管理する第2の台帳データベースに対して前記第2のアセットに対する第2の操作を行う場合に、
前記第1の台帳データベースにおいて前記第1のアセットをロックし、
前記第2の台帳データベースに対して前記第2の操作を行うトランザクションを送信し、
前記トランザクションが成功した場合に、前記第1のアセットのロックを解除し、前記第1の操作を行うこと、
を特徴とする情報処理方法。
[項目2]
項目1に記載の情報処理方法であって、
前記第2の操作の完了前に、前記2の操作を中止する中止トランザクションを前記第2の台帳データベースに送信し、
前記中止トランザクションが成功したときに、前記第1の操作を中止して前記ロックを解除すること、
を特徴とする情報処理方法。
[項目3]
項目2に記載の情報処理方法であって、
前記中止トランザクションが失敗したときには、前記ロックを解除して前記第1の操作を完了すること、
を特徴とする情報処理方法。
[項目4]
項目1に記載の情報処理方法であって、
前記トランザクションが失敗したときには、前記第1の操作を中止して前記ロックを解除すること、
を特徴とする情報処理方法。
[項目5]
第1のアセットを管理する第1の台帳データベースに対して前記第1のアセットに対する第1の操作を行うとともに、第2のアセットを管理する第2の台帳データベースに対して前記第2のアセットに対する第2の操作を行う場合に、
コンピュータに、
前記第1のアセットをロックするステップと、
前記第2の台帳データベースに対して前記第2の操作を行うトランザクションを送信するステップと、
前記トランザクションが成功した場合に、前記第1のアセットのロックを解除し、前記第1の操作を行うステップと、
を実行させるためのプログラム。
<システムの概要>
以下、本発明の一実施形態に係る取引管理システムについて説明する。図1は、本実施形態の取引管理システムの構成例を示す図である。本実施形態の取引管理システムは、2つのブロックチェーンA及びブロックチェーンBを含んで構成される。なお、取引管理システムは2つ以上のブロックチェーンを含むようにすることもできる。ブロックチェーンとは、複数のノードの間で、取り扱う台帳データをセキュアに共有する分散データベースである。本実施形態では、ブロックチェーンを一例として取り上げるが、本実施形態の思想は、ブロックチェーンではない分散台帳技術を用いた任意の台帳管理システムについて適用可能である。また、ブロックチェーンA及びBに代えて、分散型でない台帳データベースを採用することもできる。例えば、ブロックチェーンA及び/又はBは、リレーショナルデータベースやオブジェクトデータベース、キーバリューストアなどのデータベースシステムにより台帳を管理することも可能である。
ブロックチェーンA及びブロックチェーンBはそれぞれ、ユーザ端末13と通信可能に接続される。ユーザ端末13は、例えば、パーソナルコンピュータやスマートフォン、タブレットコンピュータなどのコンピュータである。システムの利用者はユーザ端末13を操作して、ブロックチェーンA及びBで管理されるアセット(本実施形態では、トレーディングカードゲームに用いられるカードを想定するが、これに限らず、電子的なアセットとして管理できるものであればよい。)の操作を行うことができる。
図2は、ブロックチェーンAの構成例を示す図である。なお、ブロックチェーンBについても同様の構成を備えることができる。ブロックチェーンAは、複数のノード20により構成されうる。各ノード20は分散台帳31を備えることができる。この分散台帳31の内容がいわゆるブロックチェーンの仕組みにより改ざん困難に管理されうる。なお、ブロックチェーンによる分散台帳管理の仕組みについては一般的なものを採用するものとしてここでは詳細な説明を省略する。
<アセット操作の概要>
本実施形態では、2つのブロックチェーンA及びBに跨がる、いわゆるクロスチェーンでのカードの操作を行う。カードの操作には、例えば、カードの生成、削除、移転、ロックなど、アセットの状態を変化させる任意の操作が含まれる。また、カードがファンジブル(代替可能)である場合などには、カードの種類毎にユーザが何枚のカードを所有しているかを管理するべく、カード枚数の加算や減算などの操作も含まれうる。カードの操作は、トランザクションとして分散台帳31に登録される。以下の説明において、ブロックチェーンAでは、「ドラゴン」のカードを管理しており、ブロックチェーンBでは、「騎士」のカードを管理しているものとし、カードはいずれも代替可能なファンジブルトークン(FT)として管理されているものとする。
本実施形態の取引管理システムでは、ブロックチェーンA上でドラゴンのカードをロックし、このロックを確認したのち、ブロックチェーンBにおいて騎士のカードの所有権を移転する。また、ブロックチェーンAでは、ブロックチェーンBでの移転完了を確認したのち、ドラゴンのカードのロックを解除し、ドラゴンのカードの所有権を移転する。取引が完了する前に取引を中止する場合には、取引中止をブロックチェーンBに伝達し、ブロックチェーンBで対応する取引の中止を記録する。取引中止の記録が完了したことが確認された場合にのみ、ロックしてあるドラゴンのカードを持ち主に返却する。以上のようにして、クロスチェーンでのカード所有権の操作をアトミックに行うことができる。アトミックな操作(原子操作)とは、複数の操作が全て成功するか、あるいは全て失敗するかが保証されるように操作が行われることをいう。本実施形態の取引管理システムでは、上述のドラゴン及び騎士のカードについて、ドラゴン及び騎士のカードが全て移転するか、いずれも移転しないかの何れかとなるように保証されている。
図3は、本実施形態の取引管理システムにおける取引を説明する図である。例えば、ブロックチェーンAにおいてアカウント(図3の例ではAliceとBob)ごとにドラゴンのカードの所有枚数が管理されており、ブロックチェーンBにおいてはアカウントごとに騎士のカードの所有枚数が管理されている。図3の例では、Aliceはドラゴンのカードを1枚、騎士のカードを0枚有しており、Bobはドラゴンのカードを0枚、騎士のカードを2枚有している。ここでドラゴンのカードの1枚と騎士のカード2枚とが同価値であり、Aliceの1枚のドラゴンのカードと、Bobの2枚の騎士のカードとを交換することを考える。これは、AliceからBobに1枚のドラゴンのカードの譲渡があり、同時に、BobからAliceに2枚の騎士のカードの譲渡があることになる。この取引にはアトミック性が求められる。すなわち、ブロックチェーンAにおいてAliceのドラゴンのカードの所有枚数を1減らし、Bobのドラゴンのカードの所有枚数を1増やすとともに、ブロックチェーンBにおいてBobの騎士のカードの所有枚数を2減らし、Aliceの騎士のカードの所有枚数を2増やすという状態遷移の全てが成功するか、全てが失敗するかのいずれかであることが担保される必要がある。
ここでブロックチェーンA及びBのそれぞれにおいて、カードの移動(所有枚数の変更)の前にアセットをロックすることでアトミック性を担保することができる。本実施形態の取引管理システムではさらに、一方のブロックチェーン(本実施形態ではブロックチェーンA)におけるアセット(本実施形態ではドラゴンのカード)のみをロックすることによって、アトミック性を担保するとともに、ブロックチェーンBにおけるアセット(騎士のカード)の流動性をなるべく阻害しないようにすることができる。以下、詳細について説明する。
<ノード20>
図4は、ブロックチェーンA及びBを構成するノード20のハードウェア構成例を示す図である。なお、図示された構成は一例であり、これ以外の構成を有していてもよい。ノード20は、CPU201、メモリ202、記憶装置203、通信インタフェース204、入力装置205、出力装置206を備える。記憶装置203は、各種のデータやプログラムを記憶する、例えばハードディスクドライブやソリッドステートドライブ、フラッシュメモリなどである。通信インタフェース204は、通信ネットワークに接続するためのインタフェースであり、例えばイーサネット(登録商標)に接続するためのアダプタ、公衆電話回線網に接続するためのモデム、無線通信を行うための無線通信機、シリアル通信のためのUSB(Universal Serial Bus)コネクタやRS232Cコネクタなどである。入力装置205は、データを入力する、例えばキーボードやマウス、タッチパネル、ボタン、マイクロフォンなどである。出力装置206は、データを出力する、例えばディスプレイやプリンタ、スピーカなどである。なお、入力装置205及び出力装置206は省略することもできる。
図5は、ノード20のソフトウェア構成例を示す図である。なお、ノード20には、全てのブロックを記憶して検証するフルノード、ブロックのヘッダのみを管理するライトクライアント、特定のフルノードに依存し、トランザクションの検証を行わないカストディアルウォレットなどの種類がある。図5に示すノード20の構成は、フルノードを想定する。ライトクライアントなどでは、不要な機能部又は記憶部を省略することができる。
ノード20は、トランザクション受付部211、ロック処理部212、ブロック登録部214及び分散台帳31を備える。なお、トランザクション受付部211、ロック処理部212、及びブロック登録部214は、ノード20が備えるCPU201が記憶装置203に記憶されているプログラムをメモリ202に読みだして実行することにより実現することができ、分散台帳31は、メモリ202及び記憶装置203が提供する記憶領域の一部として実現することができる。
トランザクション受付部211は、トランザクションを受け付ける。トランザクションとは、アセットの所有権の移動などの取引を示すデータである。トランザクションには、アセットの指定と、2つのアカウント(図3の例ではAlice及びBob)の指定と、それぞれアカウントの残高(カードの所有枚数)に対して加減算が行われる値とが含まれうる。
ロック処理部212は、アセットのロックを行う。ロック処理部212は、操作対象となるアセットをエスクローアカウントに一時的に移転させる、いわゆるエスクロー処理により、カードのロックを実現することができる。なお、ロック処理には、上記のようなエスクロー処理に限らず、一般的な各種の手法を採用することが可能であり、ロック処理の詳細についての説明は省略する。
ブロック登録部214は、トランザクションのブロックへの取り込みを行う。ブロック登録部214は、トランザクションをブロックに取り込むとともに、一般的なブロックチェーンの手法を用いてコンセンサスを取り、分散台帳31を構成するチェーンにブロックを連結する。本実施形態では、コンセンサスは、所定数のコンセンサスノードによる署名がなされたことにより成立するものとする。後述するように、本実施形態では、他のブロックチェーンにおけるトランザクションが正しく分散台帳に登録されたことを条件として、自身のブロックチェーンにおけるトランザクションの実行結果を分散台帳31に反映させるようにすることができる。例えば、ブロックチェーンAを構成するノード20のブロック登録部214は、ブロックチェーンBにおいてBobからAliceにカードが移転したトランザクションが登録されたことを条件として、ブロックチェーンAにおいてAliceからBobにカードを移転させることができる。他のブロックチェーンにおいてトランザクションが登録されたことは、例えば、ブロックチェーンBから取得したブロックを与え、このブロックに対象のトランザクションが含まれており、ブロックに対する署名が存在し、当該署名の検証に成功するとともに、検証に成功した署名の数が所定数以上あるか否かにより確認することができる。
分散台帳31は、ブロックチェーンで管理される分散台帳であり、ブロックを記録する。なお、分散台帳31の構成は、一般的なブロックチェーンにおける台帳の構成を採用するものとする。
<ユーザ端末13>
図6は、ユーザ端末13のソフトウェア構成例を示す図である。なお、ユーザ端末13のハードウェア構成は、図4に示すノード20の構成と同様のものとすることができるので、ここでは説明を省略する。ユーザ端末13は、トランザクション送信部131を備える。トランザクション送信部131は、ユーザ端末13が備えるCPUが記憶装置に記憶されているプログラムをメモリに読み出して実行することにより実現される。
トランザクション送信部131は、トランザクションを送信する。本実施形態では、ユーザからの操作に応じて、ブロックチェーンA又はBに対して、そのブロックチェーンが管理しているカードの所有者を移転させるトランザクションや、ブロックチェーンで管理されているカードのロックを指示するトランザクションを送信することができる。
<動作>
以下、本実施形態の取引管理システムの動作を説明する。以下は、図3の例に示すAliceとBobとの間のカードの交換が行われる場合の動作を説明したものである。
<正常系>
図7は、クロスチェーンでのカードの操作が正常に終了した場合の動作を説明する図である。
正常時には、Aliceのドラゴンのカードを1枚ロックするトランザクションがAliceのユーザ端末13からブロックチェーンAのノード20に送信される(S301)。ノード20は、移転が可能であること(Aliceの所有枚数が足りていることや、取引制限がかかっていないことなど)を確認したうえで、ブロックチェーンAにおいて操作の対象となるAliceのドラゴンのカード1枚ををロックする(S302)。ノード20は、Aliceのアカウントをロックしてもよいし、Aliceの所有しているドラゴンのカード1枚分を移転できないように取り出すエスクロー管理を行うようにしてもよい。
Bobのユーザ端末13が、ブロックチェーンAでのAliceのドラゴンのカードのロック成功を確認すると(S303)、騎士のカードをBobからAliceに2枚移転するトランザクションをブロックチェーンBに送信する(S304)。
ブロックチェーンBにおいてノード20は、受信したトランザクションをブロックに追加し、トランザクションを取り込んだブロック(以下、取引ブロックという。)についてのコンセンサスを取り、コンセンサスに成功した場合に、取引ブロックをブロックチェーンに追加し、分散台帳31を更新する(S305)。なお、本実施形態では、ブロックチェーンA及びBでは、カードの所有枚数管理は、アカウント型、すなわち、Bob及びAliceのカードに対する所有枚数がアカウントに管理されているものとする。また、本実施形態では、取引ブロックを追加するコンセンサスは、所定数以上のノード20により署名がなされたか否かにより成否が判断されるものとする。
Bobのユーザ端末13は、ブロックチェーンBにおける対象ブロックの取り込み成功を確認すると(S306)、Aliceのドラゴンのカード1枚のロックを解除し、AliceからBobに移転するトランザクションをブロックチェーンAのノード20に送信する(S307)。トランザクションを受信したノード20は、トランザクションをブロックに組み込み、トランザクションが取り込まれた取引ブロックのコンセンサスを取ってブロックチェーンに登録する(S308)。ここでノード20は、ブロックチェーンBにおけるBobからAliceへの「騎士」のカードの移転が成功したことを条件として、「ドラゴン」のカードの所有枚数を変動させるようにすることができる。Bobのユーザ端末13は、BobからAliceへの騎士のカードのトランザクションが登録された取引ブロックを取得して、ブロックチェーンAのノード20にトランザクションに付帯させて渡すことができる。ノード20は、渡された取引ブロックに、BobからAliceへの騎士のカードの移転トランザクションが含まれていること、また、当該取引ブロックに所定数以上の署名が付されていること(すなわち、トランザクションが成功したこと)を検証し、当該検証に成功した場合に、AliceからBobへのドラゴンのカードの移転トランザクションに係る所有枚数を変動させることができる。
<ロックの失敗(A)>
図8は、クロスチェーンでのカードの移転がブロックチェーンAで失敗した場合の動作を説明する図である。
Aliceのユーザ端末13からAliceのドラゴンのカードを1枚ロックするためのトランザクションがブロックチェーンAのノード20に送信され(S321)、ノード20において当該トランザクションに係るカードのロックに失敗した場合(例えば、Aliceの所有枚数不足している場合など)には(S322)、Bobのユーザ端末13は、ロックが失敗したことを検知し(S323)、以降の処理を行わないようにする。ここでAliceのユーザ端末13も、ロックが失敗したことを検知して処理を中止するようにしてもよい。
<移転の失敗(B)>
図9は、クロスチェーンでの騎士のカードの移転操作がブロックチェーンBで失敗した場合の動作を説明する図である。
Aliceのユーザ端末13からAliceのドラゴンのカードを1枚ロックするように指示するトランザクションがブロックチェーンAのノード20に送信される(S341)。ブロックチェーンAのノード20はAliceのドラゴンのカードを1枚ロックする(S342)。
Bobのユーザ端末13は、ブロックチェーンAにおけるドラゴンのカードのロックが成功したことを確認すると(S343)、BobからAliceに騎士のカードを2枚移転するトランザクションをブロックチェーンBに送信する(S344)。ブロックチェーンBのノード20は、トランザクションに応じて騎士のカードの移転を試行するも、例えば所有枚数不足(Bobのアカウントの所有枚数が2枚未満)などにより取引が失敗することがある(S345)。ここで、ブロックチェーンBが、所有枚数不足により取引に失敗した記録を残さない実装である場合には、Aliceのユーザ端末13は、騎士のカードの移転失敗を検知し、取引中止を示すトランザクションを作成してブロックチェーンBの台帳に登録するようにしてもよい。
Aliceのユーザ端末13は、ブロックチェーンBにおける騎士のカードの移転トランザクションが失敗したことを検知すると(S346)、Aliceの1枚のドラゴンのカードのロックを解除する旨の操作命令をブロックチェーンAに送信し(S347)、ブロックチェーンAのノード20は、Aliceの1枚のドラゴンのカードのロックを解除する(S348)。この際、Aliceのユーザ端末13は、ブロックチェーンBにおける騎士のカードの移転トランザクションを含むブロック、または、所有枚数不足によりトランザクションが無効化した記録を含むブロックを取得して、ノード20に渡すことができる。ノード20は、取引が失敗した又は取引が中止された記録を含むブロックに所定数以上の署名が付されていることを検証し、検証に成功した場合に、ロックの解除を行うようにすることができる。このようにして、Bobの騎士のカードが移転に失敗した場合には、ドラゴンのカードはAliceに返却される。なお、Bobのユーザ端末13が、ドラゴンのカードに関するトランザクションをブロックチェーンAのノード20に送信したとしても、ブロックチェーンBにおける騎士のカードのトランザクション移転トランザクションが失敗していることから、ブロックチェーンAでのトランザクションの成功を検証することができず、ドラゴンのカードに関するトランザクションも失敗することになる。
<取引の中止>
図10は、クロスチェーンでのカードの操作中に取引の中止が指示された場合の動作を説明する図である。
Aliceのユーザ端末13からAliceのドラゴンのカードを1枚ロックするトランザクションがブロックチェーンAのノード20に送信され(S361)、トランザクションを受信したノード20はAliceのドラゴンのカードを1枚ロックする(S362)。
Bobのユーザ端末13は、ブロックチェーンAにおけるドラゴンのカードのロックトランザクションが成功したことを確認した後(S363)、騎士のカードをBobからAliceに2枚移転するトランザクションをブロックチェーンBに送信する(S364)。ここでAliceのユーザ端末13が、取引中止命令をブロックチェーンBに送信した場合(S365)、ブロックチェーンBにおいて取引中止が可能であったとき(例えば、まだ騎士のカードの移転に係るトランザクションがブロックに取り込まれていないとき)には、例えば取引中止のトランザクションを発行することにより取引を中止することができる(S366)。取引中止のトランザクションが、アセットの移転に係る正常系のトランザクションよりも先にブロックに取り込まれることにより、正常系のトランザクションが後から処理されても無効になるようにすることができる。
Aliceのユーザ端末13は、ブロックチェーンBにおける取引中止の成功を確認し(S367)、ロックしていた1枚のAliceのドラゴンのカードのロックを解除するトランザクションをブロックチェーンAに送信する(S368)。ブロックチェーンAのノード20は、Aliceの1枚のドラゴンのカードのロックを解除する(S369)。なお、ロック解除のトランザクションについても、ブロックチェーンAにおける取引中止のトランザクションの検証(移転トランザクションと同様に、ブロックチェーンAから取得したブロックに取引中止のトランザクションが含まれ、検証された署名が所定数以上付されているか否かにより行うことができる。)を行い、取引中止の検証に成功したことを条件として、ロック解除を行うようにすることができる。
<取引の中止の失敗>
図11は、クロスチェーンでのアセットの操作中に中止が指示されたが中止できなかった場合の動作を説明する図である。
Aliceのユーザ端末13からAliceのドラゴンのカードを1枚ロックするトランザクションがブロックチェーンAのノード20に送信され(S381)、トランザクションを受信したノード20はAliceのドラゴンのカードを1枚をロックする(S382)。
Bobのユーザ端末13は、ブロックチェーンAにおけるドラゴンのカードのロックが成功したことを確認した後(S383)、騎士のカードをBobからAliceに2枚移転するトランザクションをブロックチェーンBに送信する(S384)。そして、ブロックチェーンBのノード20は、当該トランザクションをブロックに取り込んで、Bobの騎士のカードが2枚Aliceに移転する(S385)。移転後に、Aliceのユーザ端末13から取引中止命令がブロックチェーンBに送信された場合(S386)、ブロックチェーンBのノード20は、取引中止のトランザクションを取り込むことができない。このようにブロックチェーンBにおいて取引中止のトランザクションが失敗した場合には(S387)、Aliceはドラゴンのカードは取り返すことができない。
一方、Bobのユーザ端末13は、騎士のカードの移転トランザクションが成功したことを確認した後(S388)、当初の予定どおり、AliceからBobにドラゴンのカードを1枚移転するトランザクションをブロックチェーンAに送信する(S389)。上述したように、ここでBobのユーザ端末13からは、ブロックチェーンBにおいてBobからAliceへの騎士のカードの移転トランザクションが含まれる取引ブロックがブロックチェーンAのノード20に提供され、このブロックチェーンBでの取引ブロックについては上述した検証が成功するため、ブロックチェーンAのノード20は、1枚のAliceのドラゴンのカードのロックを解除してAliceからBobにドラゴンのカードを1枚移転するトランザクションを登録して移転操作を行うことができる(S390)。これにより、騎士カードの移転に係る取引中止が要求された場合でも、取引中止に失敗したときには、対応するドラゴンの移転が予定どおり行われ、取引全体をアトミックに行うことができる。
以上のようにして、本実施形態の取引管理システムでは、複数のブロックチェーンA及びBに亘る一連のアセットの操作をアトミックに行うことができる。また、本実施形態の取引管理システムによれば、アトミック性を保ちながら途中で取引を中止することもできる。また、本実施形態の取引管理システムによれば、ブロックチェーンA又はBにそれぞれに閉じていたカードの取引を、ブロックチェーンA及びBの両方で行うことができるので、カードの流動性を向上させることができる。また、本実施形態の取引管理システムによれば、必要なカードをロックしながら、他のカードは取引可能とすることができるので、カードの流動性を損なわずにアトミックな取引を実現することができる。また、本実施形態の取引管理システムによれば、ブロックチェーンBでは騎士のカードのロックを行う必要がないので、カードの流動性を損なわずにアトミックな取引を実現することができる。
以上、本実施形態について説明したが、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
例えば、本実施形態では、ユーザ端末13からブロックチェーンA及びBに直接トランザクションが送信されていたが、ユーザ端末13とブロックチェーンA及びBとの間に、信頼できる第三者(trusted third party)が運用するサーバ装置を配置し、このサーバ装置がトランザクションの送信先を決定するようにしてもよい。この場合、ブロックチェーンA及びBにおいてトランザクションが成功したかどうか(残高不足等で失敗したり、取引中止命令によりトランザクションが登録されなかったしなかったかどうか)を、サーバ装置が検知して、ユーザ装置13に通知することができる。
また、トランザクション自体は、ユーザ端末13からブロックチェーンA及びBに送信しつつ、各ブロックチェーンA及びBにおけるトランザクションの成否は、上記信頼できる第三者のサーバ装置が確認して、ユーザ端末13に伝達するようにしてもよい。この場合、サーバ装置がブロックチェーンA及びBの分散台帳を構成しているブロックにアクセスし、ブロックに対象取引に係るトランザクションが含まれ、当該ブロックに署名が付されており、当該署名の検証に成功し、かつ、検証に成功した署名が所定数以上存在するか否かにより、対象取引に係るトランザクションの成否を確認することができる。そして、サーバ装置が、対象取引のトランザクション又は当該トランザクションを含むブロックに署名し、署名したトランザクション又はブロックをユーザ装置13に送信する。例えば、Bobのユーザ装置13は、このサーバ装置により署名されたブロックを付帯させてトランザクションをブロックチェーンAに送信することにより、ブロックチェーンAのノード20は、この署名を検証し、検証に成功したことを条件として、Bobからの指示に応じて、AliceからBobへのドラゴンのカードの移転トランザクションを登録することができる。
また、本実施形態では、他のブロックチェーンにおいてトランザクションが登録されたことは、一例として、対象のトランザクションが含まれるブロックについて、署名が所定数以上存在するか否かに応じて検証するものとしたが、これに限らず、例えば、対象のトランザクションが含まれるブロックが繋がっているチェーンの長さに応じて検証することもできる。例えば、チェーンの長さが所定数以上であることを確認することができる。この場合、例えば、ユーザ端末13は、ブロックのヘッダのみを連続させたチェーンを取得してノード20に与え、ノードがこのチェーンの連続性を検証してチェーンの長さを確認することができる。また、信頼できる第三者であるサーバ装置を用いる場合には、サーバ装置がブロックチェーンA又はBにおけるチェーンの長さを確認することができる。この場合に、サーバ装置は、このチェーンの長さが、ブロックチェーンA又はBにおいて最長であることにより、ブロックの正当性を検証するようにすることもできる、
また、本実施形態では、カードの所有枚数管理は、アカウント型、すなわち、Bob及びAliceの所有枚数がアカウントに管理されているものとしたが、これに限らず、UTXO(Unspent Transaction Output)型で管理されるようにしてもよい。UTXO型の場合、BobからAliceにカードが移転したトランザクションが分散台帳に管理され、トランザクションの履歴を合計することでアカウントの所有枚数が算出される。
アカウント型の場合、ブロックチェーンAにおけるエスクロー機能、ならびに、ブロックチェーンBにおける取引(カードの移転)及び取引中止の機能を、スマートコントラクトとしてデプロイすることで、グローバルに機能させ、どのようなユーザ間の処理であっても使えるようにすることができる。これに対して、UTXO型の場合、グローバルな機能としてデプロイすることが難しい。
そこで、UTXO型の場合には、消費条件及びダミーUTXOを用いることにより追加機能を実装することができる。
具体的には、ブロックチェーンAがUTXO型である場合に、消費条件を実装する。すなわち、ブロックチェーンAは消費条件を実装可能なブロックチェーンである必要がある。消費条件を設定することにより、エスクロー機能を実装することができる。
また、ブロックチェーンBがUTXO型である場合には、ダミーUTXOを用いることにより取引の実行又は中止を確定させることができる。この場合、Aliceのユーザ端末13が、ブロックチェーンAにおけるAliceの「ドラゴン」のカードのロックを行うことに先立って、Bobのユーザ端末13は、ブロックチェーンBに対し、例えば、Bitcoinでは、非常に小さな額の送金を行うダミーUTXOを作成することができる。Aliceのユーザ端末13は、ダミーUTXOが登録され次第、ブロックチェーンAに対して「ドラゴン」のカードのロックを命令することができる。次に、Bobのユーザ端末13は、ドラゴンのロックを確認した後に、ブロックチェーンBにおいて、上記ダミーUTXOをインプットとしたトランザクションにより、「騎士」のカードをBobからAliceに移転するように命令する。このようなトランザクションのチェーンにより、BobからAliceへの「騎士」のカードの移転が成功する。当該トランザクションの完了後、Bobのユーザ端末13から、ブロックチェーンAにおいて「ドラゴン」のカードをAliceからBobに移転するトランザクションが作成されて、アトミックな取引が完了する。
一方で、BobからAliceへの「騎士」のカードの移転の前に、Aliceが取引中止を指示した場合には、Aliceのユーザ端末13は、ブロックチェーンBにおいて、ダミーUTXOをインプットとする他のトランザクションを生成することにより、上記ダミーUTXOをインプットとして、BobからAliceに「騎士」のカードを移転するトランザクションが作成されても、この移転トランザクションを無効化することができる。その後、Aliceのユーザ端末13は、ブロックチェーンAにおいて「ドラゴン」のカードをAliceに戻すトランザクション(例えば、エスクローアカウントからAliceのアカウントへの移転)を生成して、取引を全体として中止させることができる。この際、ブロックチェーンAのノード20では、ブロックチェーンBにおいてダミーUTXOをインプットとする他のトランザクションについての検証を、例えば、当該他のトランザクションが含まれるブロックに、検証された署名が所定数以上の付されているか否かにより行うことができ、この検証に成功したことを条件として、ドラゴンのカードをAliceに戻す取引を行うようにすることができる。
また、本実施形態では、ブロックチェーンを構成する全てのノード20が分散台帳31を備えるものとしたが、分散台帳31を備えないノード20もブロックチェーンAを構成するノード20に含めるようにしてもよい。分散台帳31を備えないノード20には、例えば、カストディアルウォレットがある。合意形成(コンセンサス)処理にのみ参加する、いわゆるマイナーノードも、分散台帳31を備えずに、合意形成処理を行う機能のみを備えるようにしてもよい。
A ブロックチェーン
B ブロックチェーン
13 ユーザ端末
20 ノード
31 分散台帳
131 トランザクション送信部
211 トランザクション受付部
212 ロック処理部
214 ブロック登録部

Claims (5)

  1. 第1のアセットを管理する第1の台帳データベースに対して前記第1のアセットに対する第1の操作を行うとともに、第2のアセットを管理する第2の台帳データベースに対して前記第2のアセットに対する第2の操作を行う場合に、
    コンピュータが、
    前記第1の台帳データベースにおいて前記第1のアセットをロックし、
    前記第2の台帳データベースに対して前記第2の操作を行うトランザクションを送信し、
    前記トランザクションが成功した場合に、前記第1のアセットのロックを解除し、前記第1の操作を行うこと、
    を特徴とする情報処理方法。
  2. 請求項1に記載の情報処理方法であって、
    前記コンピュータが、
    前記第2の操作の完了前に、前記2の操作を中止する中止トランザクションを前記第2の台帳データベースに送信し、
    前記中止トランザクションが成功したときに、前記第1の操作を中止して前記ロックを解除すること、
    を特徴とする情報処理方法。
  3. 請求項2に記載の情報処理方法であって、
    前記コンピュータが、
    前記中止トランザクションが失敗したときには、前記ロックを解除して前記第1の操作を完了すること、
    を特徴とする情報処理方法。
  4. 請求項1に記載の情報処理方法であって、
    前記コンピュータが、
    前記トランザクションが失敗したときには、前記第1の操作を中止して前記ロックを解除すること、
    を特徴とする情報処理方法。
  5. 第1のアセットを管理する第1の台帳データベースに対して前記第1のアセットに対する第1の操作を行うとともに、第2のアセットを管理する第2の台帳データベースに対して前記第2のアセットに対する第2の操作を行う場合に、
    コンピュータに、
    前記第1のアセットをロックするステップと、
    前記第2の台帳データベースに対して前記第2の操作を行うトランザクションを送信するステップと、
    前記トランザクションが成功した場合に、前記第1のアセットのロックを解除し、前記第1の操作を行うステップと、
    を実行させるためのプログラム。

JP2020087460A 2020-05-19 2020-05-19 情報処理システム、情報処理方法及びプログラム Active JP6767022B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020087460A JP6767022B1 (ja) 2020-05-19 2020-05-19 情報処理システム、情報処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020087460A JP6767022B1 (ja) 2020-05-19 2020-05-19 情報処理システム、情報処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP6767022B1 true JP6767022B1 (ja) 2020-10-14
JP2021182263A JP2021182263A (ja) 2021-11-25

Family

ID=72745160

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020087460A Active JP6767022B1 (ja) 2020-05-19 2020-05-19 情報処理システム、情報処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6767022B1 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190172026A1 (en) * 2017-12-02 2019-06-06 Alchemy Limited LLC Cross blockchain secure transactions
US10298585B1 (en) * 2018-01-26 2019-05-21 Accenture Global Solutions Limited Blockchain interoperability
CN109087080B (zh) * 2018-07-13 2020-11-06 杭州复杂美科技有限公司 跨链交易方法、设备和存储介质
CN109685489B (zh) * 2018-12-28 2021-06-01 杭州云象网络技术有限公司 一种区块链之间的资产跨链交易方法

Also Published As

Publication number Publication date
JP2021182263A (ja) 2021-11-25

Similar Documents

Publication Publication Date Title
CN111183445B (zh) 用于数字资产自动承诺结算的方法和装置
Sarmah Understanding blockchain technology
Singh et al. Sidechain technologies in blockchain networks: An examination and state-of-the-art review
US11880809B2 (en) Blockchain cross-chain non-fungible token exchange
US20220239470A1 (en) Cross-blockchain data processing method and apparatus, device, and computer storage medium
CN106960165B (zh) 一种基于区块链智能合约实现电子合同多方会签的方法
JP7021747B2 (ja) 決済システム、決済方法、利用者装置、決済プログラム
CN111327648B (zh) 基于区块链智能合约的处理方法和系统
Lind et al. Teechain: Scalable blockchain payments using trusted execution environments
KR20200059233A (ko) 분산 조정을 사용한 스마트 계약 실행
US10693637B2 (en) System and method for composite-key based blockchain device control
CN109214818A (zh) 一种跨链交易方法及装置
CN110880113A (zh) 区块链交易的认证服务器及认证方法
CN111383114A (zh) 基于区块链的资产信息管理方法和装置
US20210110360A1 (en) Cryptocurrency Exchange Without Bond Backing
CN107909440B (zh) 一种分布式总账系统交易同步清算方法及系统
CN111402033A (zh) 基于区块链的资产信息管理方法和装置
JP7224653B2 (ja) 電子チケット管理システム、電子チケット管理方法及び電子チケット管理プログラム
CN111325546A (zh) 基于硬件钱包的区块链交易系统及方法
Bellaj et al. SOK: a comprehensive survey on distributed ledger technologies
JP6767022B1 (ja) 情報処理システム、情報処理方法及びプログラム
CN112927073A (zh) 跨链数据互换方法、系统、装置、电子设备
KR102324155B1 (ko) 블록체인 기반의 p2p 대출 서비스 자율보증증명 방법 및 장치
TW202139127A (zh) 用於與區塊鏈相關聯之服務平台之運算服務
US20210004791A1 (en) Guaranteeing server and method for transaction on blockchain

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200520

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200520

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200727

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200730

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200903

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200910

R150 Certificate of patent or registration of utility model

Ref document number: 6767022

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250