今回は、現在の日本の課題であり、世界の課題でもある「ブロックチェーン技術者不足」の現状について、ジェレミー・ルービン氏(Jeremy Rubin)に独自の視点で語ってもらった。さらに、あまり紹介される事のないブロックチェーン(ビットコイン)デベロッパーコミュニティの特徴と課題にも話は及んだ。今までベールに包まれていたビットコインの開発現場の生々しい日常がわかってくる興味深い内容となった。また、日本の技術者への期待や、今回トレーナーとして登壇したBC²への感想なども聞くことができた。
どうやってブロックチェーンのエンジニアを増やすか
松尾真一郎氏(以下、松尾):「どうやってブロックチェーンのエンジニアを増やすか?」という課題に関連するものですが、ご存知の通り、Joi Itoはよく、「セキュリティ、ネットワーク、暗号学、経済学などの、(ブロックチェーンの中身を構成する)技術を兼ね備えている人たちは世界にたった20〜30人しかいない。」と言っています。問題は、これらの能力を持った優秀なエンジニアをどうやったら増やしていけるのかということだと思います。これについて何か良い解決策はありますか?
ジェレミー・ルービン(以下、ジェレミー):この件に関して、Joiと私はいつも少し意見が合いませんでした。(ブロックチェーンの技術に必要な全ての能力を持っており、かつ)ブロックチェーンに興味を持っている人は世界に20人から30人だと思いますが、実際にその能力を持っている人の数ははるかに多いです。彼らに興味を持ってもらい、この場所で働くことを、もう少し素晴らしく、また楽しくすることだと思います。よりフレンドリーになることも私は重要だと思います。また、今ちょうど国境を越えて手を差し伸べています。言葉のバリアが少しあるので、最初は日本と仕事をするのが難しいと考えていました。しかしこのようなコース(BC²)を行うことで、100人もの人々が集め、学ぶ場所を提供できるのは本当に素晴らしいことです。そして、参加者全員がその教材でどれほどよく学んだかということが「みんながコアに貢献をし始めたら、すぐにプロジェクトが日本の中心に戻ってくるかもしれない」ということの可能性を表すようになると思います。
松尾:このプログラムは素晴らしいと思います。一方で私の印象では、少し3日間にしては量が多いような気もします。このプログラムのためにはもっと時間が必要です。それから、この最初のレクチャーに参加したエンジニアのレベルの印象についてあなたに聞きたいのですが……。
ジェレミー:彼らはトップの腕前のようです。私は彼らがすべての資料をとてもうまく扱っていることに非常に感銘を受けました。ご存知のように、本当に、速いペースのコースです。内容はいくらかサンプルのようになっているので、参加者は後で、何かを学ぼうとして見直してみると、「おや、なんだか前に聞いたことがあるし、少し知っているな。」とか、「ここから始めるのが良いからここを見よう、そしてどこで深く入り込むのか少しわかるな」のようになるわけです。このコースの後に、参加者が突然トップの貢献者になるわけではありません。しかし、彼らは必要基礎を本当にしっかりと持っています。
今回参加してくれた受講者にとても満足しています。本当に素晴らしいと思います。多分すぐに次のコースを開催するべきだと思います。
松尾: 問題は、これまでに3つのスケーリングビットコインワークショップがありました。モントリオール、香港、そしてミラノです。その中で、これまで日本人の講演者の数は一人だけ、私だけです。より多くの日本からの参加者や講演者が必要だと思います。スケーリングビットコインで技術を発表できるエンジニアを増やすには、どのような教育や他の取り組みが必要ですか?
ジェレミー:認めますが、最初のスケーリングビットコインのプログラム委員長を務めた時、私は結果を保証する手段を全く持っていませんでした。しかし、ただこの仕事ができるように金銭的に支援している人々を持つことだと言えます。スケーリングビットコインで働いた多くの人は、会社の一員として、または会社のために働いています。会社は、会社のために必ずしも直接的な収益を返さない、非常に学術的な、またはオープンソースのプロジェクトに、彼らが取り組む時間を与えています。しかし、それがネットワーク的に貢献するという活動を善意を持って支えています。
初期のインターネットアプリの開発のように、開発者たちが自分たちの作業を公共の利益のため、標準化のために費やすことに賛同することが大切です。一方で、そういった貢献は皆の知れ渡ることとなり、より良いコミュニケーションにつながると思います。
日本人のビットコインエンジニアについて
松尾:例えば国という単位で考えると、ビットコインコアプロジェクトに貢献した日本人はほんの少ししかいません。現時点で日本人エンジニアの存在感はあまりありません。
ジェレミー:少し前に男性が一人だけいました。彼はプロジェクトの早い段階で去ったようですが。
松尾:つまり、このBC²ワークショップはビットコインのコアに貢献する日本人エンジニアの数を増やすための大きな第一歩です。日本には多くの優れたソフトウェアエンジニアがいると思いますが、一般的な日本人ソフトウェアエンジニアには、ブロックチェーン開発者とは何であるのかなかなか想像できません。それを説明していただけますか?アメリカやその他の国に存在しているブロックチェーンやビットコインエンジニアとは一体どういうことをしている人たちなのか?
ジェレミー:面白いのは「ビットコイン」という名前の会社が存在するわけではないということです。これは、オープンソースのプロトコルです。コアの開発サイクルを本当に厳しく管理しているLinuxのようなものでもありません。ビットコインはとてもオープンで、多くのオンライン対話、多くのチャットログ、Eメールを読むことで誰が何に興味を持っているのかが分かります。そして、参加したい興味のあるプロジェクトや具体的に変更したいネットワーク上の事象を見つけます。その仕事をして、プロトタイプを共有して、トレードオフを議論し、シミュレーションをして、テストをします。とてもゆっくりで着実なエンジニアリングの成果ですが、こうすることで進展していきます。
少しイライラすることがあるかもしれません。時には、あなたが愛着を持ったあるアイディアに対し、他の誰かが意見に同意しないこともあります。また、限られた人数しかいないので、人々は何かしらに追われていて本当に忙しいこともあります。全員の処理能力は限られています。時間とともに、良い貢献が道を作り、そして、コードは順調に前進すると思います。
ビットコインエンジニアに必要なスキルとは
松尾: 通常のエンジニアとビットコインのエンジニアの間には違いがありますか?必須なスキルのような観点から言うと?
ジェレミー:場合によると思います。私がビットコインのエンジニアとして思うのはCEOがいないという事実を認識する必要がある、ということです。つまり、通常だと、ある時点であなたは会社をいくらか頼ることができ、誰かが責任者として思い切った決断をしてくれて、そしてこう言います。「このように物事が進んでいきます。この方向性で進みます。」そして、それはあなたが少なくてもその方向性に進展することを保証してくれます。良い進展ではないかもしれませんが、それでも進展は進展です。
ビットコインでは、そういうものはありません。だからエンジニアはみんな、意見の不一致があるだろう、解決不可能な専門的な問題が起こるだろう、という覚悟が必要です。また、大いに道理にかなっていて、実行したらすごく良いアイディアのようなものが、まさにそうはならないということもあります。ひとつの例ですが、私がいつも興味深いと思う問題は、現在コードのフォーマットがコードベースを通じて標準化されていないことです。この問題は10秒で修正できてしまうのですが、これを正そうとすると他のコントリビューターたちの開発したパッチもたくさん壊れてしまうということにもなります。ある一定のフォーマットで全てが繋がれていたので、そこでコードベースにパッチを適用されることはありませんでした。そして、新しいコントリビューターが時折入ってきては、「やあ、コードフォーマットを直しましたよ。」と、その後、彼らが出ていくとそのパッチのプルリクエストは「ええと、コードのフォーマット化は絶対しません。」と拒否されてしまいます。つまり、CEOがいないということで、このようにふざけたことが多々発生します。
松尾:これは一つの見方ですが、エンジニアの質には幾つかの見方があると思います。例えば「美しいコードを書く」「他の人々とコミュニケーションを取るのが上手」など。ビットコインコアのコミュニティーにおいては、あなたが前で述べた問題などについて他の人々と上手にコミュニケーションを取り合うことがより重要ということですよね。
ジェレミー:そうです。だから、時々、本当に天才的で才能のあるプログラマーが、ビットコインで本当に最悪のコードを書くのを見ることがあるでしょう。そして、「なんでこんなプログラムを書いたの?」と言いたくなります。しかしそれは、彼らが実際それを正そうとして、最適なプログラムに書きかえようとしても、変更しなければいけない規模が大きすぎるし、ネットワーク上の他の人々にまで影響を与えてしまうことになります。そのため、一貫性のために、物事はそのままに保たれなければいけません。よく取り上げられる例の一つですが、シリアライゼーションとデシリアライゼーションのパケット通信のコードは、本当に質が悪く、不十分なデザインです。ただし、それを修正しようとすると、非常に小さなバグであるにもかかわらず、ビットコインのネットワーク全体を完全に壊してしまうこともあります。だから、そのまま同じ状態にされ、人々が修正できるのは、とても小さいものに限られてしまうのです。
松尾:私の意見ですが、日本人の特徴などを考えると、日本人のエンジニアは精密なエンジニアリングが得意です。日本人は素晴らしい時計や自動車などを作ります。精密なエンジニアリングが得意という日本人の性質は、ビットコインのコアプログラムやコミュニティーの強化に貢献できますか?
ジェレミー:間違いなくそうです。私が数年前に中国の深圳にある日本のボール・ベアリングの会社を訪れたとき、素晴らしい経験をしました。作業中の製品のラインを見ていると、それは端から端まで徹底したプロセスでした。私は不合格品の1つを手に取ってそれがどうなのか見ました。それは私が今までの人生で見た中で最も滑らかなボールベアでした。そして、それは本当に初期段階での不合格品で、そこから先の工程では不合格品の数は改善される一方でした。私はこの潜在的な不具合を発生しにくくすることに焦点を当てて構築され、それでいて確実な動作を保証するための様々な考えが施されている精密なネットワークはとても重要だと思います。だから私は、ここに配慮されている日本人の物事に対する視点は重要なキーになると思っています。
松尾:これは日本人エンジニアにとって良いニュースですね。彼らは確実にビットコインとブロックチェーンの将来に貢献できるでしょう。
松尾:今回のBC²には120人のエンジニアが来ています。将来のブロックチェーンエンジニアにはどのような経歴やスキルが必要ですか?あなたが期待するものは何ですか?
ジェレミー:スキルというわけではないのですが、私が見てみたいものとしては、日本からの女性エンジニアの参加がもっと見たいです。彼女たちはとても優れていて能力が高いと海外の友人から聞きました。ですから、より多くの女性エンジニアの参加を見ることができたらよいと思います。あとは、他のオープンソースプロジェクトに関わっていた経験のある人がいるとよいとも思います。そのようなエンジニアが参加しているのを同様に見ることができたら素晴らしいです。
BC²について
松尾: ここで話題を変えて今回のイベントBC²についてお聞きしたいと思います。このイベントであなたが何を教えるか説明していただけますか?
ジェレミー:いくつかの違うトピックについて教えることができました。私は初日と最終日に教えました。初日に行なったのは、ビットコインコミュニティーの基本とオープンソースプロトコルへの貢献についてです。また、ビットコインの主なアーキテクチャーの変化についても話しました。これはインターネットのRFCプロセスに相当するものですね。私が行なったこれらのレッスンが、彼らが普段従事している仕事でのコードベース変更や、彼らの会社やプロジェクト内での独自のプラットフォームを開発することと同様に、初めてのビットコインへの、貢献、コードの変更などに受講者を導くことができたとしたら嬉しいです。
また、私が最近やったあるコードの変更についても話しました。ビットコインのブロック処理に、より高性能で低分散のキャッシュソリューションを提供するものです。私はその詳細を説明しました。受講者はそれを理解し、評価してくれたと思います。今日、最終日に、私が取り組んでいるいくつかの最近の研究、私が先日スタンフォード大学で初めて発表したことについて話し、この場所でも同様に発表することができました。複雑すぎるという問題点はあるものの、ビットコイン上で実装するスマートコントラクトは何より安全です。これは今までにない完全に新しい方式です。
松尾:それは素晴らしいですね。これは日本のエンジニアにとってとても価値のある講義でした。このイベントについてどう思いますか? 講義を終えてどう感じますか?
ジェレミー:最初は日本へ行くということについて少し不安がありました。確かに日本出身の友人はいますが、一度も行ったことはなく、言葉も話せません。しかし、受講者に会って、彼らにどれほど受容力があるのか分かり、彼らは理解しようとどれだけ一生懸命になっているかを見て、私は強く感銘を受けましたし、このワークショップにとても満足しています。
松尾:ワークショップを楽しみましたか?
ジェレミー:はい!とても。ハイ(日本語で)。
松尾:アメリカ国内の大学やその他教育機関には多くの似たような教育プログラムがあると思います。例えば、マサチューセッツ工科大学ではMITビットコインブートキャンプがあり、コーネル大学やスタンフォード大学ではビットコインを扱う学科があります。このワークショップの次回以降をより良いものにするため、米国におけるこの活動の現状を説明していただけますか?
ジェレミー:正直に言いますと、このイベントが、私が今まで見た中で一番、本当に正直に言って、徹底していて実践的なワークショップでした。これは本当に質の高いプログラムで、とても感心しました。アメリカ国内で見た他のものと比べると、これはより速く、より真剣なエンジニアをターゲットにしたものだと思います。このクオリティーの高さはアメリカ国内で見ていません。
これまで幾つかのイベントに行きましたが、それらはもう少しラフなものでした。誰もコードエディターは開いてないし、プログラムを眺めたりするコースではなく、概要をただ口頭で説明するようなものでした。今回のようにコードのみに集中してプログラミングしたり、実際に課題に取り組んだりするイベントは非常に優れているものです。また、大学やその関連で開催されているイベントは、学生向けで基礎的な内容が多かったですが、ここで行なわれているものは即戦力となるエンジニア向けにフォーカスされています。
松尾:つまり、今回のBC²はエンジニアにとって実りのある内容だったということですね。
ジェレミー:そうです。
松尾:このブートキャンプの参加者にメッセージをお願いします。
ジェレミー:あなたたちは素晴らしかったです。来ていただきありがとうございました。そして、また戻ってきて、あなたたちがどのくらい進歩したのか見たいと思っています。
Jeremy Rubin
co-founder of Tidbit, the MIT ビットコイン Project, and the MIT Digital Currency Initiative
マサチューセッツ工科大学にてRonald L. Rivest教授の元、電気工学、及びコンピュータサイエンスの工学修士を修め2016年卒業。ビットコインの技術に精通し、Tidbitの創業、MIITのビットコインプロジェクト、MITデジタルカレンシー・イニシアティブの立ち上げなど数々の実績を持つ。またScaling ビットコインカンファレンスのプログラムチェアーとしても活動する。現在はビットコインコア技術の進化に力を注ぐ傍、ハードウェアや製造技術、関数型プログラミングにも取り組む。また、ロングボードスケーターでもある。
松尾 真一郎
DG Labアドバイザー(ブロックチェーン)
MITメディアラボ研究員 所長リエゾン
BSafe.network共同設立者
シリコンバレーを拠点に活動する、暗号技術と情報セキュリティ分野の研究者。ブロックチェーンをアカデミアの視点から成熟させる活動をしている。
MITメディアラボでは研究員および金融暗号分野の所長リエゾンとして活動するとともに、東京大学生産技術研究所・海外研究員、MagicCube Inc.のチーフセキュリティサイエンティストを務める。
世界初のブロックチェーン専門学術誌LEDGERのエディタであり、W3Cのブロックチェーンカンファレンスのプログラム委員。Pindar Wong氏ともに、ブロックチェーンの学術研究を行う大学による国際研究ネットワークBSafe.networkの構築を行っている。