본문으로 건너뛰기

증거와 장부 데이터 계약

구현됨

구현 저장소: BackwardLabs/schema @ 95ed7eb

Schema는 Daejang의 증거, 해석, 회계 처리, 보고 계층이 함께 사용하는 데이터 언어다. 각 record가 무엇을 뜻하는지, 서로 어떻게 연결되는지, 결과를 완료 상태로 볼 수 있으려면 어떤 조건을 만족해야 하는지 정의한다.

경제적 의미를 판단하거나, 자산 가치를 계산하거나, 세무 report를 만드는 계층은 아니다.

왜 필요한가

최종 숫자만으로는 결과를 검토할 수 없다. 함께 확인할 수 있어야 하는 정보가 있다.

  • 어떤 원천과 evidence에서 나온 숫자인가
  • 관찰된 사실과 경제적 해석의 경계는 어디인가
  • unsupported, incomplete, unresolved 항목은 없었는가
  • 어떤 revision과 policy가 결과를 만들었는가

Schema 계약은 이 연결을 명시적으로 남긴다. 이후 단계가 의미를 추가하더라도 원래 evidence는 바뀌지 않는다.

데이터 구조 한눈에 보기

이 그림은 runtime 실행 순서나 service 구성을 나타내지 않는다. 데이터가 어떤 의미로 연결되는지를 보여준다. 경제적으로 관련이 없거나 evidence가 부족하거나 valuation·inventory 처리가 필요하지 않은 record는 중간 단계에서 멈출 수 있다.

계층답해야 하는 질문현재 경계
원천과 Evidence원천에 실제로 기록되거나 실행된 것은 무엇인가?EVM evidence 경로 구현됨
Observation경제적 판단 없이 말할 수 있는 사실은 무엇인가?JIT Observation 경로 구현됨
Interpretation이 사실을 가장 잘 설명하는 경제적 사건은 무엇인가?계약 구현됨, runtime 계획
Ledger자산 이동, 가치, 취득가를 어떻게 표현할 것인가?계약·저장 경계 구현됨, 계산 runtime 계획
Report표시된 숫자를 검토자가 어떻게 다시 확인할 수 있는가?manifest 계약 구현됨, report generator 계획

데이터 계약이 지키는 네 가지 원칙

1. 증거를 보존한다

공개 chain 실행과 사용자 account의 관계를 구분한다. 같은 transaction evidence가 여러 account 범위 Observation의 근거가 되더라도 공개 사실을 복제하거나 변경하지 않는다.

2. 관찰과 해석을 분리한다

Observation에는 직접 확인한 사실만 기록한다. Swap, self-transfer, reward, taxable disposal 같은 의미는 다음 해석 단계에서 붙인다. 불확실한 판단이 원천 사실처럼 저장되는 것을 막기 위한 경계다.

3. 누락과 불확실성을 숨기지 않는다

선택한 항목은 normalized, unsupported, failed, not relevant처럼 명시적인 결과를 가져야 한다. Evidence가 없으면 없는 상태로, 취득가를 모르면 unknown 상태로 남긴다. 요약 수치는 이 결과에서 계산한다.

4. 덮어쓰지 않고 revision을 추가한다

검증을 마친 record는 직접 수정하지 않는다. 정정할 때는 이전 record를 가리키는 새 revision을 만든다. 과거 결과도 당시의 evidence와 규칙을 기준으로 계속 검토할 수 있다.

현재 구현된 범위

저장소에는 CUE 계약, 정상 예제, invalid·mutation fixture, 검증 명령이 있다. Record 구조, record 사이의 참조, completeness, publication evidence를 검사한다.

여기서 증명되는 것은 공통 데이터 계약과 검증 규칙이 존재한다는 사실이다. RPC parser, DB, interpretation engine, valuation engine, 세무 inventory, report generator의 runtime 동작까지 증명하는 것은 아니다.

실제 runtime 경로는 JIT 증거 복원, 저장, Revision과 Lineage, Event, Posting과 Valuation에서 이어서 설명한다.

검증

origin/main archive 기준으로 make check가 통과한다.