Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ビットコインの現在と未来@基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス

 ビットコインの現在と未来@基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス

連続講義『基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス』(於:LIFULL HUB)で利用したスライドです。

Masahiko Hyuga

June 24, 2017
Tweet

More Decks by Masahiko Hyuga

Other Decks in Science

Transcript

  1. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB 自己紹介 ー 略歴 東京大学理学部物理学科 ⇨ 総合文化研究科修士(物理学、熱統計力学基礎論) 2013年末にビットコインと出会い、論文や技術文書を読んだりマイニングをしたりしてい

    るうちにのめり込む。 その後、日本国内初の暗号通貨「モナーコイン」を中心に取引所、採掘プール、ウォレッ ト、ECシステムなど多数のサービス開発を行う。 現在は合同会社ジャノムの代表として、ビットコイン関連の自社サービス運営・研究開発 ・教育・技術コンサルティングなどを行っている。
  2. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB 自己紹介 ー 最近の活動 ビットコイン支払専用のECサービス「コインギフト」の運営。ハードウェアウォレット 「KeepKey」「TREZOR」、各種ギフト券などを販売。 株式会社セレス様と共同で各種ビットコイン関連サービスを開発中。 ブロックチェーン大学校(株)講師。

    技術系の勉強会「暗号通貨勉強会/読書会」を設立・運営(月二回開催)。 最近は B2B のビットコインウォレットソリューション(取引所などのバックエンドシステム) の提供に向けて、いろいろと動いています。 CoinTip (コインチップ) Twitter 上でビットコインを送金できるサービス。 有名人に小額のチップを送ったり、友達との割り 勘の支払いなどに利用できる。 Sobit (ソビット) プリペイドチャージ式携帯電話にビットコインでチャー ジできるサービス。世界 137ヶ国に対応し、金融イン フラが未整備な途上国などに対しても実質的に送金 が行えるようになる。 ※2017年7月リリース予定。※ロゴは暫定。
  3. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB ウォレット動物園 (Bitcoin Wallet Zoo) • フルノード/SPV ウォレット

    • ウェブ ウォレット • ブレイン ウォレット • ペーパー/物理 ウォレット • ハードウェア ウォレット • シングルシグ/マルチシグ ウォ レット(アドレス) • PC用 ウォレット • Android, iPhone (スマホ) 用 ウォ レット • 取引所 ウォレット • 決定性/非決定性 ウォレット • ホット/コールド ウォレット このように、一口で「ウォレット」といっても様々な種類のものが存在する。 ⇨ これらの違いを説明できますか?
  4. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB そもそもウォレットとは何か? Mastering Bitcoin(日本語版) によると……「ウォレットは秘密鍵の容器 (p.92)」 厳密な定義はありませんが、一般的にはおおむね、以下のような機能がセットとなった システムを指します。

    • 秘密鍵・公開鍵(アドレス)の管理 • トランザクションおよび電子署名の作成 • ブロックチェーン上のデータの参照・書込 それぞれの機能をどのように実装するのか(例:サーバ側/クライアント側のどちらで処 理するか、秘密鍵をどこに保管するか、等)によって、前のスライドのように実に多種多 様なウォレットの種類が存在します。
  5. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB ホット/コールド インターネットに直接接続されているかによる分類。 コールドウォレット インターネットから隔離された環境に秘密鍵を保 管する方式。安全性は極めて高いが、送金する ためには人の手を介さなければならず、即時送 金も行えないため利便性は低い。

    ホットウォレット インターネットに直接接続されており、ユーザから の要求に従いすぐさま送金が行える方式。ただ し、ウィルスやハッキングによりコインが盗まれて しまう危険性がある。 小さな額のコインはホットウォレットで管理し、大きな額のコインはコールドウォレットで厳 重に保管するといった使い分けが必要。
  6. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB シングルシグ/マルチシグ 送金に必要な秘密鍵(電子署名)の数が一個なのか複数個なのかによる分類。 マルチシグアドレス 各アドレスに複数の秘密鍵が紐付いている。 送金の際には紐付いている秘密鍵の内、所定数 以上の電子署名を作ればよい。 利便性は低いが、送金権限を複数人に分散させ

    て持たせることができるため、事業者など組織体 が管理する際に利用されることが多い。 シングルシグアドレス 一般的に用いられている方式で、各アドレスには 一つの秘密鍵が紐付いている。 送金の際には紐付いている秘密鍵で電子署名を ひとつだけ作ればよい。このアドレス方式にしか 対応していないウォレットも多い。 利便性の高いシングルシグを取るか、安全性の高いマルチシグを取るのかは、管理す るコイン数や運用方針・体制に合わせて深く検討する必要がある。
  7. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB ブレイン/ペーパー/物理/ハードウェア 秘密鍵をどのような物理メディアで保管するかによる分類。 ブレインウォレット 秘密鍵を人間の脳内(ブレイン)に 記憶することで保管する方式。 ランダムな文字列ではなく、覚え やすい文章や単語の羅列などで

    表現することが多い。 例:OfflineWallet.info ペーパー/物理ウォレット 秘密鍵を紙や金属板などの物理 媒体に保管する方式。 物理的に実体のあるものの受け 渡しでコインのやり取りができるた め「ビットコイン兌換貨幣」のように 利用できる。 例:悟コイン、Cryptosteel ハードウェアウォレット 秘密鍵の保管と電子署名の作成 機能がセットになったもの。 物理ウォレットの持つ安全性を備 えながらも、高い利便性を持って いるため、ビットコイナーの必需品 といえる。 例:TREZOR、KeepKey ハッキングやコンピュータウィルスからビットコインを守るためには、上記のように秘密鍵 の保管場所を工夫することが肝要。
  8. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB フルノード/SPV/中央集権型 ブロックチェーンに書き込まれたデータの正当性の検証を、ウォレット側でどのように行 うかによる分類。 フルノード 全ブロックチェーンをダウンロード し、すべてのデータを検証する方 式。

    最も安全性が高い。 実装例:Bitcoin Core(公式クライ アント) SPV (Simplified Payment Verification) ブロックヘッダのみをダウンロード し、正常に PoW がなされたことの みを検証する方式。 安全性は中程度。 実装例:Electrum、Bitcoin Wallet (Android)、breadwallet 中央集権型 第三者の提供するブロックエクス プローラなどを参照し、データの 検証は行わない方式。 第三者サービスから提供される データに不正がないことを 信頼す る必要がある。 実装例:Copay、Mycelium 安全性の低い方式でも、コインを盗まれてしまうような最悪の事態は発生しにくいため、 そこまで神経質になる必要はない。
  9. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB 決定性/非決定性ウォレット 新しい秘密鍵(およびアドレス)をどのように作るかによる分類。 決定性 (Determinisitic) 初期セットアップ時に生成した乱数から、決定論 的に秘密鍵を生成する方式。階層的決定性 (HD)

    ウォレットと呼ばれる方式が BIP 32 として 採択されており、こちらの仕様の利用が推奨され ている。 非決定性 (Non-Deterministic) 乱数を用いて非決定論的に秘密鍵を生成する方 式。定期的なバックアップが必要となること、良質 な乱数エントロピーの確保に気をつけなければい けないことなどから、廃れつつある。 従来の非決定性ウォレットから、階層的決定性 (HD) ウォレットを用いた決定性ウォレッ トへの移行が進んでいる。
  10. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB まとめ • 一口に「ウォレット」といっても様々なタイプの方式が存在する ◦ 例:ホット/コールド、フルノード/ SPV/中央集権型検証、ペーパー/物理/ブレイン •

    一番重要なのは「秘密鍵がどこに保管されているか?」ということ ◦ 自分自身が秘密鍵のアクセス権を持っているかどうかを必ず確認しましょう • ウォレットにはそれぞれメリット・デメリット(e.g. 利便性 vs 安全性のトレードオフ)が あるため、必要に応じて複数の種類のウォレットを使い分けて運用を行う ◦ 構成例:スマホのホットウォレット + ハードウェアウォレット
  11. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB 暗号通貨/ブロックチェーンに残された課題 2009年ごろに登場したビットコインですが、利用者が増えるに連れて様々な問題が浮き 彫りになっており、特に以下の二つが重要視されている。 スケーラビリティ ネットワークを流れるすべてのデータを全参加者 が共有するブロックチェーンに書き込む必要があ るため、各ノードの負荷が増大してしまうという問

    題。 各ノードの、ディスク容量・ネットワーク帯域・ CPU 負荷などの各種リソースが枯渇してしまう可能性 が指摘されている。 支払チャネルによるオフチェーン取引、データ管理 の効率化、ブロックチェーンの分散化などによる解 決が模索されている。 プライバシー ブロックチェーンはすべてのネットワーク参加者か ら閲覧可能なため、全アクティビティが全参加者に 知れ渡ってしまうという問題。 ビットコインでは誰が・いつ・誰に・いくら送金した のか、といった情報がすべてオープンになってしま う。 ゼロ知識証明や楕円曲線暗号、コミットメントなど の最新暗号技術を用いた解決策がいくつも提案さ れている。
  12. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB 「スケーラビリティ問題」とは? ビットコインでは、ネットワークを流れるすべてのトランザクションを全ノードで共有する必 要がある。 そのためユーザ数や需要の増加によりトランザクション数が増えていくと、各ノードの 様々なリソースが逼迫することが予想される。 リソースの具体例:ネットワーク帯域、メモリ、CPU演算能力 このようにトランザクション数の増大にビットコインネットワークが耐えられなくなってしま

    うことを「スケーラビリティ問題」という。 ※より学術的には……トランザクション数 N に対して各ノードに必要なリソースが現状では O(N) ですが、これを O(1) とできればい くらトランザクション数が増えても各ノードの負担は全く増えませんので無問題となります。また O(log(N)) 程度であれば実用的には 問題ないでしょう。このように、各ノードに必要とされるリソースのオーダーをいかに抑えることができるか?というのが、具体的なス ケーラビリティ改善に関する研究の目標となります。
  13. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB 現時点での限界性能(参照元) 参考……クレカ (VISA) の平均処理件数 2,000tps、ピーク性能 56,000tps ※tps

    = transactions per second = 秒あたりトランザクション数 ▪ ネットワーク帯域 トランザクションサイズは平均すると約200バイト程度なので、1Mbps あたり 1,250 tps。 ▪ CPU ECDSA の署名検証処理が主な仕事で、Intel CPU で約 4,000 tps 捌ける。 ▪ ブロックサイズ制限 一ブロックあたり1MBの暫定的な上限がある。約 8 tps。ただしプログラムによるただの 設定値なので、いくらでも引き上げ可能。
  14. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB 現状 しかしながらネットワーク需要は既にブロックサイズ上限に達しており、ブロックへの取り 込み待ちトランザクションが溢れている。 マイナーはトランザクション手数料の支払が多い順にブロックに取り込むため、手数料を ケチると何日も取り込まれず着金しなくなることがある。 ※ただしこれは需要と供給が拮抗している状態であることを意味しており、経済学的には合理的な状態とも言える。 ⇨

    暫定的に上限引き上げを行う提案がなされている(cf. Bitcoin Unlimited) しかしながら上限引き上げの副作用としてネットワーク帯域・ディスク容量を圧迫するこ と、後述する Lightning Network などの新しい技術により改善できることなどから、いま は引き上げるべきでないという意見もある。 ▶ 「最新技術のみで十分なので引き上げすべきではない」派閥と「すぐにでも引き上げる べき」派閥が政治的な争いを繰り広げる事態に発展。。。
  15. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB 支払チャネル 通常の支払方法だと、必ずトランザクションのデータを全ノードにコピーし、ブロック チェーンに書き込む操作が必要となる。 ⇨ これは明らかに高コスト 毎回ブロックチェーンに書き込まずとも送金を行いたいユーザ間のみで完結する方法 (「オフチェーン取引」という)はないだろうか?

    ⇨ 最も簡単な方法:第三者にビットコインを預け、第三者機関内のデータベースで各ユー ザの残高を管理する(cf. 銀行預金) この方法では第三者機関の破綻リスク(cf. Mt.Gox、銀行の破産)や持ち逃げリスクが あり、安全ではない。 ⇨ そこで考えられたのが、特殊なビットコイン・トランザクションを用いて行う「支払チャネ ル (Payment Channel)」と呼ばれる一連の技術。
  16. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB マイクロペイメント・チャネル 無与信下で (trustlessに) オフチェーンで送金することのできるアルゴリズムであり、他 の支払いチャンネルの基礎となっている非常に重要なもの。何万回送ろうとも手数料は 厳密にゼロになることから、非常に小さな額の支払い(マイクロペイメント)に適している とされる。

    マイクロペイメント・チャネルを使って送金する簡単な(抽象的な)手順: 1. マイクロペイメント・チャネルを開く処理を行う 2. 送金トランザクションを作成し相手に渡す 3. 追加の送金が必要になったら、2. で作ったトランザクションを適宜変更し、相手にト ランザクションを送り直す 4. 終わったらMicropayment Channelを閉じる処理を行う 以降のスライドでは、Aさん⇨Bさんへ送金する場合のやり方を解説します。
  17. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB M.P.チャネルのメリットとデメリット メリット: • 検証が早い(トランザクションの正当性のみ チェックすればいいので、一瞬) • 第三者の信頼を必要としない

    • 何回も送金を行う場合には、手数料が激安 になる(二回分の手数料で何万回でも送れ る) • 最終的な送金額のみが公開され、途中結果 は秘匿されるため、ある程度プライバシーが 守られる デメリット: • M.P.チャンネルを開いた特定の二者間でし かやり取りできない • はじめにBTCをデポジットしなければならな いため、ある程度の余剰資金が必要 • 受取人もオンラインでなくてはならない • トランザクション展性により、返金トランザク ションが無効化されてしまう可能性がある(こ れは SegWit により解決可能) • 通常の送金と比べると、遥かに複雑
  18. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB Lightning Network ー はじめに マイクロペイメント・チャネルは、支払いチャンネルを開いた二者間のみのやり取りに限定されている。そのた め、違う人に送金する際には、その人ごとに支払いチャンネルを開く必要があり、非効率。そこで支払いチャン ネルをバケツリレー的にいくつも経由することで、どこかを経由して支払いチャンネルが繋がってさえいれば送

    金ができるプロトコル「 Lightning Network」が発明された。 Lightning Networkの一つの利点として、ブロックチェインのデータ量を大幅に削減することができることがあげ られる。これにより、現在問題になっているスケーラビリティの問題を解決できるのではないか、と言われてい る。従来の方法では支払いを行うたびにトランザクションがブロックチェーン上に書き込まれるが Lightning Network を用いれば、支払いチャンネルの開通・閉鎖トランザクションというたった二つのトランザクションを定 期的に(例えば数カ月に一回)ブロックチェイン上に書き込むだけで、ブロックチェインを利用せずとも支払いを 何回でも行うことができる。 通常の支払い方法 支払いトランザクション Lightning Network ブロックチェーン 支払いごとに毎回ブロック チェーンへトランザクション を書き込む! 支払いチャンネル 送金   を経由して支払い ブロックチェーン 支払いチャンネル の開通・閉鎖時の み書き込み
  19. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB Lightning Network ー 中継支払の問題点 このスライド以降ではLightning Networkの基礎的なアイディアの解説を行います。 より詳しく知りたい方はPoon氏によるプレゼンスライドスライド①・②、さらにより詳しく知

    りたい方は論文(現時点で草稿)をご覧ください。 前のスライドで述べたように、 Lightning Network のキモは、支払 いを第三者を中継して行うこと。し かしながら信頼のできない第三者を 中継する場合には第三者が「持ち 逃げ」してしまう可能性があるので、 持ち逃げされないような対策を講じ る必要がある。 さんを経由して支払うよ〜! 支 払 い チ ャ ン ネ ル 支 払 い チ ャ ン ネ ル 1BTC にBitcoinを支払わず 持ち逃げしてやろう。 フヒヒヒヒ……。 Aさん Bさん Cさん
  20. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB Lightning Network のメリット・デメリット メリット: • 直接支払いチャンネルを開いていない相手 ともやり取りができる

    • ブロックチェーンへ書き込まなければいけな いデータの減少が期待できる • 銀行のクリアリング・システムのようなものを 無与信下で (trustlessに) 実装できる デメリット: • 手続きが非常に複雑 • バグの温床となる可能性 • トランザクション展性対策が必要 (SegWit 導入待ち) • 常にインターネットに接続し、相互監視をす る必要がある
  21. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB Segregated Witness (SegWit) ビットコインのトランザクションは、主に以下の二つのデータで構成される。 • 送金内容(誰から、誰に、いくら) •

    送金人の署名(Witness) これらのデータは利用するシーンが違う(送金内容:残高チェックなどで頻繁に利用、署 名:ブロックチェーンのダウンロード時に一度だけ利用)ため、これらを別々に保管するこ とでデータ利用の効率化を図る「SegWit(セグウィット)」が提案されている。これにより、 以下のような恩恵がもたらされる。 • トランザクション展性(Malleability)が修正され、支払チャネルを安全に利用できる ようになる • データ管理が効率化されることで、ネットワーク帯域やCPU負荷の軽減が見込まれ る
  22. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB 匿名性は犯罪につながるから、危険……? 「ビットコインは匿名(とくめい)性が高いため、犯罪行為に使われやすい!違法薬物の 売買や資金洗浄に使われている!ビットコインは危険だ!」と言われることがあります。 ですがそもそも…… • 「匿名性」ってなんのこと? •

    「ビットコインは匿名性が非常に高い」って本当? • 匿名性が全くない方が送金システムとして優れているの? といった議論が正確にされているケースは少ないように思います。 ▶ 送金システムに匿名性があることのメリット・デメリットを考えてみましょう
  23. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB 匿名性のメリットとデメリット ▪ メリット ① プライバシーを保てる 匿名性がないと、給料がいくらなのか、何をいつ 買ったのか、といった情報が推測できてしまう可能

    性がある ②Fungibility(代替可能性)を保てる あるモノが個体差がなく同一数量の別の物にいつ でも交換できる、という性質を持つとき「 Fungibility がある」という。(例: 1グラムの純金は、別の 1グラ ムの純金と本質的に一緒であり交換可能である。) ビットコインではコインがどのように流通していった のかがすべて追跡できるため、例えば自分の持っ ているコインが犯罪行為に使われていたコインだと 後から判明すると、 他人がこのコインを使った支払に応じてくれなく なってしまう可能性がある。 一方で匿名性があれば、どのコインも同等のもの であることが保証されるから、このような問題は起 きにくいと考えられる。 ▪ デメリット 足がつきにくいため犯罪行為に使いやすい。 • 詐欺 • 資金洗浄(マネーロンダリング) • 違法薬物取引 • ランサムウェアの身代金支払 • 脱税
  24. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB 匿名化の試み • 撹拌サービス …… Tumbler / Mixer

    • CoinJoin …… DASH (旧 Darkcoin)、SharedCoin(サービス終了?) • リング署名 …… CryptoNote (Monero) • 秘匿 (Confidential) トランザクション • TumbleBit • ゼロ知識証明を利用したもの …… Zerocoin / Zerocash 匿名化を目指したものではないが、(副作用的に)少なからず匿名性が担保できるもの: • Lightning Network • Mimblewimble
  25. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB リング署名 ー 概念的説明 支払人の匿名性を向上させる仕組みとして、リング署名を応用したものがある。 リング署名とは、複数人の署名人のうち、誰が署名したかは分からないが、そのうちの 誰かひとりが作成した署名であることを保証できるアルゴリズム。 通常の電子署名

    リング署名 署名人 電子署名 一対一に対応 電子署名 署名人 (複数) 電子署名作成 誰が署名したかは 分からない! ? 通常、ひとつの電子署名にはひとりの署名者(公開鍵)が対応するため、誰が送金を 行ったのか分かってしまいます。リング署名を使うと、複数の署名者のうち誰が送金した のかを隠匿することができる。
  26. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB リング署名 ー 暗号通貨への応用 匿名性を向上させることを目的としリング署名を利用した暗号通貨としてのアルゴリズム が CryptoNote により提案されている。CryptoNote

    を採用する Monero, DarkNote, Bytecoin 等により実装。 入力1 出力1 tx #1 入力2 出力2 tx #2 入力3 出力3 tx #3 入力4 出力4 tx #4 リング署名作成 匿名送金を行うには、ネットワー ク上のトランザクションからランダ ムに出力を N 個(図の場合には3 個)選び出し、それと自分が使用 する出力を合わせて N+1 人のリ ング署名を作成する。 こうすることで、N+1人のうちだれ がこのコインを送ったのか分から なくすることができる。
  27. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB 秘匿トランザクション 送金額の匿名性を向上させるひとつの方策として、秘 匿トランザクション(Confidential Transaction) というも のがあります。 勝手にコインが増やされてしまわないよう、トランザク

    ションの入金額(Input)と出力額(Output)に不正がない かチェックしなければなりません。 Bitcoinではトランザクションに入力と出力の金額があら わに書かれているため、これを使ってチェックしていま す。 しかしながら、「入力額の合計 = 出力額の合計」だけを チェックすればいいことに注目すると、やり取りする金 額があらわに書かれていなくても不正チェックができま す! Input Output 1BTC 1BTC 1BTC 1.8BTC 1.2BTC ←いくら送ったかバ レてしまう。 入力の合計額と 出力の合計額が 等しいかチェック→ 1BTC + 1BTC + 1BTC || 3BTC || 3BTC || 1.8BTC + 1.2BTC ? ←この部分だけ  チェックできればよい
  28. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB TumbleBit Mixing や Tumbler では、中央管理者がコインを持ち逃げしたり、参加者の情報を集め ることで匿名性を破ることができてしまう。こうした問題点を解決する仕組みが 「TumbleBit」である。

    中央管理者「Tumbler」を通じて Alice から Bob に 1BTC を送金することを考える。大まかな処理の流れは 以下の通り。 1. Tumbler から Bob 宛の 1BTC 分の出金トランザ クション tx を作り、Tumbler のみが知る鍵で暗号 化 (Enc(tx)) し Bob へ渡す 2. Bob は Enc(tx) が Bob のものであるとステップ 3. で Tumbler に知られないようにスクランブル処理 (Scr(Enc(tx))) を施し Alice に渡す 3. Alice は Tumbler に 1BTC を支払うことで暗号化 を解除 (Scr(tx)) してもらい、結果を Bob へ渡す 4. Bob はスクランブルを解除 (tx) し、出金トランザク ションをネットワークへブロードキャストする
  29. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB ゼロ知識証明 ー 完全な匿名性を目指して これまでに取り上げた方式の匿名性はどれも、そのシステムを利用する際に参加した人 数に依存している。そのため、「その時点で匿名化システムに参加した人のいずれかで ある」といった情報が漏れてしまい、完全な匿名性を実現できているとは言えない。(例 :TumbleBit

    では、同じ Tumbler を利用したユーザのいずれかのコインであることが分 かってしまう) 単純に参加人数を増やせば匿名性は強固にできるが、トランザクションサイズが増大し てしまいスケーラビリティが失われるなどのデメリットがどの方式にも存在する。 ▶ ゼロ知識証明の最新の研究結果を利用することで、スケーラビリティを保ちながら完 全な匿名性を実現できる方式が提案された。
  30. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB ゼロ知識証明 ー 完全匿名コイン • Zerocoin [1] ◦

    コミットメントやゼロ知識証明、アキュムレータといった暗号理論の道具を組み合わせることで完全 な匿名性を目指したプロトコル • ZCoin ◦ Zerocoin の実装。2016年9月28日正式ローンチ • Zerocash [2] ◦ zk-SNARK と呼ばれる新しい暗号手法 (〜2010年) により、Zerocoin の様々な課題を解決 • Zcash [3] ◦ Zerocash の実装。2016年10月28日正式ローンチ ZCoin の GUI クライアント
  31. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB ゼロ知識証明 ー Zerocoin と Zerocash の違い 両者ともベースとなるアイディアは前述の通りだが、「封筒を張った証明」の作り方に主

    な違いがある • Zerocoin …… zk-SoK(+ アキュムレータ) ◦ zero-knowledge Signature of Knowledge ◦ ゼロ知識による知識の署名 • Zerocash …… zk-SNARK ◦ zero-knowledge Succinct Non-interactive ARgument of Knowledge ◦ ゼロ知識による簡易的な非対話的知識主張
  32. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB ゼロ知識証明 ー Zerocoin と Zerocash 比較表 Bitcoin(参考)

    Zerocoin Zerocash 証明/署名方式 ECDSA zk-SoK(+アキュムレータ) zk-SNARK 証明/署名サイズ 〜100 バイト 40,000 〜 50,000 バイト 300 〜 1,000 バイト Mint 処理時間※1 極めて高速(〜0.1ms) ※電子署名作成時間 高速(〜800ms) 極めて高速(〜0.02ms) Pour 処理時間※1 高速(〜500ms) 極めて低速(〜2分) 検証時間※1 極めて高速(〜0.1ms) 低速(〜500ms)※2 高速(〜5ms) 匿名性 擬似的な匿名性 完全な匿名性 完全な匿名性 送金額面 任意の金額 固定額 任意の金額 ※1 …… Bitcoin の値は libsecp256k1 の手元のマシンのベンチマーク結果、 Zerocoin/Zerocash の値は論文掲載の値による ※2 …… Mint, Pour 処理時間と一緒だが、検証はすべてのノードが行う必要があり、システム全体のパフォーマンスを大きく左右するため、ここでは薄赤色としている
  33. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB その他のプライバシー関連技術 ▪ Lightning Network L.N. を用いると送金情報は送金に関わった人(送金者、受領者、中継者)にのみ伝達さ れるため、ある程度の匿名性が担保されると考えられる。銀行送金などの匿名性担保

    の仕組みとほぼ一緒。 ▪ Mimblewimble A ⇨ B ⇨ …… ⇨ Z とコインの受け渡しが行われた場合、必要なのは「A のコインが最終 的に Z に渡った」という情報だけだが、現在のビットコインの仕組みでは不正を検知する ためには途中経過の情報もすべて取っておく必要があり非効率。そこで複数のトランザ クションを「集約」し、途中経過を省略できる仕組みとして「Mimblewimble」が考えられ た。 途中経過を保持しないため、ある程度の匿名性を担保できると考えられる。
  34. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB Merkle Tree (Root) はなぜ必要なのか? あるトランザクションがブロックに含まれていることを、わざわざブロックデータ全体を チェックしなくても確認できる仕組み「Simplified Payment

    Verification (SPV)」で利用さ れています。 これが正しいか検 証したい! 自分の持っている “Data block 000” が正しいか(改ざんや エラーがないか)を検証したいとする。 そのためには、“Top hash” が再現できるかどうかをチェック すればよい。 “Hash1” および “Hash 0-1” の二つのみ知ってれば OK! フルノードと比べると安全性は多少落ちますが、この仕組みを用いることでスマホなどの 貧弱な端末でも動作させることができます。(e.g. Breadwallet)
  35. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB Validation と Confirmation の違い 単語としての意味は似ていますが、ビットコインでは全く違う意味で用いられています。 • Validation

    一般的にはトランザクションやブロックのデータ内容に不整合がないか(e.g. 電子署名 が正しいか、送金額に不正がないか、等)を確認することを指します。 • Confirmation トランザクションがブロックに取り込まれることを指します。また、ブロックに取り込まれて からブロックチェーンが何個分成長したのかを「検証数」といいます。
  36. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB マイニングの役割(メリット/デメリット)について マイニングは、ブロックチェーンの改ざんを計算量的に困難にするための行為です。具 体的にはブロックに対して PoW を行うことを指します。 この仕組みによりブロックチェーンは非中央集権かつ分散的にもかかわらず改ざんが困 難となっており、これにより世界で初めて非中央集権的な電子マネー(Electronic

    Cash)を実現することができました。 一方で、大量の計算機と電気代を消費する PoW によるマイニングの非効率性が指摘 されており、これを解決するためにメモリ・インテンシブなハッシュ関数を用いる PoW (e.g. scrypt, Ethhash)や、ハッシュ関数を用いないがメモリ・インテンシブなもの(e.g. Cuckoo-cycle, Equihash)、また PoW ではない方式(e.g. Proof-of-Stake, Proof-of-Importance)などが考案されています。
  37. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB 報酬を得るためのルール 採掘者が PoW を行い、条件に合致するハッシュ値を見つけることで正しいブロックが生 成されると、採掘報酬を受け取ることができます。 報酬は「コインベーストランザクション」と呼ばれる特別なトランザクションを、ブロック内 のトランザクションリストの先頭に追加して受け取ります。

    マイニングの報酬には、「ブロック報酬」と「トランザクション手数料」の二つがあり、採掘 者にはこれらの合計額が支払われます。 • ブロック報酬……ブロックあたりの報酬額は、最初の4年間は50BTC、次の4年間 は25BTC、更に次の4年間は12.5BTC、といった具合に4年ごとに半減していく • トランザクション手数料……各トランザクションにて、出力と入力の差額として支払 われている手数料
  38. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB 情報源 • Bitcoin Whitepaper ー すべてのはじまり •

    Bitcoin Wiki ー 公式クライアント (Bitcoin Core) の実装に関する技術情報 • Mastering Bitcoin (邦訳) ー 世界初のビットコインの技術書。日本語で読める文献 としてはいまのところ唯一 • Bitcoin Improvement Proposals (BIPs) ー ビットコインに関する新機能の討論 場。ビットコイン版の RFC 的な存在 あとは論文の形で出版されているものがちらほらあります。 • ビットコイン関連論文まとめ
  39. 基礎から学ぶ「ブロックチェーン」と「仮想通貨」ビジネス『ビットコインの現在と未来』  2017年6月24日 @LIFULL HUB サービス紹介 ▪ コインギフト https://coingift.jp/ ビットコインやモナーコインで様々なギフト券(Amazon, iTunes, etc.)やビットコインの

    ハードウェアウォレットなどを販売しています。 とりあえずビットコインを使ってみたい……という方はぜひご利用ください。 ▪ CoinTip https://cointip.jp/(※セレス様との共同開発事業) Twitter でコマンドをツイートするだけでビットコインを簡単に送金することができるサー ビスです。割り勘や立て替え払いの時などに便利です! ▪ Sobit(※セレス様との共同開発事業) プリペイド式携帯電話に対してビットコインでチャージできるサービスです。海外のユー ザに対して極めて低コストに送金ができます。(7月中リリース予定)