広義
- 処理の単位(Tx)を固めたブロックをチェーンさせるデータ構造を持ったDB
- 上記DBをネットワーク上で複数ノードが保持
狭義
- 広義の2点と、さらに以下の2点
- ネットワークを構成するのは不特定多数のノード(管理者が不在)
- そのノードによる合意が一意に決まる仕組みがある
なにがよいのか
-
耐改ざん性を持ったDB
- 改ざんされても検出できる
- 全ノードが平等なのでSPOFがない
- 価値を他のデータ同様に簡単に送ることができる -> セキュリティのためのコストが格段に下がる
-
内容が世界中から閲覧可能
- 暗号化によって見せたい部分だけ見せることができる
- コストは秘密鍵の保持のみ
- 2009年より運用開始した暗号通貨
- Satoshi Nakamoto(謎)
ビットコインという言葉の使われ方
- ビットコインの仕組み
- ビットコインという通貨
- 通貨単位(BTC)
ビットコインの仕組み: 誰がどれだけお金を持っているのかを正しく保障する仕組み
- 誰がどれだけもっているのか
- 全取引記録がブロックチェーンに載っている
- 取引記録は2通り
- マイニング
- 送金
"正しく保障する"仕組み -> Proof Of Work
例: 送金
- A->Bに1BTC
- A: Bのウォレットアドレスを使って1BTCを送るトランザクション(Tx)を作る
- A: Txをビットコインネットワークに送る
- マイナー: AのTxを含んだブロックを作成する
- マイナー: ブロックを作成した報酬を得る
Proof Of Work
- ブロックを作る時、"ブロックのハッシュ値が一定ラインより小さい"という条件を満たす必要がある
- マイナーはナンスという値を次々に変え、総当たりでブロックのハッシュ値をもとめる
- 一番最初に見つけたマイナーがブロックを作成し、報酬を得る
- ブロックはネットワークに流され、他のノードに検証される
- 最も長いチェーンの後ろにブロックが足される
不正対策
- 不正なブロックを速くつくり、最も長いチェーンにすることを狙う
- 最も長いチェーンをつくる == 全世界相手に計算力勝負をする -> 割に合わない
- 全員が自分の得を考えて動くと不正が起こらないようになっている
ブロック
- 1ブロック1MB
- 10分おきに作られる
- 2009年からで100GB程度
細かい仕様をいじる
- オルトコイン
ノードと合意の仕組みをいじる
- 社内ならゆるいルールでOK、など
トランザクションの中身を変える
- 取引記録以外の様々なものを送ることができる
仕様を追加する
- スマートコントラクト
- 残額が一定を下回ると自動送金する仕組み
- Brooklyn Microgrid
- 電力を融通, 売買する仕組み
- マネタイズが難しい
- 高信頼性が必要なケースが少ない
- 理解のハードルが高く、エンジニアが育ちにくい
-
Q: 51%攻撃: 不正をしようとする人が全体の半分を超えると不正側が勝ってしまう。そうならないのか?
-
A: 51%攻撃が成功するとそのニュースによってビットコインは暴落するので攻撃の意味がなくなってしまう
-
Q: 多数決のようなものか
-
A: 株主総会に近い。計算力が発言権。
-
Q: ブロックチェーンは多数決の話なので、数で押す攻撃に弱いのではないか
-
A: ブロックチェーンというよりはProof Of Workの問題。他の合意の方法を取ることもできる。
-
Q: エンジニアが育たない、のエンジニアはどのようなエンジニアか。
-
A: ブロックチェーンをつくるエンジニア。ビットコインコアを理解できる人が少ない。コアのコミッタは世界で300人
-
Q: 一番長いチェーンはどのように見つけるのか
-
A: 正しいチェーンが常に共有されているので、差分が出るのは瞬間的なもの。
-
Q: チェーンの共有のイメージはgitのコミットのツリーのようなもの?
-
A: 合っている。ちなみにブロックの深さは難易度で表される。(上記の"条件"の部分)