donau

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

commit f1fd66e0d0628778f6a2d4599b1dd29bce2cc910
parent be436a04952307852f622a1b1fcabc69af2e4ec5
Author: Matyja Lukas Adam <lukas.matyja@students.bfh.ch>
Date:   Sun,  8 Oct 2023 15:53:45 +0200

[doc] adjustments of the protocol according to the last meeting

Diffstat:
Mdoc/flows/images/overview.png | 0
Mdoc/flows/main.tex | 28++++++++++++++--------------
2 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/doc/flows/images/overview.png b/doc/flows/images/overview.png Binary files differ. diff --git a/doc/flows/main.tex b/doc/flows/main.tex @@ -22,8 +22,8 @@ \section{Definitions} \begin{itemize} \item $DU :=$ \textbf{donation unit} = Smallest structure representing a donation confirmation unit, e.g. receipt for CHF1, CHF2. Equivalent in Taler is "denomination". - \item $UDID := $ unique identifier of a donor by tax ID, made unique per donation to obtain unique $DR$s per donation - \item $BDID :=$ blinded $UDID$, blinded for privacy of the donor + \item $UDID := $ \textbf{unique donor identifier} of a donor by tax ID, made unique per donation to obtain unique $DR$s per donation + \item $BDID :=$ blinded $UDID$, blinded for privacy of the donor \item $BS :=$ BDU blinded signature made with a donation unit secret key (from DONAU) \item $S :=$ unblinded BS \item $DR :=$ \textbf{donation receipt} = $UDID$ with $S$ signature of DONAU affirming donation over the respectiv amount as given by the DU associated with the signature @@ -57,8 +57,8 @@ tax deduction for the same donation). \item The DONAU administrator registers the public key of the charity and sets the yearly donation limit for the charities. \end{enumerate} -\subsection{Attest donation} -\subsubsection{Step 1: Donor donates to charity} +\subsection{Step 1: Attest donation} +\subsubsection{Donor donates to charity} \begin{enumerate} \item The donor downloads the DU public keys $P1, P4$ for the corresponding year from the DONAU. @@ -67,13 +67,13 @@ tax deduction for the same donation). (here TAXID) and a NONCE. \begin{align} - U1 = \langle H(TAXID, SALT), NONCE_1 \rangle \\ % These are (prototypes) for DRs! DUs are the 1 EUR and 4 EUR! - U2 = \langle H(TAXID, SALT), NONCE_2 \rangle % Maybe call these UDIDs? (Unique Donor Ids) + U1 = \langle H(TAXID, SALT), NONCE_1 \rangle \\ + U2 = \langle H(TAXID, SALT), NONCE_2 \rangle \end{align} - \item The donor blinds the DUs using two different blinding factors $b_1, b_2$. + \item The donor blinds the UDIDs using two different blinding factors $b_1, b_2$. \begin{align} - BU1 = \langle blind(b_1,U1, P1), H(P1) \rangle \\ % BDR! + BU1 = \langle blind(b_1,U1, P1), H(P1) \rangle \\ BU2 = \langle blind(b_2,U2, P4), H(P4) \rangle \end{align} @@ -83,7 +83,7 @@ tax deduction for the same donation). \subsubsection{Charity sends signed BDIDs to DONAU} \begin{enumerate} -\item The charity verifies that the amount requested (based on the $H(Px)$) +\item The charity verifies that the amount requested (based on the $H(Pi)$) for signing is lower or equal to the effective amount of the donation. \item The charity signs (using EdDSA) a structure containing all unsigned BDIDs coming from the donor. \item The charity sends this structure and the signature to the DONAU. @@ -95,12 +95,12 @@ tax deduction for the same donation). \begin{enumerate} \item verifies the charity signature on the structure. \item increments the current year amount of the charity by the total amount of the BDIDs, if the increment does not exceed the annual limit. - \item blind signs all the BDIDs using the private keys $k_i$ matching the public keys $H(Pi)$ + \item blind signs all the BDIDs using the private keys $k_i$ matching the public keys $H(Pi)$. \begin{align} BS1 &:= sign(BU1, k_1) \\ BS2 &:= sign(BU2, k_4) \end{align} - \item sends back the blind signatures to the charity + \item sends back the blind signatures to the charity. \end{enumerate} \item The charity transmits the blind signatures to the donor. \item The donor unblinds the signatures. @@ -111,15 +111,15 @@ tax deduction for the same donation). \end{enumerate} -\subsection{Step 2: Donor sends DR to DONAU, DONAU sends back donation statement (DS)} +\subsection{Step 2: Donor sends DRs to DONAU, DONAU sends back donation statement (DS)} \begin{enumerate} - \item The donor sends the collection of all $\langle BDUIi, Si, H(Pj) \rangle$ to the DONAU. The DR is always sent to the DONAU right after the donor has unblinded the DUs. + \item The donor sends the collection of all $\langle DUi, Si, H(Pj) \rangle$, also called DRs, to the DONAU. The DRs are sent manually once a year. \item For each $\langle DUi, Si, H(Pj) \rangle$ The DONAU... \begin{itemize} \item check if $Pj$ is stored and get the corresponding year and donation unit (amount donated). \item verifies if $Si$ is a correct signature with the corresponding public key $Pj$. - \item verifies that the hash of the TAXID and the salt is the same as in other DUs (how to solve the problem with multiple wallets?) % => Each wallet must simply obtain a separate DS! + \item verifies that the hash of the TAXID and the salt is the same as in other DRs (With multiple wallets each wallet must simply obtain a separate DS!). \item verifies that the nonce is different from each ever used nonce of this donor for the corresponding year. \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}