2016年6月18日
THE DAO(ザ・ダオ)の資産流出問題が、ブロックチェーン界隈で大きな話題になっています。今日はこの問題に関連するテーマについて、考えます。
本日の考察テーマ
①THE DAOの資産流出問題は根本的にはなぜ起きたのか、どうすれば防げるのか
②どのような道を歩むことで、スマートコントラクトは発展を続けられるのか
①の結論の一部を先に言うと、この問題の真因は、THE DAOのシステムを「一か所にまとめ過ぎた」ことです。こう書くと、「いやいやTHE DAOはDecentralizedなシステムだお」というダジャレが聞こえてきそうですが、一か所の観点がそういう意味ではないのです。ここで言う「一か所」は、論理的な意味でのシステム構成のことで、オープンな世界に一足飛びに寄せすぎた、ということです。
なんのこっちゃ、だと思いますので、順に説明します。
まずスマートコントラクトとDAOについて
この記事を読んでいる人はご存知の方も多いと思いますが、スマートコントラクトとは、契約の締結と同時にサービスが自動提供される仕組みの総称です。すこし脱線になりますが、スマートコントラクトは名前が体をなしていない用語で、「Smart Execution of Contract」を略してスマートエグゼキューション、さらに略してスマートエグゼ、の方がよっぽど中身を表す呼び名ではないかと思います。。。
話を本筋に戻し、続いてDAOですが、これはDistributed Autonomous Organization の略称で、日本では一般に自立分散型組織と呼ばれています。簡単に言えば、組織の行動ルールが全てソースコードに記述されており、特定の主権者の介入なくアクションが実行される事業組織のことです。
これらについて、より詳しい説明を読みたい人は、「ビットコイン日本語情報サイト」の下記の記事をご覧下さい。
スマートコントラクトとDAO(ビットコイン日本語情報サイト)
THE DAOと資産流出問題
THE DAOは、DAOの形態を取って、Ethereumプラットフォーム上に構築された、事業投資を行うための新しいプラットフォームです。THE DAOについては、「ビットコインニュース」に解説記事がありますので、そちらをご覧ください。
自律分散型組織とビットコインとThe DAO(ビットコインニュース)
THE DAOの前提知識がそろったところで、THE DAOが起こした今回の資産流出問題についてですが、手短に言うと、ある悪意のある人物が、THE DAOの「Split」というスマートコントラクトロジックのセキュリティ脆弱性を突いて、THE DAOのトークン購入者の個人資産であるEthereumを自身の口座に50億円相当流出させた、という問題です。幸い、「Split」のロジックが実行後28日間は資産を動かすことができないものだったため、流出した資産は現在のところ所在が明確で、ソフトフォークやハードフォークなどの最終手段を用いれば、取り返すことも可能な状態にあります。この件については、「ビットコインニュース」の解説が随時更新されていますので、そちらをご覧ください。
TheDAOが暴落、崩壊の危機に イーサリアムも道連れに(ビットコインニュース)
ここまで、先人たちの力(サイト)を借用させて頂き、流しめに説明してきましたが、ここから本日の本題に入りたいと思います。
①THE DAOの資産流出問題は根本的にはなぜ起きたのか、どうすれば防げるのか
冒頭で「一か所にまとめ過ぎた」と言いましたが、この問題の真因は、システム構成にあると考えています。
ここで言うシステム構成とは、複雑な話ではなく、このようなものです。
システムをどこに作るか、という話で、良く言われる話として、スマートコントラクトはプライベート環境に構築した方がセキュリティ確保のために適している、ということがあります。プライベート環境というのは、特定の会社の内部ネットワークの中のように、組織の外部の人間が容易にアクセスすることができない環境のことです。
しかし、THE DAOはそのような常識に寄らず、果敢にもオープンマーケットの中に全てのシステムを構築している、と私は理解しています。(無知の勘違いでしたらご指摘ください)
THE DAOは、上図のようにオープンマーケット上で全ての仕組みを構築していますが、結果的に、これによって非常に厳しい局面を迎えることになりました。世界のクラッカーの攻撃を受けた結果、資産流出が起きたのです。オープンな世界にシステムを構築するということは、世界中のクラッカーの猛者達と対峙することを余儀なくされます。このことが困難を招くことが改めて証明されてしまいました。
システムの開発者を勇者に例えれば、地獄の戦場で自分の武器を製造しながら魔物を相手に戦うような行為だったのです。(魔物に会ったことはないのであくまでイメージです…)
Decentralizedな世界に情熱をもって取り組んでいる開発者の設計思想を否定したいわけではありません。ただ、戦場で武器を作りながら魔物と戦うより、まず安全な場所で武器を作ったほうが良いと思うのです。戦うための武器が出来てから、魔物に立ち向かうという段階的なやり方も選択しうるのではないかと、そういう意味です。
遠まわしに言いましたが、こういうことです。
まずは、スマートコントラクトのサービス実現に注力するために、プライベートやコンソーシアムの世界で、新しいスマートコントラクトサービスを構築するのです。コンソーシアムというのは、上図では決済業を例示しましたが、事業会社の枠組みを超えてサービスを提供するグループのことです。決済業においては、決済電文の新標準となりつつあるISO20022や、台帳接続プロトコルのInterledger Protcolを活用する新しいグループが発生しつつあります。こういうグループとの連携も視野にいれて、手を抜けるところは彼らと手を組んで手を抜きます。
このようなプライベート(≒中央集権的)なアプローチは、ともすると「Decentralizedな世界」に情熱を持つ開発者にとっては魅力がない、ということになるのかもしれません。しかし、そこはそう極端に考えず、まずはハイブリッド型を志向するのはどうでしょうか。スマートコントラクトはプライベート&コンソーシアムを利用するとして、一方でその決済通貨にビットコインを採用することもできるはずです。このサービスが、ビットコインのキラーアプリケーションになることだって考え得るかもしれません。
あえて、パーミションレスとパーミションドのハイブリット型システムを作るのです。
これが、資産流出や個人情報の流出を防ぎつつ、DecentralizedというSF的なワクワク感のある未来に望みをつなげる最良の手段であると考えます。
②どのような道を歩むことで、スマートコントラクトは発展を続けられるのか
ところで、勇者にはいつか魔物を圧倒してほしいものです。
スマートコントラクトの世界で言えば、スマートコントラクトの挑戦者が将来、セキュリティの面で万全を期すことができた時に、オープンマーケットに巣くう魔物(≒クラッカー)との直接対決に挑み、見事に勝利を手にしてほしいと思います。
スマートコントラクトの挑戦者は、今は極力安全な場所でサービスを実現するための商品(武器)を作り、共に戦かう仲間を集めることに注力すべきです。そして、状況が揃った時に、満を持してDAO化するという、一見遠回りなアプローチが、実は成功への道なのではないかと思うのです。
重要な役割を担うオープンソース
ここで、スマートコントラクトの勇者が採用すべき技術(武器)は、オープンソースだと考えます。
その筆頭はやはり、Hyperledger + Bitcoinの組み合わせや、Ethereumのプライベートバージョンなのではないでしょうか。mijinとNEMの組み合わせも期待できるのかもしれません。
これらのオープンソースを用いれば、開発コミュニティによる基盤のバグ修正を期待できますし、将来的にソースコードの権利の問題に悩まされることなく、ロジックをパーミションレスな環境に移行することが可能だと考えられます。また、メジャーなオープンソースを採用することで技術者を確保しやすくなるため、将来のソースコードのリファクタリングが容易になるという効果もあります。(始めの構築時にはセキュリティ面まで十分に考慮できず、リファクタリングが必要になるケースが多々あるのではないかと想像します)
このアプローチは、オープンソースを軸にした段階的DAO移行戦略と言えます。
まずは、Bitcoin銘柄として投資ファンド等から開業資金を集め、Bitcoin,Hyperledger,Ethereum,NEMなどのオープンソースを活用してスマートコントラクトサービスを開始します。この時、DAO移行戦略は謳い文句のような位置づけになります。
その後、このビジネスが成功した後に、安全性を担保できたものはオープンな世界に移植し、DAO化を進めるという戦略です。
スマートコントラクトサービスは、そのひとつの領域の機能だけで考えても、試行錯誤の末に出来上がるサービスに思えます。さらにそれらを統合して運営する組織自体も自動化するというのは、不可能なことではないにせよ、相応の試行錯誤が必要だと考えて間違いないです。このことを考えても、プライベートな世界から徐々にオープン化するというアプローチの有効性が直感的に感じられます。
THE DAOについては、信頼の問題で、これからのリカバリーは非常に困難なものになると思います。
仮にそれが克服できるものなのだとしたら、的外れなことかもしれませんが、一部の仕組み(≒スマートコントラクトロジック)をプライベート環境に記述してAPIで呼び出すような形式に敢て移行し、外敵からの攻撃を受けにくくするというアプローチを選択することが一つの救いの道になるのではないでしょうか。
最後に、スマートコントラクト・プラットフォームを現在のセキュリティ環境下で実現するための概念イメージ(案)を図表に記します。