文を書く:Sam Sun、有名な白い帽子、暗号化された風投機構パートナーの
コンパイル:Perry Wang
2010.9年末、私は「担保不足からローンを取って、利益を得る」というスレッドを発表しました。私は文で一つ以上のトークンに依存する正確な価格データを述べ、エーテル坊を中心にDAppを適用する経済攻撃を行った。現在は2020年末ですが、残念なことに、多くのプロジェクトはすでに似たようなエラーが発生しています。最近の例はHarvest Financeがハッカーに攻撃されたことで、契約ユーザーの集団損失は3300万ドルになりました。
開発者は再入国を熟知していますが。tracncyなどの脆弱性がありますが、価格預言機の取り扱いについてはよく考えていません。これに対して、長年のreen
yベースの脆弱性は減少していますが、価格預言機に基づいて操作された脆弱性は現在上昇傾向にあります。このような操作に対して、安全意識を高めるために、ある人が資源を明確に与えなければならないと決めました。
本稿は三つの部分に分けられる。このテーマに慣れていない読者に対して、これは予言機と予言機の操作について紹介した科学普及の文章です。知識のレベルをテストしたい読者は直接判例研究にジャンプできます。過去のいくつかの予言機と関連した脆弱性と攻撃事件を振り返ってみます。最後に、いくつかの開発者が適用できる技術をまとめて、価格預言機による攻撃から自分たちのプロジェクトを保護します。
予言機が事件を操作するとは?実際のケースでは、例えば2015年12月1日、水曜日。。あなたの名前はDavid Spargoです。オーストラリアのシドニーでオーストラリアの「電音黒馬」Peking Dukのコンサートを見ていました。このバンドを直接見たいかもしれませんが、2人の警備員があなたのバックグラウンドに行く道を遮りました。彼らは普通の通行人を楽屋に入れることができません。
バックグラウンドの人のように見えたら、警備員はどう反応するかと思うかもしれません。家族は必ず楽隊のバックグラウンドを見学することが許されます。警備員を説得するだけで、あなたはバンドのメンバーの親戚です。考えてみたら、計画を立てました。天才計画と言われるかもしれません。
準備が整いましたら、自信を持って保安に向かってください。David Spargoと申します。Peking Dukの家族を紹介してください。保安官が証拠を見てほしいと要求した時、彼らに反論できない証拠を示してください。科です。
David Spargoは、Peking DukのWikipediaのフレーズを修正しました。「家族構成員」に自分の名前を付けました。名場面
警備員が手を振って通過させます。待ってください。一分、二分間です。5分後、警察が顔を出す前に、速やかに逃げるべきかどうかを知りたいです。あなたが去る時、バンドメンバーの一人であるレベルン・スタイルがやってきて自己紹介をしました。彼と一緒に楽屋に行きました。バンドはあなたの知恵と知恵がとても印象的で、最後にあなたと一緒にビールを何杯か飲みました。後で彼らはFacebookページで発生したことを共有しました。

価格預言機は何ですか?価格預言機は、大まかに言って、価格情報をお聞きするものです。米ドラマ「Office」のストーリーに例えて、PamがDwightに向けてSchrute Buckの現金価値を尋ねると、Dwightは価格預言機の役割を果たします。
train.エーテル坊のブロックチェーンの中では、すべて知能契約ですので、価格預言機です。そのため価格預言機を区別してどのように価格情報を取得するのがより効果的です。一つの方法は、価格APIまたは取引所から既存のチェーン下の価格データを収集するだけで、これらのデータをチェーンに導入することができる。もう一つの方法は、諮問チェーンを介して中心化取引所に上がって瞬時価格を計算することができる。

2つの選択にはそれぞれ長所と短所があります。データの変動に対する反応が遅いのは通例で、使い道を試してみると良いかもしれません。悪いことかもしれません。しかし、通常は少数の特権ユーザーがデータをチェーンに運ぶ必要があります。だから、彼らが悪にならないと信じて、不良情報を押し付けられないです。チェーン上のデータにはいかなる特権も必要ではありません。アクセスは常に最新のものであるが、これは攻撃者がそれを操作しやすく、壊滅的な故障を引き起こす可能性があることを意味する。
何か問題がありますか?いくつかの整合不良価格預言機がDeFiプロジェクトに深刻な財務的損害を与えた事例を簡単に見てください。
Synethetixは、他の貨幣資産に触れることができる派生品プラットフォームです。このような取引を取りまとめるために、Synethetix(当時)は1つのカスタムチェーンの下で価格のフィードフォワードの実現メカニズムに依存していました。その中で秘密価格のセットによって、まとめた価格を計算して、決まった時間間隔でチェーン上で発表します。その後、ユーザーがこれらの価格で支持する資産に対して、多くを作ったり、手抜きをしたりすることができます。
029年6月25日、Synchetixが依存していた価格源の一つがウォンの価格を誤報しました。本当の為替レートより1000倍高いです。価格預言系のために他のところの他のエラーを統括して、この価格はシステムに受け入れられ、チェーン上に発表されました。その中の一つの取引ロボットはSKRW市場で素早く取引を行います。トレーン.この自動取引ロボットは最終的に10億ドル以上の利益を上げました。Synchetixチームはトレーダーと交渉して資金を返しましたが、その代わりに誤り訂正の賞金を与えました。トレーダーらn.Synethetixは正しく予言機契約を実行し、複数のデータソースからオファーを導入して、チェーンのリリース前に価格の変化を予測することを防止します。しかし、上流価格は故障の孤立事例を供給し、壊滅的な攻撃をもたらした。これはチェーン下のデータ価格預言機を使うリスクを説明しています。価格はどのように計算されているのか分かりませんので、システムをよく設計して、潜在的なすべての故障モードを正確に処理する必要があります。
担保不足ローン
前に述べたように、私は2019年9月に、チェーン上のデータを使用した価格預言機に関するリスクを概説したスレッドを発表した。原紙を読むことを強く勧めますが、中にはかなり多くて複雑な技術の詳細があり、消化しにくいかもしれません。そこでここで簡単な説明を提供します。
もしあなたが中心化ローンにブロックチェーンを導入することを望むなら。ユーザーは資産を担保として預け入れ、その預け入れ資産の価値によって決められた一定金額のその他の資産を借り入れることができます。ETHを抵当としてドルを借りたいと仮定すると、ETHの現在の価格は400ドルで、抵当比率は150%です。
もしユーザーが375 ETHに預け入れたら、15万ドルの抵当に預け入れます。彼らは1つの担保に1.5ドルで1ドルを借りることができますので、システムから10万ドルまで借りることができます。トレイn.もちろんブロックチェーンの中では、簡単に1 ETHの価値400ドルを宣言するほど簡単ではないです。悪意のあるユーザーは簡単に1 ETHの価値を1000ドルと宣言して、システムからお金を全部盗むことができます。そのため、開発者にとっては、Uniswap、Kyberなどの最近の価格預言機のインターフェースが必要です。または、センター取引所に行く現在の現物価格です。

は一見、正しいやり方のようです。結局、ETHを買いたい時や売りたい時には、ユニセフの価格は大体正しいです。どの偏差もキャリーによって迅速に修正されます。しかし、実際には、中心化取引所に行く現物価格は取引期間中に非常に間違っている可能性があります。
Uniswap保存資産の関数式を考えてみます。その内示は備蓄保有資産によるものです。量は計算しますが、ETHとUSDの間の取引に伴って、備蓄資産は絶えず変化しています。悪意のあるユーザーがあなたのプラットフォームからローンを受ける前と後で取引をするとどうなりますか?
ユーザーはあなたのプラットフォームでローンを借りる前に、彼らは200万ドルで5000 ETHを買います。Uniswap取引所の現在の価格は1 ETH=2600ドルです。今、彼らの375 ETHは担保として、65万ドルの資産を貸し出すことができます。そして彼らは元の5000 ETHを200万ドルに両替して、Uniswap内の価格をリセットします。あなたのローンプラットフォームは55万ドルの損失を受けました。

この事例は、中心化取引所を価格預言機として使用する際に最も一般的な誤りを説明しています。攻撃者は取引期間中にほぼ完全に制御されます。この価格を正確に読み取るには、物が安定する前に重さ計の読みを読むようにします。間違った数字を得るかもしれません。一定の状況では、大きな損失を与えるかもしれません。
Synethetix MKR操作
2019年12月、Synchetixは再び価格預言機の操縦式攻撃を受けた。注目すべきは、今回の攻撃はチェーン上の価格データとチェーン下の価格データの間の障害を突破したことです。
Redditユーザu/Mussathe RedGardは、攻撃者がsMKRとiMKR(逆MKR)に対して非常に疑わしい取引を行っていることを観測した。攻撃者はまずsMKRを購入して、間接的にMKRのマルチポジションを買いました。その後、Uiswap ETH/MKR取引から大量のMKRを買いました。。しばらく待ってから、攻撃者がsMKRを売ってiMKRに変えてMKRをユニセフに戻します。そして彼らはこのプロセスを繰り返した。
バックグラウンドでは、攻撃者はUniiswapを通じて取引を行い、SynchetixプロトコルでMKRの価格を移動することができます。これはSynethetixに依存しているチェーンの下の価格供給が実際にMKRのチェーン価格に依存しているためかもしれません。そして、十分な流動性がないので、キャリーは市場の最適価格配置への回帰を促進します。

このイベントは、価格データをチェーンで使用していると考えていますが、実際にはまだチェーンで価格データを使用している可能性があり、これらのデータを使用する複雑な状況に直面しているという事実を説明しています。
020年2月、bZx協議は数日間で二回になりました。ハッカーが攻撃して、ハッカーに約100万ドルを奪われました。ここでは二回のハッカー攻撃事件に関する優れた技術分析が見られますが、本論では二回目のハッカー攻撃についてのみ議論します。
2回目のハッカー攻撃では、攻撃者はまずETHを使ってKyberプロトコルのほぼすべてのSUSDを購入しました。そして攻撃者はSynethetix自身から第二陣のSUSDを購入し、bZxに保存しました。攻撃者は抵当にsUSDを使って、許容できる最大金額のETHを貸しました。そして彼らはsUSDをKyberに戻しました。train.ずっと関心を持っているなら、基本的に同じ住宅ローンの攻撃方法であると認識します。ただ違った担保を使っています。異なるセンター取引所に行きます。
yVault脆弱性
020年7月25日日、私はyEarnに彼らが新しく発売したyVault契約の中の一つの合意の抜け穴を報告しました。この間違いに関する公式資料は読めますが、下で簡単にまとめます。
yVaultシステムは、自分でトークンを管理することなく、ユーザーがトークンを保存して収益を得ることができます。yVaultの内部で、金庫はyVault貨幣鋳造の総量と預け入れの下の貨幣の総金額を追跡します。単一のyVaultトークンの価値は鋳造のトークンと預け入れトークンの比率によって決まる。金庫で獲得した収益はすべて鋳造されたyVaultトークンによって平分されます。
最初のyVaultは、ユーザがUSDCを利用してBalancerプロトコルのMUSSD/USDC流動性プールに流動性を提供して収益を上げることを可能にする。。ユーザがBalancerプールに流動性を提供すると、BPTはリターンとして得られ、このBPTは流動性プールの一部の資産を交換することができる。したがって、yVaultは、BPTを使用して請け戻すことができるMUSSD/USDC金額に基づいて、その保有価値
計算します。この実施は正しいようですが、残念ながら、前述の危険原則は同じです。取引期間中にBalancer流動性プールの状態が不安定で、その価格は信頼できません。この場合、Balancerによって選択された結合曲線のために、ユーザはUSDCからMUSSDに交換して1対1の為替レートを得ることはできないが、実際には流動性プールにMUSSDを残すことがある。これはBPTの価値が一時的に膨張することを意味し、これは攻撃者に悪意のある価格操作の穴を与え、それによって金庫を乾燥させる。トラックトレーン.この事件は価格預言機がいつも便利ではないことを示しています。開発者はそれらが摂取しているデータの種類を警戒して、これらのデータが特権ではないユーザーによって簡単に操作できるかどうかを考えています。Trant.Harvest Financeハッカー事件
.020年10月26日、未知のユーザーがHarvest Financeの流動性プールに侵入した可能性がある技術を採用しています。攻撃者は取引を行うことによってCurveプロトコルの流動性プールの中のUSDC価格を抑えて、Harvest流動性プールに入ることができます。前の取引を逆方向に操作して価格を回復してから、より高い価格でHarvest流動性プールを終了します。これはHarvestの流動性プールに3300万ドル以上の損失をもたらしました。
Harvest Finance公式事後分析レポート
私はどうやって自分を守るべきですか?今まで、共通性を認識してほしいです。いつも明らかではないです。価格預言機を使って、適切な予防措置を守らないと、攻撃者はあなたの契約を騙して多くのお金を巻き上げられます。一苦労永逸の解決策はないが、次は過去のプロジェクトの効果的な解決策である。その中の一つもあなたに似合うかもしれません。
浅水市场では、トラックに飞び込んではいけません。プールの浅端に飞び込むように、浅水市场に飞び込むのも苦痛です。多くの支出を招き、いつまでもあなたの生活を変えることができます。計画使用の特定価格預言機の複雑さを考慮する前に、トークンが十分に流動性を持っているかどうかを考慮してください。
一鳥は手にして、二鳥に勝ると、林
Uniiswap上の潜在為替レートが乱用されてしまいます。目を魅惑したいですが、袋に入れる前に、あれらは鏡の中の花、水中の月だけです。同じように、二つの資産の間の為替レートを決定する一番いい方法は直接資産を交換することです。この方法は素晴らしいです。回収していないので、不確定な要素もありません。しかし、このようなやり方は元の資産を持つ必要があるローンプラットフォームには役に立たないかもしれません。
ほぼ中心化された預言機
データに依存する預言機をまとめたものです。もしそうなら、なぜ人のために導入しないのですか?インテリジェント契約を作成し、ユニスワープなどを中心に取引所の最新価格を更新しますが、少数の特権ユーザーが請求した時だけ更新します。今は攻撃者が価格を操作できるとしても、あなたの契約を実際に使うことはできません。train.この方法は簡単で使いやすくて、しかも迅速に効果が現れますが、それでもいくつかの欠点があります。ブロックチェーンが渋滞している時、あなたは期待通りの価格更新ができないかもしれませんが、サンドイッチ攻撃を受けやすいです。また、あなたのユーザーは、実際に価格の更新を維持すると信じています。
減速帯train.価格預言機を操作するのは時間が極めて敏感な操作です。裁定者はいつも関心を持っています。そして機会があれば、どんな優れた市場でも最適化してほしいです。攻撃者がリスクを最小限に抑えるためには、価格預言機を操作するために必要な二つの取引を単独の取引で行う必要があります。これでは、利潤者は中間に横に足を踏み入れることができません。プロトコル開発者として、あなたのシステムがサポートされているなら、ユーザのエントリと終了システムの間に短いブロックを展開する遅延だけで十分です。
.もちろんこれは契約の組み合わせに影響を与えるかもしれませんが、鉱山労働者とトレーダーが連携して悪事を働くことも増えています。将来的には悪い因子が複数の取引で価格預言機操作を実行する可能性があります。中に入れる人はいません。その収益からスプーンを一杯ずつ分けます。
時間重み付け平均価格TWAP
Uniswap V 2は、チェーン上の開発者のためにTWAP予言機を導入しました。この文書はこの予言機が提供している正確な安全保障を詳しく紹介しています。一般的にブロックチェーンが渋滞していない大型流動性プールに対して、TWAP予言機は高度な抗予言機が攻撃を操作する能力を持っています。しかし、その実施の本質のため、市場の変動性が大きい時刻には反応が速くないかもしれません。そして、チェーン上の既存の流動トークンの資産にのみ適用されます。
M-off-Nオファー
彼らは時々、正しいことをしたいなら、自分でやったほうがいいと言います。信頼できる友達をN人集めて、正しいと思うチェーン価格を提示してください。最高のMの答えは現在の価格としてどうなりますか?トラックこの方法は現在多くの大型プロジェクトに採用されています。Makerは信頼されたエンティティによって操作される価格ソースのセットを実行しています。CompundはOpen OracleおよびCoinbaseのような特別オファーを作成し、ChanlinkはChinlink運営者からの価格データを集約し、チェーン上で公開しています。これらの解決策の一つを選択すると、あなたは信頼を第三者に委任しました。あなたのユーザーもそうするしかないと覚えてください。オファーを要求する人がマニュアルでチェーンを更新しても、市場の変動性が大きいとブロックチェーンが渋滞している間に、価格の更新が時間通りに到着できないかもしれません。
総括価格預言機はDeFiの安全性に重要であるが、常に無視されている。価格預言機を安全に使うのは難しい問題です。自分とあなたのユーザーを兼ねる方法がたくさんあります。この文章では、発生したことを紹介します。価格預言機は攻撃事例を操作し、取引過程で価格情報を読み取ることが安全ではないことを確認し、災害による財務損失を招く可能性があります。価格預言機の操縦に対する他のプロジェクトの技術についても議論しました。結局、どの状況も唯一無二です。今の価格預言機の使い方が正しいかどうかは自分で確認できないかもしれません。そうでしたら、いつでも連絡してアドバイスを求めてください。train.