トークンエコノミーとITコンサルタント

旧帝大大学院卒業後、SIerからコンサルに転身した筆者が、トークンエコノミー、暗号通貨、構成技術やプロトコルについて学ぶブログになりました。最新の暗号通貨レポートの翻訳、ソースコードの解説、技術動向、週次レポート、など。特に、データ活用ビジネスの分界点・テクノロジー、資産価値を運用するテクノロジーも含めて書いていきます。

blockchain.tokyo#8の感想

先日5/24、初めてblockchain.tokyoに参加してきました。

アジェンダはPoSコンセンサスアルゴリズムに関するテーマ。

PoSの中でも知名度が高いCasperFFG、Tendermintを紹介していたのですが、
Tendermintのところは予習していた分かなり理解が早かったけどCasperはほぼほぼ無知の状態。

1.Casper FFG

Casperはメインチェーンから分岐したチェーンの中でどのチェーンがメインチェーンかをチェックポイント(ブロック)ごとに確定させていくため、
ノード間のトランザクションを非同期的にファイナリティをとるPoWに基づく多くのコンセンサスアルゴリズムとは異なり、同期的なアプローチをとります。
※非同期にファイナリティというより、確率的ファイナリティが正しいかもしれません。

ファイナリティが非同期の場合、最近話題のモナコインのSelf mining によるreorgやBTGへの51%攻撃(Double Spend Attack)を受ける可能性があるが、CaspreFFGは同期的にバリデーターでの多数決を行うため、次のブロックがJustifyされたタイミングでファイナリティを得ることができます。

・マイニングによって後続のブロックを生成(PoWと同じ)
・生成後、特定の数がきた時点でブロックのファイナリティをする
・分岐がある場合、分岐に対してバリデーターが投票を行う
・投票が2/3以上に達したブロックの分岐を正式な分岐として確定
・投票はノード単位で行われる(WPでは分岐に対しての投票に見えるが、ソースコードはノードに対する投票)

大きく誤解を招きそうだったのが、厳密には分岐に対する投票ではなくバリデーターのノード単位での投票であるということ。
その場合、話者の方も話していたが、間違って投票した先の分岐のトランザクションはどうなるのかということと、
個人的疑問だったのは、同一ノードでの分岐がある場合の決定方法というところだったり、
まだまだ理解を深めたいところ。

2.Tendermint


Tendermintはpre-commitとpre-voteの2段階でのファイナリティを確保する仕組みになっている。
pre-voteで新規生成されたブロックの中で、バリデータの投票を集める。集める期間は一定期間で、2/3以上であれば
pre-commitプロセスへ状態遷移をする。

pre-commitプロセスでは、実際にコミットを確定するため、2/3の承認を集め、集められなければ再度次のラウンドで
pre-voteプロセスから始まる。

tendermintのポイントは、pre-commitの後に新しいpre-voteブロックが生成されない限り、
そのブロックのバリデータはpre-commitを行うことができないというところだろう。
この仕組みからわかる通り、TendermintはCasperとは異なりPoWの拡張ではない方法で
フォークの分岐自体を防ぐ方法、という理解が正しいだろう。

また、TendermintがTendermintベースのトークンとコインの交換を行う場合は、トランザクション前に
プロトコルを確認するみたい。そりゃそうだろとは思うが。

bitFlyer ビットコインを始めるなら安心・安全な取引所で