gnunet-svn
[Top][All Lists]
Advanced

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

[taler-docs] 01/06: mentioning of KYC and batch-withdraw


From: gnunet
Subject: [taler-docs] 01/06: mentioning of KYC and batch-withdraw
Date: Wed, 21 Dec 2022 17:12:14 +0100

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

oec pushed a commit to branch master
in repository docs.

commit cbf8b5443fffeda2408648d3c2ea9e8450a061f7
Author: Özgür Kesim <oec-taler@kesim.org>
AuthorDate: Wed Dec 21 17:08:24 2022 +0100

    mentioning of KYC and batch-withdraw
---
 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]