このページはブロックチェイン環境の一つであるHyperledger fablicのドキュメントの日本語訳です。
参考用ですので、ホントの事を知りたい人は本家webへどうぞ。
ここでは
keyconcept - introduction
を訳してあります。
イントロダクション
Hyperledger Fabric は高い次元のスケーラビリティ、柔軟性、回復力、秘匿性を提供するモジュラー構成に支えられた分散台帳ソリューションのためのプラットフォームです。異なったコンポーネントをプラグ可能な実装をサポートし、経済システムにある複雑な込み入った問題に適応するために設計されています。
Hyperledger Fabric は独自の柔軟性・拡張性のあるアーキテクチャを提供しており、他のブロックチェインとは一線を画しています。将来の企業向けブロックチェインの構成には、完全に精査されたオープンアーキテクチャであるHyperledger Fabricがそのスタートポイントとなるでしょう。
最初に勉強される方は、ブロックチェインがHyperledger Fabricの特定の機能とコンポーネントによりどのように動くのかという知識を高めるためにこれから示す内容を読む事をお勧めします。
よく理解したなら、– あるいは既にブロックチェインとHyperLedger Fabricについてよく知っているのであれば、– getting_started
に進んでください。デモや技術仕様、APIなどを確認する事が出来ます。
ブロックチェインとは?
分散台帳
ブロックチェインネットワークの中心はネットワーク内で行われたすべての取引を記録した分散台帳です。ブロックチェイン台帳は、ネットワークに参加していると同にその維持にも協力している多くの参加者に対してくまなく複製されているため、分散型と言われています。
分散化と協力は、実際の社会でのサービスやモノの交換のためのビジネスのやり方を反映した強力な特質です。
分散化と共同作業である事に加え、ブロックチェインに記録される情報は追記のみ可能で、一度でも台帳に加えられた取引は改訂不能であるという事を保証できる暗号技術を使っています。
この普遍性の特長は参加者が事実と異なる情報に変えられていないことを確信できるため、簡単に情報の出所を確定することが可能となります。このため、時々ブロックチェインはsystems of proof(立証組織)と説明されています。
スマートコントラクト
一貫した情報のアップデートをするために、また、すべてのホストの台帳機能(取引、問い合わせなど)を動作させるため、台帳への管理されたアクセスを提供するsmart contracts(スマートコントラクト)というものがブロックチェインで使われています。
スマートコントラクトは 情報を要約しネットワーク上にわたってシンプルに保つためだけの中心となるメカニズムというだけでなく、参加者にある側面での取引を自動的に実行することを可能にしています。
たとえばスマートコントラクトは、品物に対する送料をいつ到着したかという事により変更する規定として作成する事が出来ます。両方の参加者で合意された規定と台帳への記載により、品物が到着すればしかるべき資金が自動的に所有者を変更します。
コンセンサス(合意)
ネットワーク全体にわたって台帳記載を同期させ続けるプロセス、つまり、取引が適切な参加者により承認された場合のみ台帳がアップデートされる事が保証され、またそのときに台帳がアップデートする事、同じ取引が同じ順番でアップデートすること、をコンセンサス(合意)と呼んでいます。
台帳、スマートコントラクト、コンセンサスについてはまた後で詳しく勉強する事にします。
今のところは、スマートコントラクトによりアップデートされ、コンセンサスという共同プロセスを通して矛盾なく同期されている共有、自己複製型取引システムだと考えてもらえば良いでしょう。
ブロックチェインはなぜ有益なのか
現在の記録システム
現在の取引ネットワークは、ビジネス記録が保存され始めたときのネットワークがわずかに更新された物にすぎません。
ビジネスネットワークのメンバーはお互いに取引をしますが、別々の取引記録を維持しています。
彼らが取引しているものは、その所有権を証明するタイトルを所有していることが確かな物を商売として売っているということを証明するために、販売ごとにそれらの出所が確立されなければなりません。それは16世紀のフランドルのタペストリーであっても、今日のセキュリティであってもです。
残したものはこのようなビジネスネットワークです。
最新の技術はこのプロセスを石のテーブルとペーパーフォルダーからハードディスクとクラウドに移してきました。しかし、そこに存在する構造は同じです。
ネットワーク参加者を識別するための統一された管理システムはありませんし、出所を立証する事は、安全な取引をするために数日が必要なほど非常に手間がかかり(世界規模ではそのボリウムは数十億ドルになります)、契約書はサインされ人手で実行される必要があり、そしてシステムのすべてのデータベースは個別の情報を保持するため単一障害点が発生します。
現在の亀裂の入った情報と手順を共有する手法では、ビジネスネットワーク全体の記録のシステムを作ることは不可能です。たとえ透明性と信頼がはっきりしていたとしてもです。
ブロックチェインとの違い
「モダンな」取引システムによって代表されるような非効率なラットの巣の代わりに、ビジネスネットワークが身元を保証し、取引を実行し、データを保存したとしたらどうでしょう?
財産の出所を立証する事が取引履歴を見ていくだけで確定するとしたらどうでしょう?それは一度だけ書き込めて、変更不可能であることにより信頼できます。
そのようなビジネスネットワークはこんなように見えるでしょう:
これがブロックチェインのネットワークです。すべての参加者は自分自身が複製された台帳のコピーを持っています。共有される台帳の情報に加え、台帳をアップデートする「手順」も共有されます。現在のシステム、参加者が自分の プライベート なプログラムを使って プライベート な台帳をアップデートするのとは違って、ブロックチェインシステムでは 共有された *プログラムが 共有された 台帳をアップデートされるために使われます。
共有された台帳を通してそのビジネスネットワークを同調させる能力により、ブロックチェインネットワークは、プライベートな情報と処理における信頼と視認性を改善することにかかる時間、コスト、リスクを削減する事ができます。
ブロックチェインが何か、なぜ有用なのかという事がおわかりいただけたとおもいます。
重要な詳細事項がほかにもいろいろあります。しかし、それらはすべてここで述べた基礎的なアイディアである、情報と処理を共有する、ということに関連しています。
Hyperledger Fabricとは何か?
Linux ファンデーションはHyperledger の資金提供を2015年に産業をまたいだブロックチェインの発展のために開始しました。一つのブロックチェイン標準を定義するよりも、これはコミュニティプロセスを通してブロックチェイン技術を開発していくことにより恊働アプローチを支援します。(オープン開発を支援する知財権と鍵となる標準を採用する事で)ーーー(ここはうまくやせていません。原文は以下)
Rather than declaring a single
blockchain standard, it encourages a collaborative approach to developing
blockchain technologies via a community process, with intellectual property
rights that encourage open development and the adoption of key standards over
time.
Hyperledger FabricはHyperledgerのなかのブロックチェインプロジェクトの一つです。
ほかのブロックチェインと同じように、台帳があり、スマートコントラクトを使え、参加者自身により取引を管理するシステムです。
Hyperledger Fabricがほかのブロックチェインシステムから優遇されている点は、それがプライベートで、許可を受けた(permissioned)という事です。
ほかのブロックチェインネットワークが認証(ネットワークに参加できる資格に合致している人を許可すること)に使っている“proof of work”ではなく、Hyperledger Fabricネットワークはメンバーをメンバーシップサービスプロバイダを経由してネットワークに参加させます。
Hyperledger Fabric はプラグ脱着可能なオプションを幾つか提供しています。台帳データは複数のフォーマットで保存する事が可能で、コンセンサスのメカニズムはオンオフでき、異なるMSP(Menbership Sevice Provider)をサポートしています。
Hyperledger Fabricはチャンネルを作る機能を提供しています。これは利用者のグループが分離した取引台帳を作成する事を可能にします。
これは参加者の一部がコンペジターであると考えられ、たとえば、ある参加者に特別価格を提示してその他には提示しないというような、全ての取引をすべての参加者に知られたくない場合にとても重要なオプションとなります。
もし、二人の参加者がチャネルを作った場合、この参加者のみが当該チャネルの台帳のコピーを保持します。
共有台帳
Hyperledger Fabricはworld stateと transaction log と呼ばれる2つのコンポーネントから構成される台帳サブシステムがあります。それぞれの参加者は参加しているすべてのネットワークそれぞれに1個のそのネットワークの台帳コピーを保持します。
world stateコンポーネントはある指定された時刻での台帳の状態を説明します。これは台帳のデータベースです。
transaction logコンポーネントは最新のworld stateに示された状態になるに至った取引のすべてを記録しています。これはworld stateのアップデート履歴です。台帳はしたがって、world state データベースとtransaction log履歴の組み合わせとなります。
台帳はworld stateのための交換可能なデータ領域を持っています。標準ではこれはLevelDBです。取引ログはブラグイン可能である必要はありません。単純にブロックチェインネットワークで現在使われている台帳データベースの前と後の値を記録します。
スマートコントラクト
Hyperledger Fabricのスマートコントラクトはchaincodeで書かれていて、ブロックチェインの外にあるアプリケーションから、アプリケーションが台帳に作用する必要があるときに発動されます。
多くの場合、chaincodeは台帳のデータベースコンポーネント、world state (例えば問い合わせとか)だけに作用し、transaction logには作用しません。
Chaincode は幾つかのプログラム言語によって実行されます。現状サポートしている言語はGo <https://golang.org/>
です。Javaやほかの言語でのサポートは将来のリリースで対応します。
プライバシー
ネットワークの要求によりますが、BtoBのネットワーク参加者は、どれだけの情報を互いにシェアするかという事についてかなり神経質になる事が考えられます。その他のネットワークではプライバシーは最重要課題ではないでしょう。
Hyperledger Fabricは、プライバシーが重要管理項目であると同時に多くの部分でオープンなネットワークを(channelsを使って)サポートする事が出来ます。
コンセンサス
取引は、たとえそれがネットワーク内の違った参加者同士の違う取引であっても、台帳にそれが起きた順番に書き込まれなければなりません。このようにするためには、取引の順番が確立され、エラー(あるいは悪意の)が台帳に挿入されるような悪い取引が拒否される機構が動作する必要があります。
これは完全にコンピュータサイエンスによって研究されていて、それを実施する方法はそれぞれに違ったトレードオフを持ちつつ、いくつもあります。例えばPBFT(実用的ビザンチン・フォールトトレラント・アルゴリズム)は不正な出来事があってもコピーを同一にするためコミュニケーションをするファイル複製のための機構を提供します。
一方で、ビットコインでは、順序付けはマイニングという手続きを通して発生します。マイニングは暗号パズルを解くレースをコンピュータで競わせることにより、すべてのプロセスを順序立てて組み立てるための順番を定義します。
Hyperledger Fabricはネットワークを開始しようとしている人が参加者の間にある関係性をうまく表しているコンセンサスメカニズムを選ぶ事が出来るように設計されています。
プライバシーと同様、必要性には多様性があります。ネットワークによってはピアツーピアよりも関係性が高度に規制されたものもあるでしょう。
Hyperledger Fabricのコンセンサスメカニズムについては、ほかの文書でもっと学習する事になります。コンセンサスメカニズムはSOLO, Kafkaを含みます。SBFTについてはすぐに拡張される予定です。