【コンセンサスアルゴリズム】
コンセンサスアルゴリズム とは?
最終更新:
💡 複数のコンピューターで、採用する記録をそろえる
分散システムの複数のノードが、採用する値や処理の順序などをそろえるための手順。ノードの停止や通信の遅れなどを想定し、決定が食い違わないようにする。
📌 このページのポイント
コンセンサスって、みんなで多数決すること?
複数のノードが採用する値や処理の順序をそろえることだよ。単に票を数えるだけでなく、通信が遅れたり一部が止まったりしても、矛盾する決定をしないための規則を組み合わせるんだ。
全員が返事をしないと進めないの?
方式によるよ。たとえばRaftは過半数のノードが動いて通信できることを進行の条件とする。3台なら2台が必要で、全員の応答を待つ必要はない。ただしRaftは基本的に停止などの故障を想定し、ノードが悪意を持って偽の情報を送る場合まで守る方式ではないんだ。
採用された記録なら、現実にも正しい?
合意したことと、入力された内容が現実の事実に合うことは別だよ。合意の手順は、何を採用するかをそろえる役割。取引が業務ルールに合うか、外から入ったデータが信頼できるかも、それぞれ確認する必要があるんだ。
ブロックチェーン以外にも使う?
まとめ:ざっくりこれだけ覚えればOK!
「コンセンサスアルゴリズム」って出てきたら「複数のコンピューターが、採用する記録をそろえる手順」と思えばだいたいOK!
📖 おまけ:英語の意味
「Consensus Algorithm」 = 合意形成のための手順
💬 Consensusは「合意」、Algorithmは問題を解くための手順。停止中のノードまで、その場で全員の応答を集めるという意味ではないよ。