ファイナリティとは

編集:
安藤 啓明 (Hiroaki Ando)

ファイナリティとは?

ファイナリティとは「完了の状態」や「最終」「以後変更できない」ことを示す言葉です。金融におけるファイナリティとは「ある口座からある口座へ送金された資金が、最終的に受領当事者の資産になる瞬間」を指します。

ブロックチェーンにおけるファイナリティ

ブロックチェーンにおけるファイナリティは、金融でのファイナリティとは少し異なります。金融機関では取引が以後変更できなくなるタイミングですが、ブロックチェーンでは取引が変更できる確率が限りなく低くなるタイミングです。ここで「確率」である点に注意してください。

ビットコインをはじめとした多くのブロックチェーンでは、取引をブロックに書き込む作業に誰でも参加できるため、悪意を持つ者がブロックを作成する可能性があります。よって多くのブロックチェーンは、ブロックが追加されたあとでも取り消し可能になっています。

ただしブロックの後にブロックが接続され続け、ブロックチェーンの奥深くに当該のブロックが沈むにつれて、その取引が取り消される確率は低下します。時間が経つほど承認される回数が多くなり、決済がひっくり返る確率は天文学的に下がります。ただし完全に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はプライベートブロックチェーン向きのアルゴリズム

ブロックチェーンが絶対的なファイナリティーを提供できないのは、ネットワークをオープンにする代償のようなものです。ただしある程度まで承認が進むと、実際に取引が変更される確率は非常に低くなります。