blockchainの紹介と教育分野での応用事例

[Classi Advent Calendar 2017](https://qiita.com/advent-calendar/2017/classi)  21 日目の記事です。

会社の忘年会2次会にいくのを我慢してこの記事を書いております。普段、追っている技術はいくつがありますが、いざ書こうとするとどれも記事にするほど詳しくないなと感じているところです。最近、話題となっているビットコインのなにかについてをご紹介してみようかと思います。

今現在のビットコイン価格は2,074,623円でございます。
一年前の価格は10万円ぐらいしかなかったが、まさに20倍にもなり、完全にバブルですかね。マイナーたちのポケットには10分ごとに約2,000万円が入ると考えると、自分もやりたくなりますね。価格が上がっていることもあって、マイニング事業への参入や投資のニュースは流れたりします。最近だと、GMOやDMMはマイニング事業に参入するというニュースはありましたね、そこの株を買っておいたほうがいいかな？と思ったりもしています。
世界はどんどん抽象化していくし、貨幣もいずれはなくなると信じているし、、？、、本日はビットコインやお金の話ではなく、ビットコインを実現した技術、Blockchainについて話したいと思います。

Blockchain技術は、ビットコインだけではなく、金融、電力、IoT、貿易取引、シェアリングエコノミーなどいろんな分野に可能性があると言われています。教育分野での試みもいくつか現れています。本文の後半にいくつかを紹介します。
自分たちの力で、こうした新しい技術をプロダクトに活用しようとした場合は、技術そのものの成熟度や実用化レベルに達しているかどうかの判断や自社プロダクトや課題解決に適応しているかどうかの分析が必要だと考えています。どちらにせよ、いずれ欠かせないのは、お前はなにものだというのを明らかにすることですかね。

本記事では、
・Blockchainの定義と特徴
・Blockchain技術構成
・Blockchainプラットフォーム
・Blockchainサービス紹介
の４つに分けて説明してみます。ざっくりの説明ですが、少しでもイメージができたらなと思います。

**Blockchainの定義と特徴**
Blockchainは、データの信用性を保証する、分散型台帳を記録する技術だと考えています。

基本要素
・トランザクション
台帳に記録される取引データのこと。送金を例とすると、１送金レコードのことを指している。
・ブロック
一定期間に発生したトランザクションをまとめてブロックとして台帳に記録されるデータのこと。
・チェーン
時系列でブロックをつなげて記録されるデータのこと。

イメージ図
<img width="435" alt="スクリーンショット 2017-12-20 23.27.28.png" src="https://qiita-image-store.s3.amazonaws.com/0/15092/17f08cd7-64d7-2f39-1c1c-dec5e646afde.png">


ブロックの生成、チェーンへの書き込みはPoWなどのようなコンセンサスプロトコルに従って行われます。
データの偽造や改竄をされた場合は、連鎖的にすべてのhash再計算が必要になり、ほぼ不可能で困難だと思われます。

特徴
・上記データをチェーン（台帳）のような構造にして記録していくだけ、削除や編集はできない
・台帳は、各ノードに分散して管理される。集中管理を行うノードは存在しない、全ノードはサーバであるとも言える
・暗号技術を駆使してデータの改竄を防ぎ、安全性を担保する
・単純な記帳から、スマートコントラクトの拡張がある。お金の出入りだけを台帳で管理したことから、買い物履歴や商品が配達される約束ができるようになったイメージ

**Blockchain技術構成**
・P2P
・公開鍵暗号、署名技術
・ハッシュ計算
・コンセンサスアルゴリズム

**Blockchainプラットフォーム**
誰でも参加可能、信頼するものだけ参加できるという、用途別に下記３つの利用パターンが分けられると考えられています。

・パブリック　誰でも参加できる。
・コンソシアム　信頼するメンバーのも参加できる。Hyperledger Fabiric、Ethereum
・プライベート　単一組織で運営していて信頼するメンバーだけ参加できる。

有名なプラットフォーム

・Bitcoin core
　１０分間隔でブロック生成される。データがBlockchainに格納され、伝播される。トランザクションデータは公開される。
・Ethereum
　１２秒間隔でブロック生成される。データやコントラクトがBlockchainに格納され、伝播される。トランザクションデータは公開される。コントラクトの開発では、Solidityを使用する。
・Hyperledge Fabric
　秒間１０万のトランザクションを目標としている。データは Blockchainとキーバチューストアで保持する。トランザクションデータは暗号化や署名される。コントラクトの開発では、GoやJavaを使用する。
・Red Belly
　秒間４０万以上のトランザクションができる次世代Blockchain。シドニー大学の研究チームが開発中。

**Blockchain技術で実装したサービス紹介**
世界中に注目され、様々な分野に活用する方法が提案されています。特に金融や電力の分野ではサービス化されているプロダクトもたくさんあります。ここでは、教育分野において、国内外の事例をいくるかを紹介します。

・株式会社ソニー・グローバルエデュケーション
複数の教育機関のデータを一元的に管理し、信頼性のある学習データやデジタル成績証明書等の登録・参照が可能なシステムを開発しました。
https://www.sonyged.com/ja/2017/08/09/news-ja/press-blockchain/

・MITは一部の修士課程修了者にBlockchainで実現させたデジタル証明書を授与した
スマートフォンアプリ「Blockcerts Wallet」で学生に配布される。
https://japan.cnet.com/article/35110762/

・豪メルボルン大学、学位をブロックチェーンに記録
https://btcnews.jp/14zvd8uu12995/

・リクルートテクノロジーズ　転職活動に於けるブロックチェーン利用の検証
https://recruit-tech.co.jp/news/images/20160425_PressRelease.pdf

ちょっと雑すぎましたが、次回は、技術構成の詳細、P2Pや暗号技術について紹介したいと思います。
では、皆様よいお年を！

参考した本とネット記事
ブロックチェーン技術を利用したサービスに関する国内外動向調査
http://www.meti.go.jp/press/2016/04/20160428003/20160428003-2.pdf
ブロックチェーン技術「Ethereum」とは何か、アプリのアーキテクチャはどう変わるのか
http://www.atmarkit.co.jp/ait/articles/1611/28/news024.html
Ethereum スマートコントラクト入門
https://qiita.com/amachino/items/b59ec8e46863ce2ebd4a