TL;DR
За 30 минут можно добавить поддержку IRD Number (налогового идентификатора Новой Зеландии) в Soulprint — open-source стандарт верификации AI-агентов с Zero-Knowledge Proofs. Решение работает полностью on-device, не требует централизованных сервисов и доступно через MIT-лицензию.
Введение: Контекст проблемы верификации AI-агентов
Современные AI-агенты совершают транзакции, подписывают документы и взаимодействуют с API от имени пользователей. Soulprint предлагает децентрализованное решение для верификации человеческого присутствия через:
- On-device обработку документов
- ZK-пруфы (Groth16, Circom 2.1.8)
- Открытые стандарты валидации
Основная часть: Реализация поддержки 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 демонстрирует:
- Гибкость системы для добавления новых стандартов
- Важность open-source в верификации AI
- Практичность ZK-решений для защиты приватности
Для NZ-разработчиков это возможность войти в историю цифровой идентификации, сделав свой вклад в открытый стандарт. Один PR — и Новая Зеландия становится частью глобальной инфраструктуры доверенных AI-агентов.