20代で転職を検討されている方へ


ブロックチェーンってどのプログラミング言語で書けばいいの?

最近、「ブロックチェーン」という言葉をよく耳にします。先入観で非常に難しい技術だと考えている人は多いと思いますが、実はその仕組みの概要は単純で誰でも理解できるものです(利用されているハッシュ関数などの暗号技術を理解するのは少し難しいです)

ブロックチェーンは仮想通貨などだけではなく、他の分野にも応用できる仕組みで今後も需要は高くなっていくことが確実視されています。ぜひこの機会にその仕組みを理解しましょう。

ブロックチェーンとは

ブロックチェーンとは、情報を管理する仕組みの一種です。ブロックチェーン上で管理されるデータは「ブロック」と呼ばれ、このブロックが連続して繋がっていることからこの仕組みを「ブロックチェーン」と言います。

ブロックチェーンは可用性やセキュリティ面で優れているため、現在IT業界で「機械学習」や「Iot」などと並んで非常に注目されている技術の一つとなっています。

現時点では主に仮想通貨などに利用されている技術ですが、他の分野でも応用可能なため、今後ブロックチェーンエンジニアの需要は高まっていくことが予想されます。

ブロックチェーンに使用されているプログラミング言語について

ブロックチェーンで使用する言語について

ブロックチェーンは分散システムでデータを管理するという仕組みのことであり、実装できる言語が限られているわけではありません。

ただ、実装しやすい言語はもちろんありますし、現時点ではまだそこまで実装実績がある仕組みとは言えないので、ブロックチェーンを開発する場合、言語は慎重に選択する必要があります。

Javascriptでブロックチェーンを実装

現時点で最もブロックチェーンの実装実績があるプログラミング言語の一つに「Javascript」があります。ブロックチェーン用のライブラリがたくさん出ていて、ネットにも実装のためのサンプルソースがたくさん載っています。

Solidityでブロックチェーンを実装

「Solidity」は、Ethereum(イーサリアム。分散アプリケーションのためのプラットフォーム)上で利用する言語です。
この言語のメリットは、文法がJavascriptと似ている点です。

Solidity自体は現時点ではそれほど有名な言語とは言えませんが、Javascriptは人気がある言語で開発者も多いため、Solidityはブロックチェーンを取り入れたシステムを実装する際に採用しやすい言語と言えるでしょう。

ブロックチェーン開発に便利なツール・フレームワーク

ブロックチェーンを開発するなら、適切なツールやフレームワークを調べて利用するようにしましょう。

たとえば、Solidityを利用してブロックチェーンを開発するのであれば、「Remix」というブラウザベースの総合開発環境を使うのがおすすめです。
Ethereum上でアプリケーションを開発するのであれば、「Truffle」というフレームワークを利用することで、スマートコントラクトの開発が楽になります。

ブロックチェーンはどう作られるのか

ブロックチェーンのブロックは以下のような手順で作成します。

1.ブロックの中身を定義

まずはブロックと呼ばれるデータの中身を定義します。

まず必要なのは「インデックス」、「タイムスタンプ」、「ハッシュ値」、「前のブロックのハッシュ値」です。そしてここに「取引データ」などが入ってきて一つのブロックとなります。

2.ハッシュ値を生成方法を決める

ブロックの定義が終わったら、次はブロックに持たせるハッシュ値をどのように生成するか決めます。

ハッシュを作る技術はたくさんありますが、「SHA-256」などが有名です。暗号化ライブラリが各言語で開発されているので、調べてみると良いでしょう。

※ブロックチェーンを実装する場合、ハッシュ値は必要不可欠になります。「SHA-256」などの暗号学的ハッシュ関数は基本的にハッシュ値からデータを復元できないように作られています。そして、ブロックチェーンでは前のブロックのハッシュを保持してブロックをつなげており、この仕組みを利用して改ざんを事実上不可能にしています。

3.ブロックを作成する

ブロックの中身を定義し、ハッシュ値の作成方法を決めたら、あとはブロックを作るだけです。

「インデックス」、「タイムスタンプ」、「ハッシュ値」、「前のブロックのハッシュ値」の基本的な項目と、自分で定義した項目に値をセットします。ちなみに、最初のブロックは「前のブロックのハッシュ値」が無いため物理的に定義を行う必要があります。