ファイナリティとは?
ファイナリティとは「完了の状態」や「最終」「以後変更できない」ことを示す言葉です。金融におけるファイナリティとは「ある口座からある口座へ送金された資金が、最終的に受領当事者の資産になる瞬間」を指します。
ブロックチェーンにおけるファイナリティ
ブロックチェーンにおけるファイナリティは、金融でのファイナリティとは少し異なります。金融機関では取引が以後変更できなくなるタイミングですが、ブロックチェーンでは取引が変更できる確率が限りなく低くなるタイミングです。ここで「確率」である点に注意してください。
ビットコインをはじめとした多くのブロックチェーンでは、取引をブロックに書き込む作業に誰でも参加できるため、悪意を持つ者がブロックを作成する可能性があります。よって多くのブロックチェーンは、ブロックが追加されたあとでも取り消し可能になっています。
ただしブロックの後にブロックが接続され続け、ブロックチェーンの奥深くに当該のブロックが沈むにつれて、その取引が取り消される確率は低下します。時間が経つほど承認される回数が多くなり、決済がひっくり返る確率は天文学的に下がります。ただし完全に0にはなりません。
たとえばビットコインの場合は、取引が6回ブロックに収まると、破棄される可能性が0.1%未満になります。多くの取引所では、「0.1%未満のリスクは無視できる」として、ビットコインの入金を6承認で行っています。
金融機関とブロックチェーンのファイナリティ
確率的なファイナリティのみで、絶対的なファイナリティがないブロックチェーンは、従来の金融機関にとって敬遠したいシステムでしょう。金融機関では、絶対的なファイナリティをもつシステムが求められるからです。
ただし中には、絶対的なファイナリティを提供できるタイプのブロックチェーンがあります。それは、次の2つの特徴をもつものです。
- 招待者のみで構成されるもの
- コンセンサスにアルゴリズムに「PBFT」を採用しているもの
1つ目はプライベートブロックチェーンと呼ばれるブロックチェーンです。プライベートブロックチェーンは1つの組織が管理権限を持ち、参加者を管理します。組織外部の人間は参加できないため、悪意のある人の参加を防ぐことができます。
2つ目は、コンセンサスアルゴリズムに「PBFT」を採用しているものです。PBFTでは、ブロックが追加されるとすぐに決済完了となり、以後取り消しできません。つまりファイナリティ100%を提供するアルゴリズムです。
PBFTのしくみをかんたんにいうと、投票システムです。その取引が正しいかどうかについてノード間で投票が2回行われ、ノードの大半が合意すればブロックが追加されます。悪意のあるノードや故障したノードが不正なブロックを送信した場合は、他の正しいノードによって破棄されるようになっています。
投票によって決まるという点において、PBFTは全体ノード数における不正なノード数をある一定のレベルに抑える必要があります。よってPBFTは、限られた人だけが参加できるプライベートブロックチェーン向きのアルゴリズムといえるでしょう。
ただしデメリットもあります。ノードが増えると投票に関するノード間の通信が増えるため、遅延が発生します。高速な処理を実現するには、少数のノードで運営しないといけないというジレンマが発生するでしょう。
PBFTまたはそれに近いアルゴリズムを採用しているプライベートブロックチェーンには、次のようなものがあります。
- Hyperledger Fabric v1.0
- Miyabi
- Hyperledger Iroha
ファイナリティまとめ
ファイナリティをまとめると、次のとおりです。
- ブロックチェーンのファイナリティは「取引が変更される確率が限りなく小さくなるタイミング」のこと
- 後ろにブロックが続くほど、取引が変更される確率は低くなる
- ビットコインの場合、6承認が平均ファイナリティとなっている
- 絶対的なファイナリティを与える「PBFT」というアルゴリズムがある
- PBFTはプライベートブロックチェーン向きのアルゴリズム
ブロックチェーンが絶対的なファイナリティーを提供できないのは、ネットワークをオープンにする代償のようなものです。ただしある程度まで承認が進むと、実際に取引が変更される確率は非常に低くなります。