ブロックチェーン エンジニア集中講座 week1 ~ブロックチェーンの仕組みと概要~ 参加レポート
HashHubでは毎週日曜日に2ヶ月集中して学習をするブロックチェーンエンジニア集中講座をフレセッツと共同で運営しています。詳しくはこちらをご確認ください。
ブロックチェーンエンジニア集中講座:https://www.blockchain-edu.jp/
<参加レポート>
week2 ~ビットコイン基礎編~:参加レポート
week3 ~ビットコイン応用編~ :参加レポート
week4 ~ビットコイン実践編~ :参加レポート
week5 ~Ethereum基礎編~ :参加レポート
week6 ~Ethereum応用編~ :参加レポート
week7 ~Ethereum実践編~ :参加レポート
week8 ~Ethereum挑戦編~ :参加レポート
week9 ~特別講義~:参加レポート
最初の挨拶
最初に本講座でメイン講師を担当するFressets CEOの日向から自己紹介と、本講座の進め方を説明しました。
また、メンターの自己紹介も同時に行われました。
参加者自己紹介
次に講座参加者が一人一人の自己紹介が行われました。名前、所属先(任意)、エンジニアとしてのスキル、意気込みなどを簡単に発表してもらいました。
聞いていると学生や、フリーランス、大企業就業者など、幅広い年齢層と多様なバックグラウンドを持ってる方が集まったようです。(中には岡山から来ている方もいました。すごい!)
エンジニアとしてのスキルもかなりばらつきがあったように感じます。ほぼ初心者です、という方からエンジニアとして働いていますという方も多くいらっしゃいました。全体的には初心者、エンジニアが半々ぐらいかなという感じだったと思います。参加経緯もブロックチェーン に興味があるのでという方はもちろん、これから実際にプロジェクトを作りたいとい方もいました。
またいくつかみられたのが、参加者同士で繋がりたいという声。参加者の熱量が高く、この中での交流が新しいプロジェクトが立ち上がるかもしれません。
これからの講座の進め方
講座に入る前にこれから各週で行う予定の講義内容を簡単に説明しました。第1週〜第4週まではビットコインに関するもの、第5週〜第8週まではイーサリアムに関する話になります。このあと一度質問時間が取られました。以下質問内容です。
Q. 講義中のスライドは共有されるのか?
A. 後でPDFなどにしてSlackで共有します。
Q. スライドと講義前に配布したテキストとは違うのか?
A. 今日のスライド内容をより詳しく書き起こしたのが配布テキストになる。
Q. 日向さんがビットコインに興味を持ったきっかけはなんですか?
A. 2013年末にネットで騒がれているのをみたのがきっかけ。最初は新しい電子マネーと言われているのをみて怪しいと思ったが、その後ビットコインというワードを目にすることが多くなり、気になって調べ始めた。調べ始めると徐々にそのすごさがわかり、簡単な取引所やマイニングプールを作っているうちに今のようにのめり込んでいった。
講義開始
まずは暗号通貨が目指す場所や、電子マネーとの違いの説明から始まりました。分散・非中央集権的電子マネーを実現するために二重支払いを解決し、改ざん困難にするためにPoWを導入したなどがメインでした。なぜPoWはどんな仕組みなのか、どのような計算をしているかなどが説明されました。
説明後は質問時間が設けられました。以下質問内容です。
Q. トランザクションIDが被ることはあるの?
A. ほぼない。ただ一回だけ過去にはある。あくまでハッシュ値で判別しているのでそこが被る可能性はかなり低い。
Q. 10分以内だったら不正取引可能なのでは?
A. ブロックに入る前にはバリデート処理があるため、これにより不正処理を防いでいる。
Q. ブロックが生成されるまでは取引として成立されない?
A. トランザクションがブロックに取り込まれるまで待つ必要がある。またブロックが後で分岐する可能性があるため、ブロックがある程度(3承認程度)作られるまでは待つ必要がある。
Q. 計算の必要があるとは?ハッシュ値をたくさん作るということ?
A. そうです。とにかくナンスを入れてハッシュ値を作る必要がある。
Q. ブロックが分岐するのは日常茶飯事なのか?
A. P2Pネットワークであるため、1日に2〜3回ほどは分岐することがある。ただ分岐しても1ブロックほどでどちらかに収束する。
Q. 分岐したブロックがどちらも正しい場合はどう判別するの?
A. ビットコインの場合は最初に受け取ったブロックをマイニングする。
Q. ビットコインではブロックを待たなければならない。しかしクレジットだと数秒で完結する。これは処理速度と分散性にトレードオフの関係があるということか?
A. トレードオフというほどではないが、ビットコインでは非中央集権性とのトレードオフになっている。リップルなどではコンソーシアム型で複数の会社で承認作業が行われるため早い。なので完全に非中央集権的にすると処理能力は下がる。
Q. 取引所でコインを送るとX分のXと承認数が出るが、あれはブロックの数なのか?
A. そうです。ただ取引所によっては承認数、コンファメーション数など様々な呼び方がある。基本的に承認数はブロックが繋がれた数を表している。
Q. あるノードがブロック生成に成功した際に、そのノードは他のノードより早く次のブロックの生成をすることができる。これは不公平ではないか?
A. 確かにタイムラグがあるので数10秒ほどではあるが一定の不利はある。その解決策としてコンパクトブロックというものがある。これはブロック全部をネットワークに流すと遅くなってしまうので、ヘッドのハッシュ値だけを流するやり方。ただ、それだけで有利・不利が解消されたわけではないので、不利ではあるかもしれない。
Q. ビットコインは善良な市民前提だが、もし悪者が結託した場合ブロックを自由に作れるのではないか?
A. 確かにできるが現在のビットコインで過半数以上乗っ取るのは無理だと思う。ただよく勘違いされているが、どんなにハッシュパワーを占有したとしてもトランザクションは電子署名で作られているため、持っているビットコインが勝手に不正利用されることはない。
ビットコインを受け取ってみよう
講義ではテストネットコインを使うが、実際にビットコインを受け取って見ないとわからない部分もあるかと思うので、本講座を受け取ってくれたお礼も含めて日向の方から1000円分のビットコインを送ることになりました。それぞれ参加者がウォレットをダウンロードして、準備の完了した方からSlack内でアドレスを載せてもらい日向が送金しました。
ノードの説明
開発に始まる前にノードの種類についての説明が行われました。SPVノード、フルクライアントやサーバークライアントなどが説明されました。各ノードは取り込むデータ量や種類によってセキュリティレベルが変わってくる。
またブロックの種類を見るためにブロックエクスプローラーというものがあり、それによりブロックの中身やネットワークの種類が見れるということが紹介されました。
Bitcoin Coreをインストールしてみる
時間が少し余ったため、week2でやる予定だったBitcoin Coreをインストールしてみます。
各OSごとに必要なものをインストールし、詰まった方は随時講師とメンターがサポートする形になりました。また、できた方から流れ解散とし、質問のある方は個別で質問することになりました。
まとめ
今回はビットコイン、ブロックチェーンの基礎的部分を理解してもらうために講義中心で行われました。ある程度知見のある方にとっては周知の内容だったかもしれませんが、これからエンジニアを目指す上では重要な内容だったのではないかと思います。途中の質問や、講義終了後も自主的に予習する方が多くいるなど、とても良い雰囲気でした。
執筆者:望月(HashHubインターン:@mochiblock)
HashHubではブロックチェーンエンジニアを育成するための短期集中講座を開講しています。2期目の開催は、2019年2月からです。
お申込み、詳細は下記のページをご覧ください。
ブロックチェーンエンジニア集中講座:https://www.blockchain-edu.jp/
|お知らせ
■HashHubでは入居者募集中です!
HashHubは、ブロックチェーン業界で働いている人のためのコワーキングスペースを運営しています。ご利用をご検討の方は、下記のWEBサイトからお問い合わせください。また、最新情報はTwitterで発信中です。
HashHub:https://hashhub.tokyo/
Twitter:https://twitter.com/HashHub_Tokyo
■HashHubでは下記のポジションを積極採用中です!
・コミュニティマネージャー
・ブロックチェーン技術者・開発者
・ビジネスディベロップメント
詳細は下記Wantedlyのページをご覧ください。
Wantedly:https://www.wantedly.com/companies/hashhub/projects