フリーワード検索


タグ検索

  • 注目キーワード
    業種
    目的・課題
    専門家
    国・地域

NRI トップ NRI JOURNAL ブロックチェーンの可能性とセキュリティ

NRI JOURNAL

未来へのヒントが見つかるイノベーションマガジン

クラウドの潮流――進化するクラウド・サービスと変化する企業の意識

ブロックチェーンの可能性とセキュリティ

NRIセキュアテクノロジーズ サイバーセキュリティサービス二部 田篭 照博

#サイバーセキュリティ

2017/10/18

ブロックチェーンを利用し、契約処理の自動化を果たす「スマートコントラクト」には大きな期待が寄せられていますが、一方でセキュリティの懸念も増大しています。具体的にどのようなリスクがあるのか、NRIセキュアテクノロジーズの田篭照博に聞きました。

 

大きな可能性を秘めたブロックチェーンとスマートコントラクト

 

話題のビットコインを支える技術として、注目を集めているのが「ブロックチェーン」です。暗号化や分散ネットワーク技術を利用し、改ざんが不可能な形で情報を分散して記録する仕組みであり、分散型台帳技術などとも呼ばれています。

 

このブロックチェーンは幅広い用途で使える汎用的な技術であり、さまざまな領域で利用することが可能です。その一例として、田篭が挙げたのはスワップ取引における活用です。

 

「ブロックチェーンには、契約を自動化することができる『スマートコントラクト』と呼ばれる仕組みがあります。これを利用し、たとえば金利スワップ取引であれば、この日になればこの金利でスワップする、そういった処理を自動化することが可能です」

 

スマートコントラクトとは、ブロックチェーン上で実行されるプログラムです。契約書で定められている内容をプログラムとして記述し、自動で契約を執行することが可能です。

 

ただ、特にインターネットに接続されている不特定多数が参加可能なオープンなブロックチェーンにおいて、注意しなければならないのがスマートコントラクト(プログラム)の脆弱性です。2017年7月には、Ethereum(イーサリアム)と呼ばれるブロックチェーンプラットフォームにおいて、約34億円分の仮想通貨が盗まれるという事件が起きました。あるスマートコントラクトに脆弱性があり、それを突いて攻撃が行われた結果、スマートコントラクト内の仮想通貨が不正に引き出されたのです。

 

脆弱性はWebアプリケーションなどの従来のアプリケーション(プログラム)にも存在しますが、それらとスマートコントラクトには決定的な違いがあると田篭は指摘します。

 

「Webアプリケーションなどであれば、脆弱性が発見されてもサービスを閉じて、アプリケーションを改修することによって永続的な攻撃を防ぐことは可能でしょう。しかし、スマートコントラクトは、一度リリースしてしまうと修正が効かないプログラムのため、脆弱性が発見されると永続的に攻撃を受け続けるリスクがあります」

 

スマートコントラクトの脆弱性にどう向き合うべきか

 

さらに田篭は、スマートコントラクトの脆弱性はさまざまなパターンがあると話します。その一例が、スマートコントラクトから別のスマートコントラクトを呼び出すようなケースです。

 

 

例えば、スマートコントラクトを使って、オークションの処理を実現したとします。参加者の1人であるアリスは、スマートコントラクトに100円相当を送金して買値を提示(ビッド)します(①)。別の参加者であるボブは200円相当を提示しました(②-1)。このタイミングで最高提示額者はボブになり、アリスに対してスマートコントラクトが自動で返金するような処理だったとします(②-2)。

 

問題となり得るのは、スマートコントラクト経由でビッドを行われてしまうケースです。ここでイブが用意したスマートコントラクト経由でイブが300円相当でビッドしたとします(③-1)。このタイミングでボブに200円返金されます(③-2)。続いてボブが400円相当でビッドしたとしましょう(④-1)。同時にイブが用意したスマートコントラクトに対して返金されようとしますが(④-2)、イブのスマートコントラクト内に送金の際に呼ばれる関数内にわざとエラーを発生させるような処理があると、エラーに引きずられてボブのビッドも成立しません。つまり、以降は誰もビッドできなくなり、イブは必ずオークションに勝つことができるのです。田篭は「スマートコントラクトのプログラムを開発する際には、こういった脆弱性が入り込む可能性を意識しなければなりません」と話します。

 

Webアプリケーションの世界では、脆弱性を排除するノウハウが蓄積されており、安全性の高いプログラムを作成するためのセキュアコーディングが体系化されています。しかし、スマートコントラクトはまだまだ開発者の数も少なく、ノウハウも蓄積されているとは言い難いのが現状です。脆弱性が存在するスマートコントラクトがリリースされ、大きな被害を生むことは十分に考えられます。

 

田篭はスマートコントラクトの脆弱性をリリース前に潰しこむことも重要だが、それでも脆弱性が発見されることを前提として被害を最小化するような仕組みを設けることも重要だと語ります。

 

「先にお話したとおり、ブロックチェーンでは発見された脆弱性を突いて、永続的に攻撃される可能性があります。そこで、緊急停止ボタンのような仕組みを設け、脆弱性が発見された場合はすべての処理を受け付けなくする防御策を組み込むといったことが考えられるでしょう。またスマートコントラクトのプログラムを作成した際には、セキュリティの知見がある専門家がソースコードをチェックし、脆弱性がないかを確認するといった取り組みも有効です」

 

スマートコントラクトは大きな可能性を秘めた技術ですが、脆弱性を突いた攻撃が行われた場合に大きな被害が生まれる可能性もあります。スマートコントラクトを利用するのであれば、こうしたリスクも視野に入れなければなりません。

 

  • 直訳して「賢い契約」と解釈され、プログラム化された自動的に実行できる契約を指します。証券決済、不動産取引、シェアリングエコノミーをはじめ、契約などを伴うさまざまな領域での適用が検討されています。

 

  • Facebook
  • Twitter
  • LinkedIn
NRIジャーナルの更新情報はFacebookページでもお知らせしています

NRI JOURNAL新着