gnunet-svn
[Top][All Lists]
Advanced

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

[taler-donau] branch master updated: add meeting protocol


From: gnunet
Subject: [taler-donau] branch master updated: add meeting protocol
Date: Fri, 23 Feb 2024 14:05:06 +0100

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

lukas-matyja pushed a commit to branch master
in repository donau.

The following commit(s) were added to refs/heads/master by this push:
     new 88e3d75  add meeting protocol
     new 833fb1d  Merge remote-tracking branch 'refs/remotes/origin/master'
88e3d75 is described below

commit 88e3d75eae7c65b0aa0a5815f9f291564b6418f8
Author: Matyja Lukas Adam <lukas.matyja@students.bfh.ch>
AuthorDate: Fri Feb 23 14:04:51 2024 +0100

    add meeting protocol
---
 doc/flows/mainOld.tex               | 150 ------------------------------------
 doc/flows/meetings/01_22-02-2024.md |  43 +++++++++++
 2 files changed, 43 insertions(+), 150 deletions(-)

diff --git a/doc/flows/mainOld.tex b/doc/flows/mainOld.tex
deleted file mode 100644
index 5ac84e6..0000000
--- a/doc/flows/mainOld.tex
+++ /dev/null
@@ -1,150 +0,0 @@
-\documentclass{article}
-
-\usepackage[english]{babel}
-\usepackage[utf8]{inputenc}
-\usepackage{amsmath,amssymb}
-\usepackage{parskip}
-\usepackage{graphicx}
-\graphicspath{ {./images/} }
-
-% Margins
-\usepackage[top=3cm, left=3cm, right=3cm, bottom=3cm]{geometry}
-% Colour table cells
-\usepackage[table]{xcolor}
-
-\title{DONAU protocol overview}
-\author{Johannes Casaburi \and Pius Loosli \and Lukas Matyja}
-\date{\today}
-
-\begin{document}
-\maketitle
-
-\section{Definitions}
-\begin{itemize}
-\item $DU :=$ \textbf{donation unit} = Smallest structure representing a 
donation confirmation unit, i.e. accepted values that compose a donation 
(examples: CHF1, CHF2, EUR1, EUR2). Equivalent in Taler is "denomination".
-  \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
-  \item $DRs :=$ collection of $DR$s
-  \item $DS_{year} :=$ \textbf{donation statement} = confirmation over the 
total amount of DRs produced for a specific year and specific donor (DID)
-  \item $b :=$ blinding factor
-  \item $H :=$ cryptographic hash function
-  \item $DUi, Si, DRi, \ldots$ := number entities if there are more than one 
e.g. $DU1$, $DU2$ ...
-  \item $BS_{kj}$ or $S_{kj} \Rightarrow kj$ := specific DONAU public key used 
to attribute a specific value to a DU, e.g. k1 gives the DU a value of 1, k2 a 
value of 2...
-\end{itemize}
-
-\subsection{Unique Donor ID (UDID)}
-
-The NONCE is used to uniquely distinguish donor IDs of the same value
-("create a fresh donor ID").  Otherwise the DONAU would refuse DUs
-containing donations of equal amount to the same charity, since this
-would be seen as "double spending" (or rather, double claiming of
-tax deduction for the same donation).
-
-\begin{align}
-  UDID := \langle H(TAXID, SALT), NONCE \rangle
-\end{align}
-
-\section{Overview}
-\includegraphics[width=\textwidth]{overview}
-
-\subsection{Step 0: Initial setup}
-\begin{enumerate}
-  \item Key generation for blind signatures and statement signing by the 
DONAU. Distribution of the keys to charities, donors and tax authorities 
(possibly on-demand via REST API). Let $ki$ be the private key for $i$ DU and 
$Pi$ be the corresponding public key.
-  \item The charity generates their own key pair (charity pub/priv).
-  \item The DONAU administrator registers the public key of the charity and 
sets the yearly donation limit for the charities.
-\end{enumerate}
-
-\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.
-
-  \item To donate 5 Euros the donor has to generate 2 UDIDs (for 1 Euro and 4 
Euro DU).
-    The donor generates UDIDs $U1$ and $U2$ which include a salted hash of the 
tax number
-    (here TAXID) and a NONCE.
-
-  \begin{align}
-    U1 = \langle H(TAXID, SALT), NONCE_1 \rangle \\
-    U2 = \langle H(TAXID, SALT), NONCE_2 \rangle
-  \end{align}
-
-  \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 \\
-    BU2 = \langle blind(b_2,U2, P4), H(P4) \rangle
-  \end{align}
-
-\item The donor sends the blinded UDIDs (BDIDs) $BU1$ and $BU2$ as well as the 
payment of 5 Euros.
-
-\end{enumerate}
-
-\subsubsection{Charity sends signed BDIDs to DONAU}
-\begin{enumerate}
-\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.
-\end{enumerate}
-
-\subsubsection{DONAU sends back blind signed UDIDs to charity}
-\begin{enumerate}
-  \item The DONAU:
-    \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)$.
-        \begin{align}
-          BS1 &:= sign(BU1, k_1) \\
-          BS2 &:= sign(BU2, k_4)
-        \end{align}
-      \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.
-  \begin{align}
-    S1_{k1} &= unblind(BS1, b_1) \\
-    S2_{k4} &= unblind(BS2, b_2)
-  \end{align}
-\end{enumerate}
-
-
-\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 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 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}
-  \item The DONAU then signs over the total amount,
-  year and hashed TAXID+salt and sends signature and the total amount so far 
back to the donor.
-
-  \begin{align}
-    DS := sign(total amount, year, H(TAXID, salt))
-  \end{align}
-
-\end{enumerate}
-
-\subsection{Step 3: 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 version of the protocol (one byte)
-    \item TAXID
-    \item salt
-    \item DS received from the DONAU
-    \item year
-    \item amount for the year
-  \end{itemize}
-
-\item The validator scans the QR code and validates that the signature 
corresponds to the current DONAU DS signing key.
-\end{enumerate}
-
-\end{document}
diff --git a/doc/flows/meetings/01_22-02-2024.md 
b/doc/flows/meetings/01_22-02-2024.md
new file mode 100644
index 0000000..25f0c76
--- /dev/null
+++ b/doc/flows/meetings/01_22-02-2024.md
@@ -0,0 +1,43 @@
+# Meeting 22.02.2024
+
+## administrative
+
+Must have (to prioritize):
+
+- DONAU implementation
+
+- Merchant part implementation
+
+- Clarification of practicability with the cantonal tax office
+  
+  - presentation of the idea
+  
+  - legal requirements
+  
+  - Is there a need -> yes :)
+
+Optional (time dependent):
+
+- Wallet implementation (client side)
+
+- Android app (verification tool for tax office)
+  
+  - Scans the QR, checks the signature and shows a green visual check mark or 
a red cross
+
+- SPA DONAU
+
+## donau coding questions
+
+This code in src/testing/testing_api_cmd_charity_get.c will asynchronously 
call the next job if the timeout is not zero. Since the next call is 
TALER_TESTING_cmd_end (), all jobs are terminated and the desired GET 
charitiy/1. The solution: Use GNUNET_TIME_relative_get_zero_ () to call the 
function.
+
+```c
+  if (! GNUNET_TIME_relative_is_zero (ss->timeout))
+  {
+    TALER_TESTING_interpreter_next (is);
+    return;
+  }
+```
+
+Problem uint64_t gives warnings by writing into the database. Therefore we are 
now generally using long long unsigned int and casting before database 
interaction with long unsigned int (important to cast after scanf operation we 
dont want to cut off parts).
+
+

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