ファイナリティ：それは何か、なぜ重要なのか？そして NEM Symbolはどこを目指すのか？

この記事はDave Hodgson氏（NEM Group）によりNEM Forumへ投稿された記事の一部を翻訳したものです。NEM Symbolに実装予定のファイナリティは現在外部セキュリティ企業によってレビュー中のため、詳しい内容についてはまだ公表されていませんが、ブロックチェーンにおけるファイナリティの重要性について非常にわかりやすい説明であったため紹介します。

# ファイナリティとは
ブロックチェーンでのファイナリティとは、チェーン上のトランザクションやブロックが将来的に変化するリスクがあるかどうかを誰かが判断できる方法のことです。

すべてのブロックチェーンには頻繁にマイクロフォークがあり、その状態から継続的に単一のチェーンに回復します。これらのマイクロフォークでは、一部のノードはブロックAが次の有効なブロックであると考え、他の一部ノードはブロックBが次のブロックであると考え、ネットワークはフォークして、1ブロックまたは多くのブロックに渡って続くことができる、いくつかのブロックのための2つの並列チェーンを作成します。

ネットワークは、どの並列チェーンが正しいかについてのコンセンサスを得るための方法を必要とし、すべてのノードが同じチェーン（つまり、共通の元帳）へ戻るように、正しくないものをロールバックします。チェーンが最終的に合意されたとしてブロックをマークすることができる場合、このプロセスは有用です。


ファイナリティは、特定のチェーン内のトランザクションが確定したと見なすことができるプロセスであるため、トランザクションはロールバックされないか、ロールバックされる可能性が非常に低く、永続的に信頼できます。


# どんなタイプのファイナリティが存在しますか？

これを実現するには、主に2つの方法があります - 確率的な方法と決定論的な方法です。


- 確率論的な方法では、意図的に分岐を開始して実際のチェーンをロールバックさせるには非常に高価/非現実的になるほどに十分な量のブロック生成させることによって実現します。これは確率的に確定したことになります。

- 確定的な方法では、ブロックまたはトランザクションを（通常は何らかの形でマークすることで）チェーン上の最終としてネットワークが合意することを意味します。


BTCおよび他のほとんどのPoWチェーンは確率論を使用します。より近代的なPoSチェーンは、主にセキュリティが向上し、ブロック時間が短縮され、特定のユースケースまたは動作を目的とするため、決定論を目指す傾向があります。最終的には、取引と残高をより簡単、安全、迅速に信頼できることを意味します。

確率論的ファイナリティは、たとえばBinanceがBTCを入金するために6つ承認ブロックの確認を行う理由です...彼らはカウンターパーティのリスクを減らすのに十分なほどチェーンが成長するのを待ちます。確認が6回（1時間）かかるため、チェーンをロールバックするための51％の重大な攻撃のリスクが低くなる可能性が高いため、技術的には確定ではありませんが、確定的に最終であると考えられます。



# ファイナリティが重要なのはなぜですか？

ブロックチェーンを使用している人は、トランザクションが最終であるとマークされているか、チェーンが確率的に最終であると言えるほど長い場合を除いて、特定のブロックのトランザクションを信頼してはなりません。それ以外の場合、トランザクションは、値の転送、マルチシグのセットアップ、メッセージ内の情報、チェーン上のトランザクションなど、いつトランザクションを信頼できるかを「推測」しなければならないからです。

ほとんどの暗号決済システムが解決しなければならない二重支出の問題があります。お客様はコーヒーを購入するのに1時間待つことはありません。また、コーヒーショップは、ロールバックのために私が去った後に資金を失うリスクを冒したくありません。これは、LightningがBTCで行うことの一部です。もう一つの解決策は、決済プロバイダーがリスクを負い、その収益から損失を帳消しにすることで、最終的には手数料が増加します。プロバイダーは、オフチェーンのリスク管理ソリューションを作成します。

他にも、所有権のあるアートワークやセキュリティトークン、収集品などの転送する例もあります。過去のチェーンで対処する方法は、確率的に最終的になるまで一定期間待つことであり、チェーンを使用するソリューションには確率的に最終になるまで待つように設計されています。最近のチェーンでは、決定論的なファイナリティに移行することで問題を解決し始めているので、いくつかのユースケースではどのチェーンを採用するかの意思決定の一要因となっています。

# 一般的なファイナリティアプローチとは

確定的ファイナリティでは、他のチェーンで使用されている主なアプローチがいくつかあります。

- Polkadot：Grandpa（PBFT）、ブロックではなくチェーンを検証、Availableパーティション
- Ethereum 2.0：Caspar FFG（PBFT）、20分のファイナリティ、Availableパーティション
- Cosmos / Tendermint：PBFT、高速ファイナリティ、Consistenceパーティション
- Algorand：新しい高速ファイナリティですが、Consistenceパーティションを使用し、同期性を前提としています

>Availableパーティション：ネットワークの分割が発生した場合、状態が修正されるまでブロックは追加されず、チェーンは実質的に停止します

>Consistenceパーティション：ネットワークの分割が発生すると、すべてのチェーンが独立して進行し、独立したチェーンが個別に拡大し、パーティションが解決されると、競合するチェーンを解決する必要があります。

Cosmos / Tendermintが最初に製品版ソリューションを導入しました（バリデーターに依存しています）。Algorandは現在のところ、より先進的な方法の一つとして一般的に支持されていますが、時間の経過とともにまだ証明されていないいくつかの仮定と強いネットワーク同期性の仮定に依存しています。


ブロック/トランザクションを最終としてマークする場合、問題は2つの主要なステップに分類されます。

1. 誰が最終投票者とみなすのか
2. 他の投票者をどうやって信頼するか、そして投票が完了したことをどうやって知るのか

確定的ファイナリティには主に2つのサブタイプがあります。

## 半分散

この方法では、事前に選択されたノードのプールを作っておき、所定のブロックまたはトランザクションにおいて最終であると投票することを許可します。これは、validatorやwitnessなどの用語を使うほとんどのソリューションで使用されています (Cosmos, Steem, Eth 2.0, Polkadot など)。一般的なモデルとしては、DBFT, PBFT, Threshold Signaturesなどがあります。ほとんどのソリューションには理論的なスケーリングの限界があり、投票数250ノードを超えて広く普及していません。これらの限界は、メッセージの複雑さや最終決定の実行頻度、その他いくつかの要素にも依存するため、正確に定義するのは難しいです。

NEMのシナリオでは、このオプションはスーパーノードの一部を選択する必要があることを意味し、その選択アプローチの公平性と堅牢性、ランダム化できるかどうかなどについて議論する必要があります。また、投票ノードの数が増えるにつれて、ファイナリティが失敗し始めるリスクもあります。これらの問題は現実の世界では広く扱われておらず、研究論文の数学的／机上での設計にある程度依存しているため、これらの仮説的なリスクは、テストネットによって検証される予定です。


## 完全に分散

この方法では、任意のノードが参加または離脱して特定のブロックに投票できる動的投票プールに依存しています。すべてのノードは、誰が投票すべきか、そして投票が完了したときにそれを確立するために他のすべてのノードと話す必要がないことを知る方法を持っている必要があります。

半分散よりも方法は複雑ですが、より堅牢で、より安全で、よりスケーラブルです。この問題へのアプローチがよく文書化されているチェーンがいくつかあります。たとえば、Algorandです。

Algorandは、特にネットワークが分割されると失速し、（自動的に）回復する必要があることを意味するConsistenceパーティションアプローチを使用しています。利用可能な投票キーがなくなり、完全に再起動しなければならなくなった場合、自動的に1時間ごとに再起動されます。つまり、チェーンデータを処理するシステムは、ファイナリティが存在するが、失敗して回復することが予想されるという状況も処理する必要があるということです。

# NEM Symbolはどこを目指すのか

他のいくつかのチェーンがこの問題を解決し始めており、オープンソースであるため、理論的には私たちのデザインプロセスは少し簡単ですが、それでも複雑です。NEM Symbolと同じようなコンセンサスベースに修正を加えて使用する他のチェーンは存在しません。

コア開発者は数ヶ月間、ソリューション設計に取り組み、調査を行っており、問題領域を完全に理解しています。我々は最近、複数の類似プロジェクトに携わってきたセキュリティの専門会社を招集しましたが、その会社のレポートは、上場のための取引所によるデューデリジェンスなどの決定を行う機関に認められています。その会社の暗号学者の責任者と積極的に仕事をしており、初期のフィードバックでは設計に肯定的な評価を得ていますが、まだやるべきことがあります。

まず、Algorandに似たアプローチが検討され、ごく最近まで適用が可能と考えられていましたが、プロセスの終わり近くに、Reductionに関する特に厄介な問題が確認されました。具体的には、アプローチはブロックの検証に依存しますが、NEM Symbolは（Polkadotと同様に）チェーン、前述のマイクロフォーク（> 1ブロック）を検証します。これら2つを調整するには、かなりの書き換えが必要であり、実質上チェーンを止めてフォークを回避するアプローチに向けた設計が必要になる可能性があります。

次のステップは、ローンチに向けて PBFTを（再）評価することであり、現在、コア開発者はこれに積極的に取り組んでいます。このアプローチは、以前はいったん保留されていたため、ゼロから研究作業を開始することはせず、セキュリティ企業の積極的な支援を受けています。

このアプローチに多くの価値があり、デザインレビューに合格した場合、Symbol（Eth 2.0、Polkadotなど）との直接の競争相手となり得るチェーンにも同様のアプローチを提供する可能性があります。

これらの機能セットがブロックチェーンの学術研究の最先端にあり、PBFTのような数年前から存在するソリューションの上に構築されているため、設計プロセスは想定よりも長くかかっています。これは非常に濃い領域であり、業界には明確で一般的な正しい答えはありません。ソリューションを適切に導入することで、Symbol Public Chainは、今日の市場のテクノロジーソリューションの最前線に、そして（採用とトークン価格の両方で）大きな成功を収めたプロジェクトと並ぶことになりますが、それは単純なプロセスではありません。


# さらに読む

[Finality in Blockchain Consensus](https://medium.com/mechanism-labs/finality-in-blockchain-consensus-d1f83c120a9a#:~:text=In%20the%20blockchain%20setting%2C%20finality,be%20arbitrarily%20changed%20or%20reversed.)
[When ‘Final’ isn’t actually Final](https://www.forbes.com/sites/richardgendalbrown/2019/11/22/when-final-isnt-actually-final-cracking-blockchains-consensus-conundrum/#2993f3206040)
[Finality by Binance Academy](https://academy.binance.com/glossary/finality)
[What is Blockchain Finality (Types Explained 2019)](http://alevtina.io/blockchain-finality-explained-what-and-why/)
[A-to-Z of Blockchain Consensus](https://medium.com/tendermint/a-to-z-of-blockchain-consensus-81e2406af5a3)
[Finality in Blockchain Consensus](https://medium.com/mechanism-labs/finality-in-blockchain-consensus-d1f83c120a9a)
[Cryptographic Sortition in Blockchains: The importance of VRFs](https://medium.com/witnet/cryptographic-sortition-in-blockchains-the-importance-of-vrfs-ad5c20a4e018)
[Consensus Compare: Casper Vs Tendermint](https://blog.cosmos.network/consensus-compare-casper-vs-tendermint-6df154ad56ae?gi=c14bef5d2795)
[Introducing Byzantine Fault Tolerance Consensus for Lisk](https://lisk.io/blog/research/introducing-byzantine-fault-tolerance-consensus-lisk)
[Algorand Immediate Transaction Finality](https://www.algorand.com/what-we-do/technology/immediate-transaction-finality)
[The intuition behind Algorand’s Cryptographic Sortition](https://medium.com/@jsign.uy/the-intuition-behind-algorand-cryptographic-sortition-526e76e87e97)
[Polkadot Consensus - Polkadot Wiki: Grandpa Finality Gadget](https://wiki.polkadot.network/docs/en/learn-consensus#:~:text=GRANDPA%3A%20Finality%20gadget,nodes%20in%20an%20asynchronous%20setting.)
[Polkadot Consensus - Part 2](https://polkadot.network/polkadot-consensus-part-2-grandpa/?utm_source=Twitter&utm_medium=social%20media&utm_campaign=consensus_GRANDPA)