DEV Community

Manuel Felipe Arias Pineda
Manuel Felipe Arias Pineda

Posted on

๐Ÿ‡ฐ๐Ÿ‡ท ๋Œ€ํ•œ๋ฏผ๊ตญ devs: Add ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ to the AI identity standard โ€” Soulprint open source (30 min PR)

AI ์—์ด์ „ํŠธ๋Š” ๋งค์ผ ์šฐ๋ฆฌ ๋Œ€์‹  ๊ฒฐ์ •์„ ๋‚ด๋ฆฝ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋’ค์— ์ง„์งœ ์‚ฌ๋žŒ์ด ์žˆ๋Š”์ง€ ์•„๋ฌด๋„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.

Soulprint โ€” Zero-Knowledge Proof๋กœ ํ•ด๊ฒฐ. 100% ๋กœ์ปฌ, MIT, ๋ฌด๋ฃŒ.

๐Ÿ‡ฐ๐Ÿ‡ท ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ๊ฐ€ Soulprint์— ์•„์ง ์—†์Šต๋‹ˆ๋‹ค. 30๋ถ„์ด๋ฉด PR์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์–ด์š”.

์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ ํ˜•์‹

13์ž๋ฆฌ: YYMMDD(6) + ์„ฑ๋ณ„/์„ธ๊ธฐ(1) + ์ง€์—ญ์ฝ”๋“œ(4) + ์ฒดํฌ(1) + ์ถ”๊ฐ€(1). ์ฒดํฌ: ๊ฐ€์ค‘ํ•ฉ mod-10.

const KR: CountryVerifier = {
  countryCode: "KR", countryName: "South Korea",
  documentTypes: ["resident_registration"],
  parse(ocrText: string): DocumentResult {
    const rrn = ocrText.match(/(\d{6}-?\d{7})/)?.[1]?.replace("-","") ?? "";
    return { valid: !!rrn, doc_number: rrn, country: "KR" };
  },
  validate(docNumber: string): NumberValidation {
    if(!/^\d{13}$/.test(docNumber)) return {valid:false};
    const w=[2,3,4,5,6,7,8,9,2,3,4,5];
    const sum=w.reduce((s,v,i)=>s+v*Number(docNumber[i]),0);
    return { valid: (11-(sum%11))%10 === Number(docNumber[12]) };
  },
};
export default KR;
Enter fullscreen mode Exit fullscreen mode

๐Ÿ’ป GitHub ยท ํ•˜๋‚˜์˜ PR. ํ•˜๋‚˜์˜ ๋‚˜๋ผ.

Top comments (0)