はじめに
今回の内容
前回の記事では、
- Proof of Workの問題
- それを置き換えるProof of Stakeの設計思想
- Ethereumで導入されるCasper
- その第一段階であるCasper FFG
といったトピックについて解説しました。
今回は、もうひとつのCasperであるCasper CBCの紹介をし、Casperが導入されることによってEthereumで何が解決されるのか、将来の展望を説明します。
ゴール
Casper CBCがどのようなものかを理解します。
その後、Casperが何を解決するかを理解します。
ターゲット
Ethereumに興味がある方を対象としています。
前提知識
暗号通貨やブロックチェーン技術、合意形成アルゴリズム、グラフ構造、オラクル、Nothing at Stake問題についての知識があること。
並びに前回の記事を読んでいることを前提とします。
もうひとつのCasper – Casper CBCとは
Casperの仕様は2つ考えられています。
Casper FFG(Friendly Finality Gadget)とCasper CBC(Correct By Construction)です。
2018年2月現在はテストネット上でFFGの検証が進められています。
前回説明したCasper FFGと、もうひとつのCasperがCasper CBCです。
コンセプト段階で概念実証の段階のものもあるので、実際の導入の際には仕様が大幅に変更となる可能性があります。
Casper CBC
Casper CBC(Correct-by-Construction:構造による正しさ)は、合意形成プロトコルを「導き出す」方法で、Vlad Zamfirによってプロトタイプとして研究されているものです。
Casper CBCを利用することで、下記のように従来の合意形成プロトコルに比べて様々なメリットを持つプロトコル群が作成されます。
- 合意形成の安全証明が比較的簡単に行える
- プロトコル内におけるファイナリティの限界値が存在しない。
- ネットワークのオーバーヘッドだけでなく、バリデーター数による「ファイナリティの遅延」をトレードオフする
- 特定の状況下でのネットワークの理論的オーバーヘッドの最適化
合意形成プロトコル
まず、合意形成とはどういうものかをおさらいします。
例えば読者が10台のノードの所有者であり、これらのノードを1から100の間の乱数で合意したいとします。
コンピュータの信頼性が低いため、一部のコンピュータが予期せずクラッシュしたりするかもしれませんが、残っているノードの値は引き続き一致します。
障害のないすべてのノードが、同じ値にどのように合意するかをどうすれば確認できるか、これが合意形成の基本的な問題です。
番号を決定する2つのノードが、同じ番号を決定することを確認したいとすると、1台のコンピュータが「11」を提案し、もう1台が「12」を提案したとすると、合意形成はできません。
この2つのノードが異なる決定を行えない場合に、合意形成プロトコルは正常であり、安全であるといえます。
前回説明したProof of Work(以下PoW)やProof of Stake(以下PoS)も合意形成プロトコルの一種です。
実際には予期せぬネットワークの遅延や、ノードがクラッシュする、誤動作をするなどの状況も考えられますが、その点は後ほど説明します。
Casper CBCの研究は、パブリックブロックチェーンのためのPoS合意形成プロトコルの調査として始まりましたが、調査を進めていくうちにより一般的な合意形成プロトコルの研究分野に発展しました。
執筆時の現時点で、Casper CBCには以下の6つの合意形成プロトコルが存在します。
- Casper the Friendly Binary Consensus Protocol:0または1に合意
- Casper the Friendly Ordinal Consensus Protocol:整数に合意
- Casper the Friendly List Ordering Protocol:リストの並び順に合意
- Casper the Friendly GHOST Protocol:ブロックチェーンに合意
- Casper the Friendly Concurrent Schedule Replication Protocol:同時スケジュールに合意
- Casper the Friendly Sharded Blockchain:分割されたブロックチェーンに合意
Casper the Friendly Ghost(以下Casper TFG)はパブリックブロックチェーンのPoSプロトコルとして設計されています。
これ以降の記事はオンラインサロン「即戦力!ブロックチェーン技術者養成道場」で公開中です。
続きを見るには、即戦力!ブロックチェーン技術者養成道場(DMMのページに移動します)をご覧ください!
【サロンでご覧いただける記事の続き】
- もうひとつのCasper
- ファイナリティ
- 安全証明
- 欠陥のあるバリデーター
- オラクル
- 敵対的なオラクル
- 派閥オラクル
- テュランオラクル
- Casperは何を解決するか
- 非中央集権化
- 電力消費の削減
- スケーラビリティ
- Proof of Stakeの問題
- Casperのロードマップ
https://github.com/ethereum/cbc-casper/
https://github.com/ethereum/cbc-casper/wiki/ELI5
https://github.com/ethereum/cbc-casper/wiki/Resource-List
https://github.com/ethereum/cbc-casper/wiki/FAQ
https://github.com/ethereum/wiki/wiki/Sharding-FAQ