見出し画像

あなたの見ている「日経平均」は本当の数字だろうか?:オラクル問題と向き合う


こんにちは。Web三郎です。

何に役立つかわからないけど、知らないと恥をかきそうな指標No.1の「日経平均株価」についての怖い話を切り口に、Web3におけるオラクル問題について解説してみようと思います。

平日には、テレビもラジオも新聞も「xx円xx銭安のxx円x銭で終了」というニュースを毎日流しています。

このニュースを見て「なるほど、昨日はこういう事件があったから、このセクターの株価が下がってて、全体もそれに引きずられて下がってるんだな。今日のZoom会議はこのセクターの人とだからちょっと話題に出してみよう」なんて小粋なことを、忙しい朝にも考えられるのが一流の社会人というものなのでしょうか。Web3ガチ勢ならば、これがBTCのチャートに置き換わるのでしょう。大人というのはつくづく不思議な生き物です。

さて、日経平均株価、今いくらかわかりますか?自分は覚えてないのでググってみましたが、5月からずっと3万円のラインを超えっぱなしのようですね。去年の初めには「30年ぶりの3万円台だ!」と日本中が大騒ぎしていた記憶がありますが、これを「隔世の感」というのでしょうか。

日経平均株価とBTCの価格データの違い

もっと正確な数字を見てみましょう。

記事執筆時(2023年8月29日20時頃)の日経平均株価の終値は32,226.97円でした。これはYahooファイナンスで見た数字ですが、Google FinanceもKabutanもJPX総研も同じ数字を示しています。

ではBTCの価格はどうでしょうか。Google FinanceとCoinGeckoとCoinMarketCapのページを同時にリロードして、出てきた価格を見てみましょう。

  • Google Finance: 3,815,135 円

  • CoinMarketCap: 3,816,084 円

  • CoinGecko: 3,814,837 円

日経平均株価とは異なり、BTCの価格はメディアごとに差があるようですね。なぜでしょうか。

金融に詳しくない方にはピンとこない話かもしれませんが、実はBTCには「公正な唯一の価格」というものが存在していません(※)。

オークションサイトで同じ商品が違う値段で競売されてるのと同じで、BTCの価格は取引所によって異なります。価格情報を載せたいメディアは、それぞれの方法で取引所から価格情報をリアルタイムに集約して独自に価格を算出しています。そのため、メディアごとに異なる価格が表示されます。

※BTCに限らず市場で取引されるあらゆるものは市場の数だけ存在します。中古のiphoneの価格がメルカリとヤフオクで違うように、日本円やドル、原油の価格も取引所によって異なります。

対して、日経平均株価には「公正な唯一の価格」が存在しています。いや、正確には日経平均株価それ自体が「公正な唯一の指標」というべきでしょうか。

日経平均株価は、日経系列のQuick社が算出・配信している「株価指数」です。株価指数それ自体は数字の時系列データに過ぎないため、市場で取引できません。このデータを利用して組成されたETFや投資信託、先物などの金融商品は市場で取引できますが、それらはBTCと同じく取引所ごとに価格が異なります。なので、日経平均株価という指数には「公正な唯一の価格」というものは存在しません。

逆に、日経平均株価という指数は、その唯一性にこそ価値があるのであり、メディアごとに異なる数字であってはならないものなのです。

日経平均株価は「遅れて」いる

ここでもう一つ重要なポイントがあります。じつは日経平均株価の「リアルタイムデータ」はファイナンス系メディアのどこにも掲載されていません。

「それじゃあこの数字は何なんだ!」という話ですが、落ち着いて画面を見直してみましょう。株価の横に小さく「20分ディレイ株価」という表記が見つかるはずです。この表記は「今画面に表示している価格は20分前のデータだよ」ということを意味しています。

なぜ古い情報が表示されているのでしょうか。それは日経平均株価が有償サービスであるためです。Quick社は無償でこの指標を提供しているわけではなく、とりわけリアルタイムデータは投資家にとって非常に重要なデータであるため有償のサービスとして提供しています。

一般の投資家でも証券会社の提供するトレーディングツールを通じてリアルタイムデータを閲覧できますが、これはあくまで証券会社が代わりに料金を負担して提供しているサービスであり、決して完全見放題のサービスではありません。

メディアであっても、誰にでもリアルタイムデータを提供していてはコストばかりが積み上がってしまうので、リアルタイムデータの閲覧は有料会員限定のサービスとすることが多いようです。

日経平均株価が「唯一」じゃなくなる場所

ここまでで日経平均株価がじつは「遅れて」いるかもしれないことをご理解いただけたかと思います。ここからはもっと深い領域における日経平均株価という指数の難しさについてお話していきましょう。

厄介なことに日経平均株価の最大の価値である「唯一の数値」が危うくなる場所が存在します。それは先程例に出したBTCのフィールド、そう、Web3です。

Web3というブロックチェーン上に構築された電子世界において、ブロックチェーンの外で生産されたデータは、外から取り込む作業が必要になります。

通常、日経平均株価のような指数のリアルタイムデータは、その指数を開発している会社が提供するAPIや、独自の回線を通じて提供されます。それらと接続されたサーバーが受け取る指数は、指数を開発する会社が提供する、その時点における唯一のデータであり、受け取るサーバーが同じであれば、複数のデータが同時に存在することはありえません(※)。

※厳密に技術的な話をすれば、あるトレーダーが他のトレーダーよりも早くリアルタイムデータを取得できれば、より有利にトレードできる、というような問題は現実としてありますが、ここでは省きます。

しかし、そもそもWeb3の世界には複数の受信サーバー(またはノード)が存在しています。この環境でリアルタイムの価格指数データを取り込もうとすると、どのようなことが起きるのでしょうか。

例えば、ノードAが日経平均株価のリアルタイムデータを受け取り、それにタイムスタンプを含めてブロックチェーンに書き込もうとするとします。このときに、サーバーBがAと同じタイミングで誤った価格データを投入しました。その結果、ブロックチェーンには同一のタイムスタンプをもつ2つの価格データが存在することになってしまいます。どちらを信頼すべきでしょうか。

もし、データを信頼するのが人間なら、自分の口座のある証券会社のサイト内でリアルタイムデータを確認すれば、どちらが真実であるかを検証できるので問題ありません。

ですが、ブロックチェーン上のアプリケーション(いわゆるDapps)が信頼の主体である場合には、どちらのデータを信頼すべきかについて別途厳格なロジックを定義しなければ、誤ったデータを元にスマートコントラクトが実行され、様々な問題が生じてしまいます。

オラクル問題と向き合う

このブロックチェーン上に存在していないデータをブロックチェーン外部から取り込む際に生じる信頼性の問題を総称してオラクル問題といったりします。

オラクルとは「神託を伝える人」とかを意味する神学用語なのですが、これがブロックチェーンの文脈ではオフチェーンデータを取り込むシステムとして定義されます。そのオラクルを如何に信頼するか、ということです。

原義になぞらえれば

司祭様(≒ノード)が神様(≒オフチェーン)からのお告げ(≒データ)だとか言ってアレコレ言ってるけど、アレ本当か?デマカセじゃねえだろうな?でも俺(≒スマートコントラクト)は神様と話せねえしわかんねえなあ

ということですね。

ブロックチェーン上には外部(オフチェーン)のデータを元にアクションを実行するDappsが多数存在しています。例えば、DAOは現実世界に生きる人たちの意思をオンチェーン上に伝える必要があります。DAOの場合、ガバナンストークンを利用したオンチェーン投票を実行することで、誤った意思が伝わらないようにしています。

他にもサッカーの試合結果を予想して、予想が的中した人に報酬を与えるというサッカーくじのようなプラットフォームも存在しますが、ここにも正確な試合結果の情報をオンチェーン上に申告する多数の人々がいて、その人たちが不正を働かないようにするための報酬や、担保金、罰金などを利用する仕組みがあります。

これらはすべて、不正なデータの取り込みをできる限り排除するための工夫です。ブロックチェーンでDappsを作るときにはこのオラクル問題を解決するための方法を考えなければなりません。

オラクル問題はBTCの価格であっても生じる

オラクル問題は一般にオフチェーンとオンチェーンとの間での情報連携において生じるものですが、厄介なことにブロックチェーン上に存在しているデータであっても、似たような信頼の問題が生じます。

たとえば、BTCの価格が10日後に10万ドルを超えるか、超えないか、という賭けをするDappsがあるとします。このときBTC/USDの価格情報は外部にしかないため、UniswapのBTC/DAIプールの価格情報を利用することにしました。ここで重要なのはこの賭けが「本来BTCの価格という複数あるはずのデータを、単一のソースから参照している」という点です。

この賭けにおいては簡単に相手を出し抜くことが可能です。まず、10万ドルを超える方に賭けたAさんは、このプールでMakerDAOから借りてきた大量のDAIを売却します。そうするとプール内のDAIの量が減少し、BTCが希少化=価格上昇します。一時的にそのプールのBTC価格を10万DAIまで吊り上げることができれば、Aさんは不正に賭けで勝ててしまいます。

もちろん、DAIを売却する際には巨大なスリッページが発生しますし、DAIの調達コストなどもかかりますが、それらの費用よりも賭けの報酬が多ければ、このような不正が成立してしまうのです。これが単一のソースを信頼することの危険性です。

オラクル問題の解決策

これらのオラクル問題を解決するのは容易ではありませんが、現在では様々なソリューションが存在しています。

細かいオラクルソリューションの事例は検索すればいくらでも出てくるので紹介は省きますが、大雑把に言えば、「データを取り込む前にみんなで不正がないかチェックする」、「データを取り込む人と、そのデータを元にして起きる出来事で損得が生ずる人を分離する」、「正直者には褒美を、嘘つきには罰を与える」、「複数のデータのあいだの値をとる」、「そもそも怪しいソースは使わない」の5つの方法をうまく組み合わせて、この問題に対処しています。

これらの方法から逆に考えてみると、Dappsを構築したり、何かしらのWeb3系のプロジェクトを進める際には、次のような点に気をつけてみるのがいいのかもしれません。

  • データを取り込む前にみんなで不正がないかチェックする

    • →誰かが勝手に嘘のデータを流し込めてしまうポイントはないか?

  • データを取り込む人と、そのデータを元にして起きる出来事で損得が生ずる人を分離する

    • →利害関係者がデータのインプットに関与できる仕組みになっていないか?

  • 正直者には褒美を、嘘つきには罰を与える

    • →無償で働かされている人はいないか(トークンインセンティブの設計は網羅的か)?

  • 複数のデータのあいだの値をとる

    • →ソースは分散しているか?

    • →そもそも複数存在しうるのか?

  • そもそも怪しいソースは使わない

    • →そのソースは本当に信頼できるのか?

    • →そのプロジェクトにとって何が信頼の根拠になるのか?

おわりに

普段私たちが目にしている日経平均株価の数値はその大半が正確でしょう。しかし、殊にブロックチェーンという「誰にでも公平にアクセスできる唯一の帳簿」のなかで動作するシステムにとっては、日経平均株価の数値を自明のものとして扱うことはできません。

ブロックチェーンにおけるデータの信頼性は、我々がニュースの信頼性を評価するやり方とは少し異なる部分があるのです。取引先との打ち合わせで話題に出した日経平均株価の数字が、相手と多少異なっても深刻な問題は発生し得ないですが、ブロックチェーンにおいてはそうはいきません。どちらの数字が正しいかについて、透明で緻密なメカニズムを通じて合意を形成しなければなりません。

無論このことはWeb3に限ったことではなく、あらゆるIT開発の現場でも考え抜かれている事柄ですが、しかし、Web3には、分散されたノードの間で合意を形成する必要性と、その合意の如何が直接的に金銭的価値の行方に関わるという難しさがあるがゆえの、信頼のメカニズムの独特さに気を払う必要があるのです。

お問い合わせ

ビジネスのご相談や取材のご依頼など、当社へのお問い合わせはこちらから。


この記事が気に入ったらサポートをしてみませんか?