ブロックチェーンエンジニアとは?どのような技術で仕事内容は?知識・スキル・資格まとめ
ブロックチェーンエンジニアという言葉を聞いたことがありますか。
ブロックチェーンは暗号資産Bitcoinの基幹技術で、今ではさまざまなディジタル通貨はもちろん、金融サービスはじめ様々な分野で実験的な導入が進んでいます。
ブロックチェーンエンジニアは、ブロックチェーンを使用するアプリケーションやサービスの開発を担うエンジニアです。
今回は、ブロックチェーンに使われている技術について解説した後、ブロックチェーンエンジニアの担う仕事の内容やブロックチェーンエンジニアに必要な知識やスキル、資格、求人状況などについても解説します。
最新技術だからこそ、業界的にも需要が高く、これからエンジニアへの転職を考えている人や、すでにエンジニア且つキャリアパスを考えている人は是非参考にしてください。
ブロックチェーンエンジニアとは
ブロックチェーン技術は、「分散台帳技術」という分散型のデータベース技術で、暗号資産Bitcoinの基幹技術です。
今では金融サービス以外にも様々な分野で実験的に導入が進んでおり、ブロックチェーンを使用するアプリケーションやサービスが増加し、新規開発も行われています。
ブロックチェーンエンジニアとは、ブロックチェーン技術を用いて、
・アプリケーションやサービスを開発したり
・ブロックチェーン自体を開発したり
するエンジニアのことです。
ブロックチェーンとは
ブロックチェーンエンジニアに求められる知識やスキルが具体的に分かるように、もう少し技術面で
「ブロックチェーン」
について、見ておきましょう。
ブロックチェーン技術の定義
総務省はブロックチェーン技術について次のように定義しています。
「ブロックチェーン技術とは情報通信ネットワーク上にある端末同士を直接接続し、暗号技術を用いて、取引記録を分散的に処理・記録するデータベースの一種であり、Bitcoin等の仮想通貨に用いられる基盤技術である。」
この定義に続いて、日本ブロックチェーン協会の次のような定義も紹介しています。
「電子署名とハッシュポインタを使用し改ざん検出か容易なデータ構造を持ち、且つ、当該データをネットワーク上に分散する多数のノード(コンピュータ)に保持させることで、高可用性及び同一性等を実現する技術である。」
以降、この解説記事の中では用語「ブロックチェーン技術」は「技術」を指し、「ブロックチェーン」は「仕組み」を指すものとします。
ブロックチェーンの特徴
ブロックチェーンを使ったアプリケーションやサービスには、次のような特徴があります。
・改ざんが非常に困難:ハッシュや電子署名などの暗号化技術による検出の仕組みがある
・システムダウンが起きない:一部のコンピュータがダウンしてもシステム全体は稼働
・自律分散システム:全ての参加者が自律して取引履歴をコピーし続ける
・取引の記録を消すことができない:取引履歴のコピーが多くのコンピュータに残るから
ブロックチェーンの仕組み
次に、ブロックチェーンの仕組みを見ていきましょう。
P2P(Peer to Peer)ネットワーク:高い可用性と経済性の源泉
インターネットを介してコンピュータ間でファイル(データ)を送受信する技術として、クライアントサーバー方式が以前から用いられています。
この方式では、専用のサーバーに台帳データなどを格納し、クライアントがそこにアクセスして読み書きするものです。
P2P(Peer to Peer)とは、インターネット上で送信側と受信側のコンピュータが直接通信してファイルを共有する通信技術のことで、専用のサーバーを介さないのが特徴です。
具体的には、ファイルを送受信する2台のコンピュータのうち片方がクライアントの役割を担い、他方がサーバーの役割を担うことでファイルの送受信を行っています。
ブロックチェーンの場合は、送受信する台帳データなどをP2Pネットワーク上の複数のコンピュータに分散して格納しています。
(これが、冒頭で述べた「分散台帳技術」です)
このような構造をもつことにより、P2Pネットワークには、
・ダウンタイムが実質的にゼロ:障害や負荷の集中で停止する恐れのあるサーバーが無い
・安価のシステム構築が可能:サーバーのような高価なコンピュータが不要
・非中央集権的:参加しているすべてのコンピュータが対等な役割を負う
などのメリットがあります。
ブロックチェーンには「プライベートブロックチェーン」と「パブリックブロックチェーン」がありますが、その違いはP2Pネットワークの仕組みに由来します。
前者はHyperledger Fabricに代表され、許可されたコンピュータだけが参加できます。
後者はBitcoinに代表され、参加するコンピュータに制限はありません。
偽造防止(改ざん耐性を持つテータ構造)
ブロックチェーンの「ブロック」とは、
「ネットワーク内で発生した取引の記録の塊」
「一つ前に生成されたブロックの内容をコンパクトにまとめた値(ハッシュ値)」
をペアにしたものです。
ブロックチェーンとは、このような特性を持つブロックを、生成された時系列に従って鎖状に連ねたものを指します。
たとえ1つのブロックを改ざんしようとしても、改ざんされた情報から生成されたハッシュ値は次のブロックに保存されているハッシュ値と異なるため改ざんしたことを検出できます。
そのため、「改ざんが出来ない」というよりは、「改ざんしたとしてもバレる」ような仕組みと言えるでしょう。
ブロックを暗号化して、改ざんや漏洩の無い情報共有を実現
送り手から受け手に渡す際に改ざんされたり、第三者に漏洩されたりせずに情報を送るために、以下の手順で通信します。
(1)送り手は、ハッシュ値を受け手の公開鍵で暗号化し、平文(取引の記録の塊)に電子署名する
(2)電子署名された平文を受け手の公開鍵で再度暗号化し、受け手に送信する
(3)受け手は受信したものを、自身の秘密鍵で復号する
(4)電子署名された平文のハッシュ値を再度自身の秘密鍵で復号する
(5)平文から生成されたハッシュ値と電子署名から生成されたハッシュ値が一致すれば、偽造されていないコンテンツであると確認できる
スマートコントラクト:取引条件が満たされた時に、取引を成立させる仕組み
スマートコントラクトとは、
「あらかじめ設定されたルールに従って」
ブロックチェーン上のトランザクションまたはブロックチェーン外から取り込まれた情報を「トリガー」にして「取引を成立させる」プログラムを実行させることを指します。
身近な例にたとえれば、自動販売機で購入者が欲しい商品のボタンを押して代金を投入すれば、これを「トリガー」として自動販売機が商品を払い出すことで「取引を成立させる」動作に該当します。
コンセンサスアルゴリズム:正しい情報のみを記録するための仕組み
分散ネットワークにおいて、不正な取引を監視し排除しながら正しい情報のみを記録する仕組みは極めて重要です。
コンセンサスアルゴリズムとは、ブロックチェーンに新しいブロックを追加する際に行われる承認作業
(取引内容をひと塊のブロックにまとめ、暗号化した上でブロックチェーンの最後尾につなげていく作業)
の中で、
「合意形成(コンセンサス)するための手順(アルゴリズム)」
のことです。
ネットワークに参加する全てのコンピュータがコンセンサスアルゴリズムに従い、相互牽制することで正しい情報のみを記録することが可能になります。
ブロックチェーン技術の活用領域と開発用プラットフォーム
ブロックチェーン技術は、今では金融、不動産取引、物流、医療など様々な領域で活用されています。
また、ブロックチェーン技術を利用してアプリケーション開発するためのプラットフォームは各種存在しますが、それらは以下の3つの型に分類できます。
パブリック型
仮想通貨取引や銀行間送金、ゲームアプリなどに使われているプラットフォームです。
インターネットに接続できれば誰でもアクセス、自由に取引に参加できるのが特徴で、BitcoinやEthereum、Rippleなどが有名です。
Ethereumは仮想通貨Etherを使うもので、スマートコントラクト機能があるため、後ほど紹介しますが色々な用途に使われています。
また、Rippleは国内外の銀行で使われており、国際送金が即時に完了するものです。
コンソーシアム型
企業間の情報共有やセキュリティが求められる教育機関・公共機関などで使われています。
複数の企業が管理者となって運用し、取引やアクセスは許可制です。
そのため、パブリック型よりも情報漏洩のリスクが少ないです。
Hyperledger Fabricが有名で、企業対企業の使用に特化しており、秘匿性の高いのが特徴です。
プライベート型
自社一社のみが管理者となり、自社サービスのみで利用する場合に利用されます。
参加するコンピュータか少ないため迅速な処理が可能で、参加者が限定されているためプライバシーも保護されます。
プライベートブロックチェーン構築プラットフォームMijinや未公開株式取引システムNASDAQ Linqなとが知られています。
ブロックチェーンエンジニアの仕事内容
ここでは、ブロックチェーンエンジニアの仕事内容を見ていきましょう。
ペイメントサービスの開発
ペイメントサービスとは、金銭の支払いを電子的に行うサービスです。
ECサイトは、支払決済のためクレジットカード会社や銀行に手数料を支払っていました。
このため、ECサイトなどでは今までは数十円から数百円といった少額な商品は扱っていませんでした。
ブロックチェーンを活用した場合、支払いが電子マネーなら手数料は不要です。
これにより、少額な商品を扱えるようになると期待されています。
NFTなどアプリケーションの開発
ここでは、ブロックチェーンを利用したアプリケーションやサービスの事例を幾つか紹介しましょう。
事例1:ポイントサービス(商品購入時に付与されるポイントの管理)
事例2:不動産取引(不動産売買の手数料や時間、信頼性を担保)
事例3:食品管理(トレーサビリティを確保するため、製造・加工・流通など各段階で記録)
事例4:農業支援(有機野菜の信ぴょう性確保のため、農薬や土壌の質などを記録)
事例5:アート作品の証明(画像データをブロックチェーンに記録し偽物を見破る)
事例6:個人認証(予め定められた質問に答えて個人認証する)
事例7:履歴書詐欺や経歴書詐欺への対策
事例8:データの証明や領収書の信ぴょう性を証明
事例9:クラウドファンディング(独自通貨の発行・販売で資金調達)
事例10:セキュリティサービス(IoT端末と組み合わせて)
事例11:社有車の管理(ディジタルキーと組み合わせて、メンテナンスや運行管理など)
デジタルデータはコピーが容易という問題を抱えていましたが、ブロックチェーン技術を活用した
「NFT(非代替性トークン、偽造不可な鑑定書・証明書付きのディジタルデータ)」
により唯一無二であることを保証できるようになりました。
ここに掲げた事例の多くはNFTを利用しています。
NFTはこれ以外にも、マーケットプレイスやゲーム、メタバース、コミュニティや会員限定サービスなどのサービス拡大に役立つものと期待されています。
独自のブロックチェーン開発
ブロックチェーンを利用したアプリケーションを開発する時、最初に候補に上るのは既成のブロックチェーン開発プラットフォーム(例えばEthereum)を利用した開発です。
しかし、アプリケーションによっては、スピードや柔軟性の点で既成のプラットフォームを使ったブロックチェーンでは物足りないと感ずることが多々あります。
株式会社アーリーワークスの製品
「GLS(Grid Ledger System)」
は、顧客ニーズに合わせてカスタマイズすることが可能なブロックチェーンです。
この製品はプロトコルレイヤーから開発しているので、高い処理速度や柔軟性に対応できます。
このように、顧客ニーズに合った独自のブロックチェーンの開発も行われています。
ブロックチェーンエンジニアになるのに必要な知識・スキルや資格、求人状況
未経験者でもブロックチェーンエンジニアに挑戦できます。
しかし、ブロックチェーンに関するある程度の知識やプログラミングスキルは必要です。
また、最先端技術であり、アメリカの方が進んでいるので情報収集のために英文の読解力が必要です。
ブロックチェーンエンジニアに必要な知識・スキル
ブロックチェーンニアには「基盤技術開発」「スマートコントラクト」「仮想通貨」「NFTなどのアプリケーション開発」などの職種があります。
基盤技術開発で特に求められる知識やスキル
独自の分散台帳の開発やパブリックブロックチェーンのプロトコル開発などを担います。
このため、コンピュータサイエンス領域の学術的な知識が求められることが多いです。
開発には主に低級言語が使われますから、C/C++が必須です。
また、BitcoinやEthereumなどの代表的なパブリックチェーンをプロトコルレベルで理解している必要があります。
スマートコントラクトで特に求められる知識やスキル
第2章で紹介したペイメントサービスには第1章で紹介したスマートコントラクトが使われます。
ゲーム領域で使われる事例が増えており、Ethereum上での開発が多いです。
スマートコントラクト記述言語Solidityは勿論ですが、サーバーサイドエンジニアとしてのスキルが求められることが多いです。
NFTを利用した各種サービスの開発に求められる知識やスキル
ブロックチェーン(特にEthereum)の知識やセキュリティに関する知識が必要です。
また、UIやUX、セキュリティを実装できるスキルも求められ、担当する業種の業務知識も求められます。
ゲームやメタバースに携わる方には、Unityなどを使いゲーム開発をするスキルが必要です。
Ethereumを使うためSolidityのスキルが必要で、JavaScriptまたはPythonの何れかのスキルのあることが望ましいです。
ブロックチェーンエンジニアに求められる資格
ブロックチェーンエンジニアは前節のように、職種によって求められる知識やスキルが異なります。
ここでは全てのブロックチェーンエンジニアが共通にもつべき「ブロックチェーンに関して一定レベルの知識やスキルを持つ」ことを証明する資格について紹介します。
転職サイトが認める資格と学習方法
転職サイト「レバテック」にはブロックチェーンに関するページがあり、そこで以下に紹介する「暗号資産検定」と「ブロックチェーン技能検定」について紹介しています。
レバテックでは、資格の取得は転職におけるアピールポイントの一つとして、資格の取得を推奨しています。
しかし、ブロックチェーン技能検定はブロックチェーン推進協会とブロックチェーン技能認定協会が過去に実施したもので、残念ですが現在は実施されていません。
関連書籍が発売されており、現在でもブロックチェーンを学習する道標となっていますので、このような書籍で自習することをレバテックは勧めています。
暗号通貨技能検定(受講と試験)
日本暗号通貨技能検定協会が行う検定試験ですが、検定に先立ち初級検定講座や上級検定講座を受講する必要があります。
初級検定講座は未経験者向きで、1日の講座を受講後に検定試験が行われます。
合格者には「暗号通貨アドバイザー」の資格が与えられます。
講座では、暗号通貨の仕組みや暗号資産の将来性や利点、ブロックチェーン、P2Pネットワーク、ディジタル署名などを学びます。
上級検定講座は初級検定合格者が対象で、講座終了後に小論文を提出しWeb口頭試問に合格する必要があります。
合格者には「公認暗号通貨技能アドバイザー」の資格が与えられます。
講座では、暗号通貨の概念や構成技術、暗号化技術、ブロックチェーン技術、スマートコントラクトについて学びます。
受験料は初級が53,000円、上級が96,000円です。
ブロックチェーン技能検定(書籍で自習)
ブロックチェーン推進協会(BCCC)が提供する講義内容に準じた内容の試験でしたが、今は試験を行っていません。
過去問の掲載された書籍「ブロックチェーン技能検定公式テキスト&問題集」が入手できますから、入手して自習することをお勧めします。
専門学校「FLOCブロックチェーン大学校」のエンジニア向けコース受講完了レベルです。
「ブロックチェーン実践」と「スマートコントラクト開発」という2つのカリキュラムがあります。
ブロックチェーン実践は、基本構造、ハッシュ関数を使った秘密鍵と公開鍵の作成、新規取引の作成、送金、P2Pの仕組み、ブロックチェーンの作成などに関するものです。
スマートコントラクト開発は、ブロックチェーン制御、双方向通信、フロントエンド開発、Ethereum技術などに関するものです。
ブロックチェーンエンジニアの年収と求人状況
ブロックチェーンエンジニアの初任給は28万円前後が相場です。
これは、ブロックチェーンエンジニアとしての知識やスキルが認められているためで、一般的なシステムエンジニアの初任給21万円前後と比べても高いです。
IT業界全体に言えることですが、年功序列よりも成果やアウトプットで評価される賃金体系になっています。
転職サイト「doda」などに掲載されている求人情報から、ブロックチェーンエンジニアの求人は2021年7月末現在844件あり、転職ニーズの高いことが分かります。
また、ブロックチェーンの経験者に提示されている年収は幅をもっており、低い方は約600~740万円で高い方は約1200~1400万円です。
基盤技術開発iに携わるブロックチェーンエンジニアについては、非常にハイレベルな求人ですから知識と経験に基づいて評価され給与の上限設定はありません。
最新技術のエンジニアをお探しならAMELAに
今回は、ブロックチェーンエンジニアという
「これからのスタンダード」
となりうる仕事と言えるでしょう。
こういった技術をいち早く自社のビジネスに導入することができれば、非常に有利な状況になると言えます。
一方で、最先端技術を扱えるエンジニアというのは、探すのが難しく、まだ多くの過去の事例が集まっていないだけに、対応力などのスキルも必要とされます。
もしもブロックチェーンエンジニアをお探しの場合は、AMELAにご相談ください。