卒論から始まるBlockchain

卒論から始まるBlockchain

俺の屍を越えて行け

ブロックチェーンってなに?に答えよう

最近自分がやっていること、興味を持っていることを口に出すことって大事だなと思い、「ブロックチェーンに興味あります!」っと隙あらば言っています(このブログもその一環)。ただそうすると必ず「ふ~ん、なにそれ?」って返ってくるわけですね。で、自分も思うわけです。

ブロックチェーンってなに?」

大変本質的な質問ですが、これに対する的確な解答例はない気がします。なので今回は、個人的に大事かなというポイントを押さえて説明します(何かおかしい所があったらご指摘お願いします)。何とな~く、全体のイメージを抑えてもらうことが本記事の目標です。

以上の疑問に対して自分が説明するときは

特定の管理者がいない、データの連なりだよ」と言います。

「ふ~ん、なにそれ???」とはてなが増えそうですが、ポイントを押さえて説明します。

大事なポイントは二つ

①特定の管理者がいない

②データの連なり

かと思います。ではそれぞれ見ていきましょう!

 

①特定の管理者がいない

はい、一番の意味不明ポイントですね。でも大丈夫、ちゃんと説明します。

この「特定の」がキモです。なので管理者が「いない」わけではないのです。いーーーーっぱい管理者がいるのです。

ちなみに何を管理しているかというと「データ」です。お金かもしれないし、個人の生体情報かもしれないし、公文章などかもしれません。とにかく何かしらのデータを不特定多数の管理者で管理しています。マンションの管理人がめちゃくちゃいっぱいいる感じです。ビットコインなら数十万数百万の管理人がいます(ノード数のことを指しています)。そうなると当然思うわけですね「そんなこと出来るの?」と。

「出来るんです(´・ω・)」

ええ、できちゃうんですね。しかも、みんなが同じデータを持つことが可能です。一人一人がバラバラのデータを持っていたら、それは管理できていないのと同等ですからね。じゃあ何故できるんですか?を例題を踏まえて説明します。

例題

今、5人の王様(A,B,C,D,E)がいると仮定します。

ある時外国から侵略がありました。この敵、めちゃくちゃ強そうです。なのでそれぞれが単独で戦っても勝ち目はなく、みんなで戦うしかありません。(じゃないとみんな駆逐される)そんな中、各王様は2つの戦略を思いつきました。

1,待ち伏せ策   2,猛突進策

どちらかの策に決めたいですが、残念ながら以下の制約があります。このような制約の中で、どちらか一方の策に決めるにはどうすればいいでしょうか?

・一同に会して話合うことはできない

・各王様は手紙でのみ、やり取り可能(SkypeやLineなど通信インフラは整っていない)

・一人裏切り者の王様がいる。もちろん誰かはわからない。

 

皆さんならどうしましょう?一番簡単な方法はそれぞれが手紙を出しあって、それぞれの考えを聞き、過半数を超えたものにすればいいでしょう。例えば自分を含めて以下のような状況を想定してみましょう。

1,待ち伏せ策 (以後(待ち)と略) → 2票 

2,猛突進策 (以後(猛突)と略) → 2票

つまり,あと一人の意見次第でどちらかの策になりますね。案外簡単そう...ではありません。そう、裏切り者が厄介ですね。もし最後の一人が裏切りものなら、彼はどうするでしょうか?簡単です。

・(待ち)と回答した王様には、自分も(待ち)で行くと回答

・(猛突)と回答した王様には、自分も(猛突) で行くと回答

つまり相手によって別々のことを言えばいいわけです。すると以下のようになるからです。

 

1.Aが(待ち)と回答していて、裏切り者以外の回答は得ている

  (裏切り者を除けば2対2)

2.Eから「俺も (待ち)で行くぜ!」と連絡が来る。

3.Aは(待ち)が過半数を超えたと考えて策を実行する。

4.実際には一つに決定されていないためバラバラの作戦をとることになり、作戦失敗

でもこんなことにはなりたくありません。どうすれば防げるでしょうか?

解決策は、

A.それぞれがどのような回答を得ているかを各自で確認すればいい.

です。

それぞれの手持ち情報を以下のように表にまとめてみます。

 

Aの手持ち情報

Bの手持ち情報

Cの手持ち情報

Dの手持ち情報

Eの手持ち情報

Aの回答

(待ち)

(待ち)

(待ち)

(待ち)

(猛突)

Bの回答

(待ち)

(待ち)

(待ち)

(待ち)

(猛突)

Cの回答

(猛突)

(猛突)

(猛突)

(猛突)

(待ち)

Dの回答

(猛突)

(猛突)

(猛突)

(猛突)

(待ち)

Eの回答

(待ち)

(待ち)

(猛突)

(猛突)

(待ち)

 

何か違和感ありませんか?そう、Eの回答欄です。明らかに統一されていませんね。これを見れば一発で裏切り者だということがわかります。あとは彼を省き、裏切り者がいなくなるまで繰り返せば一つの答え合意できます。

つまり、特定の管理者がいなくてもただ一つのデータを持つ(合意する)ことができるわけです。美しい・・・(*´ω`*)

 

②データの連なり

従来のデータは以下のよう管理されていました。

 

f:id:mochi-mochi-0397:20180523151611p:plain

一つのデータサーバーに特定のキーワードを入れていました。でもこれだとちょっと問題も起こるわけですね。

特に大きな問題(メリットでもある)は、データ管理者が大きな権限を持っていることです。なので、勝手にデータを書き換えてもそれは正しいデータになってしまうわけです。もちろん誰もがそんなことをするわけではありませんが、「出来る」ことが問題なのです。

f:id:mochi-mochi-0397:20180523152444p:plain

 

ではどうすればいいでしょうか?

何となく気づいていたかもしれませんが、うえの図、全てしりとり形式になっているんですよね。つまり何が言いたいかというと、「前後のデータに繋がりを持たせる」ことをしています。そうすると、もし改ざんしたいデータがあったらその前後のデータも改ざんしなければなりません。

もちろん簡単なものなら出来るかもしれませんが、これが大きなデータになればなるほど改ざんは困難になります。なのでよく「改ざんが不可能」と言われるのはここが一種の要因だったりします(もちろん全てではないし、絶対できないわけでもない)。

f:id:mochi-mochi-0397:20180523152959p:plain

 

実際はハッシュ値というものでデータ繋げていますが、それは今回は説明しません。あくまで「データが繋がっている」ことを何となく理解していただければ大丈夫です。

 

 

どうでしょう。何となく「特定の管理者がいない、データの連なりだよ」の意味は伝わったでしょうか。なんでそんなことするの?とか、そのためにどういう技術が使われているの?とかは今回は触れていません。あくまで「何とな~く、全体のイメージを抑えてもらう」ことが出来れば大丈夫です。専門的なことはおいおい説明できればと思います。では、今日はここまでです!読んでくれた方々、ありがとうございました(*´▽`*)

 

 

//毎回文量が多くなっていて嫌になりそうなので、もう少し減らせるよう頑張ります(´・ω・)

今までブロックチェーンを勉強するうえで読んだ本や、お世話になってるブログとかを紹介するよ

前回はブログの趣旨とか経緯を説明しましたが、今回は今まで自分がどうやって勉強してきたかを紹介したいと思います!これから勉強してみようかな、っと考えている方々の参考になれば幸いです。

ちなみに現状の割合で行くと、本>Twitter>ブログ>その他、が3:2.5:2.5:2、って感じでしょうか。なかでもTwitterは侮れません。「誰でも億り人になれます!!」などのうたい文句で投稿しているアカウントはクソの役にも立ちませんが(むしろ積極的に取り締まってほしい)、ガチで情報発信されている方々も一定数見受けられます。色々ご紹介するので、気になった方はフォローしてみるといいかもしれません。

 

まずは本からいきます。仮想通貨の投機目的で書かれている本が多い気がしますが、そのような本は一切紹介していません。純粋にブロックチェーンに興味がある、勉強したいけど何から始めれば…、って方むけです。なのでエンジニアの方は面白くないかもしれません。

 

 え、ブロックチェーンの本じゃないの??がっつりビットコインって書いてあるじゃん、って思った方。すみません。

でもこれだけは、ぜーーーーーーーーーったいに読んで頂きたい!!!むしろこれを紹介したくてこの記事を書いていると言っても過言ではありません。自分はこれを読んでから「ブロックチェーンってすごいんじゃね!?」ってなり、今に至っています。

この本がすごいのは「ビザンチン将軍問題」を一番最初に説明しているところだと思います。冒頭でもこう述べています。

「本書を読み終えた時には、「ビザンチン将軍問題」の意味を理解し、その解決法であるビットコインアルゴリズムについての理解が得られると思います。」

出典:

ビットコインはどのようにして動いているのか? 数式なしでわかる仮想通貨の仕組みと技術?改ざん防止、採掘、未来の応用まで

最初は何それ?だと思いますが最後には、なるほどそういうことか!っと叫んでいるはずです。ビットコインビザンチン将軍問題を現実的なレベルで解いた初めてのケースであるということ。ブロックチェーンはそのユースケースの一つであること。技術的に新しいものはそう多くなく、絶妙なインセンティブ設計によって成り立っていることなどが大変わかりやすく書かれています。まさに必読の本だといえます。

 

 

先ほどの本よりもう少し詳しく知りたい!という方はこちらをおすすめ。技術的な部分は大体網羅してるかと思います。ちなみに少し図が多いのでkindleだと読みにくいかと(実際自分が読みにくかったので)。

 

 

 じゃあ実際ブロックチェーンが社会に浸透するとどんなことが起きるの?って事が書かれています。もちろん全部が全部実現できるわけではないと思いますが、かなりリアルに書かれています。技術的なことはどうでもいい!日々のニュースを理解できるようになりたいだけ!という方はとりあえず読んでみることをお勧めします。

 

ブロックチェーン技術の未解決問題

ブロックチェーン技術の未解決問題

 

 ブロックチェーンってすごいな!銀行とかいらなくなるじゃん!!うひょー!!っと夢を抱き始めた方々の鼻っぱしをへし折ってくれる本です。実際にブロックチェーンの研究開発してる方々が、日経BP社のweb連載したものを集約したものになります。

もちろんブロックチェーンなんて使い物にならん!ということではなく、確かにすごいんだけど、まだまだこういう所が問題だよね。とかなり冷静に書かれています。きれいな話はもう飽きたという方は是非。

 

中央銀行が終わる日: ビットコインと通貨の未来 (新潮選書)

中央銀行が終わる日: ビットコインと通貨の未来 (新潮選書)

 

 ブロックチェーンには直接は結びつきませんが、ビットコインが社会経済に与える影響を知りたと思った方は是非。経済的な話がメインなので、好き嫌いが分かれるかもしれません。

お金ってなんだろう?っと考えるきっかけにもなると思います。

 

 

ブロックチェーンアプリケーション開発の教科書

ブロックチェーンアプリケーション開発の教科書

 

 実際に触れてみたいな~、という方はこちら。プログラミングを少しでもやったことがある方はわかると思うんですが、とにかく環境設定がめーーーーっちゃくちゃ面倒なんですよね。でもこの本はMacWindows両方の設定方法が書かれているので比較的簡単に読み進められると思います。本書ではEtherum(イーサリウム)で作られていますが、その説明もされているので安心して読めるのではと思います。

 

 

とりあえず誰にでもおすすめできる!!って本を紹介してみました。次にTwitterアカウントやブログ、その他を紹介していきたいと思います。

Twitter> ※順番に意味はないです

twitter.com

twitter.com

twitter.com

twitter.com

twitter.com

twitter.com

twitter.com 

 

twitter.com

twitter.com

twitter.com

twitter.com


<ブログ>

ZOOM | ブロックチェーンと仮想通貨の情報サイト

この界隈でお世話になってない人はいないのでは??と思ってしまうぐらいのクオリティーの高さ!しかも無料!!ありがてぇ( ;∀;)

ちょっと専門的な内容も多いので、ちょっと詳しく知りたいというときは是非。

 

Gunosy Blockchain Blog

今イケイケのベンチャー企業Gunosyさんのブロックチェーンブログですね。技術的な部分はもちろん、日々の勉強会のレポートなんかもされています。

特にブロックチェーン技術を最速で理解するための勉強方法まとめ (エンジニア向け) - Gunosy Blockchain Blogは結構ガチで勉強したい方や、今回紹介しきれなかったものも大変多く掲載されています。ぜひご参考下さい。

 

<その他>

cryptozombies.io

本じゃわかりづらかった、もっと気軽にブロックチェーンに触れてみたい!という方に胸を張っておすすめできるのがこちら!!なんと、環境構築も、プログラミング知識もほとんどいらない(ゼロではない)、かつゲーム感覚で勉強できるという優れもの!!しかも無料。もう世の中なかには半端ない人がいいるもんですね(人''▽`)

 

aidemy.net

こちらも実際に触れてみたい方むけ。Pythonでの作っているのは大きな特徴かもしれません。CriptoZombiesのように全部無料ではありませんが、本当に手軽に始められるのでお勧めです。

 

 

以上!かなり長くなってしまいましたが、何か気になるものはありましたでしょうか?ガッツリ開発とかしている方には物足りない内容だったかもしれませんが、そこはご勘弁ください。ぶっちゃけツイートとか見ても何言ってるか全然わからないことも多々あるのですが、その度に調べるを繰り返す日々です。なのでもっといい勉強方法あるで!って方はコメントください。では、また次回!!

 

 

//申し訳ございませんが、ほぼ本の紹介じゃねえか!!という突込みは受け付けておりません。ご承知おき下さい( `・∀・´)ノ

 

 

 

 

本ブログの趣旨とか開設経緯を紹介するよ

初投稿です!!

めちゃくちゃ緊張しながらの投稿にはなりますが、とりあえず最初はタイトル通り、ブログの趣旨とか開設経緯を紹介できればと思います。

 

本ブログの趣旨は『Blockchainに興味を持った人が、卒論を書くための前提知識を持てるようにする』になります!(卒論のレベルは適当)その他にも、

・自分が卒論を書くうえで調べたこと、考えたこと

・技術的要素、概念(プログラミングとか)

・経済的効果

・勉強していくためのロードマップ

などを書いていく予定です。

内容はプロジェクトの概念から、プログラミングなどの技術的な話まで、Blockchainに関係することなら幅広く書いていこうと思います。プログラム関連とかはQiitaとかに書くかもしれませんが、その時はちゃんと告知します!

 

次に開設経緯ですが、ズバリ『知識をアウトプットするため』です!!他には以下のような感じ

・卒論書くため

・もっと多くの人にBlockchainを知ってほしい

・自分からも色々発信しなきゃいかん!と思ったから

・当事者意識を持つため

 

詳しくは軽い自己紹介をしながらしていきます(そんなもんどうでもいい!という方は最後の3行を読んでいただければ終わりです)。

現在神奈川在住の理系男子大学生(B4)です。経営工学とか最適化理論の勉強をしてます。幸い留年することなく、就活も一段落し、後は卒論だけ!遊びまくるぜ!!!と思っている大学生です。

 

...卒論??

今まで論文すらまともに読んだことのない人間にある日突然「卒論書け」と迫られるわけです(おそろしい...)。 じゃあテーマ何にしよっかなと...。

「Blockchainに関連させて書きたい!!」

(なんでBlockchain?とか、そもそもそれ何??とかはおいおい書きます)

 

で、早速先生の前で発表したら一言「まあ、やってみればいいんじゃないでしょうか(`・ω・´) 」

...よし、やったるで!!と意気込むのもつかの間、

「出来んのかな( ;∀;)」と思うわけです。

教授はBlockcahin専門の先生ではなく(最適化アルゴリズムとかの研究してるっぽい)、周りに詳しい友人もいない。色々本を読んだり、ブログを読んだり、イベントに参加してはみるものの、どうもしっくりこない。

なにがしっくりこないかというと、「自分がどこまで理解し、何を理解しなければならないのかがわかっていない」ということ。これはインプットだけでなく、アウトプットもしなきゃならんなぁと。

で、そのアウトプットの場の一つがこのブログになります。

卒論書くうえで必要になったこと、調べたこと、調べようと思ってることを好き勝手に書いていく場になります。

まあとにかく自分のためが一番強いです(笑) すみません

 

後はイベントとか参加すると、同年代ぐらいの人たちがいっぱいいるんでよね(ゆずしおさんとかOsukeさんとか)。 そういう方々を見ると、年齢とか関係なく自分からも色々発信していかなきゃいけないと思いました。もう少し当事者意識を持って参加したいですしね。

さらに、日本人って世界トップレベルの仮想通貨所持国ですよね。だからこそ、正しい知識を持てばBlockchain先進国になれるんじゃない?って勝手に思っています。なので、経済的なことも含めて発信できればとも思っています。

 

後はブログタイトルにもあるように、何とな~くでもBlockchain(もしくは仮想通貨でもいい)に興味持った方々が、このブログを見て大学の卒論書けるようになるぐらいの知識を持つことができたらいいなと思っています。

 

 

とは言っても勉強し始めてまだまだ3,4カ月ほど。もちろん責任をもって発信していくつもりではありますが、間違いやご指摘等ありましたら優しくご指摘いただければ幸いですm(_ _)m

ではではよろしくお願いします(*^▽^*)

 

//文章書くのって大変ですね( ;∀;) 続くかな...。