Software Transactional Memo

STM関係のことをメモっていこうと思います。

Re: ブロックチェーンでそんなことはできない

はじめに

 


chike0905.hatenablog.com

この記事は大変楽しく拝読したが、ブロックチェーン素人ながら気になる点がいくつかあったので指摘する。要旨は以下である。

  • タイトルで「できない」と言ってる割には「できるけど筋が悪い」だけに見える
  • 研究中で結論が出ていないトピックを「できない」と呼ぶのは違うのではないか
  • 文体が学術めいている割には用語の使い方がやや雑に見える
  • ブロックチェーンに「不可能」な事にフォーカスすべき
    • 浮足立つ界隈に対して問題提起するならば的を絞って指摘すべきで、容易に解決可能そうに見えてしまう批判はかえって混乱を招く恐れすらある

ノードの独立性

各自で検証し、他のノードに依存するプロセスは本定義のブロックチェーンの動作の中には含まれない。 従って、他のノードに何かを問い合わせる必要もなく、信頼する第三者などは存在しない。

この部分はあまり正しく理解している人が少ない所で、ブロックチェーンの参加    ノードは各自降ってきた新規ブロックが条件を満たす限り受け入れるし、後からもっと正しそうな新規ブロックが降ってきたら過去に受け入れたブロックを無慈悲に捨てて乗り換える。

この中で参加ノードはそれぞれ独立して自分のルールで「データベースとしての自分」が実行する次のredoログを決定しているに過ぎない。ここの面白い点は、redo処理はそれぞれの参加者が独立して行う動作なのでチェーンの中で完結する動作しか基本的に行えない事である。仮にここで「Googleで『あばばば』で検索して出てきた件数だけAliceからBobに送金する」なんて処理が許されたら全参加ノードがGoogle検索にリクエストを飛ばすし、件数が全員から見て一貫している保証は無いので送金額が一致しなくて復旧不能な矛盾が発生する(ので永劫許されないだろう)。チェーンの中で完結する処理だからこそ全ノードで一貫した結果が得られるし、チェーンの巻き戻しも出来るのである。「副作用が無い操作しか出来ない」という言い方もできるかも知れない。

コンセンサスについて

ここでは筆者は「コンセンサス」という言葉を持ち出したくない。 というのも、ブロックチェーンにおけるPoWを用いたコンセンサス(と呼ばれるもの)はコンセンサスなのかということに大いに疑問が残るからである。

ブロックチェーンがコンセンサス問題を解いていない」という批判はこんな長い文章で書かなくても「ブロックチェーンが解いたのはナカモトコンセンサス問題に過ぎない」の一言で説明可能である。技術用語として既に合意された方の「コンセンサス問題」では過去の合意は覆らないという条件を満たす必要があるが、ナカモトコンセンサスはそれを満たしていない。この議論にロングマンの辞書の出番はない。もっと言うとPaxosやらRaftのコンセンサスはロングマンの辞書の定義と違って「グループのメンバー全員の賛同」までは要求していないのでそもそもズレている。

ブロックチェーン自体の機能とは

Bitcoinはそのブロックチェーンに仮想通貨の発行、送金を示すデータを記録するアプリケーションであるし、Ethereumはその上にプログラムとその実行を記録するアプリケーションである。 とりわけEthereumを用いることで、任意のアプリケーションを構築可能であるが、それはEthereumの機能であり、ブロックチェーン自体の機能ではない。

僕も定義にはうるさい方であるがここは別に良いんじゃないかと思う。「インターネットの普及に伴いキーワードから大量の情報を検索できて人類の生産性が爆発的に向上しました」と言われた時に「それは検索エンジンの機能でありインターネット自体の機能ではない」とまで突っ込むのは野暮ではなかろうか。ブロックチェーンの登場が生み出した差分に着目した議論をする上で「ブロックチェーン自体の機能」か否かを精密に切り分けるに値する有益な提案をその論考で成しているようには見えない。

例えば「インターネット自体の機能か否か」を精密に切り分けるのはその先にインターネット自体の不可能性等を議論する際に初めて有益になるのであって「HTTPSはインターネットとは独立した技術である」とか細々と切り分けてもそれ単体では「そうですね」以上の話にならない。

既存のシステムの多くは運用主体などを信頼する必要がある。 あるシステム提供主体が必ずしも信頼できない状況下で、当事者相互に自らが検証したデータに基づいて何かを実施できることは、多くの可能性を秘めていると考えられる。

ここがおそらくブロックチェーン信者の方々が本当に目を覚ますべき所で「システム提供主体が必ずしも信用できない状況下で、当事者相互に自らが検証したデータに基づいて何かを実施」まで広い括りに広げるとGPGなども含まれてしまうし、それこそ「ブロックチェーン自体の機能ではない」そのものになってしまうのではなかろうか。

存在証明の功罪

ここから考えられるブロックチェーンの活用としては、データの存在証明、の1点であると筆者は考える。 

何をもってして存在を証明したことになるかを定義せずにこの議論をするのは危うい気がするが、例えば僕がこうして書いたこのブログ記事は遅かれ早かれInternet Archiveに保管され容易に消せなくなるし、bittorrentなどのP2Pに放流したら任意のデータは完全にこの世から消し去る事は難しくなる。コストを払う前提ならAmazon S3あたりに置いてweb公開設定をしてもいい。

個人的にはこの「データを消せない」という部分を真の利点として扱うのは自明ではないと思っている。というのもBitcoinもEthereumも原理的には任意のバイナリをチェーンに埋め込めるので児童ポルノ画像が埋め込まれた事に気づかずにチェーンがある程度伸びてしまった場合チェーンを大規模に巻き戻すインセンティブが被害者以外には特に無いのでそのまま世界中からその画像にアクセス可能になってしまったり、もしくはそれなりの国からその児童ポルノの存在を理由にそのブロックチェーンへのアクセスがまるごと違法化されたりする危険性も挙げられる。

存在証明を応用することで、あるデータが存在し、それに伴う何かしらの操作、またその操作記録それ自体のデータが存在することにより「あるデータに基づいた操作が存在したこと」が確認できる。 それらの実装がBitcoinやEthereumであると整理可能であろう。
BitcoinやEthereumにおいては、デジタル署名を書き込むデータの中に含むことによって、データ発行者の否認不可能性を担保している点も、興味深い点である。 存在しただけでなく、それが発行者の秘密鍵によるデジタル署名を含むことによって、当該鍵ペアを持つ者が間違いなくそのデータを発行したことが保証される。

ここに関しては自身も言っているが、秘密鍵で署名されたデータさえ手に入ればブロックチェーンが無くても「あるデータに基づいた操作が存在したこと」も「秘密鍵を持つ者がそのデータを発行したこと」も証明出来てしまう。「ブロックチェーン自体の機能」を切り離して論じる事はかくも難しい。

デジタル地域通貨

トークン系: ブロックチェーンを用いたデジタル地域通貨で地域活性
(中略)
一定の参加者の中で流通する通貨を作りたいだけであれば、通常のWebシステムで実装可能である。

ブロックチェーンでそんなことはできない」と題した記事でありながら「ブロックチェーンでも可能だが他でやったほうが筋がいい事」を真っ先に例示するのは混乱を招くと思う。僕も地域通貨は普通のWeb技術でやっても良いと思うが、既存コインをクローンしたオレオレ草コイン(プライベートチェーンで良い)が誰でもマウスポチポチで発行できる未来が来たら(というか現時点でもそういうサービスがあっても特に驚きは無いが)地域通貨のシステムをレガシー技術で作るよりイニシャルコストが安い可能性はある。これはブロックチェーンや暗号通貨が優れているというよりは、集まった投資によって形成されたエコシステムによってソフトウェアのインフラが整備された結果に過ぎないのでもちろんブロックチェーンそのものの作用では無いのだが、エコシステムとはバカに出来ないものである。

そして枯れたブロックチェーン技術でデジタル地域通貨が出回ったら、誰かがチェーン間取引のシステムをどこかから持ってきて、換金不能としたはずの地域通貨がETHなどの形になって世界を飛び回る未来もありうる。これはもちろん賛否あるが通常のWebシステムでは実装不可能な世界観の一つである。つまりただのWebシステム実装通貨の劣化版とも言い切れない。

著作物のライセンス

権利系: ブロックチェーンを用いた著作物の利用許諾管理

(中略)

なぜなら不正利用者は許諾を受けないで利用をしたとして、その保有資産を強制的に徴収するような仕組みがなければ積極的にその利用料を支払わないと想定できるからである。

これはどのようなサービスの形にするかという点で発想の余地がいくらでもあるため可能不可能を一律に論じるのが難しい。例えばKindleのような電子ブックリーダーが持ち主(=読者)の鍵ペアに相当する情報を持っていて、任意の本を開く際にはその持ち主がそのデータを開く権利があるかどうかをブロックチェーン上での付与トークンの情報を見て確認する、なんて実装であれば本を開いている人をクローリングするという順序で物事を考える必要はなくなる。

現時点でもコピーコントロールや利用許諾管理は、データの複製そのものではなく再生の段階で検出して再生を拒絶する方式は全然珍しくない。著作権保護された映画を再生しているテレビ画面をハンディカムで録画した映像の再生すらプレーヤーが拒絶するCinaviaの仕組みを知った時は驚いたものである。

ブロックチェーンに限らず任意の利用許諾管理の方式について技術的に迂回する方法は存在するし、コスト面で比較した際に許諾情報をサービス運営者が責任を持って保持・提供し続けなくては行けない従来の方法と比べて優位性があるという主張には一応の理はある。だが付与トークンを参照するために過去のチェーンを全部redoするだけでとてつもない通信量とメモリを消費するのでKindleのような端末だけでそれを達成するのは不可能であって結局どこかで誰かが許諾DBを運営管理する事になり、その運営者を信頼するならばそもそもブロックチェーンに頼る必要が無いだろという批判は大いにある。

何にせよ、どのような形で応用するかは上に書いた方法以外でもまだまだ広大なデザインスペースが広がっているため、簡単に「ブロックチェーンは利用許諾管理に使える」「使えない」と断じるのはまだ難しいというのが今の僕の意見である。

そもそも契約とはそれを破った時に守った時以上に酷い目に遭う前提がどうしても必要になる。なので「××さんは○○さんに閲覧許可を渡す」なんて簡単な契約内容であったとしても、スマートコントラクトがチェーンの外に手を伸ばして違反者に何らかの強制力を発揮するには一種の『暴力』が要求され、それを行使できる第三者に依存してしまう以上は原理的に非中央集権たりえないという批判はブロックチェーンの応用全般に言える。

プライバシーは研究途上

プライバシー系
(中略)
ここで準同型暗号やゼロ知識証明などの暗号技術を活用することもさらに考えられるが、これはまだ研究開発段階と言わざるを得ないだろう。

ブロックチェーンでそんなことはできない」というタイトルで「研究開発段階と言わざるを得ない」で締めるのはやはり不誠実に感じる。むしろできないという事が立証できていないからこそ研究が続いているという見方もできるからだ。

プライバシーの観点で見えたら困るデータなら暗号化とか関係なくそもそも直接相手とやり取りするべきであって、それを超える利便性がブロックチェーンによって示されていない、もしくは示されてもそれがzcashのように法的な観点から睨まれてしまうのは今もブロックチェーンの潮流全体に大きな影を落としていると思う。

批判対象について

一貫して、以下の点で応用を整理することで批判できてしまうプロジェクトがほとんどであろう。

・「信頼する第三者を排除しなければならないのは、システムのどの部分においてなのか」という議論の欠如

ブロックチェーン外で起こる事象への積極的検知が必要なシステムへの適用

ブロックチェーンの根本的な優位点の活用の議論の欠如

  • 「信頼できる第三者が居たほうが安く済む事が多い」という点がブロックチェーンの批判では頻出であるが、裏を返すと「安く済みさえするなら信頼する第三者を無意味に排除してもしなくても別に構わない」とも言えるので、第三者を排除することばかりをターゲットにする必要はない
    • トラストレスに夢を見るのはほどほどにした方が良い
    • ブロックチェーン採用のモチベーションが常に「信頼できる第三者の排除」だけとは限らないのではないか
  • ブロックチェーン外で起こる事象の検知に限って言うと意欲的なチェーンも運用されているらしい
  • 技術の選定は経済的な合理性さえあればその優位性を活用する必要はない
    • 例えば地域の商店街が元手ほぼ無料で発行したプライベート草コインによる共通ポイントシステムで経済が回って潤っているのなら成功プロジェクトと言えるし、そこに対して「ブロックチェーンの根本的な優位性を活用できていないじゃないかスマートコントラクトを使えDeFiしろ」などと騒ぐのは野暮である

と、この3項目の整理はそれぞれ反論が存在して「ほとんどのプロジェクトを批判できてしまう」というほど究極的な問いには感じられなかった。特に1と3は若干被っているとすら感じる。

ブロックチェーンのさらなる障害

DeFiを用いて取引の自動化が進んだ結果、チェーンの上で金融犯罪まがいの事が堂々とまかり通っているのは由々しき事態であると思う。最近だとLUNAの暴落騒動が記憶に新しい。これは原理的にはwalletが匿名であることに起因しており、根本的な解決を図るなら匿名性を捨てるしかない。「コインの大量保持者はコインの価値を暴落させないインセンティブがあるだろう」という前提は、チェーン間交換や先物取引やコインを扱う金融商品で複雑に入り組んだ利害関係の前では脆くも崩れ去る。Flash Loan Attackの最近読んだ資料が面白かった。これは技術レイヤーでは原理的に解決不能な問題に見える。

これに対処するには匿名でトラストレスという前提を崩す必要がありそうで、かなり根幹に関わる問題点ではなかろうか。今後(パブリック)ブロックチェーンの不可能性を語る上で、システムの安定性の源泉となっているインセンティブ設計の脆弱性は避けては通れない問題と認識している。

まとめ

とりわけ僕が気になったのは「原理的に不可能」と「現時点ではまだ生焼け」の2つが混同して語られている事であって、Web3に夢見がちな論説を研究者の角度から適切に批判するには前者を端的に示していくのが順当だと思うがどうだろうか。

このアイキャッチ画像はFlickrmuddy_lensさんの作品CC BY-SA 2.0に基づき利用しています。