イベントレポート

HashHubのブロックチェーンエンジニア集中講座 第2期がスタート

年齢も分野もバラバラな熱意ある参加者による交流と学びの場だった

HashHubブロックチェーンエンジニア集中講座 セミナーの様子(受講者のプライバシー保護の観点から画像を加工しております。以下同)

 ブロックチェーン特化型のコワーキングスペース事業などを手がける株式会社HashHubは2月17日、フレセッツ株式会社と共同で開催するブロックチェーン集中講座の第2期を開催した。同講座は毎週日曜12時から17時に開催される。第2期は2月17日から4月14日の期間、全8週という短期間でブロックチェーンエンジニアとしての基礎が身につくというもの。各講座は1時間程度の座学とハンズオン形式の実習が中心となり、実際に手を動かして学習を進めるスタイルとなる。

 第1回は前半でブロックチェーン仕組みを解説しながら、講座全体の流れが説明された。後半では、実際に手を動かしてBitcoinのテスト用ノードを各自で立てるという実習を行った。講師はフレセッツ株式会社・CEO兼CTOの日向理彦氏が勤める。日向氏はMonacoinの取引所の開発・運営を行う他、マイニングプール、ウォレットなど各種サービスの設計・開発を手がけてきた実績を持つ。

フレセッツ株式会社・CEO兼CTOの日向理彦氏

 初回ということで、まずは受講者自身がそれぞれ自己紹介を行った。講座への参加者は、ブロックチェーンビジネスにすでに携わっているエンジニアは少数で、これからブロックチェーンに取り組もうという人が多数派だった。韓国、中国など海外出身の方も受講者の2割程度を占めていた印象だ。また、プログラミング自体ほとんど経験がないという方も少なからずおり、各人が携わるビジネスの分野も非常にバラエティーに富んだ。中には春休みを利用して地方から受講しに来たという意欲的な学生もいた。年齢層も下は20代前半から上は50代と、広い分布が見られた。

 全8週の講義前半ではBitcoinを扱い、後半でEthereumを扱う。Bitcoin編ではブロックチェーンの仕組みを基礎から学び、最終的にBitcoinで支払いを行うECサイトを作るところまでを扱うという。Ethereum編では代表的なプログラミング言語であるSolidityの文法を学び、ERC20トークンを作ってICO用のスマートコントラクトを作成するといった内容を扱うとのこと。

 また、講義外の自習も推奨されている。講義テキストや講義内容の録画が配布される他、気軽に質問できるように講師陣と受講者が参加するオンラインワークスペースがSlack上に提供される。

Bitcoinの解説

 講座の前半では、Bitcoinを例に仮想通貨の仕組みが解説された。要点は従来の電子決済で実現し得なかった多重支払いと改ざんという問題をどのように解決するのかというところだ。簡単にまとめると、Bitcoinはブロックチェーンによるトランザクションの順序化で多重支払いを防ぎ、プルーフオブワーク(PoW)によって耐改ざん性を実現しているということだ。日向氏による解説の後、受講者からは本日の講義範囲外のものも含めて、ブロックチェーンに関する多数の質問が寄せられた。以下では受講者からの質問と日向氏による回答の一部を紹介する。

──仮想通貨をよく知らない人に対して、電子マネーと仮想通貨の違いをどう説明したらいいか?

 電子マネーという言葉の中に仮想通貨を含めて語る人もいることから、定義を厳密に回答するのは難しい。例えばSuicaとBitcoinの違いならば分散型であるとか非中央集権、どの通貨にもペッグしていないのが違いだ。

──Bitcoinは10年間稼働しているので、安全だと言われているが本当なのか?

 2010年頃に通貨が無限に増えるようなバグがあったが、当時はユーザー数も少なかったのでハードフォークで事なきを得た。最近はユーザー数も増えて保守的なアップデートを行うようになってきたので、致命的なバグが起きることはあまりない。

──Bitcoinの10分というブロック生成時間は安全性を考慮して設定されたものなのか?どうやって決めている?

 ブロック生成時間に設定された平均10分という時間は1MBのブロックサイズに基づいて、データが全ノードに行き渡るまでの時間を考慮して設計されている。ノードの増減などによって、平均ブロック生成時間は上下するが、マイニングの難易度を2週間に1回調整することで均衡を保っている。また、このマイニングを行うPoWという仕組みはエネルギーの無駄とよく言われる。そのため、後発の技術では、PoWに数学的に意味のある素数連鎖の分布を計算する仕組みを組み込んだPrimecoinなどが開発されている。また、Ethereumが将来的に実装しようとしているプルーフオブステーク(PoS)という仕組みも、PoWのエネルギー問題を解消する一面がある。

──ハッシュキャッシュの計算に出てくる難易度がいまいち分からない

 BitcoinのPoWでは、ハッシュの先頭に0がたくさん並んだものを見つけることになる。ハッシュは16進数なので、例えば0が10個並ぶものを見つけるとなると、当選確率が16分の1のくじ引きを10連続で当てるような確率となるから、一筋縄ではいかない。

──トランザクションが発生してからどういう経路で伝播して最終的に承認されるのかよく分からない

Bitcoinの例で初期設定のままという前提で、トランザクションの発行者はまず8つのノードにデータを送り出す。受け取ったノードもまた、8つのノードにデータを送る。これを繰り返すことで、データはネットワーク全体に伝達される。

──フルノードを立てるメリットは?

Bitcoinでは、フルノードの数がネットワークを安定させる上で重要だが、立てるメリットがないことは以前から問題になっている。後発のブロックチェーンでは、NEMにおけるスーパーノードやDashにおけるマスターノードのように特別なインセンティブが設定されている。

──同じ人に同値のトランザクションを発生させたのにタイミングによって伝播速度が全然違う時がある。なぜか?

 P2Pのネットワークなので、日によってグラフ構造が異なるし、全体性能が違うことは当然ある。利用したマシンのネットワーク環境にもよるだろう。

Bitcoin Coreを試す

 第1回セミナー後半では、ハンズオン形式でBitcoinの公式ノード運用クライアントである「Bitcoin Core」を各自導入してノードを立ててみるという実習を行った。参加者同士で協力しながら互いに問題を解決したり、講師陣のアドバイスを受けて課題を解いていく様子が見られた。

 講座ではBitcoin Coreの回帰テスト(regtest)モードでプライベートな環境でノードを立て、ブロックを生成した。ウォレットアドレスを確認し、送金を行う部分までを扱った。前提知識としてはコマンドプロンプト(コマンドライン)の使い方と、環境変数(PATH)の設定方法といったPCの基本知識程度は必要となるが、講座の中で十分に解決可能な範囲だ。

まとめ

 以上が「ブロックチェーンエンジニア集中講座」第2期1回目の参加レポートとなる。実際に手を動かして覚えていくハンズオン形式となるが、実技の時間はかなり長めに取られ、適宜講師やアシスタントに質問することができる。初回は実習内容的にも余裕があったため、ハンズオンの時間を利用して、今日まで暖めてきたブロックチェーン関連の質問を投げかける受講者も多数いた。

 また、ブロックチェーンを学ぶという目的が共通した人たちの集まりということで、参加者同士や講師を交えて、積極的に意見交換が交わされているのが印象的だった。ブロックチェーンエンジニアとしての成長はもちろんとして、ビジネスに活用するために新しい知識を補充するという目的での参加でも、十分な見返りが見込めるのではないだろうか。

 HashHubは現在、関連講座として2月27日から開催予定のブロックチェーンのビジネス活用を学ぶ「ブロックチェーンビジネス集中講座」の受講者を募集している。本稿で取り上げた「ブロックチェーンエンジニア集中講座」は第3期が4月頃より開催予定とのこと。

日下 弘樹