【総まとめ】ブロックチェーンの仕組みと、ブロックチェーンの今後について学んでみる

## ブロックチェーンとは？

ビットコインを支える技術として、ビットコインの考案者「ナカモト　サトシ」さんによって生み出されたアイデア。
ビットコインと聞くと仮想通貨、Fintechという言葉が連想されるので、ブロックチェーンもFintechの技術でしょ？と思われがちだが、全くそんなことはないです。

現に、

- [近い未来、ブロックチェーンによって「会社」は消える－ジャック・デュ・ローズの視点](http://careerhack.en-japan.com/report/detail/733)
- [オートバックス/ブロックチェーン技術を活用して、個人間売買プラットフォームを構築](http://ryutsuu.biz/it/i112216.html)
- [ディズニー発のブロックチェーンプラットフォーム「Dragonchain」--その可能性とは](http://japan.zdnet.com/article/35091512/)

ビットコインそれ自体は仮想通貨になりますが、ブロックチェーンはあくまでも中央集権的な管理を分散型台帳によって管理する、分散型ネットワーク技術になります。

[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/r43LhSUUGTQ/0.jpg)](http://www.youtube.com/watch?v=r43LhSUUGTQ)

![evjjwceja067y20o6fpj.jpg](https://image.docbase.io/uploads/36c1bfea-6705-4852-811e-b1a26d0b3d12.jpg)
↑彼がSatoshi Nakamotoだって？！
[オーストラリア人起業家、Craig WrightがBitcoinの発明者、Satoshi Nakamotoなのか？](http://jp.techcrunch.com/2016/05/03/20160502major-questions-arise-over-craig-wrights-claim-to-be-satoshi-nakamoto/)


## なぜ注目されているの？

例えば誰かにお金を渡すとき、大きく2つ手段があります。

- 直接手渡しする（物理的に渡す）

![Screen Shot 2016-11-23 at 16.05.45.png](https://image.docbase.io/uploads/c3c612f1-4543-4b44-87ce-37f391638f91.png)

- 銀行のような第三者機関を通して受け渡す

![Screen Shot 2016-11-23 at 16.03.08.png](https://image.docbase.io/uploads/94dcd6bc-8db7-4d81-9b9d-c1f9ca03e6a0.png)

こういった重要なリソースの受け渡しには、大きく2つポイントが存在します。

### このリソースって本物なの？

お金でいうと、偽札じゃないよね？というこです。
不正にコピーされた何かではにか？本物のリソースなのか？ということを証明するために、お金やチケットにはホログラムや特殊なインクが使われていたりしますね。

### 二重に支払われたりしない？

物理的なお金であれば、僕が誰かに渡した時点でなくなるので無縁ですが、
デジタルなデータだと、途中でエラーが発生して払ったのにお金は減ってない。とか、同時に支払うリクエストを送ることでどっちも支払えた。なんてことが有りえてきたりします。

この2点を担保する為に、現在は中央集権的な形をとって第三者機関である銀行や国、証券会社を通じてリソース管理を行っていたりします。
しかし、昨今中央集権的に管理しているが故に、ハッキングや改竄が容易にされたり、管理するが故に一定のトランザクションコスト（時間・手数料）がかかったりします。

またCtoCマーケットが増えていけばいくほど、個人間のやり取りが増えており、本当に自分達が持っているもの、やり取りする人は信頼に値するのか？というような懸念すらもでてきています。

そういった課題を解決するために、提唱されているのが分散台帳を用いて全員が管理するブロックチェーンという技術です。

![Screen Shot 2016-11-23 at 16.41.43.png](https://image.docbase.io/uploads/6ae1d498-5750-4ea9-85f0-f95ecb9f82b9.png)

## どのような仕組みなのか？

**データ構造**

![Screen Shot 2016-11-23 at 22.34.51.png](https://image.docbase.io/uploads/a57369ac-8332-49e4-82a2-63a7abf24b6a.png)

大きくは、取引のデータと前のブロック値のハッシュを含んだブロックを鎖状に繋いで管理していきます。

![Screen Shot 2016-11-23 at 22.33.14.png](https://image.docbase.io/uploads/95741c52-766a-457e-ae53-0585c1f56a20.png)

こうすることで、万が一改竄しようとしても、全てのデータを改竄する必要があり、ブロックの数が増えれば増えるほど指数関数的に改竄できる確立は減っていきます。

取引データも同じように前回のハッシュ値を含んだ状態で、作られていきます。

![Screen Shot 2016-11-23 at 19.47.40.png](https://image.docbase.io/uploads/a0c620fe-bac7-4e18-a6b7-701d43ddba22.png)

## どのようにブロックを作るの？

- 一般ユーザもブロックを作れるようにしないといけない（一部のユーザしかできなければ結局分散という思想の意味が...）
- 合意をどう取るか？

合意の話では、「ビザンチン将軍問題」というものが有名らしい。
以下[wikipedia](https://ja.wikipedia.org/wiki/%E3%83%93%E3%82%B6%E3%83%B3%E3%83%81%E3%83%B3%E5%B0%86%E8%BB%8D%E5%95%8F%E9%A1%8C)より抜粋

```
ビザンチン将軍問題は、東ローマ帝国（ビザンチン帝国）の将軍たちがそれぞれ軍団を率いて、ひとつの都市を包囲している状況で発生する。将軍たちは、都市攻撃計画について合意したいと考えている。最も単純な形では、将軍たちは、攻撃するか撤退するかだけを合意決定する。一部の将軍たちは攻撃したいと言うだろうし、他は撤退を望むかもしれない。重要な点は、将軍たちはひとつの結論で合意しなければならないということである。つまり、一部の将軍だけで攻撃を仕掛けても敗北することは明らかで、全員一致で攻撃か撤退かを決めなければならないのである。また、将軍たちは、それぞれ離れた場所に各軍団を配置しており、メッセンジャーを相互に送ることで合意を目指す。
・・・
```

このような一種の民主主義的な管理（分散型）においての合意のとり方は多様に存在します。

参考)
[分散型コンセンサス・アルゴリズム プロトコル まとめ] (http://qiita.com/hshimo/items/b7c0e0f12b7363e2e333)

ビットコインではPOW(Proof of work)と呼ばれる合意形成の手段を取っており、nonce(ナンス)という値を変えながらSHA-256でハッシュを取った際に、一定数以上0が続くことが分かると、新しくブロックとして認められます。

**ブロックを作る手順**

- メモリプールの中に含まれる取引が正しいものか？を確認する
- nonceを変えながらハッシュ値が先頭から一定数以上0になるものを算出
- nonceが発見されれば、他のマイナー（ブロックを作る人達）が整合性を確認
- 正しいと判定されれば、ブロックのデータをブロードキャストする
- 新しく発見した人には、賞金としてビットコインが与えられる

このような流れになっています。後輩も含めて、AWSのアカウントをハッキングされEC2を立てまくりマイニングしていたのは、このnounceを発見する為だったのかとようやく理解しましたw
（みなさんもアカウントの管理には注意ですw）

ちなみにこの発見にかかる時間はおおよそ10分に1回になるように、難易度が自動で設定されているとの事。
一定以上のスペックはもちろんですが、運の要素もあるので、一般ユーザでも見つけられる可能性があるという訳ですね。

## 同時にブロックを作ったらどうなるの？

先程の方法だと、それぞれが別のメモリープールの取引を用いてブロックを作るので、同時に作成されることがあります。

その場合は、次のブロックがどちらに紐づくかで決めます。

![Screen Shot 2016-11-23 at 22.54.36.png](https://image.docbase.io/uploads/ebe159c6-4349-4552-a85f-138c49448315.png)

このように、より長いブロックを優先することから、二重支払いも起こらないような仕組みになっています。

## ブロックチェーンの課題点

- スケーラビリティ

現在、ブロックチェーンで処理できるトランザクションデータ量は、約10分ごとに約1Mバイト。つまり毎秒7トランザクションしか処理できません。

![1.jpg](https://image.docbase.io/uploads/1f99d603-cf82-4587-ae2e-ab62da9576a8.jpg)

参照) [「ブロックチェーンはスケーラブル」という神話と現実の課題](http://itpro.nikkeibp.co.jp/atcl/column/16/062400138/110700010)

この解決策には、1Mの容量をあげる方向と、1トランザクションあたりの容量をさげる方向と2つ考えられます。
容量の方はマイナーに多数決を取りながら進めているようだが、お金稼ぎを目的としたマイナーが圧倒的に多いようで可決されないようです。

又別の問題でトランザクションが増えすぎると、ブロックチェーンの分散台帳を保持できるPCがハイスペックのものだけになる危険性があります。
企業のみが利用できるようなものになってしまうと、また中央集権的な形に成り兼ねないので、対策を打つ必要があります。

- マイニングの報酬をどうするか？

[Bitcoinの採掘報酬が半分になった](http://jp.techcrunch.com/2016/07/11/20160709the-reward-for-mining-bitcoin-was-just-cut-in-half/)

ビットコインの総量は2100万コインと予め決められているので、マイニングの報酬があるタイミングで取引の手数料のみとなってしまう。
現在の合意形成POWの方法だと、仕事の難易度が高い（かなりのスペックのPCを動かす必要がある）のでインセンティブがないとマイニングされない恐れがあります。

## ブロックチェーン2.0

もちろんこの技術を商用に使う事例が出てきています。
その中でブロックチェーンに関しては大きく2つの形が存在します。

- プライベート型

こちらはガイアックスさんがやられているような、決められたネットワーク、マイナー達でのみ分散台帳を保持するもの。

参考)
[シェアリングエコノミーに欠かせない本人確認情報をブロックチェーンで共有、ガイアックスが実証実験](http://jp.techcrunch.com/2016/05/20/sharing-personal-data-with-blockchain/)
[プライベートブロックチェーン技術mijinの正体が（少しだけ）明らかに、インフォテリアとテックビューロが説明会](http://jp.techcrunch.com/2016/01/15/infoteria-techbureau/)

- パブリック型

こちらはビットコインのように不特定多数の人と分散台帳を保持するもの。

## 何がどう変わっていくのか？

ブロックチェーンの技術はまだまだこれから発展していくものだと思うので、正直読めませんが、Web上でのやり取りに信頼性や透明性が増していくことには間違いなっていくと思われます。
またFintechを始めとし信頼性を担保するために中央集権的に管理していたものは、どんどん分散型で管理し管理コストを下げていく動きは増えてきそうです。

またシェアリングエコノミーも更に変化を遂げるかもしれません。

```
中間業者が必要なくなることで、一部の大手テクノロジー企業には影響が及ぶことが考えられます。他者とつながるために Uber、Airbnb、または eBay を利用するのではなく、真のシェアリング・エコノミーを先駆けるブロックチェーン・サービスを利用すれば、個人同士が直接つながり、シェアしあい、取引できるようになるからです。ブロックチェーンは、本当の意味での個人間での取引、そして本当の意味での「シェアリング・エコノミー」を実現するプラットフォームなのです。
```
参考) [ブロックチェーンとシェアリング・エコノミー 2.0](https://www.ibm.com/developerworks/jp/iot/library/iot-blockchain-sharing-economy/)

例えば、僕がどういう人なのか？今までどういう事をしてきたのか？に瞬時にアクセスし確認できる時代が来るのかもしれません。
そうなれば、何かをするときにいちいち信用を確認するために、書類を提出して...なんてことはなくなると思うので、契約がどんどん自動化する概念なんかも提唱され始めています。

人と人または人と機会を繋げる仲介業者がWebの発達により淘汰されいきました。別に仲介業者に頼まなくても直接やり取りしたほうが安いし早いので。
一方でまだまだ信頼・信用を担保するという意味で仲介業者が残っている業界は多く存在します。そういった業界はこれからブロックチェーンという技術によって大きく変化していくのかもしれません。いずれにしても要チェックですね。

[ブロックチェーンの破壊的影響は金融業界の枠を超える](http://www.dhbr.net/articles/-/4380)
[Blockchain Technologies]
(http://www.blockchaintechnologies.com/)

## どのように一般化していくのか？

- [Ethereum](https://www.ethereum.org/)
- [Enigma](http://www.enigma.co/)
- [dragonchain](https://dragonchain.github.io/tech/2016/10/02/dragonchain-release.html)

オートバックスがMongoDBとブロックチェーンを組み合わせて、アプリケーションを作成したりしています。

![autobacs-announces-inter-individual-trading-test-results-of-second-hand-car-goods-by-block-chain-technology20161116-3.jpg](https://image.docbase.io/uploads/efecf5d0-e4f6-44e0-9be3-1a679df77c2d.jpg)
![3.jpg](https://image.docbase.io/uploads/3178fd4e-4320-412a-9389-7265be61a33a.jpg)

参照) [ベイカレント、カー用品のオートバックスと共同でブロックチェーンC2C実験を完了](http://itpro.nikkeibp.co.jp/atcl/news/16/111503386/?rt=nocnt)