> ## Documentation Index
> Fetch the complete documentation index at: https://docs.intention.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# 自己驗一遍

> 五項檢查，把這套架構的主張變成你自己就能了結的東西——其中兩項完全不需要連網。

這些頁面反覆給出四條主張：一次保證金計算可以脫離環境驗證、任何人都能重算一次自動減倉的選擇、資金費是推導出來的而不是定出來的、兩個誠實節點會產出逐位元組相同的結果。這種形狀的主張，在協議之外有人真的跑過一遍之前，一文不值。

這一頁講的就是怎麼跑。每一項檢查都寫明需要哪些輸入、輸入從哪來，以及同樣重要的：它**不能**證明什麼。

<div className="dg" data-dg="verify-tiers">
  <div className="dg-c" style={{aspectRatio:"720 / 248"}}>
    <svg className="dg-w" viewBox="0 0 720 248" aria-hidden="true" />

    <div className="dg-band" style={{left:"0.0000%",top:"7.2581%",width:"30.9259%",height:"72.5806%"}}><span className="dg-cap">只需算術</span></div>
    <div className="dg-band" style={{left:"34.5370%",top:"7.2581%",width:"30.9259%",height:"72.5806%"}}><span className="dg-cap">公開資料，任一節點</span></div>
    <div className="dg-band" style={{left:"69.0741%",top:"7.2581%",width:"30.9259%",height:"72.5806%"}}><span className="dg-cap">你自己的全節點</span></div>
    <div className="dg-b dg--blue" style={{left:"2.2222%",top:"18.5484%",width:"26.4815%",height:"22.5806%"}}><span className="dg-t">一次保證金要求</span></div>
    <div className="dg-b dg--blue" style={{left:"2.2222%",top:"45.9677%",width:"26.4815%",height:"22.5806%"}}><span className="dg-t">一個強平價格</span></div>
    <div className="dg-b dg--orange" style={{left:"36.7593%",top:"18.5484%",width:"26.4815%",height:"22.5806%"}}><span className="dg-t">一次 ADL 選擇</span></div>
    <div className="dg-b dg--orange" style={{left:"36.7593%",top:"45.9677%",width:"26.4815%",height:"22.5806%"}}><span className="dg-t">一筆資金費</span></div>
    <div className="dg-b dg--green" style={{left:"71.2963%",top:"32.2581%",width:"26.4815%",height:"22.5806%"}}><span className="dg-t">一個區塊，逐位元組</span></div>
    <div className="dg-free dg-mid" style={{left:"0.0000%",top:"83.0645%",width:"100.0000%"}}><div className="dg-n">五項裡有兩項完全不需要連網：這些公式是對公開級距紀錄的純函式。</div></div>
  </div>
</div>

<h2 id="1-a-margin-requirement">
  1 · 一次保證金要求
</h2>

**你需要什麼：** 一份槓桿級距紀錄，加一個部位規模。沒有別的了。不需要節點，不需要連網，也不需要帳戶。

起始保證金和維持保證金都是名目價值與級距紀錄的純函式，公式和確切的捨入規則見[槓桿](/zh-Hant/trading/leverage)：

$$
\text{起始保證金} = \text{名目價值} \times \text{im\_leverage} \times 10^{\text{exponent}}
$$

$$
\text{維持保證金} = \max\!\left(\text{名目價值} \times \text{mm\_leverage} \times 10^{\text{exponent}} - \text{扣減額},\; 0\right)
$$

級距紀錄發布在 [API 參考](https://testnet-openapi.intention.xyz/)的 **DEX Config** 分組裡——`im_leverage`、`mm_leverage`、共用的 `exponent`，以及每一級的 `deduction`。挑一個名目價值，在紙上把兩個式子算出來，再跟場所對同一個部位實際收的數對一下。

**它證明了什麼：** 這個要求是公開參數的一個公開函式，不是逐帳戶的判斷。 **它沒有證明什麼：** 級距紀錄本身定得好不好。那是治理問題，不是算術問題。

<Note>
  捨入是規範的一部分，不是容差。如果你的整數和場所的差一個單位，那麼兩者之中必有一個是錯的——先看[清算所](/zh-Hant/protocol/architecture/clearinghouse)那頁的捨入規則，再判斷錯的是哪一個。
</Note>

<h2 id="2-a-liquidation-price">
  2 · 一個強平價格
</h2>

**你需要什麼：** 同一份級距紀錄，加上你的餘額和部位。

門檻是一個比率，定義見[強平](/zh-Hant/trading/liquidations)：

$$
\text{保證金使用率} = \frac{\text{維持保證金}}{\text{淨擔保品}}
$$

淨擔保品是餘額加未實現損益，再減去掛單已經預留的部分。解出這個比率達到觸發點時的標記價，你就拿到了協議將會動手的那個價格——在它動手之前。

**它證明了什麼：** 觸發點可以提前從你自己的數字裡推出來。 **它沒有證明什麼：** 你實際會被平在什麼價。那取決於那一刻的訂單簿，並以破產價格為界。

<h2 id="3-an-auto-deleveraging-selection">
  3 · 一次自動減倉的選擇
</h2>

**你需要什麼：** 某個市場的未平倉部位和標記價，從任何一個全節點都能取。

挑選依據是一個分數，定義見[自動減倉](/zh-Hant/trading/adl)：

$$
\text{排序分} = \text{未實現獲利百分比} \times \text{有效槓桿}
$$

從 **Accounts** 分組取某個市場的部位，從 **Oracle** 分組取認證價格，對獲利那一側的每個部位算出分數，然後排序。這個順序就是佇列。把你算出來的隊首跟介面上顯示的 ADL 指示燈比一比。

**它證明了什麼：** 佇列是公開狀態的函式。沒有人在挑，佇列裡也不存在你自己的算術找不到的部位。 **它沒有證明什麼：** 減倉不會輪到你。一個你能算出來的佇列，仍然是一個你可能身在其中的佇列。

<h2 id="4-a-funding-payment">
  4 · 一筆資金費
</h2>

**你需要什麼：** 結算那一輪的訂單簿和認證指數價，加上你的部位。

費率在[資金費率](/zh-Hant/trading/funding)裡分三步搭出來——深度加權溢價，按該市場的結算間隔縮放，再箝制：

$$
P = \frac{\max(0,\; \text{深度加權買價} - \text{指數價格}) \;-\; \max(0,\; \text{指數價格} - \text{深度加權賣價})}{\text{指數價格}}
$$

$$
F = F_{8h} \times \frac{\text{週期秒數}}{28{,}800}
\qquad
F_{\text{final}} = \operatorname{clamp}\!\left(F,\; F_{\min},\; F_{\max}\right)
$$

然後是這筆費用本身：

$$
\text{資金費} = \text{部位數量} \times \text{標記價格} \times \text{資金費率}
$$

訂單簿來自 **Markets** 分組，認證指數來自 **Oracle**，協議實際扣的那筆錢來自 **Accounts** 分組裡的資金費支付介面。重算一遍，對一下。

**它證明了什麼：** 費率是從訂單簿和指數推導出來的，不是營運方定的。 **它沒有證明什麼：** 指數本身是對的。見[預言機保證什麼、不保證什麼](/zh-Hant/protocol/architecture/oracle)。

<h2 id="5-a-block-byte-for-byte">
  5 · 一個區塊，逐位元組
</h2>

**你需要什麼：** 一個你自己的全節點。任何人都可以跑一個——見[運行節點](/zh-Hant/developers/run-a-node)。

<Note>
  這是本頁唯一目前還跑不了的檢查。在公開存取開放之前，網路運行在一個[私有測試網](/zh-Hant/protocol/architecture/network-status)上，所以前四項現在就能跑，這一項到那時才能跑。把它列在這裡，是因為另外四項的價值全部壓在它上面。
</Note>

其餘四項都壓在這一項上。取一個已提交的區塊和它的前置狀態，執行一遍，把你的結果和網路的比對。這裡的確定性是被強制的，不是被指望的：執行路徑讀不到牆鐘、執行期熵、浮點數，也讀不到雜湊隨機化的迭代順序，所以出現分歧就是缺陷，不是容差。見[為什麼結果是可重現的](/zh-Hant/protocol/architecture/kernel)。

有兩條性質讓這件事是真的檢驗而不是走過場。定序是共識提交的物件，所以你重放的次序是法定人數簽過名的那一份，不是你的節點自己推斷出來的。而價格由同一批簽名提交，所以不存在一個窗口，能讓你對著網路沒有認證過的價格去重放。

**它證明了什麼：** 你被餵到的狀態，是按已公布的規則、在網路提交過的輸入上產出的。 **它沒有證明什麼：** 規則本身沒有缺陷。逐位元組重現一個 bug，重現出來的仍然是那個 bug——這正是[稽核](/zh-Hant/protocol/security/audits)和[漏洞獎金](/zh-Hant/protocol/security/bug-bounty)要和這件事並存的原因。

<h2 id="what-none-of-it-covers">
  這些都覆蓋不到的部分
</h2>

驗證為「必須交給信任的東西」封頂，但它消不掉信任。剩下的部分——驗證者集合、價格法定人數、治理對參數的觸及範圍，以及跨鏈橋——列在[信任假設](/zh-Hant/protocol/architecture/trust)那一頁。如果你來這裡是想找邊界而不是找保證，下一頁就讀那個。

<h2 id="where-to-go-next">
  後續閱讀
</h2>

<CardGroup cols={2}>
  <Card title="信任假設" href="/zh-Hant/protocol/architecture/trust">
    所有能查的都查完之後，還剩下什麼。
  </Card>

  <Card title="運行節點" href="/zh-Hant/developers/run-a-node">
    硬體、同步，以及一個驗證者實際在跑什麼。
  </Card>

  <Card title="IntentionKernel" href="/zh-Hant/protocol/architecture/kernel">
    讓重放這件事有意義的那四重封閉。
  </Card>

  <Card title="API 參考" href="https://testnet-openapi.intention.xyz/">
    上面點到的每一項輸入的欄位級細節。
  </Card>
</CardGroup>
