いるねすのブログ

働きたくない系SEが無駄に遊んだ記録

Hyperledger Fabric と戯れる part.0

首題について勉強した結果をどこかに纏めておきたかったのだが、適した場所がとくに見当らなかったのでここに残しとく。 あとでより適したどこかに移動するかも。

ブロックチェーンてなーに

ブロックのチェーンである。

ブロックは主に

で構成され、それが一つなぎに続くことでシステム全体における取引履歴などをつくりあげる。

このとき、Block(n-1) のトランザクションを改竄しようとすると、Block(n) にある Block(n-1) のハッシュ値と不整合が起きる。では Block(n) にある Block(n-1) のハッシュ値も改竄しよう、となると Block(n+1) にある Block(n) のハッシュ値と不整合が起きる・・・といったかんじで、改竄がわりと困難になるため、そういった後から改竄とかそういうのが簡単にできないようなもの(それこそ仮想通貨の取引とかね)に使われる。

もちろん上記説明だけだと不十分で、ブロックを作ること自体が膨大な計算コストを要しているため改竄対象以降のブロックを悉く改竄していくのが余計に大変になっているだとか、ブロックチェーンが分散管理されているため一箇所だけ改竄しても意味ないとか、いろいろな理論や仕組みが複雑に絡んで所謂「セキュアな」帳簿を構成することができている。

当然だが俺はその全てを正確に説明できないし知ってもいない。そういうの全部わかってて実際にゼロからそういうのを作れる人は年収2000万とか貰う超一流のブロックチェーンエンジニアなわけで、俺はそうでない年収3桁万の一般的なシステムエンジニアである。ああ、金が欲しい

分散台帳ってなーに

ブロックチェーンで構成した台帳を、分散管理するシステム。実際は分散台帳技術がブロックチェーンの派生らしいのだが、一般には分散台帳技術も含めて「ブロックチェーン技術」て言いがちよね。

分散台帳は、そのネットワークの参加者がそれぞれにトランザクションを検証し、コンセンサスが取れたことを確認して、その後に全参加者の台帳(ブロックチェーン)にトランザクションを追加する。 そうすることによって、各参加者の持つ台帳の整合性が取れ、全参加者が同一の台帳を分散保持していると言うことができるらしい。

ようするにブロックチェーンて何が嬉しいの?

データ構造的に改竄されにくいとか、分散管理による中央集権化の回避だの冗長性だのと色々言われるが、ようするに信頼性が高くなるって事で良いらしい。

ただし、そのために(普通のRDBなんかと比べたら)速度とかは多少なり犠牲になってしまうとのこと。

Hyperledger Fabric てなーに

Linux Foundation が主導するOSSブロックチェーンプラットフォーム 「Hyperledger Project」のうちの 1 つで、コンソーシアム型の分散台帳フレームワーク。 「うちの 1 つ」といってるがコレくらいしか名前聞かない。あとは開発ツール? の Composer はたまに聞くかな程度。

コンソーシアム型てなーに

Bitcoin や Ethereumみたいな(悪意ある奴も含む)不特定多数が参加するもの(パブリック型)に対し、予めお互い信頼しあっている複数の組織だけで利用するものがコンソーシアム型。

特定組織だけの許可制での参加を前提とすることで、パブリック型ほどには膨大な計算を必要としなくて済み、ようするに比較的速いらしい。

また、1 組織だけのプライベート型なるものもあるらしいが、「分散台帳」なのに分散管理しないとはこれいかに? あまり意味なさそうなので興味もなく調べてもいない。

なんで Hyperledger Fabric なの?

仕事で使うと指示されたからである。

もちろん他にもブロックチェーン基盤はたくさんあり、それぞれにメリットデメリット、長所短所、向き不向きなどはあるのだろうが、調べてすらいない。かなしい。

今日はここまで

そう、Hyperledger Fabric とまだ一切戯れてない。