2018年08月31日 投稿

Blockchain入門

「分散型台帳技術」なんて呼ばれるBlockchain。その魅力を少しでも知ってもらいたいと思い、分かる範囲で内容をまとめています。理解の一助となりましたら幸いです。

はじめに


Blockchain界隈の状況の変化は著しいものがあります。そのため、いつ時点の情報なのか、をきちんと意識する必要があります。1年前の情報が今も正しいかは分かりません。時間軸が重要であることを予めご理解の上、読み進めていただければと思います。

概要


Blockchainの概要、特徴、利用事例、開発手法についてまとめました。一読いただければBlockchainとは何か、大枠は理解できるかと考えます。

目次
1. Blockchainって何?
2. Blockchainって何がすごいの?
3. Blockchainってどう活用されてるの?
4. Blockchainを実際に作ってみた

参考書籍


体系的な知識をサクッと身につけるのに適した書籍を3冊ご紹介します。

1. 超図解ブロックチェーン入門

図が豊富で薄いのでサクッと読み終えられます。見開きで左側が説明文、右側が図です。手っ取り早くブロックチェーンを浅く広く知りたいという方に、初めの1冊目として最適です。Blockchainが話題となっている背景(経産省に取り上げられていることや規模感)、どんな技術で構成されているのか、種類や特徴、メリットなどが一通りまとめられています。利用事例も豊富に紹介されていますので、単なる教科書的な情報だけでなく、世の中の動向チェックとしても有用です。

2. 最新ブロックチェーンがよーく分かる本

「超図解ブロックチェーン入門」の次に読むとスイスイ頭に入るかと思います。分量が少し増えますが、各キーワードに対して具体例が付与されているイメージです。例えば、ハッシュ関数を利用しているという説明だけでなく、SHA-256とRIPEMD-160をBitcoinでは利用していて、実際どのような処理が行われているのか説明があったり、ブロックチェーンのデータ量は問題ないのか、という疑問に対して上限が1MBで10分で1ブロック生成なら1時間で6MB、10年間で526GBになる、などといったり、詳細まで落とし込まれています。細かいところまで記載があるので、用語を知る意味でも有用です。攻撃手法についても言及されています。

3. 実践ブロックチェーンビジネス

書籍やWEBなどで一通り理解した後にこの本を読めば、頭の中ですっきり整理されると思います。この本は基礎知識の確認としてももちろん役立ちますが、なにより書籍名にある通り、ビジネス展開の実例が大変豊富に記載されています。私は、仮想通貨でも金融業界でもない、その他業界でのブロックチェーンの利用活用サービス(所謂ブロックチェーン3.0)として、どのようなものがあるのか調べる目的で本書を読み、とてもたくさんの情報を得ることができました。

参考Web Site


部分的な側面もありますが、気になることに絞って最新情報を得るにはやはり書籍よりもWebが優れています。私が調べるにあたって、参考となったSiteをいくつか紹介します。

基礎知識

経済産業省-ブロックチェーン技術を利用したサービスに関する国内外動向調査」

経済産業省によるブロックチェーン技術に関する調査報告書「ブロックチェーン技術を利用したサービスに関する国内外動向調査」の公表ページです(2016年4月)。背景、技術の特徴、課題とトレンド、社会へのインパクト、中長期的課題と政策がまとめられています。

BLOCKHCAIN ONLINE

「日本一わかりやすいブロックチェーン情報サイト」を謳っています。分かりやすいです。トピックス/業界動向にはじめり、ブロックチェーンとは何か、技術情報(例えば、超簡単なBlockchainプロトタイプを Golang で構築)などが掲載されています。一読の価値ありです。

Blockchain Biz

ブロックチェーンビジネス用語集がまとめられており、とても便利です。またサービス事例が豊富にまとめられているので、ブロックチェーンを活用したサービスにどんなものがあるのか知るにはとても効果的です。

5分でわかるブロックチェーンの基本的な仕組み

TIS株式会社社員の方によるスライド資料です。全47ページ。どのようにしてブロックチェーンが不正が難しい取引台帳を実現しているかという仕組みを社内勉強会で説明した資料とのこと。ブロックチェーン特有のデータ構造とコンセンサスアルゴリズムについてきれいな図でまとめられています。

実装

オレオレブロックチェーンを作る

Qiita記事です。ブロックチェーンの部分的な実装にはなりますが、ジェネシスブロックを作って、ハッシュ値を入れながらブロックを作っていくという雰囲気を掴むには、手軽で良かったです。

Truffleを使ってEthereumでペットショップアプリを作る〜後半:アプリケーション〜

Qiita記事。Truffleチュートリアルpet-shopの補完情報です。

【イーサリアム】 SolidityとTruffleでペットショップのDappをつくる!

Truffleチュートリアルの日本語訳ページです。

ブロックチェーンEthereum入門1

NTTデータ先端技術株式会社による入門ページ。Dappの開発の理解に役立つ。特に入門2の「Ethereumネットワーク監視の構成」のアプリケーション層、ライブラリ/API層、基盤層の分類の仕方および役割の考え方はDapp開発にあたって参考となります。

preventDefault()について

Truffleチュートリアルpet-shop内のApp.js内の記述にpreventDefaultがあり調べたところ、わかりやすい説明でした。

jQuery のバブリング、preventDefault() や stopPropagation() の使用例

同じくpreventDefaultについてです。

Ethereum のローカル開発環境 Ganache を使ってみる

Ganacheに関する紹介ページです、起動の仕方、画面の見方などがまとめられています。

ローカル環境に簡単にブロックチェーンを作れるGanacheについて

Ethereum開発フレームワークTruffle SuiteのGanacheに関する紹介ページです。Ganacheについて個人的に便利だと思ったこととして「Ganacheとは起動するだけでローカル環境にEthereumのブロックチェーンを構築し、アドレスを10個生成してそれぞれのアドレスに100ETHずつ準備してくれるのがいいですね。Ganache以前はgethでブロックチェーンを作って、アドレスを作って、マイニングしてETHを持たせるという作業をしないと行けなかったのがGanacheですごく楽になりました。」とあり、とても共感しました。

その他

lite-serverを使った開発サーバの構築

lite-serverについての知識獲得に役立ちます。Node.jsのlite-serverは軽量のローカルWEBサーバであり、BrowserSync内蔵、js、html、cssなどのソースファイルの変更を監視し、自動的にブラウザのリロードを行ってくれる。Truffleでは既にbs-config.jsonが準備されており作成不要ですが、本来のlite-serverの環境構築方法についても知っておいた方が良いかと思われます。

RPC サーバーを利用できません?

Metamask(Ethereum wallet)の設定にRPCがあったのですが、RPCとは何なのかよく分かっていなかったので調べたところ、RPC(Remote Procedure Call)自体やRPCアプリケーションに関する説明があり、参考になりました。

MetaMask を使用した Web3 の初期化

Qiita記事です。MetaMaskとweb3の役割が少し分かるようになりました。

BLOCKCHAINの未確認取引(transaciton)確認ページ

実際のTransaction dataを確認できます。秒間に何件も増減します。

コインテレグラフ日本版|国内最大級の仮想通貨ニュース

仮想通貨の大手ニュースサイトです。内容はブロックチェーンに留まりません。仮想通貨の市場動向なども含めて幅広く情報発信されています。海外企業、政府の動向のチェックにはこちらが活用できると思います。

日本初、ブロックチェーンのコア実装を体験するワークショップを開催

2017年2⽉にDG Labが開催した「Blockchain Core Camp」の情報です。ブロックチェーンに関するワークショップやカンファレンスは数多く開催されています。積極的に情報収集すれば、その分比例して情報が集められると思います。