[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-docs] branch master updated: [melt/reveal] reshuffle parameters
From: |
gnunet |
Subject: |
[taler-docs] branch master updated: [melt/reveal] reshuffle parameters |
Date: |
Fri, 03 Jan 2025 18:33:05 +0100 |
This is an automated email from the git hooks/post-receive script.
oec pushed a commit to branch master
in repository docs.
The following commit(s) were added to refs/heads/master by this push:
new c25366f7 [melt/reveal] reshuffle parameters
c25366f7 is described below
commit c25366f79d0362cf96f61c88170378baf16ce3fb
Author: Özgür Kesim <oec-taler@kesim.org>
AuthorDate: Fri Jan 3 18:31:01 2025 +0100
[melt/reveal] reshuffle parameters
- Introduce h_melt_commitment in the melt phase
- move transfer_pub (of noreveal_index) to reveal phase
- likewise link_sigs
- flatten MeltRequest interface
---
core/api-exchange.rst | 102 +++++++++++++++++++++++++++-----------------------
1 file changed, 55 insertions(+), 47 deletions(-)
diff --git a/core/api-exchange.rst b/core/api-exchange.rst
index 03f841e9..f404b668 100644
--- a/core/api-exchange.rst
+++ b/core/api-exchange.rst
@@ -2174,6 +2174,16 @@ This endpoint is called by the client
// TODO: add details about the derivation.
disclosed_batch_seeds: DisclosedBatchSeed[];
+ // Array of ``n`` entries of transfer public keys
+ // (ephemeral ECDHE keys), each for the ``noreveal_index``.
+ transfer_pubs: EddsaPublicKey[];
+
+ // Array of ``n`` entries many signatures
+ // made by the wallet using the old coin's private key,
+ // used later to verify the /refresh/link response from the exchange.
+ // Signs over a `TALER_CoinLinkSignaturePS`.
+ link_sigs: EddsaSignature[];
+
}
.. ts:def:: DisclosedBatchSeed
@@ -3482,53 +3492,51 @@ the API during normal operation.
.. ts:def:: MeltRequest
interface MeltRequest {
- old: {
- // Hash of the denomination public key, to determine total coin
value.
- denom_pub_hash: HashCode;
-
- // Signature over the `coin public key <eddsa-coin-pub>` by the
denomination.
- denom_sig: DenominationSignature;
-
- // Signature by the `coin <coin-priv>` over the melt commitment.
- confirm_sig: EddsaSignature;
-
- // Amount of the value of the coin that should be melted as part of
- // this refresh operation, including melting fee.
- value_with_fee: Amount;
-
- // Master seed for the Clause-schnorr R-value
- // creation. Must match the /csr-melt 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.
- rms?: RefreshMasterSeed;
-
- // IFF the corresponding denomination has support for age
restriction,
- // the client MUST provide the original age commitment, i. e. the
- // vector of public keys, or omitted otherwise.
- // The size of the vector MUST be the number of age groups as
defined by the
- // Exchange in the field ``.age_groups`` of the extension
``age_restriction``.
- age_commitment?: Edx25519PublicKey[];
- }
-
- fresh: {
- // Array of ``n`` new hash codes of denomination public keys to
order.
- denoms_h: HashCode[];
-
- // Array of ``n`` entries with ``kappa`` many blinded coin
candidates,
- // matching the respective entries in ``denoms_h``.
- coin_evs: CoinEnvelope[][kappa];
-
- // Array of ``n`` entries with ``kappa`` many transfer public key
- // candidates (ephemeral ECDHE keys).
- transfer_pubs: EddsaPublicKey[][kappa];
-
- // Array of ``n`` entries with ``kappa`` many signatures
- // made by the wallet using the old coin's private key,
- // used later to verify the /refresh/link response from the exchange.
- // Signs over a `TALER_CoinLinkSignaturePS`.
- link_sigs: EddsaSignature[][kappa];
- }
+ // Hash of the denomination public key of the old coin, to determine
total coin value.
+ old_denom_pub_hash: HashCode;
+
+ // Signature over the old `coin public key <eddsa-coin-pub>` by the
denomination.
+ old_denom_sig: DenominationSignature;
+
+ // IFF the denomination of the old coin had support for age restriction,
+ // the client MUST provide the original age commitment, i. e. the
+ // vector of public keys, or omitted otherwise.
+ // The size of the vector MUST be the number of age groups as defined
by the
+ // Exchange in the field ``.age_groups`` of the extension
``age_restriction``.
+ old_age_commitment?: Edx25519PublicKey[];
+
+ // Amount of the value of the old coin that should be melted as part of
+ // this refresh operation, including melting fee.
+ value_with_fee: Amount;
+
+ // Master seed for the Clause-schnorr R-value
+ // creation. Must match the /csr-melt 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.
+ rms?: RefreshMasterSeed;
+
+ // Array of ``n`` new hash codes of denomination public keys
+ // for the new coins to order.
+ denoms_h: HashCode[];
+
+ // Array of ``n`` entries with ``kappa`` many blinded coin candidates,
+ // matching the respective entries in ``denoms_h``.
+ coin_evs: CoinEnvelope[][kappa];
+
+ // The melt commitment, i.e. the running hash over:
+ // - the old coin's public key
+ // - the hash of the old age commitment
+ // - the value_with_fee
+ // - rms value, or NULL, if not applicable
+ // - each entry in denom_h
+ // - each entry in coin_evs, depths first
+ // - each of the required n*kappa transfer public keys (ephermeral
ECDHE keys).
+ h_melt_commitment: HashCode;
+
+ // Signature by the `coin <coin-priv>` over the melt commitment.
+ confirm_sig: EddsaSignature;
+
}
For details about the HKDF used to derive the new coin private keys and
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-docs] branch master updated: [melt/reveal] reshuffle parameters,
gnunet <=