View Issue Details

IDProjectCategoryView StatusLast Update
0009639Talerexchangepublic2026-09-19 14:40
ReporterFlorian Dold Assigned ToFlorian Dold Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PrioritynormalSeverityfeatureReproducibilityhave not tried
Status informingResolutionfixed 
Target Version1.6Fixed in Version1.6 
Summary0009639: spec and implement transaction risk monitoring [4h]
DescriptionWhat we likely need for this is:
* batch jobs that compute risk metrics (possibly caching metrics from previous run for perf) and stores HIGH_RISK_TRANSACTION property + to_investigate flag for account
  * How/where is this implemented? In the exchange via C code or via external script that connects to the DB and runs SQL?
  * Maybe SQL queries are enough? Do we need any logic other than that?

Anything else?
Tagscompliance

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

Christian Grothoff

2025-03-25 11:35

manager   ~0024303

9d280c23b..91a67046e contains a first implementation, including a TOPS-customization for the TOPS AML-investigation trigger. The code is completely *untested* (to the point of possibly crashing once Postgres tries to run it), but should give a good idea of the design.
Todo:
- proper spec/design document
- test it :-)
Note that it also soft-depends on Oec's branch being merged first, as that'll make it easy to get the deposited amounts properly.

Christian Grothoff

2025-03-28 05:49

manager   ~0024325

DD59 now exists, and Oec's branch was merged. Final touches & testing are left!

Christian Grothoff

2025-03-29 14:31

manager   ~0024332

This is largely done, except I don't have a good way to trigger the TOPS rule and thus cannot test that reasonably well right now.

Florian: can you build us an integration test where:
0) System is configured with KYC (for deposit/aggregate/bank accounts, so you can trigger that)
1) taler-exchange-dbinit -e tops is run to setup the DB (with TOPS statistics + TmeR monitoring)
2) deposits happen and KYC is triggered
3) KYC is satisfied and the account is opened and allowed to keep going (we only to TmeR on "open accounts")
4) then timetravel to + 2 months, and in that future deposit 2x of what was previously deposited (raises suspicion)
5) check if to_investigate was set / AML officer was tasked to investigate

Florian Dold

2026-09-07 10:45

manager   ~0029916

commit c77b2b130866d395b05bd428e09a6316f7d6cf79 (HEAD -> master, origin/master, origin/HEAD)
Author: Florian Dold <dold@taler.net>
Date: Mon Sep 7 12:37:13 2026 +0200

    taler-harness: cover TOPS transaction risk monitoring
    
    Install TOPS, establish a deposit baseline and open an account through
    KYC. Advance the exchange clock by two months and exercise deposits
    below and above the volume threshold, including repeated deposits after
    an investigation starts.
    
    Issue: https://bugs.taler.net/n/9639

commit 6a358f5b9238fe1cf7ef513922a6b81b2db26901
Author: Florian Dold <dold@taler.net>
Date: Mon Sep 7 12:36:52 2026 +0200

    taler-harness: allow exchange database customizations in dbinit
    
    Accept an optional customization name and pass it to
    taler-exchange-dbinit with separate command arguments.
    
    Issue: https://bugs.taler.net/n/9639

Issue History

Date ModifiedUsernameFieldChange
2025-03-19 15:53Florian DoldNew Issue
2025-03-19 15:53Florian DoldStatusnew => assigned
2025-03-19 15:53Florian DoldAssigned To => Christian Grothoff
2025-03-19 15:56Florian DoldDescription Updated
2025-03-19 15:57Florian DoldDescription Updated
2025-03-25 11:35Christian GrothoffNote Added: 0024303
2025-03-25 11:36Christian GrothoffRelationship addedparent of 0009371
2025-03-28 05:49Christian GrothoffNote Added: 0024325
2025-03-29 14:31Christian GrothoffNote Added: 0024332
2025-03-29 14:31Christian GrothoffAssigned ToChristian Grothoff => Florian Dold
2025-04-17 20:13Christian GrothoffTag Attached: compliance
2025-05-07 19:40oecRelationship deletedparent of 0009371
2025-05-08 20:16Christian GrothoffRelationship addedchild of 0008155
2025-06-05 11:46Florian DoldSummaryspec and implement transaction risk monitoring => spec and implement transaction risk monitoring [4h]
2025-07-29 22:18Christian GrothoffTarget Version1.0 stretch goals => 1.4
2025-12-08 10:44Christian GrothoffTarget Version1.4 => 1.6
2026-01-26 06:30Christian GrothoffSeverityminor => feature
2026-02-04 21:34Christian GrothoffStatusassigned => implementing
2026-02-04 21:34Christian GrothoffTarget Version1.6 => 1.7
2026-02-07 11:39Christian GrothoffRelationship deletedchild of 0008155
2026-09-07 10:45Florian DoldNote Added: 0029916
2026-09-07 11:56Florian DoldStatusimplementing => informing
2026-09-07 11:56Florian DoldResolutionopen => fixed
2026-09-19 14:39Christian GrothoffTarget Version1.7 => 1.6
2026-09-19 14:40Christian GrothoffFixed in Version => 1.6