0
5만 달러짜리 수작업 포렌식 감사를 결정론적 Python 엔진으로 대체한 사례
backend
요약
기사 전체 정리
이혼 소송용 포렌식 회계를 자동화한 결정론적 Python 엔진 — AI를 의도적으로 배제한 이유
Show HN에 올라온 Exit Protocol은 이혼 소송에서 공동 계좌 내 별도 재산(separate property)을 수학적으로 증명하는 포렌식 회계 자동화 엔진임.
문제: 5만 달러짜리 수작업 감사
- 공동 계좌에 혼재된 25만 달러의 별도 재산을 증명하려면, 포렌식 CPA가 시간당 500달러를 받으며 수년치 은행 PDF를 엑셀에 옮겨 추적하는 작업이 필요함
- 통상 수주가 소요되며 비용이 5만 달러를 넘기는 경우가 허다함
- 개발자는 법원이 사용하는 LIBR(Lowest Intermediate Balance Rule) 기준을 분석한 결과, 이것이 회계 문제가 아니라 분산 시스템의 상태 머신 문제라는 점을 깨달음
핵심 아키텍처
1. Spatial-Grid OCR 파이프라인
- 은행 명세서는 병합 셀, 겹치는 차변/대변 컬럼 등으로 "OCR의 최종 보스"로 불림
- 기존 선형 OCR(Tesseract 등)로는 처리가 불가능함
- Azure Document Intelligence를 메인으로, Surya OCR을 로컬 폴백으로 사용하는 공간 그리드 OCR 파이프라인을 구축함
- 페이지의 기하학적 구조를 매핑하여 "지옥에서 온 PDF"에서도 테이블 원장을 완벽히 복원함
2. 결정론적 LIBR 엔진
- LIBR 알고리즘은 **단방향 래칫(one-way ratchet)**으로 작동함
- 계좌 잔액이 별도 재산 청구액 아래로 떨어지면, 청구액은 해당 바닥값으로 영구 상한이 설정됨
- 이후 혼인 기간 입금이 있어도 청구액이 복원되지 않음 ("보충 오류/replenishment fallacy")
- 수천 건의 거래를 시간순으로 재생하며 다음 공식을 지속 평가함:
S_t = min(S_{t-1}, B_t)
3. 타임스탬프 모호성 해결
- 은행 PDF는 날짜만 제공하고 타임스탬프는 제공하지 않음
- 같은 날 1만 달러 입금과 1만 달러 출금이 발생하면 순서에 따라 결과가 달라짐
- Worst Case(출금 먼저 처리) vs Best Case 시뮬레이션 토글을 구현하여, 수학적으로 반박 불가능한 **"Zone of Truth"**를 합의 협상에 제공함
4. 암호학적 증거 관리 체인 & Sovereign Mode
- 생성된 모든 PDF 보고서에 기저 데이터 스냅샷의 SHA-256 해시를 봉인하여, 생성 이후 변조되지 않았음을 판사에게 증명함
- 클라우드 SaaS 유출을 우려하는 법률 사무소를 위해, 전체 모놀리스(Django 5.0 / PostgreSQL / Celery)를 Docker로 컨테이너화한 "Sovereign Mode" 제공
- 에어갭 환경의 자체 하드웨어에서 독립 실행이 가능함
왜 AI를 쓰지 않았는가
지금 수백 개의 리걸테크 스타트업이 LLM으로 은행 데이터를 요약하려 하고 있지만, 법정에서 GenAI는 치명적 약점임. LLM이 단 하나의 거래를 할루시네이션하면, Daubert 기준에 따라 전체 원장이 증거능력을 상실함.
- Daubert standard: 미국 연방법원에서 전문가 증언·과학적 증거의 신뢰성을 판단하는 기준
- 법정 제출 가능한 결과물을 만들기 위해 파이프라인 전체를 **엄격히 결정론적(strictly deterministic)**으로 설계함
- 같은 입력에 항상 같은 출력이 보장되어야 하므로 확률적 모델을 의도적으로 배제한 것임
참고
> AI 만능론이 지배하는 시기에, "왜 AI를 쓰지 않았는가"를 명확히 설명하고 결정론적 접근을 택한 사례로서 주목할 만함. 법적 증거능력이 요구되는 도메인에서는 할루시네이션 리스크가 곧 시스템 전체의 무효화로 이어진다는 점을 잘 보여줌.
댓글
댓글
댓글을 불러오는 중...