Stellar Consensus Protocol

筑波大の川島さんに教えてもらって読んだ論文 The Stellar Consensus Protocol:
A Federated Model for Internet-level Consensus
がけっこう面白いので、紹介しようと思う。
32ページの長文で証明つきなのでガッツリ読み込めたわけではないのだけども。。。

Security Council Votes Unanimously to Increase Humanitarian Aid in Syria

背景

Bitcoinを始めとする電子貨幣(暗号貨幣)のブームは大きな投資を呼び込んで市場を開拓しつつある。またBitcoinの署名チェーンの部分のみを応用して、チェーンの合意を独自に構築する類似技術や製品をブロックチェーンと呼んだりする。私の理解だと、いずれもProof of WorkやProof of stakeの部分が難しい。PoWだと必要以上にアナーキーで時間がかかり、やたらCPUを食ってエコではないし、PoSでは結局は既存貨幣と同様に権威による認証が必要になることが問題だ。
既存のByzantine Agreementのアルゴリズムもいくつかあるが、どれも参加ノードが基本的には固定で、「誰が参加してもよいか」というのを中央集権的に管理しなければならない。そしてそれは昨今の暗号貨幣のように、いろんなピアが自由に参加できなければならないオープンなネットワークで使うことはできない。

そこでStellarというプロジェクトでは、異なるアプローチをとって電子貨幣(暗号貨幣)のエコで安全な流通を目指す。Lumenという貨幣はすでに沢山発行されているようだ。

www.stellar.org

その中心になるのが SCP (Stellar Consensus Protocol) で、 FBAS (Federated Byzantine Agreement Algorithm) というやつに分類される。分散合意の説明のために分散台帳の基本部分は論文では省略されているが、おそらくはPeer間のブロックチェーンの合意アルゴリズムの実装に使われていると思われる。

概要

ここまで説明してもうほとんど満足してしまったが、論文自体は実装よりも理論を重視していて、証明や記述がしっかりしている。SCPの基本的なConstructionが論文の大部分を占めている。前提としては、非同期通信で故障、復帰、遅延もあり、悪意のあるノードが矛盾する提案を投げてくる世界。

ノードの集合をQuorum Sliceという重複を許した部分集合に分けてQuorumをとって、そのQuorum内で3Phaseプロトコルを動かすようにすると、ピア同士の与信がネットワーク状に連鎖して、結果的に悪いヤツが少数派になるようになっている。細かい話はうまく理解できている自信がないが…ここから先が気になる人は論文をみてほしい。ちなみにノードの実装も公開されているので、おそらくピアとして参加することもできるだろう。

個人的には、こちらの貨幣の方がかなりクリーンに作ってるようにみえるので、Bitcoinよりもこっちが普及してほしい。