dimeizaのブログ

興味のある技術(IoT/VR/Smart Speaker)とか、資格試験の話とか、日常で出会ったTechな話について書いています。

Developer's Summit 2016 【19-B-7】ブロックチェーン技術の基本と応用の可能性 聴講メモ

講演資料

http://www.slideshare.net/ks91020/ss-58535780

概要

 ブロックチェーンの技術的特徴を分解しつつ、ブロックチェーンの限界と未来の可能性について語る。

スピーカー

  • Orbの斎藤さん。
    • 慶応SFC研究所上席所員でもある。
    • チーフサイエンティストだったが、色々相談を受けるのでチーフコンサルタントに改めた。
    • 分散システム研究の花盛りだったコーネル大学修士号を取得。
    • 博士課程からデジタル通貨の研究をしてきた。
    • 近著『未来を変える通貨』

詳細

ブロックチェーンとは

  • 分散タイムスタンプ技術。
    • デジタル通貨のためのものだが、応用可能性が出てきている。
    • 技術的特性については語られていない。

    • ブロックチェーンは新聞の代わり、と言われる。

      • これはサトシ・ナカモト1の論文の中に出てくる。
      • 群衆が発行している新聞であり、証明のツールとして使われる。
      • ただし、証明ができる、というのは差し引いて考えないといけない。
    • 塊(ブロック)の連鎖(チェーン)。

    • タイムスタンプサーバを分散的に実現するもの。
    • ブロックチェーンの実現にはハッシュ関数公開鍵暗号が不可欠。

ブロックチェーンの課題

  • ブロックチェーンの技術は3層に分けて考えられるが、評価すると課題を解決しきっていない所もある。

    1. コンセンサスのプロトコル
      • 実は現実と同期して動くのが苦手だったりする。
      • ほんとうの意味でコンセンサスは達成できていない。
    2. ダイジェストを格納するブロックの連鎖の構造
      • 連鎖を連続して直していかないといけないから強固。
      • と言われていたが、想定されていたほど強固ではない。
    3. デジタル署名によるデータ構造
      • ここは有用に機能する。
  • この3層を意識しておくと、他の層の設計を変えて実装することができたりする。

  • ブロックチェーンに課題があるが、実現しようとしていることには意味がある。

    • なのでいろいろな方式を試していって、課題を発見、改善していったほうがいい。

コンセンサスのプロトコル

  • データブロックが連結していて、あるデータブロックの中に以下のものが入る。

    • 取引の記録。
    • 1つ前のブロックのハッシュ値(以降ダイジェストと呼ぶ)。
  • ブロックを連結する際のノード(マイナー)の動き。

    1. 各マイナーは、取引データをブロックに格納し、マイニング(くじ引き)する。
    2. マイニングに成功したら、そのブロックをネットワーク上にブロードキャストする。
    3. 各マイナーは、そのブロックを新しい末尾と認めたら後ろにブロックをつなげ、再び1に戻る。
  • ネットワークのメカニズム上、以下の現象が発生する。

    • 複数のマイナーが同時にマイニングに成功することがある。
    • ネットワークの通信遅延によって、後続につなぐブロックがマイナー毎に異なる場合があり、この場合チェーンが分岐する
    • ブロックの連鎖自体は時系列
    • とはいえ、ブロックチェーンは取引履歴を一意に保証しなければならないので分岐していては困る
      • なので、チェーンをマージする必要がある。
      • より長いチェーンを優先し、切られる方の取引記録をチェーンに取り込む。
  • ビットコインでは、ブロック追加数が一定以上にならないと取引は有効にならない。

    • 生成取引は100ブロック、通常取引は6以上。

ダイジェストを格納するブロックの連鎖の構造

  • Proof of workと呼ばれる。
    • 計算コストの証明。
    • 作業困難だが検証は楽というメカニズム。
    • Hashcashというメカニズム。
      • メールスパムの抑止とかに使う。
      • 例えば、『ダイジェストがある値になるようにメールヘッダを構成せよ』という計算。
        • 送信側は一定の時間を掛けてハッシュ値を当てないといけない。
        • が、受信者側は一瞬で計算できる。
    • ビットコインでは、『あるターゲット値以下になるようなダイジェストとなるデータを見つけよ』という計算。

    • ターゲット値は前のブロックから引き継ぐ。

      • 2016ブロックごとにターゲットを自動調整する。
        • 約2週間おき。
        • 2016ブロックの計算を2週間で行えるように調整される。

取引の消去に対する保護

  • ブロックチェーンにおける取引の改ざんはデジタル署名で保護している。

    • なので、攻撃者は取引を消すことしか出来ない。
      • 取引を消すとブロックのダイジェストが変わる。
      • 次のブロックはそのダイジェストを持っている。
      • よって次のブロックのダイジェストの再計算が必要。
      • 以降、現在進行中の最新のマイニングまで連鎖して計算しないと、取引消去が正当性を持たない。
      • 計算量が多く、取引を消すのは非現実的
      • という形で取引消去から保護している。
  • 現在までのビットコインのハッシュレート(ハッシュ計算回数の推移)

    • 2015年ぐらいは秒間30京回ぐらいで安定していた。
    • ところが、今は秒間140京回。
      • 一見大変になっているようだが、1年前と比較して劇的に計算機性能が上がったわけではない。
      • つまり、2015年段階でその計算量を投入していたら、改ざんできた可能性がある、ということ。
  • エネルギー消費量による改ざん障壁

    • 発電所数個分。大きいように見えるが…。
    • 全世界の貨幣システムが書き換えられるとしたら、その投資は果たして高い投資だろうか?
    • ASIC化やマイニングプール化のように、実は経済力を集中すると覆せる。
  • 実は、ブロックチェーンの全データを持たなくてもマイニングは可能。

    • みんなが持たずにやり始めるとブロックチェーンを誰も保持しない。
    • 検証ができなくなってしまう。

デジタル署名

  • UTXO(unused transaction output)構造。
    • 取引内に署名、公開鍵を含めている。
    • 公開鍵ダイジェストを別に計算し、公開鍵の正当性を確保。

ブロックチェーンの応用可能性

金融機関

  • 2015年から急速に金融機関が取り組む

    • 安価な送金とかをされると、自分たちの存在が脅かされる。
    • なのでそれを研究して対抗しようという流れ。
    • NASDAQでは未公開市場で使っている。
    • 中央銀行ですら注目している。
  • 閉じた専用ブロックチェーンを作ろうとする動きもある。

    • 銀行内だけとか。
    • ただ、小さなチェーンは攻撃への耐性が弱い。
    • また、小さければハイパーレッジャーのような従来のプロトコルが使える。

自律分散組織

  • 経営の自動化ができるのではないか。
    • ビットコインの活動は、
      • ユーザを株主、
      • コインを株式
      • マイナーたちを従業員と考えると、
      • 株式移転を業とする経営を実現するプログラムコードになっている。

イーサリアム

  • スマートコントラクトのための分散アプリケーション基盤。

    • スマートコントラクト
      • デジタルに表現される資産を予め定められたルールで自動的に移転する仕組み
        • 例えば自動的な遺産相続とか。
  • 現代の金融、貨幣、法務を時代遅れにするかもしれない。

ブロックチェーンと現実世界

  • ブロックチェーンはCAP定理2上、止まらないといけない(可用性を犠牲にしなければならない)はずなのだが、止まれない構造になっている。

  • ビットコインで支払うと、ドローンがジュースを落としてくれるサービスを考える。

    • いつ落とすのか?
      • 原理上は落とせない。
      • (上述のチェーンのマージによって)取引が消える可能性があるから。
      • 現実的には誰かが(取引が消える)リスクを取らないとできないサービス。
  • ブロックチェーンとIoTは相性が悪い。

    • アクチュエータを動かすタイミングを決められない。
      • ブロックを確定させられないから。
  • ブロックチェーンビザンチン将軍問題を解いたと言われるが、実際には解けていない。

    • ネットワークを分断すると攻撃が可能(エクリプス攻撃)。
  • スケーラビリティの問題。

    • 取引増加に伴ってデータ構造のコストが増加する。
  • 世界がひとつでなければ動かない
    • ブロックサイズを変える、という決定でさえも、全ブロックチェーンが一致しないと適用できない。
      • 技術進化のガバナンスが効きにくい、ということ。

これからの可能性

  • 前提となる共通理解
    • ビットコインにより有益性は示された。
    • 分散型合意システムのアプローチはいくつかある

まとめ

  • ブロックチェーンには一定の応用可能性がある。

    • 不確実性を許容できるシステム向き
  • 決定的な動作を要するシステムには向かない

  • 貨幣経済や方を置き換えていく可能性があり、面白い探求、追求になるであろう。


  1. ビットコインに関する論文をネットに投稿した匿名の開発者。

  2. 分散システムに於いて成立する定理。一貫性、可用性、分断耐性の3つを同時に保証することは出来ない(いずれか1つを諦める必要がある)。