【発明が解決しようとする課題】
【0006】
ビットコインなどの暗号通貨の広範なデプロイとともに、それらのサポート技術の1つであるブロックチェーンがますます普及する。ブロックチェーンは、暗号通貨取引のための公開台帳となる分散型コンセンサスプロトコルである。そのようなコンセンサスプロトコルの問題点の1つは、それらが確率論的な整合性保証だけを提供するということである。
【0007】
強力な整合性保証を提供する分散型コンセンサスシステムを構築するために、金融機関は、n個のサーバのうちのf個が任意の(「ビザンチンの」)やり方で不正な挙動又は誤作動しても、n個のサーバが単一の機械として共同で動作できるようにする従来のビザンチン障害耐性(Byzantine fault tolerant: BFT)プロトコルの研究を始めている。しかしながら、実務者たちは通常2つの理由でそのようなBFTプロトコルをデプロイすることを躊躇する。第1の理由は、例えば、http://doi.acm.org/10.1145/1294261.1294280でオンラインで閲覧可能な非特許文献B.-G.Chun, P.Maniatis, S.Shenker, and J.Kubiatowicz, “Attested append only memory: Making adversaries stick to their word,” in Proceedings of Twenty-first ACM SIGOPS Symposium on Operating Systems Principles, ser. SOSP ’07. New York, NY, USA: ACM, 2007, pp. 189-204に開示されているように、BFTプロトコルはそのネットワーク通信が各要求についてO(n
2)個ものメッセージを含む集中型であるためサーバ数の面でスケーラビリティが低いことである。第2の理由は、例えば、http://dl.acm.org/citation.cfm?id=296806.296824でオンラインで閲覧可能な非特許文献M. Castro and B. Liskov, “Practical byzantine fault tolerance,” in Proceedings of the Third Symposium on Operating Systems Design and Implementation, ser. OSDI ’99. Berkeley, CA, USA: USENIX Association, 1999, pp. 173-186に開示されているように、BFTプロトコルは多くのリソースを消費するためn≧3f + 1個のサーバが最大f個の障害に耐えることを要求されるからである。
【0008】
状態機械複製サービスのための実用的ビザンチン障害耐性(practical Byzantine fault tolerance: PBFT)と呼ばれるもう1つの従来のBFTプロトコルが、http://doi.acm.org/1/1294261.1294280でオンラインで閲覧可能な非特許文献B.-G.Chun, P.Maniatis, S.Shenker, and J.Kubiatowicz, “Attested append only memory: Making adversaries stick to their word,” in Proceedings of Twenty-first ACM SIGOPS Symposium on Operating Systems Principles, ser. SOSP ’07. New York, NY, USA: ACM, 2007, pp. 189-204に示されている。そのようなサービスは、分散型システム内の異なるサーバに渡って複製される状態機械としてモデル化される。各サーバはサービス状態を維持しサービス動作を実行する。各クライアントはサーバに動作実行要求を送り、PBFTは障害のない全てのサーバが同じ順序で同じ動作を実行するようにする。
【0009】
最近、トラステッドハードウェアが物品計算プラットフォーム上で広範に利用可能になっている。トラステッド実行環境(Trusted execution environments:TEEs)は、例えば、非特許文献J. Ekberg, K. Kostiainen, and N. Asokan, “The untapped potential of trusted execution environments on mobile devices,” IEEE Security & Privacy, vol.12, no.4, pp. 29-37, 2014に開示されているように、既にモバイルプラットフォームに普及しており、また、例えば、非特許文献F.McKeen, I.Alexandrovich, A.Berenzon, C.V.Rozas, H.Shafi, V.Shanbhogue, and U.R.Savagaonkar, “Innovative instructions and software model for isolated execution,” in HASP, 2013, pp. 10:1-10:1又はインテル“Software Guard Extensions Programming Reference,” 2013に開示されているように、より新しいTEEsがPCやサーバ上にデプロイされている。TEEはそのメモリー内のデータに対し機密性及び完全性の保護を提供し、誰もその動作に干渉できないようにする。
【0010】
トラステッドハードウェアはまた、例えば、以下の非特許文献に開示されたBFTプロトコルにおいてサーバ数及び/又は通信段階数を減らすために用いられてきた。
-M. Correia, N. F. Neves, and P. Verissimo, “How to tolerate half less one byzantine nodes in practical distributed systems,” in Reliable Distributed Systems, 2004. Proceedings of the 23rd IEEE International Symposium on, Oct 2004, pp. 174-183,
-G. S. Veronese, M. Correia, A. N. Bessani, L. C. Lung, and P. Verissimo, “Efficient byzantine fault-tolerance,” IEEE Transactions on Computers, vol. 62, no. 1, pp. 16-30, Jan 2013,
-G. S. Veronese, M. Correia, A. N. Bessani, and L. C. Lung, “Ebawa: Efficient byzantine agreement for wide-area networks,” in High-Assurance Systems Engineering (HASE), 2010 IEEE 12
th International Symposium on, Nov 2010, pp. 10-19,
-R. Kapitza, J. Behl, C. Cachin, T. Distler, S. Kuhnle, S. V. Mohammadi, W. Schroeder-Preikschat, and K. Stengel, “Cheapbft: Resource-efficient byzantine fault tolerance,” in Proceedings of the 7
th ACM European Conference on Computer Systems, ser. EuroSys ’12. New York, NY, USA: ACM, 2012, pp. 295-308,
-B.-G. Chun, P. Maniatis, S. Shenker, and J. Kubiatowicz, “Attested append-only memory: Making adversaries stick to their word,” in Proceedings of Twenty-first ACM SIGOPS Symposium on Operating Systems Principles, ser. SOSP ’07. New York, NY, USA: ACM, 2007, pp. 189-204, and
-D. Levin, J. R. Douceur, J. R. Lorch, and T. Moscibroda, “Trinc: Small trusted hardware for large distributed systems,” in Proceedings of the 6th USENIX Symposium on Networked Systems Design and Implementation, ser. NSDI’09. Berkeley, CA, USA: USENIX Association, 2009, pp. 1-14.
【0011】
例えば、MinBFTは、非特許文献G. S. Veronese, M.Correia, A. N. Bessani, L. C. Lung, and P. Verissimo, “Efficient byzantine fault-tolerance,” IEEE Transactions on Computers, vol.62, no.1, pp. 16-30, Jan 2013などに開示されているように、トラステッド単調カウンターを用いて“一意連続識別子生成器”(Unique Sequential Identifier Generator:USIG)サービスを構築しそれによって障害サーバがあいまい表現と呼ばれる矛盾した記述を生成するのを防ぐ。その結果、必要なサーバの数は3f+1から2f+1に減り、通信段階の数は3から2に減る。より詳細には、トラステッド単調カウンターを用いて各サーバに存在するローカルサービスである“一意連続識別子生成器”(USIG)を構築する。USIGは要求された各メッセージに、暗号署名Mである一意の識別子(unique identifier:UI)を一意で単調かつ連続するカウンターcとともに割り当てる。これら3つの特性は、USIGが(1)同じ識別子を2つの異なるメッセージに割り当てない(一意性)、(2)過去の識別子より低い識別子を割り当てない(単調性)、(3)過去の識別子の後続者ではない識別子を割り当てない(連続性)ことを示している。これらの特性はサーバが損なわれた場合でも保証され、サービスはトラステッド実行環境内で実行される。
【0012】
例えば、CheapBFTは、非特許文献R.Kapitza, J.Behl, C.Cachin, T.Distler, S.Kuhnle, S.V.Mohammadi, W.Schroeder-Preikschat, and K.Stengel, “Cheapbft: Resource-efficient byzantine fault tolerance,” in Proceedings of the 7
th ACM European Conference on Computer Systems, ser. EuroSys ’12. New York, NY, USA: ACM, 2012, pp. 295-308などに開示されているように、復号合意プロトコルを起動することにより性能を更に向上させる。障害がない場合、CheapBFTはf+1個のサーバだけが能動的にクライアントの要求に同意しこれを実行することを求める。その他のf個の受動的なサーバは能動的なサーバにより提供される状態更新を処理することによりそれぞれの状態を単に修正する。障害挙動の疑いがある場合、CheapBFTは移行プロトコルを起動して受動的サーバを稼働させその後MinBFTに移行する。
【0013】
ただし、MinBFTは、非特許文献T. C. Group, “Tpm main, part 1 design principles. specfication version 1.2, revision 103” 2007などに開示されているように、カウンター生成速度を制限する“トラステッドプラットフォームモジュール”(Trusted Platform Module:TPM)を用い、CheapBFTはFPGAベースのトラステッドサブシステムを用いる。また、MinBFTとCheapBFTはともに、各(能動的)サーバにマルチキャスト又は通信/メッセージ複合体O(n
2)につながるオール・ツー・オールのブロードキャストの実行を要求する。
【0014】
非特許文献E. Syta, I. Tamas, D. Visher, D. I. Wolinsky, L. Gasser, N. Gailly, and B. Ford, “Keeping authorities “honest or bust” with decentralized witness cosigning,” in 37th IEEE Symposium on Security and Privacy, 2016には、メッセージの集約を可能にするマルチシグネチャ手順が示されている。しかしながら、このマルチシグネチャ手順にはメッセージサイズを増大させ処理時間を長くするという欠点がある。もう1つの欠点は、複製が別々のメッセージに署名しなければならないことである。
【0015】
したがって、本発明の少なくとも1つの実施形態は、少なくとも通信コストを大幅に増大させずに計算コストを下げることによりデータのビザンチン障害耐性複製の性能を向上させるという課題に対処する。また、本発明の少なくとも1つの実施形態は、署名などのメッセージに対する複製の動作の数を最小化するという別の課題にも対処する。
【課題を解決するための手段】
【0016】
一実施形態において、本発明は複数n個のサーバに対してデータのビザンチン障害耐性複製を行う方法を提供する。前記複数n個のサーバは1つのプライマリノード(PN)及びn-1個のバックアップノード(BN)を含み、f個のサーバは任意に故障する場合があり、n個の全てのサーバはトラステッド計算実体(TCE)を有し、前記方法は前記PNのTCEにより実行される前処理手順を含み、前記前処理手順は
実行される動作を要求する要求メッセージに割り当てられる一意で単調かつ連続したカウンター(UMSC)についてランダムな秘密値を計算し、
前記ランダムな秘密値及び前記UMSCについてコミットメントを計算し、
前記ランダムな秘密値を複数のシェアに分割し、
各シェアのサーバ別の認証付き暗号を、復号が指定された前記各サーバによってのみ実行できるように計算し、後の手順中前記要求メッセージを検証するために前記サーバ別の複数のシェアが用いられ、
計算された前記サーバ別の複数のシェア及び計算された前記コミットメントを前記各サーバに提供する
各ステップを含む。
【0017】
更なる実施形態において、本発明は複数n個のサーバに対してデータのビザンチン障害耐性複製を行うシステムを提供する。前記複数n個のサーバは1つのプライマリノード(PN)及びn-1個のバックアップノード(BN)を含み、f個のサーバは任意に故障する場合があり、n個の全てのサーバはトラステッド計算実体(TCE)を有し、前記PNのTCEは
実行される動作を要求する要求メッセージに割り当てられる一意で単調かつ連続したカウンター(UMSC)についてランダムな秘密値を計算し、
前記ランダムな秘密値及び前記UMSCについてコミットメントを計算し、
前記ランダムな秘密値を複数のシェアに分割し、
各シェアのサーバ別の認証付き暗号を、復号が指定された前記各サーバによってのみ実行できるように計算し、後の手順中前記要求メッセージを検証するために前記サーバ別の各シェアが用いられ、
計算された前記サーバ別の各シェア及び計算された前記コミットメントを前記各サーバに提供する
各ステップを実行する。
【0018】
更なる実施形態において、本発明はコンピュータに複数n個のサーバに対してデータのビザンチン障害耐性複製を行う方法を実行させるプログラムを記憶する非一時的コンピュータ可読媒体を提供する。前記複数n個のサーバは1つのプライマリノード(PN)及びn-1個のバックアップノード(BN)を含み、f個のサーバは任意に故障する場合があり、n個の全てのサーバはトラステッド計算実体(TCE)を有し、前記方法は前記PNのTCEにより実行される前処理手順を含み、前記前処理手順は
実行される動作を要求する要求メッセージに割り当てられる一意で単調かつ連続したカウンター(UMSC)についてランダムな秘密値を計算し、
前記ランダムな秘密値及び前記UMSCについてコミットメントを計算し、
前記ランダムな秘密値を複数のシェアに分割し、
各シェアのサーバ別の認証付き暗号を、復号が指定された前記各サーバによってのみ実行できるように計算し、後の手順中前記要求メッセージを検証するために前記サーバ別の各シェアが用いられ、
計算された前記サーバ別の各シェア及び前記計算されたコミットメントを前記各サーバに提供する
各ステップを含む。
【0019】
本発明の少なくとも1つの実施形態は、秘密シェアリングを用いてカウンターベースのプロトコルの計算コストを削減して公開鍵操作を最小化する又は完全に取り除きそれにより計算コストを大幅に削減するという利点を有する場合がある。
【0020】
本発明の少なくとも1つの実施形態は、複製がメッセージの広範なブロードキャスト、例えば、オール・ツー・オールのブロードキャストを実行しなくてもいいようにメッセージを集約するという利点を有する場合がある。
【0021】
本発明の少なくとも1つの実施形態は、例えば、クライアントが、1つの要求についてf+1個のメッセージではなく1つのメッセージだけを受信するという利点を有する場合がある。
【0022】
本発明の少なくとも1つの実施形態は、全ての複製が同じカウンター値を維持するという利点を有する場合がある。
【表1】
【0023】
「コンピュータ可読媒体」とは、計算装置又はコンピュータとともに使用可能で情報を保存可能な任意の種類の媒体を指す場合がある。前記情報はコンピュータのメモリーに読み込み可能な任意の種類のデータであってよい。例えば、前記情報には前記コンピュータを用いて実行するプログラムコードが含まれてもよい。コンピュータ可読媒体の例として、テープ、CD-ROM、DVD-ROM、DVD-RAM、DVD-RW、ブルーレイ、DAT、ミニディスク、ソリッドステートディスク(SSD)、フロッピーディスク、SDカード、CFカード、メモリースティック、USBスティック、EPROM、EEPROMなどが挙げられる。
【0024】
「クライアント」、「サーバ」、及び「プライマリノード」はそれぞれ、特に請求項において、好ましくは明細書において、パーソナルコンピュータ、タブレット、携帯電話、サーバなどの計算を実行する実体、装置、又は計算装置を指し、1つ又は複数のコアを有する1つ又は複数のプロセッサを含み、本発明の1つ又は複数の実施形態の対応するステップを実行するように構成されたアプリケーションを記憶するメモリーに接続可能であってもよい。任意のアプリケーションが、プロセッサ(群)がその上で動作するメモリーにソフトウェアベース及び/又はハードウェアベースでインストールされてもよい。各実体は、計算対象の対応するステップが最適なやり方で実行されるように構成されてもよい。例えば、異なるステップが単一のプロセッサの異なるコア上で並立に実行されてもよい。また、複数の同一又は異なる実体が単一の計算実体を構成してもよい。実体又は実体群はまた、単一の又は複数の物理計算リソース上で動作する仮想実体としてインスタンス化されてもよい。従って、異なる実体が前記物理計算リソース上で実行されてもよい。
【0025】
「トラステッド計算実体」、すなわち、「TCE」は、特に請求項において、好ましくは明細書において、1つの実体又はサーバ上で動作する他の全てのハードウェア及びソフトウェアからセキュリティクリティカルなロジックを分離・保護する実体、装置、又は計算装置を指す。トラステッド計算実体は該トラステッド計算実体上のトラステッド実行環境内で動作するトラステッドアプリケーションに対して機密性及び完全性の保護を提供して前記トラステッド実行環境の外で動作するいずれのアプリケーションも前記トラステッドアプリケーションの動作に干渉できないようにしている。トラステッド計算実体により提供される又はトラステッド計算実体が対象にするトラステッド実行環境は何らかの形のリモート認証を提供してリモートユーザがトラステッドアプリケーションの現在の構成と挙動を確認できるようにしてもよい。トラステッド実行環境は中央処理装置などの形態で提供されてもよい。
【0026】
「マルチキャスティング」は、特に請求項において、好ましくは明細書において、情報が宛先装置群に同時に向けられるグループ通信を指す。マルチキャストは一対多通信又は多対多通信としても知られる。
【0027】
メッセージについての「一意で単調かつ連続するカウンター」とは、特に請求項において、好ましくは明細書において、2つの異なる情報について同じではなく(一意性)、過去のものより低く(単調性)、過去のものの後続者ではない(連続性)カウンターが割り当てられる情報、データ、又はメッセージを指す。
【0028】
「スタートポロジー」、「ツリートポロジー」、及び「ツリー」はそれぞれの最も広い意味において理解されるべきであり、特に請求項において、好ましくは明細書において、物理的に及び/又は仮想的にスター又はツリーとしてまとめられることがあるサーバ間の接続トポロジーを指す。スタートポロジーにおいて、スターの中心を構成している実体又は装置はこのトポロジー内の他の実体群又は装置群のそれぞれに直接物理的又は仮想的に接続されている。ツリートポロジーにおいて、ネットワークを実行している実体群又は装置群の1つは1つ又は複数の子ノードに接続されているツリーのルートであり、前記子ノード、すなわち、現在の親ノードは他の1つ又は複数の子ノードなどに再度接続されてもよい。
【0029】
「スパニングツリー」はその最も広い意味において理解されるべきであり、特に請求項において、好ましくは明細書において、IEEE 802.1Dに準拠するスパニングツリープロトコルSTPを指す。
【0030】
「署名」又は「シェア」に関して「集約された」とは、特に請求項において、好ましくは明細書において、複数の署名部分、複数のシェア、又は秘密の複数の部分を用いて生成された署名、シェア、又は秘密を指し、前記署名部分又は秘密部分は異なる実体群又は装置群により生成され単一の集約署名又は単一の集約秘密を計算する前に集められる。
【0031】
「ビュー」とは、その最も広い意味において理解されるべきであり、特に請求項において、好ましくは明細書において、あるネットワーク構成を指す。例えば、あるビューにおいて、1つのサーバはプライマリサーバPNであり、その他のサーバはバックアップサーバである。例えば、PNはクライアント群Cにより要求された動作群の実行の順序を取得する。例えば、PNは次の利用可能シーケンス番号をある要求に割り当てこの割り当てをバックアップサーバ群に送信することによりこれを行う。しかしPNに障害が発生する場合がある。すなわち、PNが同一のシーケンス番号を異なる要求に割り当てる場合がある、又はシーケンス番号の割り当てを中止する場合がある、又はシーケンス番号の間に空白を作る場合がある。そのため、各バックアップサーバはPNにより割り当てられたシーケンス番号をチェックしタイムアウトを用いてPNによる割り当ての中止を検出してもよい。各バックアップサーバは、現在のPNが故障したと思われるときにビュー変更を引き起こして新しいPNを選択してもよい。
【0032】
「サーバ別のシェア」又は「BN別のシェア」はそれぞれ、特に請求項において、好ましくは明細書において、その最も広い意味において理解されるべきであり、そのシェアが対応するサーバ又はノードによってのみ復号可能であるように認証付き暗号を介して計算されたシェアを指す。
【0033】
「コミットメント」とは、その最も広い意味において理解されるべきであり、特に請求項において、好ましくは明細書において、ある人が選ばれた値やステートメントを他人に秘匿しながらかつコミットされた値やステートメントを後に明らかにする能力を持ってその値やステートメントにコミットできるようにするスキームを指す。
【0034】
「妥当性を確認する」及び「検証する」とはそれぞれの最も広い意味において理解されるべきであり、特に請求項において、好ましくは明細書において、見直し、調査、(再)チェック、コントロール、確証、(再)保証、証明、肯定、認証などを実行する手順を指す。
【0035】
任意の種類のデータ、情報、メッセージ、シェアなどに関する「完全性」とは、その最も広い意味において理解されるべきであり、特に請求項において、好ましくは明細書において、前記データ、情報、メッセージ、シェアなどの完全さ、無損傷性、侵害されていないこと、不可侵性などを指す。
【0036】
任意の種類のデータ、情報、メッセージ、シェアなどに関する「集める」とは、その最も広い意味において理解されるべきであり、特に請求項において、好ましくは明細書において、前記データ、情報、メッセージ、シェアなどをフェッチ、受信、取得、入手、要求、及び受信することを指す。
【0037】
任意の種類のデータ、情報、メッセージ、シェアなどに関する「再構築する」とは、その最も広い意味において理解されるべきであり、特に請求項において、好ましくは明細書において、前記データ、情報、メッセージ、シェアなどの再建、再配列、再構成、再構築、再設計、再計算、再組み立てなどを行うことを指す。
【0038】
「サーバ」又は「BN」に関する「能動的」とは、その最も広い意味において理解されるべきであり、特に請求項において、好ましくは明細書において、クライアント要求などの要求を実行するサーバ群を指し、一方、「サーバ」又は「BN」に関する「受動的」とは、前記受動的サーバが、例えば、能動的なサーバにより提供される状態更新を処理することによりその状態を単に修正することを意味する。
【0039】
「距離パラメータ」とは、その最も広い意味において理解されるべきであり、特に請求項において、好ましくは明細書において、例えば、ネットワークトポロジー、ネットワーク管理者、及び/又はスループット、ラウンドトリップ時間、ラウンドトリップ遅延などのネットワークパラメータにより定義される2つの計算実体の間のある種の物理又は仮想空間、範囲、離隔、距離などを示すパラメータを指す。
【0040】
「履歴情報」とはその最も広い意味において理解されるべきであり、特に請求項において、好ましくは明細書において、準備された要求群のための準備メッセージ群、コミットされた要求群のためのコミットメッセージ群、実行された要求群のための応答メッセージ群、及び前処理パスを受信しない要求に対する要求群を含むことがあるがそれらに限定されない情報を指す。換言すれば、「履歴情報」には全ての準備された要求群、コミットされた要求群、及び実行された要求群が含まれる。
【0041】
「マッチング」とは、その最も広い意味において理解されるべきであり、特に請求項において、好ましくは明細書において、正当性、類似性、品質などのための比較、複製、調整、バランス、及びチェックを指す。
【0042】
「接続」又は「接続している」に関する「直接」とは、その最も広い意味において理解されるべきであり、特に請求項において、好ましくは明細書において、迂回路、回り道、ループ路を介さない任意の種類の物理又は仮想接続を指す。
【0043】
更なる特徴、利点並びに更なる実施形態が以下の記載の中で説明される、又は明らかになる場合がある。
【0044】
前記PNはある動作を要求するための要求メッセージを受信してもよく、また少なくとも前記要求メッセージの内容及び一意の識別子(unique identifier: UI)を含む準備メッセージを計算してもよい。前記UIは前記PNのTCEにより計算され、前記要求メッセージの暗号署名及び前記UMSCに基づくものである。前記PNは前記BNに前記準備メッセージを提供してもよい。これにより、前記準備メッセージ内で前記UMSCを前記要求メッセージに割り当てることができる。
【0045】
ii.前記BNが前記BN別のシェアを復号し復号された前記シェアを前記PNに提供し、
iii.前記PNがいくつかのシェアを集め、
iv.前記PNが集められた前記シェア及び/又は前記PNのシェアに基づいて前記秘密値を再構築し、
v.前記PNが再構築された前記秘密を用いて前記前処理手順中に計算された前記コミットメントを開けることにより再構築された前記秘密を検証し、前記前記PNは再構築された前記秘密が検証されたときに前記要求を実行してもよく、
vi.開けられた前記コミットメントを前記BNに伝達し、開けられた前記コミットメントはブロードキャストティングにより伝達されてもよく、
vii.前記BNのそれぞれが受信され伝達されかつ開けられた前記コミットメントを前記前処理段階中に受信した前記コミットメントと比較する
各ステップのうちの少なくとも1つを実行してもよい。これにより、効率的なやり方で前記要求メッセージを検証することができる。
【0046】
ステップii)の前に前記BNのそれぞれが各BNのTCEのそれぞれにより前記UIをチェックすることにより前記準備メッセージの妥当性を確認するステップi)を実行してもよく、ステップvii)の後前記BNが前記比較の肯定的な結果に基づいて前記要求メッセージの要求を実行するステップviii)を実行してもよい。これにより、前記準備メッセージの妥当性を確認し前記要求を実行することができる。
【0047】
集められたシェアの数がn個のサーバの数より少ない場合、集められた各シェアの完全性は前記秘密値を再構築する前に前記PNによりチェックされてもよく、前記シェアの数はサーバの数と等しくてもよい。これにより、破損したシェアを持つ秘密が完全に再構築されるのが避けられるので計算リソースの無駄が回避される。
【0048】
認証付き暗号については、各BNの公開鍵を用いてもよく、PNと前記BNのそれぞれとのペアで対称的な暗号を用いてもよい。対称的な鍵暗号を用いることにより、例えば、公開鍵操作を省くことができる。
【0049】
前記PNは再構築された前記秘密が検証されたときに前記要求を実行してもよい。これにより、検証された秘密が利用可能になったとき直ちに前記要求を実行することができる。
【0050】
能動的BNは前記PNにより検出されてもよく、前記方法の少なくとも1つのステップを実行するために、決定された前記能動的BNだけを用いてもよい。これにより、中心実体が能動的BNを決定し決定された能動的BNだけを用いて前記方法の各ステップを実行することができる。これにより、通信コストが更に削減され、能動的であるBNの検出が単一の実体により実行される。
【0051】
前記能動的BNは前記PNによりノード群を含み前記PNで根を張るスパニングツリーの形にまとめられてもよく、通信はシェアを集約する能動的BNのスパニングツリーに沿って前記ツリー内の中間ノード群により実行される。これによりスケーラビリティが向上する。
【0052】
前記PNは全てのサーバの中から選択されてもよく、前記PNに障害があると判断された場合、能動的BNの中から新しいPNが選択される。これにより障害のあるPNが現在PNとして動作する全サーバのうちの新しいBNと交換されるので効率性が高まる。
【0053】
前記要求メッセージを送信した上である一定時間が経過した後に応答メッセージを受信しないことにより、前記クライアントがPNに障害があると判断してもよい。これにより、容易なやり方で障害のあるPNを特定することができる。
【0054】
前記新しいPNは
a)BNが、PNの応答を待つための前記一定時間の経過後、全ての他のBNにビュー変更メッセージを送信することによりビュー変更を要求し、
b)距離パラメータに従って新しいPNを能動的であり前記古いPNに最も近いBNとして選び、
c)前記新しいPNが履歴メッセージを計算し、該履歴メッセージは最新のローカルカウンター値の情報並びに前記新しいPNと前記古いPNとの間及び前記新しいPNと他のBNとの間で行われる通信についての要求履歴情報を含み、
d)前記新しいPNが前記履歴メッセージを全ての他のBNに送信し、
e)前記BNのそれぞれが受信された前記要求履歴情報を検証した後ビュー変更メッセージを計算し、
f)受信された履歴メッセージの前記要求履歴情報を検証した後、計算された前記ビュー変更メッセージを全ての他のBNに提供し、
g)BNが、検証された要求履歴を含むf個の一致するビュー変更メッセージ群を受信次第、検証された前記履歴を処理し、
h)前記新しいPNが、f個の一致するビュー変更メッセージ群を受信次第、新しいPNが確立されていることを示すビュー変更メッセージ群を前記f個のBNに提供する
各ステップにより選択されてもよい。
【0055】
これにより、迅速かつ効率的なやり方でビュー変更、すなわち、障害のあるPNから新しいPNへの切り替えを行うことができる。
【0056】
障害のあるBNは
a)BNが、メッセージの送信及び受信の少なくともいずれかが発生次第、直接接続された各BNと関連するタイマーを起動し、
b)直接接続されたBNから、直接接続された該BNのタイマーの期限前に有効なシェアを受信しなかった場合、直接接続された前記BNの故障の可能性を示す疑いメッセージを少なくとも前記PNに提供し、
c)前記PNが、少なくとも1つの疑いメッセージを受信次第、前記障害の可能性があるBNを特定し特定された前記障害のあるBNの代替BNを選択し、
d)特定された前記障害のあるBNがその他のBNに無視されるように前記代替BNについての情報を前記他のBNに提供する
各ステップにより特定されてもよい。
【0057】
これにより、迅速かつ効率的なやり方で障害のあるBNを検出することができる。
【0058】
直接接続された前記BNは前記BNの子ノード群であってもよく、前記疑いメッセージは前記BNの親ノードにも提供されてよく、疑いメッセージは前記ツリーに沿って前記PNに提供されてもよい。このツリーに沿った受け渡しにより、タイマーを休止させ通信の削減を意味する疑いメッセージ数の削減を実現できる。
【0059】
PNである特定のサーバ及びBNである他のサーバ群を決定する現在のビューを示すためにビュー番号をメッセージ群に含めてもよい。これにより、最小のデータを用いた容易なやり方でPN及びBNの現在の構成を決定することができる。
【0060】
再構築された前記秘密の有効な検証に基づいて前記PNは前記要求を実行してもよく、実行された前記要求の結果は増加されたカウンター値とともに前記BNに伝達されてもよい。
【0061】
本発明の内容を有利なやり方で設計し発展させる方法がいくつもある。このため、独立請求項に従属する請求項、及び以下の図示された例としての本発明の更なる実施形態の説明を参照されたい。図に補助された本発明の更なる実施形態の説明と関連して、本発明の内容の更なる実施形態及び更なる進歩が説明されよう。