CoinprismのPermissioned chain!?Openchainの概要
最近のバズワード、Permissioned chain(ledger)。Permissioned ledgerと一言で言っても色々タイプがあるのです。
ここ一か月程でも、CoinprismのOpenchain、BlockstreamのLiquid、NasdaqのNadaq Linq、そして再活発化してきたOpen Transactionsなど、Blockchainの上のレイヤーに位置するアプリケーションが色々発表されました。ただし、ニュースなどを読んでいるだけではいまいちそれぞれの差がわかりづらいと思うので、今出ている情報でそれぞれの特徴、ユースケース、課題などを概要レベルで考察してみます。個別に説明した後に、もしかしたらオンラインサロンの方で比較、考察記事を書いてみるかもしれません。
今日はCoinprismが発表したOpenchainについてまず概要を説明します。
まずCoinprismとは?
まずCoinprismという会社の簡単な説明ですが、Flavien Charlonという結構業界でも有名な人の会社で、元々Open assetsというビットコインのColored coinのプロトコルを作った会社です。
Open Assetsは、NasdaqやT0などの企業にも現在利用されている、最も実績のあるColored coinの実装だと言えます。Coinprismは1年くらい前にはすでにOpen Assetsをベースにしたウェブウォレット、Androidのモバイルアプリ、APIなどもリリースしており、(口ばっかのプロジェクトも多い中)かなり他社より先行して動くプロダクトをリリースし続ける会社という感じで、実は自分は前から結構好印象を持っていました。
では、そんなCoinprismが先日発表したOpenchainとはどういうものなのでしょうか?
Openchain=ブロックチェーンに最適化されたデータベース?
Openchainはデータベースです。それ自体はブロックチェーンでもなんでもありません。既存のクライアントサーバータイプのデータベースを利用した仕組みですが、ビットコインのブロックチェーンに最適化されたデータベース、とでも言えると自分は感じました。
クライアントサーバー型ということで、基本的に一人、もしくは1社がそれぞれのインスタンスをコントロールするような仕組みになっています。限定された複数の参加者の中でコンセンサスを形成する必要がある、いわゆるコンソーシアム型のPermissioned ledgerなどとは全然違います。
もう少し具体的にどのような構造になっているか説明します。例えば、Starbucksが発行するポイントをOpenchainを使って管理する例を考えてみましょう。
まず、ポイントの発行者であるStarbucksはOpenchain上でサーバーを立てます。StarbucksユーザーはアプリなどからOpenchain上のサーバーにアクセスし、Starbucksポイントをもらったり、場合によっては他のユーザーにポイントを移したりすることができます。ポイントの発行者かつサーバーの管理者、この例ではStarbucksはValidatorと呼ばれます。ビットコインなどの不特定多数の匿名のマイナーが送金を承認する仕組みとは違い、Validatorが自由にバランスを付け替えたり変更したりすることができます。ここまでは今までの仕組みと何も変わりません。
違いの一つは、Validatorが管理するOpenchain上の送金記録(レジャー)はObserver(監査人)という外部機関に公開され、チェックされるということです。既存のデータベースの仕組みより透明性が高いと言えます。Observerには送金を変更したりする権限はありませんが、Validator(この例だとStarbucks)が不正を働いた時などにそれを発見し、告発することができます。
もう1つのOpenchainの大きな特徴は、Openchain上の送金記録はハッシュされ、10分に一度ビットコインのブロックチェーン上に記録されるということです。(アンカリング)Openchainはビットコインなどと同様の秘密鍵、公開鍵暗号、電子署名の仕組みを利用しており、例えばStarbucksのOpenchain上での取引もビットコインの仕組みのように公開鍵、電子署名などが自動的に振り分けられています。(ユーザーはそれを意識する必要はないですが)
Openchainではそれぞれの送金記録のハッシュがまとめられ、10分毎に1つのハッシュとしてビットコインのブロックチェーンに記録される仕組みになっています。やっていることはFactomというプロジェクトに近いですね。
ざっくりとした全体図はそんな感じです。別にそこまで複雑な話ではないのですが、Openchainの上記のような仕組みの強みは何なのでしょうか?
Openchainの強み
- オープンソースですでに稼働している。
他のPermissioined ledger系のプロジェクトがクローズなのに対し、Openchainはすでにオープンソースで公開されており、しかもすでに稼働しています。まだ構想段階のプロジェクトが多い中で、これは大きな強み、差別化要因になると思います。 - データベース処理のスピード、コストメリット
基本的には既存のデータベースの仕組みを利用しているので、送金は無料かつ高速です。秒間何百以上のトランスアクションをさばくことも出来ます。 - Validator、Observerの絶妙な関係
上記の例ではStarbucksを使いましたが、基本的にValidatorはポイントやコインの発行者がなることになります。なので、元々不正を行うインセンティブがあまりないですし、不正をしたとしてもObserverに通報される可能性があるので、不正がインセンティブ的に起きにくい構造になっていると言えます。 - 柔軟なPermissionコントロール
Validatorはアカウント(ユーザー)ごとにアクセス権限を変更することが可能です。最も緩い条件では、ビットコインなど同様に半匿名でOpenchainを利用させることも可能ですし、ユースケースによってはOpenchain上でKYC/AMLなどをコントロールすることも可能です。Validatorのニーズ次第です。 - ブロックチェーンへのアンカリングで改ざん不能性付与
上記で説明した通り、Openchain上の送金記録は10分に一度ビットコインのブロックチェーン上にも記録されます。つまり、ブロックチェーン上に記録された過去の送金履歴の記録が証拠のようになり、後から送金記録の改ざんを行おうとしたり、抗議したりするのが難しいという特性が得られるということです。 - マルチシグの仕組みを利用することで、ビットコインやColored coinをOpenchainで高速トレードすることも可能
少し難しい話で長くなってしまうので、深くは説明しませんが(質問あればコメントでお願いします)、マルチシグの仕組みを使ってビットコインやColored coinなどをエスクローさせておくことで、いわゆるSidechainのようにコインをOpenchain上に移し、そこで高速トレードのレイヤーとして利用することが可能です。ブロックチェーン上のトランスアクションのコストやスピードなどの課題を、ある程度のセキュリティーを担保しつつ解決することが可能としています。Colored coinでも行けるというのは結構大きなことで、ブロックチェーン上に株式として発行したColored coinを、Openchain上でユーザー間で高速トレードさせたりすることが出来るようになります。
では、逆にOpenchainの課題、限界はどこらへんにあるのでしょうか?
Openchainの課題、限界
- Validatorの権限が強い
Validatorは少なくとも10分間の間は送金記録を変更したりいわゆるやりたい放題の状態にすることが出来たり、基本的にValidatorへの権限が強い(まあデータベースなのでその通りなんですが)構造になっています。ユーザーとしてはValidatorにある程度の信頼がおけないと、そもそもこのOpenchainのような仕組みを使おうとは思えないかもしれません。 - 攻撃の対象になりやすい(Single point of failure)
クライアントサーバーのデータベースということで、今まで通りもろにハッキングなどの攻撃の対象になりやすいと思います。送金記録を10分に一度ビットコインのブロックチェーンに記録することで、残高改ざんなどにはある程度の抵抗力があるとは考えられますが、結局サーバーへの攻撃でシステムが使えなくなったりする可能性は大いにあります。 - Observerへの信頼
ObserverはValidatorの送金記録のコピーを監査すると言いましたが、Observerは誰がやるのか、Observerを信頼する根拠はどこにあるのか、という課題が出てきます。Observerは例えばStarbucksのユーザーが自主的にすることも可能ですし、Coinprismによれば最終的には会計監査会社的な第3者機関がObserverになるはずだとコメントしています。ただし、それは結局Observerを信頼しなくては成り立たず、例えばValidatorとObserverが結託している可能性もゼロではありません。(というかインセンティブ的には大いにありえる)Observerを複数にしたりすることである程度問題を緩和できる気もしますが、結局信頼という概念が必要になってきます。 - Openchainインスタンスの乱立
例ではStarbucksを上げましたが、それぞれのポイントシステムがそれぞれのインスタンスを立ち上げ、Validatorになるような形になります。Starbucks chain、Tully's chain, Dotour chain、みたいな形でPrivateなChainがたくさん出てきたとしたら、Chain間のポイントの移動などには摩擦が生じる可能性があります。
(これを乗り越えるために、マルチシグのエスクローとSidechainのような利用が有効とも考えられますが、Private Chainの乱立は基本的にはリスクとコストになりえると自分は思ってます) - Openchain利用の障壁
ObserverがいなくてもOpenchainを利用することは可能ですが、そうすると既存のデータベースを使うのとあまり大きな差はない気がします。結局Openchainが意義をもつにはObserverを引っ張ってくる必要がありますが、上述した通り信頼のおける第三者機関に依頼するには相応のコストが発生する可能性が高いです。そうすると、個人デベロッパーなどが使用するには少しハードルが高くなってしまいそうです。
ざっと考えると以上のような課題が考えられます。
まとめと個人的所感
ブロックチェーンに最適化されたデータベースということで、既存のデータベースより透明性が高く、またビットコインのブロックチェーンへのアンカリングをすることで、高速、低コストトレード、送金を可能にしつつ、セキュリティーを向上させ、信頼の必要性を軽減した仕組みだと言えます。
また、今回深くは考察しませんでしたが、Sidechainのような形で、特にColored coinを利用したデジタル有価証券の高速トレードレイヤーの形で利用するのには中々面白いと個人的に思いました。しかもすでに稼働しているので、その上で試験運用したりも出来ますし、オープンソースなのも含め他のPermissionied ledger系のプロジェクトより一歩先んじていると正直思います。
課題もいくつか挙げましたし、別にOpenchainが革命的な技術だとは言えませんが、ビットコインやColored coinなどが現実的に抱えている課題(コスト、スピードなど)に対する一つの現実的解決策としてはありかな、とも思いました。ブロックチェーン上でデータベースを立てて運用するアーキテクチャを採用しているプロジェクトは、Openchainを検討する意義はあるのではないでしょうか。
具体的に言えば、例えばオフチェインのサーバー上で少額送金をさばいているChangeTipは、Openchainを使うメリットは大いにあると思います。
また、Nasdaqのようにすでに大量の証券などを抱えるプラットフォームはOpenchainのような仕組みを使い、ブロックチェーンのセトルメントレイヤー、Openchainの高速トレードレイヤーと言った形で運用するのは適した利用方法だと考えます。NasdaqのLinqについても後ほど説明しますが、NasdaqはOpen Assetを利用しているので、そもそも最初からもろにOpenchainで試験運用してみてもよかった気がします。まあそうすると提携しているChainが涙目になりますが笑
というわけでOpenchainの概要説明でした。Sidechainの部分など長くなってしまうので説明しきれない部分もありましたが、全体の構図としては以上で十分かな、と思います。必要あれば後で追加で記事を書くかもしれません。
それでは。
【参考にしたソース】
Coinprism releases an open source ‘transaction chain’ » Brave New Coin
他にも検索すれば色んなメディアに紹介されていますが、上記2つ(特にポッドキャスト)が参考になりました。英語聞ける人はポッドキャスト聞けばより詳しい部分も理解できると思います。
※※※
このブログではトークンを使った実験として、寄付+トークンという切り口で実験をしています。この記事が役にたった、面白かった場合は、IndieSquare WalletなどのCounterparty対応のWalletからビットコインで下記のアドレス宛に寄付してください。金額に応じて独自トークン(CNPCOIN)を元アドレスにお返しします。
CNPCOINを集めると、一部の人に限定公開している自分のメルマガや英語のカスタマーサポート連絡補助+αなどに使えます!出来ること一覧と値段はこちらのエクセルシートをご確認ください。
また、寄付金額により、お返しのCNPCOINのレートは変わっていきます。(初期に応援してくれる人ほどインセンティブが)最新のレートについてはこちらのスプレッドシートで確認できます。
詳しくはサイドバーの「CNPCOINについて」というセクション内の記事で説明しています。
1ABG119jVm2jRw6sz4ewurc5jFRJkwu6aj