こんにちは、高妻です。ブロックチェーンエンジニアとして働き始めて1年以上経ちました。
今の所全くメジャージャないので、ブロックチェーンエンジニアってどういうことをするのか全くわからないという言葉をよく頂きます。今回ブロックチェーンエンジニアの種類と仕事内容について詳細に解説したいと思います。
- ブロックチェーンエンジニアの種類と必要なスキル
先日下記Yoube動画に出演し、ブロックチェーンエンジニアがどういったことしているのか解説したのですが、具体的でわかりやすかったですと反響をもらったのでこちらもぜひどうぞ。
ちなみにコメントはこんな感じでやはり難しいとの感想が、、、今後簡単に理解できるように記事なり動画なり出していこうと思います。

ブロックチェーンエンジニアの種類と必要なスキル
まずはブロックチェーンエンジニアの種類について解説します。
ざっくり分けると下記3つに分けれますが、この3つの領域は重なりながら密接に関係しています。
- ブロックチェーンそのものを開発するエンジニア
- ブロックチェーンを使ってサービス、アプリケーションを開発するエンジニア
- 最先端技術を研究するエンジニア
ブロックチェーンそのものを開発するエンジニア
この領域のブロックチェーンエンジニアはBitcoinやEthereum自体のソフトウェアを開発しています。
開発をリードする組織はあるものの、GitHubを使ってOSSで開発が行われているので開発の進捗をチェックしたり、参加することができます。
代表的なBitcoinとEthereumについて解説します。
Bitocin
Bitcoin系の通貨(Litecoin、BCH、BSV)などはC++で開発が行われています。なぜC++が多いかというと、BitcoinがC++で開発しており、そこからハードフォークして派生した通貨が多いからですね。ハードフォークについては下記リンクを参照してください。
私自身はブロックチェーンエンジニアとして働いていますが、Bitcoinなどの通貨自体を開発している訳ではないです。Bitcoinなどの通貨自体の開発が1番難易度が高いです。
その理由として、Bitcoinのプロトコルを理解すること自体が非常に難しく、さらにC++でそれを実現しないといけないので2重でハードルが存在します。だから、Bitcoinなど通貨自体のソフトウェア開発に参加している人は本当にすごいエンジニアが多いです。
実際の開発内容は送金プロトコルの改善や、スケーリングを解決するためのプロトコル追加、パフォーマンス改善などですね。
Ethereum
EthereumはGoで実装されているgo-ethereum(geth)とRustで実装されているParityの2つがあります。どちらも同じプロトコルに準拠して実装されているため相互に接続して稼働することができます。
どちらもだいたい2週間おきくらいに新しいバージョンのソフトウェアをリリースしているので開発スピードは非常に早いですね。
gethはGoで実装されているのでプロトコルだけ理解できれば比較的開発に参加しやすいソフトウェアではあると思います。それでも日本人でgethの開発に継続してい貢献している人はいないので難易度は高いですね。
go-ethereumとparityの違いは下記リンクにまとめているのでぜひ読んでみてください。
>>EthereumブロックチェーンノードのgethとParityの違いと特徴!おすすめはParity!
ブロックチェーンを使ってサービス、アプリケーションを開発するエンジニア
BitcoinやEthereum自体のソフトウェアを開発する訳ではなく、作られたソフトウェアを使ってサービスやアプリケーションを作るエンジニアのことを言います。
仮想通貨取引所システム
この分野では取引所にエンジニアが一番集まっています。板取引のシステムは普通のWebアプリケーションですが、仮想通貨の入出金のシステムを作るのにブロックチェーンの知識が必要となります。
高額な金額を扱うのでセキュリティ、ブロックチェーン、暗号学について高度な知識が必要となります。
ウォレット事業者
私が所属しているGincoはブロックチェーンを使ってサービスを作っているのでこの領域のエンジニアが多いです。例えばGincoでは、スマホアプリで仮想通貨を管理できるサービス、ブロックチェーンノードのフルマネージドサービス、事業者向けのマルチシグウォレットシステムの提供などがあります。
アプリケーション開発のほかにもブロックチェーンの知見や知識をいかして、ブロックチェーンがどういったことに使えるのかコンサルなどをやっている企業も多いです。
ブロックチェーンを使ったゲームやSNS
ブロックチェーンを使ったゲームにCryptoKittiesやMyCryptoHeroes、Crypto Spellsなどがあります。CryptoKittiesは世界で一番最初に流行ったブロックチェーンゲームですね。
MyCryptoHeroesとCrypto Spellsは日本の会社が作ったゲームで2019年5月時点でMyCryptoHeroesが一番利用者数の多いブロックチェーンゲームとなっています。
>>CryptoKittiesで使われているNFT(Non-Fungible Token)なERC721 Tokenとは?
SNSだと投稿内容を全てブロックチェーンに保存しているSteemitというサービスがあります。これは記事に対してトークンが支払われ、それを取引所で監禁することで利益を得ることができるサービスです。
サービス開発に必要な知識
サービス開発に必要な知識はBitcoinやEthereumなど使用するブロックチェーンのプロトコルの理解はマストですね。
100%理解している必要は全くありませんが、UTXOとアカウントベースの知識、どうやって送金や受け取りが行われるのか、スマートコントラクトなどの仕組みを理解しているとスムーズに開発ができます。
例えばGincoのようなウォレットサービスを作る場合、通貨を受け取るためのアドレスの生成、送金するための電子署名、ブロックチェーンから送金トランザクション情報を取得する処理が必要になります。
これらの処理を各ブロックチェーン別に実装しないといけないので幅広くブロックチェーンへの知識が必要となります。
上記であげたMyCryptoHeroesなどのゲームはEthereumブロックチェーンを使っているのでEthereumの知識だけあれば作成可能ですが、スマートコントラクトの実装が必要になるのでEthereumに関するより深い知識が必要になります。
最先端技術を研究するエンジニア
この領域のエンジニアは少し先の未来をみて研究開発をしているエンジニアですね。日本だとLayerXやCryptoeconomics Labという会社が該当します。
本当に最先端の研究開発が行われているので自分にはほとんど理解できないことばかりです。この領域にあうのは論文を読んだり書いたりするのが好きな研究者タイプのエンジニアが向いているんじゃないかなと勝手に思っています。
自分の観測範囲内で研究開発が活発なEthereumのスケーリングと匿名送金について総会します。
Ethereumのスケーリング
ブロックチェーンのスケーリングはどの通貨でも問題になっていますが、BitcoinとEthereumは単位時間あたりのトランザクションが多いので特に問題になっています。
この解決方法にEthereumではPlasmaとかCasperとかいろんな言葉が出てきますが、難しすぎて追ってません。沼ので本当に興味のある人しか理解できないでしょうね。
匿名送金
Zcashで導入されている機能ですね。
誰にいくら送ったか暗号化されいて第三者は見れないけど検証可能という技術です。ここら辺はLayerXのOsukeさんが積極的に開発、発信していたりするのでフォローするのをおすすめします。
まとめ
ブロックチェーンエンジニアの種類を3つに分けて解説しましたが、全然違うことをやっていることが理解できたでしょうか?さらにここからブロックチェーン別に深い知識が必要になってくるので全ての領域を一人でカバーするのは無理ですね。
開発が好きな人、研究が好きな人それぞれ向き不向きがあるのでしっかりと見極める必要があります。
ブロックチェーン業界はエンジニアの数が圧倒的に足りないので自分で学習できる力があればブロックチェーンエンジニアになれるので頑張ってみてください。本日は以上です。
髙妻智一
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25