(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-08
(54)【発明の名称】クロスチェーントランザクション処理方法と装置、電子機器及びコンピュータプログラム
(51)【国際特許分類】
G06Q 20/38 20120101AFI20240201BHJP
G06F 21/64 20130101ALI20240201BHJP
【FI】
G06Q20/38 310
G06F21/64
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023548555
(86)(22)【出願日】2022-06-17
(85)【翻訳文提出日】2023-08-10
(86)【国際出願番号】 CN2022099545
(87)【国際公開番号】W WO2023005500
(87)【国際公開日】2023-02-02
(31)【優先権主張番号】202110853182.7
(32)【優先日】2021-07-27
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】514187420
【氏名又は名称】テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リウ,チャンフイ
(57)【要約】
本出願はクロスチェーントランザクション処理方法と装置、電子機器及びプログラムを開示し、ブロックチェーンの技術分野に関する。方法は端末のクロスチェーントランザクション要求を受信し(201);クロスチェーントランザクション要求に基づいて、第一ブロックチェーン上の第一業務コントラクトを実行し(202);第一業務コントラクトにより、第一ブロックチェーンでクロスチェーントランザクションの第一トランザクションイベントを実行し(203)、第一ブロックチェーン上の第一クロスチェーンコントラクトを実行し、第二ブロックチェーンでクロスチェーントランザクションの第二トランザクションイベントを実行すると決定し;第一業務コントラクトにより、第一ブロックチェーンで第一クロスチェーントランザクションデータを記憶し(204);第二ブロックチェーンから第二クロスチェーントランザクションデータを取得し;及び、第一業務コントラクト及び第一クロスチェーンコントラクトにより、端末にトランザクション完了レスポンスを送信するステップ(205)を含む。
【特許請求の範囲】
【請求項1】
ブロックチェーンシステムにおける第一ノード装置が実行する、クロスチェーントランザクションを処理する方法であって、
前記ブロックチェーンシステムには第一ブロックチェーン及び第二ブロックチェーンが設定されており、
前記方法は、
端末のクロスチェーントランザクション要求を受信するステップであって、前記クロスチェーントランザクション要求は前記第一ブロックチェーンと前記第二ブロックチェーンとの間でクロスチェーントランザクションを行うことを指示する、ステップ;
前記クロスチェーントランザクション要求に基づいて、前記第一ブロックチェーン上の第一業務コントラクトを実行するステップであって、前記第一業務コントラクトは前記クロスチェーントランザクションの前記第一ブロックチェーン上の第一実行方式を指示する、ステップ;
前記第一業務コントラクトにより、前記第一ブロックチェーンで前記クロスチェーントランザクションの第一トランザクションイベントを実行し、前記第一ブロックチェーン上の第一クロスチェーンコントラクトを実行し、前記第二ブロックチェーンで前記クロスチェーントランザクションの第二トランザクションイベントを実行すると決定するステップであって、前記第一クロスチェーンコントラクトは前記クロスチェーントランザクションの前記第一ブロックチェーン上の第二実行方式を指示する、ステップ;
前記第一業務コントラクトにより、前記第一ブロックチェーンで第一クロスチェーントランザクションデータを記憶するステップであって、前記第一クロスチェーントランザクションデータは前記第一ブロックチェーンで前記第一トランザクションイベントが既に実行されていること及び前記第二ブロックチェーンで前記第二トランザクションイベントが既に実行されていることを指示する、ステップ;
前記第二ブロックチェーンから第二クロスチェーントランザクションデータを取得するステップであって、前記第二クロスチェーントランザクションデータは前記第一クロスチェーントランザクションデータに基づいて取得され、前記第二クロスチェーントランザクションデータは前記第二ブロックチェーンで前記第二トランザクションイベントが既に実行されていることを指示する、ステップ;及び
前記第一業務コントラクト及び前記第一クロスチェーンコントラクトにより、前記端末にトランザクション完了レスポンスを送信するステップであって、前記トランザクション完了レスポンスは前記クロスチェーントランザクションが既に完了していることを指示する、ステップを含む、方法。
【請求項2】
請求項1に記載の方法であって、
前記前記第一業務コントラクト及び前記第一クロスチェーンコントラクトにより、前記端末にトランザクション完了レスポンスを送信するステップは、
前記第二クロスチェーントランザクションデータに基づいて、前記第一クロスチェーンコントラクトを再び実行するステップ;及び
再び実行された前記第一クロスチェーンコントラクトにより、前記第二クロスチェーントランザクションデータを前記第一業務コントラクトに送信し、前記第一業務コントラクトを再び実行し、前記端末に前記トランザクション完了レスポンスを送信するステップを含む、方法。
【請求項3】
請求項2に記載の方法であって、
前記第二クロスチェーントランザクションデータに基づいて、前記第一クロスチェーンコントラクトを再び実行するステップの前に、
前記方法は、
前記第二クロスチェーントランザクションデータのデジタル署名を受信するステップであって、前記デジタル署名は前記第二クロスチェーントランザクションデータが既に前記第二ブロックチェーンに記憶されていることを指示する、ステップをさらに含み、
前記第二クロスチェーントランザクションデータを前記第一業務コントラクトに送信することは、
前記第二クロスチェーントランザクションデータのデジタル署名の個数が第一閾値よりも大きい場合に、前記第二クロスチェーントランザクションデータを前記第一業務コントラクトに送信するステップを含む、方法。
【請求項4】
請求項1-3のうちの何れか1項に記載の方法であって、
前記第二ブロックチェーンから第二クロスチェーントランザクションデータを取得するステップは、
前記第一ブロックチェーンが第一ゲートウェイ装置に対応し、かつ前記第二ブロックチェーンが第二ゲートウェイ装置に対応する場合に、前記第一ゲートウェイ装置から前記第二ブロックチェーン上の前記第二クロスチェーントランザクションデータを受信するステップであって、前記第二クロスチェーントランザクションデータは前記第二ゲートウェイ装置により提供される、ステップを含む、方法。
【請求項5】
請求項1-3のうちの何れか1項に記載の方法であって、
前記クロスチェーントランザクション要求は前記クロスチェーントランザクションのトランザクション情報、前記第一業務コントラクトの標識、及び前記第二ブロックチェーン上の第二業務コントラクトの標識を含み、前記第二業務コントラクトは前記クロスチェーントランザクションの前記第二ブロックチェーン上の第三実行方式を指示する、方法。
【請求項6】
ブロックチェーンシステムにおける第二ノード装置が実行する、クロスチェーントランザクションを処理する方法であって、
前記ブロックチェーンシステムには第一ブロックチェーン及び第二ブロックチェーンが設定されており、
前記方法は、
前記第一ブロックチェーンから第一クロスチェーントランザクションデータを取得するステップであって、前記第一クロスチェーントランザクションデータは前記第一ブロックチェーンでクロスチェーントランザクションの第一トランザクションイベントが既に実行されていること及び前記第二ブロックチェーンで前記クロスチェーントランザクションの第二トランザクションイベントが既に実行されていることを指示する、ステップ;
前記第一クロスチェーントランザクションデータに基づいて、前記第二ブロックチェーン上の第二クロスチェーンコントラクトを実行するステップであって、前記第二クロスチェーンコントラクトは前記クロスチェーントランザクションの前記第二ブロックチェーン上の第四実行方式を指示する、ステップ;
前記第二クロスチェーンコントラクトにより、前記第二ブロックチェーンで前記第一クロスチェーントランザクションデータを記憶し、前記第二ブロックチェーン上の第二業務コントラクトを実行するステップであって、前記第二業務コントラクトは前記クロスチェーントランザクションの前記第二ブロックチェーン上の第三実行方式を指示する、ステップ;及び
前記第二業務コントラクトにより、前記第二ブロックチェーンで前記第二トランザクションイベントを実行し、継続して前記第二クロスチェーンコントラクトを実行し、前記第二ブロックチェーンで第二クロスチェーントランザクションデータを記憶するステップであって、前記第二クロスチェーントランザクションデータは前記第二ブロックチェーンで前記第二トランザクションイベントが既に実行されていることを指示する、ステップを含む、方法。
【請求項7】
請求項6に記載の方法であって、
前記第一クロスチェーントランザクションデータに基づいて、前記第二ブロックチェーン上の第二クロスチェーンコントラクトを実行するステップの前に、
前記方法は、
前記第一クロスチェーントランザクションデータのデジタル署名を受信するステップであって、前記デジタル署名は前記第一クロスチェーントランザクションデータが既に前記第一ブロックチェーンに記憶されていることを指示する、ステップをさらに含み、
前記第二ブロックチェーンで前記第一クロスチェーントランザクションデータを記憶することは、
前記第一クロスチェーントランザクションデータのデジタル署名の個数が第二閾値よりも大きい場合に、前記第二ブロックチェーンで前記第一クロスチェーントランザクションデータを記憶することを含む、方法。
【請求項8】
請求項6又は7に記載の方法であって、
前記第一ブロックチェーンから第一クロスチェーントランザクションデータを取得するステップは、
前記第一ブロックチェーンが第一ゲートウェイ装置に対応し、かつ前記第二ブロックチェーンが第二ゲートウェイ装置に対応する場合に、前記第二ゲートウェイ装置から前記第一ブロックチェーン上の前記第一クロスチェーントランザクションデータを受信するステップであって、前記第一クロスチェーントランザクションデータは前記第一ゲートウェイ装置により提供される、ステップを含む、方法。
【請求項9】
クロスチェーントランザクションを処理するためのブロックチェーンシステムであって、
前記ブロックチェーンシステムは第一ノード装置、第二ノード装置、第一ゲートウェイ装置及び第二ゲートウェイ装置を含み、前記ブロックチェーンシステムには第一ブロックチェーン及び第二ブロックチェーンが設定されており、
前記第一ノード装置は、
端末のクロスチェーントランザクション要求を受信し、前記クロスチェーントランザクション要求は前記第一ブロックチェーンと前記第二ブロックチェーンとの間でクロスチェーントランザクションを行うことを指示し;
前記クロスチェーントランザクション要求に基づいて、前記第一ブロックチェーン上の第一業務コントラクトを実行し、前記第一業務コントラクトは前記クロスチェーントランザクションの前記第一ブロックチェーン上の第一実行方式を指示し;
前記第一業務コントラクトにより、前記第一ブロックチェーンで前記クロスチェーントランザクションの第一トランザクションイベントを実行し、前記第一ブロックチェーン上の第一クロスチェーンコントラクトを実行し、前記第二ブロックチェーンで前記クロスチェーントランザクションの第二トランザクションイベントを実行すると決定し、前記第一クロスチェーンコントラクトは前記クロスチェーントランザクションの前記第一ブロックチェーン上の第二実行方式を指示し;及び
前記第一業務コントラクトにより、前記第一ブロックチェーンで第一クロスチェーントランザクションデータを記憶し、前記第一クロスチェーントランザクションデータは前記第一ブロックチェーンで前記第一トランザクションイベントが既に実行されていること及び前記第二ブロックチェーンで前記第二トランザクションイベントが既に実行されていることを指示する
ことを行うように用いられ、
前記第一ゲートウェイ装置は、前記第一ブロックチェーン上の前記第一クロスチェーントランザクションデータを前記第二ゲートウェイ装置に送信するために用いられ、
前記第二ゲートウェイ装置は、前記第一クロスチェーントランザクションデータを前記第二ノード装置に送信するために用いられ、
前記第二ノード装置は、
前記第一クロスチェーントランザクションデータに基づいて、前記第二ブロックチェーン上の第二クロスチェーンコントラクトを実行し、前記第二クロスチェーンコントラクトは前記クロスチェーントランザクションの前記第二ブロックチェーン上の第四実行方式を指示し;
前記第二クロスチェーンコントラクトにより、前記第二ブロックチェーンで前記第一クロスチェーントランザクションデータを記憶し、前記第二ブロックチェーン上の第二業務コントラクトを実行し、前記第二業務コントラクトは前記クロスチェーントランザクションの前記第二ブロックチェーン上の第三実行方式を指示し;及び
前記第二業務コントラクトにより、前記第二ブロックチェーンで前記第二トランザクションイベントを実行し、継続して前記第二クロスチェーンコントラクトを実行し、前記第二ブロックチェーンで第二クロスチェーントランザクションデータを記憶し、前記第二クロスチェーントランザクションデータは前記第二ブロックチェーンで前記第二トランザクションイベントが既に実行されていることを指示する
ことを行うために用いられ、
前記第二ゲートウェイ装置はさらに、前記第二ブロックチェーン上の前記第二クロスチェーントランザクションデータを前記第一ゲートウェイ装置に送信するために用いられ、
前記第一ゲートウェイ装置はさらに、前記第二クロスチェーントランザクションデータを前記第一ノード装置に送信するために用いられ、
前記第一ノード装置はさらに、前記第一ゲートウェイ装置から前記第二クロスチェーントランザクションデータを受信し、前記端末にトランザクション完了レスポンスを送信するために用いられ、前記トランザクション完了レスポンスは前記クロスチェーントランザクションが既に完了していることを指示する、ブロックチェーンシステム。
【請求項10】
請求項9に記載のブロックチェーンシステムであって、
前記ブロックチェーンシステムは検証ノード装置をさらに含み、
前記検証ノード装置は、
ゲートウェイ装置からクロスチェーントランザクションデータの署名取得要求を受信し、前記ゲートウェイ装置は前記第一ゲートウェイ装置又は前記第二ゲートウェイ装置であり、前記クロスチェーントランザクションデータは前記第一クロスチェーントランザクションデータ又は前記第二クロスチェーントランザクションデータであり;
前記署名取得要求に基づいて前記クロスチェーントランザクションデータのデジタル署名を取得し、前記デジタル署名は前記ゲートウェイ装置に対応するブロックチェーンで前記クロスチェーントランザクションデータが記憶されていることを指示し;及び
前記ゲートウェイ装置に前記クロスチェーントランザクションデータのデジタル署名を送信する
ことを行うように用いられ、
前記ゲートウェイ装置はさらに、前記クロスチェーントランザクションデータのデジタル署名及び前記クロスチェーントランザクションデータを対応するノード装置に送信するために用いられる、ブロックチェーンシステム。
【請求項11】
クロスチェーントランザクションを処理する装置であって、
前記装置はブロックチェーンシステムに設定されており、前記ブロックチェーンシステムには第一ブロックチェーン及び第二ブロックチェーンがさらに設定されており、
前記装置は受信モジュール及び処理モジュールを含み、
前記受信モジュールは端末のクロスチェーントランザクション要求を受信するために用いられ、前記クロスチェーントランザクション要求は前記第一ブロックチェーンと前記第二ブロックチェーンとの間でクロスチェーントランザクションを行うことを指示し、
前記処理モジュールは、
前記クロスチェーントランザクション要求に基づいて、前記第一ブロックチェーン上の第一業務コントラクトを実行し、前記第一業務コントラクトは前記クロスチェーントランザクションの前記第一ブロックチェーン上の第一実行方式を指示し;
前記第一業務コントラクトにより、前記第一ブロックチェーンで前記クロスチェーントランザクションの第一トランザクションイベントを実行し、前記第一ブロックチェーン上の第一クロスチェーンコントラクトを実行し、前記第二ブロックチェーンで前記クロスチェーントランザクションの第二トランザクションイベントを実行すると決定し、前記第一クロスチェーンコントラクトは前記クロスチェーントランザクションの前記第一ブロックチェーン上の第二実行方式を指示し;及び
前記第一業務コントラクトにより、前記第一ブロックチェーンで第一クロスチェーントランザクションデータを記憶し、前記第一クロスチェーントランザクションデータは前記第一ブロックチェーンで前記第一トランザクションイベントが既に実行されていること及び前記第二ブロックチェーンで前記第二トランザクションイベントが既に実行されていることを指示する
ことを行うために用いられ、
前記受信モジュールはさらに、前記第二ブロックチェーンから第二クロスチェーントランザクションデータを取得するために用いられ、前記第二クロスチェーントランザクションデータは前記第一クロスチェーントランザクションデータに基づいて取得され、前記第二クロスチェーントランザクションデータは前記第二ブロックチェーンで前記第二トランザクションイベントが既に実行されていることを指示し、
前記処理モジュールはさらに、前記第一業務コントラクト及び前記第一クロスチェーンコントラクトにより、前記端末にトランザクション完了レスポンスを送信するために用いられ、前記トランザクション完了レスポンスは前記クロスチェーントランザクションが既に完了していることを指示する、装置。
【請求項12】
請求項11に記載の装置であって、
前記処理モジュールはさらに、
前記第二クロスチェーントランザクションデータに基づいて、前記第一クロスチェーンコントラクトを再び実行し;及び
再び実行された前記第一クロスチェーンコントラクトにより、前記第二クロスチェーントランザクションデータを前記第一業務コントラクトに送信し、前記第一業務コントラクトを再び実行し、前記端末に前記トランザクション完了レスポンスを送信する
ことを行うために用いられる、装置。
【請求項13】
クロスチェーントランザクションを処理する装置であって、
前記装置はブロックチェーンシステムに設定されており、前記ブロックチェーンシステムには第一ブロックチェーン及び第二ブロックチェーンがさらに設定されており、
前記装置は取得モジュール及び処理モジュールを含み、
前記取得モジュールは前記第一ブロックチェーンから第一クロスチェーントランザクションデータを取得するために用いられ、前記第一クロスチェーントランザクションデータは前記第一ブロックチェーンでクロスチェーントランザクションの第一トランザクションイベントが既に実行されていること及び前記第二ブロックチェーンで前記クロスチェーントランザクションの第二トランザクションイベントが既に実行されていることを指示し、
前記処理モジュールは、
前記第一クロスチェーントランザクションデータに基づいて、前記第二ブロックチェーン上の第二クロスチェーンコントラクトを実行し、前記第二クロスチェーンコントラクトは前記クロスチェーントランザクションの前記第二ブロックチェーン上の第四実行方式を指示し;
前記第二クロスチェーンコントラクトにより、前記第二ブロックチェーンで前記第一クロスチェーントランザクションデータを記憶し、第二業務コントラクトを実行し、前記第二業務コントラクトは前記クロスチェーントランザクションの前記第二ブロックチェーン上の第三実行方式を指示し;及び
前記第二業務コントラクトにより、前記第二ブロックチェーンで前記第二トランザクションイベントを実行し、継続して前記第二クロスチェーンコントラクトを実行し、前記第二ブロックチェーンで第二クロスチェーントランザクションデータを記憶し、前記第二クロスチェーントランザクションデータは前記第二ブロックチェーンで前記第二トランザクションイベントが既に実行されていることを指示する
ことを行うために用いられる、装置。
【請求項14】
処理器と、前記処理器に接続される記憶器とを含む電子機器であって、
前記記憶器にはコンピュータプログラムが記憶されており、
前記処理器は前記コンピュータプログラムを実行して請求項1乃至8のうちの何れか1項に記載の方法を実現するように構成される、電子機器。
【請求項15】
コンピュータに、請求項1乃至8のうちの何れか1項に記載の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2021年07月27日に中国専利局に出願した、出願番号が202110853182.7、発明の名称が「クロスチェーントランザクション処理方法、装置、電子機器及び記憶媒体」である中国特許出願に基づく優先権を主張するものであり、その全内容を参照によりここに援用する。
【0002】
本出願は、ブロックチェーンの技術分野に関し、特に、クロスチェーントランザクション処理方法と装置、電子機器及びコンピュータプログラムに関する。
【背景技術】
【0003】
ブロックチェーン技術の発展に伴い、ブロックチェーン技術は各業界で幅広く適用されており、各業界は独自のニーズに応じてブロックチェーンシステムを構築し、構築したブロックチェーンシステムを使用して独自の資産を保存できる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本出願の実施例は、クロスチェーントランザクション処理方法と装置、電子機器及びコンピュータプログラムの提供を課題とする。
【課題を解決するための手段】
【0005】
一側面によれば、クロスチェーントランザクション処理方法が提供され、ブロックチェーンシステムにおける第一ノード装置により実行され、前記ブロックチェーンシステムには第一ブロックチェーン及び第二ブロックチェーンが設定(配置/構成)されており、前記方法は、
端末のクロスチェーントランザクション要求(リクエスト)を受信し、前記クロスチェーントランザクション要求は前記第一ブロックチェーンと前記第二ブロックチェーンとの間でクロスチェーントランザクションを行うことを指示し;
前記クロスチェーントランザクション要求に基づいて、前記第一ブロックチェーン上の第一業務(サービス)コントラクトを実行し、前記第一業務コントラクトは前記クロスチェーントランザクションの前記第一ブロックチェーン上の第一実行方式を指示し;
前記第一業務コントラクトにより、前記第一ブロックチェーンで前記クロスチェーントランザクションの第一トランザクションイベントを実行し、前記第一ブロックチェーン上の第一クロスチェーンコントラクトを実行し、前記第二ブロックチェーンで前記クロスチェーントランザクションの第二トランザクションイベントを実行すると決定し、前記第一クロスチェーンコントラクトは前記クロスチェーントランザクションの前記第一ブロックチェーン上の第二実行方式を指示し;
前記第一業務コントラクトにより、前記第一ブロックチェーンで第一クロスチェーントランザクションデータを記憶し、前記第一クロスチェーントランザクションデータは前記第一ブロックチェーンで前記第一トランザクションイベントが既に実行されていること及び前記第二ブロックチェーンで前記第二トランザクションイベントが既に実行されていることを指示し;
前記第二ブロックチェーンから第二クロスチェーントランザクションデータを取得し、前記第二クロスチェーントランザクションデータは前記第一クロスチェーントランザクションデータに基づいて取得され、前記第二クロスチェーントランザクションデータは前記第二ブロックチェーンで前記第二トランザクションイベントが既に実行されていることを指示し;及び
前記第一業務コントラクト及び前記第一クロスチェーンコントラクトにより、前記端末にトランザクション完了レスポンスを送信し、前記トランザクション完了レスポンスは前記クロスチェーントランザクションが既に完了していることを指示することを含む。
【0006】
もう1つの側面によれば、クロスチェーントランザクション処理方法が提供され、ブロックチェーンシステムにおける第二ノード装置により実行され、前記ブロックチェーンシステムには第一ブロックチェーン及び第二ブロックチェーンが設定されており、前記方法は、
前記第一ブロックチェーンから第一クロスチェーントランザクションデータを取得し、前記第一クロスチェーントランザクションデータは前記第一ブロックチェーンでクロスチェーントランザクションの第一トランザクションイベントが既に実行されていること及び前記第二ブロックチェーンで前記クロスチェーントランザクションの第二トランザクションイベントが既に実行されていることを指示し;
前記第一クロスチェーントランザクションデータに基づいて、前記第二ブロックチェーン上の第二クロスチェーンコントラクトを実行し、前記第二クロスチェーンコントラクトは前記クロスチェーントランザクションの前記第二ブロックチェーン上の第四実行方式を指示し;
前記第二クロスチェーンコントラクトにより、前記第二ブロックチェーンで前記第一クロスチェーントランザクションデータを記憶し、前記第二ブロックチェーン上の第二業務コントラクトを実行し、前記第二業務コントラクトは前記クロスチェーントランザクションの前記第二ブロックチェーン上の第三実行方式を指示し;及び
前記第二業務コントラクトにより、前記第二ブロックチェーンで前記第二トランザクションイベントを実行し、引き続き、前記第二クロスチェーンコントラクトを実行し、前記第二ブロックチェーンで第二クロスチェーントランザクションデータを記憶し、前記第二クロスチェーントランザクションデータは前記第二ブロックチェーンで前記第二トランザクションイベントが既に実行されていることを指示することを含む。
【0007】
もう1つの側面によれば、クロスチェーントランザクション処理のためのブロックチェーンシステムが提供され、前記ブロックチェーンシステムは第一ノード装置、第二ノード装置、第一ゲートウェイ装置及び第二ゲートウェイ装置を含み、前記ブロックチェーンシステムには第一ブロックチェーン及び第二ブロックチェーンが設定されており、
前記第一ノード装置は、
端末のクロスチェーントランザクション要求を受信し、前記クロスチェーントランザクション要求は前記第一ブロックチェーンと前記第二ブロックチェーンとの間でクロスチェーントランザクションを行うことを指示し;
前記クロスチェーントランザクション要求に基づいて、前記第一ブロックチェーン上の第一業務コントラクトを実行し、前記第一業務コントラクトは前記クロスチェーントランザクションの前記第一ブロックチェーン上の第一実行方式を指示し;
前記第一業務コントラクトにより、前記第一ブロックチェーンで前記クロスチェーントランザクションの第一トランザクションイベントを実行し、前記第一ブロックチェーン上の第一クロスチェーンコントラクトを実行し、前記第二ブロックチェーンで前記クロスチェーントランザクションの第二トランザクションイベントを実行すると決定し、前記第一クロスチェーンコントラクトは前記クロスチェーントランザクションの前記第一ブロックチェーン上の第二実行方式を指示し;及び
前記第一業務コントラクトにより、前記第一ブロックチェーンで第一クロスチェーントランザクションデータを記憶し、前記第一クロスチェーントランザクションデータは前記第一ブロックチェーンで前記第一トランザクションイベントが既に実行されていること及び前記第二ブロックチェーンで前記第二トランザクションイベントが既に実行されていることを指示することを行うために用いられ、
前記第一ゲートウェイ装置は、前記第一ブロックチェーン上の前記第一クロスチェーントランザクションデータを前記第二ゲートウェイ装置に送信するために用いられ、
前記第二ゲートウェイ装置は、前記第一クロスチェーントランザクションデータを前記第二ノード装置に送信するために用いられ、
前記第二ノード装置は、
前記第一クロスチェーントランザクションデータに基づいて、前記第二ブロックチェーン上の第二クロスチェーンコントラクトを実行し、前記第二クロスチェーンコントラクトは前記クロスチェーントランザクションの前記第二ブロックチェーン上の第四実行方式を指示し;
前記第二クロスチェーンコントラクトにより、前記第二ブロックチェーンで前記第一クロスチェーントランザクションデータを記憶し、前記第二ブロックチェーン上の第二業務コントラクトを実行し、前記第二業務コントラクトは前記クロスチェーントランザクションの前記第二ブロックチェーン上の第三実行方式を指示し;及び
前記第二業務コントラクトにより、前記第二ブロックチェーンで前記第二トランザクションイベントを実行し、引き続き、前記第二クロスチェーンコントラクトを実行し、前記第二ブロックチェーンで第二クロスチェーントランザクションデータを記憶し、前記第二クロスチェーントランザクションデータは前記第二ブロックチェーンで前記第二トランザクションイベントが既に実行されていることを指示することを行うために用いられ、
前記第二ゲートウェイ装置はさらに、前記第二ブロックチェーン上の前記第二クロスチェーントランザクションデータを前記第一ゲートウェイ装置に送信するために用いられ、
前記第一ゲートウェイ装置はさらに、前記第二クロスチェーントランザクションデータを前記第一ノード装置に送信するために用いられ、
前記第一ノード装置はさらに、前記第一ゲートウェイ装置から前記第二クロスチェーントランザクションデータを受信し、前記端末にトランザクション完了レスポンスを送信するために用いられ、前記トランザクション完了レスポンスは前記クロスチェーントランザクションが既に完了していることを指示する。
【0008】
もう1つの側面によれば、クロスチェーントランザクション処理装置が提供され、前記装置はブロックチェーンシステムに設定されており、前記ブロックチェーンシステムには第一ブロックチェーン及び第二ブロックチェーンがさらに設定されており、前記装置は受信モジュール及び処理モジュールを含み、
前記受信モジュールは端末のクロスチェーントランザクション要求を受信するために用いられ、前記クロスチェーントランザクション要求は前記第一ブロックチェーンと前記第二ブロックチェーンとの間でクロスチェーントランザクションを行うことを指示し、
前記処理モジュールは、
前記クロスチェーントランザクション要求に基づいて、前記第一ブロックチェーン上の第一業務コントラクトを実行し、前記第一業務コントラクトは前記クロスチェーントランザクションの前記第一ブロックチェーン上の第一実行方式を指示し;
前記第一業務コントラクトにより、前記第一ブロックチェーンで前記クロスチェーントランザクションの第一トランザクションイベントを実行し、前記第一ブロックチェーン上の第一クロスチェーンコントラクトを実行し、前記第二ブロックチェーンで前記クロスチェーントランザクションの第二トランザクションイベントを実行すると決定し、前記第一クロスチェーンコントラクトは前記クロスチェーントランザクションの前記第一ブロックチェーン上の第二実行方式を指示し;及び
前記第一業務コントラクトにより、前記第一ブロックチェーンで第一クロスチェーントランザクションデータを記憶し、前記第一クロスチェーントランザクションデータは前記第一ブロックチェーンで前記第一トランザクションイベントが既に実行されていること及び前記第二ブロックチェーンで前記第二トランザクションイベントが既に実行されていることを指示することを行うために用いられ、
前記受信モジュールはさらに、前記第二ブロックチェーンから第二クロスチェーントランザクションデータを取得するために用いられ、前記第二クロスチェーントランザクションデータは前記第一クロスチェーントランザクションデータに基づいて取得され、前記第二クロスチェーントランザクションデータは前記第二ブロックチェーンで前記第二トランザクションイベントが既に実行されていることを指示し、
前記処理モジュールはさらに、前記第一業務コントラクト及び前記第一クロスチェーンコントラクトにより、前記端末にトランザクション完了レスポンスを送信するために用いられ、前記トランザクション完了レスポンスは前記クロスチェーントランザクションが既に完了していることを指示する。
【0009】
もう1つの側面によれば、クロスチェーントランザクション処理装置が提供され、前記装置はブロックチェーンシステムに設定されており、前記ブロックチェーンシステムには第一ブロックチェーン及び第二ブロックチェーンがさらに設定されており、前記装置は取得モジュール及び処理モジュールを含み、
前記取得モジュールは、前記第一ブロックチェーンから第一クロスチェーントランザクションデータを取得するために用いられ、前記第一クロスチェーントランザクションデータは前記第一ブロックチェーンでクロスチェーントランザクションの第一トランザクションイベントが既に実行されていること及び前記第二ブロックチェーンで前記クロスチェーントランザクションの第二トランザクションイベントが既に実行されていることを指示し、
前記処理モジュールは、
前記第一クロスチェーントランザクションデータに基づいて、前記第二ブロックチェーン上の第二クロスチェーンコントラクトを実行し、前記第二クロスチェーンコントラクトは前記クロスチェーントランザクションの前記第二ブロックチェーン上の第四実行方式を指示し;
前記第二クロスチェーンコントラクトにより、前記第二ブロックチェーンで前記第一クロスチェーントランザクションデータを記憶し、前記第二ブロックチェーン上の第二業務コントラクトを実行し、前記第二業務コントラクトは前記クロスチェーントランザクションの前記第二ブロックチェーン上の第三実行方式を指示し;及び
前記第二業務コントラクトにより、前記第二ブロックチェーンで前記第二トランザクションイベントを実行し、引き続き、前記第二クロスチェーンコントラクトを実行し、前記第二ブロックチェーンで第二クロスチェーントランザクションデータを記憶し、前記第二クロスチェーントランザクションデータは前記第二ブロックチェーンで前記第二トランザクションイベントが既に実行されていることを指示することを行うために用いられる。
【0010】
もう1つの側面によれば、電子機器が提供され、前記電子機器は処理器及び記憶器を含み、前記記憶器には少なくとも1つのコンピュータプログラムが提供され、前記少なくとも1つのコンピュータプログラムは前記処理器によりロードされ実行されることで上述の任意の1つの側面に記載のクロスチェーントランザクション処理方法を実現する。
【0011】
もう1つの側面によれば、コンピュータ可読記憶媒体が提供され、前記コンピュータ可読記憶媒体には少なくとも1つのコンピュータプログラムが記憶されており、前記少なくとも1つのコンピュータプログラムは処理器によりロードされ実行されることで上述の任意の1つの側面に記載のクロスチェーントランザクション処理方法を実現する。
【0012】
もう1つの側面によれば、コンピュータプログラムが提供され、該コンピュータプログラムはプログラムコードを含み、該プログラムコードはコンピュータ可読記憶媒体に記憶されており、電子機器の処理器はコンピュータ可読記憶媒体から該プログラムコードを読み取り、処理器は該プログラムコードを実行することで、該電子機器に、上述の任意の1つの側面で提供される方法を実行させる。
【図面の簡単な説明】
【0013】
本出願の実施例における技術案をより明確に説明するために、以下、実施例を説明するために使用される必要のある図面について簡単に紹介する。
【
図1】本出願の実施例で提供されるブロックチェーンシステムを示す図である。
【
図2】本出願の実施例で提供されるクロスチェーントランザクション処理方法のフローチャートである。
【
図3】本出願の実施例で提供される第一ノード集合がクロスチェーントランザクションを処理するフローチャートである。
【
図4】本出願の実施例で提供される第二ノード集合がクロスチェーントランザクションを処理するフローチャートである。
【
図5】本出願の実施例で提供されるクロスチェーントランザクション処理方法を示す図である。
【
図6】本出願の実施例で提供されるクロスチェーントランザクション処理装置の構成図である。
【
図7】本出願の実施例で提供されるクロスチェーントランザクション処理装置の構成図である。
【
図8】本出願の実施例で提供される電子機器の構成図である。
【発明を実施するための形態】
【0014】
異なる業界ではユーザに異なる業務を提供できる。異なる業務の間の資産トランスファー(移転)を実現するために、クロスチェーン相互運用技術がそれに応じて登場しており、クロスチェーン相互運用技術は異なるブロックチェーンシステムのチェーン間連携作業を促進でき、ブロックチェーンがネットワーク効果の規模化に向けて発展することの強力な原動力であり、徐々にアプリケーションに必要な新たなホットスポットになっている。
【0015】
現在のクロスチェーン相互運用技術には主にハッシュロック、公証メカニズム、サイドチェーン/中継などの技術が含まれる。これらの現在のクロスチェーン相互運用技術について、端末はすべてクロスチェーンイベントの整合性やクロスチェーンイベント検証などの一連の複雑なクロスチェーントランザクションを処理する必要があるため、端末の業務負担が増加する。
【0016】
以下、まず、本出願の実施例に係る略語又は主な用語について説明する。
【0017】
スマートコントラクト:コンピュータ化されたプロトコルであり、或るコントラクトの条款を実行でき、共有台帳にデプロイされる、所定条件が満足されたときに実行されるコードにより実現され、実際の業務ニーズに応じてコードは自動トランザクションを完了するために用いられ、例えば、買い手が購入した商品の物流状況をクエリし、買い手がサインして商品を受け取った後に買い手の電子通貨を販売者のアドレスにトランスファーするなどである。もちろん、スマートコントラクトはトランザクションのためのコントラクトを実行することに限定されず、受信した情報を処理するためのコントラクトをも実行できる。
【0018】
ブロックチェーン:生成時の順に従って互いに接続される一連のブロック(Block)を含み、新しいブロックがブロックチェーンに追加されると、削除されることはなく、ブロックにはブロックチェーンシステムにおけるノードが提出した記録データが記録されている。
【0019】
相互運用性:2種類以上のシステムとアプリケーションとの間で情報を交換し、交換した情報を使用する機能である。
【0020】
クロスチェーン:複数のブロックチェーンの間で相互運用性を実現し、クロスチェーンは相互運用性の1種である。
【0021】
図1は本出願の実施例で提供されるブロックチェーンシステムを示す図である。
図1に示すように、該ブロックチェーンシステム100は複数のノード群101を含み、各ノード群101は1つの業務に対応し、異なるノード群101に対応する業務は同じであっても良く、異なっても良い。例えば、1つのノード群が第一アプリケーションプログラム(例えば、アリペイ)の支払い業務にサービスを提供するために用いられ、もう1つのノード群が第二アプリケーションプログラム(例えば、ウィーチャット)の支払い業務にサービスを提供するために用いられる。
【0022】
各ノード群101は対応業務に係るトランザクションイベントを処理するために用いられる、各ノード群101には少なくとも1つのブロックチェーンが設定されており、各ブロックチェーンでは対応業務のトランザクションイベントのトランザクションデータを記憶する。同一業務のトランザクションデータは同一チェーントランザクションデータ及びクロスチェーントランザクションデータを含む。そのうち、同一チェーントランザクションデータは自ノード群の業務(又は同一チェーントランザクション)について自ノード群のブロックチェーンで実行されるトランザクションイベントを指示し、クロスチェーントランザクションデータは異なるノード群の間のクロスチェーン業務(又はクロスチェーントランザクション)について自ノード群のブロックチェーンで実行されるクロスチェーントランザクションイベントを指示する。
【0023】
クロスチェーン業務の処理を透明かつ追跡可能にするために、1つの可能な実現方式において、各ブロックチェーンには業務コントラクト及びクロスチェーンコントラクトが記憶されており、例えば、業務コントラクト及びクロスチェーンコントラクトはブロックチェーンのジェネシスブロック(即ち、該ブロックチェーンの1番目のブロック)に記憶されている。そのうち、該業務コントラクトは業務層のスマートコントラクトであり、該業務コントラクトは自チェーン(即ち、業務コントラクトの所在するブロックチェーン)の状態データを読み書きする機能を有し、かつクロスチェーントランザクションを処理するときに、さらに、同一ブロックチェーン上のクロスチェーンコントラクトを呼び出してクロスチェーン業務を処理できる。該クロスチェーンコントラクトはクロスチェーントランザクションを処理するためのスマートコントラクトであり、同一チェーン上の業務コントラクトの代理コントラクトとしてクロスチェーントランザクションを処理できる。該クロスチェーンコントラクトは自チェーン上の業務コントラクトの呼び出し(即ち、チェーン内コントラクト呼び出し)を受けることができ、自チェーンに係るクロスチェーントランザクションに基づいて、相手チェーン(即ち、クロスチェーントランザクションに係る他のノード群におけるブロックチェーン)で実行されるべきトランザクションイベントを決定し、相手チェーンに記憶されているクロスチェーントランザクションデータが正真(valid)であるかどうかを検証し、自チェーン上の業務コントラクトをコールバックし、クロスチェーントランザクションデータをロールバックし、かかる機能を達成できる。クロスチェーンコントラクトはクロスチェーンプロセス全体の意思決定者であり、かつスマートコントラクトの方式によりチェーンで公開的に実行されることで、多者参加型(decentralized(分散型))のクロスチェーン業務を実現できる。
【0024】
1つの可能な実現方式において、各ノード群101は複数のノード装置1011を含み、各ノード群101に設定されているブロックチェーンは各ノード群101におけるノード装置1011によりメンテナンスされる。該ブロックチェーンシステム100における各ノード装置1011は何れもユーザ側の端末であっても良く、サーバーであっても良い。そのうち、端末はスマート端末又はモバイルスマート端末とも称され、それは豊富なヒューマンコンピュータインタラクション方式を備え、インターネットにアクセスする機能があり、通常、様々なオペレーティングシステムが搭載されており、強力な処理能力を持つものである。幾つかの実施例において、移動スマート端末の種類はスマートフォン、タブレットコンピュータ、車載端末、携帯ゲーム機などを含むが、これらに限定されない。サーバーは1つ又は複数のコンピュータ装置からなるサーバー群であっても良い。
【0025】
1つの可能な実現方式において、各ノード群101はさらにゲートウェイ装置1012を含み、該ゲートウェイ装置1012は所在するノード群の外部へのインターフェースであり、異なるノード群の間のクロスチェーントランザクションデータの伝送の処理を担当する。幾つかの実施例において、本出願に係るゲートウェイ装置はクロスチェーンゲートウェイとも呼ばれる。
【0026】
1つの可能な実現方式において、各ノード群101はさらに検証ノード装置1013を含み、1つの検証ノード装置1013は所属するノード群におけるブロックチェーン上のクロスチェーントランザクションデータのために正真性証明(validity proof)を行うことができる。オプションとして、ゲートウェイ装置1012はクロスチェーンプロセスにおいて中継の役割として機能し、所属するノード群の検証ノード装置1013を呼び出すことで、該ノード群におけるブロックチェーン上のクロスチェーントランザクションデータに対して正真性証明を行う。なお、検証ノード装置1013は選択可能な装置であり、幾つかの実施例において、クロスチェーントランザクションデータに対して正真性証明を行わず、この場合に、検証ノード1013を含まない。
【0027】
該ブロックチェーンシステム100における異なるノード群101の管理を容易にするために、1つの可能な実現方式において、該ブロックチェーンシステム100はさらに登録装置102を含む。各ノード群101に設定されるブロックチェーンの標識や各ノード群において対応する業務の標識は該登録装置で登録され得る。あるいは、各ノード群における各ユーザはすべて該登録装置102で統一のブロックチェーンアカウント(即ち、ブロックチェーン上のアカウント)を登録できる。異なるノード群101におけるユーザが登録するブロックチェーンアカウントは異なるブロックチェーンに所属し、これによって、対応するブロックチェーンで該ユーザの資産、該ユーザの資産移転、資産変更の状況を記録できる。1つの可能な実現方式において、ゲートウェイ装置1012はさらに該登録装置102でユーザのブロックチェーンアカウント及び該ブロックチェーンアカウントの所属するブロックチェーンの標識をクエリできる。なお、登録装置102は選択可能な装置であり、例えば、該ブロックチェーンシステム100における異なる群に設定されるブロックチェーンが統一の管理を必要とせず、又はブロックチェーンアカウントが統一の登録を必要としない場合に、該ブロックチェーンシステム100は登録装置102を含まなくても良い。
【0028】
ブロックチェーンシステムにおけるノード装置がクロスチェーントランザクションを処理するプロセスをさらに説明するために、
図2に示す本出願の実施例で提供されるクロスチェーントランザクション処理方法のフローチャートを参照する。該方法はブロックチェーンシステムにおける第一ノード装置により実行され、該ブロックチェーンシステムには第一ブロックチェーン及び第二ブロックチェーンが設定されている。
【0029】
201:第一ノード装置は端末のクロスチェーントランザクション要求を受信し、該クロスチェーントランザクション要求は該第一ブロックチェーンと該第二ブロックチェーンとの間でクロスチェーントランザクションを行うことを指示する。
【0030】
そのうち、該第一ノード装置は該ブロックチェーンシステムにおける第一ノード群内の任意の1つのノード装置であり、該第一ノード群は該ブロックチェーンシステムにおける任意の1つのノード群である。該第一ノード群には第一ブロックチェーンがデプロイされている。該端末は該第一ノード装置であっても良く、該第一ノード装置以外の電子機器であっても良い。
【0031】
該クロスチェーントランザクション要求は該クロスチェーントランザクションのトランザクション情報、該第一業務コントラクトの標識及び該第二ブロックチェーン上の第二業務コントラクトの標識を含む。該クロスチェーントランザクションは第一ブロックチェーン及び第二ブロックチェーンに対してクロスチェーン操作を行うトランザクションであっても良い。例えば、該クロスチェーントランザクションは第一ブロックチェーン上の第一アカウントにおける目標数量の仮想リソースを第二ブロックチェーン上の第二アカウントに移転するものであっても良く、又は、該クロスチェーントランザクションは第一ブロックチェーン及び第二ブロックチェーン上のデータの同期変更を行うものであっても良い。なお、本出願の実施例では該クロスチェーントランザクションについて限定しない。
【0032】
該クロスチェーントランザクションのトランザクション情報は該クロスチェーントランザクションを指示する。例えば、該クロスチェーントランザクションが、第一ブロックチェーン上の第一アカウントにおける目標数量の仮想リソースを第二ブロックチェーン上の第二アカウントに移転するものである場合に、該トランザクション情報はリソース移転元アカウント、リソース移転先アカウント及びリソース移転量を含む。そのうち、該リソース移転元アカウントは該第一アカウントであり、該リソース移転先アカウントは第二アカウントであり、該リソース移転量は目標数量である。また、例えば、該クロスチェーントランザクションが、該第一ブロックチェーン及び第二ブロックチェーン上のデータの同期変更を行うものである場合に、該トランザクション情報は該第一ブロックチェーン及び第二ブロックチェーン上の変更待ちデータの位置並びに該第一ブロックチェーン及び第二ブロックチェーン上の変更待ちデータの変更後データを含む。
【0033】
1つの可能な実現方式において、該クロスチェーントランザクションは2つのトランザクションイベントを含み、1つは第一ブロックチェーンに対してのトランザクションイベントであり、もう1つは第二ブロックチェーンに対してのトランザクションイベントであり、この2つのトランザクションイベントは対応するブロックチェーンで成功裏に実行された後に、該クロスチェーントランザクションは完了する。説明の便宜のため、該クロスチェーントランザクションの第一ブロックチェーンに対してのトランザクションイベントを第一トランザクションイベントと記し、該クロスチェーントランザクションの第二ブロックチェーンに対してのトランザクションイベントを第二トランザクションイベントと記す。例えば、該クロスチェーントランザクションが、第一ブロックチェーン上の第一アカウントにおける目標数量の仮想リソースを第二ブロックチェーン上の第二アカウントに移転するものである場合に、第一トランザクションイベントは第一アカウントから目標数量の仮想リソースをマイナイスし(控除し)、第二トランザクションイベントは第二アカウントに目標数量の仮想リソースをプラスする(増加させる)。
【0034】
ブロックチェーン上の業務コントラクトは自チェーン(即ち、業務コントラクトの所在するブロックチェーン)でクロスチェーントランザクションを処理する処理ロジックを指示する。該処理ロジックは、自チェーンから開始するクロスチェーントランザクションについて、自チェーンで該クロスチェーントランザクションの自チェーンに対してのトランザクションイベントを実行し、自チェーン上のクロスチェーンコントラクトを呼び出すことで該クロスチェーントランザクションの相手チェーン(即ち、クロスチェーントランザクションに係る自チェーン以外のブロックチェーンであり、あるいは、目標チェーンといっても良い)のトランザクションイベントを取得し、及び自チェーンで該クロスチェーントランザクションのクロスチェーントランザクションデータを記憶することを含む。該処理ロジックはさらに、相手チェーンから開始するクロスチェーントランザクションについて、自チェーン上のクロスチェーンコントラクトへの呼び出しを受けることで、自チェーンで該クロスチェーントランザクションの自チェーンに対してのトランザクションイベントを実行することを含む。業務コントラクトが指示する各処理ロジックは該業務コントラクトにおけるプログラムコード(又はコンピュータプログラム)により実現され、異なる処理ロジックは異なるプログラムコードに対応しても良い。
【0035】
1つの業務コントラクトの標識は該業務コントラクトを指示し、該業務コントラクトの標識は該業務コントラクトの名称であっても良い。例えば、第一業務コントラクトは第一ブロックチェーン上の業務コントラクトであり、第一業務コントラクトの標識は該第一業務コントラクトを指示し、第二業務コントラクトは第二ブロックチェーン上の業務コントラクトであり、第二業務コントラクトの標識は該第二業務コントラクトを指示する。
【0036】
202:第一ノード装置は該クロスチェーントランザクション要求に基づいて、該第一ブロックチェーン上の第一業務コントラクトを実行し、該第一業務コントラクトは該クロスチェーントランザクションの該第一ブロックチェーン上の第一実行方式を指示する。
【0037】
そのうち、該第二ブロックチェーンは該ブロックチェーンシステムにおける第二ノード群に設定されるブロックチェーンであり、該第二ノード群は該ブロックチェーンシステムにおける該第一ノード群以外の任意の1つのノード群である。
【0038】
該第一業務コントラクトは該第一ブロックチェーン上の業務コントラクトである。該クロスチェーントランザクション要求が該第一ノード装置により受信されるため、該クロスチェーントランザクションは第一ブロックチェーンから開始するクロスチェーントランザクションであると見なす。該第一実行方式は該第一業務コントラクトにおいて自チェーンから開始するクロスチェーントランザクションに関する処理ロジックにより実現される。該第一実行方式は第一ブロックチェーンで該クロスチェーントランザクションの第一ブロックチェーンに対してのトランザクションイベントを実行し、第一ブロックチェーン上のクロスチェーンコントラクトを呼び出すことで該クロスチェーントランザクションの該第二ブロックチェーンに対してのトランザクションイベントを取得し、第一ブロックチェーンで該クロスチェーントランザクションのクロスチェーントランザクションデータを記憶することを含む。1つの可能な実現方式において、該第一実行方式はさらに、端末に該クロスチェーントランザクションに対しての処理結果をリターンする。
【0039】
203:第一業務コントラクトにより、第一ノード装置は該第一ブロックチェーンで該クロスチェーントランザクションの第一トランザクションイベントを実行し、該第一ブロックチェーン上の第一クロスチェーンコントラクトを実行し、該第二ブロックチェーンで該クロスチェーントランザクションの第二トランザクションイベントを実行することを決定し、該第一クロスチェーンコントラクトは該クロスチェーントランザクションの該第一ブロックチェーン上の第二実行方式を指示する。
【0040】
ブロックチェーン上のクロスチェーンコントラクトはクロスチェーントランザクションにおいて相手チェーンに関する処理ロジックを指示し、該処理ロジックは自チェーンから開始するクロスチェーントランザクションについて、該クロスチェーントランザクションの相手チェーンに対してのトランザクションイベントを決定することを含む。
【0041】
1つの可能な実現方式において、該処理ロジックはさらに、自チェーンから開始するクロスチェーントランザクションについて、相手チェーン上のクロスチェーントランザクションのクロスチェーントランザクションデータの正真性を検証し、自チェーン上の業務コントラクトを呼び出して端末に該クロスチェーントランザクションの処理結果をリターンすることを含む。そのうち、相手チェーン上のクロスチェーントランザクションのクロスチェーントランザクションデータの正真性を検証するステップは選択可能なステップである。該処理ロジックはさらに、相手チェーンから開始するクロスチェーントランザクションについて、相手チェーン上のクロスチェーントランザクションのクロスチェーントランザクションデータの正真性を検証し、自チェーンで相手チェーン上の該クロスチェーントランザクションのクロスチェーントランザクションデータを記憶し、自チェーン上の業務コントラクトを呼び出して該クロスチェーントランザクションの自チェーンに対してのトランザクションイベントを実行し、自チェーンで該クロスチェーントランザクションの自チェーンに対してのトランザクションイベントのクロスチェーントランザクションデータを記憶することを含む。そのうち、相手チェーン上のクロスチェーントランザクションのクロスチェーントランザクションデータの正真性を検証するステップは選択可能なステップである。クロスチェーンコントラクトが指示する処理ロジックは該クロスチェーンコントラクトにおけるプログラムコード(又はコンピュータプログラム)により実現され、異なる処理ロジックは異なるプログラムコードに対応しても良い。
【0042】
該第一クロスチェーンコントラクトは該第一ブロックチェーン上のクロスチェーンコントラクトである。該第二実行方式は該第一クロスチェーンコントラクトにおいて自チェーンから開始するクロスチェーントランザクションに関する処理ロジックにより実現される。該第二実行方式は、該ブロックチェーンで該クロスチェーントランザクションの第二トランザクションイベントを実行することを決定し、第二ブロックチェーン上の該クロスチェーントランザクションのクロスチェーントランザクションデータの正真性を検証し、第一業務コントラクトを呼び出して端末に該クロスチェーントランザクションに対しての処理結果をリターンすることを含む。
【0043】
204:第一業務コントラクトにより、第一ノード装置は該第一ブロックチェーンで第一クロスチェーントランザクションデータを記憶し、該第一クロスチェーントランザクションデータは該第一ブロックチェーンで該第一トランザクションイベントが既に実行されており及び該第二ブロックチェーンで該第二トランザクションイベントが既に実行されていることを指示する。
【0044】
そのうち、該第一クロスチェーントランザクションデータは該クロスチェーントランザクションのクロスチェーントランザクションデータである。オプションとして、第一クロスチェーントランザクションデータは該第一トランザクションイベントの処理結果、該第二業務コントラクトの標識及び第二トランザクションイベントのイベント情報を含む。そのうち、1つのトランザクションイベントの処理結果は第一処理結果又は第二処理結果であり、第一処理結果はブロックチェーンで該トランザクションイベントが既に実行されており、かつ該トランザクションイベントの実行が成功したことを指示する。例えば、該トランザクションイベントが第一アカウントから目標数量の仮想リソースをマイナイスすることである場合に、該第一アカウントから目標数量の仮想リソースが既にマイナイスされていれば、該トランザクションイベントの実行は成功したことになる。オプションとして、該第一処理結果は該トランザクションイベントのイベント情報及び成功標識を含む。そのうち、該イベント情報は該トランザクションイベントを指示するために用いられ、該トランザクションイベントのイベントパラメータを含む。例えば、該トランザクションイベントが第一アカウントから目標数量の仮想リソースをマイナイスすることであるケースを例とし、該イベントパラメータはリソース移転元情報及び移転待ちリソース量を含む。該成功標識は該トランザクションイベントが既に成功したことを指示する。
【0045】
該第二処結果はブロックチェーンで該トランザクションイベントが既に実行されており、かつ該トランザクションイベントの実行が失敗したことを指示する。例えば、該トランザクションイベントが第一アカウントから目標数量の仮想リソースをマイナイスすることである場合に、該第一アカウントにおける仮想リソースの個数が目標数量よりも小さければ、該第一アカウントから目標数量の仮想リソースをマイナイスできないため、該トランザクションイベントの実行が失敗したことになる。オプションとして、該第二処理結果は該トランザクションイベントのイベント情報及び失敗標識を含み、該失敗標識は該トランザクションイベントの実行が失敗したことを指示する。
【0046】
1つの可能な実現方式において、第一クロスチェーントランザクションデータはさらに、第二ブロックチェーンの標識及び第二ブロックチェーン上の第二業務コントラクトの標識を含む。1つの可能な実現方式において、該第一クロスチェーントランザクションデータはさらに、第二業務コントラクトにおける目標プログラムコードの標識を含む。該目標プログラムコードは該第二トランザクションイベントを実現するために用いられ、該第二トランザクションイベントのイベント情報は該目標プログラムコードの入力パラメータである。
【0047】
205:第一ノード装置は該第二ブロックチェーンから第二クロスチェーントランザクションデータを取得し、該第二クロスチェーントランザクションデータは該第一クロスチェーントランザクションデータに基づいて得られ、該第二クロスチェーントランザクションデータは該第二ブロックチェーンで該第二トランザクションイベントが既に実行されていることを指示する。
【0048】
そのうち、該第二クロスチェーントランザクションデータは該第二トランザクションイベントの処理結果を含む。
【0049】
206:第一業務コントラクト及び第一クロスチェーンコントラクトにより、第一ノード装置は該端末にトランザクション完了レスポンスを送信し、該トランザクション完了レスポンスは該クロスチェーントランザクションが既に完了したことを指示する。
【0050】
そのうち、該トランザクション完了レスポンスは該クロスチェーントランザクションのトランザクション情報を含む。
【0051】
本出願の実施例で提供される方法では、端末のクロスチェーントランザクション要求を受信したときに、ブロックチェーンシステムにおけるノード装置がブロックチェーン上の業務コントラクト及びクロスチェーンコントラクトを実行することで、クロスチェーントランザクションを行い、クロスチェーントランザクション完了後に、端末にトランザクション完了レスポンスに返す。該クロスチェーントランザクション処理のプロセスでは、端末がクロスチェーントランザクションの実行を要求し、そして、クロスチェーントランザクションの処理結果を受信し、クロスチェーントランザクションの具体的な処理プロセスに関心がないため、端末の業務負担を軽減できる。
【0052】
クロスチェーン業務を処理するプロセスおいて、第一ノード群と第二ノード群との間の異なるノード群内のノード装置のインタラクションプロセスをさらに説明するために、
図3に示す本出願の実施例で提供されるクロスチェーントランザクション処理方法のフローチャートを参照する。
【0053】
301:第一ノード装置は端末のクロスチェーントランザクション要求を受信し、該クロスチェーントランザクション要求は該第一ブロックチェーンと該第二ブロックチェーンとの間でクロスチェーントランザクションを行うことを指示する。
【0054】
1つの可能な実現方式において、該端末には業務アプリケーションがインストールされており、ユーザは第一アカウントを採用して端末で該業務アプリケーションを登録し、そして、該業務アプリケーションに対して、該クロスチェーントランザクションを行う指令(命令)を出す。該業務アプリケーションは指令を受信した後に、該クロスチェーントランザクション要求を生成し、そして、端末にクロスチェーントランザクション要求を送信する。
【0055】
そのうち、端末は第一ノード装置であっても良く、又は、第一ノード装置以外の装置であっても良い。該端末が該第一ノード装置以外の装置である場合に、該端末は該第一ノード装置に該クロスチェーントランザクション要求を送信し、それ相応に、該第一ノード装置は該端末から該クロスチェーントランザクション要求を受信する。該端末が第一ノード装置である場合に、該第一ノード装置は該業務アプリケーション送信の該クロスチェーントランザクション要求を受信する。
【0056】
302:第一ノード装置は該クロスチェーントランザクション要求に基づいて、第一ブロックチェーン上の第一業務コントラクトを実行し、該第一業務コントラクトは該クロスチェーントランザクションの該第一ブロックチェーン上の第一実行方式を指示する。
【0057】
該クロスチェーントランザクション要求を受信した後に、該第一ノード装置がローカル第一ブロックチェーンから該第一業務コントラクトを取得し、該クロスチェーントランザクション要求を第一業務コントラクトの入力パラメータとして該第一業務コントラクトに入力し、該第一業務コントラクトを実行するようにトリガーする。
【0058】
303:第一業務コントラクトにより、第一ノード装置は第一ブロックチェーンで該クロスチェーントランザクションの第一トランザクションイベントを実行し、該第一ブロックチェーン上の第一クロスチェーンコントラクトを実行し、該第二ブロックチェーンで該クロスチェーントランザクションの第二トランザクションイベントを実行することを決定し、該第一クロスチェーンコントラクトは該クロスチェーントランザクションの該第一ブロックチェーン上の第二実行方式を指示する。
【0059】
第一業務コントラクトの実行プロセスにおいて、該第一ノード装置は該クロスチェーントランザクション要求における該クロスチェーントランザクションのトランザクション情報に基づいて、該クロスチェーントランザクションの第一トランザクションイベントを決定し、該第一ブロックチェーンで該第一トランザクションイベントを実行し、該第一トランザクションイベントの処理結果を得る。オプションとして、該第一トランザクションイベントの実行が成功した場合に、該第一トランザクションイベントの処理結果は第一処理結果であり、該第一トランザクションイベントの実行が失敗した場合に、該第一トランザクションイベントの処理結果は第二処理結果である。
【0060】
第一業務コントラクトの実行プロセスにおいて、該クロスチェーントランザクション要求が該第一業務コントラクトに入力されるときに、第一業務コントラクトが第一ブロックチェーン上の第一クロスチェーンコントラクトを呼び出すようにトリガーする。第一ブロックチェーン上の第一クロスチェーンコントラクトを呼び出すことで、該第一ノード装置は第一ブロックチェーンから第一クロスチェーンコントラクトを取得し、該クロスチェーントランザクションのトランザクション情報を入力パラメータとして該第一クロスチェーンコントラクトに入力し、該第一クロスチェーンコントラクトを実行する。
【0061】
第一クロスチェーンコントラクトの実行プロセスにおいて、第一ノード装置はトランザクション情報に基づいて、第二ブロックチェーンで該クロスチェーントランザクションの第二トランザクションイベントを実行することを決定する。該第二トランザクションイベントを決定した後に、第一ノード装置は該第二トランザクションイベントのイベント情報を第一業務コントラクトにリターンする。
【0062】
1つの可能な実現方式において、該ブロックチェーンシステムにおける各ブロックチェーンにはすべて該ブロックチェーンシステムにおける各ブロックチェーンのブロックチェーン情報が記憶されている。例えば、各ブロックチェーンのジェネシスブロックにはすべて該ブロックチェーンシステムにおける各ブロックチェーンのブロックチェーン情報が記憶されている。また、例えば、各ブロックチェーン上のクロスチェーンコントラクト又は業務コントラクトにはすべて該ブロックチェーンシステムにおける各ブロックチェーンのブロックチェーン情報が記憶されている。そのうち、1つのブロックチェーンのブロックチェーン情報は該ブロックチェーンの所属するノード集合の標識及び該ブロックチェーンの標識を含む。オプションとして、各ブロックチェーンのブロックチェーン情報はさらに、各ブロックチェーン上の業務コントラクトの標識、及び、業務コントラクトにおいてクロスチェーントランザクションのトランザクションイベントを実行するためのプログラムコード(又はコンピュータプログラム)の標識を含む。
【0063】
1つの可能な実現方式において、第一クロスチェーンコントラクトの実行プロセスで、第一ノード装置はさらに、該第二業務コントラクトの標識及び該第二トランザクションイベントに基づいて、該第一ブロックチェーンに記憶されている第二ブロックチェーンのブロックチェーン情報をクエリすることで、該第二業務コントラクトにおいて該第二トランザクションイベントを実現するための目標プログラムコードを決定し、そして、該第一業務コントラクトに該目標プログラムコードの標識をリターンする。
【0064】
304:第一業務コントラクトにより、第一ノード装置は該第一ブロックチェーンで第一クロスチェーントランザクションデータを記憶し、該第一クロスチェーントランザクションデータは該第一ブロックチェーンで該第一トランザクションイベントが既に実行されており及び該第二ブロックチェーンで該第二トランザクションイベントが既に実行されていることを指示する。
【0065】
第一業務コントラクトの実行プロセスにおいて、第一ノード装置は該第一トランザクションイベントの処理結果を取得し、及び第一クロスチェーンコントラクトがリターンする第二トランザクションイベントのイベント情報を取得する。該第一ノード装置は該第一トランザクションイベントの処理結果及び該第二トランザクションイベントのイベント情報に基づいて、該第一クロスチェーントランザクションデータを生成し、第一ブロックチェーンで該第一クロスチェーントランザクションデータを記憶する。
【0066】
1つの可能な実現方式において、第一ノード装置は第一トランザクションイベントの処理結果及び第二トランザクションイベントのイベント情報に基づいて、第一クロスチェーントランザクションデータを生成することは、第一ノード装置は第一トランザクションイベントの処理結果、第二トランザクションイベントのイベント情報、第二業務コントラクトの標識、及び第二業務コントラクトにおける目標プログラムコードの標識に基づいて、第一クロスチェーントランザクションデータを生成することを含む。
【0067】
説明の便宜のため、ノード群においてブロックを生成するためのノード装置をブロック生成ノード装置と記し、ノード群においてブロックのコンセンサスを取るためのノード装置をコンセンサスノード装置と記す。1つの可能な実現方式において、第一ノード装置は第一ブロックチェーンで第一クロスチェーントランザクションデータを記憶することは、第一ノード装置は第一クロスチェーントランザクションデータを第一ノード群においてブロードキャストし、第一ノード群におけるブロック生成ノード装置は第一クロスチェーントランザクションデータを受信した後に第一クロスチェーントランザクションデータを目標ブロックにパックすることを含む。該目標ブロックが生成された後に、該ブロック生成ノード装置は第一ノード群のコンセンサスノード装置の間で該目標ブロックをブロードキャストする。第一ノード群における多数のコンセンサスノード装置が該目標ブロックに対してコンセンサスを達成した後に、第一ノード群における各第一ノード装置はすべて目標ブロックをローカル第一ブロックチェーンに記憶し、これによって、第一ブロックチェーンで第一クロスチェーントランザクションデータを記憶することを実現する。
【0068】
305:第一ゲートウェイ装置は第一ブロックチェーンで第一クロスチェーントランザクションデータを取得する。
【0069】
そのうち、第一ゲートウェイ装置は第一ブロックチェーンに対応するゲートウェイ装置である。
【0070】
1つの可能な実現方式において、第一ブロックチェーンに少なくとも1つのブロックが増加する度に、第一ゲートウェイ装置は該少なくとも1つのブロックにクロスチェーントランザクションデータが含まれるかをクエリする。クロスチェーントランザクションデータが含まれる場合に、第一ゲートウェイ装置はクエリしたクロスチェーントランザクションデータを取得する。よって、第一ゲートウェイ装置は第一ブロックチェーンから第一クロスチェーントランザクションデータを含む目標ブロックを見つけた後に、第一ゲートウェイ装置は目標ブロックのうちから第一クロスチェーントランザクションデータを取得する。
【0071】
もう1つの可能な実現方式において、第一ゲートウェイ装置は該第一ブロックチェーン上の第一クロスチェーンコントラクトに呼び出しイベントが出現したかを監視する。呼び出しイベントが出現した場合に、該第一ゲートウェイ装置は第一ブロックチェーンから該呼び出しイベントに関するクロスチェーントランザクションデータ(例えば、第一クロスチェーントランザクションデータ)を取得する。
【0072】
なお、第一クロスチェーントランザクションデータは本出願の実施例に係る1つのクロスチェーントランザクションデータであるので、本ステップ305に示すプロセスは、ブロックチェーンシステムにおけるゲートウェイ装置が該ゲートウェイ装置に対応するブロックチェーンからクロスチェーントランザクションデータを得るプロセスでもある。
【0073】
306:第一ゲートウェイ装置は第一検証ノード装置に第一クロスチェーントランザクションデータの第一署名取得要求を送信し、該第一署名取得要求は第一クロスチェーントランザクションデータのデジタル署名の取得を指示する。
【0074】
そのうち、第一検証ノード装置は第一ノード集合における検証ノード装置であり、即ち、第一ブロックチェーンに対応する検証ノード装置である。第一クロスチェーントランザクションデータの1つのデジタル署名は該第一クロスチェーントランザクションデータが該第一ブロックチェーンに記憶されていることを指示するために用いられ、あるいは、1つの検証ノード装置は該第一ブロックチェーンに第一クロスチェーントランザクションデータが記憶されていることを証明する。オプションとして、第一署名取得要求は該第一クロスチェーントランザクションデータのハッシュ値及び該第一クロスチェーントランザクションデータの所属する目標ブロックの標識を含む。そのうち、目標ブロックのブロック標識は目標ブロックの第一ブロックチェーン上のブロック高さであり、これによって、該目標ブロックが第一ブロックチェーン上の何番目のブロックであるかを指示できる。
【0075】
なお、第一署名取得要求は本出願の実施例に係る署名取得要求であるので、ステップ306に示すプロセスは、ブロックチェーンシステムにおけるゲートウェイ装置が検証ノード装置に署名取得要求を送信するプロセスでもある。
【0076】
307:第一検証ノード装置は第一ゲートウェイ装置から第一署名取得要求を受信する。
【0077】
308:第一検証ノード装置は第一署名取得要求に基づいて、第一クロスチェーントランザクションデータに対して署名を行い、第一クロスチェーントランザクションデータのデジタル署名を取得し、第一デジタル署名は該第一ブロックチェーンに第一クロスチェーントランザクションデータが記憶されていることを証明する。
【0078】
1つの可能な実現方式において、第一ノード集合は少なくとも1つの第一検証ノード装置を含み、該少なくとも1つの第一検証ノード装置は第一ノード集合における検証ノード組とされる。該第一署名取得要求を受信した任意の1つの第一検証ノード装置は該検証ノード組で該第一署名取得要求をブロードキャストする。第一署名取得要求を受信した各第一検証ノード装置は何れもステップ308を実行する。
【0079】
1つの可能な実現方式において、1つの第一検証ノード装置が第一署名取得要求に基づいて、該第一クロスチェーントランザクションデータに対して署名を行う方式は以下の方式A-Dのうちの任意の1つの方式を含む。
【0080】
方式A:第一検証ノード装置は第一署名取得要求に基づいて、第一クロスチェーントランザクションデータに対して裏書きをし、第一クロスチェーントランザクションデータのデジタル署名を得る。
【0081】
第一検証ノード装置は第一署名取得要求における目標ブロックの標識に基づいて、第一ブロックチェーン上の目標ブロックを決定し、そして、第一署名取得要求における第一クロスチェーントランザクションデータのハッシュ値に基づいて、目標ブロックに第一クロスチェーントランザクションデータが記憶されているかをクエリする。目標ブロックに第一クロスチェーントランザクションデータが記憶されている場合に、第一検証ノード装置は第一検証ノード装置のプライベートキーを採用して第一クロスチェーントランザクションデータのハッシュ値に対して署名(又は暗号化といっても良い)を行って裏書きを完了し、第一検証ノード装置の第一クロスチェーントランザクションデータに対してのデジタル署名を取得し、デジタル署名は第一クロスチェーントランザクションデータの暗号化後のハッシュ値であり、第一検証ノード装置の第一クロスチェーントランザクションデータに対しての正真性証明である。目標ブロックに第一クロスチェーントランザクションデータが記憶されない場合に、第一検証ノード装置は第一検証ノード装置のプライベートキーを採用して第一クロスチェーントランザクションデータのハッシュ値に対して署名を行わない。
【0082】
1つの可能な実現方式において、第一検証ノード装置は第一署名取得要求における第一クロスチェーントランザクションデータのハッシュ値に基づいて、目標ブロックに第一クロスチェーントランザクションデータが記憶されているかをクエリすることは、第一検証ノード装置は目標ブロックのブロックヘッダーから目標ブロックのマークルルートを取得し、目標ブロックのマークルルートは目標ブロックにける各トランザクションデータのハッシュ値に基づいて得られ、第一検証ノード装置はマークルルートに基づいて目標ブロックにおける各トランザクションデータのハッシュ値を計算し;計算した或るトランザクションデータのハッシュ値が第一クロスチェーントランザクションデータのハッシュ値と同じである場合に、トランザクションデータは第一クロスチェーントランザクションデータであり、即ち、目標ブロックに第一クロスチェーントランザクションデータが記憶されており、この場合に、第一検証ノード装置は第一ブロックチェーンに第一クロスチェーントランザクションデータが記憶されていると決定し;及び、計算した各トランザクションデータのハッシュ値が何れも第一クロスチェーントランザクションデータのハッシュ値とは異なり、即ち、目標ブロックに第一クロスチェーントランザクションデータが含まれず、この場合に、第一検証ノード装置は第一ブロックチェーンに第一クロスチェーントランザクションデータが記憶されないと決定することを含む。
【0083】
1つの可能な実現方式において、第一署名取得要求は第一クロスチェーントランザクションデータのハッシュ値を含まず、第一クロスチェーントランザクションデータを含み、この場合に、第一検証ノード装置は第一署名取得要求における第一クロスチェーントランザクションデータに基づいて、目標ブロックから第一クロスチェーントランザクションデータをクエリし、目標ブロックから第一クロスチェーントランザクションデータをクエリできたときに、第一検証ノード装置は第一ブロックチェーンに第一クロスチェーントランザクションデータが記憶されていると決定し、そうでないときに、第一検証ノード装置は第一ブロックチェーンに第一クロスチェーントランザクションデータが記憶されないと決定する。
【0084】
方式B:第一検証ノード装置はライトノード(light node)であり、ライトノードには第一ブロックチェーン上の各ブロックのブロック情報が同期されており、この場合に、第一検証ノード装置は該第一署名取得要求における目標ブロックの標識に基づいて、同期された該第一ブロックチェーン上の各ブロックのブロック情報から該目標ブロックのブロック情報を取得し、目標ブロックのブロック情報から該目標ブロックのマークルルートを取得する。第一検証ノード装置は取得した目標ブロックのマークルルート及び第一署名取得要求における第一クロスチェーントランザクションデータのハッシュ値に基づいて、目標ブロックに第一クロスチェーントランザクションデータが記憶されているかを決定し、第一クロスチェーントランザクションデータが記憶されているときに、第一検証ノード装置は第一クロスチェーントランザクションデータのハッシュ値に対して署名をし、第一クロスチェーントランザクションデータのデジタル署名を得る。
【0085】
そのうち、第一検証ノード装置は取得した目標ブロックのマークルルート及び第一署名取得要求における第一クロスチェーントランザクションデータのハッシュ値に基づいて、目標ブロックに該第一クロスチェーントランザクションデータが記憶されているかを決定することについては、上述の関連記載を参照できるため、ここではその詳しい説明を省略する。
【0086】
方式C:第一検証ノード装置には第一ブロックチェーンの中継チェーンが設定されており、中継チェーンには第一ブロックチェーン上の各ブロックのブロック情報が記憶されており、第一検証ノード装置は方式Bの方法を参照することで、中継チェーン上の目標ブロックのブロック情報に基づいて、第一クロスチェーントランザクションデータのデジタル署名を得ることができる。
【0087】
方式D:第一検証ノード装置は第一署名取得要求を第一検証ノード装置のTEE(Trusted Execution Environment、信頼できる実行環境)に送信し、TEEにはデジタル署名プログラムコードが記憶されており、第一検証ノード装置はTEEでデジタル署名プログラムコードを実行することで、第一検証ノード装置が第一署名取得要求に基づいて第一クロスチェーントランザクションデータのデジタル署名を得るようにさせる。そのうち、デジタル署名プログラムコードはクロスチェーントランザクションデータに対して署名を行う任意の1つの署名メカニズムを実現するために用いられる。任意の1つの署名メカニズムは上述の方式A-Cのうちの任意の1つに類似し又はそれと同じであっても良く、あるいは、上述の方式A-Cとは異なっても良い。
【0088】
なお、本出願に係るデジタル署名はクロスチェーントランザクションデータの正真性証明である。
【0089】
本出願の実施例では、第一検証ノード装置が第一署名取得要求に基づいて第一クロスチェーントランザクションデータのデジタル署名を得る方式について限定せず、実際の適用シナリオに応じて設定されても良い。ステップ308に示すプロセスは、検証ノード装置が署名取得要求に基づいてクロスチェーントランザクションデータのデジタル署名を取得するプロセスである。
【0090】
309:第一検証ノード装置は第一ゲートウェイ装置に第一クロスチェーントランザクションデータのデジタル署名を送信する。
【0091】
1つの可能な実現方式において、第一ノード群における各第一検証ノード装置はすべてステップ309を実行する。各第一検証ノード装置は第一クロスチェーントランザクションデータの第一署名レスポンスを生成し、第一ゲートウェイ装置に第一署名レスポンスを送信する。
【0092】
そのうち、1つの第一検証ノード装置が第一クロスチェーントランザクションデータに対して署名をした場合に、第一検証ノード装置が生成する第一署名レスポンスは第一検証ノード装置の第一クロスチェーントランザクションデータに対しての1つのデジタル署名を含む。第一検証ノード装置が第一クロスチェーントランザクションデータに対して署名をした場合に、第一署名レスポンスは第一クロスチェーントランザクションデータのハッシュ値を含み、第一クロスチェーントランザクションデータのデジタル署名を含まない。
【0093】
310:第一ゲートウェイ装置は第一クロスチェーントランザクションデータのデジタル署名を受信する。
【0094】
オプションとして、第一ゲートウェイ装置は各第一検証ノード装置から第一署名レスポンスを受信し、受信した第一署名レスポンスから第一クロスチェーントランザクションデータのデジタル署名を得る。
【0095】
なお、ステップ306-310に示するプロセスは選択可能なプロセスであり、幾つかの実施例において、クロスチェーントランザクションデータの正真性を検証する必要がない場合に、ステップ306-310に示すプロセスは実行されなくても良い。
【0096】
311:第一ゲートウェイ装置は第二ゲートウェイ装置に第一クロスチェーントランザクションデータ及び第一クロスチェーントランザクションデータのデジタル署名を送信する。
【0097】
そのうち、第二ゲートウェイ装置は第二ノード集合におけるゲートウェイ装置であり、即ち、第二ブロックチェーンに対応するゲートウェイ装置である。
【0098】
1つの可能な実現方式において、複数の異なるノード群の間のクロスチェーン相互運用性の互換性を達成するために、本出願ではワンセットの目標クロスチェーンプロトコルが定義されており、目標クロスチェーンプロトコルはブロックチェーンシステムにおける各ゲートウェイ装置の間で通信を行うに使用される汎用クロスチェーンプロトコルであり、かつゲートウェイ装置と所属するノード群内との通信は所属するノード群の内部プロトコルを採用する。即ち、ブロックチェーンシステム内の異なるノード集合におけるゲートウェイ装置の間で目標クロスチェーンプロトコルによってデータ伝送が行われる。また、同一ノード集合における装置の間で特定の伝送プロトコルによってデータ伝送が行われても良い。異なるノード集合に使用される伝送プロトコルは異なっても良い。説明の便宜のため、第一ノード集合に使用される伝送プロトコルを第一伝送プロトコルと記し、第二ノード集合に使用される伝送プロトコルを第二伝送プロトコルと記す。
【0099】
1つの可能な実現方式において、第一ゲートウェイ装置は第一クロスチェーントランザクションデータ及び第一クロスチェーントランザクションデータのデジタル署名に基づいて、目標クロスチェーンプロトコルに符合(合致)した第一クロスチェーンメッセージを生成し、そして、第二ゲートウェイ装置に第一クロスチェーンメッセージを送信する。そのうち、第一クロスチェーンメッセージは第一クロスチェーントランザクションデータ及び第一クロスチェーントランザクションデータのデジタル署名を含み、第一クロスチェーンメッセージのデータフォーマットは目標クロスチェーンプロトコルで規定されるクロスチェーンメッセージデータフォーマットに一致する。
【0100】
1つの可能な実現方式において、上述のステップ306-310に示すプロセスが実行されない場合、第一ゲートウェイ装置は第二ゲートウェイ装置に第一クロスチェーントランザクションデータを送信するが、第二ゲートウェイ装置に第一クロスチェーントランザクションデータのデジタル署名を送信しない。それ相応に、第一クロスチェーンメッセージは第一デジタル署名を含まない。
【0101】
312:第二ゲートウェイ装置は第一クロスチェーントランザクションデータ及び第一クロスチェーントランザクションデータのデジタル署名を受信する。
【0102】
1つの可能な実現方式において、第二ゲートウェイ装置は第一クロスチェーンメッセージを受信し、第一クロスチェーンメッセージから第一クロスチェーントランザクションデータ及び第一クロスチェーントランザクションデータのデジタル署名を取得する。
【0103】
313:第二ゲートウェイ装置は第二ノード装置に第一クロスチェーントランザクションデータ及び第一クロスチェーントランザクションデータのデジタル署名を送信する。
【0104】
そのうち、第二ノード装置は第二ノード集合における任意の1つのノード装置である。
【0105】
1つの可能な実現方式において、第二ノード装置が第一クロスチェーントランザクションデータ及び第一クロスチェーントランザクションデータのデジタル署名を認識し得るようにさせるために、第二ゲートウェイ装置は第一クロスチェーントランザクションデータ及び第一クロスチェーントランザクションデータのデジタル署名に基づいて、第二伝送プロトコルに合致した第二クロスチェーンメッセージを生成する。そのうち、第二クロスチェーンメッセージは第一クロスチェーントランザクションデータ及び第一クロスチェーントランザクションデータのデジタル署名を含み、かつ第二クロスチェーンメッセージのデータフォーマットは第二伝送プロトコルにおけるクロスチェーンメッセージのデータフォーマットに一致する。
【0106】
第二クロスチェーンメッセージが生成された後に、第一クロスチェーンメッセージに対してのフォーマット変換は完了しており、第二ゲートウェイ装置は第二ノード装置に第二クロスチェーンメッセージを送信する。
【0107】
314:第二ノード装置は第一クロスチェーントランザクションデータ及び第一クロスチェーントランザクションデータのデジタル署名を受信する。
【0108】
1つの可能な実現方式において、第二ノード装置は第二クロスチェーンメッセージを受信し、第二クロスチェーンメッセージから第一クロスチェーントランザクションデータ及び第一クロスチェーントランザクションデータのデジタル署名を得る。
【0109】
上述のステップ312-314に示すプロセスは第二ノード装置が第一ブロックチェーンから第一クロスチェーントランザクションデータを得るプロセスである。
【0110】
315:第二ノード装置は第一クロスチェーントランザクションデータに基づいて、第二ブロックチェーン上の第二クロスチェーンコントラクトを実行し、第二クロスチェーンコントラクトはクロスチェーン業務の第二ブロックチェーン上の第四実行方式を指示するために用いられる。
【0111】
そのうち、第二クロスチェーンコントラクトは第二ブロックチェーン上のクロスチェーンコントラクトである。第二ノード装置について言えば、第一ブロックチェーンは相手チェーンであり、第二ブロックチェーンは自チェーンであり、第一ノード装置について言えば、第一ブロックチェーンは自チェーンであり、第二ブロックチェーンは相手チェーンである。第四実行方式は第二クロスチェーンコントラクトにおいて相手チェーンから開始するクロスチェーントランザクションに関する処理ロジックにより実現される。第四実行方式は第一ブロックチェーン上の第一クロスチェーントランザクションデータの正真性を検証し、第二ブロックチェーンに第一クロスチェーントランザクションデータを記憶し、第二業務コントラクトを呼び出して第二ブロックチェーンで第二トランザクションイベントを実行し、及び第二ブロックチェーンに第二クロスチェーントランザクションデータを記憶することを含む。そのうち、第一ブロックチェーン上の第一クロスチェーントランザクションデータの正真性を検証することはオプションである。
【0112】
第一クロスチェーントランザクションデータ(又は第一クロスチェーントランザクションデータ及び第一クロスチェーントランザクションデータデジタル署名)を受信した後に、第二ノード装置がローカル第二ブロックチェーンから第二クロスチェーンコントラクトを取得することで第一クロスチェーンコントラクトを呼び出すようにトリガーする。第二ノード装置は第一クロスチェーントランザクションデータ(又は第一クロスチェーントランザクションデータ及び第一クロスチェーントランザクションデータのデジタル署名)を第二クロスチェーンコントラクトの入力パラメータとして第二クロスチェーンコントラクトに入力し、第二クロスチェーンコントラクトを実行する。
【0113】
316:第二クロスチェーンコントラクトにより、第二ノード装置は第二ブロックチェーンで第一クロスチェーントランザクションデータを記憶し、第二業務コントラクトを実行し、第二業務コントラクトはクロスチェーン業務の第二ブロックチェーン上の第三実行方式を指示する。
【0114】
そのうち、該第二業務コントラクトは該第二ブロックチェーン上の業務コントラクトである。第三実行方式は該第二クロスチェーンコントラクトにおいて相手チェーンから開始するクロスチェーントランザクションに関する処理ロジックにより実現される。該第三実行方式は、第二クロスチェーンコントラクトの呼び出しを受け、該第二ブロックチェーンで第二トランザクションイベントを実行することを含む。第二クロスチェーンコントラクトの実行プロセスで、該第二ノード装置は該第二ブロックチェーンで該第一クロスチェーントランザクションデータを記憶し、第二ブロックチェーン上の第二業務コントラクトの呼び出しをトリガーする。第二ブロックチェーン上の第二業務コントラクトの呼び出しをトリガーした場合に、該第二ノード装置はローカル第二ブロックチェーンから該第二業務コントラクトを取得し、該第一クロスチェーントランザクションデータにおける第二トランザクションイベントのイベント情報(又は該イベント情報及び目標プログラムコードの標識)を該第二業務コントラクトの入力パラメータとして該第二業務コントラクトに入力し、第二ノード装置は該第二業務コントラクトを実行する。
【0115】
1つの可能な実現方式において、第二ノード装置は第二ブロックチェーンで第一クロスチェーントランザクションデータを記憶することは、第二ノード装置は該第一クロスチェーントランザクションデータのデジタル署名に基づいて、第一クロスチェーントランザクションデータに対して検証を行い、第一クロスチェーントランザクションデータが検証をパスした場合に、第二ノード装置は第一クロスチェーントランザクションデータを第二ブロックチェーンに記憶し、第一クロスチェーントランザクションデータが検証をパスしない場合に、第二ノード装置は後続のステップを実行しないことを含む。
【0116】
そのうち、第二ノード装置は第一クロスチェーントランザクションデータのデジタル署名に基づいて、第一クロスチェーントランザクションデータに対して検証を行うことは、
第一クロスチェーントランザクションデータのデジタル署名の個数が第二閾値よりも大きい場合に、第一クロスチェーントランザクションデータに対しての検証をパスし、そうでない場合に、第二ノード装置の第一クロスチェーントランザクションデータに対しての検証をパスせず、そのうち、第二閾値は第一ノード群における検証ノード装置の総数の半分であり;又は
第二ノード装置が第一クロスチェーントランザクションデータのデータフォーマットに対して検証を行い、第一クロスチェーントランザクションデータのデータフォーマットが検証をパスし、かつ第二クロスチェーントランザクションデータのデジタル署名の個数が第二閾値よりも大きい場合に、第二クロスチェーントランザクションデータに対しての検証をパスし、そうでない場合に、第二クロスチェーントランザクションデータに対しての検証をパスしないことを含む。
【0117】
そのうち、第二ノード装置は第一クロスチェーントランザクションデータのデータフォーマットに対して検証を行うことは、該第二ノード装置は該第一クロスチェーントランザクションデータのデータフォーマットが所定の第一データフォーマットに合致したかを検出し、該第一クロスチェーントランザクションデータのデータフォーマットが所定の第一データフォーマットに合致した場合に、該第一クロスチェーントランザクションデータに対してのデータフォーマット検証をパスし、そうでない場合に、該第二クロスチェーントランザクションデータに対してのデータフォーマット検証をパスしないことを含む。
【0118】
317:第二業務コントラクトにより、第二ノード装置は第二ブロックチェーンで第二トランザクションイベントを実行し、引き続き、第二クロスチェーンコントラクトを実行し、第二ブロックチェーンに第二クロスチェーントランザクションデータを記憶し、第二クロスチェーントランザクションデータは第二ブロックチェーンで第二トランザクションイベントが既に実行していることを指示する。
【0119】
第二業務コントラクトの実行プロセスにおいて、第二ノード装置は第一クロスチェーントランザクションデータにおける目標プログラムコードの標識に基づいて、第二トランザクションイベントのイベント情報を目標プログラムコードの入力パラメータとして該業務コントラクトの目標プログラムコードに入力し、該目標プログラムコードを実行する。
【0120】
目標プログラムコードの実行プロセスにおいて、第二ノード装置は該第二ブロックチェーンで第二トランザクションイベントを実行し、第二クロスチェーンコントラクトに該第二トランザクションイベントの処理結果を返す。第二トランザクションイベントの実行が成功した場合に、第二トランザクションイベントの処理結果は第一処理結果であり、第二トランザクションイベントの実行が失敗した場合に、第二トランザクションイベントの処理結果は第二処理結果である。
【0121】
第二業務コントラクトが返す第二トランザクションイベントの処理結果により、第一ノード装置が継続して該第二クロスチェーンコントラクトを実行することをトリガーする。第二クロスチェーンコントラクトを継続して実行する場合に、第二ノード装置は該第二トランザクションイベントの処理結果に基づいて、第二クロスチェーントランザクションデータを生成し、第二ブロックチェーンで該第二クロスチェーントランザクションデータを記憶する。
【0122】
そのうち、第二ノード装置が第二ブロックチェーンで第二クロスチェーントランザクションデータを記憶するプロセスは上述のステップ303において第一ノード装置が第一ブロックチェーンで第一クロスチェーントランザクションデータを記憶するプロセスと同様であるため、ここで、本出願の実施例では第二ノード装置が該第二ブロックチェーンで該第二クロスチェーントランザクションデータを記憶するプロセスについての説明を省略する。
【0123】
318:第二ゲートウェイ装置は第二ブロックチェーンで第二クロスチェーントランザクションデータを取得する。
【0124】
ステップ318は上述のステップ305と同様であるため、ここで、本出願の実施例ではステップ318についての説明を省略する。
【0125】
319:第二ゲートウェイ装置は第二検証ノード装置に第二クロスチェーントランザクションデータの第二署名取得要求を送信し、第二署名取得要求は第二クロスチェーントランザクションデータのデジタル署名の取得を指示する。
【0126】
ステップ319は上述のステップ306と同様であるため、ここで、本出願の実施例ではステップ319についての説明を省略する。
【0127】
そのうち、第二検証ノード装置は第二ノード集合における検証ノード装置であり、即ち、第二ブロックチェーンに対応する検証ノード装置である。第二クロスチェーントランザクションデータの1つのデジタル署名は、第二クロスチェーントランザクションデータが第二ブロックチェーンに記憶されていることを指示する。
【0128】
320:第二検証ノード装置は第二ゲートウェイ装置から第二署名取得要求を受信する。
【0129】
ステップ320は上述のステップ307と同様であるため、ここで、本出願の実施例ではステップ320についての説明を省略する。
【0130】
321:第二検証ノード装置は第二署名取得要求に基づいて第二クロスチェーントランザクションデータのデジタル署名を得る。
【0131】
ステップ321は上述のステップ308と同様であるため、ここで、本出願の実施例ではステップ321についての説明を省略する。
【0132】
322:第二検証ノード装置は第二ゲートウェイ装置に第二クロスチェーントランザクションデータのデジタル署名を送信する。
【0133】
ステップ322は上述のステップ309と同様であるため、ここで、本出願の実施例ではステップ322についての説明を省略する。
【0134】
323:第二ゲートウェイ装置は第二クロスチェーントランザクションデータのデジタル署名を受信する。
【0135】
ステップ323は上述のステップ310と同様であるため、ここで、本出願の実施例ではステップ323についての説明を省略する。
【0136】
なお、ステップ319-323に示すプロセスは選択可能なプロセスであり、幾つかの実施例において、クロスチェーントランザクションデータの正真性を検証する必要がない場合に、ステップ319-323に示すプロセスは実行されなくても良い。
【0137】
324:第二ゲートウェイ装置は第一ゲートウェイ装置に第二クロスチェーントランザクションデータ及び第二クロスチェーントランザクションデータのデジタル署名を送信する。
【0138】
1つの可能な実現方式において、第二ゲートウェイ装置は第二クロスチェーントランザクションデータ及び第二クロスチェーントランザクションデータのデジタル署名に基づいて、目標クロスチェーンプロトコルに合致した第三クロスチェーンメッセージを生成し、該第一ゲートウェイ装置に該第三クロスチェーンメッセージを送信する。そのうち、第三クロスチェーンメッセージは該第二クロスチェーントランザクションデータ及び第二クロスチェーントランザクションデータのデジタル署名を含み、該第三クロスチェーンメッセージのデータフォーマットは目標クロスチェーンプロトコルで規定されるクロスチェーンメッセージデータフォーマットに合致する。
【0139】
1つの可能な実現方式において、上述のステップ319-323に示すプロセスが実行されない場合に、第二ゲートウェイ装置は第一ゲートウェイ装置に第二クロスチェーントランザクションデータを送信するが、該第一ゲートウェイ装置に第二クロスチェーントランザクションデータのデジタル署名を送信せず、それ相応に、第三クロスチェーンメッセージは第二クロスチェーントランザクションデータのデジタル署名を含まない。
【0140】
325:第一ゲートウェイ装置は第二クロスチェーントランザクションデータ及び第二クロスチェーントランザクションデータのデジタル署名を受信する。
【0141】
ステップ325は上述のステップ312と同様であるため、ここで、本出願の実施例ではステップ325についての説明を省略する。
【0142】
326:第一ゲートウェイ装置は第一ノード装置に第二クロスチェーントランザクションデータ及び第二クロスチェーントランザクションデータのデジタル署名を送信する。
【0143】
1つの可能な実現方式において、第一ノード装置が第二クロスチェーントランザクションデータ及び第二クロスチェーントランザクションデータのデジタル署名を認識し得るようにさせるために、第一ゲートウェイ装置は第二クロスチェーントランザクションデータ及び第二クロスチェーントランザクションデータのデジタル署名に基づいて、第一伝送プロトコルに合致した第四クロスチェーンメッセージを生成する。そのうち、第四クロスチェーンメッセージは第二クロスチェーントランザクションデータ及び第二クロスチェーントランザクションデータのデジタル署名を含み、かつ第四クロスチェーンメッセージのデータフォーマットは第一伝送プロトコルにおけるクロスチェーンメッセージのデータフォーマットに一致する。
【0144】
第四クロスチェーンメッセージが生成された後に、第三クロスチェーンメッセージに対してのフォーマット変換は完了しており、第一ゲートウェイ装置は第一ノード装置に第四クロスチェーンメッセージを送信する。
【0145】
327:第一ノード装置は第二クロスチェーントランザクションデータ及び第二クロスチェーントランザクションデータのデジタル署名を受信する。
【0146】
ステップ327は上述のステップ314と同様であるため、ここで、本出願の実施例ではステップ327についての説明を省略する。
【0147】
上述のステップ324-327に示すプロセスは第一ノード装置が第一ゲートウェイ装置から第二ゲートウェイ装置提供の第二ブロックチェーン上の第二クロスチェーントランザクションデータを受信するプロセスである。
【0148】
328:第一業務コントラクト及び第一クロスチェーンコントラクトにより、第一ノード装置は端末にトランザクション完了レスポンスを送信し、トランザクション完了レスポンスはクロスチェーントランザクションが既に完了したことを指示する。
【0149】
第一ノード装置が第二クロスチェーントランザクションデータを得た後に、第二クロスチェーントランザクションデータの処理結果が第一処理結果である場合に、第二ブロックチェーンで第二トランザクションイベントが成功裏に実行されたことを意味する。第一クロスチェーントランザクションデータの処理結果が第一処理結果である場合に、第一ブロックチェーンで第一トランザクションイベントが成功裏に実行されたことを意味する。第一トランザクションイベント及び第二トランザクションイベントの実行がすべて成功した場合に、第二ノード装置は端末にトランザクション完了レスポンスをリターンする。第二クロスチェーントランザクションデータにおける第二トランザクションイベントの処理結果が第二結果であり、又は、第一クロスチェーントランザクションデータにおける第一トランザクションイベントの処理結果が第二処理結果である場合に、第一ノード装置は端末にトランザクション失敗レスポンスを返し、トランザクション失敗レスポンスはクロスチェーントランザクション処理の失敗を指示するために用いられる。
【0150】
1つの可能な実現方式において、第一ノード装置は第一ブロックチェーン上の第一クロスチェーンコントラクトを実行することで、第一業務コントラクトを呼び出し、トランザクション完了レスポンス又はトランザクション失敗レスポンスを端末に送信できる。例えば、下述のステップ3281-3282のとおりである。
【0151】
ステップ3281:第一ノード装置は第二クロスチェーントランザクションデータに基づいて、再び第一クロスチェーンコントラクトを実行する。
【0152】
第二クロスチェーントランザクションデータ(又は第二クロスチェーントランザクションデータ及び第二クロスチェーントランザクションデータのデジタル署名)を受信した後に、第一ノード装置が第二クロスチェーントランザクションデータ(又は第二クロスチェーントランザクションデータ及び第二クロスチェーントランザクションデータのデジタル署名)を第一クロスチェーンコントラクトの入力パラメータとして第一クロスチェーンコントラクト入力し、再び第一クロスチェーンコントラクトを実行するようにトリガーする。
【0153】
ステップ3282:再び実行された第一クロスチェーンコントラクトにより、第一ノード装置は第二クロスチェーントランザクションデータを第一業務コントラクトに送信し、第一業務コントラクトを再び実行し、端末にトランザクション完了レスポンスを送信する。
【0154】
第一クロスチェーンコントラクトが再び実行されるプロセスにおいて、第一ノード装置は第一ブロックチェーンで第二クロスチェーントランザクションデータを記憶することで、第一ブロックチェーン上の第一業務コントラクトを呼び出すことをトリガーする。第一ブロックチェーン上の第一業務コントラクトの呼び出しをトリガーすることで、第一ノード装置は第二クロスチェーントランザクションデータ(又は第二クロスチェーントランザクションデータ及び第二クロスチェーントランザクションデータのデジタル署名)を第一業務コントラクトの入力パラメータとして第一業務コントラクトに入力し、第一業務コントラクトを再び実行する。第二業務コントラクトが再び実行されるプロセスにおいて、第一ノード装置は第一クロスチェーントランザクションデータ及び第二クロスチェーントランザクションデータに基づいて、クロスチェーントランザクションが既に完了したかを決定し、既に完了した場合に、端末にトランザクション完了レスポンスを送信し、そうでない場合に、端末にトランザクション失敗レスポンスを送信する。
【0155】
1つの可能な実現方式において、第一ノード装置は第一ブロックチェーンで第二クロスチェーントランザクションデータを記憶することは、第一ノード装置は第二クロスチェーントランザクションデータのデジタル署名に基づいて、第二クロスチェーントランザクションデータに対して検証を行い、第二クロスチェーントランザクションデータが検証をパスした場合に、第一ノード装置は第二クロスチェーントランザクションデータを第一ブロックチェーンに記憶し、第二クロスチェーントランザクションデータが検証をパスした場合に、第一ノード装置は第一ブロックチェーンで第二クロスチェーントランザクションデータを記憶しない。
【0156】
そのうち、第一ノード装置は第二クロスチェーントランザクションデータのデジタル署名に基づいて、第二クロスチェーントランザクションデータに対して検証を行うことは、
第二クロスチェーントランザクションデータのデジタル署名の個数が第一閾値よりも大きい場合に、第一ノード装置の第二クロスチェーントランザクションデータに対しての検証をパスし、そうでない場合に、第二クロスチェーントランザクションデータに対しての検証をパスせず、そのうち、第一閾値は第二ノード群における検証ノード装置の総数の半分であり;又は
第一ノード装置が第二クロスチェーントランザクションデータのデータフォーマットに対して検証を行い、第二クロスチェーントランザクションデータのデータフォーマットが検証をパスし、かつ第二クロスチェーントランザクションデータのデジタル署名の個数が第一閾値よりも大きい場合に、第一ノード装置の第二クロスチェーントランザクションデータに対しての検証をパスし、そうでない場合に、第二クロスチェーントランザクションデータに対して検証をパスしないことを含む。
【0157】
そのうち、第一ノード装置は第二クロスチェーントランザクションデータのデータフォーマットに対して検証を行うことは、第一ノード装置は第二クロスチェーントランザクションデータのデータフォーマットが所定の第二データフォーマットに一致したかを検出し、第二クロスチェーントランザクションデータのデータフォーマットが所定の第二データフォーマットに一致した場合に、第一ノード装置の第二クロスチェーントランザクションデータに対してのデータフォーマット検証をパスし、そうでない場合に、第一ノード装置の第二クロスチェーントランザクションデータに対してのデータフォーマット検証をパスしないことを含む。
【0158】
本出願の実施例で提供される方法では、端末のクロスチェーントランザクション要求を受信したときに、ブロックチェーンシステムにおけるノード装置がブロックチェーン上の業務コントラクト及びクロスチェーンコントラクトを実行し、クロスチェーントランザクションを行い、クロスチェーントランザクション完了後に、端末にトランザクション完了レスポンスをリターンする。該クロスチェーントランザクション処理のプロセスでは、端末はクロスチェーントランザクションの実行を要求し、クロスチェーントランザクションの処理結果を受信し、クロスチェーントランザクションの具体的な処理プロセスに関心がないため、端末の業務負担を軽減できる。また、クロスチェーンコントラクトをブロックチェーンに記憶することで、ブロックチェーンシステムにおける各ノード装置がブロックチェーンでクロスチェーントランザクションを完了するようにさせることができ、クロスチェーントランザクションデータが改ざんされることを回避きる。さらに、検証ノード装置を、クロスチェーントランザクションデータの正真性証明を行うための1つの単独的な装置とすることで、ユーザは検証ノード装置でクロスチェーントランザクションデータに対して正真性証明を行うルールを設定でき、かつゲートウェイ装置は自らクロスチェーントランザクションデータに対して正真性証明を行う必要がないため、ゲートウェイ装置の業務負担を軽減できる。クロスチェーントランザクションの実行プロセスを複数の装置(ノード装置、ゲートウェイ装置及び検証ノード装置)に分散させることで、分布型のクロスチェーンフレームワークにより、クロスチェーントランザクションを完了でき、このようなクロスチェーンフレームワークは汎用のサービスとして抽象化され、内部には複数の実現方式があり、外部へは検証を行うために統一のデジタル署名を提供でき、該クロスチェーンフレームワークは良好なカスタマイズと拡張性を有し、異なるシナリオのクロスチェーンのニーズに応えることができる。
【0159】
また、
図3及び
図4について、さらに以下の3点を説明する必要がある。
【0160】
(1)業務コントラクトにより、ノード装置が実行するステップの実行ロジックは該業務コントラクトにおけるプログラムコード(又はコンピュータプログラム)により実現される。クロスチェーンコントラクトにより、ノード装置が実行するステップの実行ロジックは該クロスチェーンコントラクトにおけるプログラムコード(又はコンピュータプログラム)により実現される。
【0161】
(2)かかるステップが比較的多いため、ロジックをより明らかにするために、ステップ301-ステップ328を
図3及び
図4に分け、そのうち、
図3は本出願の実施例で提供される第一ノード集合がクロスチェーントランザクションを処理するフローチャートであり、
図3は第一ノード集合における各装置がクロスチェーントランザクションを処理するときに実行するステップを含む。
図4は本出願の実施例で提供される第二ノード集合がクロスチェーントランザクションを処理するフローチャートであり、
図4は第二ノード集合における各装置がクロスチェーントランザクションを処理するときに実行するステップを含む。
【0162】
(3)
図3及び
図4に示すプロセスでは、各ノード集合が検証ノード装置を有し、各ノード集合のブロックチェーンに記憶されているクロスチェーントランザクションデータには、それぞれのノード集合における検証ノード装置がデジタル署名を提供する。もう1つの可能な実現方式において、該ブロックチェーンシステムはノード集合が共用し得る同一の検証ノード装置を提供し、同一の検証ノード装置は該ブロックチェーンシステムにおける各ノード集合内のクロスチェーントランザクションデータにデジタル署名を提供できる。
【0163】
図3及び
図4に示すプロセスをさらに説明するために、
図5に示すブロックチェーンシステムを例にしてクロスチェーントランザクションの処理プロセスについて以下のように説明する。
【0164】
そのうち、
図5は本出願の実施例で提供されるクロスチェーントランザクション処理方法を示す図である。
図5におけるブロックチェーンシステムは第一ノード群、第二ノード群及び登録装置を含む。第一ノード群におけるノード装置は第一ノード装置であり、複数の第一ノード装置はブロックチェーン1をメンテナンスし、第二ノード群におけるノード装置は第二ノード装置であり、複数の第二ノード装置はブロックチェーン2をメンテナンスする。第一ノード群におけるゲートウェイ装置は第一ゲートウェイ装置であり、第二ノード群におけるゲートウェイ装置は第二ゲートウェイ装置である。第一ノード群における検証ノード装置は第一検証ノード装置であり、第二ノード群における検証ノード装置は第二検証ノード装置である。第一ノード装置は端末の1つのクロスチェーントランザクション要求を受信でき、該クロスチェーントランザクション要求は該端末における1つの業務App(Application)から送信しても良く(
図5に示すとおり)、該業務APPはクロスチェーンアプリケーション又はディセントゥラリゼイションアプリケーションDappであっても良い。
【0165】
クロスチェーントランザクション要求を受信した後に、該第一ノード装置は該ブロックチェーン1上の業務コントラクト1を実行でき、そして、該業務コントラクト1は自チェーン(即ち、ブロックチェーン1)でクロスチェーントランザクションの第一トランザクションイベントを実行し、該ブロックチェーン1上のクロスチェーンコントラクト1を呼び出すことで、相手チェーン(即ち、ブロックチェーン2)で実行するクロスチェーントランザクションの第二トランザクションイベントを決定する。自チェーンでクロスチェーントランザクションのトランザクションイベントを実行しており、かつ相手チェーンで実行されるべき第二トランザクションイベントを決定した場合に、業務コントラクト1は自チェーンで該クロスチェーントランザクションの自チェーン上のクロスチェーントランザクションデータ1を記憶する。第一ゲートウェイ装置は第一検証ノード装置から該クロスチェーントランザクションデータ1の正真性証明(即ち、デジタル署名)を取得し、そして、該正真性証明及び該クロスチェーントランザクションデータ1を第二ゲートウェイ装置に送信できる。第二ゲートウェイ装置は受信したクロスチェーントランザクションデータ1及び正真性証明を第二ノード装置に送信する。第二ノード装置は該クロスチェーントランザクションデータ1に基づいて、自チェーン(即ち、ブロックチェーン2)上のクロスチェーンコントラクト2を実行し、該正真性証明が該クロスチェーンコントラクト2の検証をパスした場合に、該クロスチェーンコントラクト2は該クロスチェーントランザクションデータ1を自チェーンに記憶し、そして、該自チェーン上の業務コントラクト2を呼び出し、業務コントラクト2はブロックチェーン2でクロスチェーントランザクションの第二トランザクションイベントを実行し、そして、第二トランザクションイベントの処理結果をクロスチェーンコントラクト2にリターンする。クロスチェーンコントラクト2は第二トランザクションイベントの処理結果に基づいて、ブロックチェーン2でクロスチェーントランザクションデータ2を記憶する。第二ゲートウェイ装置はブロックチェーン2からクロスチェーントランザクションデータ2を取得し、第二検証ノード装置からクロスチェーントランザクションデータ2の正真性証明(即ち、デジタル署名)を取得し、そして、該クロスチェーントランザクションデータ2及び該正真性証明を第一ゲートウェイ装置にリターンする。第一ゲートウェイ装置はさらに、該クロスチェーントランザクションデータ2及び該正真性証明を第一ノード装置にリターンし、該第一ノード装置は再びクロスチェーンコントラクト1を実行し、受信した該正真性証明がクロスチェーンコントラクト1の検証をパスした場合に、該クロスチェーンコントラクト1は業務コントラクト1を呼び出し、端末又は端末内の業務アプリケーションにトランザクション完了レスポンスを送信する。
【0166】
図6は本出願の実施例で提供されるクロスチェーントランザクション処理装置の構成図である。
図6に示すように、装置500はブロックチェーンシステムに設定されており、ブロックチェーンシステムにはさらに第一ブロックチェーン及び第二ブロックチェーンが設定されており、装置500は以下のものを含む。
【0167】
受信モジュール501:端末のクロスチェーントランザクション要求を受信するために用いられ、クロスチェーントランザクション要求は第一ブロックチェーンと第二ブロックチェーンとの間でクロスチェーントランザクションを行うことを指示する。
【0168】
処理モジュール502:クロスチェーントランザクション要求に基づいて、第一ブロックチェーン上の第一業務コントラクトを実行し、第一業務コントラクトはクロスチェーントランザクションの第一ブロックチェーン上の第一実行方式を指示し;第一業務コントラクトにより、第一ブロックチェーンでクロスチェーントランザクションの第一トランザクションイベントを実行し、第一ブロックチェーン上の第一クロスチェーンコントラクトを実行し、第二ブロックチェーンでクロスチェーントランザクションの第二トランザクションイベントを実行と決定し、第一クロスチェーンコントラクトはクロスチェーントランザクションの第一ブロックチェーン上の第二実行方式を指示し;及び、第一業務コントラクトにより、第一ブロックチェーンで第一クロスチェーントランザクションデータを記憶し、第一クロスチェーントランザクションデータは第一ブロックチェーンで第一トランザクションイベントが既に実行されており及び第二ブロックチェーンで第二トランザクションイベントが既に実行されていることを指示するということを行うように用いられる。
【0169】
受信モジュール501はさらに、第二ブロックチェーンから第二クロスチェーントランザクションデータを取得するために用いられ、第二クロスチェーントランザクションデータは第一クロスチェーントランザクションデータに基づいて取得され、第二クロスチェーントランザクションデータは第二ブロックチェーンで第二トランザクションイベントが既に実行されていることを指示する。
【0170】
処理モジュール502はさらに、第一業務コントラクト及び第一クロスチェーンコントラクトにより、端末にトランザクション完了レスポンスを送信するために用いられ、トランザクション完了レスポンスはクロスチェーントランザクションが既に完了したことを指示する。
【0171】
幾つかの実施例において、処理モジュール502はさらに、
第二クロスチェーントランザクションデータに基づいて、第一クロスチェーンコントラクトを再び実行し;及び
再び実行された第一クロスチェーンコントラクトにより、第二クロスチェーントランザクションデータを第一業務コントラクトに送信し、第一業務コントラクトを再び実行し、端末にトランザクション完了レスポンスを送信するということを行うために用いられる。
【0172】
幾つかの実施例において、受信モジュール501はさらに、第二クロスチェーントランザクションデータのデジタル署名を受信し、デジタル署名は第二クロスチェーントランザクションデータが第二ブロックチェーンで既に記憶されていることを指示するために用いられる。第二クロスチェーントランザクションデータを第一業務コントラクトに送信することは、第二クロスチェーントランザクションデータのデジタル署名の個数が第一閾値より大きい場合に、第二クロスチェーントランザクションデータを第一業務コントラクトに送信することを含む。
【0173】
幾つかの実施例において、受信モジュール501はさらに、第一ブロックチェーンが第一ゲートウェイ装置に対応し、かつ第二ブロックチェーンが第二ゲートウェイ装置に対応する場合に、第一ゲートウェイ装置から第二ブロックチェーン上の第二クロスチェーントランザクションデータを受信するために用いられ、該第二クロスチェーントランザクションデータは第二ゲートウェイ装置により提供される。
【0174】
幾つかの実施例において、クロスチェーントランザクション要求はクロスチェーントランザクションのトランザクション情報、第一業務コントラクトの標識、及び第二ブロックチェーン上の第二業務コントラクトの標識を含み、第二業務コントラクトはクロスチェーントランザクションの第二ブロックチェーン上の第三実行方式を指示する。
【0175】
なお、クロスチェーントランザクション処理装置500がクロスチェーントランザクションを処理するときに、上述の各機能モジュールの分割を例にして説明したが、実際の応用では、ニーズに応じて上述の機能を異なる機能モジュールに割り当てて完了してもらっても良く、即ち、装置の内部構成を異なる機能モジュールに分割して上述の全部又は一部の機能を完了してもたっても良い。また、上述の実施例で提供されるクロスチェーントランザクション処理装置はクロスチェーントランザクション処理方法の実施例と同一構想に所属するので、その具体的な実現プロセスについては方法の実施例を参照でき、ここではその詳しい説明を省略する。
【0176】
図7は本出願の実施例で提供されるクロスチェーントランザクション処理装置の構成図である。装置600はブロックチェーンシステムに設定されており、ブロックチェーンシステムにはさらに第一ブロックチェーン及び第二ブロックチェーンが設定されており、装置600は次のようなものを含む。
【0177】
取得モジュール601:第一ブロックチェーンから第一クロスチェーントランザクションデータを得るために用いられ、第一クロスチェーントランザクションデータは第一ブロックチェーンでクロスチェーントランザクションの第一トランザクションイベントが既に実行されており及び第二ブロックチェーンでクロスチェーントランザクションの第二トランザクションイベントが既に実行されていることを指示する。
【0178】
処理モジュール602:第一クロスチェーントランザクションデータに基づいて、第二ブロックチェーン上の第二クロスチェーンコントラクトを実行し、第二クロスチェーンコントラクトはクロスチェーントランザクションの第二ブロックチェーン上の第四実行方式を指示し;第二クロスチェーンコントラクトにより、第二ブロックチェーンで第一クロスチェーントランザクションデータを記憶し、第二ブロックチェーン上の第二業務コントラクトを実行し、第二業務コントラクトはクロスチェーントランザクションの第二ブロックチェーン上の第三実行方式を指示し;及び、第二業務コントラクトにより、第二ブロックチェーンで第二トランザクションイベントを実行し、継続して第二クロスチェーンコントラクトを実行し、第二ブロックチェーンで第二クロスチェーントランザクションデータを記憶し、第二クロスチェーントランザクションデータは第二ブロックチェーンで第二トランザクションイベントが既に実行されていることを指示するということを行うために用いられる。
【0179】
幾つかの実施例において、取得モジュール601はらに、第一クロスチェーントランザクションデータのデジタル署名を受信するために用いられ、デジタル署名は第一クロスチェーントランザクションデータが既に第一ブロックチェーンに記憶されていることを指示する。第二ブロックチェーンで第一クロスチェーントランザクションデータを記憶することは、第一クロスチェーントランザクションデータのデジタル署名の個数が第二閾値よりも大きい場合に、第二ブロックチェーンで第一クロスチェーントランザクションデータを記憶することを含む。
【0180】
幾つかの実施例において、取得モジュール601はさらに、第一ブロックチェーンが第一ゲートウェイ装置に対応し、かつ第二ブロックチェーンが第二ゲートウェイ装置に対応する場合に、第二ゲートウェイ装置から第一ブロックチェーン上の第一クロスチェーントランザクションデータを受信するために用いられ、該第一クロスチェーントランザクションデータは第一ゲートウェイ装置により提供される。
【0181】
なお、クロスチェーントランザクション処理装置600がクロスチェーントランザクションを処理するときに、上述の各機能モジュールの分割を例にして説明しが、実際の応用では、ニーズに応じて上述の機能を異なる機能モジュールに割り当てて完了してもらっても良く、即ち、装置の内部構成を異なる機能モジュールに分割して上述の全部又は一部の機能を完了してもたっても良い。また、上述の実施例で提供されるクロスチェーントランザクション処理装置はクロスチェーントランザクション処理方法の実施例と同一構想に所属するので、その具体的な実現プロセスについては方法の実施例を参照でき、ここではその詳しい説明を省略する。
【0182】
図8は本出願の実施例で提供される電子機器の構成図である。
図8に示すように、電子機器700は上述のブロックチェーンシステムにおける任意の1つの装置、例えば、任意の1つのノード装置、任意の1つのゲートウェイ装置、任意の1つの検証ノード装置又は登録装置として構成されても良く、該電子機器700は設定や性能の違いによって大きく異なる場合があり、1つ又は1つ以上のCPU(central
processing units、処理器)701及び1つ又は1つ以上の記憶器702を含んでも良く、そのうち、前記記憶器702には少なくとも1つのコンピュータプログラムが記憶されており、前記少なくとも1つのコンピュータプログラムは前記処理器701によりロードされ実行されることで上述の各方法の実施例で提供される方法を実現し得る。もちろん、該電子機器700はさらに、有線又は無線ネットワークインターフェース、キーボード、入出力インターフェースなどの部品を、入出力を行うために含んでも良く、電子機器700はさらに、装置の機能を実現するための他の部品を含んでも良いが、ここではその詳しい説明を省略する。
【0183】
例示的な実施例において、さらに、コンピュータ可読記憶媒体、例えば、プログラムコードを含む記憶器が提供され、上述のプログラムコードは端末における処理器により実行されることで、上述の実施例におけるクロスチェーントランザクション処理方法を実現し得る。例えば、前記コンピュータ可読記憶媒体はROM(Read-Only Memory)、RAM(Random Access Memory)、CD-ROM(Compact Disc Read-Only Memory)、磁気テープ、光データ記憶装置などであっても良い。
【0184】
上述のすべての選択可能な技術案は、任意の組み合わせを採用して本発明の選択可能な実施例を構成でき、ここでは網羅的な列挙を省略する。
【0185】
当業者が理解できるように、上述の実施例の全部又は一部のステップの実現は、ハードウェアにより完了されても良く、プログラムが関連ハードウェアに対して命令することで完了されても良く、また、前記プログラムはコンピュータ可読記憶媒体に記憶でき、このような記憶媒体はROM、磁気ディスク、光ディスクなどであっても良い。
【0186】
以上、本出願の好ましい実施例を説明したが、本出願はこの実施例に限定されず、本出願の趣旨を離脱しない限り、本出願に対するあらゆる変更は本出願の技術的範囲に属する。
【国際調査報告】