エンジニアへのインタビューで「ブロックチェーン」の実態を紐解く
すでに多くの場で使われるようになった「ブロックチェーン」という言葉だが、その実態がいまいち掴めないという声も多い。
そこで、実際にブロックチェーン開発に携わっているエンジニアの方に、ブロックチェーンの開発とはどういうものなのかを語ってもらった。
——ブロックチェーンエンジニアというのは何をする仕事なのですか?
A氏:ブロックチェーンに関連するアプリケーションや、ブロックチェーンそのものを実装したり開発する仕事ですね。
——その2つにはどのような違いがあるのでしょうか?
B氏:そもそもブロックチェーンというのは、ブロックチェーン単体で何かをできるようなシステムではありません。
たとえるなら、何も書いていない空白のエクセルだけでは人の役に立たないですよね。エクセルに何かデータを記入して、それを並び替えたり計算することでようやく人の役に立ちます。
この例えだと、エクセルがブロックチェーンで、そこに記入されるデータや計算処理などをするのがブロックチェーンのアプリケーションです。
A氏:ブロックチェーンというのは、要するに何らかのデータを保存したりデータをやりとりするためのデータベースのようなものなので、ただ空白のままそこにあるだけでは一般ユーザーにとっては無価値です。
そのインフラを使って、暗号資産のやりとりをしたり、NFTを発行して販売したりするためのアプリケーションが必要になります。
——ブロックチェーンそのものを開発するエンジニアと、アプリケーションを開発するエンジニアはどちらが多いのでしょうか?
B氏:ブロックチェーンエンジニアという立場で開発することが多いのは圧倒的に後者、私もAさんもそうですが、アプリケーションだと思います。
A氏:なぜならインフラであるブロックチェーンそのものはすでにいくつも存在するからです。あらたにブロックチェーンを作るのであれば、そのチェーンをどのように普及させるのかという大きな課題があります。
今からあらたなブロックチェーンを開発して、すでに存在している多くの有名なチェーンを追い抜くというのはあまり現実的ではありません。なので、多くのエンジニアはすでに稼働しているブロックチェーンで稼働するアプリケーションを作っています。
1番有名なのはイーサリアムなので、たいていのブロックチェーンエンジニアはイーサリアム上で動くアプリケーションの開発をしています。もちろんイーサリアム自体を開発している人もいますが、全体でみればわずかな割合です。
B氏:ほかにもブロックチェーンはたくさんありますが、現時点では市場のシェアの大半をイーサリアムが占めているので、やはりイーサリアムに関連するアプリケーションを開発しているエンジニアが1番多いのではないでしょうか。
しかもイーサリアム以外のブロックチェーンでも、イーサリアムの影響を受けているものが大量にあります。エンジニア目線でいえば、イーサリアムのアプリケーションを開発できればほかのブロックチェーンのアプリケーションを開発する時にもそのスキルは活かせることが多いんですよ。
A氏:ただし、アプリケーションといっても全てが一般ユーザーの方にみえるようなものではありません。取引所などのブロックチェーン関連企業が業務で使うためのアプリケーションを開発することもあります。
——ブロックチェーンエンジニアが開発するのはどういうアプリケーションなのですか?
A氏:ブロックチェーンエンジニアといっても担当する業務は非常に幅広く人それぞれなので一概には言い辛いのですが、ウォレットとか、ブロックチェーンゲームとか、DeFiのためのシステム、ユーザーさんからみえにくい部分だと取引所の資金を管理するためのシステムなどもブロックチェーンエンジニアが作ります。
その質問は『プログラマーはどういうものを作りますか?』と聞いているようなものです。企業の業務システムを作っているプログラマーもいれば、スマホアプリのサーバを作っているプログラマーもいますよね。
とにかく、ブロックチェーンに関連するなんらかのアプリケーションを作っているのがブロックチェーンエンジニアだと考えてください。具体的に何を作っているのかは、本当に人それぞれです。
——ブロックチェーンエンジニアと聞くと、物凄い技術を持っているような印象を受けます。具体的にはどういうスキルが必要になるのですか?
B氏:まずは基本的なエンジニアとしての知識です。ブロックチェーン関連のアプリケーションといっても、普通のシステム開発と変わらない部分も多いので。
それに加えて、たとえばイーサリアムのスマートコントラクトを記述するためのSolidityのようなブロックチェーン用のプログラミング言語についても学ぶ必要があります。
A氏:それからブロックチェーンに関する知識も必要です。ブロックチェーンアプリケーションは最終的にブロックチェーンとデータをやり取りしたり、ブロックチェーンのプログラムを解析してつなぎ合わせたりする必要があります。
その時に、ブロックチェーンがどういうふうに作られているのか、トランザクションがどのように処理されるのかを理解していないといけませんから。
B氏:それに、ブロックチェーン業界は本当に変化が早くてあらたな技術や仕組みが次々と生まれています。なのでその情報を遅れずキャッチアップして、自分が開発するアプリケーションに適切に組み込んでいかないといけません。
これが、ブロックチェーンエンジニアという職業の特殊な部分といえるかもしれません。
A氏:ブロックチェーンの領域は本当に幅が広くて、学ばなくてはいけないことも大量にあります。そのすべてを理解しているような人はおそらくいないので、とにかく自分の業務で必要になった知識を日々勉強する意識が重要だと思います。
B氏:ブロックチェーンそのものを開発しない場合でも、たとえばイーサリアムにどういうアップデートがあるのかといった情報は常に追っていないといけません。それに対応して自分が開発しているアプリケーションを改修したり、あらたなアプローチを試みたりすることもあります。
A氏:ただし、ここまでの話も本当にケースバイケースです。たとえばメタバースプロジェクトに関わっている場合、ブロックチェーンとほぼ関係がない部分を担当するようなケースも珍しくないです。
その場合でもブロックチェーンに関する最低限の知識は求められますが、自分でスマートコントラクトを書くようなことはありません。
(提供:Iolite)