Karigane Honey

24歳社会人2年目♀のブログです。

ブロックチェーンの講義メモ - 1

 KEIO UNIVERSITY SFC GLOBAL CAMPUSの、
ブロックチェーンについての講義メモです。

個人的に必要なところをだらだらとまとめました。授業ノートの気持ち。

講師は「村井純(教授)」と「斉藤賢爾(講師)」です。

  1. 読みつつメモ
  2. 個人的感想を灰色で記載

以上のような流れで構成されています。

そのうちまとめ作りたい…長いよお…。

授業URL:http://gc.sfc.keio.ac.jp/cgi/class/class_top.cgi?2017_42469

 はじめに

この授業は寄付講座

この授業はSBCの寄付によって運営されています。
ブロックチェーンは今後金融プラットフォームにとって不可欠だと言われている。

銀行勤務の人が「不可欠」と言っている時点で、
事実はどうであれ、少なくとも世間の50%とかそこらへんの人たちは、
反射的に「将来性のあるもの」と認識しそう。

授業内容はハッシュタグでまとめてるらしい

すごく効率的だなあと思いました。

スライドには「あとでトゥギャってください」とまで書いてある。
SFCは未来に生きてるなあ…。

村井先生のおはなし

UNIXは複数のユーザーが同じコンピューターを使える仕組みのこと

それを発展させると、コンピューター同士を繋いでいきたくなるのがエンジニア魂。

それがインターネットの始まり。

インターネットでパソコンを繋ぐのが楽しくなりすぎて、
大学のPCにTCP/IPを導入したら、
そのうち全世界にインターネットが普及していた…?

(ちょっと壮大過ぎてよくわかんないです)

最初のインターネットにはセキュリティという概念がなかった

論文の共有が主な利用法だったため、
最初のうちは「セキュリティ」自体が無くても問題なかったらしい。

要するに「みんな良いやつだったんだよ」とのこと。

人の命やお金を扱うようになったため、今後はデータに関する信頼性が必要。

ブロックチェーンについて

自立分散システムの信頼性が大きな問題となっている。

遠隔医療などに、ブロックチェーンを応用できないかについて研究している。

ブロックチェーンの研究については、
「今からやらなければいけない使命」として考えている。

データ構造のプラットフォームとしての、
ビットコイン以外の活用法も議論したいと思う。

Q&A

Q. (学生)病院との間にどのような試みがあるんですか?

A. (村井)ひとつめは在宅医療の、家と病院を繋げるテクノロジー。
家のテレビと病院のモニターを繋いだり、医療器具の測定したデータを医者に送信したり、「在宅医療ノート」がどのような方法で共有できるか。ここにブロックチェーンを応用したい。

ふたつめに、遠隔医療をすると点数にならないから、治療をしたがらない医師が多い。処方箋が出せない。16kmを超えると遠隔医療をしてはいけない、などのルールに対して働きかけたいと思っている。
技術的には遠隔医療が可能になったとしても、制度が整っていないので、そこについて考える。

また、病院がどのようにデータを活用していくかについても考えています。

この授業の目的とゴール

ブロックチェーンについて正確に理解する

「いかなる応用もその技術的特性から離れて議論することはできません」

分散レッジャー(台帳)の技術を基礎から解説し、
その限界と向き不向きを明確にした上で、さまざまな応用可能性について検討する。

世の中で言われていることに惑わされない

講師の言っていることも鵜呑みにしない。
TVの発言についても、観点・技術の視点から考察する。

また、他人について説明ができるかについても指標を置くと良い。
「家族に説明する」を、授業に参加している人たちの共通のゴールとすると良い。

探検せよ、解釈するな。
実験せよ、幻想を抱くな。

精神医学の人の言葉ですが、
人の夢の分析をする際に「解釈」や「幻想」をしてはいけない。

学問なのでなんらかの解釈は必要だが、
「自分の知っていることに当てはめて考える」ことをやめないといけない。

全くの余談ですが、私(雁ヶ音)のiPod touchには、
"Nein, gerade Tatsachen gibt es nicht, nur Interpretationen."と書いてあります。
ニーチェです。

「事実は人の目を通すと少なからず湾曲するから気をつけないと」みたいな、
戒めのために持ち歩いている言葉なので、
すごく共感しました。

履修選抜課題で出されていた書籍

「分散レッジャー技術と来たるべき社会変容」

今度読む

選抜課題で書かれていた生徒のコメント抜粋

電子マネーの技術の一般化で、これまでの貨幣経済が衰退することがわかりました

→(斉藤)自分の考えではもっと激しい。
貨幣経済が衰退するときは、bitcoinも衰退すると思っています。
仮想通貨は過渡的です。

日本人による貨幣崇拝の脱却はあるのでしょうか

→(斉藤)実際に貨幣を崇拝してるのかよくわからない。
ちなみに自分は現金で払うの好きです。
今しかできないかもしれないから。

その発想はなかった

スタートアップを立ち上げる際にICOを選択肢に入れたい(新しい電子通貨を作りたい)

→(斉藤)おすすめしません。
「ないものを売る」のは難しい。信用をどこで得るの?

投資したいです

→(斉藤)上記の理由で、ICOはおすすめしません。
でも「新しい投資」という概念は重要です。

自分がブロックチェーンを実装するとなったらどんなデザインが必要か知りたい

→(斉藤)重要です。今後は「設計」が重要。
プログラミングはソフトウェアがする時代になるかもしれないから。

通貨無しで生活することはできない

→実はいる。ジョン・レノンとか。あとは子どもとか。

偽造ワインとかが流行っているし、技術を応用してワインボトルについてもトラッキングしたい

→期待しています。

(本人や商品の正規品確認の情報記録手段にブロックチェーンを使えるのか…)

人工知能やブロックチェーンは、突き詰めると人間の倫理観や神の存在といった理論に行き着く気がします

→「人間の自由」についてもぜひ考えてみてください。

ブロックチェーンとは

名前が嫌いです

そもそも開発者はブロックチェーンなんて呼んでない。「分散タイムスタンプサーバ」と呼んでいた。

それが「ブロックチェーン」になったのは「ブロックのチェーン」だから。

これは頭の良いマーケティング用語。わかりやすい。
でも「固まり」「守る」や、「金属の鎖」ひいては「セキュリティがすごい」みたいな印象を与える。

言葉に惑わされないようにね。仕組みを知ってね。

個人的には「分散タイムスタンプサーバ」のほうがわかりやすい。

言語学専攻した後に発症した病気みたいな思考だけど、
「基礎語彙が怖い」と思うことがよくあります。

実は基礎語彙というのは「容易に理解できる言葉」ではなく、
「容易に解釈できる言葉」に過ぎないもので、
実はものすごく使い方が難しいんですよね…とかそんな独り言。

ブロックチェーンの「問い」

技術はすべて「何かの問いを解決する」ためにある。

格好良く言ってるけど「必要は発明の母」かな

ビットコインの場合は、
「自分が持っているお金をいつでも自分の好きに送金することを誰にも止めさせないためにはどうすればいい?」という問い。

現状、銀行は結構さっくりと口座を凍結してきたりする。

この問題解決のために、ビットコインは、
1. デジタルで作る
2. クライアント・サーバーが存在しない状況にする
ことが必要だった。

ビットコインは実は「誰かから誰かにお金を送れていない」と斉藤先生が言ってたけど、どういうことだろう。

まず、第一段階としては、「デジタル署名」のついた送金が必要。
送信と受信の証拠を残して、検証できる。
自分の下行動について、否認不可能性があることが大事。

だが、これだけだと「送信」とはそもそも「コピー」なので、
複数のデジタル署名を複製できる。
これをダブルスペンディングと呼ぶ。

これの解決として、
ビットコインの場合は「新聞に載せる」とサトシ・ナカモトは論文に書いている。
これが第二段階。

つまり「みんなが確認できる場所に取引の履歴を書く」こと。

出版社がいると「それを載せません」と言われる可能性があるため、
「みんなの力で"新聞"を作る」必要がある。

それにより、メンバーが入れ替わったりしても"新聞"が維持されることが目標である。

また、お金は私有されない公共財である。
例えば、貨幣や硬貨を処分すると怒られる(日本銀行の所有物だから)。
そのような公共財でも、
「その時点での」所有の在り処をはっきりすることができる。

「AさんからBさんに送った」という履歴が残るので、
それが最新ならそのお金はBさんに所有権があることになる、ということっぽい。

 ブロックチェーンの概要

暗号学的ハッシュビット

特定の暗号学的ハッシュビットを通すと、短い256ビットくらいになる。

特定のデータを短いビットに変換することはできるが、逆は困難。

いくつかの取引データがあり、そのまとまりを「ブロック」としている。

それぞれのブロックに「入金」と「出金」がある。

例えばAからBへの入金は「AからBへnの量のビットコインを入金」、
また、AからBへの出金は「過去にAが得たnの量のビットコインのうちからmの量のビットコインを出金」になる。

証明としてデジタル証明が入っている。

先頭のブロックのみは「入金」「出金」ではなく、
「出力」が記載されている。

なにもないところから12.5btcが発生し、
自身に送信する。

マイナー、マイニングとは

無からのビットコインの生産ができるのは、
「マイナー」と呼ばれるブロックを生産する人たち。

それを報酬としてブロックを生産するためにマイナーは頑張っている。

ブロックチェーンは先程話に上がった"新聞"のような役割を行っている。

一度消費されたコインが二重消費されないように、
確認をしている。

正当性を担保するようにマイナーが確認している。

マイナーは取引が正しく行われていることを証明し、
その報酬として12.5btcを得ている。

この作業をマイニングと言う。

P2Pで行われている作業なので、
混乱が生じない工夫が必要。

その解決策がタイムスタンプである。

ダイジェストの中にタイムスタンプが含まれており、
そのタイムスタンプの順に並べると時系列になる。

この仕組みは「改ざんをすると新しいダイジェストが発生するため、改ざんは難しい」と言われる。

しかし、これ自体は正しくない。

「ダイジェストの改ざん」自体は一瞬でできる。

本当は「ブロックのダイジェストを計算したときに、ある特定の条件(ターゲット)があり、ターゲット以下のダイジェストを作成することになっている」ので改ざんが難しいのある。

ブロックチェーンでは、
予めどのような条件でブロックを生産すればいいのかが公開されていないのである。

ブロックを生産するときは、
ノンスと呼ばれるものを0から順に調節し、
ダイジェストがターゲット以下になるものを探さなくてはいけない。

これは大体「10分に1回だれかが成功する」くらいの難易度に調整されている。

すると、

  1. たまにしかブロックが出てこなくなるので、検証の時間が取れるようになる。
  2. 改ざんが難しくなる。
    どこかを改ざんすると「すべてのマイナーが参加して10分に1回改ざんされるくらいの難しさ」のブロックを、
    改ざんしたいもの以降すべて改ざんしないといけなくなる。

ため、混乱が生じなくなるのである。

大きな問題がある

P2Pでやっているため、くじ引きのようなもの。

普通のくじ引きは「一人ずつ引くもの」だが、
P2Pの場合は「箱の管理」「整列させる人」などが居ないため、
「みんなが同じ箱を持って全力で引きまくる」ことが必要になる。

すると、あるところでAさんの"くじが当たった"として、
ネットワークの向こうでもBさんが"くじが当たった"状況が発生する。

この場合「Aさんのブロックチェーン」と「Bさんのブロックチェーン」がそれぞれ正しく存在することになる。

こうなるとAさんのチェーンとBさんのチェーンに別の情報が入っていた場合、
「二重消費」がされてしまう。

これを解消するために「より長いチェーン(コストがかかっている)が正しい」とする、
「ナカモトコンセンサス」という同意が取られている。

改ざんを難しくしたいため、「改ざんコストが最も高いチェーン」を正しいものとしているのである。

ビットコインの技術についてのざっくりした説明

  • ルール - アプリケーションロジック(btcの移動など)
  • 唯一性 - コンセンサス機構(二重消費されないため)
  • 存在証明 - 分散タイムスタンプ(作業証明)
  • 正当性 - レッジャー構造(公開鍵が埋め込まれたUTXO構造)

ブロックチェーン(のようなもの)は"End to End"の哲学を、
資産の制御において現実化することを試みる、
「空中約束固定装置」のことを指すのである。

End to Endというのは「端っこが一番偉い」みたいな仕組みのことらしい。

真ん中は馬鹿でも良いけど、端っこは賢いほうが良いよ!みたいな。

まあもともと端っこだったものが真ん中になっていくんだから、
端っこが賢いなら真ん中もほどほどに賢いかあ…。

ビットコインが苦手なこと

秘匿性が持てない

そもそもそういう仕様だから。

秘匿性が必要なアプリケーションには適していない。

実時間性がない

「だいたい10分置き」にブロックが生成される。

正確に10分毎であれば、実時間性があるのだが、
現状はそれができない。

○時に決済回らないと!みたいなやつが動かなくなると、
それが決済システムだった場合、だるだるになるなあ…。

現在までの実際の応用

金融

銀行ネットワークをバイパスしてしまう送金が可能

存在証明

ダイヤモンドなどのトラッキングなども可能

ビットコインの課題

ハッシュレートの推移

ハッシュレートとは、
時間中に何回ダイジェストが計算されているか、というもの。

だんだんとハッシュパワーが上がると、
「計算がたくさんされてるから改ざんしづらくて安心だね」
と考えがち。

しかしハッシュパワーが急に2倍以上になるのは危険である。

これまでも3ヶ月に4倍にまでなったことがあるのだが、
これを悪意のある人間が行っていた場合、
「改ざんは可能だった」ということになる。

ブロックチェーンの上書きが可能ってこと

現実 vs ブロックチェーン

そもそも「やりとり確定」っていつ?

「長いチェーンが有利」って言うけど、
実時間性もないのにどこで判断してるの?

慣習として「6つチェーンが付いたら改ざん難しいしここで正史としようね」ということになっている。

しかしその原理だと確定まで1時間近く待つことになる。

それって短時間に決済の確認したいときにどうするの?

スケールアウトとブロックチェーン

ノードを追加しても性能上の課題を解決・緩和できない

なんのこっちゃ

「世界がひとつ」じゃないと動作しない

ネットワークが分断されるともれなく死ぬ。

政府とか大きな基盤が揺らいでも結構揺らぐ。

これってギリシャ危機とかのときに価値があがったはずだけど、
アメリカがもしも揺らいだりしたら、
そのときは危なくなったりするってことなのかなー

技術を進化させるガバナンスが効きにくい

「一部で違うことを試してうまくいったら全体採用」ができない。

STG環境がないのか…つらいな…

価値が落ちたら消える、で大丈夫?

ビットコインを応用してしまっているから、
価値が落ちたら消える、ということが起きると大変なことになる。

馬鹿だからなのか「じゃあ危なくなっても政府が介入して救ってくれるね!よかったよかった!」って思った私がいるんですが、どうなんです?