(57)【要約】  ブロックチェーンのノードデバイスは、トランザクションコンテンツを含むターゲットトランザクションを受信し、トランザクションコンテンツの少なくとも一部は、ブロックチェーンに接続されたサードパーティストレージシステムに記憶されたターゲットコンテンツのコンテンツサマリを備える。コンテンツサマリに対応するターゲットコンテンツは、サードパーティストレージシステムにクエリされる。ターゲットコンテンツは、ターゲットトランザクションにおけるターゲットコンテンツのコンテンツサマリに基づいて検証される。ターゲットコンテンツの検証が成功した場合、ターゲットトランザクションは、ターゲットトランザクションにおけるトランザクションコンテンツに基づいて実行される。ターゲットトランザクションが実行された後、ターゲットトランザクションはブロックチェーンの分散データベースに記憶される。
2021511560.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーンに基づいてトランザクションを実行するための方法であって、
ブロックチェーンのノードデバイスによって、トランザクションコンテンツを備えるターゲットトランザクションを受信するステップであって、前記トランザクションコンテンツの少なくとも一部が、前記ブロックチェーンに接続されたサードパーティストレージシステムに記憶されたターゲットコンテンツのコンテンツサマリを備える、ステップと、
前記コンテンツサマリに対応する前記ターゲットコンテンツを、前記サードパーティストレージシステムにクエリするステップと、
前記ターゲットトランザクションにおける前記ターゲットコンテンツの前記コンテンツサマリに基づいて、前記ターゲットコンテンツを検証するステップと、
前記ターゲットコンテンツの前記検証が成功した場合、前記ターゲットトランザクションにおける前記トランザクションコンテンツに基づいて前記ターゲットトランザクションを実行するステップと、
前記ターゲットトランザクションが実行された後、前記ターゲットトランザクションを前記ブロックチェーンの分散データベースに記憶するステップと
を含む、方法。
【請求項２】
前記サードパーティストレージシステムが、前記ターゲットコンテンツと前記ターゲットコンテンツの前記コンテンツサマリとの間のマッピング関係を記憶する、請求項1に記載の方法。
【請求項３】
前記ターゲットコンテンツをクエリするステップが、前記マッピング関係に基づいて、前記コンテンツサマリに対応する前記ターゲットコンテンツをクエリするために、前記コンテンツサマリをクエリインデックスとして使用し、前記サードパーティストレージシステムに対してクエリを送信するステップを含む、請求項2に記載の方法。
【請求項４】
前記ターゲットコンテンツを検証する前記ステップが、
あらかじめ設定されたサマリアルゴリズムに基づいて前記ターゲットコンテンツのコンテンツサマリを計算するステップと、
計算を通じて取得された前記コンテンツサマリが、前記ターゲットトランザクションにおける前記ターゲットコンテンツの前記コンテンツサマリと一致するかどうかを決定するステップと、
計算を通じて取得された前記コンテンツサマリが前記ターゲットトランザクションにおける前記ターゲットコンテンツの前記コンテンツサマリと一致する場合、前記ターゲットコンテンツの前記検証が成功したと決定するステップと
を含む、請求項1に記載の方法。
【請求項５】
前記サードパーティストレージシステムが、集中型コンテンツアドレス可能ストレージ(CAS)システムまたは分散型CASシステムを備える、請求項1に記載の方法。
【請求項６】
前記ブロックチェーンが、複数のメンバーブロックチェーンから構成されるコンソーシアムブロックチェーン内の任意のメンバーブロックチェーンを備える、請求項1に記載の方法。
【請求項７】
前記サードパーティストレージシステムが、説明されている前記ブロックチェーンとのクロスチェーンデータ参照関係を有する前記コンソーシアムブロックチェーン内の別のメンバーブロックチェーンである、請求項6に記載の方法。
【請求項８】
前記コンソーシアムブロックチェーンが、メンバーブロックチェーン間のクロスチェーンデータ参照関係に基づいて構築された有向非循環グラフ(DAG)構造である、請求項6に記載の方法。
【請求項９】
前記コンソーシアムブロックチェーンが、トランザクションチェーン、認証チェーン、およびデータチェーンを備える、請求項6に記載の方法。
【請求項１０】
ターゲットメンバーブロックチェーンにおいて公開されたコントラクトを呼び出すことによって前記ターゲットトランザクションを実行するステップをさらに含む、請求項1から9のいずれか一項に記載の方法。
【請求項１１】
前記コントラクトが、前記コントラクトを呼び出すための入力パラメータとして前記トランザクションコンテンツを使用することによって、前記ターゲットトランザクションを実行するために使用される実行プログラムの宣言を備える、請求項10に記載の方法。
【請求項１２】
前記ターゲットトランザクションの有効性チェックを実行するステップと、
前記有効性チェックで前記ターゲットトランザクションが有効であることが確認されると、ターゲットメンバーブロックチェーン内の前記ターゲットトランザクションをブロードキャストし、前記トランザクションを前記ターゲットメンバーブロックチェーン内の他のノードデバイスに同期するステップと
をさらに含む、請求項1から11のいずれか一項に記載の方法。
【請求項１３】
ブロックチェーンに基づいてトランザクションを実行するための装置であって、請求項1から12のいずれか一項に記載の方法を実行するように構成された複数のモジュールを備える、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2018年2月27日に出願された中国特許出願第201810162067.3号の優先権を主張し、その全体が参照により本明細書に組み込まれる。
【０００２】
本開示の1つまたは複数の実装形態は、ブロックチェーン技術の分野に関し、特に、ブロックチェーンに基づいてトランザクションを実行するための方法、装置、および電子デバイスに関する。
【背景技術】
【０００３】
分散型台帳技術とも呼ばれるブロックチェーン技術は、完全な分散データベースを共同で維持するために、複数のコンピューティングデバイスが「アカウンティング」に参加する新しい技術である。ブロックチェーン技術には、分散化、開放性、および透過性という特徴があり、各コンピューティングデバイスはデータベースの記録に参加することができ、データをコンピューティングデバイス間ですばやく同期することができる。したがって、分散システムを構築するためにブロックチェーン技術を使用することができ、様々な実行プログラムがブロックチェーンの分散データベースに記録されて自動的に実行され、これは多くの分野で広く使用されている。たとえば、金融技術の分野では、P2P支払いプラットフォームを構築するためにブロックチェーン技術を使用し、ブロックチェーン上でスマートコントラクトなどの実行プログラムを公開することによって、銀行などの金融機関がなくても、異なるユーザ間でポイントツーポイントの安全な支払いを実装することができる。
【発明の概要】
【課題を解決するための手段】
【０００４】
本明細書は、ブロックチェーンのノードデバイスによって、ターゲットトランザクションを受信するステップであって、ターゲットトランザクションにおけるトランザクションコンテンツの少なくとも一部が、ブロックチェーンに接続されたサードパーティストレージシステムに記憶されたターゲットコンテンツのコンテンツサマリを含む、ステップと、コンテンツサマリに対応するターゲットコンテンツをサードパーティストレージシステムにクエリし、ターゲットコンテンツを検証するステップと、ターゲットコンテンツの検証が成功した場合、ターゲットトランザクションにおけるトランザクションコンテンツに基づいてターゲットトランザクションを実行するステップと、ターゲットトランザクションが実行された後、ターゲットトランザクションをブロックチェーンの分散データベースに記憶するステップとを含む、ブロックチェーンに基づいてトランザクションを実行するための方法を開示する。
【０００５】
任意で、サードパーティストレージシステムは、ターゲットコンテンツとターゲットコンテンツのコンテンツサマリとの間のマッピング関係を記憶し、コンテンツサマリに対応するターゲットコンテンツをサードパーティストレージシステムにクエリするステップが、コンテンツサマリに対応するターゲットコンテンツをクエリするために、コンテンツサマリをクエリインデックスとして使用し、サードパーティストレージシステムに対してクエリを開始するステップを含む。
【０００６】
任意で、ターゲットコンテンツを検証するステップは、あらかじめ設定されたサマリアルゴリズムに基づいてターゲットコンテンツのコンテンツサマリを計算するステップと、計算を通じて取得されたコンテンツサマリが、ターゲットトランザクションにおけるターゲットコンテンツのコンテンツサマリと一致するかどうかを決定するステップと、計算を通じて取得されたコンテンツサマリがターゲットトランザクションにおけるターゲットコンテンツのコンテンツサマリと一致する場合、ターゲットコンテンツの検証が成功したと決定するステップとを含む。
【０００７】
任意で、サードパーティストレージシステムは、集中型コンテンツアドレス可能ストレージ(CAS)システムまたは分散型CASシステムを含む。
【０００８】
任意で、ブロックチェーンは、複数のメンバーブロックチェーンから構成されるコンソーシアムブロックチェーン内の任意のメンバーブロックチェーンを含む。
【０００９】
任意で、サードパーティストレージシステムは、説明されているブロックチェーンとのクロスチェーンデータ参照関係を有するコンソーシアムブロックチェーン内の別のメンバーブロックチェーンである。
【００１０】
任意で、コンソーシアムブロックチェーンは、メンバーブロックチェーン間のクロスチェーンデータ参照関係に基づいて構築された有向非循環グラフ(DAG)構造である。
【００１１】
本明細書は、ターゲットトランザクションを受信するように構成された受信モジュールであって、ターゲットトランザクションにおけるトランザクションコンテンツの少なくとも一部が、ブロックチェーンに接続されたサードパーティストレージシステムに記憶されたターゲットコンテンツのコンテンツサマリを含む、受信モジュールと、コンテンツサマリに対応するターゲットコンテンツをサードパーティストレージシステムにクエリし、ターゲットコンテンツを検証するように構成されたクエリモジュールと、ターゲットコンテンツの検証が成功した場合、ターゲットトランザクションにおけるトランザクションコンテンツに基づいてターゲットトランザクションを実行することと、ターゲットトランザクションが実行された後、ターゲットトランザクションをブロックチェーンの分散データベースに記憶することとを行うように構成された実行モジュールとを含む、ブロックチェーンに基づいてトランザクションを実行するための装置をさらに開示する。
【００１２】
任意で、サードパーティストレージシステムは、ターゲットコンテンツとターゲットコンテンツのコンテンツサマリとの間のマッピング関係を記憶し、クエリモジュールは、コンテンツサマリに対応するターゲットコンテンツをクエリするために、コンテンツサマリをクエリインデックスとして使用し、サードパーティストレージシステムに対してクエリを開始するように構成される。
【００１３】
任意で、実行モジュールは、あらかじめ設定されたサマリアルゴリズムに基づいてターゲットコンテンツのコンテンツサマリを計算することと、計算を通じて取得されたコンテンツサマリが、ターゲットトランザクションにおけるターゲットコンテンツのコンテンツサマリと一致するかどうかを決定することと、計算を通じて取得されたコンテンツサマリがターゲットトランザクションにおけるターゲットコンテンツのコンテンツサマリと一致する場合、ターゲットコンテンツの検証が成功したと決定することとを行うようにさらに構成される。
【００１４】
任意で、サードパーティストレージシステムは、集中型コンテンツアドレス可能ストレージ(CAS)システムまたは分散型CASシステムを含む。
【００１５】
任意で、ブロックチェーンは、複数のメンバーブロックチェーンから構成されるコンソーシアムブロックチェーン内の任意のメンバーブロックチェーンを含む。
【００１６】
任意で、サードパーティストレージシステムは、説明されているブロックチェーンとのクロスチェーンデータ参照関係を有するコンソーシアムブロックチェーン内の別のメンバーブロックチェーンである。
【００１７】
任意で、コンソーシアムブロックチェーンは、メンバーブロックチェーン間のクロスチェーンデータ参照関係に基づいて構築された有向非循環グラフ(DAG)構造である。
【００１８】
本明細書は、プロセッサと、機械実行可能命令を記憶するように構成されたメモリとを含む電子装置であって、メモリに記憶され、ブロックチェーンに基づくトランザクション実行制御論理に対応する機械実行可能命令を読み取って実行することによって、プロセッサは、ターゲットトランザクションを受信することであって、ターゲットトランザクションにおけるトランザクションコンテンツの少なくとも一部が、ブロックチェーンに接続されたサードパーティストレージシステムに記憶されたターゲットコンテンツのコンテンツサマリを含む、受信することと、コンテンツサマリに対応するターゲットコンテンツをサードパーティストレージシステムにクエリし、ターゲットコンテンツを検証することと、ターゲットコンテンツの検証が成功した場合、ターゲットトランザクションにおけるトランザクションコンテンツに基づいてターゲットトランザクションを実行することと、ターゲットトランザクションが実行された後、ターゲットトランザクションをブロックチェーンの分散データベースに記憶することとを行うように構成される、電子装置をさらに開示する。
【００１９】
前述の実装形態によれば、ブロックチェーンに接続されたサードパーティストレージシステムに記憶されているターゲットコンテンツのコンテンツサマリは、ブロックチェーンに公開されたトランザクションのトランザクションコンテンツにおいて搬送される。このように、ブロックチェーンにおいてトランザクションを受信するノードデバイスは、コンテンツサマリに基づいて、対応するターゲットコンテンツをサードパーティストレージシステムにクエリすることと、ターゲットコンテンツを検証することと、ターゲットコンテンツの検証が成功した後にトランザクションを実行することと、トランザクション実行をした後、トランザクションをブロックチェーンの分散データベースに記憶することとを行うことができる。このように、ユーザは、上記のサードパーティストレージシステムに記憶されているターゲットコンテンツの元のコンテンツをブロックチェーン内の各ノードデバイスに同期することによって引き起こされる、ブロックチェーン内のデータの冗長なストレージを軽減するために、ブロックチェーンに接続されたサードパーティストレージシステムに記憶されているターゲットコンテンツを、ブロックチェーンに公開されたトランザクションにおけるトランザクションコンテンツとして参照することができる。
【図面の簡単な説明】
【００２０】
【図１】例示的な実装形態による、ブロックチェーンに基づいてトランザクションを実行するための方法を示すフローチャートである。
【図２】例示的な実装形態による、コンソーシアムブロックチェーンを示す概略構造図である。
【図３】例示的な実装形態による、電子デバイスを示す概略構造図である。
【図４】例示的な実装形態による、ブロックチェーンに基づいてトランザクションを実行するための装置を示すブロック図である。
【図５】本開示の一実装形態による、ブロックチェーンに基づいてトランザクションを実行するためのコンピュータ実装方法の例を示すフローチャートである。
【発明を実施するための形態】
【００２１】
従来のブロックチェーントランザクションプロセスでは、トランザクション(転送)におけるトランザクションコンテンツは通常、ブロックチェーンの分散データベース(すなわち、ブロックチェーン台帳)に記憶されたデータコンテンツから取得され、外部ストレージに記憶されたデータコンテンツは参照できない。したがって、ブロックチェーンネットワーク内のノードデバイスごとに、ブロックチェーンにアクセスするメンバーによって公開されるトランザクションが実行されると、トランザクションコンテンツに含まれるデータコンテンツはすべてチェーンからのものとなり、したがって「データ使用閉ループ」が形成される。
【００２２】
本明細書は、サードパーティストレジプラットフォームに記憶された不変のデータコンテンツをブロックチェーントランザクション(転送)におけるトランザクションコンテンツとして参照することによって、ブロックチェーンの「データ使用閉ループ」を解消するための技術解決策を開示することを目的としている。
【００２３】
実装形態では、ブロックチェーンをサードパーティストレージシステムに事前に接続することができる。サードパーティストレージシステムは、ブロックチェーンで公開されたトランザクションによって参照することができる一部の不変データコンテンツを事前に記憶することができる。ブロックチェーンにアクセスするメンバーがトランザクションをブロックチェーンに公開すると、サードパーティストレージシステムに記憶されているデータコンテンツをトランザクションコンテンツとして参照するために、サードパーティストレージシステムに記憶されているデータコンテンツのコンテンツサマリをトランザクションに追加することができる。
【００２４】
ブロックチェーン上のノードデバイスがメンバーによって公開されたトランザクションを受信すると、ノードデバイスは、コンテンツサマリに対応するデータコンテンツをクエリして、クエリされたデータコンテンツを検証するために、コンテンツサマリに基づいてサードパーティストレージシステムへのクエリを開始することができる。コンテンツの検証が成功した場合、トランザクションはトランザクションにおける完全なトランザクションコンテンツに基づいて実行することができ、トランザクションはトランザクションの完了後にブロックチェーンの分散データベースに記憶される。
【００２５】
前述の実装形態では、ブロックチェーンに接続されたサードパーティストレージシステムに記憶されているターゲットコンテンツのコンテンツサマリは、ブロックチェーンに公開されたトランザクションのトランザクションコンテンツにおいて搬送される。このように、ブロックチェーンにおいてトランザクションを受信するノードデバイスは、コンテンツサマリに基づいて、対応するターゲットコンテンツをサードパーティストレージシステムにクエリすることと、ターゲットコンテンツを検証することと、ターゲットコンテンツの検証が成功した後にトランザクションを実行することと、トランザクション実行をした後、トランザクションをブロックチェーンの分散データベースに記憶することとを行うことができる。このように、ユーザは、サードパーティストレージシステムに記憶されているターゲットコンテンツの元のコンテンツをブロックチェーン内の各ノードデバイスに同期することによって引き起こされる、ブロックチェーン内のデータの冗長なストレージを軽減するために、ブロックチェーンに接続されたサードパーティストレージシステムに記憶されているターゲットコンテンツを、ブロックチェーンに公開されたトランザクションにおけるトランザクションコンテンツとして参照することができる。
【００２６】
本明細書は、特定のアプリケーションシナリオを参照して特定の実装形態を使用することによって、以下に説明される。
【００２７】
図1は、本明細書の実装形態において提供されるブロックチェーンに基づいてトランザクションを実行するための方法を示している。本方法はブロックチェーン内のノードデバイスに適用され、ノードデバイスは以下のステップを実行する。
【００２８】
ステップ102。ブロックチェーンのノードデバイスは、ターゲットトランザクションを受信し、ターゲットトランザクションにおけるトランザクションコンテンツの少なくとも一部は、ブロックチェーンに接続されたサードパーティストレージシステムに記憶されたターゲットコンテンツのコンテンツサマリを含む。
【００２９】
ステップ104。コンテンツサマリに対応するターゲットコンテンツをサードパーティストレージシステムにクエリし、ターゲットコンテンツを検証する。
【００３０】
ステップ106。ターゲットコンテンツの検証が成功した場合、ターゲットトランザクションにおけるトランザクションコンテンツに基づいてターゲットトランザクションを実行することと、ターゲットトランザクションが実行された後、ターゲットトランザクションをブロックチェーンの分散データベースに記憶することとを行う。本明細書で説明されるブロックチェーンは、ブロックチェーンに接続されたサードパーティストレージシステムに記憶された不変のデータコンテンツを、サポートされているブロックチェーントランザクションにおけるトランザクションコンテンツとして参照することができる任意のブロックチェーンネットワークを含むことができる。
【００３１】
たとえば、あるシナリオでは、前述のブロックチェーンは、複数のメンバーブロックチェーンから構成されるコンソーシアムブロックチェーン内の任意のメンバーブロックチェーンであり得る。コンソーシアムブロックチェーン内の各メンバーブロックチェーンにおいてサポートされるブロックチェーントランザクションでは、他のメンバーブロックチェーンに記憶されているデータコンテンツを、チェーン全体のトランザクションコンテンツとして参照することができる。
【００３２】
前述のサードパーティストレージシステムは、ブロックチェーンに信頼性の高いデータストレージサービスを提供する、コンテンツアドレス可能ストレージ(CAS)プラットフォームを含む。いわゆるコンテンツアドレス指定可能は、データがストレージシステム内のデータのストレージオフセットを使用することによってアドレス指定されるのではなく、データのコンテンツを使用することによってアドレス指定されることを意味する。
【００３３】
CASプラットフォームでは、記憶されたデータコンテンツのコンテンツサマリ(データコンテンツのハッシュ計算を通じて取得されたコンテンツハッシュ値など)を、元のデータコンテンツのクエリインデックスとして使用することができ、またクエリインデックスと元のデータコンテンツとの間のマッピング関係が記憶される。したがって、データクエリパーティは、コンテンツサマリをクエリインデックスとして使用することによって、CASプラットフォームから対応する元のデータコンテンツをクエリすることができる。
【００３４】
実際のアプリケーションでは、前述のサードパーティストレージシステムは、従来の集中型コンテンツアドレス可能ストレージ(CAS)システムを含むこともでき、分散型CASシステムを含むこともできる。
【００３５】
たとえば、あるシナリオでは、前述のブロックチェーンは、複数のメンバーブロックチェーンから構成されるコンソーシアムブロックチェーン内の任意のメンバーブロックチェーンであり得る。前述のサードパーティストレージシステムは、具体的には、たとえば、コンソーシアムブロックチェーンにおいて展開され、コンソーシアムブロックチェーン内の各メンバーブロックチェーンに接続することができるオブジェクトストレージサービス(OSS)アーキテクチャに基づく分散システムであり得る。
【００３６】
あるいは、別の例では、説明されたブロックチェーンとのクロスチェーンデータ参照関係を有する、前述のブロックチェーンとは異なる前述のコンソーシアムブロックチェーン内の別のメンバーブロックチェーンを、メンバーブロックチェーン間のクロスチェーンデータ参照を実装するために、説明されたブロックチェーンに接続されたサードパーティストレージシステムとして使用することができる。
【００３７】
以下で、「サードパーティストレージシステムの展開」、「トランザクションコンテンツ参照」、「トランザクションコンテンツアドレス指定」、および「トランザクション実行」を参照して、前述のブロックチェーンが複数のメンバーブロックチェーンで構成されるコンソーシアムブロックチェーン内のメンバーブロックチェーンである例を使用することによって、本明細書の技術的解決策を詳細に説明する。
【００３８】
(1)サードパーティストレージシステムの展開
【００３９】
本明細書では、オペレータは、複数のメンバーブロックチェーンで構成されるコンソーシアムブロックチェーンを事前に確立することができる。コンソーシアムブロックチェーン内の各メンバーブロックチェーンは、コンソーシアムブロックチェーン内のコンソーシアムメンバーである。前述のブロックチェーンは、コンソーシアムブロックチェーン内の任意のメンバーブロックチェーンであり得る。
【００４０】
コンソーシアムブロックチェーンのオペレータはまた、コンソーシアムブロックチェーン内のメンバーブロックチェーンに接続し、メンバーブロックチェーンに信頼性の高いデータストレージサービスを提供するために、コンソーシアムブロックチェーン内にサードパーティストレージシステムを展開することができる。
【００４１】
たとえば、上記のサードパーティストレージシステムは、メンバーブロックチェーンごとに継続的で信頼性の高いAPIアクセスインターフェースを提供することができるため、コンソーシアムブロックチェーン内のメンバーブロックチェーンは、APIアクセスインターフェースにアクセスすることによってサードパーティストレージシステムに接続することができる。
【００４２】
サードパーティストレージシステムがコンソーシアムブロックチェーンにおいて展開されている場合、コンソーシアムブロックチェーンにグローバルサードパーティストレージシステムを展開することもでき、コンソーシアムブロックチェーン内のメンバーブロックチェーンごとに1つの独立したサードパーティストレージシステムを展開することもできる。本明細書では、実装形態は限定されない。
【００４３】
本明細書では、説明したサードパーティストレージシステムは、コンテンツのアドレス指定能力をサポートするCASシステムであり得る。実際のアプリケーションでは、説明したサードパーティストレージシステムは、従来の集中型CASシステムでもよく、分散型CASシステムでもよい。
【００４４】
説明した分散型CASシステムは、従来の集中型分散システムと分散型分散システムを含むことができる。
【００４５】
一実装形態では、サードパーティストレージシステムは、具体的には、たとえば、コンソーシアムブロックチェーンにおいて展開され、コンソーシアムブロックチェーン内の各メンバーブロックチェーンに接続することができるOSSアーキテクチャに基づく集中型分散システムであり得る。
【００４６】
別の実装形態では、説明したサードパーティストレージシステムはまた、分散型分散システムであり得る。実装形態では、実装形態では、説明されたブロックチェーンとのクロスチェーンデータ参照関係を有する、前述のブロックチェーンとは異なる前述のコンソーシアムブロックチェーン内の別のメンバーブロックチェーンを、説明されたブロックチェーンに接続されたサードパーティストレージシステムとして使用することができる。言い換えれば、コンソーシアムブロックチェーン内の任意のメンバーブロックチェーンは、クロスチェーンデータ参照を実装するために、別のメンバーブロックチェーンに接続されたサードパーティストレージシステムとして使用することができる。
【００４７】
たとえば、あるシナリオでは、オペレータは実際のサービスニーズに基づいてコンソーシアムブロックチェーンを確立し、コンソーシアムブロックチェーン内のメンバーブロックチェーンに異なるサービス役割を割り当てることができる。言い換えれば、コンソーシアムブロックチェーンは完全なサービスプロセスに対応し、各メンバーブロックチェーンは完全なサービスプロセス内の1つのサブプロセスに対応することができる。
【００４８】
「オンラインリーストランザクション」のサービスニーズに基づいてオペレータによって設立されたコンソーシアムブロックチェーンの例では、コンソーシアムブロックチェーンを構成するメンバーブロックチェーンは、「トランザクションチェーン」、「認証チェーン」、および「データチェーン」を含むことができる。「トランザクションチェーン」、「認証チェーン」、および「データチェーン」は、それぞれ「オンラインリーストランザクション」サービスプロセスにおけるサブプロセスに対応することができる。たとえば、「データチェーン」は、リースユーザの実名データを維持するために使用され、「認証チェーン」は、ユーザのリース実名認証を完了するために使用され、「トランザクションチェーン」は、オンラインリーストランザクションを完了するために使用される。
【００４９】
次いで、オペレータは、メンバーブロックチェーン間の一方向のクロスチェーンデータ参照関係に基づいて、サービスレベルにおいて有向非循環グラフ(DAG)構造を有するトポロジマップにコンソーシアムブロックチェーンを構築することができる。
【００５０】
メンバーブロックチェーン間の一方向のクロスチェーンデータ参照関係は、通常、実際のサービスニーズに依存し、本明細書では特に限定されない点に留意されたい。
【００５１】
たとえば、図2は、一例におけるDAG構造を有するコンソーシアムブロックチェーンを示す概略図である。
【００５２】
図2に示されるように、「オンラインリーストランザクション」のサービスニーズに基づいてオペレータによって設立されたコンソーシアムブロックチェーンの例では依然として、コンソーシアムブロックチェーンを構成するメンバーブロックチェーンは、「トランザクションチェーン」、「認証チェーン」、および「データチェーン」を含むことができる。「データチェーン」はリースユーザの実名データを維持するために使用され、ユーザは「データチェーン」上でトランザクションを公開することによって、「データチェーン」の分散データベースに個人の実名データを記憶することができる。「認証チェーン」は、ユーザのリース実名認証を完了するために、「データチェーン」上で公開されたユーザの実名データを参照するために使用される。ユーザは、「認証チェーン」上でトランザクションを公開することによって個人の実名認証を完了し、「認証チェーン」の分散データベースにおいて実名認証結果を公開することができる。「トランザクションチェーン」は、「認証チェーン」上で公開されたユーザの実名認証結果を参照するために使用される。ユーザは、「トランザクションチェーン」上でトランザクションを公開することによってオンラインリーストランザクションを完了し、「認証チェーン」の分散データベースにおいてトランザクション結果を公開することができる。
【００５３】
前述のコンソーシアムブロックチェーン内の任意のターゲットメンバーブロックチェーンとのクロスチェーンデータ参照関係を有する別のメンバーブロックチェーンは、ターゲットメンバーブロックチェーンに接続された分散ストレージプラットフォームとして使用される。したがって、メンバーブロックチェーン間のクロスチェーンデータ参照をサービスレベルにおいて実装することができる。さらに、サードパーティストレージシステムとして使用されるメンバーブロックチェーンは、前述の参照されたターゲットコンテンツの元のコンテンツを前述のターゲットメンバーブロックチェーン内の各ノードデバイスに同期する必要がなくなり、ターゲットメンバーブロックチェーンは、前述のターゲットコンテンツの元のコンテンツを記憶する必要はない。そのため、ターゲットメンバーブロックチェーンは、ターゲットメンバーブロックチェーンに記憶されているターゲットコンテンツの元のコンテンツと、サードパーティストレージシステムとして使用されているメンバーブロックチェーンによって同期される参照ターゲットコンテンツについて、追加のデータ関連付けを実行する必要はない。したがって、2つの異なるブロックチェーン上の参照されたターゲットコンテンツのデータ関連付けは、参照されたターゲットコンテンツのコンテンツサマリのみを使用することによって実現することができ、前述のターゲットメンバーブロックチェーンによって参照されるターゲットコンテンツと、サードパーティストレージシステムとして使用されるメンバーブロックチェーンに記憶されている参照ターゲットコンテンツがビジネスセマンティクスにおいて一致していることを確認することができる。
【００５４】
(2)トランザクションコンテンツ参照
【００５５】
本明細書では、コンソーシアムブロックチェーンにアクセスする必要があるユーザは、コンソーシアムブロックチェーンによって返される公開鍵と秘密鍵のペアを取得するために、コンソーシアムブロックチェーンに事前に登録することができる。登録が完了すると、コンソーシアムブロックチェーンはユーザに対応するアカウントオブジェクトを作成することができる。
【００５６】
登録されたユーザは、コンソーシアムブロックチェーン内の各メンバーブロックチェーンによって提供されるAPIインターフェースを通じて各メンバーブロックチェーンにアクセスし、保持された秘密鍵に基づいて署名されたトランザクションを各メンバーブロックチェーンに公開することによって、各メンバーブロックチェーンにおいて対応するサービ動作を完了することができる。たとえば、図2に示されるコンソーシアムブロックチェーン内の「トランザクションチェーン」を例にとると、ユーザは、「トランザクションチェーン」においてトランザクションを公開することによって、オンラインリーストランザクションを完了することができる。
【００５７】
実装形態では、コンソーシアムブロックチェーンのオペレータは、コンソーシアムブロックチェーンにアクセスするメンバー用のクライアントソフトウェア(APPなど)を開発することができ、メンバーは、コンソーシアムブロックチェーンによってサポートされる標準トランザクション形式に基づいてクライアントソフトウェアを通じてトランザクションデータをアセンブルして、実行のためにコンソーシアムブロックチェーン内のメンバーによって指定されたターゲットメンバーブロックチェーンにアセンブルされたトランザクションデータを公開するために各メンバーブロックチェーンによって提供されるAPIインターフェースを呼び出すことができる。
【００５８】
クライアントソフトウェアを通じてメンバーによってアセンブルされたトランザクションデータは、メンバーによって指定されたトランザクションコンテンツを搬送することができ、トランザクションコンテンツの少なくとも一部をコンテンツサマリによって置き換えることができる。
【００５９】
実装形態では、メンバーは、クライアントソフトウェアを通じてターゲットメンバーブロックチェーン上で実行する必要があるトランザクションデータをアセンブルするときに、クライアントソフトウェアを通じてトランザクションコンテンツを入力することができる。クライアントソフトウェアは、メンバーによって入力されたトランザクションコンテンツが、ターゲットメンバーブロックチェーンに接続されているサードパーティストレージシステムに存在するかどうかを決定するために、メンバーによって入力されたトランザクションコンテンツを解析することができる。
【００６０】
メンバーによって入力されたトランザクションコンテンツがサードパーティストレージシステムに記憶されているトランザクションコンテンツに存在する場合、サードパーティストレージシステムは、トランザクションコンテンツに対応するコンテンツサマリ(すなわち、クエリインデックス)をクエリすることができる。あるいは、トランザクションコンテンツの一部のコンテンツサマリが、サードパーティストレージシステムによってサポートされているのと同じコンテンツサマリアルゴリズムに基づいて再計算され、次いで、コンテンツサマリがマークされたトランザクション形式で入力される。
【００６１】
たとえば、実装形態では、トランザクションコンテンツを搬送するためのコンテンツサマリフィールドを、コンソーシアムブロックチェーンによってサポートされる標準トランザクション形式に拡張することができる。クライアントソフトウェアが標準トランザクション形式に基づいてトランザクションデータをアセンブルすると、前述のサードパーティストレージシステムにすでに記憶されているすべてのトランザクションコンテンツのコンテンツサマリをコンテンツサマリフィールドに入力することができる。
【００６２】
(3)トランザクションコンテンツアドレス指定
【００６３】
本明細書において前述したターゲットメンバーブロックチェーン内の登録メンバーユーザに接続されたノードデバイスは、ユーザによって公開されたトランザクションを秘密鍵に基づいて受信した後、メンバーによって保持される秘密鍵に対応する公開鍵に基づいて、ユーザのID認証を最初に実行することができる。
【００６４】
たとえば、実際のアプリケーションでは、ユーザは、保持される秘密鍵に基づいて開始されたトランザクションに署名することができ、ブロックチェーン内のノードデバイスは、ユーザによって保持される秘密鍵に対応する公開鍵に基づいて署名の認証を試みることができる。署名が認証されている場合、ユーザのID認証は成功する。
【００６５】
ユーザのID認証が成功した後、トランザクションにおいて搬送されるトランザクションコンテンツ内にコンテンツサマリが存在するかどうかを決定するために、ノードデバイスは、受信したトランザクションにおいて搬送されるトランザクションコンテンツを解析することができる。
【００６６】
たとえば、ノードデバイスは、標準トランザクション形式において拡張されたトランザクションコンテンツを搬送するためのコンテンツサマリフィールドがnull値かどうかを解析することを通じて、トランザクションにおいて搬送されるトランザクションコンテンツ内にコンテンツサマリが存在するかどうかを決定することができる。
【００６７】
トランザクションにおいて搬送されるトランザクションコンテンツ内にコンテンツサマリが存在する場合、トランザクションにおけるトランザクションコンテンツの一部が、前述のサードパーティストレージシステムにすでに記憶されているデータコンテンツの参照であることを示す。この場合、トランザクションにおいて搬送される完全なトランザクションコンテンツを取得するために、ノードデバイスは、ターゲットメンバーブロックチェーンに接続されているサードパーティストレージシステムに、コンテンツサマリに対応するターゲットコンテンツをクエリすることができる。
【００６８】
実装形態では、ノードデバイスはクエリリクエストをセットアップすることと、コンテンツサマリをクエリインデックスとして使用することと、コンテンツサマリをクエリリクエストに追加することと、次いで、サードパーティストレージシステムにクエリリクエストを提出することとを行うことができる。クエリリクエストを受信した後、サードパーティストレージシステムはクエリリクエストからクエリインデックスを読み取り、次いで、クエリインデックスに対応するターゲットコンテンツを検索するためにクエリインデックスに基づいてローカルに記憶されたデータコンテンツとコンテンツサマリとの間のマッピング関係をトラバースし、ターゲットコンテンツをノードデバイスに返すことができる。
【００６９】
実際のアプリケーションでは、クエリインデックスとして使用されるコンテンツサマリに加えて、説明されたクエリリクエストは、コンテンツサマリに対応するターゲットコンテンツの迅速なクエリを容易にするために、いくつかの補助クエリパラメータをさらに搬送することができる点に留意されたい。
【００７０】
たとえば、ターゲットメンバーブロックチェーンに接続されているサードパーティストレージシステムは、ターゲットメンバーブロックチェーンとのクロスチェーンデータ参照関係を有するコンソーシアムブロックチェーン内の別のメンバーブロックチェーンである。この場合、サードパーティストレージシステムとして機能する他のメンバーブロックチェーンに記憶されている参照データコンテンツと対応するコンテンツサマリは、通常、ブロックチェーンの分散データベースにブロックの形式で記憶されているため、記述されたクエリリクエストは、コンテンツサマリが配置されているメンバーブロックチェーンの数、ブロック番号などを、クエリを容易にするための補助クエリパラメータとしてさらに搬送することができる。
【００７１】
(4)トランザクション実行
【００７２】
本明細書では、ノードデバイスが、ターゲットメンバーブロックチェーンに接続されているサードパーティストレージシステムから受信したトランザクションにおいて搬送されるコンテンツサマリに対応するターゲットコンテンツを識別した後、ノードデバイスは、トランザクションにおいて搬送される完全なトランザクションコンテンツに基づいて、ターゲットメンバーブロックチェーンにおいてトランザクションを実行することができる。
【００７３】
第1に、ノードデバイスは、識別されたターゲットコンテンツがコンテンツサマリに対応するデータコンテンツと一致することを確実にするために、識別されたターゲットコンテンツを検証することができる。
【００７４】
実装形態では、ノードデバイスは、識別されたターゲットコンテンツのコンテンツサマリを再計算し、次いで、再計算を通じて取得されたコンテンツサマリが、受信したトランザクションにおいて搬送されたコンテンツサマリと一致するかどうかを決定するために、再計算を通じて取得したコンテンツサマリを受信したトランザクションにおいて搬送されるコンテンツサマリと照合する。
【００７５】
再計算を通じて取得されたコンテンツサマリが、受信したトランザクションにおいて搬送されたコンテンツサマリと一致する場合、識別されたターゲットコンテンツの検証が成功し、ノードデバイスによって受信されたトランザクションは有効なトランザクションであり、ノードデバイスはトランザクションにおいて搬送された完全なトランザクションコンテンツを取得することができる。
【００７６】
再計算を通じて取得されたコンテンツサマリが、受信したトランザクションにおいて搬送されたコンテンツサマリと一致しない場合、識別されたターゲットコンテンツの検証は失敗である。この場合、前述のサードパーティストレージシステムに記憶されている元の参照されたターゲットコンテンツは、システムの信頼性が低いためにおそらく修正および更新され、トランザクションは無効なトランザクションであり、ノードデバイスはトランザクションを直接終了することができる。
【００７７】
ノードデバイスが識別されたターゲットコンテンツのコンテンツサマリを再計算するとき、ターゲットコンテンツのデータ構造、ターゲットコンテンツをエンコードする方法、および使用されるサマリアルゴリズムはすべて、同じターゲットコンテンツに対してコンテンツサマリ計算を実行する際にノードデバイスとサードパーティストレージシステムが同じ計算結果を取得できることを確実にするために、サードパーティストレージシステムのデータと一致している必要がある点に留意されたい。
【００７８】
さらに、ノードデバイスは、ターゲットメンバーブロックチェーンによってサポートされるコンセンサスアルゴリズムに基づいて、一定期間中に受信された有効なトランザクション(すなわち、コンテンツが認証されたトランザクション)に対してコンセンサス処理をさらに実行し、コンセンサス処理が完了した後、トランザクションにおいて搬送される完全なトランザクションコンテンツに基づいて、ターゲットメンバーブロックチェーンにおいてトランザクションを実行することができる。
【００７９】
コンソーシアムブロックチェーン内の各メンバーブロックチェーンによってサポートされるコンセンサスアルゴリズムは、本明細書では特に限定されず、メンバーブロックチェーンによってサポートされるコンセンサスアルゴリズムは同じでもよく、異なっていてもよい。
【００８０】
本明細書において、ノードデバイスが、取得したトランザクション内の完全なトランザクションコンテンツに基づいてターゲットメンバーブロックチェーン内のトランザクションを実行するとき、一般に以下の2つの状況が含まれ得る点に留意されたい。
【００８１】
ある状況では、メンバーユーザが前述のターゲットメンバーブロックチェーンにおいて公開するトランザクションは、具体的には、ターゲットメンバーブロックチェーンにおいて公開されたスマートコントラクトを呼び出すことによって自動的に実行されるトランザクションであり得る。たとえば、説明されたトランザクションは、具体的には、スマートコントラクトを呼び出すことによってブロックチェーンにおいて完了されたオンライン値転送(クロスボーダ転送など)であり得る。
【００８２】
この場合、呼び出してトランザクションに関連付けることができる実行プログラムを、スマートコントラクトにおいて事前宣言することができる。たとえば、実行プログラムは、具体的には、スマートコントラクトにおいて宣言されたトランザクション条件に関連する実行可能コード、関数などであり得、トランザクションにおいて搬送されるトランザクションコンテンツは、スマートコントラクトを呼び出すための入力パラメータとして使用される。トランザクションにおいて搬送されるトランザクションコンテンツを取得した後、ノードデバイスは、トランザクションを完了するために、スマートコントラクトへの呼出しを開始し、スマートコントラクトにおいて宣言された実行プログラムに入力パラメータを提出することができる。
【００８３】
他の状況では、メンバーユーザが前述のターゲットメンバーブロックチェーンにおいて公開するトランザクションは、具体的には、ターゲットメンバーブロックチェーンによってサポートされる標準トランザクションであり得る。標準トランザクションは、スマートコントラクトを呼び出さずに完了することができる。たとえば、説明されたトランザクションは、具体的には、「証明書トランザクション」などの前述のターゲットメンバーブロックチェーンによってサポートされるトランザクションであり得る。たとえば、図2の「データチェーン」に示されるように、ユーザは「証明書トランザクション」を「データチェーン」に公開し、ユーザの実名情報を「データチェーン」の分散データベースに記憶することができ、トランザクションが公開されると、ユーザの実名情報を改ざんすることはできない。
【００８４】
この場合、ノードデバイスは、トランザクションを実行するときに、第1にトランザクションの有効性を検証することができる。有効性チェックでトランザクションが有効であることが確認されると、ノードデバイスはターゲットメンバーブロックチェーン内のトランザクションをさらにブロードキャストし、トランザクションをターゲットメンバーブロックチェーン内の他のノードデバイスに同期することができ、他のノードデバイスはトランザクションの有効性をチェックする。ターゲットメンバーブロックチェーン内のほとんどのノードデバイス(51%など)がトランザクションを検証し、トランザクションが有効であることを確認すると、トランザクションが完了する。
【００８５】
本明細書では、ノードデバイスが受信したトランザクションを実行した後、ノードデバイスは、トランザクションをターゲットメンバーブロックチェーンの分散データベースにさらに記憶することができる。
【００８６】
ブロックチェーンの分散データベースに記録される情報は、通常、トランザクションログとトランザクション状態を含む。
【００８７】
トランザクションログは、トランザクションのログを記憶するために使用され、発生順に一連のブロックを含み、分散データベース内のトランザクション記録である。
【００８８】
トランザクション状態は、分散データベースに記録されたトランザクションによって引き起こされた状態変化を記憶するために使用される。たとえば、ブロックチェーンは通常、多くの小さいオブジェクト(アカウントオブジェクト、コントラクトオブジェクト、資産オブジェクトなど)を含み、トランザクションがブロックチェーンの分散データベースにおいて提出されるたびに、トランザクションが完了した後、トランザクションに関連する状態は同期的に更新される。たとえば、ブロックチェーンにおいて提出されたオンライン転送トランザクションを例にとると、トランザクションの実行後、転送に関連するアカウントオブジェクトの残高が同期的に更新される。
【００８９】
この場合、ノードデバイスが受信したトランザクションを実行した後、ノードデバイスはターゲットメンバーブロックチェーンの分散データベースにトランザクションをさらに記憶することができる。
【００９０】
ある態様では、トランザクションは、生成されたブロック内のターゲットメンバーブロックチェーンの分散データベースに記憶されているトランザクションログに書き込むことができる。
【００９１】
他の態様では、トランザクションによって引き起こされた関連オブジェクトの状態変化は、トランザクション状態において更新することができる。たとえば、引き続きブロックチェーンにおいて提出されたオンライン転送トランザクションを例にとると、トランザクションの実行後、転送に関連するアカウントオブジェクトの残高をトランザクション状態において更新することができる。
【００９２】
以前の実装形態では、参照データの元のコンテンツをサードパーティストレージシステムに記憶することができ、参照データコンテンツのコンテンツサマリのみがブロックチェーンに記憶される。ブロックチェーンがトランザクションを実行するか、トランザクショントレースを実行すると、ブロックチェーンはコンテンツサマリに基づいて、サードパーティストレージシステムから参照データの元のコンテンツを読み取る。
【００９３】
そのため、前述のサードパーティストレージシステムに記憶されているターゲットコンテンツの元のコンテンツをブロックチェーン上の各ノードデバイスに同期することによって発生される、ブロックチェーン内のデータの冗長ストレージを軽減することができる。
【００９４】
たとえば、ターゲットブロックチェーンに接続されているサードパーティストレージシステムは、記述されたブロックチェーンとのクロスチェーンデータ参照関係を有する別のブロックチェーンであり、例として使用されている。他のブロックチェーンが5つのノードデバイスを含み、ターゲットブロックチェーンが50個のノードデバイスを含むと仮定する。他のブロックチェーンに記憶されている参照データコンテンツをターゲットブロックチェーンに同期する方法が引き続き使用される場合、参照データコンテンツをターゲットブロックチェーン内の50個のノードに同期する必要があるため、ターゲットブロックチェーン内の参照データコンテンツに大量の冗長性を引き起こす。しかしながら、ターゲットブロックチェーンが参照データコンテンツのコンテンツサマリのみを記憶する場合、他のブロックチェーンは参照データコンテンツを50個のノードのデバイスに個別に同期する必要がなくなり、それによって、説明したターゲットブロックチェーンのデータストレージの冗長性が大幅に削減される。
【００９５】
さらに、ブロックチェーンのストレージパフォーマンスを大幅に向上させることができる。
【００９６】
たとえば、実際のアプリケーションでは、前述の参照データコンテンツが画像やビデオなどの大きいメディアファイルである場合、これらのメディアファイルが前述のターゲットメンバーブロックチェーンに直接記憶されると、ブロックチェーンネットワークのストレージパフォーマンスが低下する。したがって、本方法を使用することによって、前述のターゲットメンバーブロックチェーンのデータストレージパフォーマンスもある程度改善することができる。
【００９７】
前述の方法の実装形態に対応して、本明細書は、ブロックチェーンに基づいてトランザクションを実行するための装置の実装形態をさらに提供する。本明細書におけるブロックチェーンに基づいてトランザクションを実行するための装置の実装形態は、電子デバイスに適用することができる。デバイスの実装形態は、ソフトウェアによって実装することもでき、ハードウェアまたはハードウェアとソフトウェアの組合せによって実装することもできる。ソフトウェアの実装形態が例として使用される。論理デバイスとして、デバイスは、デバイスが配置されている電子デバイスのプロセッサによって、不揮発性メモリ内の対応するコンピュータプログラム命令をメモリに読み取ることによって形成される。ハードウェアに関して、図3を参照すると、図3は、本明細書におけるブロックチェーンに基づいてトランザクションを実行するための装置が配置されている電子デバイスを示すハードウェア構造図である。図3に示されるプロセッサ、メモリ、ネットワークインターフェース、および不揮発性メモリに加えて、実装形態において装置が配置される電子デバイスは、通常、電子デバイスの実際の機能に基づく他のハードウェアを含むことができる。簡略化のため、ここでは詳細は省略される。
【００９８】
図4は、本明細書の例示的な実装形態による、ブロックチェーンに基づいてトランザクションを実行するための装置を示すブロック図である。
【００９９】
図4を参照すると、ブロックチェーンに基づいてトランザクションを実行するための装置40は、図2に示される電子デバイスに適用することができ、受信モジュール401、クエリモジュール402、および実行モジュール403を含む。
【０１００】
受信モジュール401は、ターゲットトランザクションを受信するように構成され、ターゲットトランザクションにおけるトランザクションコンテンツの少なくとも一部は、ブロックチェーンに接続されたサードパーティストレージシステムに記憶されたターゲットコンテンツのコンテンツサマリを含む。
【０１０１】
クエリモジュール402は、コンテンツサマリに対応するターゲットコンテンツをサードパーティストレージシステムにクエリし、ターゲットコンテンツを検証するように構成される。
【０１０２】
実行モジュール403は、ターゲットコンテンツの検証が成功した場合、ターゲットトランザクションにおけるトランザクションコンテンツに基づいてターゲットトランザクションを実行することと、ターゲットトランザクションが実行された後、ターゲットトランザクションをブロックチェーンの分散データベースに記憶することとを行うように構成される。
【０１０３】
本実装形態では、サードパーティストレージシステムは、ターゲットコンテンツとターゲットコンテンツのコンテンツサマリとの間のマッピング関係を記憶し、クエリモジュール402は、コンテンツサマリに対応するターゲットコンテンツをクエリするために、コンテンツサマリをクエリインデックスとして使用し、サードパーティストレージシステムに対してクエリを開始するように構成される。
【０１０４】
本実装形態では、実行モジュール403は、あらかじめ設定されたサマリアルゴリズムに基づいてターゲットコンテンツのコンテンツサマリを計算することと、計算を通じて取得されたコンテンツサマリが、ターゲットトランザクションにおけるターゲットコンテンツのコンテンツサマリと一致するかどうかを決定することと、計算を通じて取得されたコンテンツサマリがターゲットトランザクションにおけるターゲットコンテンツのコンテンツサマリと一致する場合、ターゲットコンテンツの検証が成功したと決定することとを行うようにさらに構成される。
【０１０５】
本実装形態では、サードパーティストレージシステムは、集中型コンテンツアドレス可能ストレージ(CAS)システムまたは分散型CASシステムを含む。
【０１０６】
本実装形態では、ブロックチェーンは、複数のメンバーブロックチェーンから構成されるコンソーシアムブロックチェーン内の任意のメンバーブロックチェーンを含む。
【０１０７】
本実装形態では、サードパーティストレージシステムは、説明されているブロックチェーンとのクロスチェーンデータ参照関係を有するコンソーシアムブロックチェーン内の別のメンバーブロックチェーンである。
【０１０８】
本実装形態では、コンソーシアムブロックチェーンは、メンバーブロックチェーン間のクロスチェーンデータ参照関係に基づいて構築された有向非循環グラフ(DAG)構造である。
【０１０９】
装置内の各モジュールの機能および役割の実装形態プロセスについては、前の方法の対応するステップの実装形態プロセスを参照することができる。簡略化のため、ここでは詳細は省略される。
【０１１０】
装置の実装形態は基本的に方法の実装形態に対応しているため、関連する部分については、方法の実装形態における関連する説明を参照することができる。前述の装置の実装形態は単なる例である。個別の部分として説明されているモジュールは、物理的に個別であってもなくてもよく、モジュールとして表示される部分は物理モジュールであってもなくてもよく、1つの位置に配置されてもよく、複数のネットワークモジュールに分散されてもよい。本明細書の解決策の目的を達成するための実際のニーズに基づいて、モジュールの一部またはすべてを選択することができる。当業者は、創造的な努力なしに、本出願の実装形態を理解し、実装することができる。
【０１１１】
これまでの実装形態で示されたシステム、装置、またはモジュールは、コンピュータチップまたはエンティティを使用することによって実装することもでき、または特定の機能を有する製品を使用することによって実装することもできる。典型的な実装バイスはコンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、セルラー電話、カメラ付き電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メール送受信デバイス、ゲーム機、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであり得る。
【０１１２】
前述の方法の実装形態に対応して、本明細書は、電子デバイスの実装形態をさらに提供する。電子デバイスは、機械実行可能命令を記憶するように構成されたプロセッサおよびメモリを含み、プロセッサおよびメモリは通常、内部バスを通じて互いに接続される。別の可能な実装形態では、本デバイスはまた、他のデバイスまたはコンポーネントとの通信を可能にするための外部インターフェースを含むことができる。
【０１１３】
本実装形態では、メモリに記憶され、ブロックチェーンに基づくトランザクション実行制御論理に対応する機械実行可能命令を読み取って実行することによって、プロセッサは、ターゲットトランザクションを受信することであって、ターゲットトランザクションにおけるトランザクションコンテンツの少なくとも一部が、ブロックチェーンに接続されたサードパーティストレージシステムに記憶されたターゲットコンテンツのコンテンツサマリを含む、受信することと、コンテンツサマリに対応するターゲットコンテンツをサードパーティストレージシステムにクエリし、ターゲットコンテンツを検証することと、ターゲットコンテンツの検証が成功した場合、ターゲットトランザクションにおけるトランザクションコンテンツに基づいてターゲットトランザクションを実行することと、ターゲットトランザクションが実行された後、ターゲットトランザクションをブロックチェーンの分散データベースに記憶することとを行うように構成される。
【０１１４】
本実装形態では、サードパーティストレージシステムは、ターゲットコンテンツとターゲットコンテンツのコンテンツサマリとの間のマッピング関係を記憶し、メモリに記憶され、ブロックチェーンに基づくトランザクション実行制御論理に対応する機械実行可能命令を読み取って実行することによって、プロセッサは、コンテンツサマリに対応するターゲットコンテンツをクエリするために、コンテンツサマリをクエリインデックスとして使用し、サードパーティストレージシステムに対してクエリを開始するように構成される。
【０１１５】
本実装形態では、メモリに記憶され、ブロックチェーンに基づくトランザクション実行制御論理に対応する機械実行可能命令を読み取って実行することによって、プロセッサは、あらかじめ設定されたサマリアルゴリズムに基づいてターゲットコンテンツのコンテンツサマリを計算することと、計算を通じて取得されたコンテンツサマリが、ターゲットトランザクションにおけるターゲットコンテンツのコンテンツサマリと一致するかどうかを決定することと、計算を通じて取得されたコンテンツサマリがターゲットトランザクションにおけるターゲットコンテンツのコンテンツサマリと一致する場合、ターゲットコンテンツの検証が成功したと決定することとを行うようにさらに構成される。
【０１１６】
当業者は、本明細書を熟考し、本明細書で本開示を実施した後、本明細書の別の実装形態を容易に理解することができる。本明細書は、本明細書のあらゆる変形、使用、または適合をカバーすることを意図しており、これらの変形、使用、または適合は、本明細書の一般原則に従い、本明細書の技術分野において開示されていない常識または従来技法を含む。本明細書および実装形態は単に例として考慮され、本明細書の実際の範囲および趣旨は、以下の特許請求の範囲によって指摘される。
【０１１７】
本明細書は、上記で説明し、図面に示した正確な構造に限定されず、本開示の範囲から逸脱することなしに、様々な修正および変更を行うことができることを理解されたい。本明細書の範囲は、添付の特許請求の範囲によってのみ制限される。
【０１１８】
前述の説明は、本明細書の好ましい実装形態にすぎず、本明細書を限定することを意図するものではない。本明細書の趣旨および原理から逸脱することなしに行われたあらゆる修正、同等の置換、または改善は、本明細書の保護範囲内に含まれるものとする。
【０１１９】
図5は、本開示の一実装形態による、ブロックチェーンに基づいてトランザクションを実行するためのコンピュータ実装方法500の例を示すフローチャートである。提示を明確にするために、以下の説明は、一般的に、本明細書における他の図面との関連で方法500を説明する。しかしながら、方法500は、たとえば、任意のシステム、環境、ソフトウェア、およびハードウェア、またはシステム、環境、ソフトウェア、およびハードウェアの組合せによって、適切に実行できることが理解されよう。いくつかの実装形態では、方法500の様々なステップは、並行して、組み合わせて、ループで、または任意の順序で実行することができる。
【０１２０】
502において、ノードデバイスにおいて、受信したターゲットトランザクションとして、ブロックチェーンに関連付けられ、ユーザによって公開されたターゲットトランザクションが受信され、受信したターゲットトランザクションはトランザクションコンテンツを含み、トランザクションコンテンツの少なくとも一部はブロックチェーンに接続されたサードパーティストレージシステムに記憶されているターゲットコンテンツに関連付けられるコンテンツサマリを含む。
【０１２１】
いくつかの実装形態では、ブロックチェーンはコンソーシアムブロックチェーンネットワークに関連付けられるメンバーブロックチェーンであり、コンソーシアムブロックチェーンネットワークは多数のメンバーブロックチェーンを備え、コンソーシアムブロックチェーンネットワーク内の各メンバーブロックチェーンは、クロスチェーンデータ参照を実装するために別のメンバーブロックチェーンに接続されたサードパーティストレージシステムである。
【０１２２】
いくつかの実装形態では、サードパーティストレージシステムは、メンバーブロックチェーンの数に応じたデータストレージサービスを提供する、コンテンツアドレス可能ストレージ(CAS)プラットフォームを含み、CASプラットフォームは、記憶されたターゲットコンテンツのコンテンツサマリをターゲットコンテンツのクエリインデックスとして使用し、CASプラットフォームは、クエリインデックスとターゲットコンテンツとの間のマッピング関係を記憶する。方法500は、502から504に進む。
【０１２３】
504において、ノードデバイスによって、およびサードパーティストレージシステムに、コンテンツサマリに対応するターゲットコンテンツがクエリされる。方法500は、504から506に進む。
【０１２４】
506において、ノードデバイスによって、ターゲットコンテンツが検証されるかどうかを決定する。いくつかの実装形態では、ターゲットコンテンツが検証されているかどうかを決定することは、ノードデバイスによって、識別されたターゲットコンテンツとして、受信したターゲットトランザクションにおいて搬送されるコンテンツサマリに対応するターゲットコンテンツを識別することと、ノードデバイスによって、再計算されたコンテンツの要約として、識別されたターゲットコンテンツのコンテンツサマリを再計算することと、ノードデバイスによって、再計算されたコンテンツサマリが、受信したターゲットトランザクションにおいて搬送されたコンテンツサマリと一致するかどうかを決定することと、再計算されたコンテンツサマリが、受信したターゲットトランザクションにおいて搬送されたコンテンツサマリと一致すると決定された場合:ターゲットコンテンツが検証され、受信したターゲットトランザクションが有効なトランザクションであると決定することと、受信したターゲットトランザクションにおいて搬送された完全なトランザクションコンテンツを取得することと、あるいは、再計算されたコンテンツサマリが、受信したターゲットトランザクションにおいて搬送されたコンテンツサマリと一致しないと決定された場合、ターゲットコンテンツが検証されておらず、受信したターゲットトランザクションが無効であると決定することと、受信したターゲットトランザクションを終了することとを含む。方法500は、506から508に進む。
【０１２５】
508において、ターゲットコンテンツが検証されたとの決定に応答して、ノードデバイスによって、受信したターゲットトランザクションがトランザクションコンテンツに基づいて実行される。
【０１２６】
いくつかの実装形態では、トランザクションコンテンツに基づいて受信したターゲットトランザクションを実行することは、ブロックチェーンにおいて公開されたスマートコントラクトを呼び出すことによって、完全なトランザクションコンテンツに基づいて受信したターゲットトランザクションを自動的に実行することを備える。
【０１２７】
いくつかの実装形態では、ユーザによって公開された受信したターゲットトランザクションは、ブロックチェーンによってサポートされる標準トランザクションであり、受信したターゲットトランザクションを実行することは、ノードデバイスによって、受信したターゲットトランザクションが有効かどうかを決定することと、受信したターゲットトランザクションが有効であると決定することに応答して、ノードデバイスによって、ブロックチェーン内の受信したターゲットトランザクションをブロードキャストすることと、ノードデバイスによって、他のノードデバイスが受信したターゲットトランザクションの有効性をチェックすることを可能にするために、受信したターゲットトランザクションをブロックチェーン内の他のノードデバイスと同期させることと、あらかじめ定められた数の他のノードデバイスが、受信したターゲットトランザクションが有効であると決定した場合、ノードデバイスによって、受信したターゲットトランザクションが有効であることを確認し、受信したターゲットトランザクションを完了することとを含む。方法500は、508から510に進む。
【０１２８】
510において、ノードデバイスによって、受信したターゲットトランザクションは、ブロックチェーンに関連付けられる分散データベースに記憶される。いくつかの実装形態では、受信したターゲットトランザクションを分散データベースに記憶することは、受信したターゲットトランザクションのトランザクションログとトランザクション状態を分散データベースに記憶することを備える。510の後、方法500は停止することができる。
【０１２９】
本出願の実装形態は、デジタルトランザクション実行プロセスにおける技術的問題を解決することができる。従来、ブロックチェーントランザクションプロセスにおいて、トランザクションにおけるトランザクションコンテンツは通常、ブロックチェーンの分散データベースに記憶されたデータコンテンツから取得され、外部ストレージに記憶されたデータコンテンツは参照できない。したがって、ブロックチェーンネットワーク内のノードデバイスごとに、ブロックチェーンにアクセスするメンバーによって公開されるトランザクションが実行されると、トランザクションコンテンツに含まれるデータコンテンツはすべてブロックチェーンからのものとなり、したがって「データ使用閉ループ」が形成される。ブロックチェーンの形成された「データ使用閉ループ」を解消する技法が必要とされる。
【０１３０】
本出願の実装形態は、サードパーティストレージプラットフォームに記憶された不変のデータコンテンツをブロックチェーントランザクションにおけるトランザクションコンテンツとして参照することによって、ブロックチェーンベースのデジタルトランザクション実行を改善するための方法および装置を提供する。これらの実装形態によれば、ブロックチェーンをサードパーティストレージシステムに事前に接続することができる。サードパーティストレージシステムは、ブロックチェーンで公開されたトランザクションによって参照することができる一部の不変データコンテンツを事前に記憶することができる。ブロックチェーンにアクセスするメンバーがトランザクションをブロックチェーンに公開すると、サードパーティストレージシステムに記憶されているデータコンテンツをトランザクションコンテンツとして参照するために、サードパーティストレージシステムに記憶されているデータコンテンツのコンテンツサマリをトランザクションに追加することができる。さらに、ブロックチェーン上のノードデバイスがメンバーによって公開されたトランザクションを受信すると、ノードデバイスは、コンテンツサマリに対応するデータコンテンツをクエリして、クエリされたデータコンテンツを検証するために、コンテンツサマリに基づいてサードパーティストレージシステムへのクエリを開始することができる。コンテンツの検証が成功した場合、トランザクションはトランザクションにおける完全なトランザクションコンテンツに基づいて実行することができ、トランザクションはトランザクションの完了後にブロックチェーンの分散データベースに記憶される。
【０１３１】
いくつかの実装形態では、上述の方法および装置は、上述のサードパーティストレージシステムに記憶されているターゲットコンテンツの元のコンテンツをブロックチェーン内の各ノードデバイスに同期することによって引き起こされるブロックチェーン内の冗長なデータストレージを軽減することができる。これは、参照データの元のコンテンツをサードパーティストレージシステムに記憶することができ、参照データコンテンツのコンテンツサマリがブロックチェーンに記憶されるためである。ブロックチェーンがトランザクションを実行するか、トランザクショントレースを実行すると、ブロックチェーンはコンテンツサマリに基づいて、サードパーティストレージシステムから参照データの元のコンテンツを読み取る。
【０１３２】
本明細書で説明される実施形態および動作は、本明細書で開示される構造またはそれらの1つまたは複数の組合せを含む、デジタル電子回路あるいはコンピュータソフトウェア、ファームウェア、またはハードウェアで実装することができる。動作は、1つまたは複数のコンピュータ可読ストレージデバイスに記憶された、または他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装することができる。データ処理装置、コンピュータ、またはコンピューティングデバイスは、例として、前述のプログラム可能なプロセッサ、コンピュータ、チップ上のシステム、または複数のもの、あるいはそれらの組合せを含む、データを処理するための装置、デバイス、および機械を包含し得る。本装置は、たとえば、中央処理装置(CPU)、フィールドプログラマブルゲートアレイ(FPGA)、または特定用途向け集積回路(ASIC)などの専用論理回路を含むことができる。本装置はまた、問題のコンピュータプログラムの実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム(たとえば、オペレーティングシステムまたはオペレーティングシステムの組合せ)、クロスプラットフォームのランタイム環境、仮想マシン、またはそれらの1つまたは複数の組合せを構成するコードを含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティング、およびグリッドコンピューティングインフラストラクチャなどの、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【０１３３】
コンピュータプログラム(たとえば、プログラム、ソフトウェア、ソフトウェアアプリケーション、ソフトウェアモジュール、ソフトウェアユニット、スクリプト、またはコードとしても知られる)は、コンパイラ型またはインタープリタ型言語、宣言型または手続き型言語を含む、あらゆる形式のプログラミング言語で記述することができ、およびスタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、オブジェクト、またはコンピューティング環境における使用に適した他のユニットとしてなどを含む、あらゆる形式で展開することができる。プログラムは、他のプログラムまたはデータを保持するファイルの一部(たとえば、マークアップ言語ドキュメントに記憶されている1つまたは複数のスクリプト)、問題のプログラム専用の単一ファイル、または複数の調整ファイル(たとえば、1つまたは複数のモジュール、サブプログラム、あるいはコードの一部を記憶するファイル)に記憶することができる。コンピュータプログラムは、1台のコンピュータ上で、あるいは1つのサイトに配置されるか、複数のサイトに分散され、通信ネットワークによって相互接続されている複数のコンピュータ上で実行することができる。
【０１３４】
コンピュータプログラムの実行のためのプロセッサは、例として、汎用および専用の両方のマイクロプロセッサ、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、読取り専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令およびデータを受け取る。コンピュータの必須要素は、命令に従ってアクションを実行するためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量ストレージデバイスを含むか、あるいはそれらからデータを受信するか、それらにデータを転送するか、またはその両方を行うために、動作可能に結合される。コンピュータは、別のデバイス、たとえばモバイルデバイス、携帯情報端末(PDA)、ゲーム機、全地球測位システム(GPS)受信機、またはポータブルストレージデバイスに埋め込むことができる。コンピュータプログラム命令およびデータを記憶するために適したデバイスは、例として、半導体メモリデバイス、磁気ディスク、および光磁気ディスクを含む、不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完されてもよく、それに組み込まれてもよい。
【０１３５】
モバイルデバイスは、ハンドセット、ユーザ機器(UE)、モバイル電話(たとえば、スマートフォン)、タブレット、ウェアラブルデバイス(たとえば、スマートウォッチおよびスマート眼鏡)、人体に埋め込まれたデバイス(たとえば、バイオセンサ、人工内耳)、または他のタイプのモバイルデバイスを含むことができる。モバイルデバイスは、ワイヤレスで(たとえば、無線周波数(RF)信号を使用して)様々な通信ネットワーク(以下で説明する)と通信することができる。モバイルデバイスは、モバイルデバイスの現在の環境の特性を決定するためのセンサを含むことができる。センサは、カメラ、マイク、近接センサ、GPSセンサ、モーションセンサ、加速度計、環境光センサ、湿度センサ、ジャイロスコープ、コンパス、気圧計、指紋センサ、顔認識システム、RFセンサ(たとえば、Wi-Fiおよびセル無線)、熱センサ、または他のタイプのセンサを含むことができる。たとえば、カメラは、可動または固定レンズ、フラッシュ、画像センサ、および画像プロセッサを備えた前向きまたは後向きカメラを含むことができる。カメラは、顔および/または虹彩の認識のために詳細をキャプチャすることができるメガピクセルカメラにすることができる。カメラとデータプロセッサ、およびメモリに記憶されているか、リモートでアクセスされる認証情報は、顔認識システムを形成することができる。顔認識システムあるいは1つまたは複数のセンサ、たとえば、マイク、モーションセンサ、加速度計、GPSセンサ、またはRFセンサをユーザ認証のために使用することができる。
【０１３６】
ユーザとの対話を提供するために、実施形態は、ユーザに情報を表示するためのディスプレイデバイスおよび入力デバイス、たとえば、液晶ディスプレイ(LCD)または有機発光ダイオード(OLED)/仮想現実(VR)/拡張現実(AR)ディスプレイ、およびユーザがコンピュータに入力を提供できるタッチスクリーン、キーボード、およびポインティングデバイス有するコンピュータ上で実装することができる。ユーザとの対話を提供するために他の種類のデバイスを使用することもでき、たとえば、ユーザに提供されるフィードバックは、たとえば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなどの任意の形式の感覚的フィードバックであり得、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受け取ることができる。さらに、コンピュータは、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、たとえば、ウェブブラウザから受信したリクエストに応じて、ユーザのクライアントデバイスのウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。
【０１３７】
実施形態は、任意の形式または媒体のワイヤラインまたはワイヤレスのデジタルデータ通信(または、それらの組合せ)、たとえば通信ネットワークによって相互接続されたコンピューティングデバイスを使用して実装することができる。相互接続されたデバイスの例は、一般的に互いに離れているクライアントとサーバであり、通常は通信ネットワークを通じて相互作用する。クライアント、たとえばモバイルデバイスは、サーバを使用して、またはサーバを通じてトランザクション自体を実行することができ、たとえば、購入、販売、支払い、贈与、送信、またはローンのトランザクションを実行すること、またはトランザクションを承認することができる。そのようなトランザクションは、アクションと応答が時間的に近接するようにリアルタイムであり得、たとえば、個人がアクションと応答が実質的に同時に発生していることを認識している、個人のアクションに続く応答の時間差が1ミリ秒(ms)未満または1秒(s)未満である、あるいはシステムの処理制限を考慮して、応答は意図的な遅延なしである。
【０１３８】
通信ネットワークの例は、ローカルエリアネットワーク(LAN)、無線アクセスネットワーク(RAN)、メトロポリタンエリアネットワーク(MAN)、およびワイドエリアネットワーク(WAN)を含む。通信ネットワークは、インターネット、別の通信ネットワーク、または通信ネットワークの組合せのすべてまたは一部を含むことができる。情報は、ロングタームエボリューション(LTE)、5G、IEEE 802、インターネットプロトコル(IP)、他のプロトコル、またはプロトコルの組合せを含む、様々なプロトコルおよび規格に従って通信ネットワーク上で送信することができる。通信ネットワークは、接続されたコンピューティングデバイス間で音声、ビデオ、生体認証、または認証データ、あるいは他の情報を送信することができる。
【０１３９】
個別の実装形態として説明された機能は、単一の実装形態において組み合わせて実装され得、一方、単一の実装形態として説明された機能は、複数の実装形態において、個別に、または任意の適切なサブコンビネーションにおいて実装され得る。特定の順序で説明および主張されている動作は、特定の順序を必要とする、またはすべての図示された動作が実行される必要があると理解されるべきではない(一部の動作は任意であり得る)。必要に応じて、マルチタスクまたは並列処理(または、マルチタスクと並列処理の組合せ)を実行することができる。
【符号の説明】
【０１４０】
40  装置
401  受信モジュール
402  クエリモジュール
403  実行モジュール
500  方法
【図１】
2021511560.tif 000003
【図２】
2021511560.tif 000004
【図３】
2021511560.tif 000005
【図４】
2021511560.tif 000006
【図５】
2021511560.tif 000007
【国際調査報告】
2021511560.tif 000008
2021511560.tif 000009