JP6982345B1 - 取引システム - Google Patents
取引システム Download PDFInfo
- Publication number
- JP6982345B1 JP6982345B1 JP2020169096A JP2020169096A JP6982345B1 JP 6982345 B1 JP6982345 B1 JP 6982345B1 JP 2020169096 A JP2020169096 A JP 2020169096A JP 2020169096 A JP2020169096 A JP 2020169096A JP 6982345 B1 JP6982345 B1 JP 6982345B1
- Authority
- JP
- Japan
- Prior art keywords
- chain
- packet
- user
- blockchain
- unit
- 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
Links
- 238000000034 method Methods 0.000 claims description 37
- 230000008859 change Effects 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 16
- 238000012795 verification Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 abstract description 4
- 239000003999 initiator Substances 0.000 description 17
- 238000012545 processing Methods 0.000 description 12
- 238000012546 transfer Methods 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 8
- 230000007704 transition Effects 0.000 description 6
- 238000002360 preparation method Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000004088 simulation Methods 0.000 description 3
- LPLLVINFLBSFRP-UHFFFAOYSA-N 2-methylamino-1-phenylpropan-1-one Chemical compound CNC(C)C(=O)C1=CC=CC=C1 LPLLVINFLBSFRP-UHFFFAOYSA-N 0.000 description 2
- 241000132539 Cosmos Species 0.000 description 2
- 235000005956 Cosmos caudatus Nutrition 0.000 description 2
- 239000002253 acid Substances 0.000 description 2
- 235000006679 Mentha X verticillata Nutrition 0.000 description 1
- 235000002899 Mentha suaveolens Nutrition 0.000 description 1
- 235000001636 Mentha x rotundifolia Nutrition 0.000 description 1
- 206010000210 abortion Diseases 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Marketing (AREA)
- Economics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
ブロックチェーンは、単体では他のブロックチェーンとの相互運用性の能力に乏しいことが知られている。ブロックチェーン同士を繋ぐクロスチェーン上の接続方式として、relay方式が知られている。クロスチェーンとは、異なるチェーン同士を跨ぐことを意味する。
(1)スマートコントラクトに必要なロックメカニズムとコミットの可否についての分散合意プロトコルを設計する。
(2)分散合意プロトコルを可能とするためにコントラクト(契約)が満足すべき要件を開発者が透過的に満たすことができる仕組みを構築する。
Cross-chain smart contractについて、(1―1)〜(1−2)に項分けして説明する。
(1−1)Contract Handler及びステイトストア
Contract Handlerには、複数のコントラクト関数を実装可能である。各コントラクト関数には、スマートコントラクトの状態を管理するためのステイトストアが与えられる。各関数は呼び出し引数や記述したロジックに従い、決定性のある状態遷移を行い、その状態をこのステイトストアに永続化する。ステイトストアはGet(K), Set(K,V), Delete(K)といった一般的なキーバリューストア(Key-Value Store)の操作をサポートする。Get(K)は、「Kで指定したキーに対応するバリューを返す」の意味である。Set(K,V)は、「Kで指定したキーに対してVで指定したバリューをセットする」の意味である。Delete(K)は、「Kで指定したキーと対応するバリューを削除する」の意味である。単一のチェーンにおいて逐次的にコントラクト関数を実行する場合には、これらの操作のたびに、もしくは関数の実行後にトランザクションによる変更をストアに反映すれば良いが、トランザクションが処理するコントラクト関数が複数チェーンに分散している場合、すべてのコントラクトの状態遷移をアトミックに行う必要がある。利用するアトミックコミットプロトコルにより異なるが、少なくとも1つのコントラクト関数の実行はPrepare状態に遷移する必要がある。つまり、そのようなコントラクトにおいては他の並行するトランザクションと競合する可能性が発生するため、トランザクションの直列化可能性を保つための仕組みがステイトストアに必要となる。Cross Frameworkでは、デフォルトのステイトストアの実装として各変更操作に対応するロックを取得する単純なストアを提供している。このストアは、各変更操作に対して以下のロックを取得するように構成することができる。
各チェーンにおいて、Contract Handlerで定義されたコントラクト関数は、それぞれ別のチェーンのコントラクト関数を呼び出し可能であり、これをCross-chain callsと定義する。これにより、Cross-chain Transactionにおいて、単に複数の関数をアトミックに実行できるだけでなく、チェーン間の価値の移転などといったより複雑なプロトコルを含むスマートコントラクトの開発が可能となる。
Cross-chain Transaction について、(2−1)〜(2−4)に項分けして説明する。
(2−1)Cross-chain Transactionは、IBC channelで接続されたチェーン間で実行可能な分散トランザクションである。Cross Frameworkでは、トランザクションにおけるデータの整合性を保証するために複数のアトミックコミットプロトコルをサポートし、またそれを実現するためのロックメカニズムを実装したステイトストアを提供している。トランザクションはユーザからリクエストを受けたチェーンがその内容を検証し、指定されたチェーンに対してコントラクト呼び出しリクエストを含むパケットを送信することで開始される。ユーザのトランザクション開始のリクエストを受け取るチェーンをInitiator chainと定義する。Initiator chainは、リクエストを受け取ると、指定された形式に従ってアトミックコミットのフローを実行する。例えば、アトミックコミットとして2層コミットを選択した場合、Initiator chainが2層コミットのコーディネータの役割を担い、ユーザのリクエストに含まれる各チェーンのコントラクト関数の呼び出しを行うとともに、その結果を管理し、最終的なコミットの可否を決定し、その決定を受け取った各パーティシパントチェーンがコミットもしくはアボートを行う。
Cross-chain transactionを開始するために、ユーザは以下の(i)〜(iv)の要素を持つMsgInitiate を作成し、Initiator chainに提出する。
(i)Type
これはコミットフローの種別のことである。各コミットフローの詳細については、後述する。
(ii)Nonce
これはナンス値のことである。
(iii)Timeout
トランザクションが取り込むことが可能なBlock heightもしくはBlock timeの上限値のことである。
(iv)コントラクトトランザクション
これは、各コントラクトの呼び出し情報のことであり、以下の(iv-1)〜(iv-6)からなる構造体の配列となっている。
(iv-1)ChainID
このコントラクトトランザクションを処理するチェーンを示すIDのことである。
(iv-2)Signers
このコントラクトのトランザクション作成に承認が必要となるアカウントの配列のことである。
(iv-3)Call Info
コントラクトの識別子、関数名、引数などを含む呼び出し情報のことである。フォーマットはContract handlerの仕様に依存する。
(iv-4)State Constraint
このコントラクトが参照する状態、更新後の状態に対して制約をかけることを意味する。ただし、これはオプションであり、省略することもできる。
(iv-5)Return Value
このコントラクトの実行の戻り値のことである。ただし、これはオプションであり、省略することもできる。
(iv-6)Links
このコントラクトの実行時に参照される他のコントラクト呼び出し結果のことである。ただし、これはオプションであり、省略することもできる。
Cross Frameworkでは、トランザクションの開始の際にSigners (上述の(iv-2))で指定された全てのアカウントの承認が必要であるが、各アカウントの承認方法およびそれぞれの検証方法は任意のロジックを実装可能であり、利用するブロックチェーンやDLTに適した方法を選択することが推奨される。例えば、既存の実装としてCosmos-SDKのauth/StdTxの署名検証を用いたものがある。
パターン1:アカウントが鍵を持つ場合、Initiator chainに対しMsgInitiate の提出とともに各アカウントによる署名を提出してそれを検証する。
パターン2:アカウントが鍵を持たない場合、Initiator chain上に提出されたMsgInitiate の提出により発行されたトランザクションを示すIDに対して、各アカウントが非同期に承認する。
パターン3:アカウントが鍵を持たない、かつ、Initiator chainにアクセスできない場合、各アカウントはContract Moduleを含むチェーンに対して承認を行い、その結果をパケットを経由してInitiator chain上で検証する。これはパーミッションドなチェーンに適したフローである。
上記のいずれかの方式で検証をした後にInitiator chainは、Type に従いアトミックなコミットを行うフローを開始する。コントラクトトランザクションに指定された各コントラクトのトランザクションを含めたパケットをそれぞれのチェーンのContract handlerに送信する。その際のコミットのフローの種類とそれぞれの詳細については、後述する(3)のアトミックコミットプロトコルの章で説明する。コミットフローの種類にかかわらず、MsgInitiate で宣言された各コントラクトの関数の実行が全て成功し、またState Constraint などの実行時の状態に対する制約がある場合は、それを満たす場合のみ全てのトランザクションがコミットされることが保証されている。
State constraintsは、トランザクションを実行する際の事前状態、事後状態、またはその両方に対して制約をかけるための機能である。この機能は、コントラクト関数の実行時に厳密な状態遷移を必要とする場合に役立つ。アプリケーションからコントラクト関数を実行するトランザクションをリクエストする際に、その処理を一度だけ実行することをより厳密に保証することができる。
Simulationはトランザクションの生成なしでコントラクトの実行を行うことができる機能である。これを利用してState constraintsで指定するための制約を生成することが可能である。Simulateのリクエスト時にStateConstraintType を指定することで制約として参照可能なステイトストアの状態を返信する。ユーザはMsgInitiate の作成時にこれをコントラクトトランザクションのStateConstraintに指定することでSimulation時の状態を利用した制約をトランザクションにかけることができる。
上述のCross-chain callsで紹介したような他のContract handlerの外部のコントラクト関数を呼び出すには以下の要素a〜cを考慮する必要がある。
a. 各Contract Handlerのコントラクト関数はそれぞれのチェーン上で並行して実行される場合がある。
b. 外部のコントラクト関数の実行はその呼び出し元の関数の実行とアトミックに行われる必要がある。
c. 外部のコントラクト関数の実行による返り値を呼び出し元関数で参照できる。
これらのうち、a, bはアトミックコミットプロトコルにより実現される。Linkは前記のcの要素を満たすための機能である。
Linkは以下の構造を持つ。
type Link struct {
SrcIndex uint8
}
SrcIndex により、呼び出し先のコントラクト関数の実行を処理するトランザクションを示すコントラクトトランザクションのインデックスを指定する。
MsgInitiate を受け取ったInitiator chainは、コントラクトトランザクションの各要素のLinkの情報を呼び出し先のコントラクト関数のChainIDと返り値を含むオブジェクト ConstantValueObject として解決し、Linkの参照元のコントラクト関数内の外部呼び出しはこのConstantValueObject に置き換えられる。
そして、以下のようなステップ1〜3で実行される。
ステップ1:Contract Handlerの外部コントラクトを参照する関数は呼び出し情報に加え、参照先チェーンを示すChainID を設定する必要がある。これはChannelIDやInterchain DNSのドメインネームなどで実装される。
type ChainID interface {
Equal(ChainID) bool
}
ステップ2:Initiator chainは、コントラクトトランザクションの各要素のLinks の情報を元に呼び出し先のコントラクト関数のChainIDと返り値を含むオブジェクトConstantValueObject として解決する。
type ConstantValueObject struct {
ChainID ChainID
Value []byte
}
ステップ3:Initiator chainは、アトミックコミットフローに従い、コーディネータとしてコントラクトトランザクションとステップ2のConstantValueObject および参照先の呼び出し情報をパケットのデータとしてセットし、各チェーンのContract handlerに送信する。
ステップ4:チェーンのContract handlerは、受け取ったパケットの呼び出し情報に従い、コントラクト関数を実行する。関数内の外部コントラクト関数の呼び出し時に、プログラム中の参照先のChainIDおよび呼び出し情報と比較し、一致している場合、ConstantValueObject のValue を返す。一致していない場合、その関数の処理は失敗となる。
アトミックコミットプロトコルは、複数の操作の集合を1つの処理として実行可能にするプロトコルであり、代表的なものとして例えば2層コミット及び3層コミットが用いられる。Cross Frameworkでは、Simple commit protocol, Two-phase commit protocolの2種類のプロトコルを用いることができる。Simple commit protocolはパーティシパントが2つに限られる。Two-phase commitはパーティシパントが3つ以上であってもサポートすることができる。
(3−1)Two-phase commit protocol
2層コミット(2PC)では、あるチェーンをコーディネータとして、他のコントラクト関数の実行とコミットを行うチェーン群をパーティシパントとして次のようなフローでコミット、もしくはアボート状態に至る。コーディネータがパーティシパントにコミット準備を要求し、すべてのパーティシパントが成功した場合には、全パーティシパントにコミット要求を出す。コミット準備に1人でも失敗した場合には、全パーティシパントにアボート要求を出す。
ステップ1:Initiate step
ユーザは、トランザクション開始のリクエストである“MsgInitiate”をInitiator chainに提出する。Initiator chainは2層コミットのコーディネータとして“MsgInitiate”に指定されたコントラクトの関数を含むパーティシパントチェーンに“Prepare”を要求するパケットである“PacketPrepare”を送信する
ステップ2:Prepare step
各パーティシパントチェーンは、“PacketPrepare”を受け取ると、上述の「(2−2)Cross-chain transactionの作成と検証」で説明したコントラクトトランザクションで指定されるコントラクト関数を実行する (ただし、この際に実際のコミットはされていない)。実行に成功した場合、ステイトストアに対しての変更操作の保存と変更対象へのロックを取得する。このロックメカニズムの詳細は、上述の「(1−1)Contract Handler及びステイトストア」で説明したから、説明を繰り返さない。最後にパケット“PacketPrepareAcknowledgement”の“Status”に成功を示す“PREPARE_RESULT_OK”を
セットして返す。
一方、実行に失敗した場合、変更操作を破棄して、パケット“PacketPrepareAcknowledgement”の“Status”に失敗を示す“PREPARE_RESULT_FAILED”をセットして返す。
ステップ3:Confirm step
コーディネータチェーンは、Prepare step(ステップ2)において各パーティシパントチェーンが送信するACK“PacketPrepareAcknowledgement”を受け取る。各ACKの処理については、以下の1〜3のような状態遷移を行う。
1. 次のACKの受信待ち
2. 受信したACKの“Status”が“PREPARE_RESULT_OK”かつ未受信のACKがある場合、1に遷移する。すべて受信した場合、各パーティシパントチェーンにコミット要求をするために“PacketCommit”の“Status”に”COMMIT”をセットして送信し、ステップ4のCommit stepに進む。
3. 受信したACKの“Status”が“PREPARE_RESULT_FAILED”の場合、各パーティシパントチェーンにアボート要求をするために“PacketCommit”の“Status”に“ABORT”をセットして送信し、ステップ4のCommit stepに進む
ステップ4:Commit step
各パーティシパントチェーンは、コミット要求があった場合、Prepare step(ステップ2)で保存していた変更操作をステイトストアに適用し、ロックを削除してコーディネータチェーンに完了済みを示す“PacketCommitAcknowledgement”を送信する。各パーティシパントチェーンは、アボート要求があった場合、Prepare step(ステップ2)で保存していた変更操作とロックを削除してコーディネータチェーンに完了済みを示す“PacketCommitAcknowledgement”を送信する。
このSimple commit protocolは、パーティシパントの数に対する制約があるアトミックコミットのプロトコルである。2層コミットとは異なり、パーティシパントは2つに制限され、またそれらのどちらか一方がコーディネータの役割を担う必要がある。
図2を参照しながら、コミットのフローを説明する。
ステップ1:Initiate
ユーザは、Cross-chain transactionを開始するために“MsgInitiate”をInitiator chainに提出する。このSimple commit protocolのフローでは、Initiator chainはコーディネータとパーティシパントの役割を兼ねる。
ステップ2: Prepare(A)
Aは“MsgInitiate”で指定されたコントラクト関数をPrepare実行する。実行に成功した場合、ステイトストアに対しての変更操作の保存と変更対象へのロックを取得する。このロックメカニズムの詳細は、上述の「(1−1)Contract Handler及びステイトストア」で説明したから、説明を繰り返さない。その後、Bのコントラクト関数の呼び出し情報を含む、パケット“PacketDataCall”を作成しBとのチャンネルに送信する。実行に失敗した場合、このトランザクションの処理をアボートして終了する。
ステップ3: Commit(B)
Bは“PacketDataCall”を受け取り、指定されたコントラクト関数を実行する。実行に成功した場合、Commitを行う。その後、“PacketCallAcknowledgement“に“Status”として“COMMIT_OK”をセットして、Aとのチャンネルに送信する。実行に失敗した場合、アボートを行う。その後、“PacketCallAcknowledgement”に“Status”として“COMMIT_FAILED”をセットして、AとのChannelに送信する。
ステップ4:Commit(A)
Aは“PacketCallAcknowledgement”を受け取り、その“Status”を確認する。“Status”が“COMMIT_OK”の場合、AはPrepare時に保存していた変更操作をステイトストアに適用し、ロックを削除する。“Status”が“COMMIT_FAILED”の場合、AはPrepare時に保存していた変更操作を破棄し、ロックを削除する。
上記解決手段で説明した設計思想に基づく本発明の取引システムの一実施形態について、図3を参照しながら説明する。図3は、証券取引のシーケンスフロー(言い換えると、スマートコントラクトを実行するフロー)である。
このコミット時に送信されるパケット(PacketCommitAcknowledgement)が、請求項1に記載の「第8のパケット」に相当する。
ステップS16及びS17において行われる処理はそれぞれ、ステップS14及びS15において行われる処理と同様であるから、詳細な説明を省略する。
上述の第1実施形態で説明した処理は、取引のアトミック性が求められる他の取引(例えば、遺言信託)にも用いることができる。この場合、証券チェーン11を相続チェーン(第1のブロックチェーンに相当する)、決済チェーン12を資産チェーン(第2のブロックチェーン)と読み替えて、遺言信託の取引に適用することができる。
図6のフローチャートを参照しながら、本発明の第3実施形態について説明する。本実施形態は、コーディネータ11b及びパーティシパント11cが行う処理を、兼用部11bcが行う点で第1実施形態と相違する。その結果、一方のパーティシパントはコミット準備を省略することができる。また、第1実施形態と同様に、証券取引を例にして本実施形態の処理を説明する。ただし、本実施形態で説明した処理は、取引のアトミック性が求められる他の取引(例えば、遺言信託)にも用いることができる。この点については、第2実施形態に詳細を記載しているから、説明を省略する。本実施形態の取引システムは、一方のパーティシパントのコミット準備を省略することができるコミット方式(Simple Commit protocol)に基づき設計されている。このコミット方式は、パーティシパントの数が2つに制限されている点で、第1実施形態の2層コミットと相違する。また、いずれかのパーティシパントがコーディネータの役割を担う。
本実施形態では、証券チェーン11側のパーティシパントにコーディネータとしての役割を担当させたが、決済チェーン12側のパーティシパント12cにコーディネータとしての役割を担当させてもよい。本実施形態を遺言信託のユースケースに適用する場合には、相続チェーン側に兼用部11bc、資産チェーン側にパーティシパント12cを実装することができる。ただし、相続チェーン側にパーティシパント12c、資産チェーン側に兼用部11bcを実装してもよい。
11b コーディネータ
11c、12c パーティシパント
12 決済チェーン、資産チェーン
13 リレイアー
Claims (8)
- 第1のブロックチェーンと第2のブロックチェーンとの間で取引に関わるスマートコントラクトをアトミックに実行するための取引システムであって、
前記第1のブロックチェーン側のコーディネータ部及び第1ユーザ部と、
前記第2のブロックチェーン側の第2ユーザ部と、
を有し、
前記コーディネータ部は、コントラクト関数が指定された所定のトランザクションに基づき作成した第1のパケットを前記第1及び第2ユーザ部に送信し、
前記第1ユーザ部は、前記コーディネータ部から受信した前記第1のパケットのコントラクト関数の実行に成功した場合には、自身のステイトストアへの変更操作の保存と変更対象へのロックを取得して、ステータスを実行可能にした第2のパケットを前記コーディネータ部に送信し、実行に失敗した場合には、自身のステイトストアへの変更操作を破棄して、ステータスを実行不可にした第3のパケットを前記コーディネータ部に送信し、
前記第2ユーザ部は、前記コーディネータ部から受信した前記第1のパケットのコントラクト関数の実行に成功した場合には、自身のステイトストアへの変更操作の保存と変更対象へのロックを取得して、ステータスを実行可能にした第4のパケットを前記コーディネータ部に送信し、実行に失敗した場合には、自身のステイトストアへの変更操作を破棄して、ステータスを実行不可にした第5のパケットを前記コーディネータ部に送信し、
前記コーディネータ部は、前記第1及び第2ユーザ部から受信したパケットの実行可否検証結果を元に、全てのパケットのステータスが実行可能な場合にはコミット要求を行うため第6のパケットを前記第1及び第2ユーザ部に送信し、少なくとも1つのパケットのステータスが実行不可の場合にはアボート要求を行うため第7のパケットを前記第1及び第2ユーザ部に送信し、
前記第1及び第2ユーザ部は、前記コーディネータ部から前記第6のパケットを受信すると、事前に保存していた変更操作をステイトストアに適用し、ロックを削除して第8のパケットを前記コーディネータ部に送信し、前記コーディネータ部から前記第7のパケットを受信すると、事前に保存していた変更操作とロックを削除して第9のパケットを前記コーディネータ部に送信することを
特徴とする取引システム。 - 前記コーディネータ部と、前記第1及び第2ユーザ部との交信を仲介するリレイアーを有することを特徴とする請求項1に記載の取引システム。
- 前記第1のブロックチェーンは証券チェーンであり、前記第2のブロックチェーンは決済チェーンであることを特徴とする請求項1又は2に記載の取引システム。
- 前記第1のブロックチェーンは相続チェーンであり、前記第2のブロックチェーンは資産チェーンであることを特徴とする請求項1又は2に記載の取引システム。
- 第1のブロックチェーンと第2のブロックチェーンとの間で取引に関わるスマートコントラクトをアトミックに実行するための取引システムであって、
前記第1のブロックチェーン側に設けられるコーディネータ部及び第1ユーザ部を兼用する兼用部と、
前記第2のブロックチェーン側の第2ユーザ部と、
を有し、
前記兼用部は、コントラクト関数が指定された所定のトランザクションの実現が可能な場合には、前記第1ユーザ部として自身のステイトストアへの変更操作の保存と変更対象へのロックを取得して、前記第2ユーザ部のコントラクト関数の呼び出し情報を含む第1のパケットを前記第2ユーザ部に送信し、実現が不可能な場合には、処理を終了し、
前記第2ユーザ部は、前記兼用部から受信した前記第1のパケットに基づき、コントラクト関数を実行し、実行に成功した場合にはコミットを行うとともに、ステータスを実行可能にした第2のパケットを前記兼用部に送信し、実行に失敗した場合にはアボートを行うとともに、ステータスを実行不可にした第3のパケットを前記兼用部に送信し、
前記兼用部は、前記第2ユーザ部から前記第2のパケットを受信した場合には、前記第1ユーザ部として事前に保存していた変更操作をステイトストアに適用し、ロックを削除し、前記第2ユーザ部から前記第3のパケットを受信した場合には、前記第1ユーザ部として事前に保存していた変更操作を破棄し、ロックを削除することを特徴とする取引システム。 - 前記兼用部と、前記第2ユーザ部との交信を仲介するリレイアーを有することを特徴とする請求項5に記載の取引システム。
- 前記第1のブロックチェーンは証券チェーン及び決済チェーンのうちいずれか一方のチェーンであり、前記第2のブロックチェーンは他方のチェーンであることを特徴とする請求項5又は6に記載の取引システム。
- 前記第1のブロックチェーンは相続チェーン及び資産チェーンのうちいずれか一方のチェーンであり、前記第2のブロックチェーンは他方のチェーンであることを特徴とする請求項5又は6に記載の取引システム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020169096A JP6982345B1 (ja) | 2020-10-06 | 2020-10-06 | 取引システム |
PCT/JP2021/034365 WO2022075046A1 (ja) | 2020-10-06 | 2021-09-17 | 取引システム |
US18/022,412 US20230316398A1 (en) | 2020-10-06 | 2021-09-17 | Trading system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020169096A JP6982345B1 (ja) | 2020-10-06 | 2020-10-06 | 取引システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6982345B1 true JP6982345B1 (ja) | 2021-12-17 |
JP2022061223A JP2022061223A (ja) | 2022-04-18 |
Family
ID=79169991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020169096A Active JP6982345B1 (ja) | 2020-10-06 | 2020-10-06 | 取引システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230316398A1 (ja) |
JP (1) | JP6982345B1 (ja) |
WO (1) | WO2022075046A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11971903B2 (en) * | 2022-05-13 | 2024-04-30 | Circle Internet Financial Limited | Atomically bridging transactions across different blockchains |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019235198A1 (ja) * | 2018-06-06 | 2019-12-12 | 日本電信電話株式会社 | 決済システム、決済方法、利用者装置、決済プログラム |
JP2020071617A (ja) * | 2018-10-30 | 2020-05-07 | 株式会社Crypto Garage | 取引方法、プログラム、検証装置及び生成方法 |
US20200177391A1 (en) * | 2019-06-28 | 2020-06-04 | Alibaba Group Holding Limited | Sending cross-chain authenticatable messages |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240029054A1 (en) * | 2017-12-01 | 2024-01-25 | Quant Network Ltd. | Blockchain communications and ordering |
US20190172026A1 (en) * | 2017-12-02 | 2019-06-06 | Alchemy Limited LLC | Cross blockchain secure transactions |
AU2019245424A1 (en) * | 2018-03-30 | 2020-11-26 | Exposition Park Holdings SEZC | Digital asset exchange |
US11070563B2 (en) * | 2018-07-11 | 2021-07-20 | International Business Machines Corporation | Trace-based transaction validation and commitment |
US11068470B2 (en) * | 2018-11-09 | 2021-07-20 | Innoplexus Ag | System and method for interoperability of blockchains |
US11257079B2 (en) * | 2019-04-30 | 2022-02-22 | Banco Bilbao Vizcaya Argentaria, S.A. | Systems, methods, and interfaces for smart contract based exchanges via a blockchain |
CA3149396A1 (en) * | 2019-08-06 | 2021-02-11 | Zeu Technologies, Inc. | Distributed blockchain transaction system |
CN112348672B (zh) * | 2019-08-07 | 2023-08-08 | 淘宝(中国)软件有限公司 | 跨链交易方法、装置、多区块链系统及计算设备 |
CA3151244A1 (en) * | 2019-08-16 | 2021-02-25 | Zeu Technologies, Inc. | A method and system for a decentralized transactional communication protocol |
JP6965400B1 (ja) * | 2020-06-02 | 2021-11-10 | ぷらっとホーム株式会社 | データ取引システム |
SG10202006447VA (en) * | 2020-07-03 | 2021-04-29 | Alipay Labs Singapore Pte Ltd | Managing transactions in multiple blockchain networks |
US20220094555A1 (en) * | 2020-09-18 | 2022-03-24 | Fujitsu Limited | Validator control for transaction between blockchains |
CN112491959B (zh) * | 2020-10-28 | 2023-03-24 | 杭州趣链科技有限公司 | 基于中继链的跨链资源交换方法、装置和系统 |
US20220156725A1 (en) * | 2020-11-18 | 2022-05-19 | International Business Machines Corporation | Cross-chain settlement mechanism |
US12020061B2 (en) * | 2021-04-07 | 2024-06-25 | Reza Fatahi | System and method for meta-transactional interoperability of decentralized computing networks |
US20220329411A1 (en) * | 2021-04-13 | 2022-10-13 | International Business Machines Corporation | Blockchain processing offload to network device |
-
2020
- 2020-10-06 JP JP2020169096A patent/JP6982345B1/ja active Active
-
2021
- 2021-09-17 US US18/022,412 patent/US20230316398A1/en active Pending
- 2021-09-17 WO PCT/JP2021/034365 patent/WO2022075046A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019235198A1 (ja) * | 2018-06-06 | 2019-12-12 | 日本電信電話株式会社 | 決済システム、決済方法、利用者装置、決済プログラム |
JP2020071617A (ja) * | 2018-10-30 | 2020-05-07 | 株式会社Crypto Garage | 取引方法、プログラム、検証装置及び生成方法 |
US20200177391A1 (en) * | 2019-06-28 | 2020-06-04 | Alibaba Group Holding Limited | Sending cross-chain authenticatable messages |
Non-Patent Citations (1)
Title |
---|
藤本 真吾 他: "ブロックチェーンの安全な連携方式の提案", 2018年 暗号と情報セキュリティシンポジウム(SCIS2018)予稿集 [USB], JPN6021030974, 23 January 2018 (2018-01-23), JP, ISSN: 0004567537 * |
Also Published As
Publication number | Publication date |
---|---|
WO2022075046A1 (ja) | 2022-04-14 |
US20230316398A1 (en) | 2023-10-05 |
JP2022061223A (ja) | 2022-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107301600B (zh) | 一种跨链交易的区块链互联网模型的核心构建方法 | |
CN109214818B (zh) | 一种跨链交易方法及装置 | |
JP7533983B2 (ja) | 信頼度が低い、または信頼度が皆無の当事者間での価値転送を円滑化する装置、システム、または方法 | |
CN111183445B (zh) | 用于数字资产自动承诺结算的方法和装置 | |
US12086810B2 (en) | Temporary consensus networks in a resource transfer system | |
EP3776441B1 (en) | Digital asset exchange | |
US20220237611A1 (en) | Resource Transfer System | |
KR102277998B1 (ko) | 전자 어음 관리 방법, 장치 및 기록매체 | |
CN106504094B (zh) | 基于区块链技术的分布式总账系统的交易撮合方法及系统 | |
US11386404B2 (en) | Temporary consensus subnetwork in a distributed network for payment processing | |
CN112330326A (zh) | 一种应用于银行交易区块链系统的业务处理方法和装置 | |
US11481771B2 (en) | One way functions in a resource transfer system | |
WO2021098251A1 (zh) | 基于区块链的资产数字凭证支付清算方法及装置和介质 | |
US20080082434A1 (en) | System and Method for Making Payment | |
US11392944B2 (en) | Transfer costs in a resource transfer system | |
JP7254585B2 (ja) | システム間連携方法およびノード | |
US20160342983A1 (en) | Hold condition in a resource transfer system | |
CA2999806A1 (en) | Temporary consensus networks in a resource transfer system | |
WO2022075046A1 (ja) | 取引システム | |
CN112529616A (zh) | 基于区块链的联盟积分管理方法和系统 | |
Xu et al. | Existing Blockchain Platforms | |
Zima | Coincer: Decentralised trustless platform for exchanging decentralised cryptocurrencies | |
US12099999B2 (en) | One way functions in a resource transfer system | |
US12099988B2 (en) | Hold condition in a resource transfer system | |
Engel et al. | Transferable Cross-Chain Options |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A80 | Written request to apply exceptions to lack of novelty of invention |
Free format text: JAPANESE INTERMEDIATE CODE: A80 Effective date: 20201102 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210331 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20210402 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210810 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210813 |
|
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: 20211109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211112 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6982345 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 |