仮想通貨のあそび場

仮想通貨の情報や、マイニングに関する情報を2016年から細々と紹介

Moneroに新たに実装される予定のBulletproofsとは?

f:id:miniminiplant:20180212110448j:plain

BulletProofsがMoneroに導入

先日のブログ記事で、2018年BulletproofsがMonero(XMR/モネロ)に実装されそう、という話をしました。

www.monero.tokyo

しかし、Bulletproofsについて解説されているサイトが日本語だとなかなか見当たらなかったので、
スタンフォード大学で公開されている論文を参考に、記事にまとめてみました。

crypto.stanford.edu

▼目次

 

Bulletproofsとは?

『Bulletproofs』は一言でいうと、『信頼されたセットアップ』を必要としない、短い非対話型ゼロ知識証明です。

Bulletproofsのゼロ知識証明をつかうことで、暗号化されたメッセージが正しく復元されていることを検証者は確認することができます。

ゼロ知識証明について説明は割愛しますが、Wikipediaや怪傑Zさんの記事がわかりやすいです。
https://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%AD%E7%9F%A5%E8%AD%98%E8%A8%BC%E6%98%8E

www.zbaron-newworld.com

ゼロ知識証明『zk-SNARKs』との違いは?

既存のゼロ知識証明を用いた手法として有名なのはZcashでおなじみのzk-SNARKsかと思います。

最近はイーサリアムでも導入されさらに有名になりました。

そのzk-SNARKsと比較して、Bulletproofsは『信頼されたセットアップ(Trusted setup)』を必要としません。

『信頼されたセットアップ』とは、Zcashでいうところのzk-SNARKsのような、ゼロ知識証明のコアになる処理やパラメータなどを指しています。

『信頼されたセットアップ』には課題として、内部パラメータを知られてしまうとシステムを思うがままに使われてしまう可能性があります。

COINPOSTさんの記事や、Zcashのコミュニティの記事で詳しくまとめてあります。

 

coinpost.jp

www.zcashcommunity.com

信頼されたセットアップ(Trusted setup)

Zcashでは、使われるランダム生成パラメータを破壊するセレモニーなどを行い、
『信頼されたセットアップ』の信頼度を高めるよう工夫しています。

Bulletproofsでは、その『信頼されたセットアップ』を必要とせず、zk-SNARKsのようなゼロ知識証明を行い、
情報の秘匿性を高めることが可能です。

そういったメリットがある一方、Bulletproofsの検証は、zk-SNARKs証明を検証するよりも時間がかかってしまうデメリットも存在します。

具体的にMoneroがどう変わるのか?

BulletproofsをMoneroに導入することで、Moneroの機密トランザクションのデータ量が大きく減ることが期待されています。

トランザクションのデータ量が減るということは、送金にかかる手数料がその分少なくすることができるようになります。

つまり、Bulletproofsを導入することで、匿名性を担保したままで、送金手数料は今よりも少なく、
トランザクションサイズは小さくすることが可能になります。

なぜMoneroに導入される?

Moneroでは、送金額・送金先・送金元など、全ての情報を匿名化し、暗号化することに重きを置いています。

そのため、情報を隠すためのデータも、少なからず生成・使用しており、そのデータ量の分、送金手数料も支払っています。

Bulletproofsを使うことで、ビットコイン(BTC/Bitcoin)など暗号通貨において、
送金される金額を隠された『機密トランザクション』を効率的に生成することができるようになります。

すべての機密トランザクションには、トランザクションが有効であることを証明するデータが含まれていルわけですが、
Bulletproofsをつかうことで、その証明データのサイズが10kB以上から1kB未満に縮小されることになります。

例えば、仮にすべてのビットコインのトランザクションが、機密トランザクションを利用しているとしたとき、
ブロックチェーンの合計サイズは現在使用されている証明方法の場合、サイズがの160GBに対し、
Bulletproofsを使用する場合、17GBまで抑えることが可能になります。

Bulletproofsの他の用途

Bulletproofsには、機密トランザクション以外にも、

  • 支払い能力の証明
  • 機密下でのスマートコントラクト
  • Σプロトコルの一般的な置き換え
  • ちょっとしたシャッフル

など、仮想通貨で使われる暗号プロトコルで多くの利用法があります。

Σプロトコルの説明はこちらがわかりやすいです。
http://lab.iisec.ac.jp/~arita/pdf/sigma.pdf

まとめ

最近Moneroをはじめ、匿名系通貨は悪の温床!という風当たりがまた強くなってきました。

しかし、匿名性をより良い形で導入するため、こういった技術的な進歩がいち早く導入されるのも匿名系通貨のいいところでもあります。

ひっそりと匿名系通貨の基盤を固めていける時期にきているのかなとも感じます。

とはいえ、今年はこのような技術的な進歩や、何度も過去記事にしてきたようなプライバシー性の確保について、光が当たるといいなとも期待しています。