gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-docs] branch master updated: simplify schema of age-withdraw


From: gnunet
Subject: [taler-docs] branch master updated: simplify schema of age-withdraw
Date: Mon, 05 Jun 2023 16:59:06 +0200

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 3fe9d2eb simplify schema of age-withdraw
3fe9d2eb is described below

commit 3fe9d2ebaaa39a877d773e0cb02556c1c47ee5f5
Author: Özgür Kesim <oec-taler@kesim.org>
AuthorDate: Mon Jun 5 16:59:03 2023 +0200

    simplify schema of age-withdraw
---
 core/api-exchange.rst                    | 54 ++++++++++++++++----------------
 design-documents/024-age-restriction.rst | 20 ++++--------
 2 files changed, 33 insertions(+), 41 deletions(-)

diff --git a/core/api-exchange.rst b/core/api-exchange.rst
index 04c7cfd4..4e541947 100644
--- a/core/api-exchange.rst
+++ b/core/api-exchange.rst
@@ -2435,7 +2435,7 @@ If so, the exchange will blindly sign ``n`` undisclosed 
coins from the request.
       // Array of ``n`` hash codes of denomination public keys to order.
       // These denominations MUST support age restriction as defined in the
       // output to /keys.
-      // The sum of all denomination's values plus fees MUST be at most the
+      // The sum of all denomination's values and fees MUST be at most the
       // balance of the reserve.  The balance of the reserve will be
       // immediatley reduced by that amount.
       denoms_h: HashCode[];
@@ -2517,38 +2517,38 @@ If so, the exchange will blindly sign ``n`` undisclosed 
coins from the request.
 
     interface AgeWithdrawRevealRequest {
       // Array of ``n`` of ``(kappa - 1)`` disclosed coin master secrets, from
-      // which the coins' private key ``coin_priv``, blinding ``beta`` and 
nonce
-      // ``nonce`` (for Clause-Schnorr) itself are derived as usually in wallet
-      // core.  Given a coin's secret, the age commitment for the coin MUST be
-      // derived from this private key as follows:
+      // which the coins' private key, blinding, nonce (for Clause-Schnorr) and
+      // age-restriction  is calculated.
       //
-      // Let m ∈  {1,...,M} be the maximum age group as defined in the reserve
-      // that the wallet can commit to.
-      //
-      // For age group $AG ∈  {1,...m}, set
-      //     seed = HDKF(coin_secret, "age-commitment", $AG)
-      //   p[$AG] = Edx25519_generate_private(seed)
-      // and calculate the corresponding Edx25519PublicKey as
-      //   q[$AG] = Edx25519_public_from_private(p[$AG])
-      //
-      // For age groups $AG ∈  {m,...,M}, set
-      //   f[$AG] = HDKF(coin_secret, "age-factor", $AG)
-      // and calculate the corresponding Edx25519PublicKey as
-      //   q[$AG] = Edx25519_derive_public(`PublishedAgeRestrictionBaseKey`, 
f[$AG])
-      //
-      // Given each coin's private key and age commitment (``q[]``), the
-      // exchange will calculate each coin's blinded hash value und use all
-      // those (disclosed) blinded hashes together with the non-disclosed
-      // envelopes ``coin_evs`` during the verification of the original
-      // age-withdraw-commitment.
+      // Given each coin's private key and age commitment, the exchange will
+      // calculate each coin's blinded hash value und use all those (disclosed)
+      // blinded hashes together with the non-disclosed envelopes ``coin_evs``
+      // during the verification of the original age-withdraw-commitment.
       disclosed_coin_secrets: AgeRestrictedCoinSecret[][];
-
     }
 
   .. ts:def:: AgeRestrictedCoinSecret
 
-    // The Master key material for the derivation of age restricted private
-    // coins, blinding factors and age restrictions
+    // The Master key material from which the coins' private key ``coin_priv``,
+    // blinding ``beta`` and nonce ``nonce`` (for Clause-Schnorr) itself are
+    // derived as usually in wallet-core.  Given a coin's master key material,
+    // the age commitment for the coin MUST be derived from this private key as
+    // follows:
+    //
+    // Let m ∈  {1,...,M} be the maximum age group as defined in the reserve
+    // that the wallet can commit to.
+    //
+    // For age group $AG ∈  {1,...m}, set
+    //     seed = HDKF(coin_secret, "age-commitment", $AG)
+    //   p[$AG] = Edx25519_generate_private(seed)
+    // and calculate the corresponding Edx25519PublicKey as
+    //   q[$AG] = Edx25519_public_from_private(p[$AG])
+    //
+    // For age groups $AG ∈  {m,...,M}, set
+    //   f[$AG] = HDKF(coin_secret, "age-factor", $AG)
+    // and calculate the corresponding Edx25519PublicKey as
+    //   q[$AG] = Edx25519_derive_public(`PublishedAgeRestrictionBaseKey`, 
f[$AG])
+    //
     type AgeRestrictedCoinSecret = string;
 
   .. ts:def:: PublishedAgeRestrictionBaseKey
diff --git a/design-documents/024-age-restriction.rst 
b/design-documents/024-age-restriction.rst
index aae58b95..6e31a2ed 100644
--- a/design-documents/024-age-restriction.rst
+++ b/design-documents/024-age-restriction.rst
@@ -1,5 +1,5 @@
-DD24: Anonymous Age Restriction Extension for GNU Taler
-#######################################################
+DD24: Anonymous Age Restriction Extension
+#########################################
 
 Summary
 =======
@@ -303,6 +303,8 @@ The withdraw protocol is affected in the following 
situations:
 - A wire transfer to the exchange (to fill a reserve) was marked by the
   originating bank as coming from a bank account of a minor, belonging to a of
   a specific age group, or by other means.
+- A KYC-process has been performed with the owner of a reserve and the user has
+  been identified as being a minor.
 - A Peer-to-Peer transaction was performed between customers.  The receiving
   customer's KYC result tells the exchange that the customer belongs to a
   specific age group.
@@ -436,25 +438,15 @@ schema in the exchange is given here:
                ]
 
                subgraph cluster_commitments {
-                       label=<<B>age_withdraw_commitments</B>>
+                       label=<<B>age_withdraw</B>>
                        margin=20
                        commitments [
-                         
label="age_withdraw_commitments_id\l|<hc>h_commitment\l|amount_with_fee_val\l|amount_with_fee_frac\l|noreveal_index\l|max_age\l|<res>reserve_pub\l|reserve_sig\l|<denom>n*denominations_serial\l|n*denom_sig\l"
-                       ]
-               }
-
-               subgraph cluster_reveals {
-                       label=<<B>age_withdraw_revealed_coins</B>>
-                       margin=20
-                       reveals [
-                         
label="freshcoin_index\l|<comm>h_commitment\l|h_blind_ev\l"
+                         
label="age_withdraw_id\l|<hc>h_commitment\l|amount_with_fee_val\l|amount_with_fee_frac\l|noreveal_index\l|max_age\l|<res>reserve_pub\l|reserve_sig\l|<denom>[n]
 denominations_serials\l|[n] h_blind_evs\l|[n] denom_sigs\l"
                        ]
                }
 
                commitments:res->reserves:id [ label="n:1"; 
fontname="monospace"];
                commitments:denom -> denominations:id [ label="n:1"; 
fontname="monospace"] ;
-               reveals:comm -> commitments:hc [ label="n:1"; 
fontname="monospace" ];
-
        }
 
 

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]