ホームページ  >  記事  >  Uniswap V4 から Artela ネイティブ プロトコルまで、DeFi フック革命の高度な旅

Uniswap V4 から Artela ネイティブ プロトコルまで、DeFi フック革命の高度な旅

WBOY
WBOY転載
2024-04-30 16:40:021121ブラウズ

フックとは

フック、つまりフック プログラミングは、開発者がシステム、アプリケーション、またはライブラリの実行パスを実行できるようにするために、事前定義された関数またはコード ブロックであるフックを使用できるようにするプログラミング モデルです。元のコードを変更せずにカスタム コードを挿入します。フックは、オペレーティング システム、フレームワークとライブラリ、Web 開発、プラグイン システムなど、多くのプログラミング環境やフレームワークでよく使用されます。

フックを使用すると、開発者は、変更や拡張の要件ごとに元のコードを変更することなく、プログラムのスケーラビリティとカスタマイズ性を高めることができ、コードをクリーンで安定した状態に保つことができます。フックはソフトウェア拡張のための洗練された実装方法を提供し、ソフトウェア設計において非常に役立つプログラミング モデルです。

特に、AOP (アスペクト指向プログラミング) は、フック プログラミングと比較されることがよくあります。AOP は、横断的な関心事を実装するモジュール型プログラミング パラダイムであり、その目標は、ビジネス ロジックなしで主要な機能の強化や変更を変更することではありません。ここでは AOP については詳しく説明しません。AOP は、HooK プログラミングのより高いレベルの抽象化であると単純に考えることができます。

Uniswap V4: フック革命

从Uniswap V4到Artela原生协议,DeFi Hooks 革命的进阶之旅

2023 年 6 月、Uniswap は Uniswap V4 ホワイトペーパーのドラフト版を発表し、公開しました。Uniswap V4 の重要な機能はフックの導入です。

実際、Web2 金融システムでは通常、高度なカスタマイズとスケーラビリティが必要なため、フックは広く使用されています。トランザクション処理時などのカスタマイズされたシナリオでは、フックを使用して、二次検証、リスク管理検出、マネーロンダリング対策 (AML) 戦略など、トランザクション実行の前後に追加の検証ロジックを挿入します。スケーラビリティ シナリオには、フックを介した外部 API またはマイクロサービスとの統合が含まれ、ID 認証サービス、為替レート変換、支払いゲートウェイなどの金融システムの新機能を拡張します。しかし、UniswapはDeFiにフックを導入することで前例を作った。

Uniswap V4 フックは、基本的に開発者によって作成および定義された外部コントラクトです。流動性プールの作成時に、フック コントラクトをバインドすることを選択できます。その後、流動性プールは以前にバインドされたフック コントラクトを呼び出して、ライフ サイクルのさまざまな段階で指定された操作を実行し、高度なカスタマイズを提供します。開発者は、Uniswap のフックに基づいて、よりパーソナライズされた取引シナリオに対応し、次のような豊富な機能を備えた DApps を構築できます。

  • 動的手数料: フックを通じて、流動性プールは市場のボラティリティやその他の入力パラメーターに基づいて手数料を動的に調整し、市場によりよく適応できます。条件;
  • オンチェーン指値注文: フックはチェーン上で指値注文を作成および実行でき、ユーザーは指定された価格で取引できます。
  • 時間加重平均マーケットメーカー (TWAMM): フックメカニズムを使用して流動性プールを作成します。これは、大量の注文トランザクションを一定期間にわたって均等に分散する TWAMM 戦略をサポートします。

現在、Uniswap V4 は 4 つのグループのフック コールバックをサポートしており、各グループには次のコールバックが含まれています:

  • beforeInitialize/afterInitialize: 流動性プールを初期化します。
  • beforeModifyPosition/afterModifyPosition: 流動性を追加/削減/削除します。 afterSwap: 交換;
  • beforeDonate/afterDonate: 寄付 (Uniswap V4 によって導入された新機能で、トランザクション範囲内で流動性プロバイダーにチップを提供します)。
  • 以下の図は、ホワイトペーパーに示されている beforeSwap/afterSwap フックのプロセスです。スワップの実行前後に、最初に流動性プールの対応するフックに対応するフラグがオンになっているかどうかがチェックされることがわかります。オンにすると、コントラクトの対応する関数が呼び出されます。

从Uniswap V4到Artela原生协议,DeFi Hooks 革命的进阶之旅これらのフックは、トランザクションの開始前とトランザクションの終了後に実行できるため、オンチェーンの価格注文と同様の機能を実現できます。ユーザーはフック コントラクトに指値注文を出し、afterSwap コールバックでカスタムまたはマネージド オラクルを使用して、価格が指値を満たしているかどうかを判断します。満たしている場合、トランザクションは実行されます。キャンセルされる。

Uniswap V4 は、フックを通じて流動性を DApp 自体の開発に深く結びつけ、DApp 機能を強化すると同時に Uniswap のネットワーク効果も強化し、DeFi エコシステム全体の基盤となるインフラストラクチャーとします。

Uniswap V4 フックのセキュリティ問題

从Uniswap V4到Artela原生协议,DeFi Hooks 革命的进阶之旅BlockSec チームは、フック コントラクト自体が悪意があるという事実に加えて、良性のフック コントラクトも非常に危険にさらされる傾向があることを調査しました。脆弱性。 BlockSec チームは、Awesome Uniswap v4 Hooks リポジトリ (コミット ハッシュ 3a0a444922f26605ec27a41929f3ced924af6075) を分析し、リポジトリ内のプロジェクトの 30% 以上が脆弱であることを発見しました。これらの脆弱性は主に、Hook、PoolManager、および外部サードパーティ間のリスク相互作用に起因しており、主に 2 つのカテゴリに分類できます:

  • アクセス制御の問題: 主な懸念事項は、Uniswap V4 のコールバック関数です。これらの関数は PoolManager によってのみ呼び出す必要があり、他のアドレス (EOA やコントラクトを含む) から呼び出すことはできません。たとえば、報酬がプール キーによって分配される場合、対応する関数がどのアカウントでも呼び出せる場合、報酬が誤って請求される可能性があります。したがって、特にフックはプール自体以外の他の関係者によって呼び出される可能性があるため、フックに対する強力なアクセス制御メカニズムを確立することが重要です。
  • 入力検証の問題: 一部の脆弱なフック実装によるもの 不適切な入力検証に起因するさまざまな種類の攻撃、よく知られたリエントラント攻撃を含む。最も一般的な状況は、信頼できない外部コントラクトがいくつかの主要なフック機能で呼び出されるというもので、これらの脆弱なフックを攻撃するために、攻撃者は自分の偽のトークン用に悪意のある資金プールを登録し、そのプールを呼び出してその資金を使用することができます。操作を実行します。プールと対話する際、悪意のあるトークン ロジックが制御フローをハイジャックして、望ましくない動作を実行します。

機密性の高い外部/パブリック関数への必要なアクセス制御が適切に実装され、上記 2 種類のフックに関連するセキュリティ リスクを軽減するために入力パラメーターが検証されたとしても、特にフックの場合、コントラクトの脆弱性自体を完全に回避することはできません。アップグレード可能な契約として実装されているため、OpenZeppelin の UUPSUpgradeable 脆弱性と同様の関連問題が発生する可能性もあります。

その理由は、フックプログラミングによりスマートコントラクトの複雑さが増し、それによって攻撃ベクトルが増加するためです。通常のスマート コントラクトの場合、OpenZeppelin には、それに基づいて開発されたコントラクトを安全にするための一連のベスト プラクティス ライブラリがありますが、本質的には開発者に「安全な使用上の制約」を追加します。フックコントラクトでは、通常のコントラクトに比べて、より厳しい「安全使用制約」が求められます。したがって、フック プログラミングが広く使用されるためには、安全な実行環境、フックに適したプログラミング パラダイム、およびより厳格な使用上の制約といった包括的なフレームワークが必要です。

Artela の側面: プロトコル レベルでのフック プログラミングのサポート

从Uniswap V4到Artela原生协议,DeFi Hooks 革命的进阶之旅

Uniswap V4 フックはスマート コントラクトを通じて実装されますが、そのセキュリティの問題もプロトコル レベルでのサポートはありますか?フックプログラミングソリューション? Artela Aspect がその答えを与えてくれます。

Artela は、開発者がモジュール式で機能が豊富で、スケーラブルでカスタマイズ可能なアプリケーションを構築できるように設計された、拡張性と高性能の EVM 互換レイヤー 1 ブロックチェーン ネットワークです。 Artela は、新しいプログラマブル モジュールを Aspect と呼ばれるネイティブ拡張機能として定義し、ブロックチェーン ネットワークに AOP を革新的に導入します。アスペクトは、フックのコールバックと同様に、接続ポイント、つまりトランザクション処理ライフサイクル全体でアスペクトが実行される場所を指定する必要があります。

  • ブロック初期化:
  • トランザクション検証。 : トランザクションの検証;
  • Pre Execute: 実行前;
  • Post Execute: 実行後;
  • Block Finalize: ブロックが完了します。

Aspect は現在 Typescript のみをサポートしており、そのコードは WebAssembly (WASM) バイトコードにコンパイルされ、Artela ネットワークにデプロイされます。アスペクトがデプロイされた後、スマート コントラクトの所有者はコントラクトをアスペクトにバインドできます。スマート コントラクトの所有者は、その外部アカウント (EOA) アドレスがスマート コントラクトの isOwner(address) returns (bool) チェックに合格できることを意味します。

スマート コントラクトを呼び出す後続のトランザクションは、以下の図に示すように、Aspect によって処理されます:

从Uniswap V4到Artela原生协议,DeFi Hooks 革命的进阶之旅

Artela Aspects は、プロトコル レベルのフック実装として、Uniswap V4 フックと比較して非常に大きな利点があります:

まず第一に、Artela アスペクトは WASM を使用してコードを実行するため、実行効率が EVM よりも数桁高くなります。

第二に、Artela アスペクトは DeFi のコア ロジックだけでなく、トランザクション ライフ サイクル全体をフックすることができます。より豊富な機能を備えた DApp を構築します

最後に、最も重要なことは、Artela アスペクトは安全なサンドボックス環境で独立して実行されるため、アスペクトの実行がコントラクト実行のセキュリティに影響を与えないことです。

Artela Aspects の分離により、通常のコントラクトとしてのフック コントラクトと他の外部コントラクト間の相互呼び出しが制限され、Uniswap V4 フックのアクセス制御と入力検証の問題点が解決されます。 Uniswap のような DeFi 契約の場合、Artela にデプロイすることで、より高速で強力かつ安全なフック エクスペリエンスを楽しむことができます。

概要

Uniswapは、DeFi業界の重要な参加者およびリーダーとして、業界の進歩を促進し、機能を改善する上で重要な役割を果たしてきました。今回Uniswap V4で導入されたフックは、間違いなくDEXの発展を主導するでしょう。後継者による。

しかし、Uniswap V4 フックは、スマート コントラクト自体の制限によって制限されます。プロトコル設計がどれほど堅牢で、ツール ライブラリがどれほど完璧であっても、フック コントラクトと他の潜在的なセキュリティとの間の相互呼び出しを根本的に防ぐことはできません。脆弱性。

高性能 EVM 互換レイヤー 1 ブロックチェーン ネットワークとして、Artela はプロトコルの最初から WASM 内で独立して実行されるように Aspect を設計し、フック プログラミングをネイティブにサポートし、セキュリティを大幅に向上させました。これは、セキュリティを命とみなす DeFi プロトコルのための高度なソリューションを提供します。

以上がUniswap V4 から Artela ネイティブ プロトコルまで、DeFi フック革命の高度な旅の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はpanewslab.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。