関ヶ原の合意不能―のろし通信網で西軍三万は同期できたのか
裏切りではない、タイムアウトである。西軍三万の合意はなぜ間に合わなかったのか
客員研究員 沓掛 守安
※本稿は『AI空想分析論文電子図書館』所蔵のフィクションです。実在の人物・団体・史実解釈とは無関係です。「通信網で合意できたか」という分散システム論の適用は空想的な見立てであり、土台に用いた史実(布陣・陣間距離・合戦のおおよその時系列・戦後処理)は巻末「主要参考文献」に基づいています(⚠️「問い鉄砲」「宰相殿の空弁当」は同時代史料に見えない後世の逸話として扱い、史実とは断定していません)。数式は KaTeX 記法で表記しています。
序論 関ヶ原を「一斉突撃」という分散トランザクションとして見る
0.1 動かなかった大軍
慶長五年九月十五日、西暦一六〇〇年十月二十一日の関ヶ原には、数だけを見れば容易には崩れそうにない西軍がいた。石田三成(以下、三成)は笹尾山、小西行長は北天満山、宇喜多秀家(以下、宇喜多)は天満山、大谷吉継(以下、大谷)は山中村・藤川台付近に布陣した。さらに小早川秀秋(以下、小早川)は松尾山、毛利秀元(以下、秀元)と吉川広家(以下、広家)を含む毛利勢は南宮山にいた。徳川家康(以下、家康)の東軍は、東から盆地へ進入している。西軍は西、南、北の三方から盆地を囲んでいたのである。
にもかかわらず、午前八時頃の開戦から正午頃まで、西軍のすべてが一個の機械のように動く瞬間は来なかった。小早川は沈黙し、南宮山の毛利勢も動かない。正午頃、小早川が大谷隊を攻撃すると均衡は崩れ、午後二時頃には大勢が決したとされる。
通説は、この停止を「裏切り」の一語で処理する。一人の若い武将へ複雑な障害を帰属させれば、物語は明快になり、根本原因分析も省略できる。
しかし問題は残る。小早川一隊が動かなかっただけで、なぜ数万の作戦全体が停止したのか。なぜ三成、宇喜多、大谷、秀元らは、それぞれの位置から同じ時刻に同じ決定へ到達できなかったのか。裏切りという人格評価は、小早川の行動を説明したように見えて、西軍というシステムの挙動を説明していない。
0.2 軍議は同期しても、戦場は同期しない
本稿が扱うのは、「通信網で合意できたか」という問いである。これは分散システム論を戦国史へ適用する空想的な見立てであり、当時の武将が合意アルゴリズムを設計していたと主張するものではない。ただし、空想を支える地面まで歪める必要はない。狼煙、法螺貝、陣太鼓、旗指物、伝令という通信手段は実在した。各陣の間には数キロメートルの距離があり、合戦は半日で決着し、毛利家は戦後に大幅な減封を受けた。この土台は動かさない。
軍議の席では、人間は同じ空間にいる。顔が見え、声が届き、異論があればその場で問い返せる。上位レイヤの意思決定は、そこでいったん完成する。「頃合いを見て全軍で一斉に攻めかかる」という命令も、日本語としては正しい。問題は、その命令を本番環境へデプロイする下位レイヤである。山上の陣と盆地内の陣は離れ、煙は霧に消え、太鼓は喧騒に埋まり、伝令は人と馬の速度を超えられない。軍議で共有した「頃合い」は、戦場では各ノードが別々に観測するローカル時刻へ分解される。
一斉突撃とは、複数の部隊が同一の値「いま攻める」を採用し、ほぼ同時にコミットする分散トランザクションである。送信、受信、理解、実行は別の状態だが、戦国の通信網には既読表示も再送保証も、全ノードを律する正確な時計もなかった。
結局のところ、帯域(バンド幅)が全てを決める。
以下、通信性能、陣間距離、合意条件、小早川の沈黙を順に調べ、家康の攻勢が待機状態をどう終わらせたかを検討する。勝敗を決めたのは、胸中の値が期限内に他者へ届いたかどうかである。
第1章 戦国通信網のスペック評価:帯域と遅延の性能表
1.1 五つの媒体と性能表
戦国の軍勢は複数の媒体を用途別に組み合わせていた。問題は存在の有無ではなく性能である。「狼煙を上げれば全軍へ命令できたはずだ」では、通信工学を光景へ還元してしまう。
主要な媒体を、情報量、到達距離、遅延という三軸で整理すると次のようになる。数値は史料の性格上、概数であり、天候、地形、戦場騒音によって大きく変動する。
| 手段 | 1回の情報量 | 到達距離の目安 | 遅延の目安 |
|---|---|---|---|
| 狼煙 | 点火・不点火を基本とする1ビット級 | 昼は数kmから十数km、夜は数十kmの場合もある | 点火に数分から10分、中継が増えると数時間から半日 |
| 法螺貝・陣太鼓・鉦 | 進退・集合など数ビット | 数百mから1km程度 | 音の到達は速いが、全兵への伝播には差が出る |
| 旗指物・馬印・軍旗 | 部隊識別と簡単な状態指示 | 数百mから数km | 視認できればほぼ即時 |
| 伝令 | 詳細な口頭命令と質疑が可能 | 人馬が到達できる範囲 | 直線3kmでも片道10分から20分程度 |
狼煙は速いが、語彙が少ない。複数本や点火間隔で符牒を増やせても、関ヶ原の全陣営が精密なコードブックを共有したと示す史料は乏しい。「攻めよ」は送れても、時刻、条件、対象を含む一斉突撃命令は、1ビットの警報線へ仕様書を流すに等しい。
法螺貝や陣太鼓は低遅延だが、届く範囲が狭い。旗はさらに視界へ依存する。霧、煙、土埃、地形の陰は、そのままパケットロスになる。伝令だけが複雑な内容を運べるが、今度は媒体そのものが移動しなければならない。高帯域と低遅延を同時に満たす手段がないのである。
1.2 情報伝達レートのフェルミ推定
一回の送信で運べる情報量を ビット、発信から受信までの遅延を 分とし、情報伝達レートを と置く。
この は一分あたりに実用上届けられる情報量であり、単位は bit/分である。狼煙を1ビット、点火と視認に5分かかると仮定すれば、
となる。一方、伝令が運ぶ短い軍令を便宜上75字、1字を8ビット相当として ビット、3kmの移動を15分と見積もれば、
である。文字コードの存在を主張する計算ではなく、媒体間の桁を比べるフェルミ推定である。伝令は狼煙の約200倍になりうるが、無事に到着し、文言を正しく再生し、質問も返されない場合の値にすぎない。
狼煙を中継すれば距離は稼げるが、中継点ごとに点火、視認、判断、再発信が入る。中継点数を 、一地点の処理遅延を 分とすれば、総遅延は概ね となる。仮に 分、 地点なら70分である。高速に見える光も、その制御面を人間が担うと時速の世界へ戻される。
1.3 一方向性という欠陥
帯域の不足以上に重いのが、確認応答の弱さである。狼煙、太鼓、旗はいずれも、受信側が理解したかを送信側へ自動では返さない。通信プロトコルとしては一方向に近い。「送った」というローカルログは残せても、「届いた」というエンドツーエンドの証明にはならない。
伝令なら応答を持ち帰れるが、遅延は往復になる。命令を精密にするほど伝令と確認が増え、確認を増やすほど戦況が先へ進む。品質を上げる操作が納期を壊す構造である。
上位レイヤでは、軍議が整然と仕様を決める。下位レイヤでは、狼煙番、鼓手、旗持、使番、馬が電子の代役を務める。一人が見落とし、一頭がぬかるみに脚を取られれば、上位の完璧な命令は存在しなかったことになる。結局のところ、帯域(バンド幅)が全てを決める。関ヶ原の通信網は貧しかったのではない。短い命令を速く送る回線と、長い命令を遅く送る回線しか持たなかったのである。
第2章 関ヶ原のネットワーク・トポロジー:陣間距離という遅延
2.1 盆地を囲むノード
西軍は盆地を包囲していたが、ネットワーク図では主要ノードが山上と盆地内へ分散し、リンク長もそろっていない。
笹尾山の三成を基準にすれば、松尾山の小早川まで直線で約2.5kmから3km、南宮山の秀元・広家まで約3.5kmから4km、天満山の宇喜多まで約1.5kmと見積もられる。家康の初期陣地である桃配山から笹尾山までも約2kmである。実際の伝令は直線上を飛べない。谷、湿地、部隊、敵兵、柵を避けるため、移動距離はこれより長くなる。
概念図にすれば、トポロジーは次のようになる。
北 笹尾山(三成) <-> 天満山(宇喜多)
| |
| 山中村・藤川台(大谷)
|
南宮山(秀元・広家) <-> 松尾山(小早川)
|
関ヶ原盆地
|
桃配山(家康)
各ノードは全軍を同じ品質で見通せず、連絡経路も地形と戦況で変わる。三成は中央制御を志向しても全リンクを一望できない。物理的には分散系である。
2.2 距離を遅延へ変換する
伝令の戦場実効速度を、起伏と混戦を考慮して時速12km、すなわち毎分200mと仮定する。陣間距離を m、速度を m/分、片道遅延を 分とすれば、
である。笹尾山と南宮山の距離を控えめに3.5km、すなわち3500mと置くと、
となる。要請を届け、承諾を持ち帰るだけで約35分である。同じ計算を他のリンクへ適用すると、笹尾山と松尾山を3kmとした場合は片道15分、往復30分、笹尾山と天満山の1.5kmは片道7.5分、往復15分となる。いずれも直線距離を使った下限寄りの推定である。
重要なのは遅さだけでなく、遅延がそろわないことである。同時に使者を出しても、宇喜多の返答は15分後、小早川は30分後、南宮山は35分後以降になる。全員が即答してもこのずれが生じる。
各ノード の往復遅延を としたとき、確認がそろうまでの待ち時間は最速リンクではなく、
に支配される。宇喜多の返答が早くても、南宮山の返答を必要とする作戦なら最短35分を待つ。小早川の返答が来なければ、最大値そのものが確定しない。性能は平均値ではなく、最も遅い依存先によって決まる。
2.3 時刻の共有がない
現代の分散処理で「正午に実行」と書けるのは、各機器の時計を同期できるからである。太陽、鐘、経験で読む戦場の時刻にはずれがあり、「宇喜多が敵を押し返した頃合い」のような条件は観測地点によって値が違う。
同じ景色を見ていないノードへ「頃合い」を配ることは、時刻を配るより難しい。三成に見えた好機が、松尾山では霧と距離の向こうにある。大谷にとっての緊急事態が、南宮山ではまだ一つの噂でしかない。西軍の陣は敵を包んでいたが、同時に自軍の視界も分割していたのである。
包囲は戦術上の強みである。しかし合意系では、ノード間距離を増やし、リンク品質を不均一にし、観測時刻をばらばらにする。西軍は地形的には三方から東軍を囲み、通信的には三方へ自らを分断していた。
第3章 「一斉突撃」という分散合意:合意の三条件を軍令に翻訳
3.1 命令ではなく合意である
「全軍で一斉に攻める」という文は、主語が単数なら簡単である。一人が刀を抜き、一人が走れば完了する。主語が複数の陣になると、これは命令配送ではなく合意問題へ変わる。各陣が同じ値を採用し、他陣も同じ値を採用したと信じ、期限内に行動を開始しなければならない。
ここで決定値を と置く。三成、宇喜多、大谷、小早川、秀元らのノードが、それぞれ最終値 を出力する。西軍が求めたのは、単に一通の軍令が配達されることではない。主要ノードの が攻撃で一致し、その決定が戦況に対して有効な時間内に完了することである。
分散合意には三つの条件がある。第一は合意性であり、健全なノードは皆同じ値を決定する。軍令に直せば、一部が攻撃、一部が待機という状態を避けることである。第二は妥当性であり、決定値はいずれかの初期入力に基づく。誰も提案していない攻撃方向へ、伝言ゲームだけで全軍が走り出してはならない。第三は停止性であり、健全なノードは最終的に決定へ到達する。「確認中」のまま合戦が終わることを許さない。
全員が待ち続ければ食い違いは避けられるが、停止性を失う。各隊が即断すれば停止性は満たせても、合意性を壊しやすい。軍令の正しさとは、この三条件を同時に満たす運用手順のことである。
3.2 要請、承諾、再確認
合意に要する要請と承諾の往復回数を 、代表的な片道遅延を 分とし、合意所要時間を と置く。
笹尾山と南宮山の 分を使えば、二陣間で「要請を送り、承諾を受ける」という最小の一往復、すなわち でも、
を要する。だが五陣が関わる一斉突撃では、一往復で十分とは限らない。三成が各陣の承諾を受けても、宇喜多は小早川が承諾したことを知らない。各ノードが他ノードの決定を確信するには、承諾の集約と決定通知が要る。経路が直列化し、実効的な確認往復を と仮置きすれば、
となる。二時間二十分である。 なら175分、ほぼ三時間に達する。これは厳密な作戦記録の復元ではなく、四から五の主要陣が相互の意思を確かめる場合のフェルミ推定である。それでも桁は明瞭である。秒ではない。分ですらなく、時間の単位へ入る。
3.3 合戦の時計は確認を待たない
関ヶ原の戦況は数十分で変わる。宇喜多と福島正則らの正面が押し引きし、大谷は松尾山の動静を警戒し、家康は桃配山から前進する。午前八時頃から午後二時頃までの約六時間という全体枠の中で、二時間から三時間の合意処理はあまりに重い。
伝令が持ち帰る情報は送信時点のスナップショットである。情報の鮮度を 、経過時間を 、戦況が意味を保つ時間幅を とすれば、
と置ける。 分なら、往復35分後は である。確認を重ねるほど情報は確実になる一方、古くなる。
この章で確認できるのは、一斉突撃の合意に時間がかかるという事実である。西軍は怠惰だったのではない。多者間で同じ決定へ到達するために必要な通信往復が、合戦の時間粒度に対して長すぎた。軍議で一行だった命令は、本番では二時間を超える承認フローへ展開されたのである。
第4章 FLP不可能性定理:小早川は裏切り者ではなく、crashしたノードである
4.1 まず「裏切り」の物語を立てる
小早川が意図的に西軍を欺き、好機を選んで大谷へ攻めかかったと読むなら、彼は悪意あるノードである。相手ごとに異なる情報を送り、系を誤らせるビザンチン故障であり、通説はビザンチン将軍問題の物語になる。
悪意を仮定すれば、正午頃の攻撃もそれ以前の沈黙も一つの人格で説明でき、責任主体も明瞭になる。
しかし午前中、小早川が返したものは虚偽値ですらなく、沈黙だった。松尾山のノードは攻撃とも待機とも確定応答を返さない。これは悪意を証明せずとも、以後の応答が観測できない停止故障、すなわち crash として記述できる。
これは小早川の政治的責任を免除する議論ではない。正午頃に大谷隊を攻撃した行為は消えない。ただし西軍全体が合意を完成できなかった原因を問う時、必要なのは彼の胸中を再現することではなく、他ノードから何が観測できたかを確定することである。観測されたのは、まず無応答であった。
4.2 遅延と停止は区別できない
戦国通信網は非同期系である。ここでいう非同期とは、単に遅いという意味ではない。メッセージ遅延に既知の上限がなく、いつ届くか、そもそも届くかを受信者が確定できないという意味である。伝令は渋滞しているのかもしれない。道を誤ったのかもしれない。討たれたのかもしれない。小早川は回答を検討中かもしれない。あるいは応答処理そのものを停止したのかもしれない。待つ側からは区別できない。
Fischer、Lynch、Patersonが一九八五年に示したFLP不可能性定理は、この区別不能を冷徹に形式化する。非同期分散システムで、たった一つのプロセスでも停止故障しうるなら、すべての健全なプロセスが有限時間で合意へ達することを保証する決定論的アルゴリズムは存在しない。
決定論的アルゴリズムを 、停止故障数を とすれば、帰結は次のように表せる。
は停止しうるノード数で、ここでは小早川という一ノードを想定する。定理が否定するのは、決定論的手順による三条件(合意性・妥当性・停止性)の保証である。確率的手法や同期性を仮定すれば合意可能な場合があり、あらゆる実行が必ず失敗するという意味でもない。
4.3 待つか、見切るか
小早川を待てば停止性を保証できない。待たずに攻撃を決めれば合意性が揺らぎ、意向を推測して値を補えば妥当性まで危うい。どの選択も、三条件のどれかへ請求書を回す。
小早川が本当に停止したのか、返答が遅れているだけなのかを識別できない以上、安全な待機には期限を置けない。これが第3章の「時間がかかる」から、本章の「保証できない」への転換点である。通信を速くすれば軽減できる遅延問題ではない。遅延上限を証明できない系に停止可能な一ノードが入った時、有限時間の合意保証そのものが消える。
結局のところ、帯域(バンド幅)が全てを決める。ただしここでいう帯域は、毎秒何ビットという量だけではない。「まだ遅れている」と「もう応答しない」を見分けるための観測帯域である。関ヶ原には、その識別情報がなかった。
4.4 小早川を悪人にしなくても系は止まる
ビザンチンの物語は、小早川が意図的に虚偽を返したことを要する。FLPの物語は、そこまで要求しない。一つのノードが黙る可能性だけでよい。悪意は不要であり、裏切りの確定さえ不要である。必要なのは非同期と無応答だけである。
焦点は人格から設計へ移る。西軍は「一ノードが応答しない」という普通の障害条件に耐える手順を持たなかった。冗長経路も定足数も共有タイムアウトもなく、単一ノードの沈黙が全軍を保留できた。
裏切り者を仮定しなくても止まる設計だった。前者なら担当者を処分して終われるが、後者なら次の担当者も同じ夜に落ちる。
第5章 問い鉄砲という強制コミット:CAPが分けた東西
5.1 待機状態を終わらせる外圧
合意処理が完了しない系も、現実の戦場で永遠には待てない。敵が接近し、味方が崩れ、攻撃を受ければ、各ノードは何らかの値を出力させられる。外部から到来する物理的な圧力が、プロトコルの未決状態を終了させる。
小早川陣へ鉄砲を撃たせたという「問い鉄砲」は著名だが、同時代の信頼史料にはなく、後世の編纂物に由来する。現代の研究では創作とみる見解が定説であり、史実上のトリガーとは断定できない。
それでも逸話の構図は鋭い。たとえ撃たなかったとしても、家康の攻勢そのものが圧力だった。前線が動き、家康が前進するほど、小早川の待機コストは上がる。戦闘が外部タイムアウトになったのである。
5.2 タイムアウトが合意を追い越す
戦況が同じ意味を保つ時間をタイムアウト 、多者間の合意所要時間を とする。敗北条件は単純である。
第3章では、四往復相当の確認を 分と見積もった。一方、前線の優勢、部隊の損耗、敵の接近によって決定条件が変わる時間を概数30分と置けば、
である。合意処理の進捗が四分の一にも届かないうちに、入力となる戦況が更新される。西軍が正しい決定値を求めている間に、家康は決定期限そのものを短縮した。
強制コミットは、全員を納得させない。未決の参加者へ、眼前の敵に応じて攻撃か退却かを選ばせる。小早川が正午頃に松尾山を下り、大谷を攻撃した時、西軍の合意が完成したのではない。別の系が、局所的な決定値を先に本番へ書き込んだのである。続く諸隊の動揺と転換は、その書込みが連鎖した状態とみなせる。
5.3 CAPが分けた東西
CAP定理は、ネットワーク分断時に一貫性(Consistency)と可用性(Availability)を同時には保証できないというトレードオフを示す。分断耐性(Partition tolerance)が必要なら、CとAのどちらを優先するかを選ぶ。
ここで一貫性Cを「全隊が同じ作戦値を採用すること」、可用性Aを「各隊が期限内に何らかの応答を返し、戦闘を継続すること」、分断Pを「陣間通信が途切れたり大幅に遅れたりしても系を維持すること」と翻訳する。
家康側は、比喩的にはAPへ寄った。各隊は本部から全東軍の承認がそろうまで待たず、眼前の敵へ局所的に応答する。福島、黒田、井伊らの判断が完全に同じスナップショットへ基づかなくても、前線の可用性を維持する。多少の不整合は、勝利後に収束させればよい。
西軍はCPへ寄った。小早川、毛利勢を含む全体の動きをそろえようとするほど、無応答ノードがある分断下では決定を保留せざるをえない。一貫性を守ろうとして、攻撃可能な部隊まで待機すれば、可用性を失う。これは勇気の差ではない。分断時に何を捨てるかというポリシーの差である。
CAPの関ヶ原への適用は分析上の比喩だが、「全軍を待つか、局所判断で動くか」を記述できる。分断後にCもAも完全に守る作戦は、願望であって設計ではない。
5.4 南宮山という別レイヤの障害
南宮山の毛利勢が動かなかった問題は、小早川とは異なる。秀元の前面を、家康と内通した広家が塞ぎ、後続の出撃を妨げたことは事実級とされる。これはノード停止というより、上流リンクを中間ノードが遮断したトポロジー障害である。
督促に対して秀元が食事中と答えたという「宰相殿の空弁当」も後世の逸話であり、史実とは断定できない。弁当の中身をパケット解析しても、本稿の合意問題は進まない。重要なのは、南宮山に戦力が存在しながら、前面の広家を越えて盆地へ書込みを行えなかったことである。
小早川は無応答、南宮山は前面ブロック。障害モードは別だが、上位の結果は同じだった。軍議で数えた戦力が、本番時の利用可能戦力にならない。構成管理台帳には存在するが、ヘルスチェックには応答しないサーバを、稼働台数へ含めていたのである。
第6章 結論 悲劇は稼働率で説明できる
6.1 可用性の積
主要ノード が期限内に正しく応答する可用性を とし、全ノードを要求する直列依存モデルを置けば、作戦全体の可用性 は、
となる。障害の独立を仮定したフェルミ推定だが、多数の依存先を直列に置く危険は示せる。
五つの主要陣が各85%の確率で期限内に応答できると仮置きすると、同時成立率は、
となり、約44%まで落ちる。八ノードなら 、約27%である。個々は「たいてい動く」のに、全体は「たいていそろわない」。
実際には霧、地形、戦況が複数リンクを同時に劣化させる。西軍は戦力を加算したが、可用性は乗算で決まった。
6.2 六時間のインシデント
午前八時頃に戦端が開かれた。小早川は正午頃まで沈黙し、松尾山を下ると大谷隊を攻撃した。そこから宇喜多らの戦線も崩れ、午後二時頃には大勢が決した。約六時間のインシデントである。
障害報告へ翻訳すれば、分散した陣へ同期実行を要求した初期設計に行き着く。低帯域、高遅延、一方向の通信には遅延保証がなく、無応答ノードを切り離す定足数もなかった。家康の攻勢でタイムアウトが先に到来し、未完了処理は局所判断で上書きされた。
したがって、西軍の敗北は「小早川が裏切ったから」という単独原因では閉じない。より正確には、小早川の沈黙を一ノードの停止故障として吸収できず、全体合意を期限内に返せなかったからである。小早川の行動は転換点だった。しかし転換点を単一障害点へしていたことこそ、設計上の根本原因である。
ここで、沓掛守安の偏執的な命題を明示する時が来る。悲劇は稼働率で説明できる。
忠義、勇気、知略も、期限内に稼働しなければ歴史の本番環境には反映されない。道徳は重要だが、道徳がパケットを運ぶわけではない。
6.3 戦後に発行された請求書
障害の請求書は、戦場の死傷だけで閉じなかった。毛利家は戦前の八カ国百二十万石余から、戦後は周防・長門二カ国三十六万九千石へ減封された。南宮山で実行されなかったトランザクションは、所領という永続ストレージから約七割を失う結果になった。
この処分は、実際に出撃したかどうかだけでなく、西軍の名義、家康との交渉、広家の内通、大坂城にいた毛利輝元の立場など、政治的事情の総体による。単純な技術比喩へ還元してはならない。それでも、台帳上の大戦力が戦場で利用可能にならなかった事実と、戦後に大幅減封を受けた事実の間には、運用上の冷たい連続性がある。使われなかった能力にも維持費はかかり、失敗した変更にも本番影響は残る。
一方の家康は、一貫性の完全さより前線の可用性を優先し、局所的な成功を全体の勝利へ収束させた。勝者が常に優れたプロトコルを持つわけではない。ただ、期限が短い障害では、完全な承認を待たない系が生き残ることがある。正しさは後から監査できる。停止したサービスだけは、後から稼働していたことにできない。
6.4 合意失敗としての関ヶ原
本稿の史実上の土台は、関ヶ原の布陣と時系列について笠谷和比古、白峰旬らによる近年の実証研究に拠った。通信手段の性能は『甲陽軍鑑』『雑兵物語』および戦国期の情報伝達研究を参照し、数値はフェルミ推定として幅を持たせた。FLPの定義はFischer、Lynch、Patersonの一九八五年論文、CAPの定義はBrewerの提唱とGilbert、Lynchによる形式化に従った。
これは三成が分散アルゴリズムを実装した証拠ではない。空想的な補助線によって、数で劣らぬ西軍が崩れた理由は、全兵力を同じ時刻の同じ決定へ変換できなかったことに見えてくる。
関ヶ原で失敗したのは通信の存在ではない。通信性能を超えた作戦を、通信性能の保証なしに本番投入したことである。一方向、低帯域、高遅延の非同期網へ、数万の同期コミットを要求した。その要求は軍議では美しく、戦場では停止した。西軍敗北の障害種別は、裏切りではなく合意失敗である。
あとがき 応答のない夜に
本稿を閉じるにあたり、私にも一つだけ、三人称の安全圏から出て述べておきたいことがある。
私は二十年、金融系のオンプレミスとデータセンターで、落ちるはずのないシステムが落ちる夜を見てきた。障害の直前まで、監視画面の大半は緑色である。CPUも、メモリも、回線も、個別に見れば正常に近い。それでも、たった一つ返らない応答が処理全体を塞ぎ、再送が負荷を増やし、やがて全画面が赤くなる。
その夜が明ければ、会議が始まる。誰が判断を遅らせたのか。誰が手順を守らなかったのか。誰が最初のアラートを見落としたのか。問いは必ず人名を求める。人名のない報告書は、経営会議にとって不親切だからである。しかし障害の最中に私たちが待っていたものは、人間の善意ではなかった。タイムアウト値であり、切替経路であり、返ってこない一個のACKだった。
第一作で「是非に及ばず」を障害報告として読んだのも、同じ理由による。歴史は、英雄の言葉を好む。基盤屋は、その言葉が出力される前に何本の回線が死んでいたかを考える。華やかな意思決定の下には、名も残らない伝令、馬、狼煙番、旗持がいる。電子の代わりを人間が務める物理層である。
関ヶ原を読むと、私は深夜の監視室を思い出す。三成の要請がどこまで届いたかは画面に出ない。小早川の沈黙が処理中なのか停止なのかも分からない。南宮山には能力があるのに、経路が塞がっている。前線の状況だけが更新され、承認待ちのチケットは古くなっていく。担当者は誰も、システム全体の現在値を持っていない。
だから、裏切りという語だけで閉じることに、私はためらいを覚える。それは人間を裁くには便利だが、同じ障害を防ぐには役に立たない。小早川を別の武将へ交換しても、無応答一件で全軍が止まる構成を変えなければ、次の盆地でも同じインシデントが起きる。始末書に人名を書き、設計を直さない組織を、私は何度も見た。
小早川秀秋は、裏切ったのではない。ただ、合意を返すための帯域が、この盆地のどこにも無かったのだ。
主要参考文献
※本稿はフィクションだが、土台に用いた史実・理論は以下を参照した。各文献の解釈・誤りはすべて筆者(架空)に帰する。
- 関ヶ原合戦の布陣・陣間距離・時系列・戦後処理 ―― 笠谷和比古・白峰旬らによる近年の実証研究、および関ヶ原合戦図屏風などの絵画史料。陣間距離は現代の地図上の直線距離による概数。
- 戦国期の通信手段(狼煙・法螺貝・陣太鼓・旗指物・使番)の実態 ―― 『甲陽軍鑑』『雑兵物語』ほか軍記・軍学書と、戦国期の情報伝達に関する研究。性能値は概数。
- 「問い鉄砲」「宰相殿の空弁当」 ―― 同時代史料に見えず、後世の編纂物(『関ヶ原記』等)に由来する逸話。本稿でも史実として断定していない。
- 毛利家の戦後処理(八カ国約百二十万石から周防・長門約三十六万九千石への減封) ―― 『毛利家文書』ほか。
- M. J. Fischer, N. A. Lynch, M. S. Paterson, “Impossibility of Distributed Consensus with One Faulty Process,” Journal of the ACM, 32(2), 1985. ―― FLP不可能性定理の原論文。
- E. Brewer, “Towards Robust Distributed Systems” (PODC 2000 Keynote)/S. Gilbert & N. Lynch による形式化(2002). ―― CAP定理。
- N. Lynch, Distributed Algorithms, Morgan Kaufmann, 1996.
※本文の情報伝達レート・伝令遅延・合意所要時間・可用性の積などの数式は、合意の困難さを可視化するための空想的なフェルミ推定であり、実測値ではない。分散システム理論(FLP・CAP)の定義は正確を期したが、戦国史への適用はすべて本稿の空想的な見立てである。
【コラム】客員監査役ノバラの打算的ガヤログ
沓掛研究員の論文は、今回も理屈が濃い。合意だ、帯域だ、稼働率だと畳みかけられて、読み終える頃にはこちらの頭まで深夜の監視室である。だから監査役の私は、いつもどおり帳簿だけで勘定してみたい。
戦場で「返事をしない」というのは、実はいちばん安い選択に見える。攻めると答えれば命を賭けることになり、退くと答えれば名を失う。黙っていれば、どちらの勝ち馬にも後から乗れる。沈黙とは、掛け金ゼロで両建てできる保険である。そう、つい記帳したくなる。
だが帳簿を最後までめくると、この保険の保険料は、本人ではなく全軍に請求されていたことが分かる。一人の沈黙を待つあいだ、数万の兵は動けず、時間だけが確実に減っていく。そして南宮山を見るがいい。動かなかった大軍にも、戦後にはきっちり七割減の請求書が届いた。使わなかった戦力は無料ではないのだ。維持費と、待たせた側の損失と、負けたときの精算まで、すべて後から利息つきで回収される。
つまり本編の「悲劇は稼働率で説明できる」を監査役の言葉に直せば、こうなる。沈黙はタダに見えて、いちばん高くつく。期限までに返事を返すこと。それだけが、帳簿の上で唯一の黒字なのである。
――客員監査役 ノバラ
奥付
『関ヶ原の合意不能―のろし通信網で西軍三万は同期できたのか』 AI空想分析論文叢書 020
| 著者 | 沓掛 守安(当館 客員研究員・戦国情報インフラ史) |
| 発行 | 技術評論朱印社 |
| 発行日 | 慶長五年 長月 初版(西暦2026年) |
| 分類 | 戦国情報インフラ史 / 分散合意論 |
| 請求記号 | NW-1600-SEKIGAHARA |
| ISBN | 978-4-1600-0915-X |
本書は『AI空想分析論文電子図書館』の蔵書です。記載の出版社・ISBN・請求記号・刊行年はすべて架空であり、実在のものとは一切関係ありません。(ISBN中の0915=慶長五年九月十五日、合戦当日の日付に由来する空想の数字。)