ブロックチェーンを開発するには どんなプログラミング

最近、『ブロックチェーン』という言葉を耳にする機会が増えてきました。

仮想通貨ビットコインのブロックチェーンがオリジナルですが、現在ではそれから派生・改良されたものなどさまざまなブロックチェーンが存在しています。

ブロックチェーンと聞くと、なんだか難しそうに感じませんか? しかし、考え方と正しいツールを使えば、ブロックチェーンを実装することも可能です。日本では三菱UFJ銀行がブロックチェーン技術を利用するというニュースもあり更なる注目が集まっています。

今回は、ブロックチェーンの基礎知識や特徴、メリット、適用分野および使われる技術についてわかりやすくご紹介します。

ブロックチェーンとは

「ブロックチェーン」とは、ビットコインの中核となる散型台帳』技術のことを指します。

取引のデータ(履歴)を「トランザクション」と呼び、そして、複数のトランザクションをまとめたものを「ブロック」と言います。このブロックが連なるように保存された状態が「ブロックチェーン」です。

ブロックチェーンは分散して管理されるのが特徴で、ビットコインを利用しているあらゆるユーザーのコンピュータに保存されます。

銀行のような特定の管理機関がないため、権限が一箇所に集中することはありません。そのためシステム障害に強く、かつ低コストで金融サービスが運用できると期待されています。

ブロックチェーンの特徴

ブロックチェーンは、従来の中央集権型の仕組みと比べて、どのような違いがあるのでしょうか。ブロックチェーンの特徴を見ておきましょう。

特定の管理者やサーバに依存しない

ブロックチェーンは分散型のネットワークにデータをそれぞれ管理し、複数の端末間で通信を行うP2Pテクノロジーのネットワークで構成されています。P2Pに参加するコンピュータは「ノード」とも呼ばれます。

ビットコインでは、一箇所にシステムを置くのではなく、ユーザー同士でシステムを管理しあう構造になっています。

そのため、特定の管理者やサーバに依存することがなく、1つのノードが壊れたからといって、ブロックチェーン技術を活用するビットコインの取引が停止するようなことはありません。

壊すことがほぼ不可能なネットワーク

ブロックチェーンは一部のデータが削除されても、そのほかのノードに同一のデータが保存されているため復旧が可能です。

ブロックチェーンを完全に止めるには、データを共有するすべてのノードを同時に壊さなければなりません。そのため、事実上、ブロックチェーンのネットワークを破壊することは不可能といえます。

ハッシュ関数でデータをチェーン状につなげている

ブロックチェーンのデータには、ハッシュ関数が利用されています。ハッシュ関数とは、基となるデータから不規則な文字列(ハッシュ値)を生成する関数です。

ハッシュ関数は、生成されたハッシュ値から、基のデータを読み取ることができません。つまり、不可逆性を持つというのが大きな特徴です。

ブロックチェーンでは、前のブロックのハッシュ関数が、次のブロックに含まれています。これを繰り返すことでデータをチェーンのように連結させています。

ブロックチェーンのメリット

ビットコインのためのシステムだったブロックチェーンが、広く活用されるようになり、急成長した理由は、大きなメリットがあるためです。

改ざんがほぼ不可能

ハッシュ関数によって実現しているブロックチェーンは、少しでもデータが変わればまったく異なるハッシュ値が生成されます。

実際にデータが変更された場合には、対象のデータ箇所以降のブロックが変更され、分散されているコンピュータすべてが更新されるので、悪意のある改ざんが行われた場合にはすぐに気づくことができます。

システム障害やハッキングに強い

ブロックチェーンは、分散型のネットワークにデータをそれぞれ管理していることが特徴です。

ブロックチェーンの場合は多数のノードでP2Pネットワーク形成しているため、一部のノードや通信路に障害が生じても、ブロックチェーンネットワーク全体は正常稼働を続け、データの喪失も起こりません。

また、ブロックチェーンは、データを管理している特定の機関が存在しません。権限が一箇所に集中していないので、ハッキングする場合には分散されたすべてのノードのデータにアクセスしなければいけません。そのため、外部からのハッキングに強いシステムといえます。

取引コストが安い

ブロックチェーンを利用した仮想通貨の場合、特定の金融機関を介さないため手数料などのコストが安いことも大きなメリットです。一般的に、海外に現金を送金する場合には、多額の手数料が必要になります。

しかし、ブロックチェーンを活用した仮想通貨を海外へ送金するのであれば、銀行を通さずにユーザー同士が直接送金できるため、最小限の手数料で済みます。



ブロックチェーンの適用分野

幅広い分野に活用されているブロックチェーン。実際にどのように活用されているのか、仮想通貨以外の具体的な活用事例を3つご紹介します。

Mojaloop(モジャループ)

Mojaloop」はマイクロソフト創業者であるビル・ゲイツ氏が立ち上げたビル・アンド・メリンダ・ゲイツ財団と、仮想通貨の1つであるリップルが提携するオープンソース形式のペイメント・プラットフォームです。

Walmart(ウォルマート)

米国に本社を置く世界最大のスーパーマーケットチェーン「Walmart」は、食品管理にブロックチェーンを活用しています。

エストニアのインフラ設備

エストニアは、北ヨーロッパにある人口130万人程度の小さな国ですが、IT先進国として知られています。多くの人が利用しているSkypeもエストニアで開発されました。


エストニアは国家レベルでブロックチェーンを活用する初めての国で、課税システムや登記、医療記録などのインフラ部分にブロックチェーンが使用されています。

その他の適用分野

  • 決済
  • 為替/送金/貯蓄
  • 証券取引
  • bitcoin取引
  • ソーシャルバンキング
  • 海外送金
  • トレードファイナンス (貿易金融)
  • サプライチェーン
  • マーケットプレイス
  • ストレージ(データ保管など)
  • IoT
  • 市場予測/未来予測
  • 公共(投票など)
  • 医療(医療情報)
  • 認証(デジタルIDなど)
  • 資産管理(土地登記等の公証など)
  • 資金調達(クラウドファンディングなど)
  • 寄付
  • ポイント/リワード
  • シェアリング
  • コミュニケーション(SNSなど)
  • コンテンツ(ゲームなど)



ブロックチェーンで使われる技術

ブロックチェーン・テクノロジーの誕生によって、これまで紙ベースで行っていたすべての契約は、ブロックチェーンでの契約に置き換えることが可能です。

ほぼ永続的に維持可能なブロックチェーンの仕組みは、仮想通貨を中心に、商品取引やインフラなど当初想定されていなかった幅広い分野へ導入が進んでいます。 

急成長したブロックチェーンの技術は、企業の決済サービスの運用など将来さまざまなサービスに大きなメリットをもたらすでしょう。

ブロックチェーンは以下のさまざまな技術の組み合わせで実現されています。

  • ブロックチェーンの実現に使われる技術・仕組み
    • 公開鍵暗号
    • トランザクション
    • ブロックチェーンのデータ構造
    • チェーンの繋がれ方
    • コンセンサスアルゴリズム
    • ハッシュ
    • マイニング
    • P2P通信
    • ネットワーク
    • スケーリング問題
    • 匿名化技術
    • セカンドレイヤー
    • スマートコントラクト
    • トークン 等
  • ブロックチェーンに使われる開発言語
    • node.js (JavaScript)
    • Solidity 
    • Go
    • Java
    • Python

ブロックチェーンでアプリ開発

Ethereum(イーサリアム)は、ブロックチェーンを利用した分散アプリケーションを開発しサービス提供を行う際の障壁を取り除くことを目的とした「分散アプリケーションプラットフォーム」です。「スマートコントラクト」や、分散型アプリケーション(DApp)を構築できます。

そのプラットフォームを形作るためのプロトコル定義や実装がオープンソース・プロジェクトとしてグローバルな有志により行われています。

Solidityとは

コントラクト指向言語。Ethereumでは、可読性と生産性が高く、コントラクトを記述することに特化した高水準言語と、それを EVM Code に翻訳するためのコンパイラが幾つか開発されています。その代表的なものとして「Solidity」が挙げられます。

ブロックチェーン開発に役立つライブラリ

「ゼロからブロックチェーンを組み立てていくのは大変そう」と思われた方もいるでしょう。そんな時には、世界中の優れた開発者たちが作成した、高機能なライブラリを使ってみるのがよいでしょう。

ここでは、数あるライブラリの中でも、特にブロックチェーン開発に役立つライブラリを3つご紹介します。

1. Web3j

Web3jは、Javaの技術を使ってイーサリアムベースのブロックチェーンノードを作成するためのライブラリです。開発言語がJavaベースになっているため、Androidアプリへの統合もしやすくなっています。

2. HyperLedger Fabric

HyperLedger Fabricは、Go言語で実装されている、オープンソースの共同開発プロジェクトであるHyperLedger名義で公開されているライブラリです。

3. Blockchain.js

Blockchain.jsは、ビットコインのような合意形成アルゴリズムを含めたブロックチェーンを、JavaScriptでシンプルに作成することができるライブラリです。



ブロックチェーンが学べるスクール

  • TECH ACADEMY(オンライン)
    4週間プラン 139,000円(税別)
    8週間プラン 189,000円(税別)
    12週間プラン 239,000円(税別)
    TechAcademy
  • TECH BOOST(オンライン)
    3ヶ月 299,400円(税別) Web構築等も含む
    ※コースの内、2週間がブロックチェーンを学ぶ期間
    TECH BOOST

  • ブロックチェーン大学校(通学:東京・大阪・福岡)
    ビジネス ビギナークラス            (2時間)   10,800円(税込)
    ビジネス ブロンズコース            (8時間) 64,800円(税込)
    ブロックチェーンブロンズコース(16時間) 108,000円(税込)
    ブロックチェーン大学校

まとめ

ブロックチェーンの学習には、時間をかけてでもブロックチェーンの仕組みと理論を理解した後、実践という流れで進めるといいでしょう。

システム開発においては、新しい技術であり製品が不安定ですので、解決すべき問題を把握し、情報を探し出す能力が必要です。

まだ日本語の情報は不足していますので、新しい技術を調べようとする場合には、どうしても英語の文書で調べたり、コミュニティに参加して聞いたりすることになります。積極的な取り組みが必要です。

シェアする

  • このエントリーをはてなブックマークに追加