スクリーンショット_2019-08-25_19

EthereumとLibraを比較しよう!

なぜ、Ethereumとの比較かと言うと、LibraもスマートコントラクトプラットホームとしてEtherumの競合になるのでは、と期待されているためです。gumi国光さんのツイートを下記にて引用します。

KFCは、ケンタッキーフライドチキンになってしまうので、KYCですね。Know your customerの略で顧客確認のことです。銀行講座開くときも、仮想通貨取引所のアカウント作る時も、身分証明書を提示して身元を確認されますね。あれのことです。

AMLは、anti-money launderingの略です。KYCが無いと、反社会勢力がマネーロンダリングのために使うことが出来てしまします。そのため通貨として使うことは難しいというご意見です。どうなのでしょう。ビットコインは反社会勢力にマネーロンダリングに使われているというニュースがありましたが、電気代もビットコインで払えますし、家電量販店でも使えます。

Libraを通貨として使えないなら、Libra上でアプリケーションを作る魅力は激減してしまうので、この動向は要注目ですね。個人的にはビットコインのように一部の店舗で認められ出して、問題なければどんどん広がっていくと思っています。

さてそれでは、この記事を引用しながら比較していきます。

LibraとEthereum大きな違いは、LibraはLibra協会に属している企業しかマイナーとして参加できないブロックチェーン(コンソーシアム型ブロックチェーン)であることです。
イーサリアムでは、誰もが平等です。 強力なマシンを購入し、マイナーとしてネットワークに参加し、潜在的にマイニング料金を獲得出来ます。スマートコントラクトの実行に誰でも参加できます。新しいトランザクション・スマートコントラクトの承認をする意思決定者はいません。
Libraは約100人の創設メンバー(検証者)のグループがあります。新しいトランザクションを確認できるのは彼らで、ブロックチェーンを管理するために必要な権限を持っているのも彼らだけです。
これは、中央銀行によって運営される「伝統的な」集中化されたシステムよりも優れているのでしょうか。それはより良いかもしれません。これは、イーサリアムの完全な分散化とはほど遠いものですが、ネットワークの制御は現在、単一の組織ではなく、100の組織に分散しています。100の組織が私達の資産は安全であると確認してくれており、単一の銀行が確認してくれるよりは良さそうです。

オープンなネットワークのEthereumとは全く違い、トランザクションの承認者はLibra協会に選ばれている企業群だけですね。IBMのHyperledgerというブロックチェーンに似ています。非中央集権ではないけど、中央集権から地方分権になるくらいのインパクトはありそうです。Hyperledgerについては以前Voicyで解説したので良かったら聞いて欲しいです^^

イーサリアムでは、ブロックの概念はシステムの中心です。各マイナーはいくつかのトランザクションを取り、ブロックを形成し、最適なナンス値を見つけることでブロックをブロックチェーンに追加します。(Proof of Workというコンセンサスアルゴリズムを採用しています)。
このシステムのセキュリティは、ブロックを作成するのに莫大なコンピューティングパワーを要するという事実に依存しています。 EthereumはProof of Stakeと呼ばれる別のシステムに移行する予定です。Proof of Stakeになれば消費されるコンピューティングパワーを抑えられますが、まだ実行には移せておらず、研究が続けられています。
Libraでは、コアデータ構造にはブロックが含まれていません。したがって、実際にはブロックチェーンではないかもしれません。システムが分散型のプログラム可能なデータベースです。では、Libraのコアデータ構造には何があるのでしょうか?トランザクションです。それらはまだシーケンスを形成し(増え続ける整数で番号が付けられます)、マークルツリーに格納されます。
このツリーのルートにはオーセンティケーター値が含まれています。これは、イーサリアムから既知のブロックまたはトランザクションハッシュに似ています。トランザクションi + 1の認証者は、トランザクションiの認証者に依存します。そうすると、Libraは結局のところブロックチェーンであると言えますが、サイズが1個しかない非常に小さなブロックです。

コンセンサスアルゴリズムについては以前、Voicyで解説したことがありますのでよかったら聞いてみてください。

ブロックに値が1つしか入らないというのは、Libra特有の設計ですね。ブロックのサイズはしばしば議論に上がるトピックで、ビットコインがビットコインキャッシュと分裂した騒動では、ブロックのサイズの問題で開発者・マイナーで意見が割れてハードフォークが起こりました。現状のビットコインのブロックのサイズが1MBで、ビットコインキャッシュは8MBへのアップデートが行われたと記憶してます。

Libraのブロックチェーンのセキュリティは、設立メンバーの大部分が信頼できる(これはProof of Authorityとしても知られている)という事実に依存しているため、はるかにエネルギー効率が高くなります。 
Libraは、Etherumと同じく、アカウントベースのモデルを使用しています。 つまり、ブロックチェーンは、アカウントアドレスからアカウントvalueへのマッピングを含むデータベースを格納します。 各アカウントは秘密/公開鍵のペアに対応しています。
アカウントに保存される値には、Libraコイン(ETH残高)またはデプロイされたスマートコントラクトを含めることができます。
これは、UTXOモデルを使用するビットコインとは異なる方式です。

ビットコインのUTXOモデルについて知りたい方は、こちらもVoicyで解説したことがあるのでよかったら聞いてください。

手数料

振込手数料は金融システムの中で非常に重要な要素です。どちらのシステムも、手数料の処理方法は同じです。スマートコントラクト(ブロックチェーン内のデータを操作するスクリプト)の呼び出しには、ガスという手数料がかかります。ガスの量は、スクリプトの複雑性に依存します。複雑になるほど、実行コストが高くなります。
使用されたガスの量は、ガス価格に基づいて、暗号通貨(ETHまたはLibraコイン)に変換されます。その価格は、既存の需要に応じて変動する場合があります。
重要な違いは、現在、Ethereumでトランザクションを作成するのは非常に費用がかかることです。簡単な転送の場合、約0.02ドル(ethgasstation.infoを参照)ですが、より大きな契約を実行すると、はるかに高くなる可能性があります。
Libraは「低料金」を約束していますが、これはもちろんかなりあいまいです。しかし、グローバル通貨になるという野心を考えると、これらは実際に低いと予想されるかもしれません。

現在、Ethereum上でアプリケーションを作っても採算を合わせるのが難しい理由が手数料が高すぎるという問題ですね。ここがLibraで解決されるなら開発者をより惹きつけることが出来ると思います。

トランザクション

トランザクションの構造は、両方のシステムでほぼ同じです。 以下で構成されます。
・送信者のアドレス、トランザクションを呼び出すアカウント、およびトランザクションの支払いを行うアカウント
・呼び出しで使用される単一のガスユニットに対して送信者が支払うことができるETH / Libraコインの量
・呼び出しで使用できるガスの最大量
・アカウントごとのシーケンス番号、リプレイアタックから保護
・送信者の秘密鍵を使用して作成された署名

パフォーマンス

既存のブロックチェーンテクノロジーは遅いです。ビットコインは1秒あたり3〜7のトランザクションを処理できますが、イーサリアムは15 tx / sです。 Libraは1000 tx / sになる予定です。どのようにして可能なのでしょう?
答えはバリデーターの限られたセットにあり、それによりノードがより早くコンセンサスに達することができます。
コンセンサスは、各ブロックチェーンの中心的な役割です。これは、マイナーがどのトランザクションをデータベースに含めるかについて合意するプロセスです。これは簡単な作業ではありません。ノード間の多くのネットワーク通信が含まれます。一部のノードは不正である可能性があるため事態はさらに複雑になります。
イーサリアムは完全にオープンで、誰もが参加でき、誰もがマイナーになることができます。ネットワークは、Libraの元の100の検証ノードよりもはるかに大きく、執筆時点では、約8000の動作ノードがありました。ただし、パフォーマンスコストが発生し、ネットワークのスループットが制限されます。
Libraにはこの問題はなく、バリデータノードの数に上限があります。バリデータノードの最小ハードウェア要件もあります。これにより、ネットワークトラフィックが減少し、遅延が予測可能になります。

Libraが約束している、秒間1000トランザクションはどの程度Ethereumの秒間15トランザクションよりは圧倒的に改善されますね。ただ、Visaの秒間トランザクションは、4000とも8000とも言われています。そこと比べるとまだまだ性能が足りないと言えそうです。

ブロックチェーンプログラミング

EthereumとLibraは、独自のプログラミング言語を定義して、スマートコントラクトを作成します。どちらも、人間が読める高レベルのプログラム言語を持っており、どちらもバイトコードにコンパイルされ、VM(バーチャルマシン)によって解釈されます。
ただし、類似点はここで終わりです。 Libraホワイトペーパーは、Move言語とオブジェクト指向言語の類似点を示していますが、実際には異なる種類の言語です。
Moveは、コードとデータを厳密に分離するHaskellなどの関数型言語のモデルに従います。
一方、イーサリアムはJavaやC#などのオブジェクト指向言語に従います。
例として、両方のプラットフォームで、ICO用にトークンを実装する方法を見てみましょう。イーサリアムでトークンを作成するには、スマートコントラクトをデプロイする必要があります。
1.ユーザーアドレスと所有するトークンの量との間のマッピング
2.トークンを転送および管理するコード
トークンを別のユーザーに転送するには、指定されたスマートコントラクトを呼び出す必要があります。コントラクト内のコードは、その内部状態(マッピング)を更新します。
Moveでは、トークンに対応する新しいリソース(新しいデータ型)とトークンの操作を許可するコードの両方をデプロイします。これら2つの概念は別のものです。トークンを転送するには、スマートコントラクトを再度呼び出します。ただし、コントラクトには状態が関連付けられていないため、内部状態は更新されませんが、リソースをあるアカウントから別のアカウントに移動します。データは、コントラクトではなくユーザーのアカウントに属します。Moveには、既存のリソース(名前の由来かもしれません!)がコードによってコピーまたは変更されるのを防ぐ安全なシステムが組み込まれています。

Moveについてはまだまだ理解出来ていないのですが、技術ホワイトペーパーの要約やってみたので、是非、読んでみてください。

ネイティブコイン

EthereumのネイティブコインはETHで、LibraのネイティブコインはLibraコインです。
Ethereumの場合、ETHの概念はブロックチェーンソフトウェア自体に組み込まれています。これは、システムに本質的に結び付けられた概念です。 Ethereum VM(バーチャルマシン)には、ETHを送金する特別なインストラクションがあります。
Libraでは異なります。 Libraコインは、スマートコントラクトとして実装されています。ブロックチェーンソフトウェアに直接組み込まれていません。 「システム」スマートコントラクトを作成する特別なジェネシストランザクション(一番最初のトランザクション)があります。これにより、設計がはるかに一般的になり、Libraと非常によく似た動作をする他のコインを作成する可能性もあります。
実際、もう1つのコインがあります。Libra Investment Tokenです。このコインは、協会のバリデーターの賭け金を表すために使用されます。
しかし、Libraコインは1つの面で特別なステータスを持っています-取引手数料の支払いに使用されます。イーサリアムと同じです。どちらの場合も、スマートコントラクトの呼び出しに使用するガスの量は、ブロックチェーンのネイティブコインでアカウントから差し引かれます。
Libraは、ネイティブコインの実装にとどまらず、できるだけ多くのロジックをスマートコントラクトプラットフォームに寄せしようとします。Libra Investment Tokensに基づいて付与された投票によって現在のバリデータセットを選択するプロセスは、スマートコントラクトとしても定義されています。

Libra Investment Tokenというものがあるのですね。これがLibra Associationの会社がどのくらいお金を出したかによって付与されて、マイナーによるトランザクションの承認・ブロックの生成の優先権みたいなものを与えられるのでしょうか。Proof of Stakeと似た仕組みを作るという理解でいいんでしょうかね。

Libraコインの価値

重要な違いは、Libraコインはステーブルコインとして設計されていることです。 ステーブルコインとは値動きが安定しているコインのことです。それは法定通貨での準備金に裏打ちされます(間違いなく多くの米ドル、他の通貨もおそらく)。 これは、その価値がそれほど変動しないことを意味しますが、一方で、オープンで独立した通貨ではありません。
新しいLibraコインは需要と供給によって量を調整されます。 これは、コインの価値が世界経済の条件に密接に結び付けられることも意味します。
一方、ETHは完全にオープンで独立しています。 従来の通貨に縛られておらず、本質的な「現実世界」の価値はありません(法定通貨が何らかの側面で「現実」であると仮定)。 

ステーブルコインについて、Voicyというメディアで解説しているのでよかったら聞いてみてください。

資金管理

ブロックチェーンは一つのことですが、資金を管理する方法は?暗号通貨を取得する方法は?
Libraの発表に加えて、FacebookもCalibraウォレットを作成します。Calibraは、Facebookの子会社です。 Calibraは保管用のウォレットになります。つまり、暗号化キーを自分で管理する必要がない(またはできない)ため、紛失したパスワードを回復して、失われた資金を取り戻すことができます。
ほとんどの人は、一般市民がブロックチェーンとやり取りする主な方法がCalibraになります。
Calibraは、Libraのコインを入手する方法にもなります。会社に政府発行のIDを提供する必要があります。そのため、KYC(顧客を知る)およびAML(マネーロンダリング防止)手順を実装します。
これは、Libraブロックチェーン自体のデータは仮名ですが、Calibraウォレットを通じて、使用するキーにIDをバインドする非常に簡単な方法があることを意味します。
イーサリアムには、さまざまなウォレットとエクスチェンジがあり、コインを入手できます。交換には通常、政府発行のIDも必要です。ただし、ETH暗号通貨は、マイナーになることで(つまり完全に匿名で)取得することもできます。

KYCはあるようですね。それであれば、通貨としての利用も十分可能かもしれません!

認証済み読み取り

Libraがブロックチェーン技術の現在の状態を改善する分野の1つは、読み取りを検証し、特定のトランザクションが実際にブロックチェーンの一部であることを証明することです。
イーサリアムでは、特定のトランザクションがブロックチェーンで発生したことを保証するために、信頼できるブロックから開始して、特定のトランザクションまでずっと履歴全体を再生する必要があります。
Libraには、特定のトランザクションが実際にブロックチェーンのデータベースにコミットされているという比較的短い証明(マークルツリーにも基づく)を取得できる認証読み取りのメカニズムが含まれています。

まとめ

Libraは、Ethreumのような完全な分散化ではないですが、より高いトランザクションスループットとより低い手数料というメリットを提供します。
関数型プログラミングに触発されたスマートコントラクトプログラミングモデルがあります。 スマートコントラクトとして定義されているという事実は非常に魅力的です。
最後に、Libraはまだ初期段階です。利用可能なテストネットがありますが、実装の詳細の多くは、Move言語表現を含め、まだ具体化されていません。さらに、最初は開発者が独自のスマートコントラクトを公開することはできません。Libra Associationが管理する定義済みのセットのみが許可されます。
Libraは、完全に分散化されたブロックチェーンネットワークと中央集権型銀行システムの妥協案です。技術的な課題の多くは延期され、規制順守、準備金の設定、組織の管理に関してはさらに多くの課題があります。
しかし、興味深い技術設計を考えると、Libraの開発に細心の注意を払う価値は間違いありません。

非中央集権のコンセプトは非常に美しいのですが、現状は実現が難しい理念だとも思います。まずは複数の企業が集まった協会による運営、つまり中央集権から地方分権、というステップを経て非中央集権に向かうという流れはあり得るのではないかなと思っています。ということでLibraの動向に一緒に注目していきましょう!

この記事が気に入ったらサポートをしてみませんか?