情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

ブロックチェーンにできること、できないこと

2016/12/05


今日の問題提起
Q. ブロックチェーンは分散型合意形成アルゴリズムなのか?
Q. デジタルコンテンツの分野においてブロックチェーンが果たせる役割は?


今日はtatarou1986氏の「BitCoinとBlockChainにまつわる誤解ーそんなことはできない」という記事を取り上げます。

BitCoinとBlockChainにまつわる誤解ーそんなことはできない
http://qiita.com/tatarou1986/items/9d994896795a4871dc37

ブロックチェーンは分散型合意形成アルゴリズムなのか?

上の記事で

BlockChainとはようは皆で合意(AさんがBさんにXを渡したという取引記録)を形成していく分散型合意形成アルゴリズムです

とありますが、本当にそうでしょうか? 検討してみましょう。

ブロックチェーンは分散型なのか?

前の記事でBitcoinが分散型であるか否かについて書きましたが、これはブロックチェーンにも当て嵌まります。もう1度簡単に書きましょう。

ブロックチェーンが分散型であるか集中型であるかは、どの水準でブロックチェーンを見るかで変わってきます。

詳細については前の記事(Bitcoinは分散型なのか?)を見ていただきたいのですが、ブロックチェーンは、

  • 組織的分散型の系(アルゴリズム)

であり、

  • 論理的集中型の系(アルゴリズム)

です。

ブロックチェーンは合意形成アルゴリズムなのか?

ブロックチェーンというのは、簡潔に言えばブロック木(block tree)から何らかの信用度(trustworthiness)に基づいてブロックチェーン(blockchain)を決定するアルゴリズムです。

信用度を計算するアルゴリズムとして仕事証明(proof of work: POW)を採用する場合、仕事証明における累積難易度(cumulative difficulty)がそのまま信用度となります。

ちなみに、ブロックチェーンには2つの意味があって、2つ上の段落で太字にしているブロックチェーンが1つ目の意味でのブロックチェーンで、正にブロックの連鎖です。そして、1つ目の意味でのブロックチェーンを決定するアルゴリズム全体自体もブロックチェーンと呼ばれます(あるいは、ブロックチェーン技術とか、ブロックチェーンアルゴリズムといった呼ばれ方をします)。この辺りは非常に紛らわしく、予てより初心者の理解を阻害し、誤解を与えかねない用語法になっていると思っているのですが(実際私も初めてブロックチェーンについて勉強したときには、「なんだこれ」と思いました)、定着してしまっているので今更どうしようもないですね・・・。

さて、ブロックチェーンは組織的分散型の系を前提としたものです。そして、複数の参加者が同じブロック木から同じブロックチェーンを決定するというのが正に合意形成です。

という訳で、ブロックチェーンは合意形成アルゴリズムであると考えて良いでしょう。

そして、この合意形成の仕組みがあるからこそ論理的集中型のアルゴリズムであるということでもあります。

ブロックチェーンはデジタルコンテンツのコピー阻止機構として使えるか?

使えません。

しかし、ネット上ではこの点について誤解している人が多数いるようです。

BlockChainのアルゴリズムはコピーを防ぐものじゃありません.
BlockChainのネットワークから切り離してデータをコピーさえしちゃえばいくらでも複製を作って勝手に配布して楽しむことができます.

全くその通りです。コピー問題に対処するのはDRMの役目です。

BitCoinだっていくらでも複製は作れるんです.勝手に自分でBitCoinを増やすことはいくらでもできます.ただ作っても,それを誰か(BitCoinネットワークに参加している多くの人々)に渡す際に「君は過去,このCoinを誰々に渡してるよね?コピーしてるね?不正してるね?」と拒否されるからやる意味が無いという話です.BitCoinのコピーをつくって自分のWallet内のCoinの数が増えても,それを誰かに渡せなければ全く意味がないのでやる価値がないというだけの話です.

全くその通りです。

BitCoinの複製をつくって,システム外で配布するというのも全く意味がありません.BitCoinというものは,BitCoinのシステム内で配布(取引する)することでしか効力を発揮しません.BitCoinをBitCoinネットワーク外で配布するという行為は全く意味のない行為なのです.

これが正に通貨系が本質的に論理的集中型であるということです。

ブロックチェーンはデジタルコンテンツの権利管理系として使えるか?

さて、ブロックチェーンとデジタルコンテンツに関する論点としてはコピー阻止機構の他に権利管理系があります。折角なのでこれについても検討しましょう。

デジタルコンテンツの権利管理系は版権管理系と利用権管理系に大別されます。

版権管理系はコンテンツを作る側が利用するものです。たとえば、あるコンテンツを制作した会社が別の会社にその権利を譲渡する場合などに使用します。

利用権管理系はコンテンツを消費する側が利用するものです。たとえば、コンテンツの利用権(消費する権利)を購入する場合や、購入したコンテンツの利用権を、自身はもう消費することがないため別の人に譲渡する場合などに使用します。

それぞれについて見ていきましょう。

ブロックチェーンはデジタルコンテンツの版権管理系として使えるか?

使えます。

これに関しては特に大きな問題はないかと思います。勿論、実際に版権管理系を作ろうとしたら細かい問題は沢山出てくるかと思いますが、それらは決して解決不可能なものではないはずです。

ブロックチェーンはデジタルコンテンツの利用権管理系として使えるか?

使えます

しかし、単純にデジタルデータの利用権に関する取引をブロックチェーンに格納すれば良いという訳ではありません。

この点に関しては私は前(2014年3月)からTwitterに書いています(が、あまり見られていないような気がします・・・)。

「デジタル証券によるコンテンツ流通システム」へのリンクが切れてしまっているので、正しいリンクを張っておきます。

デジタル証券によるコンテンツ流通システム
http://www.geocities.co.jp/SiliconValley-SanJose/4431/htmlcache/Digikabu.html

という訳で、私は2014年3月の時点では、ブロックチェーンをデジタルコンテンツの利用権管理系として使うことはできないと考えていました。

そして、「デジタルコンテンツの流通は本質的にコピーフリーであるべきなのである」と結論しました(この結論がtatarou1986氏の「DRMを解除して売れば良いと思います」という主張と同じなのは面白いですね)。

さて、しかしです。話はここで終わりませんでした。一度は不可能だと結論付けたのですが、何度か似たようなテーマを考えている内に、私は不可能という訳ではないということに気付きました。やりようはあったのです。

それが2014年6月でした。また当時のツイートを貼り付けます。

さて、これでは分かりにくいかもしれませんので、具体例を考えましょう。

  • ユミナはとあるブロックチェーン対応音楽配信業者からとある曲を聴く権利を購入した。

この設定で行きましょう。ブロックチェーン対応業者なのでユミナはこの曲を聴く権利をブロックチェーンを使って他人に譲渡することができます。

ユミナが曲を聴く権利を購入したときには何が行われるでしょうか?

  1. ユミナは購入時に業者に対して自身のアドレス(自身が持っているある秘密鍵に対応するアドレス。アドレスはBitcoinのアドレスと同じようなものだと思ってください)を教えます。このアドレスをA1、秘密鍵をPr1、対応する公開鍵をPu1としましょう。

  2. 業者はブロックチェーンを維持しているネットワークにユミナから教えてもらったアドレスA1に曲を聴く権利を設定する取引を放流します。

  3. ユミナは取引が放流されたことを確認します。

  4. 暫くすると、取引がブロックチェーンに格納されます。

  5. ユミナは取引がブロックチェーンに格納されたことを確認します。十分な確証度(confirmation)になったら、ユミナは業者に代金を支払います。

  6. 業者は代金を受け取ったらステータスを支払い済みとします(これでユミナは曲を聴くことができるようになります)。

こんな感じの流れになります。

ユミナが曲を聴きたくなったときには何が行われるでしょうか?

  1. ユミナは業者の配信サーバに曲へのアクセスを要求する。

  2. 業者は適当なメッセージをユミナに与える。

  3. ユミナは業者から受け取ったメッセージを秘密鍵Pr1で暗号化し、公開鍵Pu1と共に送信する。

  4. 業者は受け取った暗号化されたメッセージを受け取った公開鍵Pu1で復号化し、元のメッセージと一致することを確認する。また、ブロックチェーンを参照し、受け取った公開鍵Pu1に対応するアドレスであるA1が曲を聴く権利を所有していることを確認する。確認できたら曲の(DRMで保護されている)データをユミナに送信する。

こんな感じの流れになります。

さて、ユミナが宮瀬未尋ちゃんに曲を聴く権利を譲渡する場合にはどうすれば良いでしょうか?

譲渡の場合はBTCの譲渡と同様にすれば良いだけです。

さて、ここまでの仕組みでコンテンツの利用権管理系は上手く動いているようにも見えます。

しかし、1つだけ致命的な問題が潜んでいます。

それは、秘密鍵の所有者が秘密鍵を公開してしまった場合です。

秘密鍵はブロックチェーンでの権利の保有主体となっていると同時にコンテンツにアクセスするための正に鍵になっています。そのため、秘密鍵が公開されれば、誰でもその秘密鍵に結びついているコンテンツにアクセスできます

これは・・・致命的ですね。

さて、困った。どうすれば良いのでしょうか。

ここで問題なのは秘密鍵の所有者が秘密鍵を公開できるという点です。

それならば、公開できなくすれば良い訳です。

でも、そんなことができる訳がないと思うかもしれません。確かに、完全に阻止することはできませんが、抑止することはできます。それも、ほぼ完全に抑止することができます

具体例で考えましょう。

上記のユミナが曲を聴きたくなったときに行われる手順を次のように変更します。

  1. ユミナは業者の配信サーバに曲へのアクセスを要求する。

  2. 業者は適当なメッセージをユミナに与える。

  3. ユミナは業者から受け取ったメッセージを秘密鍵Pr1で暗号化し、公開鍵Pu1と共に送信する。

  4. 業者は受け取った暗号化されたメッセージを受け取った公開鍵Pu1で復号化し、元のメッセージと一致することを確認する。また、ブロックチェーンを参照し、受け取った公開鍵Pu1に対応するアドレスであるA1が曲を聴く権利及び10BTCを所有していることを確認する。確認できたら曲の(DRMで保護されている)データをユミナに送信する。

つまり、曲を聴くためには口座に曲を聴く権利だけでなく10BTCが入っていなければなりません

別に10BTCである必要はないのですが、要は十分に高い金額のものを口座に置いておくことを要求するのです。

この場合に、曲を聴く権利のみを所有している口座の秘密鍵を公開したらどうなるでしょうか?

曲を聴く権利のみがあっても曲にはアクセスできないため意味がありません。

この場合、秘密鍵を公開して実際に曲にアクセスできるようにするには10BTCもその口座に入れて公開しなければなりません。

この時点で誰でも曲にアクセスできる状態で(10BTCを入れて)秘密鍵を公開する人はほぼいなくなると考えられます。何せ、10BTCも必要になるのですから。

とは言え、世の中には金があり余っていて使い道に困っている人がいるかもしれません。

曲を聴く権利と共に10BTCも所有している口座の秘密鍵が公開された場合はどうなるでしょうか?

この場合もあまり意味がありません。

何故なら、10BTCも口座に入っていたら誰かがほぼ確実に盗むだろうからです。Bitcoinには匿名性があります。注意深く盗めば罪に問われる可能性は極めて低いです。

という訳で、曲を聴く権利と共に10BTCも所有している口座の秘密鍵を公開しても、すぐに10BTCの方は盗まれてしまうでしょう。結果として、すぐに曲にはアクセスできなくなります。

曲を聴く権利が盗まれた場合は、コンテンツ提供側から見れば通常の譲渡と何ら変わりはありませんので特に問題はないです。

このようにすれば、ブロックチェーンをデジタルコンテンツの利用権管理系として使うことは可能です。

なお、デジタルコンテンツの利用権管理系については「暗号貨幣の応用」というページで纏めたこともありました(情報が分散し過ぎですね・・・)。

このページにはデジタルコンテンツの利用権管理系以外にも暗号通貨の応用として昔考えたものが幾つか掲載されていますので参考にしてください。

暗号通貨の応用
http://info-i.net/cryptocurrency-application

まいなんばー

国民全てのマイナンバーデータを保存するストレージを実現するアルゴリズムや,そのストレージに保存されているデータへの適切なアクセスコントロールを実現するというアルゴリズムはBlockChainとは全く別の独立した仕組みとして考えなければなりません.

全くその通りです。

素直にOracle買って中央サーバを永田町に置けば一瞬で解決できるのに,なぜ,わざわざBlockChainでP2Pテクノロジを導入しなければならないのでしょう?エンジニアリング的に全くナンセンスです.

これはちょっと違うかと思います。

中央サーバを置くとそこが単一障害点になってしまい、中央サーバがダウンすればサービス全体が使用不可になってしまいます。

勿論それで構わない場合も多いかと思いますが、それでは拙い場合には、何らかの形で単一障害点をなくさなければなりません。つまり、分散型にしなければなりません。

そして、単一障害点をなくすためにブロックチェーンを利用するということはあり得ます。

ただし、単一障害点をなくすためにブロックチェーンを利用することがコスト的に理に適っているかは分かりません。システムの特性によってもコストは変わってくるでしょう(ブロックチェーンと分散データベースの双方に精通している専門家なら分かるかもしれません。私は分散データベースについてはあまり詳しくないので分かりません。問題提起しておきましょう)。


今日の問題提起
Q. 単一障害点をなくすという用途でブロックチェーンはコスト的に優れているのか?


アクセスコントロールに関してはどのようなシステムを想定するかで全然変わってくるので、そこを明確にしないで考えても仕方がないかと思います。

ブロックチェーンが適切な選択である状況はまずない?

流石に「まずない」というのは私には言い過ぎに思えますが、案外ブロックチェーンの特性がぴったりと嵌まる応用というものはありません。

Bitcoinが世に出てから既に結構な年数が経過しています。もしブロックチェーンの特性がぴったりと嵌まるような応用が沢山あったなら、既にその幾つかは製品レベルにまで到達していても良いはずです。しかし、Bitcoinのような通貨系(通貨系というのは広い意味での通貨系で、たとえば、暗号株式を取引するものなども含みます。それらは本質的には同じものです)以外でブロックチェーンのキラーアプリは未だに出てきていません。

BlockChainは複数の独立したコンピュータが協力して合意を形成するというアルゴリズムです.全てのコンピュータ(ピア)が平等で,特権的な権限を持つピアは一切存在しません.

別にブロックチェーンだからと言って特権的な権限を持つピアが存在してはならないということではありません。特権的な権限を持つピアを有するようなブロックチェーンシステムを構成することは可能です。

しかし、そのことに意味があるのかということが問題となります。

特権的な権限を持つということはシステムの参加者はそのピアを信用しなければならないということです。

それならば非効率的な分散化など最初から行わず、素直にクライアントサーバ型のシステムを構築すれば良いではないかということになってしまう訳です。

(その場合であっても、単一障害点をなくすためにブロックチェーンを利用するという選択肢は残っていることに注意してください)

一般論として,P2P,もっと言えば複数の独立したコンピュータが互いに協調して動作して,特権的なコンピュータが存在しない分散システム-は構築や運用がとても難しく,また利便性も下がります.

長年純粋P2P型のプログラムを書いてきた人間として同意します。

特にP2Pで合意形成を行うのは非常に難しいです。最適なアルゴリズムのプログラムを組めたとしても素直にクライアントサーバ型にしたものよりも効率が悪くなります(悪くなることが多いです)し、アルゴリズムが複雑になるためプログラミング技能の低い人間がプログラムを組めば更に効率の悪いものが出来上がります。場合によっては、複雑過ぎて完成まで辿り着くことさえできないかもしれません。

ブロックチェーンというのはかなり特殊なデータベースなのです。

ブロックチェーンはP2Pで合意形成を行わなければならないので複雑です。

ブロックチェーンは少なくともBitcoinのように互いに信用できない参加者の間で利用する場合には、非常に遅いです。現在の普通のシステムと比べると1万倍程度遅いという主張もあるようです(The dawn of trustworthy computing(この記事はその内取り上げようと思っています))。

A big drawback is that our online and distributed block chain computer is much slower and more costly than a web server: by one very rough estimate, about 10,000 times slower and more costly, or about the same as it cost to run a program on a normal computer in 1985.

ブロックチェーンは少なくともPOWを採用する場合には、多くの計算能力を採掘に費やさなければならないためコストが高いです(この辺りの話は私が以前翻訳した「Bitcoinの隠れた費用」などを参考にしてください)。

最も簡単な問いは、我々が(Bitcoinの保有者として)ハッシュに基づいた安全性のために幾らの対価を支払っているのかということである。その答えは、1年につき、保有Bitcoinの約1割である。あるいは、時価総額で言えば、約17億ドルの保護のために、1年につき、約1億7000万ドルを支払っている。我々は貨幣の価値が減少するインフレーションと取引手数料を通してこの対価を支払っている。

ブロックチェーンには欠点も多いため、ブロックチェーンを基盤としてシステム全体を構築するのは現実的ではありません。大きなシステムの一部で、ブロックチェーンの特性を上手く活用できる部分のみで利用するのが現実的な使い方だと思います。


今日の結論
Q. ブロックチェーンは分散型合意形成アルゴリズムなのか?
A. ブロックチェーンは組織的分散型で論理的集中型の合意形成アルゴリズムである。

Q. デジタルコンテンツの分野においてブロックチェーンが果たせる役割は?
A. ブロックチェーンはデジタルコンテンツの

  • コピー阻止機構として使えない。
  • 版権管理系として使える。
  • 利用権管理系として使える。

pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-bitcoin