卒論から始まるBlockchain

卒論から始まるBlockchain

俺の屍を越えて行け

日本ブロックチェーン協会の定義から、ブロックチェーンを理解しよう② ~ ファイナリティー編 ~

前回までのおさらい

前回は定義1の一番最初に出てくる単語「ビザンチン障害」をメインに解説していきました。(日本ブロックチェーン協会の定義から、ブロックチェーンを理解しよう① ~ ビザンチン障害編 ~ - 卒論から始まるBlockchain)

 ビザンチン障害:応答を返さない、誤った応答を返す障害のこと。

と紹介しました。さらに、それを含むネットワーク内でどのように合意すればいいかは、実はこの記事で紹介してたよ(ブロックチェーンってなに?に答えよう - 卒論から始まるBlockchain)と言いました。またそのような場合に、ネットワーク内で一つの情報(提案)に合意するためには、

ネットワークの総数:n≥3t+1(n:ネットワークの総数, t : 故障機器数)

正常に動く機器:m≥2t+1(m :正常に動く機器の総数, t : 故障機器数)

が必要だよ!という話をして終わりました。その上で今日は太字の部分

1)「ビザンチン障害を含む不特定多数のノードを用い、時間の経過とともにその時点の合意が覆る確率が0へ収束するプロトコル、またはその実装をブロックチェーンと呼ぶ。」

出典:「ブロックチェーンの定義」を公開しましたJBA

 「時間の経過とともにその時点の合意が覆る確率が0へ収束するプロトコル

をメインに説明していきたいと思います!

 

プロトコル”とは 

相変わらずどこから手を付けていけばいいのかというところですが、とりあえずカタカナから片付けましょう(何となく)。

 

プロトコル:機器同士がネットワークを利用して通信するうえで決めている約束事

 

この記事を読んでいる方の多くは日本語を母語にしているかと思います。ではなぜ私たちは「日本語」で会話ができるのでしょうか。それは「日本語」での単語の意味や、文法がわかっているから。つまり「日本語」のルールがわかっているからですね。一方が日本語で話し、一方がスワヒリ語で話しても会話は成り立ちませんね。同じように、インターネットや通信の世界も場所によって様々なルールがあります。でもそれでは不便だよね。だから、プロトコル(ルール、お約束事)を決めましょう。それをもとに色々やっていきましょう、というのがあるわけです。じゃあブロックチェーンにおけるルールは何かというと、

時間の経過とともにその時点の合意が覆る確率が0へ収束する」ルール・お約束事です。

ふむ...わからん( ˘ω˘) ややこしい言い方しやがって、っという怒りは我慢しましょう。

 この長くてややこしい文章を、私は「ファイナリティーを得る」と置き換えて理解しています(間違ってたらごめんなさい)。なのでここから先はファイナリティーについての説明を絡めながら進めます。

...余計ややこしくなってんじゃねえか(#^ω^)、っという怒りはもう一度我慢しましょう。ちゃんと説明しますから。

 

”ファイナリティー”とは

「ファイナリティー(fainality)」とは金融、特に決済の場面で使われる言葉です。例えば日銀のホームページにはこのように書かれています。

(1)受け取ったおかねが後になって紙くずになったり消えてしまったりしない、また決済方法について(2)行われた決済が後から絶対に取り消されない――そういう決済が「ファイナリティーのある決済」と呼ばれます。 

出典:第7章 決済の実行 : 日本銀行 Bank of Japan

 まずは「(1)受け取ったおかねが後になって紙くずになったり消えてしまったりしない、また決済方法」を説明します。

例えば、私がある店で1万円分の商品券を使って買い物をしたとします。するとお店はその商品券を、発行元の会社に持っていき1万円に換金します。しかし、もし換金する前に発行元の会社が倒産したとしたら、その商品券はどうなるでしょうか。そう、ただの紙切れになりますね。そうなったとしたら、お店側は1万円分の損失を被ったことになります。

この、お店側が現金ではなく商品券を受け取るという事は、「損失を被る可能性を抱えた」事になります。これは商品券を受け取ったこと、倒産する可能性のある会社が発行した商品券を受け取った事、が原因として考えられます。そのため、決済には「(1)受け取ったおかねが後になって紙くずになったり消えてしまったりしない、また決済方法」が重要視されます。

 次に「(2)行われた決済が後から絶対に取り消されない」を説明します。

先ほど受け取った商品券を換金した後、実は無効なものだったと判明したとします(拒否できない)。おかねを取り上げられるということは、お店側からすればタダで商品を手放したことになります。

つまり、「(2)行われた決済が後から絶対に取り消されない」事も決済においては重要なことになります。

ではなぜこれがブロックチェーンの定義の一文に関係があると私が言っているのか。それはブロックチェーンのある特徴に由来します。

ここでは2点だけに絞って説明します。

 

一定時間ごとに繋げていく

ブロックチェーンってなに?に答えよう - 卒論から始まるBlockchainの記事で「データの繋がり」と説明したことに関連しています。詳しい説明は省きますが、この「データの繋がり」は「一定時間」ごとに繋がっていく(長くなっていく)のです。(例えば、ビットコインだと10分に1ブロックずつ伸びていきます。)

また、「みんながみんなのデータを持っている」とも説明しました。ここでは、「どうやったら」一つのデータに合意できるかは説明しました。では「どんな」データを合意しているのでしょうか。

 

「どんな」データを合意するか

もう一度ビットコインを例に話を進めます。ビットコインでは「ある計算を一番早く、正しくした者のデータ」をみんなで合意しています。しかし、世界はとても広いです。なのでどうしても時間差により複数出てきてしますことがあります。しかも、この二人のデータはどれも違う(全く同じの可能性もある)が、どれも正しい(ここでは正しいとする)のです。

お前何言ってるんだ(´・ω・)、という声が聞こえますが本当なんです。ある瞬間に、正しいデータが複数提案される(これをフォークといいます)ことがあるのです。

それじゃあ、みんなで一つのデータに合意できてないじゃないか!どうするんだ!っとなりますね。しかしこれは単純。

それぞれが正しいと思う方(実際は早く受け取ったデータの方)を元に、新しくデータを繋げていきます。

そうしてより長くなった方を正しいデータとして合意していきます。じゃあ長くならなかった(合意されなかった)データはどうなるか―――無効です。なかった事になります。

 

一旦話を整理しましょう。

Q:ブロックチェーンは「どんな」データを合意しているのか?

A:ある計算を一番早く、正しくした者のデータをみんなで合意する(ビットコインの場合&データの中身についての話は省略)。そして、合意したブロックを一定時間ごとに繋げていく。

注意点

1:ある瞬間に、正しいデータが複数提案される(これをフォークといいます)ことがある。

2:その場合、より長くなった方を正しいデータとして合意し、繋げていく。短い方(その他のブロック)は無効になる。

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

 

ここで一番の問題点は「2:その場合、より長くなった方を正しいデータとして合意し、繋げていく。短い方(その他のブロック)は無効になる。」です。つまり、一時期は正当な取引であると合意されていたものが、時間が経つと無効になる、覆される可能性があるのです。これが決済の世界なら「ファイナリティーがない決済」になりますね。もちろんこれでは困るわけです。じゃあブロックチェーンではどうするか。ここで一気に話を戻していきます。

 

ブロックチェーンにおける”ファイナリティー”

「時間の経過とともにその時点の合意が覆る確率が0へ収束する」

ブロックチェーンでは「一定時間」ごとにネットワークで合意されたデータを繋いでいき、それらが後で「無効・覆る可能性」が限りなく0に近くなっていく(0%にはならない)ことでデータの正当性を担保しています。「ファイナリティを得る」、つまり「時間が経つにつれて、合意したものが覆る可能性が減っていく」ということになります。

じゃあどのくらいのペースで限りなく0に近くなっていく(収束)していくのでしょうか。例であげたビットコインでは6ブロック(10分×6ブロック=60分)待つことが推奨されています。実際にビットコインの最初の論文でその数式を見ると以下のようになっています。

f:id:mochi-mochi-0397:20180604005247p:plainf:id:mochi-mochi-0397:20180604005251p:plain

f:id:mochi-mochi-0397:20180604005254p:plainf:id:mochi-mochi-0397:20180604005257p:plain

出典:http://www.kk-kernel.co.jp/qgis/HALTAK/FEBupload/nakamotosatoshi-paper.pdf

※Pが大文字だったり小文字だったりするのは何故なんでしょう?わかる方いらっしゃいましたら教えてください(*_*;

とりあえず計算結果だけを見てみましょう。後のブロック(この場合zブロック)から追いつく=覆される確率は、ブロックが重なっていくごとに確率0へ近づいていっていることがわかりますね。もちろんp,qの値に依存いてしまいますが、ここではブロックが繋がっていけばいくほど、一度決まった合意が覆されにくくなっていっているんだとわかっていただければ十分です。実際この論文の結論では以下のように述べています。

良心的なノードが CPU パワーの過半数をコントロールす る限り、プルーフ・オブ・ワークを使って記録された公開型の取引履歴を攻撃者が変えようとすることが、コンピュータ的に加速度的に実質上実行不可能になっていく P2P ネットワークを提案した。

このような状態を「時間の経過とともにその時点の合意が覆る確率が0へ収束する」と述べているんですね。

 

まとめ

ブロックチェーンとは:応答を返さない、誤った応答を返す可能性がある不特定多数の参加者を含むネットワークにおいて、時間が経つにつれてその合意内容が覆される確率が限りなく0に近くなっていくプロトコル、実装のこと

 

となりますね。ただし、これは狭義の意味での定義と注意書きされています。さらに、協会でも一意に定義するのは非常に難しく、今後変わっていく可能性もあると述べています。ここまで、長ったらしく説明してきましたが、あくまで参考程度にしてくれということですね(笑)

今回で(1)は終わりましたが、まだ(2)の定義が残っております。次回からは、こちらの説明をしていきたいと思います。

では今日はここまでです!お疲れ様でした!!ここまでお読みいただきありがとうございましたm(_ _)m

 

//論文は妥協して原論文ではなく和訳を用いました。しかも画像を切り貼りしただけ。ごめんなさい(/_;) 

また、何かおかしなところがありましたらご指摘頂けると幸いです。

 

参考資料

ブロックチェーンのおいて確定を意味する言葉「ファイナリティー」

第7章 決済の実行 : 日本銀行 Bank of Japan

ブロックチェーンの基礎:ブロックチェーンの定義、種類、技術

 

日本ブロックチェーン協会の定義から、ブロックチェーンを理解しよう① ~ ビザンチン障害編 ~

はい、4記事目にして新シリーズが始まります。その名も「日本ブロックチェーン協会の定義から、ブロックチェーンを理解しよう」です(長いわ!というツッコミは受け付けません)。

t.co

 個人的に大事だと思う、抑えてほしい点のみをピックアップして説明しました。でも何か気に食わないんですよね。自分が書いたのに。

じゃあどうしようと考えついたのが今回の企画ということです。めちゃくちゃ詳しい方々が議論に議論を重ねて作り出した定義を理解すれば、きっとそのブロックチェーンの真髄が理解できるはず!と意気込んでいます。では早速、協会のホームページに掲載されているブロックチェーンの定義を読み解きながら理解を深めていきたいと思います。以下が定義です。

1)「ビザンチン障害を含む不特定多数のノードを用い、時間の経過とともにその時点の合意が覆る確率が0へ収束するプロトコル、またはその実装をブロックチェーンと呼ぶ。」

2)「電子署名とハッシュポインタを使用し改竄検出が容易なデータ構造を持ち、且つ、当該データをネットワーク上に分散する多数のノードに保持させることで、高可用性及びデータ同一性等を実現する技術を広義のブロックチェーンと呼ぶ。」

狭義のブロックチェーン(定義1)は、オリジナルを意識し、それが備える本質的で不可分な特徴を捉え、言語化しました。

広義のブロックチェーン(定義2)は、昨今〜今後の技術の展開を鑑み、オリジナルが備える特徴であっても、別の実装方式や別の目的への展開などにおいて、置換や変化が行われていく広がりを許容しながらも、特徴を捉えられるよう、言語化しました。

出典:「ブロックチェーンの定義」を公開しました | JBA

 

なるほど、わからん。カタカナ多いし、聞いたことのい言葉もいっぱい。もうちょっとわかりやすくしろよ!!という声がどこからか聞こえてきそうですね。とりあえず難しそう、ということはよくわかります。ただ泣き言を言っていても仕方ありませんので地道に頑張りましょう。

 もはやどこから理解すればいいのか悩むところですが、とりあえず順番に見ていきましょう。

1)「ビザンチン障害を含む不特定多数のノード

 いきなりなぞですよね、この「ビザンチン障害」ってやつ。色々調べてみた結果、簡潔に表すならこんなこんな感じでしょうか。

ビザンチン障害:応答を返さない(オミッション障害)、誤った応答を返す(コミッション障害)障害のこと。

これは分散合意問題というもので出てきます。この問題は「不特定多数の参加者がいるネットワーク内で、ただ一つの情報に『合意』できるか」ということです。今世界中のインターネット利用者はどれくらいいるかご存知ですか?もちろんある程度は予測がつきますが、「正確に」何人かを知っている方はいらっしゃるでしょうか。そう、たぶんいません。なぜならその時々でパソコンを開いている人もいれば、いない人もいますね。新たに携帯を買った人も、失くした人もいます。このように何人いるかを正確に測定することが非常に困難なため「不特定多数の参加者」という前提がつくことになります。このような状況でただ一つの情報(提案)を全員で「合意したい(決定、共有したい)」場合を考えたとき、それはできるのかということです。さらに、その中には故障している機器もあり間違った応答を返す危機が含まれる場合があります。

 

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

 

応答を返さないだけならまだしも、誤った応答が帰ってきた場合、それが本当に間違っているのかを判断するのは非常に困難です。一体どうしましょう。でもピンときた方もいらっしゃるかもしれません。そう、前回の記事(ブロックチェーンってなに?に答えよう - 卒論から始まるBlockchain)で紹介した例題。まさしく同じような状況ではないでしょうか。これがビザンチン障害を例にしたもの(ビザンチン将軍問題)です。まさしく例題通りですね。

例題

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

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

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

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

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

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

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

ビザンチン障害に置き換えると

・一同に会して話会うことが出来ない&手紙でのみやり取り可能=個人間(P2P)でしか情報交換、連絡できない

・裏入り者=機器の故障、停止状況

という状況に置き換えられます。そんな状況で一つの作戦に合意する(決定・共有する)にはどうすればいいでしょうか?ということでした。そこでどうしたか。お互いがお互いの情報を確認しあうことで解決出来るよ!!となりました。じゃあこれをインターネットでもそのまま置き換えてみましょう。つまり定義で書かれている「ビザンチン障害を含む」とは、このような解決が難しい(難しかった)障害も含んで定義します、ということですね。

 

ちなみにこのような状況で正しく合意がするには、全体の総数はどのくらい必要でしょうか。(送信情報は途中で紛失、改変されることなく宛先へ届く。各プロセスから全てのプロセスに通信路があり、情報が到着しないことをタイムアウトにより発見できる。遅延時間に上限があり、同期的であるとする。) 

正解は n≥3t+1 です。(n:ネットワークの総数, t : 故障機器数)

またこの中で正常に動く機器は m≥2t+1(m :正常に動く機器の総数, t : 故障機器数)

必要になります。例題に当てはめると、

裏切り者:1人 正直者:3人(2×1+1)以上 総数:4人(3×1+1)以上

裏切り者:2人 正直者:5人(2×2+1)以上 総数:7人(3×2+1)以上

という構成ならば一つの提案に「合意」することが可能です。逆に、ネットワーク参加者の1/3以上が故障していた場合、全体で1つの正しい合意を得ることは出来ないということがわかります。悪い人ばかりではどのみち世界は成り立たないわけですね(´-ω-`)

ビザンチン障害:応答を返さない(オミッション障害)、誤った応答を返す(コミッション障害)障害のこと。

何となくここは理解できたでしょうか。

あとは「ノード(node)」ですが、これは簡単。つなぎ目という意味があるように、ネットワークに参加しているコンピューターやプログラムをさします。

これで最初に提示したビザンチン障害を含む不特定多数のノード」の意味は理解出来たでしょうか。いや~、長かった。とりあえず今日はここまでです!お疲れさまでした!!ここまでご一読いただき、ありがとうございましたm(__)m

 

 

//我ながら重いシリーズになりそうだなと思っています。頑張ってやりきりたい(;´Д`)

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

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

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

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

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

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

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

大事なポイントは二つ

①特定の管理者がいない

②データの連なり

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

 

①特定の管理者がいない

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

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

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

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

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

例題

今、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

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

 

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