今週の注目トピック
Tomoaki Kitaoka(@tapioca_pudd)より
今週は、Infura、Uniswap、Coinbaseと主要サービスでのインシデントが相次ぎ、さらにDeFiではフラッシュローンを悪用した攻撃が頻発しました。これらは、ブロックチェーンのプロトコルレベルの問題ではなく、周辺ツールのバグやアーキテクチャーの設計が原因となったものであり、今後の課題として周辺ツールのセキュリティ強化が求められます。そんな中Uniswapは「分散型」取引所である強みを生かし、周辺ツールへの故障耐性の高さを発揮しました。また、今月6日まで開催されていたOSDI '20では安全なOSを実現するための分離とデータ共有の原則を提案するRedLeafが採択されました。RedLeafは分離の論拠をハードウェアに依存せず、ソフトウェアとして実現し、さらに高いパフォーマンスも期待できることから注目が集まります。
リスト編と合わせてご覧ください。
Section1: PickUp
●Infura、Uniswap、Coinbaseと主要サービスでのインシデントが相次ぐ
今週はノードプロバイダーのInfura、DEXのUniswap、米国の大手仮想通貨取引所のCoinbaseといった主要サービスにおいてインシデントが相次いだ。インシデントの原因はそれぞれ異なるものの、インシデントが各サービスにもたらした影響がそれぞれ興味深かっため、以下考察を行う。
ノードプロバイダーのInfuraでは、Ethereumクライアントの一つであるGethのバグによって、一時トランザクションをブロードキャストできない事態が発生した。バグの詳細はInfuraのブログにて公開されているが、gethのv1.9.9とv1.9.13に含まれるバグが原因だったと公表している。また、ブログでは今回のインシデントはサービスローンチして以来、過去4年間で最も深刻なものと位置付けている。なおInfuraのサービス停止に伴い、Infuraを利用する各サービスも同様に利用できない事態に陥った。Ethereumではトランザクション自体は世界中に分散したノードによって実行されるが、Infuraに依存するサービスは、Infuraが提供するノードが単一障害点となってしまうことが浮き彫りとなった。InfuraはBesuなどの他のEthereumクライアントも運用するなどして、対策を行うと表明している。サービス提供者は、複数のノードプロバイダーを設定するなどして、事前にノードプロバイダーのインシデントに備えておくことが求められる。
DEXのUniswapでは、CloudFlare IPFS gatewayが原因で、一時ウェブサイトにアクセスができない事態が発生した。それでもUniswapは、他のIPFS gatewayなどを利用することで利用可能であり、「分散型」取引所である強みを発揮した。一方で、仮想通貨取引所のCoinbaseではアプリ及びウェブサイトがダウンし、一時的にサービスを利用できず、資産がロックされる形となった。今回の両取引所のインシデントからは、中央集権的な仮想通貨取引所と比較した時のDEXの強みが顕著に現れる形となった。
どんなプログラムも完全ではなく、必ずバグや故障は付き物であるため、今回の各インシデントを通じて、サービス提供者は万が一のために、インシデント対策を施すことの重要さ、ユーザーはサービスの持つリスクを十分に理解した上で利用することの重要さが再認識された。(文責・Tomoaki Kitaoka)
●フラッシュローンを悪用した攻撃が頻発
近頃フラッシュローンを悪用した攻撃が頻発している。ここ一週間でもAkropolisから2億円、Cheeseから3億円、Origin Protocolから7億円、Value DeFiから6億円盗まれている。本年の2月にbZxから1億円流出した事件や、先月Harvest Financeから24億円流出した事件も記憶に新しい。資金流出だけでなくMakerDAOのようなガバナンス投票に悪用された事件も起きている。
フラッシュローンとは、1つのトランザクション内で資産の借入と返済を無担保で行えるDeFiの機能である。そのトランザクション内で資産を返せるなら、その資産をどのように扱ってもよい。貸し手はプロトコルに定められている手数料(0%~0.3%程度)を得られる。借り手が資産を返せないならトランザクションは失敗するため、貸し手・借り手ともにノーリスクである。
フラッシュローンは画期的な金融プリミティブではあるが、誰でも多額の資産をリスクなしで動かせるため悪用される事が多い。フラッシュローンを用いた攻撃が多発する要因としては、基本的に脆弱性がアーキテクチャに由来するものであり、コード自体は正しく実装されているためコード監査時に脆弱性として発見されにくい点がある。
フラッシュローンによる資金流出攻撃は、基本的には攻撃対象のDeFiコントラクトが依存するプライスフィードを操作することで行われる。2月に発生したbZxの資金流出事件では、dYdXからフラッシュローンを行い、bZxがプライスフィードとして利用するKyber Networkで取引をすることで、bZxが利用する価格情報が操作された。bZxはレンディングプラットフォームであり、価格情報が操作された結果、本来なら借りられない額の資産を借りられるようになり、攻撃者はその資産を返還しないことで利益を得た。
出典: https://blog.chain.link/flash-loans-and-the-importance-of-tamper-proof-oracles/
同様に、最近はCurveのプールをプライスフィードに利用しているDeFiコントラクトが攻撃されている。Harvest FinanceはCurveプールを操作されることで資金が流出しており、Akropolisはさらにre-entrancy attackを組み合わせた攻撃によって資金の流出が発生している。
これらの攻撃の対策としては、単一の取引所のプライスフィードを利用せずに、分散型オラクル(Chainlink等)を利用することが議論されている。
また資金流出以外にも、MakerDAOのガバナンス投票にフラッシュローンを利用し、7億円分の投票権を行使された事件も発生した。幸い攻撃者には悪意はなく、フラッシュローンを用いれば誰でもガバナンスの投票結果を左右できることを示すデモンストレーションのようだったが、今後の対策が望まれている。
これから先はより複雑なフラッシュローンを用いた攻撃が発生すると思われる。コードの監査には、監査対象と関係するプロトコルがフラッシュローン等によって操作された場合まで考慮することが一層求められるだろう。(文責・岡南)
●安全なOSを実現するための分離とデータ共有の原則を提案するRedLeaf
今月6日まで開催されていたOSDI '20から、カルフォルニア大学のNarayanan氏らによる「RedLeaf: Isolation and Communication in a Safe Operating System」を紹介する。安全なOSを実現するために必要な分離と、データ共有の原則を定義し、実装・評価を行う内容だ。興味深い点として、分離の論拠をハードウェアに依存せず、ソフトウェアとして実現している。その実現のためRustのゼロコスト抽象化、メモリ安全性、所有権システムを活用している。
RedLeafはOSの基本的な機能として、スレッド実行、スケジュール、低レベル割込みのディスパッチ、メモリ管理のインターフェースを提供する。ここでは、メモリ管理に注目して紹介する。安全なOS実現には、システム全体を保護するため、障害を分離するメカニズムが必要である。RedLeafでは分離の単位を「ドメイン」として定義し、ドメインに障害が起きた際、当該ドメインに割り当てられたメモリを安全に解放できる仕組みを考案している。具体的にはメモリ割り当てを2段構成にしており、一段階目はドメインごとに大きな単位で割り当てる。二段階目は、前段で割り当てられたメモリ領域の中でドメインがオブジェクトと割り当てる。ドメインに障害が起きた場合は一段回目に割り当てた大きな単位ごと解放する設計となっている。
ここで課題となるのが、ドメインを跨いだデータ共有だ。データがドメインを跨いで共有されると前述のようなメモリ解放では、他ドメインにあるメモリ領域が解放されない場合がある。これを解決するため、RedLeafはドメイン間でやり取りされるデータについて、所有権を完全に移すか、immutableな借用のみを許可する。なお、Rustではmutableな借用も可能であるが、RedLeafでは許可していない。この理由は、あるドメインで障害が発生した場合、巻き戻し処理によって破損したオブジェクトが呼び出し元に返されると一貫性を壊す場合があるためだ。
この他にもデバイスドライバの回復を可能にする仕組みなども提案されており、システムの保護に必要なインターフェースを自動的に導出するIDLも提供している。
締め括りでは、実用性やパフォーマンスの原則については将来的な課題としながらも、障害分離の原則を提案できたことは前進だとしている。Singularity OSの「A Journey, not a Destination」という言を引用していたことも印象深い。(文責・恩田)
Section2: ListUp
1. Bitcoin
●Lightning Networkエコシステムオーバービュー
2. Ethereum
3. Smart Contract・Oracle
4. DeFi
●1inch、DEXアグリゲーターをv2アップグレード。ディスカバリーやルーティングアルゴリズムを強化
●Yearn、独自のコード監査チームのyAcademyを提案
5. Enterprise Blockchain Infrastructure
●(特になし)
6. Other Chain
●(特になし)
7. China Tech
●(特になし)
8. Digital Identity
●Chainlinkによるデジタルアイデンティティについてのコラム。関連ソリューションとしてDECO、Bloom、Decentrなど
9. 統計・論考
●分散型金融システムにおけるガバナンス - BGINを通じたマルチステークホルダー・アプローチの実践(PDF資料はこちら)
10. 注目イベント
●V20ミーティング(11/16-11/18)
●OECDのブロックチェーンポリシーフォーラム(11/16-11/20)
●Hong Kong Blockchain Week(11/17-11/19)
●ConsenSys Product Roadshow(11/17-11/19)
●Talk Show - EthBerlin 2.5(11/19)
●BLOCKCHAIN FOR SUPPLY CHAIN MANAGEMENT VIRTUAL CONFERENCE(11/19)
●情報処理学会 | ブロックチェーンの社会実装とそのインパクト(11/20)
●BGIN Block #1(11/23-11/25)
●Blockchain GIG(12/2)
●Ethereum in the Enterprise 2020(12/3-12/4)
●Financial Cryptography and Data Security 2021(3/1-3/5)
●CoDecFin 2021: The 2nd Workshop on Coordination of Decentralized Finance(3/5)
●Asia Crypto Week(3/22-3/28)
Disclaimers
This newsletter is not financial advice. So do your own research and due diligence.