Communitygithub.com

smpebble/vlei-sandbox

GLEIF vLEI 信任鏈的可執行沙盒 — 以純 Python 實現真實的 Ed25519、CESR、SAID 和 ACDC 邊界運算子,並提供通往真實 KERIA 堆疊的路徑。

vlei-sandbox 是什麼?

這個技能提供了一個可執行的 GLEIF 可驗證 LEI (vLEI) 信任鏈模型,無需任何基礎設施即可在幾秒鐘內運行。它支援兩種模式:模擬模式(預設)讓開發者使用純 Python 設計和測試憑證方案,不依賴 Docker 或其他外部服務;真實模式則利用 Docker Compose 部署完整的 KERIA 堆疊以進行整合測試。該技能支援所有主要的 AI 代理平台,包括 Claude Code、Codex、Gemini CLI 和標準終端機。它的設計讓使用者可以反轉典型的 vLEI 學習路徑,先理解核心概念和憑證設計,再逐步進入協議層級的細節。技能包含完整的命令列介面,用於管理參與者、發行/撤銷/驗證憑證、以及處理 LEI 算術,並提供詳盡的參考資料和圖表生成功能。

相容平台✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add smpebble/vlei-sandbox

在你喜歡的 AI 中提問

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

說明文件

vLEI 沙盒

一個可在幾秒鐘內運行、無需任何基礎設施的 GLEIF 可驗證 LEI 信任鏈工作模型,同時在模擬不足時提供通往真實 KERIA 堆疊的路徑。

為什麼存在

vLEI 的入門成本很高,而且大多是附帶的。這些概念——KERI 金鑰事件日誌、ACDC 鏈式憑證、CESR 編碼、GLEIF 治理層級——都是可以學習的,但通常的第一步是啟動 Docker 容器、解析 OOBI 以及協調多重簽名儀式,然後才能發行一個憑證。對於任何試圖弄清楚 vLEI 是否適合他們問題的人來說,這個順序是顛倒的。

這個技能反轉了這個過程。模擬模式為您提供真實的 Ed25519 簽名、真實的 CESR 編碼、真實的自定址識別符號以及真實的邊界運算子強制執行,除了 Python 之外沒有任何依賴項。您可以在一個下午、在筆記型電腦上、離線設計一個憑證方案、故意破壞它,並確切理解驗證者會接受和不接受什麼。然後再進階。

兩種模式

模擬(預設)真實
需求Python 3.8+Docker Compose v2.23+
啟動時間瞬間~60秒 映像拉取
簽名真實 Ed25519真實 Ed25519
SAID / CESR真實真實
見證者、OOBI、IPEX已建模抽象實際協議
多重簽名、委派儀式簡化完整
適用於憑證設計、驗證者邏輯、教學、示範整合、協議行為、預生產測試

除非使用者明確需要協議層級的行為,否則請從模擬模式開始。大多數應用設計問題在那裡能更快得到解答。

開始使用

所有操作都透過一個腳本執行。從技能目錄執行:

python scripts/vlei_sandbox.py demo

這將建立完整的六步信任鏈——GLEIF 認證一個 QVI,QVI 發行一個 Legal Entity 憑證,該實體授權一個官方角色,QVI 發行 OOR 憑證,該實體直接發行一個 ECR 憑證——然後將結果驗證回信任根,並列印它執行的每個檢查。首先運行它。敘述性輸出是關於生態系統如何組合在一起的最快可用的解釋,而且它是一個很棒的現場示範。

然後展示哪些會中斷:

python vlei_sandbox.py status                     # 列出憑證和 SAID
python vlei_sandbox.py revoke --said <LE SAID>    # 撤銷實體憑證
python vlei_sandbox.py verify --said <OOR SAID>   # 現在會失敗——鏈已崩潰

這個順序——撤銷一個憑證並觀察其下所有內容都失敗——比任何圖表都更能體現核心概念:權威是連結的,而非斷言的。

命令參考

設定

python vlei_sandbox.py init [--force]
python vlei_sandbox.py demo [--lei <18 chars>] [--person NAME] [--role ROLE] [--context-role ROLE]
python vlei_sandbox.py status

參與者(AID 控制器)

python vlei_sandbox.py actor add --alias gleif --registry gleifRegistry --root
python vlei_sandbox.py actor add --alias qvi --registry qviRegistry --delegator gleif
python vlei_sandbox.py actor list
python vlei_sandbox.py actor rotate --alias qvi      # 預先輪換:AID 存活

--root 標記生態系統的信任根。--delegator 產生一個委派創始(dip)事件,鏡像 GLEIF 將 AID 委派給 QVI 的方式。

憑證

python vlei_sandbox.py issue --type qvi      --issuer gleif --holder qvi --lei <LEI>
python vlei_sandbox.py issue --type le       --issuer qvi --holder le --lei <LEI> --auth <QVI SAID>
python vlei_sandbox.py issue --type oor-auth --issuer le --holder qvi --lei <LEI> \
    --person "Jane Doe" --role "Chief Executive Officer" --subject-aid <person AID> --auth <LE SAID>
python vlei_sandbox.py issue --type oor      --issuer qvi --holder person --lei <LEI> \
    --person "Jane Doe" --role "Chief Executive Officer" --auth <OOR AUTH SAID>
python vlei_sandbox.py issue --type ecr      --issuer le --holder person --lei <LEI> \
    --person "Jane Doe" --context-role "Trade Finance Officer" --auth <LE SAID>

python vlei_sandbox.py revoke --said <SAID>
python vlei_sandbox.py verify --said <SAID>
python vlei_sandbox.py present --said <SAID> --out presentation.json

為 issue 添加 --json 以列印完整的 ACDC。使用 --data '{"key":"value"}' 來指定內建標誌之外的屬性。

該工具會拒絕會破壞治理規則的發行——例如沒有授權邊界的憑證、連接到錯誤憑證類型的邊界、或校驗和失敗的 LEI。這些拒絕值得展示;它們顯示模型在執行某些強制規則,而不僅僅是裝飾 JSON。

LEI 算術(ISO 17442-1)

python vlei_sandbox.py lei make YZ83GD8L7GG84979J5     # -> YZ83GD8L7GG84979J516
python vlei_sandbox.py lei check YZ83GD8L7GG84979J516  # -> VALID

圖表

python vlei_sandbox.py chain --out chain.mmd    # Mermaid,適用於簡報或文件

真實環境

python vlei_sandbox.py real scaffold   # 將 docker-compose.yaml 複製到專案中
python vlei_sandbox.py real up
python vlei_sandbox.py real status
python vlei_sandbox.py real logs
python vlei_sandbox.py real down

與使用者合作

根據他們實際想要決定的內容來匹配深度。

「向我解釋 vLEI」——執行 demo 並逐步講解其輸出。不要先講理論;成品比理論更有說服力,而輸出中的敘述會按照它們成為必要時的順序來涵蓋這些概念。

「vLEI 能解決 <問題> 嗎?」——在回答之前先閱讀 references/application-patterns.md。誠實的回答通常是「部分可以」,而其中的約束條件(LEI 成本、可驗證與可信賴之間的區別)對於實際決策比能力更重要。

「幫我為 X 設計憑證」——在模擬模式中建模。建立參與者,發行鏈,然後故意攻擊它:嘗試在未經授權的情況下發行,連結到錯誤的類型,撤銷父級。能夠在模擬模式下倖存的設計才值得為真實環境構建。

「我該如何整合這個?」——閱讀 references/real-environment.md。推動將 KERI 保持在邊緣:一個負責協議通訊的驗證者服務,下游使用普通 JSON。

「我的 X.509 / 現有 PKI 是捷徑嗎?」——直說。ISO 17442-2(X.509 中的 LEI)和 17442-3(ACDC 中的 LEI)是平行路徑,而不是轉換管道。現有的 PKI 作為提供身分保證以支援 QVI 驗證公司代表的身分,確實很有價值,但沒有標準化的格式轉換,並且將其描述為轉換管道將無法通過 GLEIF 或監管機構的審查。references/trust-chain.md 中有詳細資訊。

參考資料

根據需要閱讀,而不是預先全部閱讀:

  • references/trust-chain.md——憑證類型、ACDC 結構、邊界運算子、完整的驗證者檢查清單、ISO 17442 系列映射、眾所周知的模式 SAID。在回答任何有關憑證結構或「已驗證」含義的問題之前,請先閱讀。
  • references/real-environment.md——Docker 堆疊、Signify-TS 客戶端模式、IPEX 呈現、已知的摩擦點、走向生產的路徑。在接觸 real 模式或撰寫整合程式碼之前,請先閱讀。
  • references/application-patterns.md——四種可行的應用模式、如何擴展到五種標準憑證類型之外、驗證者設計檢查清單,以及在懷疑者提出之前值得提出的兩個約束條件。在定義範圍或推銷應用程式之前,請先閱讀。

實作說明

  • 保真度。 SAID、CESR 資格判定、邊界運算子、TEL 撤銷語意以及預先輪換都按規範運作。簽名是真實的 Ed25519,在每次 verify 呼叫時進行驗證。
  • 摘要演算法。 KERI 的預設是 Blake3-256(CESR 代碼 E)。Blake3 不在 Python 標準函式庫中,因此沙盒回退到 Blake2b-256(代碼 F)——這也是一個有效的 CESR 摘要代碼。因此,除非安裝了可選的 blake3 套件(pip install blake3),否則識別符號將以 F 而不是 E 開頭,在這種情況下它們會與生產環境完全匹配。如果使用者注意到前綴差異,請提及這一點;這是一個替代,而不是錯誤。
  • 簽名後端。 當存在時使用 cryptography 或 PyNaCl,否則使用無依賴的純 Python Ed25519。init 會報告使用了哪個。
  • 狀態。 工作目錄中的一個可讀的 .vlei/state.json。可以自由檢查——將 KEL 和 TEL 視為純 JSON 是有啟發性的。它包含私鑰種子,因此它是一個沙盒產物,絕不應該被提交或用於任何真實用途。
  • 刻意省略的內容。 見證者收據、透過網路解析 OOBI、IPEX 訊息交換、多重簽名閾值、觀察者。這些是協議關注點,不會改變憑證設計。當它們成為問題時,請使用 real 模式。

可攜性

這個技能是純 Python 加上 Markdown,沒有框架依賴項,因此它可以在 Claude Code、Codex、Gemini CLI 或純終端機中無需修改地運行。一個能夠讀取檔案和執行 shell 命令的代理程式擁有它所需的一切。如果您的代理程式讀取的是 AGENTS.md 而不是 SKILL.md,則兩者都存在並指向相同的內容。

相關技能