Developer's Summit 2016 【19-B-7】ブロックチェーン技術の基本と応用の可能性 聴講メモ
講演資料
http://www.slideshare.net/ks91020/ss-58535780
概要
ブロックチェーンの技術的特徴を分解しつつ、ブロックチェーンの限界と未来の可能性について語る。
スピーカー
- Orbの斎藤さん。
詳細
ブロックチェーンとは
- 分散タイムスタンプ技術。
ブロックチェーンの課題
ブロックチェーンの技術は3層に分けて考えられるが、評価すると課題を解決しきっていない所もある。
- コンセンサスのプロトコル
- 実は現実と同期して動くのが苦手だったりする。
- ほんとうの意味でコンセンサスは達成できていない。
- ダイジェストを格納するブロックの連鎖の構造
- 連鎖を連続して直していかないといけないから強固。
- と言われていたが、想定されていたほど強固ではない。
- デジタル署名によるデータ構造
- ここは有用に機能する。
- コンセンサスのプロトコル
この3層を意識しておくと、他の層の設計を変えて実装することができたりする。
ブロックチェーンに課題があるが、実現しようとしていることには意味がある。
- なのでいろいろな方式を試していって、課題を発見、改善していったほうがいい。
コンセンサスのプロトコル
データブロックが連結していて、あるデータブロックの中に以下のものが入る。
- 取引の記録。
- 1つ前のブロックのハッシュ値(以降ダイジェストと呼ぶ)。
ブロックを連結する際のノード(マイナー)の動き。
- 各マイナーは、取引データをブロックに格納し、マイニング(くじ引き)する。
- マイニングに成功したら、そのブロックをネットワーク上にブロードキャストする。
- 各マイナーは、そのブロックを新しい末尾と認めたら後ろにブロックをつなげ、再び1に戻る。
ネットワークのメカニズム上、以下の現象が発生する。
- 複数のマイナーが同時にマイニングに成功することがある。
- ネットワークの通信遅延によって、後続につなぐブロックがマイナー毎に異なる場合があり、この場合チェーンが分岐する
- ブロックの連鎖自体は時系列
- とはいえ、ブロックチェーンは取引履歴を一意に保証しなければならないので分岐していては困る
- なので、チェーンをマージする必要がある。
- より長いチェーンを優先し、切られる方の取引記録をチェーンに取り込む。
ビットコインでは、ブロック追加数が一定以上にならないと取引は有効にならない。
- 生成取引は100ブロック、通常取引は6以上。
ダイジェストを格納するブロックの連鎖の構造
- Proof of workと呼ばれる。
取引の消去に対する保護
ブロックチェーンにおける取引の改ざんはデジタル署名で保護している。
- なので、攻撃者は取引を消すことしか出来ない。
- 取引を消すとブロックのダイジェストが変わる。
- 次のブロックはそのダイジェストを持っている。
- よって次のブロックのダイジェストの再計算が必要。
- 以降、現在進行中の最新のマイニングまで連鎖して計算しないと、取引消去が正当性を持たない。
- 計算量が多く、取引を消すのは非現実的
- という形で取引消去から保護している。
- なので、攻撃者は取引を消すことしか出来ない。
現在までのビットコインのハッシュレート(ハッシュ計算回数の推移)
- 2015年ぐらいは秒間30京回ぐらいで安定していた。
- ところが、今は秒間140京回。
- 一見大変になっているようだが、1年前と比較して劇的に計算機性能が上がったわけではない。
- つまり、2015年段階でその計算量を投入していたら、改ざんできた可能性がある、ということ。
エネルギー消費量による改ざん障壁
- 発電所数個分。大きいように見えるが…。
- 全世界の貨幣システムが書き換えられるとしたら、その投資は果たして高い投資だろうか?
- ASIC化やマイニングプール化のように、実は経済力を集中すると覆せる。
実は、ブロックチェーンの全データを持たなくてもマイニングは可能。
- みんなが持たずにやり始めるとブロックチェーンを誰も保持しない。
- 検証ができなくなってしまう。
デジタル署名
- UTXO(unused transaction output)構造。
- 取引内に署名、公開鍵を含めている。
- 公開鍵ダイジェストを別に計算し、公開鍵の正当性を確保。
ブロックチェーンの応用可能性
- 通貨
- 存在証明(Proof of Existence)
- タイムスタンプサービスのブロックチェーン版。
- ネームサービス
- DNSみたいなもの。
- 組織運営や経営の自動化
- DAO/DAC
- 自律分散アプリケーションの可能性
金融機関
2015年から急速に金融機関が取り組む
閉じた専用ブロックチェーンを作ろうとする動きもある。
- 銀行内だけとか。
- ただ、小さなチェーンは攻撃への耐性が弱い。
- また、小さければハイパーレッジャーのような従来のプロトコルが使える。
自律分散組織
- 経営の自動化ができるのではないか。
- ビットコインの活動は、
- ユーザを株主、
- コインを株式
- マイナーたちを従業員と考えると、
- 株式移転を業とする経営を実現するプログラムコードになっている。
- ビットコインの活動は、
イーサリアム
スマートコントラクトのための分散アプリケーション基盤。
- スマートコントラクト
- デジタルに表現される資産を予め定められたルールで自動的に移転する仕組み
- 例えば自動的な遺産相続とか。
- デジタルに表現される資産を予め定められたルールで自動的に移転する仕組み
- スマートコントラクト
現代の金融、貨幣、法務を時代遅れにするかもしれない。
ブロックチェーンと現実世界
ブロックチェーンはCAP定理2上、止まらないといけない(可用性を犠牲にしなければならない)はずなのだが、止まれない構造になっている。
ビットコインで支払うと、ドローンがジュースを落としてくれるサービスを考える。
- いつ落とすのか?
- 原理上は落とせない。
- (上述のチェーンのマージによって)取引が消える可能性があるから。
- 現実的には誰かが(取引が消える)リスクを取らないとできないサービス。
- いつ落とすのか?
ブロックチェーンとIoTは相性が悪い。
- アクチュエータを動かすタイミングを決められない。
- ブロックを確定させられないから。
- アクチュエータを動かすタイミングを決められない。
ブロックチェーンはビザンチン将軍問題を解いたと言われるが、実際には解けていない。
- ネットワークを分断すると攻撃が可能(エクリプス攻撃)。
スケーラビリティの問題。
- 取引増加に伴ってデータ構造のコストが増加する。
- 世界がひとつでなければ動かない
- ブロックサイズを変える、という決定でさえも、全ブロックチェーンが一致しないと適用できない。
- 技術進化のガバナンスが効きにくい、ということ。
- ブロックサイズを変える、という決定でさえも、全ブロックチェーンが一致しないと適用できない。