gnunet-svn
[Top][All Lists]
Advanced

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

[taler-docs] branch master updated (8209c62 -> dad074f)


From: gnunet
Subject: [taler-docs] branch master updated (8209c62 -> dad074f)
Date: Wed, 21 Dec 2022 17:12:13 +0100

This is an automated email from the git hooks/post-receive script.

oec pushed a change to branch master
in repository docs.

    from 8209c62  remove obsolete note
     new cbf8b54  mentioning of KYC and batch-withdraw
     new 4355a59  circuit API: define /config
     new 7dbebb6  access API
     new 5340dd8  update
     new 6e3e396  remove obsolete note
     new dad074f  Merge branch 'master' of ssh://git.taler.net/docs

The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 design-documents/024-age-restriction.rst | 44 ++++++++++++++++----------------
 1 file changed, 22 insertions(+), 22 deletions(-)

diff --git a/design-documents/024-age-restriction.rst 
b/design-documents/024-age-restriction.rst
index c5fed56..e216168 100644
--- a/design-documents/024-age-restriction.rst
+++ b/design-documents/024-age-restriction.rst
@@ -301,9 +301,10 @@ 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.
-- A wire transfer to the exchange was marked to be age-restricted by other
-  means (not yet designed or implemented)
+  a specific age group, or by other means.
+- 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.
 
 In these cases, the wallet will have to perform a zero-knowledge protocol with
 exchange as part of the the withdraw protocol, which we sketch here.  Let
@@ -314,13 +315,12 @@ exchange as part of the the withdraw protocol, which we 
sketch here.  Let
 - :math:`a \in \{1,\ldots,M\}` be the maximum age (group) for which the wallet
   has to prove its commitment.
 
-The values :math:`\kappa`, :math:`\Omega` and :math:`a` are known to the 
Exchange and the Wallet.
+The values :math:`\kappa`, :math:`\Omega` and :math:`a` are known to the
+Exchange and the Wallet.  Then, Wallet and Exchange run the following protocol
+for the withdrawal of one coin:
 
-Then:
-
-#. *Wallet*:
-
-   #. creates planchets :math:`C_i` for :math:`i \in \{1,\ldots,\kappa\}` as 
candidates for *one* coin.
+- *Wallet*
+   1. creates planchets :math:`C_i` for :math:`i \in \{1,\ldots,\kappa\}` as 
candidates for *one* coin.
    #. creates age-commitments :math:`\vec{Q}^i` for :math:`i \in 
\{1,\ldots,\kappa\}` as follows:
 
       a) creates :math:`a`-many Edx25519-keypairs :math:`(p^i_j, q^i_j)`
@@ -334,15 +334,13 @@ Then:
    #. calculates :math:`F := 
\text{H}(\beta_1(f_1)||\ldots||\beta_\kappa(f_\kappa))`
    #. sends :math:`F` to the Exchange
 
-#. *Exchange*
-
-   #. receives and stores :math:`F`
+- *Exchange*
+   7. receives and stores :math:`F`
    #. chooses randomly :math:`\gamma \in \{1,\ldots,\kappa\}` and
    #. sends :math:`\gamma` to the Wallet.
 
-#. *Wallet*
-
-   #. receives :math:`\gamma`
+- *Wallet*
+   10. receives :math:`\gamma`
    #. sends to the Exchange the tuple :math:`\left(r_\gamma, \vec{\beta}, 
\vec{\vec{Q}}, \vec{\vec{S}}\right)` with
 
       - :math:`r_\gamma := \beta_\gamma(f_\gamma)`
@@ -351,9 +349,8 @@ Then:
       - :math:`\vec{\vec{S}} := 
(\vec{S}^1,\ldots,\vec{S}^{\gamma-1},\bot,\vec{S}^{\gamma+1},\ldots,\vec{S}^\kappa)`
         with :math:`\vec{S}^i := (s^i_j)`
 
-#. *Exchange*:
-
-   #. receives :math:`\left(r, (\beta^i), (\vec{Q}^i), (\vec{B}^i) \right)`
+- *Exchange*
+   12. receives :math:`\left(r, (\beta^i), (\vec{Q}^i), (\vec{B}^i) \right)`
    #. calculates :math:`g_i := \beta_i\left(\text{FDH}(\vec{Q}^i)\right)` for 
:math:`i \neq \gamma`
    #. compares :math:`F \overset{?}{=} \text{H}(g_1||\ldots||g_{\gamma - 
1}||r||g_{\gamma+1}||\ldots||g_\kappa)` and bails out on inequality
    #. for each :math:`\vec{B}^i, i \neq \gamma`
@@ -363,13 +360,16 @@ Then:
    #. signs :math:`r`
    #. sends (blinded) signature :math:`\sigma_r` to Wallet
 
-#. *Wallet*:
-
-   #. receives :math:`\sigma_r`
+- *Wallet*
+   18. receives :math:`\sigma_r`
    #. calculates (unblinded) signature :math:`\sigma_\gamma := 
\beta^{-1}_\gamma(\sigma_r)` for coin :math:`C_\gamma`.
 
 
-
+Note that the batch version of withdraw allows the withdrawal of *multiple*
+coins at once.  For that scenario the protocol sketched above is adapted to
+accomodate for handling multiple coins at once -- thus multiplying the amount
+of data by the amount of coins in question--, but all with the same value of
+:math:`\gamma`.
 
 
 Refresh - melting phase

-- 
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]