Community寫作與編輯github.com

Token-2022 整合防護守衛

在你的 Solana 程式中安全地接受任何 Token-2022 代幣發行,同時避免資產被掏空。這是一個經過測試的 Anchor 守衛,能在鏈上阻擋惡意發行,並附帶掃描器。使用 Anchor 1.0 和 LiteSVM 建構。專為 Solana AI Kit 打造。

Token-2022 整合防護守衛 是什麼?

此技能專為「消費端」開發者設計,協助其在自己的 Solana 程式中安全整合第三方 Token-2022 代幣發行(例如 AMM、金庫、借貸市場、質押或支付流程)。與處理代幣創建和檢查的技能不同,此技能專注於處理不受信任的代幣發行,這些發行可能包含危險的擴充功能(如轉帳費、轉帳鉤子、永久委託),這些功能可能會耗盡用戶資金或破壞帳務邏輯。它提供了完整的操作流程:使用 `t22-scan` CLI 和風險矩陣掃描發行功能、做出整合決策、套用鏈上守衛模式來阻止攻擊,以及使用 LiteSVM 編寫測試來證明防禦有效。它還包含一個完整、經過測試的 Anchor 1.0 守衛程式範例、攻擊測試、用於自動掃描的 CLI 工具,以及一個代理審計員,協助掃描已配置的發行並在原始碼中偵測未受保護的轉帳。此技能支援 Claude Code 等 AI 代理使用,透過 `/scan-mint` 和 `/audit-t22-integration` 等指令進行操作。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add mohit-1710/token2022-integration-guard

Installed? Explore more 寫作與編輯 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Token-2022 整合防護守衛 是做什麼的?

作者/檢查員 vs 消費者。 此工具包中關於 token-2022 的素材以及廣泛的代幣擴充功能技能(solana-token-extensions、token-2022-extensions)是為代幣的 作者 設計的,用於選擇擴充功能、創建發行,以及一個唯讀的發行 檢查員。此技能則是相反的一面:說明了程式如何 安全地消費 它 無法控制 的第三方發行。一個發行是不受信任的輸入。那些技能提到 「整合者應使用淨額」,而此技能 強制執行並測試 了這一點——一個守衛金庫,用於證明份額破產的陷阱並在鏈上阻止它。它們是嚴格的互補關係;可以與它們一同安裝。

何時使用此技能

當使用者位於 Token-2022 發行的 消費端 時使用:

  • 為 AMM、金庫、借貸市場、託管、質押或支付流程添加 Token-2022 支援。
  • 決定是否要上市/建立流動性池/接受特定的代幣(「這個發行可以安全整合嗎?」)。
  • 除錯份額/LP/託管的數學計算「對不起來」的問題(幾乎總是轉帳費錯誤)。
  • 審查移動 SPL 代幣的 Anchor/原生程式,確保其 Token-2022 安全性。
  • 編寫測試來證明你的整合能夠抵禦惡意發行。

如果使用者想要 創建 一個帶有擴充功能的代幣,那是發行方的工作——應參考核心的 token-2022 技能。

一段話的威脅模型

一個 Token-2022 發行可以帶有 擴充功能,這些功能會改變轉帳行為。作為整合者,你必須假設發行作者是惡意的。危險的擴充功能包括:轉帳費 會使入帳金額少於發送金額(破壞 1:1 份額數學運算);轉帳鉤子 會在每次轉帳時執行發行者控制的程式碼(重入、阻斷服務、帳戶注入);永久委託 可以隨時從 你的 金庫移動/燃燒代幣;預設帳戶狀態 = 凍結 會使你的新代幣帳戶無法使用;機密轉帳 會向你的會計系統隱藏真實餘額;可暫停 允許發行者凍結你的提款。預設為拒絕。

操作程序

  1. 先掃描。 識別發行上的每個擴充功能及其對整合者的影響。 → scanning.md(可執行的 t22-scan CLI)和 extension-risk-matrix.md(每個擴充功能的意義)。
  2. 根據設定檔決定。 AMM、金庫、借貸和託管對不同擴充功能的容忍度不同。使用矩陣的判斷結果(ALLOW / HANDLE / REJECT)。
  3. 強化程式。 根據你選擇支援的項目套用模式:
  4. 用測試證明。 編寫載入真實 spl_token_2022 程式的 LiteSVM 測試,並斷言你的守衛成功阻擋了攻擊。→ testing.md
  5. 引用來源/深入了解。 → resources.md

路由表

使用者面臨的狀況…請閱讀
「這個發行可以安全整合嗎?」/ 掃描一個代幣scanning.md、extension-risk-matrix.md
份額/LP/託管數量錯誤,「費用吃掉我的存款」transfer-fee-accounting.md
轉帳鉤子、重入攻擊、ExtraAccountMetaList、轉帳時的 CPI 呼叫transfer-hook-reentrancy.md
永久委託、凍結權限、預設凍結、收回機制permanent-delegate-and-freeze.md
「我該如何在程式中拒絕危險的發行?」extension-allowlist-pattern.md
編寫/執行 Token-2022 邊界情況的測試testing.md
有哪些擴充功能存在以及每種的風險程度extension-risk-matrix.md
來源、審計、DEX 政策、進一步閱讀resources.md

此技能包含的內容

成品路徑說明
掃描器 CLItools/t22-scan/t22-scan <mint> --profile=vault → 每個擴充功能的風險判斷結果 + 可用於 CI 的退出碼。已針對主網上的即時發行進行驗證。
守衛程式examples/guard/一個真實的 Anchor 1.0 金庫:鏈上擴充功能白名單 + 基於增量測量的安全存款(含費用處理)+ 具重入意識的提款。
攻擊測試examples/guard/tests/載入真實 spl_token_2022 程式的 LiteSVM 測試,證明陷阱的存在以及守衛如何阻止它。

指令與代理

觸發方式功能
/scan-mint掃描一個發行地址並根據所選設定檔報告整合者風險。
/audit-t22-integration審查程式原始碼中與 Token-2022 整合相關的錯誤。
代理: token2022-integration-auditor產生一個專注的審查者,掃描已配置的發行並在程式中搜索 transfer 與 transfer_checked、信任金額的數學運算以及缺少擴充功能檢查等問題。

不可協商的規則(適用於每次整合)

  • 預設拒絕。 拒絕任何你未明確處理的擴充功能。未知的 TLV = 拒絕。
  • 永遠不要相信 amount 參數 來計算入帳金額。測量收到的增量(reload() + 餘額差額)或讀取費用設定;以收到的金額入帳。
  • 始終使用 transfer_checked(包含發行地址和 decimals),切勿使用已棄用的 transfer。
  • 固定代幣程式。 設定 token::token_program / associated_token::token_program,這樣攻擊者就無法將經典代幣帳戶混入 Token-2022 的 CPI 呼叫中。
  • 在使用時重新驗證,而不僅僅是在上市時——一個發行的轉帳鉤子程式和費用可能會改變。
  • 用測試證明。 提供一個 LiteSVM 測試,該測試在沒有你的守衛時會失敗,在有守衛時則會通過。

相關技能