🇰🇪 肯尼亚开发者:将 Huduma Namba / National ID 添加到 AI 身份标准 — Soulprint 开源 (30 min PR)

发布: (2026年2月26日 GMT+8 08:33)
3 分钟阅读
原文: Dev.to

Source: Dev.to

概览

AI 代理每天为我们做决定——购物、发送邮件、签署文件——但我们无法保证背后是真正的人。Soulprint 通过 零知识证明 来解决这个问题,全部在设备上 100 % 运行,开源(MIT),且免费使用。

肯尼亚的 Huduma Namba / 国家身份证 目前尚未在 Soulprint 中支持。你只需一次 Pull Request,大约 30 分钟 即可添加。

将 Huduma Namba / 国家身份证加入 Soulprint

  1. 本地验证

    npx soulprint verify-me       # 扫描身份证 + 人脸匹配 —— 全部本地完成
    # → SPT token (score 0‑100)
  2. 在每个 AI 代理请求中包含该 token

    X-Soulprint: eyJ... (score: 84)
  3. 在服务器上验证 token(仅 3 行代码)

    import { requireSoulprint } from "soulprint-mcp";
    
    server.tool(
      "premium",
      requireSoulprint({ minScore: 80 }),
      handler
    );

ZK‑Proof 细节

  • 电路:Circom 2.1.8
  • 证明系统:Groth16
  • 约束数量:844
  • 生成时间:564 ms
  • 验证时间:25 ms

国家身份证和 Huduma Namba 都由 8 位数字 组成(护照号码为 9 位字母数字字符)。

肯尼亚国家验证器(TypeScript)

// packages/verify-local/src/document/countries/KE.ts
import {
  CountryVerifier,
  DocumentResult,
  NumberValidation,
} from "../verifier.interface";

const KE: CountryVerifier = {
  countryCode: "KE",
  countryName: "Kenya",
  documentTypes: ["national_id", "huduma"],

  parse(ocrText: string): DocumentResult {
    // Huduma Namba / National ID format: 8 digits
    const doc_number = ocrText.match(/(\d{8})/)?.[1] ?? "";
    return { valid: !!doc_number, doc_number, country: "KE" };
  },

  validate(docNumber: string): NumberValidation {
    // exactly 8 digits
    return { valid: /^\d{8}$/.test(docNumber) };
  },
};

export default KE;

注册验证器

将肯尼亚验证器加入注册表:

// registry.ts
import KE from "./countries/KE";

// add to registry map
const registry = {
  // ...other countries
  "KE": KE,
};

贡献

  1. 打开 PR – 你的国家将加入全球 AI 身份标准。
  2. 永久 Git 署名 – 你的贡献会永久记录在项目历史中。
  3. 去中心化身份 – 摆脱大科技公司的门槛。
  4. 快速交付 – 部分实现约 30 分钟,完整 MRZ 支持约 2–3 小时。
  • 🌐 网站:
  • 💻 GitHub 仓库: (fork 并提交 PR)
  • 📖 贡献指南:请参阅仓库中的 CONTRIBUTING.md

一次 PR。一个国家。AI 身份的未来是开源的。

0 浏览
Back to Blog

相关文章

阅读更多 »