Facebookの仮想通貨Libraは設計的には失敗するだろう

みなさんこんにちは。

昨日、Facebook主導の仮想通貨・ブロックチェーンLibraが発表されました。

(ツイッターアカウントの最後にアンダーバーが付いてるの、@Libraを買い取れなかったんやな…)

さて、Libraに関する事実解明はtwitter等でそれなりに進んできているのでもう価値はないでしょう。

今回は経済学的、技術的観点からLibraの設計のどこが新しくそしてどこが昔ながらの悪いものを引きずっているのか、そしてどんな新規性ある悪い部分があるのかを見ていきたいと思います。

第一印象

奇遇にもオジキと同意見です。

期待はずれでした。

※あくまで期待値との差の観点で相対的に期待はずれだったということを意味しており、絶対的な評価を下すものではないことにご注意下さい。

設計

こちらのホワイトペーパーをもとに、設計を要約し、ところどころ突っ込んでいきます。

https://libra.org/ja-JP/white-paper

  • 金融包摂を推進する目的
  • LibraBFTと呼ばれるBFTタイプのスケーラブルなコンセンサス
  • スマートコントラクト用のプログラミング言語「Move」
  • UTXOモデルではなくアカウントモデルを採用する
  • 通貨Libraは単一通貨ペッグではなく様々な通貨や資産のバスケット担保制

目的

お、おう。という感じで特に突っ込みどころはありません。

BFTアルゴリズム

おそらくここは最新鋭です。良いところ!

LibraBFTは、HotStuffという最新鋭BFTアルゴリズムの応用だそうです。

HotStuffは、TendermintやCasperがtwo chain commit ruleなのに対して、three chain commit ruleを採用するBFTアルゴリズムだそうです。これによって、safetyとかかる時間のトレードオフを改善しているのかな。

Tendermintのtwo chain commit ruleに関してはこのへんみるとわかりやすいかもしれません。

Tendermintにおける二段階投票 – LayerX Research

プログラミング言語Move

Ethereumスマートコントラクト用言語solidityとかとは全く別物ですね。

public main(payee: address, amount: u64) {
  let coin: 0x0.Currency.Coin = 
  0x0.Currency.withdraw_from_sender(copy(amount));
  0x0.Currency.deposit(copy(payee), move(coin));
}

KeyValueStore(いわゆる辞書式のデータ構造)にアドレスを索引として残高を足し算引き算して入れるだけのようなものではなく、諸々が糖衣された比較的「高級」な仕様に見えます。

※高級低級は、お値段が高いとかそういう意味ではありません。

「スマートコントラクト」の土俵でみるなら、Moveは形式検証に続く安全なアプローチとして評価することはできると考えられます。

しかし、なぜ今更、インターオペラビリティのアプローチを採らないのかという疑問が出てきます。

一極集中のスマートコントラクトでは、いずれスケーラビリティ問題に直面するため、PlasmaやStateChannelといった手法で回避する必要が出てきますし、既存のスマートコントラクトプラットフォームと共存せず完全に競合します。

つまりLibraは全く新しいものではなく、EthereumやEOSといったスマートコントラクトプラットフォームの焼き直しということになります。

現在はパーミッションドで、コンソーシアムとしてはすごいのですが、いずれパブリックブロックチェーンになるようなので、完全に競合になります。

アカウントモデル

ブロックチェーンを 取引のブロックの集合体とみなす既存のブロックチェーンとは異なり、Libraブロックチェーンは取引の履歴と経時 的な状況を記録する単一のデータ構造をとります。これにより、ブロックチェーンにアクセスするアプリケーションの 動作を簡略化できるため、任意のデータを任意の時点から読み、統一されたフレームワークを使用してそのデータの 完全性を検証することができます。

これはUTXOモデルではなくアカウントモデルであることを長々と言っているに過ぎないと考えられる(自分以外も同意見多数)のですが、これは全く革新的な話ではありません。Ethereumもアカウントモデルです。

バスケット担保

一番注目されるところでもあると思います。

少し解説します。

ここに、2ドルあったとします。2ドルを担保に2ドルステーブルコインを発行します。これは、単純なドルペッグですね。Tetherと同じ仕組みです。

次に、リプラのバスケットは「ドル1単位と円100単位の和」と決められていたとします。仮にドル円が1ドル110円だとしましょう。

このとき、リプラのドル建ての理論レートは、加重平均として求めることができます。

[latex]\frac{1}{1}+\frac{100}{110}=1.909090[/latex]

1リプラ1.909090ドルということになります。

この仕組みは、完全にIMFのSDRと同じです。

SDR構成通貨とSDR価値の計算方法は5年に一度見直しが行われており、直近には2015年に見直しが行われた。2018年現在のSDRの価値は0.58252米ドルと0.38671ユーロと11.900日本円と0.085946イギリスポンドと1.0174人民元の和である

特別引出権 – Wikipedia

XDRという通貨単位も用意されています。 SDRはIMFが主導していて通貨単位も用意されており、これがドルに変わる世界の基軸通貨になればいいやんと思う方も多いでしょう。

しかしながらここでSDRの現状をみてみましょう。

前述のとおり、SDRは米ドルに代わる公的準備資産となることを目的に創設されたが、2016年現在、SDRが世界の外貨準備全体に占める割合は3%を下回っている。[15] 2009年3月には、中国人民銀行総裁の周小川が公的準備資産としてのSDRの使用拡大を提案して国際的な議論を巻き起こす[16][17]など、SDRの活用に向けた議論は行われているものの、2018年時点で大きな進展はない。

特別引出権 – Wikipedia

あまり使われていません。。。

IMFが主導していてなおかつ通貨単位も用意されていながら、基軸通貨として使われていません。

考えられる理由としては、ドルとかそのままつかったほうがはやいのでしょう。

もちろん、LibraはSDRよりもUXが全然いいのだから、ベネズエラやジンバブエの国民は使うだろうとの推測も全くあり得る話です。

が、ベネズエラやジンバブエの国民も、ドルとかそのままつかったほうがはやい説ありますよね

実際、ジンバブエでは米ドルや南アランドが流通しています。

ハイパーインフレーションによってほとんど価値を失い、2009年4月12日をもって発行が停止された。2016年現在、法定通貨として米ドル、ユーロ、英ポンド、南アフリカ・ランド、ボツワナ・プラ、中国人民元、インド・ルピー、豪ドル、日本円の9種類が認められている。なお、街中で実際に使われているのは主に米ドルとランドである[5]。

ジンバブエ・ドル – Wikipedia

したがってLibraがSDRの二の舞にならないためには、ドルとかそのまま使ったほうがはやいという難問を乗り越えなければなりません。

ここで、1 Libraを必ずしも任意の地域通貨で同じ金額に交換できるとは限らないことを強調したいと思います。これは、Libraが単一の通貨に固定されていないためです。裏付けとなっている資産の価値が変動するのに合わせて、任意の地域通貨に対する1 Libraの価値も変動することがあります。

The Libra Whitepaper

参考

そもそも通貨は、「みんなが価値あると思いこむから価値がある」という苦しいトートロジーだけで価値を説明することはできません(相場変動にはその説明も使えるが…)。

「納税に使える」から価値があるんですよ。

課題

オジキは間違っていますが、決済時点で差益があれば課税されます。

こんな税制上面倒なリブラを日常で使う人はまず日本には出てこないでしょう(法律も悪いけどさ…)。

インフレの激しい発展途上国で使われるかといえば先程のとおりドルとかそのまま使ったほうがはやい問題に対する解が必要となります。

しかしながら全体的には珍しくオジキは正論を言っているように個人的には思います。

まとめ

  • BFTのアルゴリズムは最新
  • 今更VM?既存チェーンと競合。
  • バスケット制はSDRの二の舞にならないのか。納税に使える単位でもない
  • 納税に使える単位でもないし、ビットコインとバチバチに競合するつもりだろうけども、資産の性質からして別物(ビットコインはコモディティ)で、リブラのほうが中途半端な立ち位置
  • コンソーシアムとしては史上初レベルのムーブメントだがパブリックに移行するのであればとくに目新しくない

ただし、もちろん↓

※ドキュメントの質も高く、短期間でここまでつくったリスペクトはもちろん忘れていませんことをここに書いておきます