こんにちは!てくいのタチキです!
前回「【ブロックチェーン(基礎編)】① ざっくりとブロックチェーンを語ってみる」をおはなししました!本記事では、ブロックチェーンを使用した技術で最も有名な、ビットコインを例にとってブロックチェーンの技術用語を説明をしていきます。
ブロックチェーンをはじめて勉強する方は前回の記事と併せて読んで頂くと、より理解しやすいのでおすすめです!!
目次
ブロックチェーンの技術用語をまとめる
ブロックチェーンとは、複数のコンピュータがネットワーク上でデータを管理する手法です。ブロックチェーンを理解するために抑えておきたい技術用語を以下にまとめていきます。
P2Pネットワーク
P2P(Peer to Peer , ピアー・トゥ・ピアー)ネットワークはクライアント・サーバー型のように中間に管理者が存在せず、中央管理者不在の分散ネットワークを実現します。また、ブロックチェーンはP2Pネットワークで取引したデータをすべて保存しています。
P2Pネットワークは、ネットワークに参加しているコンピュータが同等な立場を持ち、すべてのノード(ネットワークに参加しているコンピュータ機器一つ一つのこと)がネットワークサービスを提供する負荷を分担する仕組みです。つまり、ネットワーク参加者の間に階層がなく、フラットな関係で繋がり合い、取引をすることが可能です。
トランザクション
トランザクションはビットコインシステムの中で最も重要な技術の一つです。トランザクションとは「取引記録」のことを指します。例えば、自分が所持しているビットコイン(通貨単位:BTC)を他の人に送金したということをビットコインネットワークに記録することです。トランザクションには、下図のようにトランザクションの「インプット」と「アウトプット」が存在し、取引を記録します。
上図はトランザクションを簡略化したもので、ビットコインの動きを表したものです。実際はビットコインを送金する場合、トランザクション手数料がかかります。また、上図のように500BTCの中から100BTCだけを送ることはできません。500BTCから100BTCを送る場合は、500BTC全てを送金した後に「おつり」として400BTC自分の財布に送金する形になります。「おつり」と「トランザクション手数料」を考慮すると下図のようなトランザクションになります。
ちょっとおもしろい仕組みですが、トランザクション手数料は自分自身で設定することができます。その手数料が高ければ高いほど、取引の承認(マイニング)優先度が高くなります。
ハッシュ関数
ビットコインではSHA-256というハッシュ関数が用いられます。ハッシュ関数とは入力された値に対して別の値が出力される関数です。ハッシュ意関数は、トランザクション(取引記録)をハッシュで管理していたり、ビットコインシステムの様々なところで使用されています。
ハッシュ関数は、「どんな長さの入力値に対しても同じ長さの文字列を出力すること」「入力値が異なると出力も異なること」「出力値から入力値を推測することが極めて難しい(不可逆性)」という特徴があります。
マイニング
マイニングとは「取引の承認」のことを指します。マイニングを理解するにあたって、まずはブロックチェーンの各ブロックに含まれるデータについて考えていきましょう。ブロック内のデータには「今までのブロックデータ」「今回のトランザクションデータ」「ナンス」の3つに分けることができます。ナンスとは、ブロック生成時に使われる数値であり、マイニングにおいて重要な要素です。
管理者が存在しないブロックチェーンシステムでは取引の正当性を承認する第三者が必要になります。では、どのようにその第三者を決めるのか?その決定方法が「マイニング」です。マイニングは特別な条件のもと、何億回、何兆回とナンスを計算し、その条件に合う値を探すことです。マイニングする人(マイナー)が条件に合うナンスを見つけたときに「マイニング成功」となり、新しいブロックの正当性を保証して、ブロックチェーンにつながります。
下の図からもわかるようにナンスを計算するマイナーは複数人います。マイナーの中から最初にナンスの値を解いた者が「取引の正当性を承認する第三者」となり、新しいブロックを作る権利を取得できます。この流れを「マイニング」といいます。
特別な条件に合う値(ナンス)を探すには、ナンスに入力値を、ランダムに修正しながら当てはめていき、偶然に欲しい値が現れるまで繰り返し行うしかありません。
コンセンサスアルゴリズム
コンセンサスアルゴリズムとは「合意方法」のことを指します。コンセンサスアルゴリズムの中でもビットコインに使用されているPoW(Proof of Work)について説明します。ビットコインシステムには管理者が存在しないので、取引の正当性を保証する「合意方法」が必要になります。コンセンサスアルゴリズムには様々な種類がありますが、ビットコインで使用されているPoWとはどのような方法なのか。ビットコインでは、取引の承認を行う際に多大な計算を要する問題を最初に解いた者に新しいブロックを作る権利を与えています(マイニング)。このように、計算量に応じて取引の承認を行う「合意方法」がPoWの仕組みです。
他の仮想通貨のコンセンサスアルゴリズムには、PoS(Proof of Stake)などが使用されています。PoSはコインの保有量に応じて取引の正当性を承認する権限を与える方法です。
まとめ
・ビットコインで使用されているブロックチェーンシステムは、P2Pを基に作られた電子通貨システムでネットワーク上でデータを管理する手法
・ビットコインでは管理者が存在しない分散管理システムを用いているので、取引の正当性を保証する第三者が必要になります。その取引の正当性を保証するためにPoWという「合意方法」を使用している
・ブロック内に含まれている取引データ(トランザクションデータ)の正当性を確認するためにマイニングが行われます。マイニングが成功すると新しいブロックが生成され、過去のブロックとつながる
終わりに
ブロックチェーンの仕組みについて、なんとなく理解できましたか。今回はビットコインシステムを通して、ブロックチェーンについて説明しました。本記事を理解すれば「だいたいブロックチェーンを理解した!」と言っても大丈夫だと思います。今後も少しづつブロックチェーンのおはなしをさせていただきますね!