2017年8月1日にビットコインが2つに分裂(BTCとBCC)したというニュースが話題となりました。
日本でもビックカメラ全店舗でビットコイン決済に対応するなど、国内でも暗号通貨(Crypt Currency)の注目度が高まりつつあります。

Web界隈でも、決済機能を簡単に追加することができるWebサービスStripeがビットコイン決済に対応し、一般的なホームページにもビットコイン決済を数分で追加することが可能ですとなりました(※)。

※ Stripeのビットコイン取引の成約では1件につき0.5%の手数料がかかります。

しかし、「ビットコインは得体の知れないもの」だと否定的に考えている人がいるのも事実です。
実際、ビットコインを支える「ブロックチェーン」技術は革新的な技術ですが、理解がなかなか追いつきにくい部分です。

他方で、ビットコインが広く世に広まっていくに従い、ブロックチェーンの技術を他の分野でも応用できるのではないかと考え、金融や流通、あるいは契約(コントラクト)の分野などでもブロックチェーンに注目が集まっています。

今回は、ブロックチェーンの基本概要の解説と、実際に簡易的なブロックチェーンを作るためのプロセスをご紹介します。

ブロックチェーンとは

bitcoin.jpeg
Credit: pexels.com

ブロックチェーンは、ビットコインを支える中核の技術です。

実際のブロックチェーンにはさまざまなタイプがありますが、基本となる考え方は以下の図に集約されます。

figure1.png
著者により作成

AさんとBさんの取引情報を、2者間だけで保有するのではなく、分散データベースに記録します。
分散データベースは、受け取った取引情報を自己のデータベースに書き込みます。

figure2.png
著者により作成

この取引情報の記録一つひとつのことを*「ブロック」と呼び、各ブロックにはタイムスタンプと前のブロックへのリンクが含まれています。
この「ブロック」が連続して鎖(チェーン)のように繋がり、理論上は一度記録するとブロック内のデータを変更することができないことから、
「ブロックチェーン」*と呼ばれています。

現在では「スマートコントラクト」と呼ばれる契約の手段やフィンテックなど、さまざまな分野でブロックチェーンの技術が使われており、基本的な構造が分かれば、一般的なプログラマーでもブロックチェーンの技術を構築することは可能です。