commit 2a13880d2657116216a3460dd4d1770eab8f5d61
parent a825d5427be7e5ced1e7a6f27167dd7b18d7ce0b
Author: Özgür Kesim <oec-taler@kesim.org>
Date: Thu, 17 Apr 2025 19:46:13 +0200
[dd:pq-refresh] simplify request
Diffstat:
1 file changed, 12 insertions(+), 43 deletions(-)
diff --git a/design-documents/062-pq-refresh.rst b/design-documents/062-pq-refresh.rst
@@ -196,64 +196,33 @@ Modified melt request structure:
// this refresh operation, including melting fee.
value_with_fee: Amount;
- // Master seed for the Clause-Schnorr R-value
- // creation. Must match the /blinding-prepare request.
- // Must not have been used in any prior melt request.
- // Must be present if one of the fresh coin's
- // denominations is of type Clause-Schnorr.
- blinding_seed?: BlindingMasterSeed;
-
// Array of ``n`` new hash codes of denomination public keys
// for the new coins to order.
denoms_h: HashCode[];
// Seed from which the nonces for the n*κ coin candidates are derived
// from.
- r_seed: HashCode;
+ refresh_seed: HashCode;
+
+ // Master seed for the Clause-Schnorr R-value
+ // creation. Must match the /blinding-prepare request.
+ // Must not have been used in any prior melt request.
+ // Must be present if one of the fresh coin's
+ // denominations is of type Clause-Schnorr.
+ blinding_seed?: BlindingMasterSeed;
- // Array of ``n`` entries with ``kappa`` many blinded coin candidates,
- // matching the respective entries in ``denoms_h``.
+ // ``kappa``` arrays of ``n`` entries for blinded coin candidates,
+ // each matching the respective entries in ``denoms_h``.
//
// Note: These are essentially the m_i values in the RefreshDerivePQ
// function.
- coin_evs: CoinEnvelope[][kappa];
+ coin_evs: CoinEnvelope[kappa][];
- // Signature by the `coin <coin-priv>` over `TALER_NewMeltCommitmentPS`.
+ // Signature by the `coin <coin-priv>` over `TALER_RefreshMeltCoinAffirmationPS`.
confirm_sig: CoinSignature;
}
-The new ``TALER_NewMeltCommitmentPS`` is defined as follows:
-
-.. _TALER_NewMeltCommitmentPS:
-.. sourcecode:: c
-
- struct TALER_NewMeltCommitmentPS {
- /**
- * purpose.purpose = TALER_SIGNATURE_WALLET_COIN_MELT
- */
- struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
- struct TALER_CoinSpendPublicKeyP old_coin_public_key;
- struct TALER_AgeCommitmentHash old_h_age_commitment;
- struct TALER_AmountNBO value_with_fee;
- /**
- * rms value, or all zeros, if not applicable
- */
- struct TALER_RefreshMasterSecretP rms;
- /**
- * hash over all entries in denoms_h
- */
- struct GNUNET_HashCode h_denoms;
- /**
- * hash over all entries in coin_evs (aka m in RefreshDerivePQ),
- * depths first
- */
- struct GNUNET_HashCode h_coin_evs;
- /**
- * The seed for the nonces
- */
- struct GNUNET_HashCode r_seed;
- };
TODO: definition of ``CoinSignature``