View Issue Details

IDProjectCategoryView StatusLast Update
0009828Talerexchangepublic2026-10-09 19:45
Reporteroec Assigned ToResolution 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
PriorityhighSeverityfeatureReproducibilityalways
Status acknowledgedResolutionreopened 
Product Versiongit (master) 
Target Versionpost-1.0 
Summary0009828: Redesign recoup to accomodate for changes in withdraw and refresh API's
DescriptionWith the latest changes to the withdraw and refresh protocols, an individual delivered/signed coin can not be identified within the withdraw or refresh tables - we only store the hash over all blinded planchets coming in and the hashes of those being signed.
   
Therefore, right now the protocols for recoup for withdraw and refresh do not provide the necessary parameters in order to be able to perform _all_ of the following checks:

1) identify the right withdraw or refresh operation
2) ensure that the recouped coin was part of that operation
3) verify that the recoup request is signed by the recouped coin.

1) and 3) can already be done, but 2) is missing.
Tagscompliance

Required notifications

Address or linkRemarkAdded byNotifiedActions

The plan

IDSummaryStatusAssigned ToEstimated effort (hours)
0007868recoup transaction not spec'ed in DD37 feedbackFlorian Dold
This issue (hours)
Its children (hours)0
Together (hours)0
Nothing is missing: the plan can be finished.

Relationships

parent of 0007868 feedbackFlorian Dold recoup transaction not spec'ed in DD37 
related to 0009902 informingFlorian Dold util: phase out TALER_cs_withdraw_nonce_derive 
child of 0008943 implementing integration test for recoup-refresh is incomplete 
child of 0009898 implementing Parent issue for cleanup tasks post withdraw refactor and new refresh protocol 
Not all the children of this issue are yet resolved or closed.

Activities

oec

2025-04-30 19:38

developer   ~0024734

In particular, in the RecoupRequest object the exchange will need the array of all n blinded hashes of all coins that were signed during the corresponding request to withdraw or refresh. From this array, it can calculate the hash over all of them, allowing 1) and 2). The signature of the recouped coin over the request gives 3).

oec

2026-09-24 12:28

developer   ~0030031

The commit 0524afc73f0f286cc39b3e2a2f7c12689c9fb052 specifies the recoup objects for withdraw- and refresh-originated coins.

oec

2026-09-24 12:29

developer   ~0030032

Specification added with 0524afc73f0f286cc39b3e2a2f7c12689c9fb052

oec

2026-09-24 15:06

developer   ~0030039

Should be fixed with commit below.

Christian Grothoff

2026-10-09 19:45

manager   ~0030094

Looks good, waiting for child bugs to be resolved.

Issue History

Date ModifiedUsernameFieldChange
2025-04-30 19:34oecNew Issue
2025-04-30 19:38oecNote Added: 0024734
2025-04-30 20:15Christian GrothoffPrioritynormal => high
2025-04-30 20:15Christian GrothoffStatusnew => implementing
2025-04-30 20:16Christian GrothoffRelationship addedchild of 0008943
2025-04-30 20:16Christian GrothoffTarget Versionpost-1.0 => 1.0 stretch goals
2025-04-30 20:16Christian GrothoffRelationship addedrelated to 0007868
2025-04-30 20:18Christian GrothoffTag Attached: compliance
2025-05-08 08:37oecRelationship addedchild of 0009898
2025-05-08 13:28Christian GrothoffRelationship deletedrelated to 0007868
2025-05-08 13:28Christian GrothoffRelationship addedparent of 0007868
2025-05-08 13:29Christian GrothoffTarget Version1.0 stretch goals => post-1.0
2025-05-08 13:31Christian GrothoffRelationship addedparent of 0006565
2025-06-18 10:53Christian GrothoffRelationship addedchild of 0009902
2025-07-09 12:16oecAssigned To => oec
2025-07-09 12:16oecStatusimplementing => assigned
2025-12-07 09:53Christian GrothoffStatusassigned => implementing
2026-08-31 21:30Florian DoldRelationship replacedrelated to 0009902
2026-09-24 12:28oecNote Added: 0030031
2026-09-24 12:29oecRelationship deletedparent of 0006565
2026-09-24 12:29oecStatusimplementing => informing
2026-09-24 12:29oecResolutionopen => fixed
2026-09-24 12:29oecNote Added: 0030032
2026-09-24 15:06oecAssigned Tooec => Christian Grothoff
2026-09-24 15:06oecStatusinforming => feedback
2026-09-24 15:06oecResolutionfixed => reopened
2026-09-24 15:06oecNote Added: 0030039
2026-10-09 19:45Christian GrothoffNote Added: 0030094
2026-10-09 19:45Christian GrothoffAssigned ToChristian Grothoff =>
2026-10-09 19:45Christian GrothoffStatusfeedback => acknowledged