February 22, 202612 min readAppStar
Verified Facts Protocol: AI가 회사에 대해 거짓말하는 것을 멈추는 방법
조직에 대한 암호화 서명된 사실을 게시하는 개방형 프로토콜. Ed25519 서명, SHA-256 해싱, /.well-known/verified-facts.json.
AIverified-factsed25519cryptographyprotocolSEOanti-hallucination
문제: AI가 당신의 회사에 대해 거짓말을 합니다
ChatGPT에게 회사가 언제 설립되었는지, 고객이 누구인지, 어떤 제품을 제공하는지 물어보세요. 높은 확률로 잘못된 답변 또는 완전히 지어낸 답변을 받게 됩니다.
AI 시스템은 매일 기업에 대한 사실을 환각(hallucination)합니다. 잘못된 설립일, 가공의 고객 목록, 존재하지 않는 제품. 기업에게는 이에 대응할 표준화된 방법이 없었습니다.
해결책: Verified Facts Protocol
Verified Facts Protocol은 조직에 대한 암호화 서명된 사실을 기계 판독 가능한 형식으로 게시하는 개방형 프로토콜입니다. robots.txt의 사실 버전이라고 생각하세요.
작동 방식
- 회사에 대한 사실이 담긴 JSON 파일을 생성
- Ed25519 개인 키로 각 사실에 서명
/.well-known/verified-facts.json에 파일을 호스팅
기술적 세부사항
서명 프로세스
claimBytes = utf8encode(fact.claim)
hashBuffer = sha256(claimBytes) // 32 바이트
claimHash = hex(hashBuffer) // 64자 16진수
signature = base64(ed25519_sign(key, hashBuffer))
Node.js 검증
import { createHash, verify, createPublicKey } from 'crypto';
function verifyFact(claim, signature, publicKeyBase64) {
const hash = createHash('sha256').update(claim, 'utf8').digest();
const sig = Buffer.from(signature, 'base64');
const pubKeyRaw = Buffer.from(publicKeyBase64, 'base64');
const pubKeyDer = Buffer.concat([
Buffer.from('302a300506032b6570032100', 'hex'),
pubKeyRaw
]);
const publicKey = createPublicKey({
key: pubKeyDer, format: 'der', type: 'spki'
});
return verify(null, hash, publicKey, sig);
}
왜 Ed25519인가?
| 속성 | 값 |
|---|---|
| 키 크기 | 32 바이트 (256비트) |
| 서명 크기 | 64 바이트 |
| 성능 | 초당 ~76,000 서명 |
| 보안 | 128비트 동등 |
실제 사례: AppStar 6개 도메인
| 도메인 | 팩트 수 | 링크 |
|---|---|---|
| appstar.com.ru | 20 | JSON 보기 |
| appstarsecurity.ru | 8 | JSON 보기 |
| appstarcrm.ru | 7 | JSON 보기 |
| appstarseo.ru | 7 | JSON 보기 |
실험 결과
- ChatGPT는 아직 JSON을 직접 읽지 않지만 구조화된 데이터가 정확도에 도움
- 외부 확인이 작동 — Google Play Store 등을 통해 검증
- 일관성이 핵심 — 웹사이트, JSON, Schema.org에서 같은 사실이 반복되면 AI 신뢰도 향상
시작하기
git clone https://github.com/appstar-com-ru/verified-facts-protocol
npx tsx examples/generate.ts
cp verified-facts.json /var/www/html/.well-known/
npx tsx examples/verify.ts https://yourdomain.com/.well-known/verified-facts.json