見出し画像

オラクル問題について考えてみる

●前置き:

ブロックチェーンを一言で言うと、「価値のインターネット」と言われる。これは一般的なインターネットが「情報のインターネット」つまり、「中央集権的な機関を通すことなく、一般人が情報を発信できるようになった(Email、Webサイト、Webサービス)」世界観を指すのに対し、ブロックチェーンは、「中央集権的な期間を通すことなく、価値の移転をできるようになった」世界観を表すため、そのように呼ばれている。

この「価値のインターネット」を実現するために避けては通れない要素であるオラクル問題を本ブログでは深掘りして整理してみようと思う。

●オラクル問題とは

ここで言う(ブロックチェーンの文脈で言う)オラクル問題とは、RDBのOracleとは関係がない。
オラクル問題とは、ブロックチェーン外(オフチェーン)からブロックチェーン内(オンチェーン)に情報を入力する際のそのオフチェーンにおける情報の確からしさをどのように担保するか の問題である。
つまり、毎日AM10時の東京の気温をインプットデータかつトリガーにして動作するスマートコントラクトがあるとして、そのインプットデータ(AM10時の東京の気温)をどうやって担保するのか、もしそのデータを担保できないのであれば、そのインプットデータから生成されたブロックチェーン上のトランザクションデータも、正しさを担保できない。元から正しくないデータをいくらブロックチェーンで非改竄性を担保したとしても有意性は落ちるよねと言う話である。

オラクルの種類は以下の記事でまとめられている。


●オラクル問題の解決の方向性

オラクル問題の解決の方向性としては、以下の2つがある。
①集権的オラクルのデータインプットをシームレスにし、人の目による判断の余地を与えない
②分散型オラクルにすることにより、意図的なインプットデータの改竄のハードルを高めるとともに、異常値の検知性を上げる
エンタープライズ適用の順序としては、①→②だと思っており、今回は①の深掘りをしてみたいと思う。

例えば、サプライチェーンにおける生産過程データ、ロジスティクスにおける輸送過程データ、このようなデータはダイレクトにモノの品質に直結するデータとなる。これを、ブロックチェーンに登録する過程において、Excelでアップロードするという手作業工程が挟まるとどうなるだろうか。実際のデータが発生してから、データを登録するまでにタイムラグが発生し、手動作業工程が挟まり、人によるデータの確認により都合の悪いデータを改竄してしまおうという出来心が発生してしまう可能性がある。
一方で、IoTデバイス等によるシームレスな自動収集・自動データ登録を仕組みとして確立した場合、データ改竄の出来心が発生する間も無く、データはブロックチェーンに登録されており、データは改竄不可となる。また、仮にIoTデバイスを一時的に止めた場合も、データの登録頻度に歪みが発生し、特定の期間にデータ登録がなかったという事実が残り続ける。

ブロックチェーンシステムを構築し、(改竄の可能性がある)外部データを登録するような場合は、ブロックチェーン外のデータ登録のシームレス化も合わせて考えるべきと言える。

●認証のオラクル

ブロックチェーンに限った話ではないが、なりすましてシステムアクセスされると、機密情報の漏洩や、なりすましトランザクションデータの登録に繋がる。
ブロックチェーンにおける本人認証は、公開鍵暗号方式にに基づく。
これは、公開鍵より導出される自身のウォレットアドレスからの送金などのトランザクションを、自身の秘密鍵で署名した上で、ブロードキャストし、各ノードに共有しておいた公開鍵により署名の正当性を検証してもらうというモデルだ。
ウォレットアドレスは公開鍵に紐づくので、秘密鍵が漏れない限り、なりすましのリスクはないと言える。
逆に、秘密鍵が漏れてしまった場合、紐づくウォレットの資産を自由に移動するトランザクションが生成できてしまい、秘密鍵の管理は非常に重要となる。
秘密鍵の漏洩リスクを低減するための対策として、マルチシグネチャーや、コールドウォレットなどの対策が考えられている。

・マルチシグネチャー
これは名前の通りで、複数の秘密鍵で複数の署名をトランザクションに付与するという仕組みだ。一つの秘密鍵が漏洩しても、なりすましはできないため、セキュリティレベルが向上する。

・コールドウォレット
これは秘密鍵の管理を、インターネット接続されていない環境で管理することによりハッキングによる漏洩リスクに対応するというモノだ。例えば、コールドウォレットの1種であるハードウェアウォレットでは、USB式の端末をPCに差し込んだ時にのみ、秘密鍵を使用する処理が可能となる。秘密鍵情報は差し込んだPCには残さない。

●まとめ

データを登録する際には、データの登録者のID(センサーの場合はセンサーのID、人の場合はユーザID)と紐付けて登録するわけだが、上記したようにIDのなりすましのリスクを低減しつつ、また人の判断ポイントをなるべく落としつつブロックチェーンにトランザクションするということがポイントになりそうだ。

オラクルの深掘りをしてみた結果、認証の課題と密接に繋がっていることがわかった。次回の記事では、DID・SSIについて深掘りしてみようと思う。



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