gnunet-svn
[Top][All Lists]
Advanced

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

[taler-donau] branch master updated: [doc] big part of definitions and m


From: gnunet
Subject: [taler-donau] branch master updated: [doc] big part of definitions and main protocol done
Date: Sat, 30 Sep 2023 14:27:44 +0200

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

pius-loosli pushed a commit to branch master
in repository donau.

The following commit(s) were added to refs/heads/master by this push:
     new 89c0b5d  [doc] big part of definitions and main protocol done
89c0b5d is described below

commit 89c0b5dbfe39a40f1e4d8040db4b012d3ffaae0b
Author: Pius Loosli <loosp2@bfh.ch>
AuthorDate: Sat Sep 30 14:25:19 2023 +0200

    [doc] big part of definitions and main protocol done
---
 doc/flows/main.tex | 65 +++++++++++++++++++++++++++++++++++++++++++++---------
 1 file changed, 54 insertions(+), 11 deletions(-)

diff --git a/doc/flows/main.tex b/doc/flows/main.tex
index 44d5ec0..bc65bfa 100644
--- a/doc/flows/main.tex
+++ b/doc/flows/main.tex
@@ -23,10 +23,14 @@
 \begin{itemize}
     \item $m :=$ \textbf{receipt} = smallest structure representing a donation 
confirmation unit, e.g. receipt for CHF1, CHF2. Equivalent in Taler is "coin".
     \item $b :=$ blinding factor
+    \item $statement_{year} :=$ sum of donations(receipts) for one specific 
year and specific donor
     \item $m :=$ receipt
     \item $m' :=$ blinded receipt
     \item $s :=$ signed receipt
     \item $s' :=$ blind signed receipt
+    \item $mi, si, mi'...$ := number receipts/signatures if there are
+    more than one eg. m1,m2...
+    \item $m_{kj}$ or $mi_{kj} \Rightarrow kj$ := specific donau public key 
used to attribute a specific value to a receipt, e.g. k1 gives the receipt a 
value of 1, k2 a value of 2...
 \end{itemize}
 
 \subsection{receipt}
@@ -47,21 +51,31 @@ The nonce is used to uniquely distinguish receipts of the 
same value ("create a
 \end{enumerate}
 
 \subsection{Step 1: Donor donates to charity}
-The donor downloads the donation unit/receipt public keys for the 
corresponding year.
+\begin{enumerate}
 
-To donate 3 Euros the donor has to generate 2 coins (a 1 Euro and 2 Euro 
coin). The donor generates messages $M_1$ and $M_2$ which include a salted hash 
of the tax number and a NONCE.
+    \item The donor downloads the donation unit/receipt public keys for the 
corresponding year from the donau.
 
-\begin{align}
-    M_1 = \langle H(TAXID, SALT), NONCE_1 \rangle \\
-    M_2 = \langle H(TAXID, SALT), NONCE_2 \rangle
-\end{align}
+    \item To donate 5 Euros the donor has to generate 2 receipts (a 1 Euro and 
4 Euro receipt). The donor generates receipts $m1$ and $m2$ which include a 
salted hash of the tax number and a NONCE.
 
-The messages are blinded using the blinding factor b and sent as $M_1'$ and 
$M_2'$ to the charity in addition to the payment of 3 Euros.
+    \begin{align}
+        m1 = \langle H(TAXID, SALT), NONCE_1 \rangle \\
+        m2 = \langle H(TAXID, SALT), NONCE_2 \rangle
+    \end{align}
 
-\begin{align}
-    M_1' = M_1 \cdot b_1^{e_{1EUR}} \mod n_{1EUR} \\
-    M_2' = M_2 \cdot b_2^{e_{2EUR}} \mod n_{2EUR}
-\end{align}
+    \item The donor blinds the receipts using two different blinding factors 
$b_1, b_2$ and sends them as $m1'$ and $m2'$ to the charity in addition to the 
payment of 3 Euros.
+
+    \begin{align}
+        m1' = m1 \cdot b_1^{e_{1EUR}} \mod n_{1EUR} \\
+        m2' = m2 \cdot b_2^{e_{4EUR}} \mod n_{4EUR}
+    \end{align}
+
+    \item The Donor signs the receipts using the correct donau public keys. 
This gives the receipts their respective value.
+    \begin{align}
+        m1'_{k1} = sign_{k1}(m1') \\
+        m2'_{k4} = sign_{k4}(m2')
+    \end{align}
+
+\end{enumerate}
 
 \subsection{Step 2: Charity sends signed receipt to donau}
 \begin{enumerate}
@@ -90,9 +104,38 @@ The messages are blinded using the blinding factor b and 
sent as $M_1'$ and $M_2
 \end{enumerate}
 
 \subsection{Step 4: Donor sends receipts to donau, Donau sends back statement}
+\begin{enumerate}
+ \item The donor sends the collection of all $(mi, si, kj)$ of the year to the 
donau.
+ \item For each $(mi, si, kj)$ The donau...
+
+ \begin{itemize}
+  \item verifies that $kj$ is one of it's currently valid public keys
+  \item verifies if $si$ is a correct signature with the corresponding secret 
key.
+  \item verifies that the hash of the taxid and the salt is the same as in 
other receipts
+  \item verifies that the nonce is different from the ones in other receipts
+  \item if all of this is the case, it adds the amount corresponding to the 
public key to the total donation amount for the year.
+ \end{itemize}
+
+ \item The donau then signs over the amount, year and hashed taxid+salt and 
sends signature back to the donor
+ \begin{align}
+    sign(total amount, year, hash(taxid, salt))
+ \end{align}
 
+\end{enumerate}
 
 \subsection{Step 5: Donor sends QR Code to validator (tax office)}
+\begin{enumerate}
+ \item The donor generates a QR code containing the following and sends it to 
the validator/tax office:
+ \begin{itemize}
+  \item taxid
+  \item salt
+  \item signature received from the donau
+  \item year
+  \item amount for the year
+ \end{itemize}
+
+ \item The validator scans the QR code. The app validates that the signature 
corresponds to the current donau statement signing key.
+\end{enumerate}
 
 
 \end{document}

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