ブロックチェーン ~ 基礎知識編 ~

■ はじめに

ブロックチェーンを分かりやすい解説があったので、
メモっておく。

目次

【1】教材
 1)概要を掴む
 2)技術よりの動画
 3)ブロックチェーン基礎
 4)書籍
【2】ブロックチェーン技術
 1)デメリット
 2)51%攻撃
【3】構成
 1)特記
【4】用語整理

【1】教材

1)概要を掴む

以下の動画を見るとざっくりブロックチェーンを
把握することができる

https://www.youtube.com/watch?v=iGzP11LNJZA

2)技術よりの動画

https://www.youtube.com/watch?v=hL4DPEDb74I&t=97s
Pythonコード
https://www.youtube.com/watch?v=gcAJWpQgcIs&t=326s
https://www.youtube.com/watch?v=WGSytLSi628&t=8s

3)ブロックチェーン基礎

https://aidemy.net/courses/7000/exercises/Bk-ppgxXOz

4)書籍

【2】ブロックチェーン技術

1)暗号化技術
2)コンセンサス・アルゴリズム(合意形成)
3)P2P (Peer to Peer)
4)DLT(Distributed Ledger Techonology; 分散型台帳技術)
 ⇒ 改ざんしづらくなるので、セキュリティが高まる

1)デメリット

1)データサイズが大きいと使えない(ブロック容量に上限があり、取引が格納しきれない)
2)データが検索しづらい
3)処理速度が遅い・取引承認の遅延
4)自律分散的な仕組みなので、システム停止が容易ではない
5)悪意をもった人でも簡単に参加できる

2)51%攻撃

* 悪意のあるグループまたは個人により、
 ネットワーク全体の採掘速度の 51%(50% 以上)を支配し、
 不正な取引を行うこと
(これは、ブロックチェーンの仕組みから思った。自分以外の全員がグルだったらって)

どういったことが起こる?

1)2重支払い
2)取り引きの承認を妨害する
3)マイニング報酬の独占

起きないこと

1)過去の取引の改ざん
2)他人の仮想通貨を盗む(秘密鍵が分からないため)
3)ビットコインを好きなだけ生み出す

対応策

1)PoS (Proof of Stake/プルーフオブステーク)
 ⇒ 仮想通貨の所持量によってブロック承認が行えるというシステム

【3】構成

1)timestamp タイムスタンプ
2)previous hash 前回のブロックチェーンのハッシュ
3)nonce(ナンス)
4)transactions (取引一覧) 
5)transaction pool (一定量の取引をためておくメモリ領域)

「3)nonce(ナンス)」について

* number used once の略 (=一度だけ使われる数)

1)特記

不正な取引を防ぐためには...

* ビットコインの送信者を特定するために、 公開鍵暗号方式を採用する

 i)秘密鍵 ... 利用者に独自で割り当て、公開してはいけない
ii)公開鍵 ... 公開しても問題ない。秘密鍵からハッシュを用いて作成する

【4】用語整理

1)ブロックチェーン (Block chain)

* 中央集権的な主体による管理を必要とせず、
 情報を改ざん不可能な形で記録する技術

2)トランザクション (Transaction)

* 取引データのこと

3)ブロック (Block)

* トランザクションをまとめたもの

ジェネシスブロック (Genesis Block)

* ブロックチェーンの最初のブロック

https://floc.jp/glossary/%E3%82%B8%E3%82%A7%E3%83%8D%E3%82%B7%E3%82%B9%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF/

4)フォーク (fork)

* ブロックチェーンの分岐する現象

ソフトフォーク

* 新バージョンのブロックは旧バージョンでも有効
* 新旧で互換性があり、いずれ収束する

ハードフォーク

* 新旧で互換性がなく、分岐したままになる

5)P2P (Peer to Peer)

* 各端末間の情報共有によって、
 データを管理するネットワークモデル

6)ノード (Node)

* P2P接続している端末

7)ピア (Peer)

* ブロックチェーンに参加する他のノード

8)コンセンサス・アルゴリズム(合意形成)

* ブロックチェーンに参加する他のノード

cf. consensus = 合意

9)ワレット(Wallet)

* 仮想通貨(秘密鍵)を補完するところ

ホットワレット(Hot wallet)

* 秘密鍵の保管場所:サーバ・アプリ上

コールドワレット(Cold wallet)

* 秘密鍵の保管場所:サーバ・アプリ上以外の場所で
 「ハードウェアワレット(専用HD)」と「ペーパーワレット(紙面)」がある

関連記事

Python】ハッシュ
https://dk521123.hatenablog.com/entry/2020/05/03/010502