Интеграция IRD Number Новой Зеландии в стандарт Soulprint: Практическое руководство

#zk-proofs#identity-verification#open-source#typescript

TL;DR

За 30 минут можно добавить поддержку IRD Number (налогового идентификатора Новой Зеландии) в Soulprint — open-source стандарт верификации AI-агентов с Zero-Knowledge Proofs. Решение работает полностью on-device, не требует централизованных сервисов и доступно через MIT-лицензию.

Введение: Контекст проблемы верификации AI-агентов

Современные AI-агенты совершают транзакции, подписывают документы и взаимодействуют с API от имени пользователей. Soulprint предлагает децентрализованное решение для верификации человеческого присутствия через:

Основная часть: Реализация поддержки IRD Number

1. Анализ формата

Новозеландский IRD Number имеет специфические характеристики:

interface IRDSpec {
  length: 8 | 9;
  checksum: 'mod11';
  weights: number[]; // [3, 2, 7, 6, 5, 4, 3, 2] для 8-значных
}

2. Реализация парсера

Создаем модуль валидации в TypeScript:

// packages/verify-local/src/document/countries/NZ.ts
import { CountryVerifier } from "../verifier.interface";

const NZ_IRD_WEIGHTS = {
  8: [3, 2, 7, 6, 5, 4, 3, 2],
  9: [4, 3, 2, 7, 6, 5, 4, 3, 2]
};

export const validateIRD = (ird: string): boolean => {
  if (!/^\d{8,9}$/.test(ird)) return false;
  
  const digits = ird.split('').map(Number);
  const weights = NZ_IRD_WEIGHTS[digits.length as keyof typeof NZ_IRD_WEIGHTS];
  
  const sum = digits.reduce((acc, digit, i) => 
    i < weights.length ? acc + digit * weights[i] : acc, 0);
  
  return sum % 11 === 0;
};

3. Интеграция в Soulprint Core

Добавляем модуль в систему верификации:

const NZ: CountryVerifier = {
  countryCode: "NZ",
  documentTypes: ["ird"],
  
  parse(ocrText: string) {
    const irdMatch = ocrText.match(/\b\d{8,9}\b/);
    return {
      doc_number: irdMatch?.[0] || "",
      valid: irdMatch ? validateIRD(irdMatch[0]) : false
    };
  }
};

Практическое применение

Верификация в API

После интеграции разработчики могут использовать проверку в своих API:

app.post("/tax-api", 
  requireSoulprint({ country: "NZ", minScore: 80 }),
  (req, res) => {
    // Доступно только для верифицированных NZ-агентов
  }
);

On-Device Workflow

Пользовательский сценарий:

npx soulprint verify --country NZ --doc-type ird
# → Сканирование документа + face match
# → Генерация SPT-токена

Заключение

Интеграция IRD Number в Soulprint демонстрирует:

  1. Гибкость системы для добавления новых стандартов
  2. Важность open-source в верификации AI
  3. Практичность ZK-решений для защиты приватности

Для NZ-разработчиков это возможность войти в историю цифровой идентификации, сделав свой вклад в открытый стандарт. Один PR — и Новая Зеландия становится частью глобальной инфраструктуры доверенных AI-агентов.


Источник: https://dev.to/manuel_felipeariaspined/new-zealand-devs-add-ird-number-to-the-ai-identity-standard-soulprint-open-source-30-min-pr-57pc