# 架構

OmniYield 嘅架構設計成模組化、唔依賴特定鏈，而且高度可擴展。

我哋嘅主要目標係建立一個唔依賴特定鏈嘅收益層，為 DeFi 入面嘅用家最大化風險調整後回報。為咗達到呢個目標，系統採用大量數據分析、先進嘅鏈下算法、嚴格安全協議、分散風險規則，同埋一個抽象化跨鏈互動複雜性嘅架構。

### 主要架構組件

<details>

<summary><strong>金庫</strong></summary>

用家進入 OmniYield 嘅入口。

呢啲符合 ERC-4626 標準嘅智能合約會安全地管理存款、接收策略報告，同埋處理提款。

佢哋作為主要介面，協調用戶資金同底層策略。

</details>

<details>

<summary><strong>執行層（Solver）</strong></summary>

OmniYield 嘅智能層。

呢啲自動化系統會持續分析跨鏈 DeFi 協議，搵出最佳收益機會，評估風險，並決定金庫嘅資產配置。

為咗提高效率，呢個處理喺鏈外計算——只會將結果落到鏈上，避免 OmniYield 嘅策略俾人仿製。

</details>

<details>

<summary><strong>策略</strong></summary>

每個金庫都最少連接一個策略合約。

呢個組件會將 solver 嘅決策轉化成動作。佢處理資產搬移嘅技術複雜性，包括代幣兌換、提供流動性、借貸、質押等等。

</details>

<details>

<summary><strong>目的地</strong></summary>

資金最終部署去邊啲具體 DeFi 協議、流動性池或者收益農場。

</details>

<details>

<summary><strong>跨鏈訊息基礎設施</strong></summary>

支撐跨鏈功能嘅基礎技術，促進唔同區塊鏈之間嘅通訊同資產轉移。

</details>

### 資產生命週期

理解資產流向有助釐清系統運作：

{% stepper %}
{% step %}
**存款**

用家喺任何支援鏈上，將單一資產類型（例如 USDC）存入相應嘅 OmniYield 金庫。已存入嘅資產會轉去 Arbitrum hub 上嘅金庫合約，並最初閒置喺嗰度。
{% endstep %}

{% step %}
**跨鏈再平衡**

* 鏈下組件（自主 Solver）會監察金庫結餘同市場狀況。當閒置資產達到某個門檻，或者喺定期優化週期期間，佢會判斷現有策略喺整合各鏈後嘅最佳配置，並提出再平衡方案。如果提案符合安全同表現限制，就會透過 Arbitrum hub 上嘅金庫合約啟動再平衡（例如，將 X 數量嘅 USDC 轉去鏈 Y 上嘅策略 A）。&#x20;
* 透過 LayerZero 同 Axelar，一個包含再平衡指示嘅訊息會由 hub 傳送到目標鏈上相關嘅金庫合約。
* 系統會執行所需步驟（例如橋接、兌換、存入等）去完成再平衡。
* 更新後嘅配置會被記錄，並透過訊息層將確認／狀態更新傳回 Arbitrum hub。呢個過程可能包括將 hub 上嘅閒置資金轉入某個策略，或者喺唔同策略之間調動資金，以追逐更高收益。
  {% endstep %}

{% step %}
**自動複投同整合報告**

* 策略合約會定期向目的地協議領取賺取嘅獎勵，轉換成金庫嘅基礎資產（例如 USDC），並自動再投資。呢個過程由獲授權嘅 Keeper 協調。&#x20;
* 績效數據，包括呢啲策略喺所有支援鏈上產生嘅獎勵，會持續回報到 Arbitrum hub。獎勵會加入金庫總價值，令存款人嘅回報自動複利增長。
  {% endstep %}

{% step %}
**提款**

* 提款唔限於存款鏈；用家可以隨時喺任何支援鏈上發起提款請求（**唔一定要同存款用同一條鏈**).
* 9% 嘅績效費會根據用家存款喺所有底層策略同鏈所產生嘅利潤計算。
* 請求會被路由到 Arbitrum hub。如果金庫有足夠閒置資金（即未有積極部署喺策略中嘅資產），提款就會即時處理。
* 如果金庫閒置資金不足，hub 就會通知策略提取所需金額。系統會優先從對整體收益（APR）影響最小嘅策略提取。視乎底層協議，呢個過程可能會稍為耐少少。
  {% endstep %}

{% step %}
**領取**

* 一旦金庫有足夠流動性，用家就可以領取提款。領取時，相應資產會透過跨鏈基礎設施轉到用家錢包。
  {% endstep %}
  {% endstepper %}

### 跨鏈架構

OmniYield 嘅基礎設施建基於一個穩健嘅 hub-and-spoke 架構：&#x20;

* **Hub：** 我哋採用 Arbitrum 作為中央營運 hub（「主鏈」）。OmniYield 協議嘅核心邏輯、複雜計算，同整體狀態管理主要都喺呢度。
* **Spoke：** 所有其他支援嘅區塊鏈都作為「spoke chain」或者「side chain」。呢啲係用家可能存款來源嘅網絡，同時亦係好多底層收益策略部署嘅地方。佢哋主要作為執行終點，接收來自 Hub 嘅指令。

<figure><img src="/files/82bc41fc3814255bce941b0b641279507b0c65ec" alt=""><figcaption></figcaption></figure>

#### **通訊流程：**

{% stepper %}
{% step %}
**彙總**

當作出再平衡決定，或者出現需要跨鏈搬動嘅用家操作（例如存款／提款）時，跨鏈訊息就會生成，並由 spoke chain 安全傳送到 Arbitrum hub。
{% endstep %}

{% step %}
**計算**

Hub 會處理呢啲傳入訊息，執行必要計算（例如跨所有 spokes 優化資產配置、計算整體金庫表現、整合費用），並根據系統全局視角作出策略決定。
{% endstep %}

{% step %}
**分發**

一旦決定作出，所需指令同交易數據就會由 Arbitrum 分發返去相關 spoke chain 上嘅智能合約執行（例如，將資金存入另一個網絡上某個特定策略）。
{% endstep %}
{% endstepper %}

{% hint style="success" %}
呢個模組化設計可以實現：

* **集中邏輯、分散執行**\
  呢個模式確保數據一致性，因為 Arbitrum hub 作為單一可信來源。實際資本部署會喺各個 spoke chain 上進行，利用每條鏈提供嘅獨特機會。
* **模組化同可擴展性**\
  新鏈、資產、策略同目的地可以用即插即用方式整合，只需要對現有程式碼庫作極少改動。\
  呢個可以降低攻擊面，同時方便開發更多產品。為咗進一步提升穩健性同功能性，OmniYield Protocol 會整合唔同 DeFi 基礎組件同基礎設施，提供最佳用戶體驗，並支援同其他金融工具無縫互動。
  {% endhint %}

### 跨鏈通訊

我哋喺眾多區塊鏈上運作 hub-and-spoke 模式，係透過採用領先嘅跨鏈訊息服務供應商而實現：LayerZero 同 Axelar（未來亦可能包括其他專為特定代幣／鏈／功能而設嘅方案）。&#x20;

LayerZero 提供輕量而高效嘅訊息傳遞，確保喺支援網絡之間有最低延遲同無需信任嘅互操作性。Axelar 則以高層路由同安全傳送通用跨鏈訊息作補充。

* **通訊骨幹：** 呢啲協議作為安全可靠嘅通訊基礎設施，將我哋嘅 Hub（Arbitrum）同所有 Spoke chain 連接起來。佢哋提供喺區塊鏈邊界之間傳送數據同指令嘅必要通道。所有訊息轉發、驗證同結算都係透過呢啲供應商安全訊息通道完成。
* **支援關鍵操作：** LayerZero 同 Axelar 會傳送核心功能所需嘅關鍵訊息，包括：
  * 通知 Hub 喺 spoke chain 上出現新存款。
  * 將 spoke chain 用家嘅提款請求轉發到 Hub 處理。
  * 由 Hub 向 spoke chain 上嘅策略合約發送指令，以執行存款、提款或再平衡。
  * 將 spoke chain 上策略產生嘅收益、績效指標同費用數據回報到 Hub。

### 整合費用報告

喺一般多鏈設置入面，每條鏈通常都係一個孤島，有自己獨立嘅邏輯同績效報告。OmniYield 採取完全唔同嘅做法。我哋認為，我哋嘅生態系統應該作為一個統一協議運作，而唔係一堆分散、按鏈部署嘅集合。

雖然 OmniYield 會由喺多條鏈上運作嘅收益策略產生費用，但協議會實施整合費用報告，即係將所有支援鏈嘅費用生成數據匯總、標準化，並喺 Arbitrum（hub）上計算。&#x20;

{% hint style="success" %}
呢樣可以實現：

* **彈性用戶體驗：** 用家唔需要擔心唔一致嘅誘因。佢哋可以喺自己鍾意嘅任何鏈上存款，並知道費用、收益機會同獎勵喺整個 OmniYield 生態入面都保持一致。
* **共享代幣經濟：** 所有協議費用，無論嚟自邊條鏈，都會計入同一個全球收入模型。
* **透明指標：** 統一報告可以消除差異，並提升可審計性。
  {% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.omniyield.finance/yue/omniyield/jia-gou.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
