【有望プロジェクト紹介】③ MimbleWimble Protocol (Beam/Grin)

(2019年1月追記)
BeamはMimbleWimbleプロトコルを実装した初プロジェクトとして1月3日にメインネットを迎えました。Grinも無事1月15日にメインネットを迎えています。

ミンブルウィンブル」という名前がまず良いですね!このプロトコルが提唱されたのは2016年7月。提唱者したのはハリー・ポッターに出てくる「ヴォルデモート卿(Lord Voldemort)です。当時かなり話題になったと聞いています。

ヴォルデモート卿

ハリー・ポッターでは「ギルデロイ・ロックハートと呼ばれる魔法使いがこの呪文を使用し、この呪文にかかった人は魔法を唱えることができなくなったようです。

その後Andrew Poelstraという方がBryan Bishopさん (現 BEAMのアドバイザー)などのヘルプを得て同年10月に正式なポジションペーパーを公表しました。

約1ヶ月後の2016年11月、なんとまたハリー・ポッターに登場する人物が出現します(笑)その時登場したのは イグノタス・ペベレル(Ignotus Peverell)。その際自身のGithubリンクを公開し、翌年3月にGrinのGithubリンクを公開しました。

これがGrinの誕生秘話です。仮想通貨の中で1番ユニークな誕生ではないでしょうか?この時点で他のプロジェクトとは一線を画しているような気がしますね :)
他にMWプロトコルを採用したプロジェクトで忘れてはならないのはBeamです。GrinとBeamの相違点は後ほど詳しく解説します。

さて、このMWプロトコルが提唱された時からずっと期待され、イノベーションと言われ続ける理由は
①プライバシー
②スケーラビリティ&ブロックチェーンサイズ縮小

の2つに大別されます。

つまり、プライバシーを確保しながらも、既存の匿名通貨(Moneroなど)では達することができないレベルのスケーラビリティを獲得した通貨が満を持して世に登場するということです。
(プライバシーはマスアダプションには必須と考えており、世界的にも以前から人気です。誰が誰にいくら送って、そのお金がその後どうなったか追うことができる分散台帳は良いはずがないと認識している人は多く、私も同意です。)

これから技術的側面に触れていきますが、あまり興味がない方のために読んで欲しいところには☆を付けました。


☆MimbleWimbleプロトコルを紐解く

MWプロトコルでは「ウォレットアドレス」が不要なので存在しません(すごい所①)。また、送る通貨量の情報もノードに送られません(すごい所②)。MWプロトコルは「機密取引(Confidential Transactions)」のコンセプトに由来しており、blinding factorという盲検化させる方法も用いて匿名性を確保します。大事な事は、すべての取引がデフォルトで匿名になるということです(プライバシーのon-off機能はありません。というか、そういった機能は本来不要で、プライバシー通貨はデフォルトでプライバシーでないと意味がありません。また、リング署名やゼロ知識証明(zk-snark)のような通常のトランザクションを暗号化・隠蔽する技術ではなく、トランザクション自体が元からプライバシーで、アドレスや取引量の情報をそもそも含んでいないことが重要なポイントです。匿名通貨の比較記事で再度触れたいと思います。)。

更に面白いところは、AからBに、そしてBからCに送金した場合、残るのはAからCに送った状態だけで、Bを介していますがそのデータはブロックチェーンに残りません(すごい所③)カットスルー(Cut-through)と呼ばれる技術です。必然的に保存するデータ量がかなり減るのでブロックチェーンサイズは縮小します(すごい所④)。もしBeamがビットコインと同じ量のトランザクションがあると仮定した場合、Beamのブロックチェーンサイズはビットコインの3分の1以下になるといわれています。同じ仮定の下、Bulletproofs実装後のMoneroと比較すると15分の1、Zcashと比較すると30分の1。BeamもGrinもかなーり小さくなるということが分かると思います(逆にいうとMeneroとZcashは大きすぎで、ここがMoneroとZcashのクリティカルな欠点と言えます)。一般的に、ブロックチェーンサイズが小さいとノードはネットワークに参加しやすくなり(スマホですらノードになることができます)、更なる分散化、より向上したスケーラビリティを獲得できることに繋がります。

他の通貨と異なり、何か新しい技術を付け加えて匿名化する訳ではないんです。むしろ情報を抜くことで匿名化し、かつそれがスケーラビリティにも繋がるという革新的なプロトコルです。「Game changer」という名前が相応しいと思います。


☆アドレスがないのにウォレット間の送金はどうやるの?

BeamやGrinをトレードしたいと考えているのであれば知っておかないといけない内容です。MWプロトコルでは「ウォレットアドレス」というものが存在しませんので、代わりにトランザクションを行うのに送金者と受信者が相互作用(interaction)しなければなりません。ETHのように送る量とアドレスを入力して送金!受信者に勝手に届いている!という訳にはいかないということです。

ちょっとこれは面倒な気がします。実際どういった流れになるのか少し解説してみます。

BeamもGrinも実際に相互作用をしてくれるのはウォレットです。相互作用はお互いネットに繋がったパソコンを開き、かつウォレットを開いていればウォレットが自動的に相互作用してくれますので何の問題もありません。相互作用するためにはまずウォレット同士を紐付けする必要があるので、ウォレットが生成する文字列を相手側に知らせ、相互作用を完了させる必要があります。その後資金を送ります(現状、この文字列は「アドレス」と呼ばれていますが、私達が知っているアドレスの役目はなく、ただ紐付けするために使用される文字列なので、いずれアドレスという言葉は使用されなくなると思います)。Beamでは現段階では24時間有効の文字列ですが、これも将来的には自分で調整できるようになる予定です(そのウォレットに特有でずっと有効な文字列も出るようになると聞いています)。

問題となる可能性があるのは受信者側がオフラインの時です(送金者側がオフラインの時はそもそも通貨を送金しません)。もしオフラインの相手に一方的に通貨を送った場合、

①一定期間受信者がオンラインに来なければそのトランザクションはキャンセルされる
②一定期間内にオンラインに来た段階でトランザクションが作成される

という2つのパターンになります。詳しい説明は省きますが、Beamはsecure bulletin board system (SBBS)を用いて、Grinはemailかシグナルを用いてお互い同時にオンラインにいなくても送金が完了できるよう開発されています。(紐付けする文字列が長い期間有効であれば①の問題も解決されますし、その待ち時間の間安全にトランザクションを待機できるような技術がBeamでは実装されています=SBBS

上記のように、そもそもアドレスがないためブロックチェーンには記録されませんし、送られた資金量の情報も記録されません。これがMWプロトコルがイノベーティブと言われる1つの理由ですが、なぜでしょう。これは、トランザクションのインプット量とアウトプット量は常に同じで、引き算するといつも必ず「0」になるからです。1BEAM送れば1BEAM届きますから、1−1はゼロ。こういった相互作用をまず行うことで、不要な情報をブロックチェーンに書き込む必要もなく、匿名性が保たれ、ブロックチェーンサイズが劇的に縮小する訳です。詳しく理解したい方はGrinのGithubこちらの記事を参照のこと。


☆改良版Dandelion(ダンデライオン=タンポポ)

これもGrinとBeamを語る上で絶対に忘れてはならない技術です。実はMWプロトコルは何もかも完璧な100%完成されたプロトコルではありません。懸念されたことは、

①がんばってノードを辿ればIPアドレスを突き止めることが可能ということ
②悪いノードがあると、そのノードが取引情報を受け取る最初のノードであった場合にトランザクション・グラフがバレる可能性があること(詳しい説明は省きます)

そんなことする人いないかもしれませんが、①の懸念点を払拭するためにDandelionという技術が2017年に発表されました。Dandelionと名付けた人のセンスは素敵です!まさに「タンポポ」のイメージです。

つまりトランザクションを受け取ったノードは次のノードへ情報を送りますが、これが「タンポポの幹フェーズ(stem phase)」。その後ふわりとふくらむ「fluffフェース」が来て、どんどん他のノードに拡がっていく訳です。技術的にはこんな単純ではなくもっともっともっと複雑です。また、②の懸念点を排除するため、特にBeamではTXマージダミーUTXOなどの改良されたDandelionが導入されています。MWプロトコル単独では懸念された①と②が改良Dandelionのお陰で改善された訳です。素晴らしい!(※ダミーUTXOはBeamだけに導入された技術なので、Beamの方がより匿名性が優れると言えるでしょう)

https://github.com/BeamMW/beam/wiki/Transaction-graph-obfuscation
https://github.com/mimblewimble/grin/blob/master/doc/dandelion/dandelion.md
https://medium.com/beam-mw/about-dandelion-and-mimblewimble-e083597e0355


その他の技術

Schnorr signature適合性(マルチシグ含む)

Scriptless Scripts(これが将来的にkeyとなるかと)
https://www.youtube.com/watch?v=ovCBT1gyk9c&t=1s

Bulletproofs with batch validation:新しいプロトコル(non-interactive zero knowledge range proof)ですね。 最近モネロも実装したbulletproof。MWプロトコルでももちろん導入されています。実は冒頭で紹介したMWプロトコルの第一人者であるAndrew Poelstraさんはbulletproofsを提唱した1人です。

flyclientブロックチェーンサイズが更に軽くなり、同期がとても早くなる大事な技術の1つ。

Pedersen commitment:MoneroもZcashも採用していますね。


☆BeamとGrinの比較

(2019年1月追記:BeamはMimWimを実装した初プロジェクトとして1月3日メインネットを迎えました。Grinも無事1月15日にメインネットを迎えています)

これまではBeamとGrinのコアとなる技術をまとめてきました。ある程度理解できたかと思いますが、ここからはBeamとGrinの相違点について解説し、この2つのプロジェクトの理解を深めていきたいと思います。方向性が異なるだけに、違いを理解することは必須です。

☆概要

Grinの面白いところは、①全てボランティアで開発され、②なので開発は遅く、③寄付で集まったお金を開発者はもらっている、といった所でしょう。「Grin」の由来はハリー・ポッターに出てくる魔法使いの銀行「Gringotts Wizarding Bank」です。

BeamはGrinと異なり、①ボランティアではなくBeamプロジェクトとして始動、②優秀な開発者を有するため開発スピードは爆速、③少額の投資をVCから受け、メインネット後はtreasuryモデルを採用しています。treasuryモデルを採用しているプロジェクトで代表的なのはZcashでしょう。一定期間のみ、マイニング報酬の一部がチームや投資家に割り当てられるというモデルになりますが、Beamの場合はその報酬が5年かけて少量ずつ配布されるので、彼らの長期的な開発モチベーションに繋がることになります。一般的なICOモデルとは異なり突然大量のトークンがリリースされる訳ではありませんし、GrinもBeamもプレマイニングのないPoWコインですから、ICOプロジェクトの上場後に見られるようなdumpの懸念はないでしょう。

強調しておきたいところは、2018年4月に始動したBeamは今年9月にテストネットを公開しています。たった5ヶ月です。しかも6月の時点でコード評論家がBeamのコードを称賛しています。Quarkchainもそうでしたが、開発スピードが早いことは称賛されるべきです。

☆コインエミッション

ここの違いが本当に大きいです。

BEAMのコイン数は約2億6300万枚が上限。Grinのコイン数は無限(笑) 1分のブロックで60GRINが一生リリースされ続けます。もちろんBEAMは半減期あり。

Grinのコインインフレーション
https://docs.google.com/spreadsheets/d/1hGyC8tSivtZqjlu8aQgjG0pKfKc0L0RO0leMfjPADp0/edit#gid=0
最初の3ヶ月、400%です。意味が分かって買うならともかく、意味分からず買うならおバカです 笑 要注意!

この2つの通貨は目的が異なるのでこの大きな違いがあっていいんです。Grinは日常的に使用される通貨(金属でいうと鉄)、Beamは価値保存としての通貨(金属でいうと金)を目指しています。Grinが考えているmonetary policy(通貨政策)も十分理解できます。下記記事参照。
https://www.tokendaily.co/blog/on-grin-mimblewimble-and-monetary-policy

普通に考えて通貨を買ってhodlするならBeamだと思います。が、GrinはGrinでhypeで値段が上がることがあるだろうなと思っています。

プログラミング言語

BeamはC++、GrinはRust

少なくとも現段階では、どっちが良いか悪いかの質問は宗教を比較するようなものです。Rustは世に出て10年も経っていません。C++は30年以上使用されている言語で、私達が使用しているソフトウェアの多くはC++が使用されていると思います。

RustはC++よりも安全と考えられており、Grinはそちらを使用。一方BeamはRust自体まだ未熟なだけに(未だに脆弱性が見つかることもあるらしい)、通貨として今世に出すのであればC++がベターと判断してC++を使用しています(20年も経てばRustにすべて置き換わるかもしれませんが、まだ試作段階とも取れるRustを現状使うのはリスキーと捉えたようです)。

マイニングアルゴリズム

Beamは修正を加えたEquihash、GrinはCuckoo cycle(Cuckatoo32+ & Cuckaroo29。最初の2年のみデュアルPoW)。こちらもプログラミング言語の時と同じように、Beamはマイナーが移行して来やすいようにより一般的なEquihashを採用しています。事実、たくさんのマイナーがBeamに流れると私も予想しています。一方、Grinは新しいアルゴリズムを用います。

BeamのEquihash記事。ASICにも触れている記事で、彼らがEquihashをチョイスした理由がよく分かります。

GrinのCuckoo cycleとデュアルPoWの説明。
https://github.com/tromp/cuckoo/blob/master/doc/cuckoo.pdf
https://blog.blockcypher.com/an-introduction-to-grin-proof-of-work-103aaa9f66ce

デスクトップウォレット

BeamはかっこいいUIのウォレットを出しています。Windows、Mac、Linux対応。

GrinはCLIというコマンドを直接入力して操作するインターフェースのウォレットが用意される予定です。BeamはCLIにも対応しているようです。Grinはさすがにまだウォレットにまで手を出せる開発状況ではないような気がします。

モバイルウォレット

BeamはAndroidとiOS用にリリースされるのが決まっています。おそらくAndroid版はメインネットまでにリリースされます。Grinはモバイルウォレットはリリース予定ありません。Beamのモバイルウォレットはノードとしても機能できるようになると聞いています。

ちなみにBeamはハードウェアウォレットの会社とも相談中で、いずれハードウォレットで保管できるようになると思います。

ウォレット内でのアトミックスワップ

Beamはビットコインと、GrinはETHとアトミックスワップ可能になる予定。

Auditability(外部監査適合性)

Beamだけの機能。Beamが理想の匿名通貨になろうとがんばっていることが伝わってきます。実際ビジネスで使用される状況となった時、外部監査を求められることがあると思います。このBeamの機能は本人の許可が必ず必要になるopt-in機能で、MWプロトコルに付け加えたものです。後日解説しますが、モネロなどの他の匿名通貨よりもBeamの方が良いauditabilityを有しています。

Fungibility

この言葉聞いたことがありますでしょうか?とても大事な概念で「代替可能性」と訳されます。日本円の1万円は銀行から下ろしてもお小遣いでもらっても1万円は1万円です。しかし、多くの仮想通貨の場合はその通貨がどういったウォレットを辿って来たのか判別できます。もし今あなたが保有している通貨が流出事件で流出した通貨であったり、悪い人が以前保有していたと知ったら価値が下がると思いませんか?つまり履歴を追跡できる通貨は厳密にはFundibilityがないと判断されます。一方で、一般的には匿名通貨はFundibilityを有しています。その中でもGrinやBeamは、上記特徴からより良いFundibilityを有していると考えられています。

Confidential Assets(機密資産)

BeamもGrinもそれぞれのチェーン上で機密資産となる別の通貨を発行できるようになる予定です。実際どういった機能となるかはまだ明らかにされていません。
https://www.grin-forum.org/t/confidential-assets/1217

量子コンピュータ耐性

アウトプットされるデータ自体がハッシュ値データを含んでおり、もし今後量子コンピュータが現実問題となるのであれば更なる技術を上乗せ可能とのことです。

☆BeamとGrinの関係性

超仲が良いです。決してライバルの関係ではないので、むしろ日々情報交換し、BeamがGrinの開発を手伝ったりすることもあります(事実、Beamが世に出てきてからGrinの開発が加速されました)。また、BeamはGrinに資金を寄付したりと、かなり良好な関係を築いています。とてもいいことですね!

更なるスケーラビリティのために

価値保存(store of value)だけであれば大きな問題ではないかもしれませんが、日常決済に使用されるためにはレイヤー2スケーリングを導入する必要が出てくると思います。ブロックチェーンサイズは劇的に縮小しましたが、TPS(transction per second)がまだ高くないためです。BTCに導入可能なスクリプトをGrin、Beamとも導入可能なので、Lightning NetworkやThunderellaのような技術がいずれ導入されると思います。


☆MWプロトコルを知らないのは日本人だけ?

当然Vitalikも知っています。しかも認められたアルトの1つとして2018年9月の段階で取り上げています。まだ世に出ていないのに、LTCとMoneroと並んで。Beamのことはこの時点では知らないようです。


Vitalikはクリプト界隈で1番有名です。その次に影響力が大きく2番目に有名なのが Andreas M. Antonopoulosです。ちなみに今月ETHの本を出版しました!
彼も自身のYoutubeでMWプロトコル+Dandelionを解説し、絶賛しています。


4番目に影響力が大きいと言われるErik氏も両方とも知っています。


5番目に影響力が大きく、Zcashの創設者でもあるZooko氏もBeamを紹介しています。もちろんGrinも知っています。


7番目に影響力が大きいCharlie。Litecoinの創設者ですね。彼も最近テレグラムでMWプロトコルを褒めました。


9番目に影響力が大きいJameson氏は2018年9月にBeamもGrinも推しています。確かにMimWimはCypherpunk protocol!!


マイニングで有名なnotsofast氏はBeamとGrinが世に出てくることを楽しみにしているようです。

満を持して登場する革新的プロトコルを実装したプロジェクト、BeamとGrin。決して最近世に出てきた実験段階の新しいプロトコルではありません。日本人だけ置いてけぼりは避けたいところです。2019年はSTOの年と言われますが、いやいや、利益を得たいなら2019年はPoWコインだと私は思います。トレードするかどうかはともかく、せめてMWプロトコルの行く末はフォローしておいた方がいいように思います。bearishな相場なので道のりは険しいかもしれませんが、BeamもGrinも時価総額上位に躍り出て名を馳せてもおかしくないと私は思っています。

最後に

技術に裏付けされたプロジェクトは強いです。BeamとGrinがすごいのは、革新的なMWプロトコルに改良Dandelionを代表とする複数の技術を付け加えて非の打ち所がないようにしたところ。そして他の競合匿名通貨では達し得ない領域に達したところ。
次回は競合プロジェクトとの比較をしたいと思います。匿名通貨といえばMonero、Zcashでしょう。他にもありますが、匿名性という観点からはやはりこの2つが秀でています。乞うご期待!



全ての記事を無料で公開しています!
Medium記事では記事の最後にチップをお願いすることにしました。
記事を読んで本当に勉強になったという方、ご協力頂ける方のみにお願いしています :)

BTC:1J8r5KfnMyMrVMqetsTMBsr7BDxnS4qiXn

ETH:0xa0be1D28A6A07ce0F631cF34b12Bcf231C183e3E

XRP:
 アドレス:rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh
 タグ:100311512

「記事無料公開の経緯とチップに関して」はこちらをご確認下さい。
https://goo.gl/JwtpyN

Ryu Twitter: https://twitter.com/Ryugunsun
Ryu Telegram: https://goo.gl/LnDme6