온체인(on-chain) 에스크로 분쟁을 해결하는 27개의 도구와 AI 중재자 구축기
요약
온체인 에스크로 분쟁 해결을 위해 증거 기반의 OSINT 도구와 AI 중재자를 결합한 시스템을 소개합니다. LLM이 임의의 판단을 내리는 대신, 수집된 기술적 증거를 바탕으로 사전에 정의된 스마트 컨트랙트 액션 내에서만 판결을 내리도록 설계되었습니다.
핵심 포인트
- 증거 수집(DNS, TLS, WHOIS 등)을 모델 해석보다 우선시하는 설계 원칙
- Base Sepolia 테스트넷 기반의 라이브 스마트 컨트랙트 데모 운영
- AI 중재자의 권한을 컨트랙트에 열거된 액션 스페이스로 제한하여 보안 강화
- 모의 환경이 아닌 실제 라이브 체인을 대상으로 하는 E2E 테스트 수행
저는 pigfox.com을 1인 기업으로 운영하고 있습니다. 현재 두 가지 영역에 집중하고 있습니다. 하나는 OSINT, 이메일 보안, TLS 및 문서 포렌식(forensics)을 다루는 **27개의 도구(그중 16개는 무료)**이며, 다른 하나는 Base Sepolia 상에서 작동하는 3개의 라이브 스마트 컨트랙트(smart-contract) 데모입니다. 이 중 하나는 언어 모델(language model)이 누구에게 돈을 지급할지 결정하도록 합니다.
두 영역 모두 동일한 규칙을 따르며, 그 규칙이 바로 이 포스트의 실제 주제입니다.
규칙: 증거가 먼저, 해석은 그다음
제가 제작을 거부한 도구의 한 장르가 있습니다. 박스에 도메인을 붙여넣으면 모델이 한 단락을 환각(hallucinate)하고, 아무도 검증할 수 없는 자신만만한 답변을 내놓는 방식입니다.
여기 있는 모든 도구는 먼저 실제 인프라를 타격합니다. DNS, WHOIS, TLS 핸드셰이크(handshakes), 인증서 투명성 로그(Certificate-transparency logs), 원시 EXIF 바이트, 원시 Received: 헤더, PDF 객체 테이블 등입니다. 출력 결과는 수집된 신호(signals)를 보여주므로 사용자가 직접 확인할 수 있습니다.
27개 중 5개만이 모델을 호출하며, 이는 오직 증거가 테이블 위에 놓인 이후에만 이루어집니다. 추가로 6개는 모델을 사용하지 않고도 사용량에 따라 비용이 부과되는데, 이는 역이미지 검색(reverse-image lookups)과 WHOIS 이력이 LLM 관여 여부와 상관없이 쿼리당 비용이 발생하기 때문입니다. 나머지 16개는 무료이며 앞으로도 그럴 것입니다.
이제 이 규칙을 온체인(on-chain)으로 가져갔을 때 어떤 일이 일어나는지 살펴보십시오.
데모: 모델의 출력이 트랜잭션(transaction)이 되는 곳
모두 라이브 상태이며 **Base Sepolia (chain 84532)**를 대상으로 하는 세 가지 인터랙티브 데모가 있습니다. 배포된 컨트랙트, 실제 테스트넷 트랜잭션, 블록 익스플로러(block explorer)에서 열어볼 수 있는 해시(hash) 값이 포함되어 있습니다.
여기에는 하나의 원칙이 있습니다. 바로 포킹(forking) 금지입니다. --fork-url도, 메인넷 시뮬레이션도, 모킹(mocked)된 체인 상태도 없습니다. 데모에서 무언가 해결되었다고 말한다면, 거기에는 트랜잭션 해시가 존재합니다. Playwright E2E 스위트 또한 라이브 체인을 대상으로 실행됩니다. 속도는 더 느리고 때때로 불안정할 수 있지만, 그만한 가치가 있습니다. 모의(mock) 환경에서 통과하는 테스트는 컨트랙트에 대해 아무것도 증명하지 못합니다.
ZK Escrow Explorer — AI 중재자
두 당사자가 에스크로 (escrow) 컨트랙트에 자금을 예치합니다. 무언가 잘못됩니다. 한쪽이 분쟁을 제기합니다. AI 중재자 (AI arbiter)가 사건을 읽고 판결을 내립니다 — 그리고 그 판결은 온체인 (on-chain) 상에서 결제되어 자금을 이동시킵니다.
이것은 바로 당신이 불안해해야 할 지점입니다. 언어 모델 (language model)이 누구에게 지급할지를 결정하는 것은, 만약 그 모델이 개방형 권한을 가진 신뢰할 수 있는 오라클 (oracle)이라면 끔찍한 아이디어입니다. 하지만 이 시스템은 그렇지 않습니다:
- 액션 스페이스 (action space)가 컨트랙트에 열거되어 있습니다. 중재자는 고정된 결제 세트 중에서 선택합니다. 결과물을 임의로 만들어낼 수 없고, 제3자에게 지급할 수 없으며, 아무도 에스크로하지 않은 금액을 이동시킬 수 없습니다. 최악의 경우라도 짧은 목록 중에서 잘못된 선택을 하는 것이지, 임의적인 송금이 아닙니다.
- 모델이 실행되기 전에 증거가 동결됩니다. 도구들과 동일한 규칙입니다. 사건 자료가 먼저 수집되고, 모델은 그 다음에 이를 바탕으로 추론합니다.
- Groth16 회로 (circuit)가 증명 의무를 수행하므로, 검증자가 그 뒤에 숨겨진 개인 입력값 (private inputs)을 보지 않고도 클레임을 검증할 수 있습니다.
- 업그레이드 가능성을 위한 **UUPS 프록시 (proxy)**를 사용하여, "중재자 통합 과정에서 버그를 발견했습니다"와 같은 상황에서도 생존할 수 있도록 합니다.
아홉 건의 분쟁이 온체인에서 엔드 투 엔드 (end-to-end)로 실행되었습니다. 모든 건은 검사 가능합니다.
이것이 바로 제한된 AI (bounded AI)가 구체적으로 의미하는 바입니다: 모델의 역할은 좁고, 입력값은 고정되어 있으며, 모델의 결정을 실행하는 주체는 구조적으로 모델이 요청할 수 없는 일을 수행할 수 없는 컨트랙트입니다. 모델은 문법 (grammar) 내에서 제안하고, 체인이 결정 (disposes)합니다.
이를 기본 설정(default posture)과 비교해 보십시오 — 모델에게 어떤 인자(argument)로든 어떤 함수든 호출할 수 있는 도구를 건네주고 시스템 프롬프트 (system prompt)가 유지되기를 바라는 방식 말입니다. 그것은 온체인 버전의 바이브 코딩 (vibe coding)이며, 그렇게 하면 국고 (treasury)를 잃게 됩니다.
RWA 토큰화 익스플로러 (RWA Tokenization Explorer)
ERC-3643 스타일의 허가형 토큰 (permissioned token)입니다. 일반적인 ERC-20과 비교했을 때 흥미로운 점은 전송이 조건부라는 것입니다. 컨트랙트는 온체인 신원 (on-chain identity) 및 컴플라이언스 레지스트리 (compliance registry)를 확인하며, 검증되지 않은 주소로의 전송은 리버트 (revert) 됩니다. 토큰화된 실물 자산 (RWA)은 무기명 증권 (bearer instruments)이 될 수 없습니다. 이러한 제한 사항은 어딘가 외부에 있는 데이터베이스가 아니라 토큰 자체에 존재해야 합니다.
Foundry로 구축되었으며, Slither와 Echidna를 통해 검증되었습니다.
ZK 컴플라이언스 패스 (ZK Compliance Pass)
이를 증명하는 데이터를 넘겨주지 않고도 컴플라이언스 요구 사항을 충족함을 증명합니다. 에스크로 회로 (escrow circuit)와 동일한 암호학적 프리미티브 (cryptographic primitive)를 사용하며, KYC 형태의 문제들을 해결하는 것을 목표로 합니다. 검증자 (verifier)는 당신이 자격을 갖추었다는 사실 외에는 아무것도 알 수 없습니다.
이 뒤에는 다음 항목들이 대기 중입니다: 전후 차이를 측정한 가스 최적화 (gas-optimization) 데모, 그리고 의도적으로 취약하게 설계된 컨트랙트, Foundry 기반의 개념 증명 (PoC) 익스플로잇, 그리고 패치된 버전들을 나란히 배치한 적대적 실험실 (adversarial lab)입니다.
도구들: 무엇이 새로운가
최근 도구 작업의 대부분은 하나의 질문을 중심으로 구축된 클러스터입니다 — 이 사람, 제안, 문서 또는 회사가 주장하는 바와 일치하는가?
채용 제안 진위 확인 (Job-Offer Legitimacy Check) (AI)는 발신자 도메인의 실제 생성 연령을 포함하여, 리크루터 메시지에서 조사해야 할 신호들을 찾아냅니다. **지원자 사진 검증 (Candidate Photo Verify)**은 역이미지 검색을 통해 해당 사진이 온라인의 다른 어디에 나타나는지 확인합니다. 타임라인 불일치 확인기 (Timeline Discrepancy Checker) (AI)는 이력서를 읽어 내부 일관성 신호 — 중복된 역할, 날짜와 총 기간의 불일치, 불가능한 기술 또는 자격증 취득 날짜 등을 파악합니다. **웹사이트 진위 확인 (Website Legit Check)**은 도메인 연령, TLS, 리다이렉트, 이메일 보안 DNS 및 헤더를 한 번에 검사합니다. **거래 상대방 실사 확인 (Counterparty Due-Diligence Check)**은 송금하기 전에 공급업체를 검증합니다. **문서 진위 확인 (Document Authenticity Check)**은 PDF의 구조를 스캔하여 증분 업데이트 (incremental updates), 추가된 콘텐츠, 교차 참조 및 날짜 이상 징후와 같은 무결성 신호를 찾아냅니다. **사용자 이름 교차 플랫폼 확인 (Username Cross-Platform Check)**은 선별된 플랫폼 세트 전반에 걸친 핸들 (handle)의 존재 여부를 보고합니다.
이력서 및 문서 검사기가 하지 않는 점에 주목하십시오. 이 도구들은 개인에 대해 판결을 내리지 않습니다. 대신 구조적 이상 징후(structural anomalies)를 드러내어 사용자에게 전달합니다. 날짜의 공백은 유죄의 증거가 아니라, 질문해야 할 사항입니다.
무료 티어(Free tier) 전체 목록
OSINT 및 보안 (무료 13개)
-
TraceCheck — 실시간 검색 신호를 통해 공개된 발자국(footprint) 점수를 산출합니다.
-
Domain Recon — 공개 기록을 통한 수동적 정찰 (passive recon)을 수행합니다.
-
EXIF Metadata Check — 사진이 여전히 보유하고 있는 카메라 정보, 편집 이력 및 GPS 정보를 확인합니다.
-
Fake Recruiter Check — 해당 메시지가 알려진 사기 패턴과 일치하는지 확인합니다.
-
Email Header Analyzer — 전체
Received:홉 체인(hop chain)과 SPF, DKIM, DMARC를 분석합니다. -
Phishing & BEC Email Analyzer — 결제 리디렉션 패턴에 대한 점수를 산출합니다.
-
DNS Email-Security Check — 자세한 내용은 아래에서 다룹니다.
-
Data-Breach & Exposure Check — 해당 주소가 알려진 데이터 유출(breach) 사례에 등장하는지 확인합니다.
-
Certificate-Transparency Subdomain Finder — 공개 CT 로그(Certificate Transparency logs)로부터 서브도메인(subdomains)을 찾아냅니다. 스캐닝을 수행하지 않으며, 대상에 트래픽을 발생시키지 않습니다.
-
Prompt-Injection & System-Prompt-Leak Tester — OWASP LLM Top 10을 기준으로 자신의 시스템 프롬프트(system prompt)를 테스트합니다.
-
Username Checker — 해당 핸들(handle)이 존재하는지 확인합니다.
-
Security Headers Grader — CSP, HSTS, 프레이밍(framing), nosniff를 점검합니다.
-
SSL/TLS Certificate Checker — 발급자(issuer), SANs, 만료일, 체인(chain), 협상된 버전(negotiated version)을 확인합니다.
SEO 및 마케팅 (2개 무료)
- AI-Access Checker —
robots.txt가 어떤 AI 크롤러(crawlers)를 허용하는지,llms.txt가 있는지, 콘텐츠가 JS(JavaScript) 뒤에 갇혀 있는지 확인합니다. - Open Graph / Social Preview Checker — OG(Open Graph) 및 Twitter Card 태그와 함께 렌더링된 미리보기를 제공합니다.
유틸리티 (1개 무료)
- Redirect Chain Tracer — HTTPS에서 HTTP로의 다운그레이드(downgrades), 루프(loops), 메타 새로고침(meta-refresh)을 표시하며 모든 홉(hop)을 추적합니다.
유료 도구를 포함한 전체 인덱스: pigfox.com/tools
제가 매주 사용하는 단 하나의 도구
SPF는 평가 중에 최대 **10회의 DNS 조회 (DNS lookups)**를 허용합니다. 이를 초과하면 레코드는 실패하며, 발신자 측에서는 아무런 알림 없이 조용히 실패합니다. 대부분의 조직은 메일의 4분의 1이 스팸함으로 들어갈 때가 되어서야 이 사실을 알게 됩니다.
DNS 이메일 보안 체크 (DNS Email-Security Check)는 조회 횟수를 계산하고 한계치 대비 현재 상태가 어느 정도인지 보여줍니다. 이 도구는 DMARC를 적절하게 파싱하며(p, pct, rua, sp — 모두가 잊어버리는 것이 서브도메인 정책(subdomain policy)입니다), 사용자가 추측하게 만드는 대신 일반적인 DKIM 셀렉터(selectors)를 자동으로 조사하고, MX 레코드를 가져오며, TXT 레코드의 벽 대신 이해하기 쉬운 언어로 된 전달 가능성(deliverability) 판정을 반환합니다.
기술 스택 (The stack)
- Go 모놀리스 (Go monolith). 단일 바이너리,
html/template서버 사이드 방식, SPA(Single Page Application) 미사용. 레지스트리 기반(Registry-driven)이므로, 도구를 추가하려면 구조체(struct)와 핸들러(handler)만 추가하면 됩니다. - PostgreSQL: 사용량 기반 도구(metered tools)의 크레딧 원장(credit ledger)을 포함한 모든 용도.
- River: 백그라운드 작업(background jobs)용. 크론(cron)이 아닌 주기적 작업(Periodic jobs) 방식.
- Solidity + Foundry: 컨트랙트용; 루프 내에 Slither와 Echidna 포함.
- Render: 호스팅용, Playwright: 라이브 체인(live chain)을 대상으로 하는 E2E(End-to-End) 테스트 포함.
- Magic-link 인증 (Magic-link auth) 및 Cloudflare Turnstile.
개발자 대상의 글인 만큼, 최근에 진행한 화려하지 않은 작업들을 공유하자면 다음과 같습니다: golangci-lint의 백로그(backlog)를 840개의 탐지 결과에서 0개로 줄였고, 모든 템플릿을 text/template에서 html/template로 옮겼습니다(실제 P1 XSS 위험 요소였습니다). CSP를 강제 모드(enforce mode)로 설정했으며, 배포 키(deployer key)를 잘못된 곳에 붙여넣은 후 교체(rotate)했습니다. 마지막 사례가 이 포스트에서 가장 유용한 내용입니다. 여러분도 똑같은 실수를 할 것이라고 가정하고, 필요하기 전에 미리 교체 경로(rotation path)를 준비해 두십시오.
ZK Escrow Explorer를 사용해 보고 블록 익스플로러(block explorer)에서 정산(settlement) 중 하나를 열어보세요. 그런 다음 여러분의 도메인을 대상으로 DNS Email-Security Check를 실행해 보십시오.
피드백, 버그 보고, 그리고 "이 도구가 내 도메인에 대해 잘못 판단하고 있다"라는 의견 모두 환영합니다. 특히 마지막 의견은 언제나 환영입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기