「安全」の定義ってなんだろう?

サミ・ミアン
ヘデラ・ハッシュグラフ日本代表

ブロックチェーンの速度、安全性、公平性という問題点を解決すべく、新しい分散型台帳技術が誕生しています。速度に関しては1秒に何取引、何秒以内に同意形成が出来る?と聞けば比較できます。公平性については取引の順番を決める方法は公平なの、どんな方法?と聞けます。安全性についてはあなたはaBFT、pBFT、BFT、それともBFTじゃないの?と聞けます。今回はこの「安全」について書きます。

当たり前ですが、誰かに何らかのメッセージを送信する場合、そのメッセージが相手に届くかどうかは重要な点ですよね。特に分散型ネットワークではこれが重要になります。(皆で一緒に同意形成をしているから)

実世界では通信障害によって自分のメッセージが相手に届かない場合もあります。例えば通信会社にトラブルがあったり、自然災害、ハッキングや戦争の際には何らかの障害が起こることが想定されます。

企業が集中的に管理しているデータベースの場合はそのデータベースを保管しているコンピューターやネットワークが通信障害を起こすとユーザーに悪影響があります。

ゲームやSuicaが一時的に使えなくなったという規模の影響だったら不都合ではあるけど大きな問題にはならないかもしれません。しかし、長時間通信が出来ない、電気が通らない等の社会インフラに問題が生じたら大問題ですよね。また、企業にとって数時間の通信障害があった場合でも多大な損失に繋がるケースも多数あります(Netflixとか)。

どんなネットワークにおいても「安全」かどうかは重要な点です。

分散型ネットワークにおいては33%以上のコンピューターが悪意を持つとネットワークは機能しない恐れが出てきます。これが俗に言われている「ビザンチンフォルトトラレント」です。

「ビザンチンフォルト」は1982年にランポートと共同著者による論文で紹介された種類の「フォルト」、つまり障害です。ネットワークにあるコンピューターが悪意を持っている場合、送信したメッセージが改ざんされたり、そもそも相手に届かない場合でも対応が出来ますか?出来るなら「ビザンチンフォルト」(障害を)にトラレント(許容できる)ということになります。

この「ビザンチンフォルトトラレント」(ビザンチン障害を許容できる)には3つのレベルがあります。

最高レベル:非同期ビザンチンフォルトトラレント(aBFT)
中レベル:部分的同期ビザンチンフォルトトラレント(pBFT)
最低レベル:同期ビザンチンフォルトトラレント(BFT)
安全性が不明:ビザンチンフォルトトラレントではない。(??)

難しい言葉や横文字が並んでますが、実は単純なことを難しく言っているだけです。

最高レベルの場合は同期をしなくても安全。
(相手に届かないメッセージがあっても大丈夫)

中レベルはたまに同期しないと安全ではない。
(メッセージが相手にいつ届くかは分からないが、いつかは届くことを想定)

常に同期しないと安全ではない。
(メッセージが決められた時間内に相手に届くことを想定)

システムを作る個人、企業や政府の観点からも
そのシステムを使うユーザーの観点からも
あらゆる障害を想定した最高レベルの「安全」(aBFT)を確保したシステムが選ばれるべきだと思いませんか?