Karigane Honey

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

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

kariness.hateblo.jp

↑これがめちゃくちゃ長かった&日本語下手だったので、
要点だけ整理しました。

はじめに

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

講師の言っていることも鵜呑みにしない。

TVの発言についても、観点・技術の視点から考察する。

また、他人について説明ができるかについても指標を置くと良い。

学習の際は、
家族に説明するレベルになることをゴールとすると良い。

 ブロックチェーンの背景

ブロックチェーンの持つ「問い」とは

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

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

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

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

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

  • 送信した側が「送っていない」というのを防ぐ
  • 受信下側が「もらっていない」というのを防ぐ

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

  • AliceがBobにデータを送信するというのは、
    Aliceのコンピュータ内のデータを複製して、
    その宛先にBobを指名するということ
  • この状態だとAliceは、
    Bobに1BTCを送信して、
    "同じ"ビットコインをCarolに送ることもできる

この現象の解決のために、
ビットコインの発案者であるサトシ・ナカモトは、
「取引の履歴を新聞に載せる」と述べている。

これが第二段階目である。

これはつまり、
「みんなが確認できる場所に取引の履歴を載せておく」ということだ。

しかし、この”新聞”は、日常で読んでいるような新聞ではいけない。

出版社を仲介した場合、
「それを載せません」と言われる可能性があるため、
”新聞”はみんなの力で作る必要があるのだ。

公共財の管理が得意かも

ちなみに、ビットコインは「公共財」の管理にも向いている。

例えば、
日本国内で使われている「円」の貨幣や硬貨は日本銀行の所有物であるため、
勝手に処分した場合怒られる。

また、誰の持ち物であるかを証明することが難しい。

しかし、ビットコイン及びブロックチェーンの場合は、
お金の動きを把握することができるため、
お金の「その瞬間の」所有者をはっきりと示すことができる。

これからの応用の道

これまでのインターネットは、
自律分散システムの信頼性が大きな問題。

そもそも"インターネットセキュリティ"という概念自体、
インターネットが発足したときには存在していなかったものだった。

その点、ブロックチェーンは最初からセキュリティに重点をおいており、
これまでのインターネットに比べ、
より強固なセキュリティ技術を持っていると考えられる。

遠隔医療などにも、
ブロックチェーンのセキュリティの高さを応用できる可能性がある。

ブロックチェーンの技術

暗号学的ハッシュビット

取引の情報に特定の暗号学的ハッシュビットを通すと、
256ビット程度の短い情報になる。

特定のデータを短いビットに変換することは容易だが、
逆は困難なのが特徴である。

その短いビットを幾つかあつめたものが、
「ブロック」と呼ばれるものである。

入金と出金の仕組み

それぞれのブロックには「入金の情報」「出金の情報」が含まれている。

 

  【ブロックとかの雑な図説】

  □-□-□-□ ←これがブロックチェーンなら

  □←これがブロック

  ←ブロックの中は入出金データがこんな感じになっている

  □←これをキュッとまとめて1ブロック

 

入金の場合、例えばAからBへの入金とすると、
「AからBへnの量のビットコインを入金」というデータが入っている。

また、出金の場合、AからBへの出金とすると、
「過去にAが得たnの量のビットコインのうち、mの量のビットコインをBへ出金」となる。

それぞれの入出金データにはデジタル証明が入っており、
ビットコインの移動の履歴が確認できるようになっている。

マイナーへの報酬

先程述べたブロックは連なってチェーンを形成している。
その各ブロックの先頭だけには入出金データではなく、
「出力」のデータが入っている。

どういうことかというと、
先頭では「なにもないところからビットコインが発生する」ようになっているのである。

ちなみにその発生したビットコインは、
ブロックをチェーンしてくれるマイナーへの報酬となっている。

額にして12.5btc(最近1btc=30万円くらいだから、375万円)である。

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

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

それを報酬としてマイナーはマイニングを頑張っている。

 

  【マイニングの雑な図説】

  バラバラな決済データを

  □←きゅっとブロックにして

  □-□-□  □ ))) ←もともとあるチェーンの尻尾に

  □-□-□-□←くっつける

  ←ブロックの中は入出金データがこんな感じになっている

 

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

チェーンが生成されるときには、
一度消費されたコインが二重消費されないように確認をしている。

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

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

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

マイニングが行われている環境とそれに付随して発生する問題

マイニングはP2Pで行われている作業なので、
混乱が生じない工夫が必要。

一気に全員が行うため、
データがぐちゃぐちゃになったら困るためである。

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

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

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

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

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

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

ブロックチェーンの改ざん

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

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

要するに総当たり戦をしているのである。

条件はわからないけれど関数全部に片っ端からなんらかの数字を入れて計算するのである。

センター試験の確率の問題を思い出す(文系ネタ)。

ちなみに、
このノンス総当りは大体「10分に1回だれかが成功する」くらいの難易度に調整されている。

つまり、
どこかを改ざんすると「すべてのマイナーが参加して10分に1回改ざんされるくらいの難しさ」のブロックを、
改ざんしたいもの以降すべて改ざんしないといけなくなる。

これを行うには、
ブロックを生産している全マイナーのコンピューターのパワーより多くのパワーが必要である。

そんな設備を準備する金のほうが馬鹿馬鹿しくなってくるというわけだ。

 ブロックチェーン技術の抱える問題

ブランチの発生と「ナカモトコンセンサス」

P2Pで行っているため、
ブロックの生産は全世界でくじ引きのように行われている。

一般的なくじ引きは「全員がひとつの箱から順番に引くもの」だが、
P2Pの場合は「箱の整理」「整列させる担当の人」などがいないため、
「全員が同条件の箱を各自持っており、それを引きまくる」ことになる。

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

この場合は、Aliceのブロックチェーンと、Bobのブロックチェーンが、
それぞれ正規のものとして存在することになる。

しかし、チェーンのブランチが2本とも正しいものとなってしまうと、
二重消費がされてしまう可能性がある。

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

秘匿性が持てない

もともとそういう仕様なので仕方がないのだが、
取引について秘匿性が持てない。

よって、
秘匿性が重視されるようなアプリケーションには適していない技術である。

実時間性がない

「大体10分置き」にブロックが生成されているため、
現実の時間と同期ができない。

必ず〇時に決済が必要なシステムなどの場合には適していない技術である。

ハッシュレートの推移

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

ハッシュレートが高いと、
「計算がたくさんされているから改竄しづらい」と考えがち。

しかし、ハッシュレートが短期間に2倍以上になった場合は、
その短期間に増えたハッシュパワーがすべて悪意のある人間だった場合、
「改竄が可能だった」ということになる。

これまでにも比較的短期間である3ヶ月間に4倍になっていたことがあるのだが、
このような場合は改竄を警戒しなければならない。

ブロックチェーンまとめ

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

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