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

■ はじめに

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

■ 教材(参考サイト)

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

ブロックチェーン技術

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

デメリット

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

51%攻撃

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

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

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

起きないこと

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

対応策

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

■ 構成

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

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

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

特記

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

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

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

■ 用語整理

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

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

トランザクション (Transaction)

* 取引データのこと

ブロック (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/
フォーク (fork)

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

P2P (Peer to Peer)

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

ノード (Node)

* P2P接続している端末

ピア (Peer)

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

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

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

関連記事

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