taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

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:
Mdesign-documents/062-pq-refresh.rst | 55++++++++++++-------------------------------------------
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``