とりあえずド素人が読むべきブロックチェーン入門論文・書籍・サイト
どうも。よくブロックチェーン興味あるけどよくわからん、という声を某所から聞くので、僭越ながら自分が勉強するために使っている参考文献を紹介します。
今後自分が新しく読むたびに追加していく予定です。
色々と追加していって、だんだん初心者向けじゃなくなっている気がしますが、各通貨内の小見出しが、上から下に行くに従って内容が難しくなるように並べてあります。
Mastering Bitcoin (書籍)
名著中の名著ですね。主にビットコインのブロックチェーンに関する一通りの説明が乗っています。業界では読んでいることが常識と呼ばれるくらいに一般的な書籍となっています。
全部目を通しておいて損はないと思われます。
自分の場合は、本を買わずに、拝みながら無償翻訳版(一番下のURL)を読ませてもらっていますが、そろそろ手元に置いておきたいところです。
日本語のブロックチェーン系ブログ・研究開発記事
名前順です。自分個人が断りなく追加させていただきました。もし問題などありましたらご連絡ください。
Develop with pleasure!
DMM
Ethereum Japan
ZOOM
コンセンサス・ベイス
グノシー
また、グノシーさんも勉強用のまとめ記事を書かれているようです。
ブロックチェーン技術を最速で理解するための勉強方法まとめ (エンジニア向け)
メルカリ
Bitcoin 関連
en.bitcoin.it
有名なBitcoinのWikiです。トランザクションの構造や、データベースの保存形式など、技術に関する細かい説明が掲載されています。Mastering Bitcoinで理論を学んだあと、実際に作業で使うのは主にこちらになっています。情報の新しさという面で、本よりも最新な点もGOODです。
Bitcoin Improvement Proposals (BIP)
BIPと呼ばれる、ビットコインの改善を文章化したものです。ビットコインのプロトコル追加案は基本的にこれに則っています。常にビットコインに取り込まれている最新の仕様が、一番根本のソースで確認できるので、本やWikiに比べると一番わかりやすく信頼できる情報源です。
自分は、BIPの翻訳をしているので、よければ参考にしてください。
BIP 0001 Bitcoin Improvement Proposal
BIP 0012 OP_EVAL
Lightning Network
数あるライトニングネットワークの構想ですが、その1つであるlightningnetworkグループが出しているホワイトペーパーです。
visucore
Bitcoinのリファレンス実装であるbitcoindの、クラスや関数、名前空間を簡単に図で確認できるサイトです。
関数の引数から、関数を定義してあるソースファイルなど、コアに手を入れるときに便利にな情報を確認できます。
Ethereum 関連
White Paper
Ethereumのホワイトペーパーです。日本語翻訳版もあります。
https://github.com/ethereum/wiki/wiki/White-Paper
https://github.com/ethereum/wiki/wiki/%5BJapanese%5D-White-Paper
Yellow Paper
White Paperから改良された論文です。Ethereumの詳細な設計・動作原理が乗っています。
Ethereum Wiki
コアデブが公開しているwikiです。Ethereumのホワイトペーパー、イエローペーパー、その他細かい説明が全て乗っています。Ethereum自体の基本的な仕組み・原理を学ぶにはもってこいです。
ブロックチェーンアプリケーション 開発の教科書
日本語でブロックチェーンについて書かれている数少ない書籍の1つです。
Solidityの書き方や、セキュリティ対策などが書かれています。
ブロックチェーン・プログラミング
日本語でブロックチェーンについて書かれている数少ない書籍の1つです。
こちらは、Ethereumというよりも若干Bitcoinより(Scriptや暗号など)になっています。
Raiden Network
Ethereum版Lightning Networkである、RaidenNetworkの仕様が載っています。
Solidity
スマートコントラクトを開発するためのJSライクな言語、Solidityのドキュメントです。
Vyper
スマートコントラクトを開発するためのPythonライクな言語、Vyperのリポジトリです。
Casper
Ethereumが移行予定のPoS、Casperの解説記事です。
Ethereum Book
Ethereumでスマートコントラクトを開発するためのドキュメントを、日本語に翻訳したものです。日本語なので内容もわかりやすいのですが、唯一情報が古い&wikiに比べると少ないという問題があります。
自分の場合は、まずこれを呼んで、その上でwikiを読むことでスムーズに理解できました。
EIP
Ethereum版BIPである、EIPのリポジトリです。ERC20 トークンなどの仕様が保管されています。
Ethereum Smart Contract Best Practices
- https://consensys.github.io/smart-contract-best-practices/
- https://msykd.github.io/smart-contract-best-practices/
スマートコントラクトを開発する際に、気をつけるべき点や脆弱性、問題点などがわかりやすくまとめられています。
2つ目は有志の方が日本語訳したものです。
Web3.js docs
Ethereumを使った非中央集権なサービスを開発するためのライブラリ、Web3.jsのreaddocsです。Getting StartedやAPIリファレンスが乗っています。
eWASM
Ehtereum上のコントラクトを、EVMではなくWeb Assemblyで動作できるようにする設計です。
WASMを使うことで、CやC++など、中間言語を抽出できるすべての言語でコントラクトが書けるため、期待されています。
Plasma
Ethereumのブロックチェーンを、一つではなく無数に作成し、階層構造にするアイデアです。
これにより、ブロックチェーンのスケールアウトはもちろん、コントラクトの演算を小チェーンに委託したり、もしロールバックが起こった場合にも別のチェーンには影響しないなど、たくさんのメリットが考えられています。
Sharding
Ethereumのネットワークを、地方ごとに別のまとまりに分け、完全な分散・非中央集権をめざす提案です。これにより。不必要なチェーンを取り入れない、他の場所で問題が発生しても影響しない、ブロックチェーンのスケールアウトが可能などの期待があります。
Whisper
Ethereumのネットワークのノード間で、P2P通信をするプロトコルです。ブロックチェーンを使わずにリアルタイム通信が可能になります。
日本語翻訳版があります。
https://github.com/ethereum/wiki/wiki/Whisper
https://github.com/ethereum/wiki/wiki/%5BJapanese%5D-Whisper
ENS
Ethereumの名前解決の仕組みであるENSの仕組みと使い方のドキュメントです。
Swarm
Ethereumで使える分散ファイルシステム(IPFSと似てる)のドキュメントです。
Counterparty
Counterparty Document
公式が出しているドキュメント群です。カウンターパーティー自体の動作原理はそこまで複雑ではないのですが、細かい部分や、EVMに似たスマートコントラクトなど、興味深い内容がたくさん乗っています、
Hyperledger
Hyperledger Fabric docs
readthedocsに上がっている、Hyperledger Fabricのドキュメントです。
Fabric自体の構成(ネットワーク、コンセンサスレイヤー)の説明も、ノードの構築も、コード例もほとんどが乗っています。
Ripple
Ripple Developer Center
RippleのAPIやレイヤー構造、仕組みが乗っている公式ドキュメントです。
勉強会など
ビットコインとか勉強会/暗号通貨輪読会
ときおり参加させてもらっている勉強会です。ビットコインとか勉強会は初心者向け、暗号通貨輪読会は中級以上むけぐらいの難易度でした。とくに輪読会は、まだ海外のRedditや掲示板などでしか有名になっていない技術・ツールをわかりやすく解説してくれているのでありがたいです。
過去にはSegwit、P2SH、Hivemindなどの勉強会がありました。
メーリングリスト
Linux Foundationでホストされている、Bitcoinの事実上の公式メーリングリストです。情報ソース根源なので、新しいプロトコルなどの提案などがリアルタイムにはいってきます。
暗号
暗号分野です。具体的なサイトなどは上げませんが、ブロックチェーンを理解する上で、最低限楕円曲線暗号などの基本理解をしておくと、ぐっと文献の読みやすさが高くなります。