2021年6月24日 2 min read

POSのセキュリティーについて

"POS型のコインの場合、33%以上持っていれば、POW型のコインのようなネットワーク攻撃ができるようですが、その理由について書かれた説明を見たことがありません。数学を用いるなどかなり難しいとは思いますが、ご教示いただけたら幸いです" 

という質問をいただきました。ちょうどよい機会なので、POSのセキュリティーについて説明します。

まず、なぜ33%なのかですが、これは数学的にいうと難しいです。いちおうWikipediaなどにも解説があるので、読んでみてください。これはいわゆる「ビザンチン将軍問題」といわれるものです。「ビザンチン将軍問題」で検索すれば、ほかにもいろいろ解説はでてきます。

分散型のシステムで、コンピュータが故障したり、ハックされて、偽の情報をだしたり、またはオフラインになったとしても、どのくらいのノードが生きていれば、確実に同期を保証できるか、というのがビザンチン将軍問題です。これには数学的な証明があり、33%、つまり三分の1以下の故障であれば大丈夫であるというようになっています。

これをBFT(ビザンチン、フォールト、トレランス)といいます。多くの分散型のシステムは、このBFTの理論を元にしています。分散ノードしかり、分散データベースしかり、分散◎◎しかり、冗長性を確保するための分散システムではすべてこの理論が適用されているといって過言ではないでしょう。歴史はふるく、ビットコインのPoWのプロトコルができる何十年もまえから存在するプロトコルです。分散型合意形成といえばこれ、なわけですね。

BFTのプロトコルの特徴は2段階コミットにあります。

最初にどれかいずれかのノードが生成したブロックを他のノードに伝搬します。他のノードはこれを検証して、OKか否かを返すわけです。このとき、1/3が嘘の答えをしても、のこり2/3が正しく検証していれば大丈夫です。すべてのノードの回答を集計して、正しいとなれば、最終的にコミット(確定)して、ブロックが確定します。このときファイナリティがえられて、それは覆りません。

Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to ビットコイン研究所.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.