2019年12月3日火曜日

Hyperledger Iroha

Hyperledger Iroha。特徴は何よりも日本企業であるソラミツがコードを提供しているところだ。日本語での文書もある程度提供されているから理解しやすい。Hyperledgerのページでは、「Mobile application focus」という言葉で紹介が書かれているとおり、iOSやAndroid上でクライアントアプリを作るためのライブラリが提供されている。

Irohaで扱うユースケースの一つとして、教育やヘルスケア分野における証書、つまり、Indyと同じユースケースが示されている。Irohaではブロックチェーンにアカウントの情報をkey, value形式で登録することができる。また、アクセス制御機能を持たせることで、あるアカウントに対して読み込みもしくは書き込みの権限を与えることができる。これらを使って、大学が卒業生のアカウントに卒業証明を書き込んだり、その卒業証明を企業に提供することができる。資産移転やサプライチェーンといったブロックチェーンのよくあるユースケースに対応できるように、整理されたシンプルなAPIが提供されていることが、特徴となるだろう。

構成はOrderingサービスが存在しており、Fabricに似ている。コンソーシアムを組む上でのツールとして有効なブロックチェーンとなるだろう。特に、ドメインを使ったアクセス制御が容易にできるところは役立つように思う。

Hyperledger Indy

またまた、Hyperledger、今回はHyperledger Indyについて書く。Hyperledgerのページには端的にDecentralized Identityと書かれているとおり、分散アイデンティティのためのブロックチェーンである。さまざまなコード (スマートコントラクトと呼ばれる) を実行できることで汎用的な利用が可能であるFabricやSawtoothとは異なり、特定領域用のブロックチェーンになる。米スタートアップのEvernym、Evernymが中心となり設立したSovrin Foundationが2017年にコードを寄贈することでスタートしている。現在、Hyperledgerの中で最も勢いがプロジェクトだ。Indyの暗号ライブラリ部分が切り出されたHyperledger Ursa、IndyのWalletアプリ部分が切り出されたHyperledger Ariesとプロジェクトを増やしながら開発が進められている。

Identityという言葉は非常にピンとこない言葉だ。人はさまざまな属性を持ち、それがその人のIdentityを構築していることになる。分散アイデンティティで取り扱われるのは、その人の属性情報、名前を始めとして、住所や電話番号、生年月日や学歴、資格、...、その人にまつわるすべてである。ということは、Indyではブロックチェーンに人の属性を保存すると考えると、それは間違いだ。Indyではプライバシに力点を置いており、ブロックチェーン上に属性情報を置くのをよしとしない。

HyperledgerのCase Studyで挙げられているSony Global Educationの例では、Fabricを使用しており、ブロックチェーンには教育に関する属性 (学位・成績証明書など) のハッシュ値を保存している。しかし、Indyでブロックチェーンに保存するのは、DID (Decentralized Identifier) と呼んでいる属性情報を管理するサービスの識別子と公開鍵(検証鍵)およびアクセス方法である。IdentityとIdentifierは似ているのに、全く違う意味を持つのでややこしい。

IndyではブロックチェーンにDIDが登録され、かつ、トラストを示すタグ (トラストアンカー)が付いていること、つまり、ブロックチェーンにトラストアンカーとしてどのサービスを登録するかを決定することがトラストのルートとなる。そういう意味では、認証局(CA; Certification Autority) と同じだ。認証局を使う場合は、審査した上でサービスに電子証明書を発行し、ユーザーはサービスにアクセスするときに電子証明書を検証することで信用を確保できる。それに対して、Indyでは審査した上でサービスのDIDとトラストアンカータグなどをブロックチェーンに登録、ユーザーはサービスにアクセスするときにブロックチェーンを確認することで信用を確保する。

学歴や資格情報がデジタル化されるのは間違いないが、それをブロックチェーンを利用したほうがいいかは別問題だ。中国ではCHSI (http://www.chsi.jp/) を使って学歴・学籍の確認をすることができる。中央型で作ればシンプルだ。日本では、経産省が学位・履修・職歴証明・研究データの記録・保存をすることをテーマにブロックチェーンハッカソン2019を開催したが、この先に未来はあるのか。

2019年12月2日月曜日

Hyperledger Sawtooth & Grid

引き続きHyperledgerについて書く。今回は、Hyperledger Sawtoothについてである。2016年にIntelがソースを寄贈して以降、開発が続いているプロジェクトである。Intelのハードウェア(SGX)とセットで完全な動作が可能となる独自コンセンサスアルゴリズムPoET (Proof of Elapsed Time) が特徴となる。ビットコインのコンセンサスアルゴリズムPoW (Proof of Work) のようにわざとコンピューティングパワーを使うような処理をする必要はなく、コンピューティングパワーをあまり使わずにコンセンサスが取れる。なお、開発環境用にSGXの代わりにシミュレータが提供されているが、不正は容易なので実用的ではない。

信頼できるシステムの実現には、何らかトラストのルートが必要である。Fabricの場合は基本的にノードの提供者を限定することでトラストを実現している。Sawtoothはプロセッサによって実現するというIntelらしい仕組みになっている。Intelの戦略は昔から明確だ。プロセッサを売るために、その有効性が見えるソフトウェアやソリューションを提供してくる。Intelはフィールドワーク含めさまざまな調査をした上で、プロセッサの使いみちについて全方向で提案してくる。利益が莫大だからできるのか、そこまでやるからこそ莫大な利益をあげられるのか。

なお、開発が進められた結果、PoET以外のコンセンサスアルゴリズム(Raft/PBFT)も提供されており、Intelプロセッサなしでも利用可能だ。トラストについてはFabric同様にノードの提供者を限定していることから生み出されていることになる。そのため、使い方によってはできることはFabricと同じだ。

さらに、IntelはCargill、Bitwise IOと共にブロックチェーン上でサプライチェーンを実現するためのツール群を提供するフレームワークとしてHyperledger Gridを提供している。企業向けブロックチェーンの活用はなかなか悩ましい。企業間で連携するシーンと言っても、力関係があるような関係では別の仕組みのほうが効率的だからだ。例えば、トヨタと部品メーカーでは、トヨタが他の部品メーカーにトヨタが作ったシステムに情報を入力させればよい。実際、そうなっていて何の問題もないし、透明性も結局トヨタ次第になるだろうから、効率的だ。とは言ってもそういう関係ばかりではないので、有望な領域はサプライチェーンということになるのだろう。アメリカの小売ターゲットはGridを使って管理するようだ。なお、最大手WalmartはFabricを使う。これらも、複数の小売でコンソーシアムを組むところまでいかないと、ブロックチェーンを使う意味はあまりなくなりそうに感じる。

Hyperledger Fabric

企業向けのブロックチェーンのオープンソースというとLinux FoundationによるHyperledgerである。2016年にIBMが寄贈したコードがHyperledger Fabricとなって以来ずっと拡大を続けており、2019/12/2現在で、Hyperledgerのページを見ると、15のプロジェクトが存在するという驚きの状況である。

ブロックチェーンはガートナーのハイプ・サイクルでは幻滅期に位置づけられ、2021年には市場に浸透していくことを予測している。実際、多くの企業が実証実験を行い幻滅している状況で、一部のサービスについては提供が進んでいる状況にあることを考えると、これは正しいのだろう。しかし、多くの場合、ブロックチェーンでなくてもいい、むしろ、ブロックチェーンを使わないほうが効率的なシステムが作れるはずなのにブロックチェーンをわざわざ使っているように感じられる。

ブロックチェーンが注目されるようになった原点であるビットコインは、誰でもコンピューティングパワーをノードとして提供することで仮想通貨の管理システムの一部の提供者になれるという形での非中央型を実現した。提供者は提供するコンピューティングパワーに応じて仮想通貨を得られるというインセンティブを得られるように設計することで、裏切りが起こりにくくし、かつ、裏切りを行うには提供するコンピューティングパワーの過半を得る必要があるようになっている。そのことから、トラストを生み出しているとも言われており、これはすごい発明である。将来的には、マイニングの際に得られる仮想通貨が減り最終的にはなくなること、ブロックチェーンを保存するために必要とするディスク容量がどんどん拡大していくこと、仮想通貨の取引が増えた場合のスケーラビリティの実現などの問題があるものの、何とかしていくだろう。

一方、Hyperledger Fabric、これは、IBMのキーワードをビジネスに繋げるうまさを感じずにはいられない。コンソーシアムチェーンと言われているが、基本的に信頼できる複数の企業でブロックチェーンを管理することを想定している。したがって、トラストを生み出す必要はない。次に、ビットコインではクライアントからの要求(トランザクション)を全ノードで共有するのに対して、細かいことを言うと、FabricではOrderingサービスと呼ばれるサービスが全トランザクションを受け取って、ブロックに取り込む順番を決めて他のノード群に渡す。つまり、Orderingサービスという中央があるわけで非中央型も実現していない。したがって、Fabricはビットコインのすごさを何も実現していないように感じられる。しかし、Fabricはコンソーシアムを作るためのツールである、と考えると、見え方は変わってくる。コンソーシアムに所属する全企業が同じコードやデータを管理することができること、それは企業間の連携のあり方を変える可能性を感じる。