BeamやGrinはMoneroやZcashに勝てるのか
Note
こちらのページでは会員制のリサーチコミュニティ「TokenLab」で18年11月23日に公開したものを無料公開しています。
本レポートではMoneroやZcashとMimbleWimble系コインを簡単に俯瞰しつつ、新興プロジェクトであるBeamが既にポジションを得ている先行者に勝てるのか、という視点で考察していきます。
MoneroやMimbleWimbleの個別の仕組みについては、別レポートでまとめます。SNARK/STARK系もレポート寄稿者を探しているので、自薦他薦あればぜひ。
最近、GrinやBeam等の新興プロジェクトを積極的に調べているのは、個人的に「スマコンプラットフォームと通貨系プロジェクトはやっぱりブロックチェーン技術の適応先として盤石だと思っており、2019年はまた通貨系が盛り上がるのでは」という予感がするのと、「技術の進展によってモバイル端末でも使えるようなものが出てくるのでは」という期待があるからです。
Monero
匿名性
Moneroは送信者、送金額、受信者を秘匿するために、それぞれRing Signature, Confidential Transaction, Stealth Addressという仕組みを使っています。
Ring SignatureはMixinと呼ばれるDecoy(おとり)を混ぜることで送信者を秘匿化するものです。Mixinの数に送信者自身を加えた数をRing Sizeと呼びますが、Ring Sizeは元々ゼロでもトランザクションの生成が可能でした。その後、最低Ring Sizeは0→3→5→7と引き上げられています。
原理的にはMixinの数が多いほうが匿名性は上がる気がするのですが、実際には「全員がMixin7なのに、自分だけMixinを10に設定すると、それが手がかりとなる可能性がある」という面白い性質があります。
「Moneroのトランザクションは完全に匿名なわけではない」と主張するペーパーもあります。
An Empirical Analysis of Traceability in the Monero Blockchain
スケーラビリティ
匿名性を確保するためにRing Signatureを使っており、Mixinという余計なデータを付加する必要があるためトランザクションのサイズ(=ブロックチェーンのサイズ)が大きくなります。
トランザクションのサイズが大きくなれば、ブロック伝播の観点から1ブロック辺りに格納できるトランザクションの数が少なくなるだけでなく、フルノードの運用のために必要なストレージのサイズも大きくなるため、分散性に問題が出てきます。
トランザクションサイズの問題は先日導入されたBullet proofで大幅に改善されています(それでもビットコインのトランザクションの5~6倍の大きさ)。これに伴って手数料も大幅に下落しています。
Zcash
匿名性
名前だけはお馴染みのzk-SNARKs を使ったコインです。zk-SNARKs によって送信者、送金額、受信者の全てが秘匿化されますが、Zcashには通常トランザクションと秘匿トランザクションの二種類があり、通常トランザクションの使用率が非常に高く、その結果秘匿トランザクションの秘匿性も低くなっています。
ZEC: Unmatched Privacy In a Public Blockchain – DigitalAssetResearch – Medium
公式のエクスプローラーを見ても同様のことが確認できます。
ちなみにMoneroは秘匿トランザクション以外のトランザクションを生成することができません。全てのトランザクションを秘匿化することで、木を隠す森の面積を増やしているわけです。
またZcashにはTrusted setupというネットワーク全体の始動にトラストが必要という事実があり、よく批判されるところです。StarkWare等のプロジェクトはこのTrusted setupの必要のないSTARKという技術を開発中です。
スケーラビリティ
トランザクションのサイズは平均してビットコインの約9倍であるため、少なくとも今の所はスケーラブルではないと言えるでしょう。ただし、技術が進展してサイズが小さくなる可能性はあります(EthereumでもプライバシーではなくスケーラビリティのためにSNARK/STARKを使おうという動きがあります)。
またトランザクションの生成に大きな計算力が必要という問題もあります。
Beam
匿名性
MimbleWimbleにはいわゆる「アドレス」というものがなく、ユーザーは自身が編集権(=所有権)を持つUTXOに紐付けられた秘密鍵を所有します。
これはトランザクションそのものの性質であり、秘匿化されていないトランザクションを秘匿化するという手順でなく、トランザクションの仕組みそれ自体に秘匿性がある、ということで、Beamはそれを売りにしています。
これに加えて、Dandelionという仕組みで悪意のあるノードからのトランザクション解析を防ぎます。
Dandelionについては以下のレポートで簡単に解説しています。
スケーラビリティとプライバシーに寄与するMimbleWimbleの概要 - プロトコル - TokenLab
MimbleWimbleの技術的な解説については、解説してくださる方が見つかったので、後日TokenLabで共有します。
スケーラビリティ
MimbleWimbleではCut-throughという仕組みによって、トランザクションのサイズが小さくなるとされています。
Cut-through自体はプライバシー保護というよりも、データサイズを削減してスケーラブルにすることに主眼が置かれているようです(Beamの記事によればビットコインの⅓、Bulletproof導入後のMoneroの1/15のサイズ)。
中間にあるトランザクションの履歴を取り除き、UTXOのみを残す方法ですね。これによってトランザクション数に必ずしも比例しないチェーンサイズを実現できます。Beamチームの試算によると、Beamのブロックチェーンサイズはビットコインの30%くらいということです。
Zcash, Monero, Grin, Beamを比較する
入手できる情報を元に以下の比較表を作りました。特に重視しているのは発行上限とデータサイズです。BTC, XMR, ZECは既にデータが存在するので、Coinmetricsを使って、ブロックサイズ/トランザクション数でトランザクションサイズを算出しました。いずれも過去の累計の平均ではなく、直近三ヶ月のデータを入れています。
またZcashのトランザクションサイズが低くなっていますが、これは秘匿トランザクションの使用率が少ないからであると推測できます。Grinのトランザクションサイズのデータは見つかりませんでした。BeamはBeam側のデータをそのまま載せています。算出式はMediumの公式記事に載っています。
Bitcoin | Monero | Zcash | Grin | Beam | |
---|---|---|---|---|---|
アルゴリズム | SHA256 | CryptoNightV7 | Equihash | Cuckoo Cycle | Equihash |
発行上限 | 2100万 | なし | 2100万 | なし | 2億6千3百万 |
データサイズ | 500B | 3000B | 4000B | ? | 220B |
以下はBTC, XMR, ZECのインフレ率です。上からZEC, XMR, BTCです。
以下はBTC, XMR, ZECのサプライです。上からBTC, XMR, ZECです。
以下はGrinのインフレ率とサプライなのですが、初期のインフレ率が非常に高く設定されていることが分かります。初月はなんと400%のインフレ率です。
データ元
- BTC Charts - Coin Metrics
- ZEC Charts - Coin Metrics
- XMR Charts - Coin Metrics
- What’s the difference between Monero, Zcash, and BEAM?
結論
どうでしょう。時期が時期なら注目されて、ICOなりクラウドマイングなりで大量の資金と計算力が投下されてもおかしくないプロジェクトではありますが、以下の懸念があるかと思います。
- 各技術は検証され信頼性の高いものだとしても、それを統合して通貨として機能させられるかは不明
- 匿名系通貨なので規制の対象となり、アダプションが難しい
- MoneroやZcashに比べて実績がない(当然)
- MoneroやZcashと比べたときの優位性がデータの小ささと仕組みレベルの秘匿性しかない
- 匿名通貨を投機ではなく本気で支援する人は少ない
- BTCのセカンドレイヤーでも匿名性を高める仕組みがある
- MoneroやZcashの技術進展によってMWの比較優位が消える可能性もある
ただし、仕組みとしては非常に面白いと思いますし、Grinはビットコイン型のプレマインなし、BeamはZcash型のプレマインはないけど開発者報酬型で、比較的マシな方法を取っており、通貨系プロジェクトとしてはかなりまともな部類だと思います。
まだ私も調べている最中ですが、機会があれば個人的にコントリビュートしたいと思うレベルではあります。