donau

Donation authority for GNU Taler (experimental)
Log | Files | Refs | Submodules | README | LICENSE

commit ea9fd9ccf1ab3fe67fb3d4d090e95d87e015e230
parent 67acfee6bc87c3255c2ec61866d07a9d26d6f474
Author: Pius Loosli <loosp2@bfh.ch>
Date:   Fri, 29 Sep 2023 16:58:15 +0200

[doc] steps 1-3

Diffstat:
Mdoc/flows/main.tex | 48++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 40 insertions(+), 8 deletions(-)

diff --git a/doc/flows/main.tex b/doc/flows/main.tex @@ -20,15 +20,16 @@ \section{Definitions} \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 $m :=$ receipt request - \item $m' :=$ blinded receipt request + \item $m :=$ receipt + \item $m' :=$ blinded receipt \item $s :=$ signed receipt \item $s' :=$ blind signed receipt \end{itemize} -\section{receipt request} -The nonce is used to uniquely distinguish receipts of the same value ("create a fresh receipt"). Otherwise the donau would refuse receipts starting at the second, since it would believe it is a "double spending". To simplify the thought process, the nonce can be thought of as "the receipt id". +\subsection{receipt} +The nonce is used to uniquely distinguish receipts of the same value ("create a fresh receipt"). Otherwise the donau would refuse receipts starting at the second, since it would believe it is a "double spending". To simplify the thought process, the \begin{color}{red}{nonce}\end{color} can be thought of as "the receipt id". \begin{align} m := <Hash(TaxID, salt), \begin{color}{red}{nonce}\end{color}> \end{align} @@ -36,8 +37,8 @@ The nonce is used to uniquely distinguish receipts of the same value ("create a % TODO example \section{Overview} -% Insert DONAU overview.png -\section{Step 1: Donor donates to charity} +% TODO Insert DONAU overview.png +\subsection{Step 1: Donor donates to charity} 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. \begin{align} @@ -45,12 +46,43 @@ To donate 3 Euros the donor has to generate 2 coins (a 1 Euro and 2 Euro coin). M_2 = \langle H(TAXID, SALT), NONCE_2 \rangle \end{align} -The messages are blinded using the blinding factor and sent as $M_1'$ and $M_2'$ to the charity in addition to the payment of 3 Euros. +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} 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} -\section{Step 2: Charity to exchange} +\subsection{Step 2: Charity sends signed receipt to donau} +\begin{enumerate} + \item The charity verifies that the amount requested for signing is lower or equal to the effective amount of the donation. + \item The charity signs(EdDSA, more efficient than RSA-based signatures) a structure containing all unsigned receipts coming from the donor. + \item The charity sends this structure to the Donau. +\end{enumerate} + +\subsection{Step 3: Donau sends back blind signed receipt to charity} +\begin{enumerate} + \item The donau verifies the charity Signature on the structure. + \item The donau verifies the signature of every receipt with it's private keys. + \item The donau increments the current year amount of the charity by the total amount of the receipts. + \item The donau blind signs (RSA/Schnorr) all the receipts + \begin{align} + s_1' = m_1'^{(d_{E1})} \emph{mod ?} \\ + s_2' = m_2'^{(d_{E2})} \emph{mod ?} + \end{align} + \item The donau sends back the blind signed receipts to the charity + \item The charity transmits the blind signed receipts to the donor. + \item The donor unblinds the receipts. + \begin{align} + s_1 = s_1' \cdot b^{-1} \mod n_1 \\ + s_2 = s_2' \cdot b^{-1} \mod n_2 + \end{align} +\end{enumerate} + +\subsection{Step 4: Donor sends receipts to donau, Donau sends back statement} + + +\subsection{Step 5: Donor sends QR Code to validator (tax office)} + + \end{document}