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

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

▶ アドボケイト リミテッドの特許一覧

特許7192196複数のノードに基づくネットワークトランザクション検証方法及びそのシステム並びに記憶媒体
<>
  • 特許-複数のノードに基づくネットワークトランザクション検証方法及びそのシステム並びに記憶媒体 図1
  • 特許-複数のノードに基づくネットワークトランザクション検証方法及びそのシステム並びに記憶媒体 図2
  • 特許-複数のノードに基づくネットワークトランザクション検証方法及びそのシステム並びに記憶媒体 図3
  • 特許-複数のノードに基づくネットワークトランザクション検証方法及びそのシステム並びに記憶媒体 図4
  • 特許-複数のノードに基づくネットワークトランザクション検証方法及びそのシステム並びに記憶媒体 図5
  • 特許-複数のノードに基づくネットワークトランザクション検証方法及びそのシステム並びに記憶媒体 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-12
(45)【発行日】2022-12-20
(54)【発明の名称】複数のノードに基づくネットワークトランザクション検証方法及びそのシステム並びに記憶媒体
(51)【国際特許分類】
   H04L 9/32 20060101AFI20221213BHJP
【FI】
H04L9/32 200Z
【請求項の数】 9
(21)【出願番号】P 2021544762
(86)(22)【出願日】2020-04-29
(65)【公表番号】
(43)【公表日】2022-03-17
(86)【国際出願番号】 CN2020087770
(87)【国際公開番号】W WO2020221292
(87)【国際公開日】2020-11-05
【審査請求日】2021-07-29
(31)【優先権主張番号】19123085.3
(32)【優先日】2019-04-29
(33)【優先権主張国・地域又は機関】HK
(31)【優先権主張番号】19133728.6
(32)【優先日】2019-12-17
(33)【優先権主張国・地域又は機関】HK
(73)【特許権者】
【識別番号】521338617
【氏名又は名称】アドボケイト リミテッド
【氏名又は名称原語表記】ADVOKATE LIMITED
【住所又は居所原語表記】Unit 906 9/F,Cyberport 3,Core D,100 Cyberport Road Hong Kong
(74)【代理人】
【識別番号】100180781
【弁理士】
【氏名又は名称】安達 友和
(72)【発明者】
【氏名】郭師尭
【審査官】金沢 史明
(56)【参考文献】
【文献】国際公開第2018/223042(WO,A1)
【文献】国際公開第2018/223995(WO,A1)
【文献】Istanbul Byzantine Fault Tolerance #650,[online],2019年04月03日,[2022年8月23日検索],インターネット<URL:https://web.archive.org/web/20190402171633/https://github.com/ethereum/EIPs/issues/650>
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 21/64
(57)【特許請求の範囲】
【請求項1】
複数のノードに基づくネットワークトランザクション検証方法であって、
コンピュータシステムが、ネットワークトランザクションに参加する複数のノードに対応する実際の身元を識別するステップと、
前記コンピュータシステムが、前記複数のノードの中から一部のノードを選択してネットワークトランザクションノードを検証するための検証ノードとするステップと、
前記コンピュータシステムが、前記複数のノード間のパブリックP2Pチャンネル伝送データ及びネットワークトランザクションを記録するための現時点のパブリックトランザクション記録リンクリストを初期化するステップと、
前記コンピュータシステムが、IBFTコンセンサスアルゴリズムによってトランザクション情報及び署名を含むデータブロックを生成して、前記現時点のパブリックトランザクション記録リンクリストに追加するステップと、
現時点のパブリックトランザクション記録リンクリスト中のデータブロックの増加量が更新閾値よりも大きくなった場合、前記検証ノードを更新する更新ステップであって、前記複数のノードが前記検証ノードを検証することを含むステップと、を含み、
前記検証ノードの数が3F+1である場合、前記複数のノード間のパブリックP2Pチャンネル伝送データ及びネットワークトランザクションを記録するための現時点のパブリックトランザクション記録リンクリストを初期化する前記のステップは、さらに、
少なくとも2F+1個の検証ノードが返信した検証結果を収集するサブステップと、
収集された検証結果を統計し、前記データブロックが検証ノードを通過した数がF+1以上の場合は、前記データブロックを前記現時点のパブリックトランザクション記録リンクリストの末尾に記録するサブステップと、を含むことを特徴とする、
ネットワークトランザクション検証方法。
【請求項2】
前記データブロックは一定の頻度で生成されるものであり、現時点で新しいトランザクション情報がない場合、前記データブロック内のトランザクション情報は空であることを特徴とする、請求項1に記載のネットワークトランザクション検証方法。
【請求項3】
前記更新ステップは、さらに、
検証される検証ノードが検証ノード全体の総数の2/3の検証を通過できなかった場合、前記検証された検証ノードは検証ノードではなくなることを含むことを特徴とする、
請求項1に記載のネットワークトランザクション検証方法。
【請求項4】
前記更新ステップは、さらに、
新たに追加された検証ノードが検証ノード全体の総数の2/3の検証を通過した場合、前記新たに追加されたノードが新たな検証ノードとして選択されることを含むことを特徴とする、
請求項1に記載のネットワークトランザクション検証方法。
【請求項5】
前記更新閾値が30000であることを特徴とする、請求項1に記載のネットワークトランザクション検証方法。
【請求項6】
任意の2つ以上のノード間で、さらに、
プライベートトランザクション伝送チャンネル及び現時点のパブリックトランザクション記録リンクリストに基づくプライベートトランザクションデータリンクリストを初期化するとともに、前記プライベートトランザクション伝送チャンネルを通してプライベートトランザクションデータリンクを前記2つ以上のノードに共有させるステップと、
Raftコンセンサスアルゴリズムにより、前記2つ以上のノード間の、トランザクション情報及び署名を含むデータブロックを前記プライベートトランザクションデータリンクリストの末尾に追加するステップと、
前記プライベートトランザクション伝送チャンネルを通して前記プライベートトランザクションデータリンクリストを前記2つ以上のノードに増分更新するステップと、を実行することができ、
前記プライベートトランザクション伝送チャンネルは前記パブリックP2Pチャンネルとは異なることを特徴とする、
請求項1に記載のネットワークトランザクション検証方法。
【請求項7】
前記データブロックは、検証される過程中に書込ロックされることにより、すべてのノードにおいて読取専用で前記データブロックを処理するようになることを特徴とする、請求項1に記載のネットワークトランザクション検証方法。
【請求項8】
メモリ、プロセッサ、及びメモリに記憶されプロセッサで動作可能なコンピュータプログラムを含むコンピュータシステムにおいて、前記プロセッサは、前記コンピュータプログラムを実行する際に、前記請求項1~のいずれか一項に記載の方法を実現することを特徴とする、コンピュータシステム。
【請求項9】
記憶媒体であって、動作時に前記請求項1~のいずれか一項に記載の方法を実行するように設定されたコンピュータプログラムが記憶されている、記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は電子商取引分野に関し、特に、マルチノードに基づくネットワークトランザクションの検証方法、及びそれに対応するコンピュータシステム並びに記憶媒体に関する。
【背景技術】
【0002】
電子商取引はインターネット技術と基礎通信設備を利用して業者とユーザの間の取引に多くの便宜を提供しているが、取引の双方は、ネットワークを通して直に取引の合意や資金の振替を行っていることがある。そのため、取引の双方は、従来の取引方法のように、相手方の身元を直接確認したり、取引期間中に貨物/サービス及び資金が合意で指定された方式で引き渡されているかどうかを確認することができない。このような場合、取引双方は、第三者取引プラットフォームを通して双方の身元を検証し、取引を保証しなければならないことが多い。
【0003】
業者やユーザが第三者取引プラットフォームを使用して取引を行う場合は、まず身元識別証明を提出しなければならない。また、業者が別途保証金を提供しなければならないこともある。第三者取引プラットフォームでは、相応のコストを費やして取引に参加する各方の偽りのない身元を検証するとともに、取引の過程で生じる可能性のあるトラブルを速やかに処理しなければならない。特に日常の大量の小額取引に対して、第三者取引プラットフォームのバックグラウンドサーバは、各取引における双方の身元を同時に大量チェックし、取引の内容を確認し、資金の安全を確保することで、該取引がしかるべきアカウントを有する取引双方の真実の意思表示であることを保証しなければならないのである。これによって、第三者プラットフォームの運営維持能力及びコストに対する要求がかなり高くなる。
【0004】
大口の商品取引、特に双方にとって初めての取引においては、現在のところ、取引双方は一般的に従来のオフライン取引方式を採用して、取引双方の公平性を保証している。
【0005】
また、関連するパブリックブロックチェーン技術(例えば、ビットコイン、イーサリアム(Ethereum)及びその他の暗号通貨)には何の検証メカニズムもなく、データの秘密保持も提供されていない。そのため、これらの非検証技術は、悪意ある行為を防止するために膨大な追加的リソースを必要とするので、取引の処理能力に影響が生じる。現在、ビットコインネットワークの取引処理能力は毎秒約3.3~7件、イーサリアムは毎秒約25件である。
【0006】
そのため、大量の取引に対処するために、処理効率が高く、データの秘密を保持できる取引方法を提供する必要がある。
【発明の概要】
【0007】
前記技術案中に存在する欠陥に対して、本開示は、関連技術案における問題を改善するように、マルチノードに基づくネットワークトランザクション検証方法、及びそれに対応するコンピュータシステム並びに記憶媒体を提供する。本出願の上記の技術案により、各取引の有効性を効率的に検証する効果を得ることができる。
上記の目的を実現するために、本開示では以下の技術案を採用している。
【0008】
まず、本開示は、複数のノードに基づくネットワークトランザクション検証方法を提供しており、ネットワークトランザクションに参加する複数のノードに対応する実際の身元を識別するステップと、前記複数のノードの中から一部のノードを選択してネットワークトランザクションノードを検証するための検証ノードとするステップと、前記複数のノード間のパブリックP2Pチャンネル伝送データ及びネットワークトランザクションを記録するための現時点のパブリックトランザクション記録リンクリストを初期化するステップと、IBFT(Istanbul Byzantine Fault Tolerant、イスタンブール・ビザンチン・フォールト・トレランス)コンセンサスアルゴリズムによって、トランザクション情報及び署名を含むデータブロックを生成し、前記現時点のパブリックトランザクション記録リンクリストに追加するステップとを含む。前記ノードは、ネットワークトランザクションに参加するクライアント端末であってもよい。前記クライアント端末には、実際の身元の真の身元情報が保存されている。該真の身元情報は、該クライアント端末がインストールされているデバイスに保存されることができる。
【0009】
本開示の上記の実施例では、前記検証ノードの数が3F+1時である場合、前記複数のノード間のパブリックP2Pチャンネル伝送データと、ネットワークトランザクションを記録するための現時点のパブリックトランザクション記録リンクリストを初期化する上記のステップは、さらに、少なくとも2F+1個の検証ノードが返信した検証結果を収集するサブステップと、収集された検証結果を統計し、かつ前記データブロックが検証ノードを通過した数がF+1以上の場合は、前記データブロックを前記現時点のパブリックトランザクション記録リンクリストの末尾に記録するサブステップとを含む。
【0010】
本開示の1つ以上の実施例では、前記データブロックは検証される過程中に書込ロックされることによって、すべてのノードにおいて読取専用で前記データブロックを処理するようになる。
【0011】
本開示の1つ以上の実施例では、前記データブロックは一定の頻度で生成されるものであり、現時点で新しいトランザクション情報がない場合は、前記データブロック内のトランザクション情報は空である。
【0012】
本開示の1つ以上の実施例では、現時点のパブリックトランザクション記録リンクリスト内のデータブロックの増加量が更新閾値よりも大きくなった場合、さらに、すべてノードの総数の2/3の検証を通過できない場合は、前記検証ノードが検証ノードではなくなるステップが実行される。
【0013】
それに類似して、本開示の1つ以上の実施例では、現時点のパブリックトランザクション記録リンクリスト中のデータブロックの増加量が更新閾値よりも大きくなった場合、さらに、新たに追加されたノードがすべてノードの総数の2/3の検証を通過した場合、前記ノードが新たな検証ノードとして選択されるステップが実行される。
【0014】
本開示の1つ以上の実施例では、上記更新閾値は30000である(即ち、30000個のデータブロックが新たに追加される度に、上記の検証を実行する)。
【0015】
本開示の1つ以上の実施例では、任意の2つ以上のノード間で、さらに、プライベートトランザクション伝送チャンネル及び現時点のパブリックトランザクション記録リンクリストに基づくプライベートトランザクションデータリンクリストを初期化するとともに、前記プライベートトランザクション伝送チャンネルを通してプライベートトランザクションデータリンクを前記2つ以上のノードに共有させるステップと、Raftコンセンサスアルゴリズムにより、前記2つ以上のノード間の、トランザクション情報及び署名を含むデータブロックを前記プライベートトランザクションデータリンクリストの末尾に追加するステップと、前記プライベートトランザクション伝送チャンネルを通して、前記プライベートトランザクションデータリンクリストを前記2つ以上のノードに増分更新するステップと、を実行することができ、前記プライベートトランザクション伝送チャンネルは前記パブリックP2Pチャンネルとは異なる。
【0016】
次に、本開示では、さらに、コンピュータシステムを提供している。前記コンピュータシステムは、メモリと、プロセッサと、メモリに記憶されプロセッサで動作可能なコンピュータプログラムを含む。前記プロセッサが前記プログラムを実行する際には、ネットワークトランザクションに参加する複数のノードに対応する実際の身元を識別するステップと、前記複数のノードの中から一部のノードを選択してネットワークトランザクションノードを検証するための検証ノードとするステップと、前記複数のノード間のパブリックP2Pチャンネル伝送データ、及びネットワークトランザクションを記録するための現時点のパブリックトランザクション記録リンクリストを初期化するステップと、IBFTコンセンサスアルゴリズムによって、トランザクション情報及び署名を含むデータブロックを生成し、前記現時点のパブリックトランザクション記録リンクリストに追加するステップが実行される。
【0017】
本開示の実施例では、前記検証ノードの数が3F+1である場合、前記複数のノード間のパブリックP2Pチャンネル伝送データ及びネットワークトランザクションを記録するための現時点のパブリックトランザクション記録リンクリストを初期化する上記のステップが、さらに、少なくとも2F+1個の検証ノードが返信した検証結果を収集するサブステップと、収集された検証結果を統計し、前記データブロックが検証ノードを通過した数がF+1以上である場合、前記データブロックを前記現時点のパブリックトランザクション記録リンクリストの末尾に記録するサブステップを含む。
【0018】
本開示の1つ以上の実施例では、前記データブロックは検証される過程中に書込ロックされることによって、すべてのノードにおいて読取専用で前記データブロックを処理するようになる。
【0019】
本開示の1つ以上の実施例では、前記データブロックは一定の頻度で生成されるものであり、現時点で新しいトランザクション情報がない場合、前記データブロック内のトランザクション情報は空である。
【0020】
本開示の1つ以上の実施例では、現時点のパブリックトランザクション記録リンクリスト内のデータブロックの増加量が更新閾値よりも大きくなった場合、さらに、すべて検証ノードの総数の2/3の検証を通過できなかった場合、前記検証ノードが検証ノードではなくなるステップが実行される。
【0021】
それに類似して、本開示の1つ以上の実施例では、現時点のパブリックトランザクション記録リンクリスト中のデータブロックの増加量が更新閾値よりも大きくなった場合、さらに、新たに追加されたノードがすべて検証ノードの総数の2/3の検証を通過した場合に、前記ノードが新たな検証ノードとして選択されるというステップが実行される。
本開示の1つ以上の実施例では、上記の更新閾値は30000である。
【0022】
本開示の1つ以上の実施例では、前記プロセッサが前記プログラムを実行する場合、任意の2つ以上のノード間で、さらに、プライベートトランザクション伝送チャンネル及び現時点のパブリックトランザクション記録リンクリストに基づくプライベートトランザクションデータリンクリストを初期化するとともに、前記プライベートトランザクション伝送チャンネルを通してプライベートトランザクションデータリンクを前記2つ以上のノードに共有させるステップと、Raftコンセンサスアルゴリズムにより、前記2つ以上のノード間の、トランザクション情報及び署名を含むデータブロックを前記プライベートトランザクションデータリンクリストの末尾に追加するステップと、前記プライベートトランザクション伝送チャンネルを通して前記プライベートトランザクションデータリンクリストを前記2つ以上のノードに増分更新するステップを実行することができ、前記プライベートトランザクション伝送チャンネルは前記パブリックP2Pチャンネルとは異なる。
【0023】
最後に、本出願は、コンピュータプログラムが記憶されている記憶媒体を開示している。前記コンピュータプログラムは、動作時に、ネットワークトランザクションに参加する複数のノードに対応する実際の身元を識別するステップと、前記複数のノードの中から一部のノードを選択してネットワークトランザクションノードを検証するための検証ノードとするステップと、前記複数のノード間のパブリックP2Pチャンネル伝送データ、及びネットワークトランザクションを記録するための現時点のパブリックトランザクション記録リンクリストを初期化するステップと、IBFTコンセンサスアルゴリズムによってトランザクション情報及び署名を含むデータブロックを生成し、前記現時点のパブリックトランザクション記録リンクリストに追加するステップを実行するように設置される。
【0024】
本開示の実施例では、前記検証ノードの数が3F+1である場合、前記複数のノード間のパブリックP2Pチャンネル伝送データ及びネットワークトランザクションを記録するための現時点のパブリックトランザクション記録リンクリストを初期化する上記のステップは、さらに、少なくとも2F+1個の検証ノードが返信した検証結果を収集するサブステップと、収集された検証結果を統計し、前記データブロックが検証ノードを通過した数がF+1以上であった場合は、前記データブロックを前記現時点のパブリックトランザクション記録リンクリストの末尾に記録するサブステップを含む。
【0025】
本開示の1つ以上の実施例では、前記データブロックは検証される過程中に書込ロックされることによって、すべてのノードにおいて読取専用で前記データブロックを処理するようになる。
【0026】
本開示の1つ以上の実施例では、前記データブロックは一定の頻度で生成されるものであり、現時点で新しいトランザクション情報がない場合は、前記データブロック内のトランザクション情報は空である。
【0027】
本開示の1つ以上の実施例では、現時点のパブリックトランザクション記録リンクリスト内のデータブロックの増加量が更新閾値よりも大きくなった場合、さらに、すべてノードの総数の2/3の検証を通過できない場合は、前記検証ノードが検証ノードではなくなるステップが実行される。
【0028】
それに類似して、本開示の1つ以上の実施例では、現時点のパブリックトランザクション記録リンクリスト中のデータブロックの増加量が更新閾値よりも大きくなった場合、さらに、新たに追加されたノードがすべてノードの総数の2/3の検証を通過した場合、前記ノードが新たな検証ノードとして選択されるステップが実行される。
【0029】
本開示の1つ以上の実施例では、上記の更新閾値は30000である。
【0030】
本開示の1つ以上の実施例では、前記コンピュータプログラムは、動作の際に、任意の2つ以上のノード間で、さらに、プライベートトランザクション伝送チャンネル、及び現時点のパブリックトランザクション記録リンクリストに基づくプライベートトランザクションデータリンクリストを初期化するとともに、前記プライベートトランザクション伝送チャンネルを通してプライベートトランザクションデータリンクを前記2つ以上のノードに共有させるステップと、Raftコンセンサスアルゴリズムにより、前記2つ以上のノード間の、トランザクション情報及び署名を含むデータブロックを前記プライベートトランザクションデータリンクリストの末尾に追加するステップと、前記プライベートトランザクション伝送チャンネルを通して前記プライベートトランザクションデータリンクリストを前記2つ以上のノードに増分更新するステップを実行することができる、前記プライベートトランザクション伝送チャンネルは前記パブリックP2Pチャンネルとは異なるように設置されている。
【0031】
本開示の有益な効果は次の通りである。ランダムに選択された複数のノードによって同一のトランザクションが検証され、トランザクション記録の数が同時に大量発生した場合、一部のノードがダウンしたり、または一部のノードが悪意のある取引参加者に支配されて取引が勝手に確認されたりした場合でも、対応するトランザクションは依然として適切に確認されることを確保している。すべての取引参加者の真の身元が識別されるので、この技術案は各取引の実際の参加者を追跡して取引の信頼性を確保することができる。パブリック及びプライベートトランザクションにおいては異なるコンセンサスアルゴリズム(IBFTとRaft)がそれぞれ使用されるので、開示されている方案は、トランザクションが分岐するという状況を回避することができる。逆に、プルーフオブワーク(Proof of Work、略称PoW)を使用するパブリックブロックチェーントランザクション方案では、フォーク(時にはハードフォーク)が発生してリソースを浪費することが多い。
【図面の簡単な説明】
【0032】
図1図1は、本開示の実施例による、複数のノードに基づくネットワークトランザクション検証方法のフローチャートである。
図2図2は、図1のネットワークトランザクション検証のための複数のノードで構成されるネットワークの概略図である。
図3図3は、データブロックと現時点のパブリックトランザクション記録リンクリストのデータ構造を示す概略図である。
図4図4は、図1において、前記複数のノード間のパブリックP2Pチャンネル伝送データ及びネットワークトランザクションを記録するための現時点のパブリックトランザクション記録リンクリストを初期化するステップのサブスキームのフローチャートである。
図5図5は、本開示の実施例による、任意の2つ以上のノード間でトランザクションを検証するフローチャートである。
図6図6は、本開示の実施例による、複数のノードに基づくネットワークトランザクション検証システムのブロック図である。
【発明を実施するための形態】
【0033】
以下では、実施例と図面を参照して、本発明の構想、具体的な構造及び奏した技術的効果について明確で完全な説明を行うことにより、本発明の目的、手段及び効果を十分に理解させるようにする。なお、説明する必要となるのは、矛盾ではない限り、本出願の実施例及び実施例中の特徴は、互いに組み合わせることができる。図面の各所で使用される同一の符号は、同じ、または類似の部分を示す。
【0034】
現在、大口商品に係わる取引において、取引双方は、取引の信頼性を確保するために、相手の身元、資質及び過去の取引記録などの情報を検証することにかなりのコストを費やさなければならないことが多い。しかし、取引対象の信頼性は、一般に取引対象の過去の取引記録や、該取引対象の取引履歴の中で他の参加者がその取引対象のために行った商業信用評価に基づいている。これらの情報はすべて、取引双方が互いに商業上の信用を評価するための参考要素となる。
【0035】
本開示の実施例では、これらの要素を利用し、それを取引の安全性を量るための指標として使用することにより、取引双方に電子ビジネスの取引の安全性チェックを提供している。本開示の応用においては、取引に参加する双方または多方の身元は、この分野で常用されている身元検証方式によって、各種の端末(ノートパソコン、デスクトップパソコン、スマートフォン、タブレットコンピュータなど)上でチェックされ、該端末にバインドされる。この時、対応する端末は、ネットワークトランザクションの検証に用いられる複数のノードの中の1つになる。具体的には、図1を参照し、図1は、本開示の実施例における、複数のノードに基づくネットワークトランザクション検証方法の概略的フローチャートであり、該方法は、ネットワークトランザクションに参加する複数のノードに対応する実際の身元を識別すること、前記複数のノードの中から一部のノードを選択してネットワークトランザクションノードを検証するための検証ノードとすること、前記複数のノード間のパブリックP2Pチャンネル伝送データ、及びネットワークトランザクションを記録するための現時点のパブリックトランザクション記録リンクリストを初期化すること、IBFTコンセンサスアルゴリズムによってトランザクション情報及び署名を含むデータブロックを生成し、前記現時点のパブリックトランザクション記録リンクリストに追加することを含む。
【0036】
IBFTコンセンサスアルゴリズムでは、選択され、かつ実際の身元確認を受けた検証ノードによって作成されたプルーフオブオーソリティ(Proof of Authority、略称PoA)を、取引における各参加者の商業的信用評価として利用する。プルーフオブオーソリティは、1組の検証ノードを用いて新しい取引を検証し、複数の検証ノードのコンセンサスを通して、新しいネットワークトランザクションにおいてそれに対応するデータブロックを生成し、トランザクション記録に追加するというものである。IBFTコンセンサスアルゴリズムによれば、各検証ノードはランダムに選択され、その後の複数回のトランザクション検証プロセスにおいて動的に変化することができる。新しいネットワークトランザクションを検証する必要がある度に、検証ノード全体の中の1つが提案ノード(the Proposer)としてランダムに選択される。該ランダムに選択された提案ノードは、新たなネットワークトランザクションに基づいて対応するデータブロックを生成し、かつ検証ノード全体に引き渡して検証を行う。これらの検証ノード及びその他のノードは、図2に示すネットワーク構造によって形成される。本発明の1つ以上の実施例によれば、各データブロックは、異なる組の検証ノードを経て検証され、コンセンサスが得られた後、データブロック上にデジタル署名として記録される。ここで、検証ノードは、取引ごとに検証を行い、データブロックを現時点のパブリックトランザクション記録リンクリストに追加できるかどうかを確定する。一般ノードは、現時点のパブリックトランザクション記録リンクリストの完全なコピーを有しており、各ノード間でトランザクション情報を含むデータブロックと、該データブロックの各ノード間における検証結果を伝達することにより、各ノードが新しく生成されたデータブロックに迅速に応答できるようにしている。データブロックが検証を通過して前記現時点のパブリックトランザクション記録リンクリストに追加され、または検証を通過できずに廃棄された後も、検証ノード全体からランダムに1つを選択し、または同一の提案ノードを引き続き使用して、前記プロセスを繰り返し、次のネットワークトランザクションを検証することができる。データブロックが検証を通過できなかった場合は、該回の検証の提案ノードが入れ替えられ、新たな提案ノードがランダムに選択される。データブロックは、図3に示すデータ構造で実現することができる。本出願のいくつかの実施例では、これらのデータブロックは、図に示すようなリンクリスト方式でリンクされて、現時点のパブリックトランザクション記録リンクリストを形成することができる。即ち、各データブロックのデータヘッドが1つ前のデータブロックのデジタル署名を含むことにより(データブロック1がリンクリストヘッドを含む)、現時点のパブリックトランザクション記録リンクリストの各データブロックをスムーズに検証することができ、それにより現時点のパブリックトランザクション記録リンクリストが悪意ある破壊に遭遇しているか否かを素早く判断することができるとともに、不適正なデータブロックを削除することにより、速やかに正常な状態にロールバックすることができるのである。当業者は、他の適切なデータ構造を選択して各データブロック及び現時点のパブリックトランザクション記録リンクリストを記録し、それによって前記現時点のパブリックトランザクション記録リンクリストが悪意ある破壊に遭遇しているか否かを簡単に検証することができ、かつ前記現時点のパブリックトランザクション記録リンクリストが悪意ある破壊に遭遇している場合は、速やかに正常な状態にロールバックすることができる。本開示では、これについてさらなる限定は行わない。同様に、トランザクションの検証方式は、その分野において常用されている検証方式(例えば、データブロック内のデジタル署名が正しいか否かを検証する)及び自己定義されたルール(例えば、各取引の金額が上限を超えているか否か、関連する取引当事者の過去の取引記録及び取引の方法が合法か否か)であってもよく、本開示ではこれについてさらなる限定は行わない。当業者であれは、実際の状況に応じて適切な検証方式を選択することができる。本出願の1つ以上の実施例では、現時点のパブリックトランザクション記録リンクリストはデータセンター内に記録することができ、検証を通過した各データブロックは、データセンターに記憶されている現時点のパブリックトランザクション記録リンクリストに追加された後、随時、任意のノード(検証ノード及び非検証の一般ノードを含む)によって検索されることができる。それに対応して、代替的に、本出願の他の実施例では、各ノードは、現時点のパブリックトランザクション記録リンクリストのコピーをローカルに記憶するとともに、データブロックが検証を通過した後、それをローカルの現時点のパブリックトランザクション記録リンクリストのコピー内に増分更新することによって、現時点のパブリックトランザクション記録リンクリストの分散記憶を実現し、該システムのロバスト性及び安全性を向上させることができる。本発明の1つ以上の実施例によれば、データブロックが1回につき1つだけ記録リンクリストに追加されることを保証するために、データブロックが複数の検証ノードのコンセンサスを得た後、該データブロックがまだ記録リンクリストに追加されていない間は、新しいデータブロックの選択を中止する。
【0037】
IBFTコンセンサスアルゴリズムの目的は、信頼できないネットワーク環境下で、その中のノードの間に信頼を確立させることにある。そのため、上記のIBFTコンセンサスアルゴリズムを用いたネットワークトランザクション検証方法では、一部の検証ノードの現時点のユーザが悪意を持って共謀し、トランザクションの検証に対して誤った判断を行い、正常な取引を最大限に破壊する場合でも対応できる。最悪のシナリオであっても、IBFTコンセンサスアルゴリズムは、依然として、現時点のパブリックトランザクション記録リンクリストに記録されている各トランザクションが、すべてネットワーク内にある大部分の 「忠誠」の 検証ノードの審査を通過し、永久記録の一部となり、各検証ノードが作成した検証結果を随時追跡し、または、さらに後続の複数のトランザクション検証過程中で検証ノードを動的に調整する根拠とされることができる。そのため、プルーフオブオーソリティの検証方式は、従来のブロックチェーン技術においてプルーフオブワークを採用する検証方式に較べて、トランザクションの安全性をよりスピーディに検証して実際の使用需要を満たすことができ、その一方で、プルーフオブオーソリティの検証方式は、プルーフオブワークの検証方式の、信頼できないネットワーク環境にも適用できるというメリットを留保している。
【0038】
特定の期間に爆発的に増加するトランザクション量にさらに対処するために、図4に示すサブフローチャートを参照すると、本出願の1つ以上の実施例では、前記検証ノードの数が3F+1である時、前記複数のノード間のパブリックP2Pチャンネル伝送データ及びネットワークトランザクションを記録するための現時点のパブリックトランザクション記録リンクリストを初期化する上記のステップは、さらに、少なくとも2F+1個の検証ノードが返信した検証結果を収集するサブステップと、収集された検証結果を統計し、前記データブロックが検証ノードを通過した数がF+1以上であれば、前記データブロックを前記現時点のパブリックトランザクション記録リンクリストの末尾に記録するサブステップを含む。ここで、Fはネットワークに許容可能なエラー/悪意のあるノードの数である。
【0039】
実際、IBFTコンセンサスアルゴリズムは、いかなる時でもネットワーク中の「忠誠」の検証ノードが同様の検証結果を出し、しかも現時点のユーザが悪意を持っている検証ノードの数は総ノード数の1/3を超えないと仮定している。そのため、2F+1個を超える検証ノードから返信された検証結果を受け取った場合、最悪の状況(即ちすべての悪意のある検証ノードが出した検証結果を受け取った場合)でも、十分な数の「忠誠」の検証ノードがその回のトランザクションについて出した正しい検証結果をすでに受け取っているので、トランザクションの安全性について誤った判断を行うことはない。さらに、各「忠誠」の検証ノードがすべて同様の検証結果を出し、従来のビザンチン将軍問題(Byzantine Generals Problem)中の「反乱」の中間ノードが伝送情報を修正するという潜在的な危険性が出現しないことを保証するために、前記データブロックは検証される過程中に書込ロックされることによって、すべてのノードにおいて読取専用で前記データブロックを処理するようになる。この時、前記データブロックは伝送の過程に、通過するノードが現時点で悪意のあるユーザによって占められていたとしても、前記データブロックが改ざんされることはない。
【0040】
本出願の1つ以上の実施例では、システムの安全性を保証するために、前記データブロックは一定の頻度で生成される。現時点で新しいトランザクション情報がない場合、前記データブロック内のトランザクション情報は空である。実際には、現時点のパブリックトランザクション記録リンクリストの長さは安定的に増加しており、かつ各検証ノードにおいて署名に使用されるプライベートキーは、現時点のパブリックトランザクション記録リンクリストの長さに応じて定期的に更新されるので、何らかの企みを持ってデータブロック内の署名を収集する悪意あるユーザは、検証ノードとともにプライベートキーを同期して更新する必要がある。これにより、システム自体の安全性が向上する。
【0041】
IBFTコンセンサスアルゴリズムが仮定している、全ノード数の1/3を占める、現時点のユーザが悪意を持っている検証ノードを速やかに発見し、削除するために、本出願の1つ以上の実施例では、現時点のパブリックトランザクション記録リンクリスト内のデータブロックの増加量が更新閾値よりも大きくなった場合は、さらに、検証ノードが互いに検証を行い、ある検証ノードが検証ノード全体の総数の2/3の検証を通過できなければ、前記検証ノードが削除され、検証ノードではなくなるというステップを実行する。それに対応して、削除された検証ノードを補充するために、本出願の1つ以上の実施例では、現時点のパブリックトランザクション記録リンクリスト内のデータブロックの増加量が更新閾値よりも大きくなった場合は、さらに、新たに追加されたノードが検証ノード全体の総数の2/3の検証を通過した場合、前記新たに追加されたノードが新しい検証ノードとして選択されるというステップを実行する。具体的には、本開示のいくつかの実施例では、前記現時点のパブリックトランザクション記録リンクリストにおいてデータブロック(トランザクション情報が空のデータブロックを含む)が30000個増える度に、上記のすべてのノードの更新を実行することができる。本出願の1つ以上の実施例では、前記の検証ノード自体に対する検証は、該検証ノードの上記の期間内における前記現時点のパブリックトランザクション記録リンクリスト内のデータブロックに対する判断の正確さに基づくこともできる。具体的には、判断の正確さが後ろから1/3の検証ノードが削除される。本発明の1つ以上の実施例では、あるノードが被検証ノードに対して検証を行わなかった場合、該被検証ノードを維持することを意味している。
【0042】
現時点のパブリックトランザクション記録リンクリストにおけるデータブロックはすべてのノードによって調べられるので、相互に信頼する取引当事者間に対して専用のプライベートトランザクション伝送チャンネルを構築して、トランザクションの安全性を検証する。具体的には、図5に示すサブフローチャートを参照すると、互いの間で高い信頼を有する任意の2つ以上のノード間では、さらに、プライベートトランザクション伝送チャンネル(例えば、前記任意の2つ以上のノード間のプライベートトランザクション伝送チャンネルのポートを指定)及び現時点のパブリックトランザクション記録リンクリストに基づくプライベートトランザクションデータリンクリスト(例えば、現時点のパブリックトランザクション記録リンクリストに基づいてプライベートトランザクションデータリンクリストのリンクヘッドを作成)を初期化するとともに、前記プライベートトランザクション伝送チャンネルを通してプライベートトランザクションデータリンクを前記2つ以上のノードに共有させるステップと、Raftコンセンサスアルゴリズムによって前記2つ以上のノード間の、トランザクション情報及び署名を含むデータブロックを前記プライベートトランザクションデータリンクリストの末尾に追加するステップと、前記プライベートトランザクション伝送チャンネルを通して、前記プライベートトランザクションデータリンクリストを前記2つ以上のノードに増分更新するステップとを実行することができ、ここで、前記プライベートトランザクション伝送チャンネルは、前記パブリックP2Pチャンネルとは異なる。前記任意の2つ以上のノード間では、前記プライベートトランザクション伝送チャンネルを介してのみデータを伝送できる。さらに、現時点のパブリックトランザクション記録リンクリストとプライベートトランザクション伝送チャンネルは互いに分離されている。それらの間には、相互操作性や交差が存在しない。したがって、プライベートトランザクション伝送チャンネルを通してトランザクションを送信することの利点には、トランザクション情報をネットワーク全体に放送しないことが少なくとも含まれている。各プライベートトランザクション伝送チャンネルは、いずれも分散したRaftネットワークであると考えることができる。
【0043】
プライベートトランザクション伝送チャンネルを運行することは、ネットワーク参加者(同じ業界のライバルである可能性さえある)が互いに完全には信頼できなくても、彼らは、プライベートトランザクションを行う他の参加者を選択し、プライベートトランザクション伝送チャンネルだけを通してデータブロックを伝送することによって、プライベートトランザクション伝送チャンネルを使用する各当事者だけが、彼らの間のトランザクションデータを見るようにすることができることを意味している。これによって、より高いトランザクションプライバシーのための選択肢が提供されている。上記の議論から、プライベートトランザクション伝送チャンネルを介してトランザクションを行う各当事者は、互いに比較的高い信頼を有しているため、これらのノード間では、現時点のパブリックトランザクション記録リンクリストとは異なる方式を採用してトランザクションの検証を完了させることがわかる。即ち、IBFTコンセンサスアルゴリズムの代わりにRaftコンセンサスアルゴリズムを使用して検証を完了させるのである。この場合、各ノードのいずれにも現時点のRaftネットワークに対するカウントダウンタイマ(Election Timeout)がある。本出願の実施例では、前記カウントダウンタイマの時間はランダムに150msから300msの間である。本出願の他の実施例では、前記時間は160ms、180ms、200ms、220ms、250ms、または280msである。Raftネットワークの運行中、各ノードは少なくとも、リーダー選挙(Leader Election)とログレプリケーション(Log Replication)という2つのアクティビティを実行する。リーダー選挙アクティビティの開始時に、Raftネットワーク内のすべてのノードがフォロワー(Follower)状態に初期化される。あるノードのカウントダウンが終了すると(Timeout)、このノードの状態が候補者(Candidate)状態となり、選挙が提起される。それは他のいくつかのノードに選挙リクエスト(Request Vote)を送信する。他のノードの少なくとも半分以上から成功を返信すれば、このノードの状態は候補者からリーダー(Leader)に変更され、かつ短時間ごとにすべての候補者状態のノードにハートビートメッセージ(Heartbeat Message)を送信して、すべてのノードの現時点の状態を保持する。候補者状態のノードは、リーダー状態のノードのハートビートメッセージを受信すると、自身のカウントダウンタイマをリセットする。クライアント端末がリーダー状態のノードにリクエストを送信すると、関連するデータがリーダー状態のノードによってローカルログに書き込まれる。その後、リーダー状態のノードは、他のフォロワー状態のノードに向けて、そのローカルログを更新するリクエストを送信する。これらのデータは、他のフォロワー状態のノードによってローカルログに書き込まれ、リーダー状態のノードに成功メッセージを返信する。リーダー状態のノードが過半数のノードから成功メッセージの返信を受け取る限り、関連するデータはリーダー状態のノード上のローカルログ内において確認状態に設定される。この時、リーダー状態のノードは、さらに、他のフォロワー状態のノードに確認メッセージを送ることで、フォロワー状態のノードにおけるローカルログ内の対応するデータの設定も、確認済み状態に変更され、それにより完全なログレプリケーションプロセスが完了する。
【0044】
同時に、これによって事務処理速度が毎秒数千件にまで向上されて、日常のトランザクション需要を満たすことができる。例えば、本発明の実施例では、毎秒少なくとも1400件のトランザクションを処理することができる。他の実施例では、少なくとも毎秒1650件のトランザクションを処理することができる。また、Raftコンセンサスアルゴリズム自体のロバスト性によっても、取引に参加している前記2つ以上のノードうち半数を超えるノードが正常に動作できれば、各当事者間のトランザクションが通常どおり検証されることができ、かつ前記プライベートトランザクションデータリンクリストが、対応するノードが復帰した後、ロールバックなどの操作によって各ノード上で一致を保持することができる。言い換えると、Raftコンセンサスアルゴリズムは信頼のネットワークに基づくものであり、対応するRaftネットワークに許容可能なエラー/悪意のあるノードの数は1/2を下回る。本発明の1つ以上の実施例では、大多数のノードが失効した場合、プライベートトランザクションが停止され、対応するプライベートトランザクションのデータブロックもプライベートトランザクションのデータブロックリンクリストに追加されない。例えば、2つのノードがプライベートトランザクションを実行し、そのうちの1つのノードが失効し、またはオフラインになった場合、トランザクションは中止される。本発明の1つ以上の実施例では、オフラインになったノードは、その少し後に再びもとのプライベートトランザクションに加わり、オフラインの間に逸したデータリンクリストを、前記の再加入したノードに更新することができる。
【0045】
本発明のスループット、安全性及びプライバシーが高いといった特長は、複数の業務組織間の事務を有効に管理または処理することができる。この技術案は、複数の商業組織間、複数の商業組織と消費者の間、及び/または複数の消費者間での事務を管理または処理するために用いることができる。本発明の実施例では、上記の技術案は、消費奨励計画の管理に適用することができる。商業組織と消費者はネットワークトランザクションの複数のノードである。消費記録、商業組織特有のボーナスポイント、汎用性ポイントなどが、データブロック内のトランザクション情報及び署名なのである。
【0046】
図6に示す複数のノードに基づくネットワークトランザクション検証システムのブロック図を参照すると、当業者は、本文中で開示されている実施例と結び付けて説明された各例のユニット及びアルゴリズムステップが、電子ハードウェア、またはコンピュータソフトウェアと電子ハードウェアとの組み合わせによって実現され得ることに気付くことができる。これらの機能が結局のところハードウェアまたはソフトウェアのどちらで実行されるかは、技術案の特定の適用及び設定の制約条件によって決まる。専門技術者は、特定の適用ごとに異なる方法を使用して、説明された機能を実現することができるが、そのような実現を本発明の範囲を超えると見なすべきではない。
【0047】
本発明が提供される実施例では、提供されている装置及び方法は、他の手段によって実現できると理解すべきである。例えば、上記のシステムの実施例は概略的なものにすぎず、例えば、前記モジュールやユニットの区分は論理機能の区分にすぎず、実際の実現時には別の区分方式があってもよい。例えば、複数のユニットまたは素子を結合してもよいし、別のシステムに統合してもよいし、或いはいくつかの特徴を無視し、または実行しなくてもよい。また、表示または議論された相互間の結合または直接結合または通信接続は、いくつかのインターフェース、装置またはユニットを介した間接結合または通信接続であってもよく、電気的、機械的またはその他の形式であってもよい。
【0048】
前記の分離部材として説明されたユニットは、物理的に分離されたものであってもなくてもよく、ユニットとして表示された部材は物理的ユニットであってもなくてもよく、1箇所にあってもよいし、複数のネットワークユニット上に分布していてもよい。実際の需要に基づいてその中の一部または全部のユニットを選択することにより、本実施例の方案の目的を実現することができる。
【0049】
また、本発明の各実施例における各機能ユニットは、1つの処理ユニット内に統合してもよいし、各ユニットが物理的に単独で存在してもよいし、2つ以上のユニットを1つのユニット内に統合してもよい。上記統合されたユニットは、ハードウェア形式を用いて実現してもよいし、ソフトウェア機能ユニットを用いて実現してもよい。
【0050】
前記統合されたユニットが、ソフトウェア機能ユニットの形式で実現され、かつ独立した製品として販売または使用される場合には、1つのコンピュータ読取可能記憶媒体内に格納することができる。このような理解に基づいて、本発明で上記の実施例を実現する方法中の全部または一部のフローは、コンピュータプログラムによって関連するハードウェアに命令して完成させることもでき、前記のコンピュータプログラムはコンピュータ読取可能記憶媒体に格納することができ、該コンピュータプログラムは、プロセッサによって実行される際に、上記の各方法の実施例のステップを実現することができる。ここで、前記コンピュータプログラムはコンピュータプログラムコードを含み、前記コンピュータプログラムコードはソースコード形式、オブジェクトコード形式、実行可能ファイルまたは何らかの中間形式などであってよい。前記コンピュータ読取可能媒体は、前記コンピュータプログラムコードを持ち運ぶことができる任意の実体または装置、記録媒体、USBフラッシュメモリ、ポータブルハードディスク、磁気ディスク、光ディスク、コンピュータメモリ、読取専用メモリ(ROM、Read-Only Memory)、ランダムアクセスメモリ(RAM、Random Access Memory)、電気搬送波信号、電信信号、及びソフトウェア分配媒体などを含むことができる。説明する必要となるのは、前記コンピュータ読取可能媒体に含まれるコンテンツは、司法管轄区域内の立法及び特許の実践の要求に基づいて適切に増減されることができ、例えば、ある司法管轄区域では、立法及び特許の実践に基づき、コンピュータ読取可能媒体は、電気搬送波信号や電信信号であることを含まない。
【0051】
上記の実施例は、本発明の技術案を説明するためのものであって、それを限定するものではない。上記の実施例を参照して本発明を詳細に説明したが、当業者は、依然として上記の各実施例に記載されている技術案を修正することができ、またはその中の技術的特徴の一部を同等に置き換えることはでき、それらの修正または置換は、対応する技術案の本質が本発明の各実施例の技術案の主旨及び範囲から逸脱されるものではなく、いずれも本発明の保護範囲内に含まれると理解すべきである。
図1
図2
図3
図4
図5
図6