Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Mimblewimble
さらなるスケーラビリティとファンジビリティを目指す
魔法
Takaya Imai
Co-founder and CTO@United Bitcoiners Inc.
CEO@Frontier Partners LLC
...
自己紹介
• 株式会社ユナイテッド・ビットコイナーズ 共同創業者&CTO
• フロンティアパートナーズ合同会社代表CEO
• マスタリングビットコイン、翻訳者代表
• 2016/7/14出版、先日電子書籍版出ました
• オープンエディション版
...
自己紹介
• バックグラウンド
• 新潟大学大学院 素粒子理論物理 博士(理)
• カカクコム
• 検索エンジン開発 検索サーバクラスタ構築運用 大規模データ処理 機械学
習 画像認識
• データタワー株式会社 代表取締役
• 株式会社ブロック...
経緯
• 2016年8月2日
• <majorplayer> hi, i have an idea for improving
privacy in bitcoin. my friend who knows technology
says th...
Mimblewimbleの当初のホワイトペーパーには不満足
な点もあり、2016年8月以降BlockstreamのAndrew
Poelstra氏らによってさらに発展していっている。
現在の進展まで追うことも考えたが、今回は当初のホ
ワイトペー...
http://www.unitedbitcoiners.com/blog/tumblebit
• 全トランザクション数: 1億5000万トランザクショ
ン
• うち、未使用アウトプットは400万個だけ
Mimblewimble概要
• ブロックチェーンサイズの削減
• 匿名性の確保
これまでの関連研究
• Confidential Transaction, Gregory Maxwell, 2013
• https://bitcointalk.org/index.php?topic=305791.0
• https://p...
これまでの研究の問題点
• Confidential Transactionは秘匿性が素晴らしい。しかし、ト
ランザクションサイズが大きくなってしまう。
• CoinJoinは送金先秘匿性は素晴らしい。しかし、送金額はわ
かってしまうし、トラン...
Mimblewimbleの提案
• これらの問題点をうまく解決する方法
• ブロックチェーンサイズの削減および増加速度低
減
• 送金受金関係と送金額の秘匿
• トランザクション圧縮の簡易化
Mimblewimbleの提案
• 離散対数問題に基づく公開鍵暗号を使用
• ブロックチェーンにはCoinbase TXとUTXOのみを
保持
• いわゆるscriptがない(Scriptless script)
• excess k*G、kに...
大きく3つに分けて順に説明
• トランザクションレベル
• ブロックレベル
• ブロックチェーンレベル
トランザクション
レベル
Confidential Transaction
概要
• 目的の1つ
• 送金額を明示することなく、以下の等式を満たすことを証明する
• 各インプットの金額の総和 = 各アウトプットの総和(おつり含む) + TX手数
料
• 基本アイデア
•...
Confidential Transaction
の変形
• C = r*G + v*H
• C: Pedersen Commitment
• G: Bitcoinでの楕円曲線暗号ベースポイント
• H: Gと同じベースポイント(G <> H)...
Confidential Transaction
の変形
• トランザクションのやり取りの仕方
1. 送金者と受金者での送金額 b に合意する
2. 送金者はトランザクションを作成し、受金者に送る。このとき
、送金者側commitmentは、 ...
Confidential Transaction
の変形• 各commitment
• inputs
• (r*G + v_i1*H) + (r*G + v_i2*H)
• r は送金者が選んだランダムな値
• outputs
• (r’*G ...
Confidential Transaction
の変形
• range proof(OR proof)は、値の範囲証明
• 証明が以下だけだと、お金を消したり増やしたりできてしまう
• 各インプットの金額の総和 = 各アウトプットの総和(おつ...
ブロックレベル
ブロックのシンプル化
• この手順で作ったトランザクションは、複数のトランザクションをミッ
クスできる
• 細かい話をすると、このホワイトペーパーで説明されている方法は単純
にはうまくいかないらしく、BlockstreamのAndrew Poe...
https://scalingbitcoin.org/milan2016/presentations/D1%20-%204%20-%20Andrew%20Poelstra.pdf
https://scalingbitcoin.org/milan2016/presentations/D1%20-%204%20-%20Andrew%20Poelstra.pdf
https://scalingbitcoin.org/milan2016/presentations/D1%20-%204%20-%20Andrew%20Poelstra.pdf
https://scalingbitcoin.org/milan2016/presentations/D1%20-%204%20-%20Andrew%20Poelstra.pdf
ブロックのシンプル化
• 1つのブロックに巨大な1個のトランザクションが
入るようにする。
• 複数のトランザクションのexcessをミックスして
1個にできる
• 送金受金関係がわからなくなる
ブロックのシンプル化
• ブロックのフォーマット
• 明示的な新規発行コイン額
• 全てのトランザクションのインプット
• 全てのトランザクションのアウトプット
• 全てのトランザクションのexcess k*G、range
proof、sign...
ブロックチェーン
レベル
カットスルー
• ブロックチェーンに入っている全トランザクション
を全部つなぎ合わせる
• インプットとアウトプットで相殺するものがあるた
め、それが消え去る
https://scalingbitcoin.org/milan2016/presentations/D1%20-%204%20-%20Andrew%20Poelstra.pdf
https://scalingbitcoin.org/milan2016/presentations/D1%20-%204%20-%20Andrew%20Poelstra.pdf
https://scalingbitcoin.org/milan2016/presentations/D1%20-%204%20-%20Andrew%20Poelstra.pdf
https://scalingbitcoin.org/milan2016/presentations/D1%20-%204%20-%20Andrew%20Poelstra.pdf
カットスルー
• ブロックのフォーマット
• 明示的な新規発行コイン額
• 全てのトランザクションの未使用アウトプットと
merkle proof
• 全てのトランザクションのexcess k*G、range
proof、signature w...
Mimblewimbleの
ブロックチェーンサイズ
• Bitcoinのブロック数は423000、サイズは80GB(ホ
ワイトペーパー執筆時点)
• これが30GBになり、サイズ増加速度は遅い
ホワイトペーパーからの進展
• http://diyhpl.us/~bryan/papers2/bitcoin/mimblewimble-andytoshi-INCOMPLETE-DRAFT-2016-10-06-001.pdf
• Block...
日本語でのリファレン
ス
• http://btcnews.jp/mimblewimble-by-andrew-poelstra/
• http://techmedia-
think.hatenablog.com/entry/2015/12/3...
Thanks!
UB社はエンジニアを募集してます。
Mimblewimbleホワイトペーパー解説
Upcoming SlideShare
Loading in …5
×

Mimblewimbleホワイトペーパー解説

1,582 views

Published on

公開勉強会でのMimblewimbleホワイトペーパー紹介はおそらく日本で一番最初かなと思います。

http://diyhpl.us/~bryan/papers2/bitcoin/mimblewimble.txt

Published in: Technology
  • Be the first to comment

Mimblewimbleホワイトペーパー解説

  1. 1. Mimblewimble さらなるスケーラビリティとファンジビリティを目指す 魔法 Takaya Imai Co-founder and CTO@United Bitcoiners Inc. CEO@Frontier Partners LLC 暗号通貨読書会/勉強会@株式会社オルトプラス Jun/6/2017
  2. 2. 自己紹介 • 株式会社ユナイテッド・ビットコイナーズ 共同創業者&CTO • フロンティアパートナーズ合同会社代表CEO • マスタリングビットコイン、翻訳者代表 • 2016/7/14出版、先日電子書籍版出ました • オープンエディション版 • https://www.bitcoinbook.info
  3. 3. 自己紹介 • バックグラウンド • 新潟大学大学院 素粒子理論物理 博士(理) • カカクコム • 検索エンジン開発 検索サーバクラスタ構築運用 大規模データ処理 機械学 習 画像認識 • データタワー株式会社 代表取締役 • 株式会社ブロックチェーンハブ 技術アドバイザー
  4. 4. 経緯 • 2016年8月2日 • <majorplayer> hi, i have an idea for improving privacy in bitcoin. my friend who knows technology says this channel would have interest http://5pdcbgndmprm4wud.onion/mimblewimble.txt • https://www.reddit.com/r/Bitcoin/comments/4vub3y/mimblewimble_noninteractive_coinjoin_and_better/
  5. 5. Mimblewimbleの当初のホワイトペーパーには不満足 な点もあり、2016年8月以降BlockstreamのAndrew Poelstra氏らによってさらに発展していっている。 現在の進展まで追うことも考えたが、今回は当初のホ ワイトペーパーに沿った形で説明を試みる。 さらなる進展については別途機会に行う。
  6. 6. http://www.unitedbitcoiners.com/blog/tumblebit
  7. 7. • 全トランザクション数: 1億5000万トランザクショ ン • うち、未使用アウトプットは400万個だけ
  8. 8. Mimblewimble概要 • ブロックチェーンサイズの削減 • 匿名性の確保
  9. 9. これまでの関連研究 • Confidential Transaction, Gregory Maxwell, 2013 • https://bitcointalk.org/index.php?topic=305791.0 • https://people.xiph.org/~greg/confidential_values.txt • CoinJoin, Gregory Maxwell, 2013 • https://bitcointalk.org/index.php?topic=279249.0 • https://bitcointalk.org/index.php?topic=281848.0 • CryptoNote, Nicolas van Saberhagen, 2013 • https://cryptonote.org/whitepaper.pdf • Ring Confidential Transaction, Shen Noether, 2015 • https://eprint.iacr.org/2015/1098.pdf • One-way aggregate signatures(OWAS), Yuan Horas Mouton, 2013 • https://download.wpsoftware.net/bitcoin/wizardry/horasyuanmouton-owas.pdf • https://bitcointalk.org/index.php?topic=290971.0
  10. 10. これまでの研究の問題点 • Confidential Transactionは秘匿性が素晴らしい。しかし、ト ランザクションサイズが大きくなってしまう。 • CoinJoinは送金先秘匿性は素晴らしい。しかし、送金額はわ かってしまうし、トランザクション圧縮にユーザ間調整が 必要なため使いづらい (https://bitcointalk.org/index.php?topic=281848.0)。 • One-way aggregate signature(OWAS)はトランザクション圧 縮が素晴らしい。しかし、遅いし、ペアリングベース暗号 は暗号学的に不満足な点があり信用できない。
  11. 11. Mimblewimbleの提案 • これらの問題点をうまく解決する方法 • ブロックチェーンサイズの削減および増加速度低 減 • 送金受金関係と送金額の秘匿 • トランザクション圧縮の簡易化
  12. 12. Mimblewimbleの提案 • 離散対数問題に基づく公開鍵暗号を使用 • ブロックチェーンにはCoinbase TXとUTXOのみを 保持 • いわゆるscriptがない(Scriptless script) • excess k*G、kに基づく署名、Range proof、明示的 なTx手数料の追加
  13. 13. 大きく3つに分けて順に説明 • トランザクションレベル • ブロックレベル • ブロックチェーンレベル
  14. 14. トランザクション レベル
  15. 15. Confidential Transaction 概要 • 目的の1つ • 送金額を明示することなく、以下の等式を満たすことを証明する • 各インプットの金額の総和 = 各アウトプットの総和(おつり含む) + TX手数 料 • 基本アイデア • Bitcoinでの楕円曲線暗号ベースポイントGを使うと、以下の関係が成り立つ • a + b = c <-> aG + bG = cG • この関係を用いると、a, b, cを公開することなくa, b, cの間の関係を証明でき る。 注: 楕円曲線が持つ位数を法として合同
  16. 16. Confidential Transaction の変形 • C = r*G + v*H • C: Pedersen Commitment • G: Bitcoinでの楕円曲線暗号ベースポイント • H: Gと同じベースポイント(G <> H), nothing-up-my-sleeve(NUMS) • H = to_point(SHA256(ENCODE(G)) • v: 送金額 • r: ランダムなblinding secret key
  17. 17. Confidential Transaction の変形 • トランザクションのやり取りの仕方 1. 送金者と受金者での送金額 b に合意する 2. 送金者はトランザクションを作成し、受金者に送る。このとき 、送金者側commitmentは、 r*G - b*H 3. 受金者はランダムな r’ を選んでcommitment k*G - fee*H と range proofを作成し、受け取ったトランザクションに追加する 。 4. 受金者は k を使った空文字に対する署名をトランザクションに 追加する。
  18. 18. Confidential Transaction の変形• 各commitment • inputs • (r*G + v_i1*H) + (r*G + v_i2*H) • r は送金者が選んだランダムな値 • outputs • (r’*G + v_o*H) + (r’*G + v_c*H) • r’ は受金者が選んだランダムな値 • Tx fee • fee*H • 正常性の確認 • k*Gをあらかじめトランザクションに記載しておく(k は受金者しか知らない) • inputs - outputs - txfee • = (r*G + v_i1*H) + (r*G + v_i2*H) - (r’*G + v_o*H) - (r’*G + v_c*H) - fee*H • = (2r - 2r’)*G • = k’ *G • k*G = k’*G ??
  19. 19. Confidential Transaction の変形 • range proof(OR proof)は、値の範囲証明 • 証明が以下だけだと、お金を消したり増やしたりできてしまう • 各インプットの金額の総和 = 各アウトプットの総和(おつり 含む) + TX手数料 • 例えば、(10 + 1) - (-9 + 20) = 0 • range proofの説明は割愛。 • 参照: https://eprint.iacr.org/2015/1098.pdf
  20. 20. ブロックレベル
  21. 21. ブロックのシンプル化 • この手順で作ったトランザクションは、複数のトランザクションをミッ クスできる • 細かい話をすると、このホワイトペーパーで説明されている方法は単純 にはうまくいかないらしく、BlockstreamのAndrew Poelstra氏が新たな 方法を提案している。 • Scaling bitcoin Milano, プレゼンシート • https://scalingbitcoin.org/milan2016/presentations/D1%20- %204%20-%20Andrew%20Poelstra.pdf • http://diyhpl.us/~bryan/papers2/bitcoin/mimblewimble-andytoshi- INCOMPLETE-DRAFT-2016-10-06-001.pdf
  22. 22. https://scalingbitcoin.org/milan2016/presentations/D1%20-%204%20-%20Andrew%20Poelstra.pdf
  23. 23. https://scalingbitcoin.org/milan2016/presentations/D1%20-%204%20-%20Andrew%20Poelstra.pdf
  24. 24. https://scalingbitcoin.org/milan2016/presentations/D1%20-%204%20-%20Andrew%20Poelstra.pdf
  25. 25. https://scalingbitcoin.org/milan2016/presentations/D1%20-%204%20-%20Andrew%20Poelstra.pdf
  26. 26. ブロックのシンプル化 • 1つのブロックに巨大な1個のトランザクションが 入るようにする。 • 複数のトランザクションのexcessをミックスして 1個にできる • 送金受金関係がわからなくなる
  27. 27. ブロックのシンプル化 • ブロックのフォーマット • 明示的な新規発行コイン額 • 全てのトランザクションのインプット • 全てのトランザクションのアウトプット • 全てのトランザクションのexcess k*G、range proof、signature with k
  28. 28. ブロックチェーン レベル
  29. 29. カットスルー • ブロックチェーンに入っている全トランザクション を全部つなぎ合わせる • インプットとアウトプットで相殺するものがあるた め、それが消え去る
  30. 30. https://scalingbitcoin.org/milan2016/presentations/D1%20-%204%20-%20Andrew%20Poelstra.pdf
  31. 31. https://scalingbitcoin.org/milan2016/presentations/D1%20-%204%20-%20Andrew%20Poelstra.pdf
  32. 32. https://scalingbitcoin.org/milan2016/presentations/D1%20-%204%20-%20Andrew%20Poelstra.pdf
  33. 33. https://scalingbitcoin.org/milan2016/presentations/D1%20-%204%20-%20Andrew%20Poelstra.pdf
  34. 34. カットスルー • ブロックのフォーマット • 明示的な新規発行コイン額 • 全てのトランザクションの未使用アウトプットと merkle proof • 全てのトランザクションのexcess k*G、range proof、signature with k
  35. 35. Mimblewimbleの ブロックチェーンサイズ • Bitcoinのブロック数は423000、サイズは80GB(ホ ワイトペーパー執筆時点) • これが30GBになり、サイズ増加速度は遅い
  36. 36. ホワイトペーパーからの進展 • http://diyhpl.us/~bryan/papers2/bitcoin/mimblewimble-andytoshi-INCOMPLETE-DRAFT-2016-10-06-001.pdf • BlockstreamのAndrew Poelstra氏による論文 • Mimblewimbleのホワイトペーパーに記載されていないコンセンサス部分や各定義の明確化、不満足点の解決 (Sinking Singnature等)を記載 • http://diyhpl.us/wiki/transcripts/mimblewimble-podcast/ • Andrew Poelstra氏、Pieter Wuille氏によるMimblewimbleの解説ポッドキャストの書き起こし • 元ポッドキャスト • https://soundcloud.com/heryptohow/mimblewimble-andrew-poelstra-peter-wuille-brian-deery-and-chris-odom • https://lists.launchpad.net/mimblewimble/msg00086.html • Mimblewimble上のlightning network • https://github.com/ignopeverell/grin
  37. 37. 日本語でのリファレン ス • http://btcnews.jp/mimblewimble-by-andrew-poelstra/ • http://techmedia- think.hatenablog.com/entry/2015/12/31/002253
  38. 38. Thanks! UB社はエンジニアを募集してます。

×