気になるキーワードや製品のコレクション(IT編)

メルマガ、新聞、雑誌などに登場する(増田悦夫の)気になるキーワード、製品を取り上げ、ITの進展をフォローします。

“ブロックチェーンのブロック”とは

2019-07-09 23:28:07 | ブロックチェーン

「ブロックチェーン」のブロックとは、文字どおり、チェーンによって繋がれた個々のブロックのことです。

このブロックには、一定時間内に行なわれた(複数の)トランザクションが保存されています。

トランザクションとは、取引記録などの意味がありますが、データベースなどに関するソフトウェア処理の分野では、「処理単位としてひとまとめにして扱われる関連性のある複数の処理」のことを指します。例えば、データベースに対するレコードの検索、レコードの更新などは、それぞれがトランザクションと呼ばれます。特に、ネットワーク経由で行なわれる場合、オンライントランザクション処理(OLTP:Online Transaction Processing)などと呼ばれます。

時間軸上で、一定時間毎に生成されたブロックが、次々に繋がって構成されたものが、ブロックチェーンとなります。

その際、前後のブロックがどのように繋がっているかですが、通常のソフトウェアで採用されているような、ポインターという次のブロックの先頭アドレスを保持するような方法ではなく、ブロックチェーンの場合、前のブロックに保存された(複数)トランザクションのデータをー方向ハッシュ関数によって圧縮した「ハッシュ値」(注:一方向関数なのでハッシュ値から前のブロックのデータ内容を導くことは困難)を保存することにより関連づけています。

即ち、各ブロックには、(1)「当該時間内の(複数の)トランザクション」と(2)「前ブロック内(複数)トランザクションデータのハッシュ値」が含まれています。

さらに、トランザクションデータのハッシュ値を求める過程で使用される(3)「ナンス(Number used Once)」と呼ばれる数が含まれます。ナンスは、ハッシュ値が予め決められた条件を満たすものとなるまで、ひとつひとつ数字を当てはめてハッシュ計算を繰り返し、条件を満たしたところの数がそのブロックのナンスとして採用されます。なお、ナンスを求めることはマイニングと呼ばれ、求める人や組織はマイナーと呼ばれます。ハッシュ値の条件を満たすようなナンスの値を解析的に求めることが一方向関数という特徴から困難であることを考慮し、あえてこのような処理を強制することで、データの改ざんが容易に受付けられないことを担保するようにしています。ビットコインのような誰もが利用できるパブリック型のブロックチェーンでは、セキュリティを高める等のために「ナンス」と呼ばれる数の導入が意味をもつことになります。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする