๐Ÿ‡ฐ๐Ÿ‡ช ์ผ€๋ƒ ๊ฐœ๋ฐœ์ž๋“ค: AI ์•„์ด๋ดํ‹ฐํ‹ฐ ํ‘œ์ค€์— Huduma Namba / National ID ์ถ”๊ฐ€ โ€” Soulprint ์˜คํ”ˆ ์†Œ์Šค (30๋ถ„ PR)

๋ฐœํ–‰: (2026๋…„ 2์›” 26์ผ ์˜ค์ „ 09:33 GMT+9)
3 ๋ถ„ ์†Œ์š”
์›๋ฌธ: Dev.to

Source: Dev.to

๊ฐœ์š”

AI ์—์ด์ „ํŠธ๋Š” ๋งค์ผ ์šฐ๋ฆฌ๋ฅผ ๋Œ€์‹ ํ•ด ๊ตฌ๋งค, ์ด๋ฉ”์ผ ์ „์†ก, ๋ฌธ์„œ ์„œ๋ช… ๋“ฑ ๊ฒฐ์ •์„ ๋‚ด๋ฆฝ๋‹ˆ๋‹คโ€”ํ•˜์ง€๋งŒ ์‹ค์ œ ์ธ๊ฐ„์ด ๋’ค์— ์žˆ๋‹ค๋Š” ๋ณด์žฅ์€ ์—†์Šต๋‹ˆ๋‹ค. Soulprint๋Š” Zeroโ€‘Knowledge Proofs๋ฅผ ์‚ฌ์šฉํ•ด 100โ€ฏ% ๋””๋ฐ”์ด์Šค์—์„œ ์‹คํ–‰๋˜๋ฉฐ, ์˜คํ”ˆ ์†Œ์Šค(MIT)์ด๊ณ  ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ด๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์ผ€๋ƒ์˜ Huduma Namba / National ID๋Š” ์•„์ง Soulprint์—์„œ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋งŒ์œผ๋กœ ์•ฝโ€ฏ30โ€ฏ๋ถ„ ์•ˆ์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


Soulprint์— Huduma Namba / National ID ์ถ”๊ฐ€ํ•˜๊ธฐ

  1. ๋กœ์ปฌ์—์„œ ๊ฒ€์ฆ

    npx soulprint verify-me       # ID ์Šค์บ” + ์–ผ๊ตด ๋งค์นญ โ€” ๋ชจ๋‘ ๋กœ์ปฌ
    # โ†’ SPT ํ† ํฐ (์ ์ˆ˜ 0โ€‘100)
  2. ๋ชจ๋“  AIโ€‘์—์ด์ „ํŠธ ์š”์ฒญ์— ํ† ํฐ ํฌํ•จ

    X-Soulprint: eyJ... (score: 84)
  3. ์„œ๋ฒ„์—์„œ ํ† ํฐ ๊ฒ€์ฆ (์ฝ”๋“œ 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

National ID์™€ 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โ€ฏ์‹œ๊ฐ„ ์†Œ์š”.
  • ๐ŸŒโ€ฏWebsite:
  • ๐Ÿ’ปโ€ฏGitHub repository: (fork and submit a PR)
  • ๐Ÿ“–โ€ฏContributing guide: ์ €์žฅ์†Œ์˜ CONTRIBUTING.md๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ํ•˜๋‚˜์˜ PR. ํ•˜๋‚˜์˜ ๊ตญ๊ฐ€. AI ์‹ ์›์˜ ๋ฏธ๋ž˜๋Š” ์˜คํ”ˆ์†Œ์Šค์ž…๋‹ˆ๋‹ค.

0 ์กฐํšŒ
Back to Blog

๊ด€๋ จ ๊ธ€

๋” ๋ณด๊ธฐ ยป

AgentSpace๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค โ€” OpenClaw Agents๋ฅผ ์œ„ํ•œ ๊ฐœ์ธ ์ฑ„ํŒ… ๋ฐฉ

AgentSpace๋ž€ ๋ฌด์—‡์ธ๊ฐ€? AgentSpace๋Š” OpenClaw ์—์ด์ „ํŠธ๋ฅผ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋œ ์˜คํ”ˆ์†Œ์Šค, ์ž์ฒด ํ˜ธ์ŠคํŒ… ์ฑ„ํŒ… ๋ฐฉ์ด๋‹ค. ์•„์ด๋””์–ด๋Š” ๊ฐ„๋‹จํ•˜๋‹ค: ์—์ด์ „ํŠธ๊ฐ€ ์ž‘์„ฑํ•˜๊ณ , ์ธ๊ฐ„์€ ๊ด€์ฐฐํ•œ๋‹ค.

Diun vs Cosmos Cloud: ๋น„๊ต

๋น ๋ฅธ ํŒ๋‹จ: ์ด๋“ค์€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ทœ๋ชจ์—์„œ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. Cosmos Cloud๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ, ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ, ๊ทธ๋ฆฌ๊ณ  ์ธ์ฆ ๋“ฑ์„ ๊ฐ–์ถ˜ ์™„์ „ํ•œ ์ž์ฒด ํ˜ธ์ŠคํŒ… ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

๋‹น์‹ ์˜ AI๊ฐ€ ๋ฐฑ์—”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ฐ€ ์นจํ•ด์— ๋Œ€ํ•œ ์ฑ…์ž„์„ ์ง€๋‚˜์š”?

๋ฌธ์ œ ๊ฐœ์š”: AI ์‚ฐ์—…์€ ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ์ด์ œ๋Š” ๋ˆ„๊ตฌ๋‚˜ ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹คโ€”์ฝ”๋”ฉ ๊ฒฝํ—˜์ด ํ•„์š” ์—†๊ณ , ๊ทธ ์–ด๋А ๋•Œ๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹คโ€”๊ณ  ๋งํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด ๋งํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€โ€ฆ

์˜ค๋” ๊ต๋ฆฌ // ์ž‘์ „ ์šฐ์œ„

Order Doctrine: Operational Supremacy ๋Œ€๋ถ€๋ถ„์˜ ์กฐ์ง์€ ๊ด€๋ฆฌ๋œ ํ˜ผ๋ˆ ์ƒํƒœ์—์„œ ์šด์˜๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๊ธฐ๋Šฅ์„ ์ถœ์‹œํ•˜๊ณ , ๋•Œ๋•Œ๋กœ ๋งˆ๊ฐ์ผ์„ ๋งž์ถ”๋ฉฐ, ...