ブロックチェーンをざっくりと把握するのに参考にした情報まとめ

ブロックチェーンについて、把握する必要がでてきたので、ざっと調べて、わかりやすかったサイトをまとめてみました。

このサイトがわかりやすかったよーとか教えていただけると嬉しいです！


## 用語

### ブロックチェーン・ビットコイン

ブロックチェーンの仕組み　〜初心者のためのわかりやすい解説〜
https://gaiax-blockchain.com/blockchain-first-book

>まず、最初に、ブロックチェーンを一言で表してみたいと思います。
>それは、台帳です。


日本語で読むビットコイン原論文 [by Satoshi Nakamoto] – Coincheck blog
https://coincheck.blog/292

>純粋なP2P電子マネーによって、金融機関を通さない甲乙間の直接的オンライン取引が可能になる。電子署名は問題の一部を解決するが、依然信用できる第三者機関による二重使用予防が求めらため、その恩恵は失われる。当システムはP2P電子マネーにおける二重使用問題の解決を提案する。このネットワークは取引に、ハッシュベースの継続的なプルーフ・オブ・ワークチェーンにハッシュ値として更新日時を記録し、プルーフ・オブ・ワークをやり直さない限り変更できない履歴を作成する。最長である一連のチェーンは、取引履歴を証明するだけでなく、それがCPUパワーの最大のプールから発せられたことを証明する。大多数のCPUパワーがネットワークを攻撃していないノード（ネットワーク接続ポイント）によってコントロールされている限り最長のチェーンが作成され、攻撃者を凌ぐ。ネットワーク自体は最小限の構成でよい。メッセージは最善努力原則で送信され、ノードは自由にネットワークから離脱、再接続することができ、離脱していた間のイベントの証明として最長のプルーフ・オブ・ワークチェーンを受信する。


Bitcoinを技術的に理解する
https://www.slideshare.net/kenjiurushima/20140602-bitcoin1-201406031222


ブロックチェーンとBitcoinにまつわる6つの通説を覆す | カスペルスキー公式ブログ
https://blog.kaspersky.co.jp/bitcoin-blockchain-issues/17658/


Protocol documentation - Bitcoin Wiki
https://en.bitcoin.it/wiki/Protocol_documentation


### UTXO

ブロックチェーンの取引データをひとつなぎにする仕組み「UTXO」
https://gaiax-blockchain.com/utxo

>ブロックチェーンを利用した仮想通貨はいくつもありますが、一番有名であるビットコインでは、コインの管理方法にUTXOという仕組みを使用しています。（以下ではUTXOを用いる仮想通貨としてビットコインを前提とします。）UTXOとは、「Unspent Transaction Output」の略で、日本語では「未使用トランザクションアウトプット」などと呼ばれています。これは簡潔に言えば、通帳のようにアカウントの残高をそのままデータとして管理・記録するのではなく、取引データのみに基いて残高を計算して求める方法です。


【 仮想通貨のUTXOモデルとは 】 図解説でワカるUTXOの仕組み
https://kusacurrency.com/technology/utxo/


「UTXO」とは？ビットコインの残高管理方法「UTXO」の仕組み | CoinOtaku（コインオタク）
https://coinotaku.com/?p=16876


### P2P

Peer to Peer - Wikipedia
https://ja.wikipedia.org/wiki/Peer_to_Peer

>P2Pに対置される用語としてクライアント-サーバ方式がある。クライアント-サーバ方式ではネットワークに接続されたコンピューターに対しクライアントとサーバに立場・機能を分離しており、一般的には多数のクライアントに対してサーバーが一つである。クライアントはサーバーとだけ通信でき、あるクライアントが他のクライアントと通信するにはサーバーを介す必要がある。

>P2Pではネットワークに接続されたコンピューター同士が端末装置として対等の立場、機能で直接通信するものである。クライアント-サーバ方式ではクライアント数が非常に多くなると、サーバおよびその回線に負荷が集中するのに対して、Peer to Peer方式はその構造上、端末数が膨大になっても特定端末へのアクセス集中が発生しづらいという特徴がある。


事例や仕組みを分かりやすく解説！P2P（ピアツーピア）とは | TechAcademyマガジン
https://techacademy.jp/magazine/16239


### ハッシュ

ハッシュ関数 - Wikipedia
https://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E9%96%A2%E6%95%B0


>ハッシュ関数 (ハッシュかんすう、英: hash function) あるいは要約関数[1]とは、あるデータが与えられた場合にそのデータを代表する数値を得る操作、または、その様な数値を得るための関数のこと。ハッシュ関数から得られた数値のことを要約値やハッシュ値または単にハッシュという。
>
>ハッシュ関数は主に検索の高速化やデータ比較処理の高速化、さらには改竄の検出に使われる。例えば、データベース内の項目を探したり、大きなファイル内で重複しているレコードや似ているレコードを検出したり、核酸の並びから類似する配列を探したりといった場合に利用できる。


「ハッシュ」ってどんな意味？ - Qiita
https://qiita.com/jkr_2255/items/4787055c8f600695658d


ブロックチェーンに必要不可欠な機能「ハッシュ」
https://gaiax-blockchain.com/hash


### プルーフ・オブ・ワーク

プルーフ・オブ・ワークシステム - Wikipedia
https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AB%E3%83%BC%E3%83%95%E3%83%BB%E3%82%AA%E3%83%96%E3%83%BB%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0

>プルーフ・オブ・ワーク (proof-of-work、POW) システム (またはプロトコルかファンクション) はサービスのリクエスターに一部の作業を要求(通常はコンピュータによる処理時間を意味する)することでDoS攻撃やネットワーク上のスパムなどの他のサービスの濫用を抑止する経済的手段。コンセプトは1993年のジャーナル記事で示されているようにシンシア・ドワークとMoni Naorによって発明された[1] 。「プルーフ・オブ・ワーク」またはPOWという用語はマーカス・ヤコブソンとアリ・ジュルズによる1999年の論文で最初に造語され、公式化された[2] 。ソロモン諸島の貝貨は通貨に価値を与えるためにプルーフ・オブ・ワークシステムが使われた初期の例である。

プルーフオブワーク（PoW）の仕組みとは？プルーフオブステークとの違いも説明します！ | CoinOtaku（コインオタク）
https://coinotaku.com/?p=1235


### プルーフ・オブ・ステーク

プルーフ・オブ・ステーク - Wikipedia
https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AB%E3%83%BC%E3%83%95%E3%83%BB%E3%82%AA%E3%83%96%E3%83%BB%E3%82%B9%E3%83%86%E3%83%BC%E3%82%AF

>プルーフ・オブ・ステーク(Proof-of-stake、PoS)は暗号通貨のブロックチェーンネットワークによる分散型コンセンサスの達成を目的とするアルゴリズムの一種。PoSベースの暗号通貨では次のブロックの作成者はランダム選択と資産または年齢(例：ステーク(掛け金))の様々な組み合わせを通して選ばれる。対照的にプルーフ・オブ・ワーク(PoW)ベースの暗号通貨(ビットコインなど)のアルゴリズムはトランザクションの検証と新たなブロックを作成(例：マイニング)するために複雑な暗号パズルを解読した参加者に報酬を与える。


Proof of Workの欠点を克服させた合意形成アルゴリズム「プルーフ・オブ・ステーク」
https://gaiax-blockchain.com/pos


イーサリアムに導入予定。プルーフオブステークのメリットとデメリット
https://zoom-blc.com/proof-of-stake


Proof of Stake（プルーフ・オブ・ステーク／PoS）とは？仕組みやメリット・デメリットを解説！ | BITDAYS（ビットデイズ）
https://bitdays.jp/mining/12264/


### 51%攻撃

51%攻撃を技術の話ぬきで説明すると - ビットコインダンジョン2.0
https://coinandpeace.hatenablog.com/entry/51%25_attack_for_non_techies


### ハードフォーク

ハードフォークとは何？ Weblio辞書
https://www.weblio.jp/content/%E3%83%8F%E3%83%BC%E3%83%89%E3%83%95%E3%82%A9%E3%83%BC%E3%82%AF

ビットコインブロックチェーンのゼロダウンタイムとは - とってもやさしいビットコイン
https://www.tottemoyasashiibitcoin.net/entry/2017/02/28/203038


### ブロックサイズ

ビットコインの抱える技術的限界。ブロックサイズ問題とは - ビットコイン百科事典
http://xn--eck3a9bu7cul.pw/articles/gyFUo


### SegWit

SegWitとLNを理解するための前提知識　トランザクション構造とトランザクション展性 | ビットコインの最新情報 BTCN｜ビットコインニュース
https://btcnews.jp/3j4cddby12067/


ビットコインで有効化された「SegWit」を技術的に理解する | ビットコインの最新情報 BTCN｜ビットコインニュース
https://btcnews.jp/a9p28hth12470/


## まとめ

とりあえずド素人が読むべきブロックチェーン入門論文・書籍・サイト - Qiita
https://qiita.com/onokatio/items/7db58947b05c17d1f44e


## 実装

ブロックチェーンを作ることで学ぶ 〜ブロックチェーンがどのように動いているのか学ぶ最速の方法は作ってみることだ〜 - Qiita
https://qiita.com/hidehiro98/items/841ece65d896aeaa8a2a

自社サービスにブロックチェーンを実装するための考え方とオススメライブラリ3選｜ferret [フェレット]
https://ferret-plus.com/10097