ビジネス・スタートアップ
Show HN: LIBRトレースとソース台帳行およびバイト単位のPDF検証
Show HN: LIBR tracing with source ledger rows and byte-exact PDF verification (exitprotocols.com)
要約
この技術ノートは、LIBR(Lowest Intermediate Balance Rule)スタイルのトレースが、順序付けられた台帳に対する決定論的なリプレイとして表現できることを示しています。これにより、残高の減少、同日仮定、および非補充行動を正確に追跡できます。公開リポジトリでは、合成データと回帰テストを用いて計算モデルを直接検証でき、開発者、フォレンジック会計士、デューデリジェンスレビュー担当者向けのツールを提供しています。
全文翻訳
公開技術ノート
LIBRを決定論的台帳状態マシンとして
順序付けられた金融取引をリプレイして、残高の減少、同日仮定、および非補充行動を保存するための技術ノート。
公開技術ノート
合成データのみ
決定論的計算デモ
法的助言ではありません
公開リポジトリ
LIBRガイドを見る
合成ワークペーパーを見る
状態遷移カード
各台帳ステップは、実行中の状態に対して1つの順序付けられたトランザクションをリプレイします。
状態入力:
- 以前の追跡可能な残高
- 現在の口座残高
- 取引金額
- 順序付けモード
遷移:
traceable_after = min(traceable_before, account_balance_after)
境界:
選択されたLIBR仮定の下では、後の入金は以前に減少した追跡可能な金額を自動的に回復しません。
実行中の追跡可能な残高に対して、1つの順序付けられたトランザクションをリプレイします。
減少後: traceable_after = min(traceable_before, account_balance_after)。LIBR仮定の下では、後の入金は以前のトレースを自動的に回復しません。
目的
この成果物が存在する理由
Exit Protocol製品全体は非公開です。この公開技術ノートは、LIBRスタイルのトレースが順序付けられた台帳に対する決定論的なリプレイとして表現できるという、1つの狭い技術的主張を分離しています。付属のリポジトリは、合成CSVフィクスチャと回帰テストを使用して、開発者、フォレンジック会計士、およびデューデリジェンスレビュー担当者が計算モデルを直接検査できるようにします。この成果物は技術的なフィードバックを目的としており、法的結論、専門家の意見、または製品の完全性に関する主張ではありません。
視覚モジュール
LIBRリプレイ状態マシン
合成フィクスチャのみ。各順序付けられたトランザクションは、明示的なLIBR仮定の下で口座残高と追跡可能な残高を進めます。図が画面からはみ出す場合は、水平方向にスワイプしてください。
```
stateDiagram-v2
[*] --> Baseline
Baseline --> ClaimOpen: separate-property deposit
ClaimOpen --> Replay: chronological replay
Replay --> DipDetected: withdrawal below trace level
DipDetected --> TraceReduced: cap at lowest intermediate balance
TraceReduced --> Replay: continue replay
Replay --> LaterDeposit: later deposit
LaterDeposit --> HoldTrace: balance rises
HoldTrace --> Replay
```
モデル
状態マシン表現
LIBRトレーシングはステートフルな台帳計算です。各トランザクションは、口座残高とトレーシング可能な残高を同時に進めます。レビュー担当者は、物語の要約から結果を推測するのではなく、リプレイパスを検査できます。
ソース預金
クレームオープン
順序付けられたリプレイ
台帳ウォーク
残高減少
トレース上限が下がる
同日オーダー
モード適用
スナップショット
検査可能な出力
状態変数
account_balance — 各取引後の実行中の現金残高
traceable_balance — LIBR枯渇下の候補となる個別財産トレース
depletion_events — トレーシング可能な残高が減少するポイント
ordering_mode — 同日のタイブレーク仮定
source_deposit — リプレイの個別財産クレームアンカー
遷移
deposit — 口座残高を増加させる可能性あり。個別預金は仮のトレースを増加させる可能性あり
withdrawal — 口座残高を減らし、減少を引き起こす可能性あり
same-day reorder — あいまいな日中の行を再配列する
balance dip — トレーシング可能な残高は口座残高によって上限が定められる
report snapshot — 検査とテストのために凍結された状態
不変条件
トレースは口座を超えない
トレーシング可能な残高は、どのステップの後も口座残高を超えることはできません。
トレースはソースクレームを超えない
トレーシング可能な残高は、トレーシングされている個別財産の金額を超えることはできません。
減少後の非補充
後の預金は、以前に減少したトレーシング可能な金額を自動的に回復しません。
決定論的リプレイ
同じ入力と同じ順序付けモードは、実行ごとに同じ出力を生成します。
例の台帳
残高減少を伴う合成リプレイ
図示目的の行のみ。公開リポジトリには、より完全な合成CSVと回帰フィクスチャが含まれています。タブレット幅ですべての台帳列を表示するには、水平方向にスワイプしてください。
| Date | Event | Account Balance | Traceable Balance | State | Note |
|---|---|---|---|---|---|
| Jan 1 | Opening balance | $5,000 | — | Baseline | community/pre-existing funds |
| Jan 3 | Separate-property deposit | $105,000 | $100,000 | Source deposit opens traceable claim |
| Feb 10 | Withdrawal | $45,000 | $45,000 | Red dip: trace capped by account balance |
| Mar 1 | Later salary deposit | $65,000 | $45,000 | Account rises; traceable balance unchanged |
| Date | Event | Account Balance | Traceable Balance | State | Note |
|---|---|---|---|---|---|
| Jan 1 | Opening balance | $5,000 | — | Baseline | community/pre-existing funds |
| Jan 3 | Separate-property deposit | $105,000 | $100,000 | Source deposit opens traceable claim |
| Feb 10 | Withdrawal | $45,000 | $45,000 | Red dip: trace capped by account balance |
| Mar 1 | Later salary deposit | $65,000 | $45,000 | Account rises; traceable balance unchanged |
レッドディップ: 口座残高が主張されている個別財産額を下回り、選択されたLIBR仮定の下で候補となる追跡可能額が減少したときに発生します。
順序付けモード
同日順序付けの仮定
銀行取引明細書には、信頼できる日中タイムスタンプがないことがよくあります。複数の行が同じ日付を共有する場合、順序付けによってリプレイパスが変わります。これらのモードは、計算仮定をレビューのために公開するものであり、法的結論ではありません。
台帳順序
公開リポジトリ: --ordering ledger。各日付内のCSV順序を保持します。ベースラインの決定論的リプレイ。
請求者有利
公開リポジトリ: --ordering best_case。同日内の入金を先に、出金を後にします。Exit Protocol製品は最大化戦略にマッピングされます。
相手方弁護士の保守的
公開リポジトリ: --ordering worst_case。同日内の出金を先に、入金を後にします。Exit Protocol製品は最小化戦略にマッピングされます。
中立的なベースライン
Exit Protocol製品は、同日内のあいまいさが存在する場合、デフォルトのリプレイに裁判所がバランスをとった中立的な戦略を使用します。
公開リポジトリ
公開リポジトリが示すもの
依存関係なしのPython
Djangoに依存しないスタンドアロンの計算機。
合成台帳フィクスチャ
公開検査用のCSV混合口座サンプル。
同日順序付けモード
ledger、best_case、worst_caseのCLIスイッチ。
ゼロ残高枯渇テスト
完全な口座枯渇に対する回帰カバレッジ。
補充の誤謬テスト
後の預金は枯渇したトレースを回復しません。
複数のソース預金
追加の個別財産流入に対するエッジケースフィクスチャ。
CLI実行
コマンドラインから重要なトレースイベントを出力します。
再現可能な出力
同じフィクスチャとモードは、再実行時に同じトレースを生成します。
製品の境界
公開成果物以外にExit Protocolが追加するもの
リポジトリは計算のプリミティブを証明します。製品はそのプリミティブをレビューワークフローに組み込みます。
認証されたケースワークスペース
役割の境界を持つプライベートな案件コンテキスト。
明細書取り込み
選択された財務記録を台帳行に正規化。
照合
トレーシング前に開始、活動、終了残高をテスト。
重要な台帳選択
弁護士と専門家による検査のために行を提示。
弁護士レビュー可能なワークペーパー
構造化されたエクスポート — 法的助言や専門家レポートではありません。
ソースの出所
選択された明細書またはエクスポートにリンクされたサポート行。
SHA-256スナップショットの整合性
エクスポート時の計算状態のフィンガープリント。
最終ファイルハッシュ検証
生成されたワークペーパーに対するエクスポート後のバイトチェック。
V1単一請求エクスポートガード
アカウントごとの請求を1つに限定するデフォルトのワークペーパーパス。
ローカルで実行
計算成果物の検査
Python 3.10以降が必要です。サードパーティパッケージはありません。
```
git clone https://github.com/Vinaygond/libr-state-machine-demo.git
cd libr-state-machine-demo
python -m unittest discover -s tests
python libr.py examples/minimal_dip_ledger.csv
python libr.py examples/synthetic_ledger.csv --ordering ledger
python libr.py examples/synthetic_ledger.csv --ordering best_case
python libr.py examples/synthetic_ledger.csv --ordering worst_case
python libr.py examples/minimal_dip_ledger.csv --json
```
CLIは合成フィクスチャからの重要なトレースイベントを出力します。順序付けモードを比較して、同日あいまいさがリプレイ出力にどのように影響するかを確認してください。
専門的境界。この技術ノートは教育的であり、製品指向です。法的助言、専門家の意見、裁判所への提出物、および admissibility を保証するものではありません。LIBRおよび関連するトレーシングの教義は、管轄区域固有であり、事実に依存します。弁護士および任命された専門家は、