본문으로 건너뛰기
피드

5만 달러짜리 수작업 포렌식 감사를 결정론적 Python 엔진으로 대체한 사례

backend 약 6분

이혼 소송에서 공동 계좌 내 별도 재산을 증명하는 포렌식 회계 작업을 자동화한 Exit Protocol. LIBR(최저 중간 잔액 규칙)을 상태 머신으로 구현하고, Spatial-Grid OCR로 은행 PDF를 처리하며, Daubert 기준 충족을 위해 AI를 의도적으로 배제한 결정론적 파이프라인임.

  • 1

    LIBR 알고리즘을 S_t = min(S_{t-1}, B_t) 단방향 래칫 상태 머신으로 구현

  • 2

    Azure Document Intelligence + Surya OCR 폴백의 공간 그리드 OCR 파이프라인으로 은행 PDF 처리

  • 3

    LLM 할루시네이션이 Daubert 기준에서 전체 원장의 증거능력을 무효화할 수 있어 AI를 의도적으로 배제

  • 4

    SHA-256 해시 기반 증거 관리 체인과 에어갭 배포용 Docker 컨테이너화 Sovereign Mode 제공

  • 5

    Django 5.0/PostgreSQL/Celery 기반 모놀리스 아키텍처

이혼 소송용 포렌식 회계를 자동화한 결정론적 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를 쓰지 않았는가"를 명확히 설명하고 결정론적 접근을 택한 사례로서 주목할 만함. 법적 증거능력이 요구되는 도메인에서는 할루시네이션 리스크가 곧 시스템 전체의 무효화로 이어진다는 점을 잘 보여줌.

AI 만능론 시대에 법적 증거능력이 요구되는 도메인에서는 결정론적 접근이 필수적이며, 할루시네이션 리스크가 곧 시스템 전체의 신뢰성 붕괴로 이어진다는 점을 보여주는 역설적 사례임.

댓글

댓글

댓글을 불러오는 중...

backend

Cloudflare가 잡아낸 QUIC CUBIC 버그, ‘idle’ 한 줄 오판이 다운로드를 죽였다

Cloudflare의 QUIC 구현체 quiche에서 CUBIC 혼잡 제어가 최소 윈도우에 갇혀 회복하지 못하는 버그가 발견됐다. Linux 커널의 idle 최적화를 QUIC에 옮기는 과정에서 TCP와 QUIC의 이벤트 타이밍 차이를 놓쳤고, 결국 ACK 시점을 기준으로 idle 시간을 재도록 고쳐 100% 테스트 통과를 회복했다.

backend

삼성전자가 반도체 개발 조직에 오라클 자바를 공식 채택한 이유

삼성전자 DS 부문이 글로벌 반도체 개발 환경에 오라클 자바 SE 유니버설 서브스크립션을 공식 채택했다. 서로 다른 자바 배포판과 버전이 섞이면서 생길 수 있는 보안, 컴플라이언스, 라이선스 리스크를 줄이고 개발 환경을 표준화하려는 결정이다.

backend

네이버클라우드, 트래픽 따라 알아서 줄고 느는 서버리스 데이터베이스 출시

네이버클라우드가 사용량에 따라 CPU, 메모리, 스토리지를 자동 조절하는 완전관리형 서버리스 데이터베이스 서비스를 내놨다. 기존 가상머신 기반 관리형 데이터베이스처럼 피크 트래픽에 맞춰 서버를 과하게 잡아두는 방식에서 벗어나, 사용량 기반 과금과 오토스케일링으로 비용 낭비를 줄이겠다는 방향이다.

backend

네이버클라우드, 사용량 따라 늘고 줄어드는 서버리스 데이터베이스 출시

네이버클라우드가 완전관리형 서버리스 데이터베이스 서비스인 Cloud DB Serverless를 출시했다. VM 기반 관리형 데이터베이스의 고정 비용과 과잉 프로비저닝 문제를 줄이고, 트래픽에 따라 CPU·메모리·스토리지를 자동 조절하는 구조를 내세운다.

backend

네이버클라우드, 사용량 따라 자동 확장되는 서버리스 데이터베이스 출시

네이버클라우드가 사용량에 따라 컴퓨팅 자원을 자동 조절하는 서버리스 기반 클라우드 데이터베이스를 출시했음. 기존 가상머신 기반 관리형 데이터베이스의 고정 비용과 운영 부담을 줄이고, 국내 데이터 규제 요구까지 맞추겠다는 전략임.