diff --git a/age-restriction.drawio/.$age-restriction-taler.drawio.bkp b/age-restriction.drawio/.$age-restriction-taler.drawio.bkp new file mode 100644 index 0000000..fbb486f --- /dev/null +++ b/age-restriction.drawio/.$age-restriction-taler.drawio.bkp @@ -0,0 +1,1483 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/age-restriction.drawio/age-restriction-taler.drawio b/age-restriction.drawio/age-restriction-taler.drawio index 5c78f62..7e540b8 100644 --- a/age-restriction.drawio/age-restriction-taler.drawio +++ b/age-restriction.drawio/age-restriction-taler.drawio @@ -1,193 +1,193 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -197,7 +197,7 @@ - + @@ -207,199 +207,199 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -410,7 +410,7 @@ - + @@ -419,270 +419,1062 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eipsi2024/eipsi2024.tex b/eipsi2024/eipsi2024.tex index 919809f..00d73e9 100644 --- a/eipsi2024/eipsi2024.tex +++ b/eipsi2024/eipsi2024.tex @@ -101,12 +101,11 @@ \item<1->[Deliverable]~\\ Present a solution to age restriction and its integration in GNU Taler. \vfill - \item<2->[Side-Channel]~\\ + \item<2->[Drive-By]~\\ Show concepts from cryptography by example: Zero-Knowledge protocol, Security Game and Security Proof - This will be technical. \vfill \item<3->[Non-goals]~\\ \begin{itemize} @@ -119,13 +118,15 @@ \begin{frame}{Sponsors} \centering\begin{columns}[T] - \column{0.5\textwidth} - \centering NGI Pointer program of the European Commission\\[2em] + \column{0.6\textwidth} + \centering NGI Taler and NGI Pointer programs of the European Commission\\[2em] - \centering\includegraphics[width=0.7\textwidth]{images/ngi-ap3.png} + \centering\includegraphics[width=0.9\textwidth]{images/ngi-taler.jpg} - \column{0.5\textwidth} - \centering Project \textit{Concrete Contracts} in the + \centering\includegraphics[width=0.5\textwidth]{images/ngi-ap3.png} + + \column{0.4\textwidth} + \centering Project\\ \textit{Concrete Contracts} in the \textit{KMU-innovativ} programm\\[2em] \centering\includegraphics[width=0.9\textwidth]{images/bmbf-english.jpg} @@ -297,6 +298,43 @@ with the following properties: \end{columns} \end{frame} +\begin{frame}{Helpful figure - Commit} + + \centering\includegraphics[height=0.9\textheight]{images/commit.pdf} + +\end{frame} + +\begin{frame}{Helpful figure - Attest and Verify} + + \centering\includegraphics[height=0.9\textheight]{images/attest-verify.pdf} + +\end{frame} + +\begin{frame}{Helpful figure - Derive and Compare} + + \centering\includegraphics[width=\textwidth]{images/derive-compare.pdf} + +\end{frame} + +\begin{frame}{Helpful figure} + \small + \begin{columns}[t] + \column{0.25\textwidth} + Commit:\\[1em] + + \includegraphics[width=\textwidth]{images/commit.pdf} + + \column{0.25\textwidth} + Attest and Verify:\\[1em] + + \includegraphics[width=\textwidth]{images/attest-verify.pdf} + + \column{0.5\textwidth} + Derive and Compare:\\[1em] + + \includegraphics[width=\textwidth]{images/derive-compare.pdf} + \end{columns} +\end{frame} \begin{frame}{Specification of the Function Signatures} \small @@ -362,6 +400,7 @@ Searching for functions \uncover<2->{with the following signatures} } \end{frame} + \begin{frame}{Naïve scheme} \begin{center} \begin{tikzpicture}[scale=.8] @@ -427,39 +466,57 @@ Searching for functions \uncover<2->{with the following signatures} \end{frame} \begin{frame}{Achieving Unlinkability} - Given $\Derive()$ and $\Compare()$, define the Zero-Knowledge-protocol + Given $\Derive()$ and $\Compare()$, define the cut-and-choose protocoll \orange{$\DeriveCompare$} as follows (sketch): + \begin{columns} + \column{0.3\textwidth} + \pause + \includegraphics[width=\textwidth]{images/cut-and-choose.pdf} + + \column{0.7\textwidth} + \pause + \uncover<2->{ - \small + + \scriptsize + Let $\kappa \in \N$ (say: $\kappa = 3$) \begin{itemize}[<+->] \item[$\Child$:] \begin{enumerate} + \scriptsize \item generates $(\commitment_1,\dots,\commitment_\kappa)$ - and $(\beta_1,\dots,\beta_\kappa)$ from $\commitment_0$\\ + and $(\beta_1,\dots,\beta_\kappa)$ from $\commitment_0$ by calling $\kappa$ times $\Derive(\commitment_0, \pruf_0, \omega_i)$ \item calculates $h_0:=H\left(H(\commitment_1, \beta_1)\parallel \dots\parallel H(\commitment_\kappa, \beta_\kappa)\right)$ \item sends $\commitment_0$ and $h_0$ to $\Exchange$ \end{enumerate} \item[$\Exchange$:] \begin{enumerate} + \scriptsize + \item[4.] saves $\commitment_0$ and $h_0$ and sends $\Child$ random $\gamma \in \{1,\dots,\kappa\}$ \end{enumerate} \item[$\Child$:] \begin{enumerate} + \scriptsize \item[5.] reveals $h_\gamma:=H(\commitment_\gamma, \beta_\gamma)$ and all $(\commitment_i, \beta_i)$, except $(\commitment_\gamma, \beta_\gamma)$ \end{enumerate} \item[$\Exchange$:] \begin{enumerate} - \item[6.] compares $h_0$ and + \scriptsize + \item[6.] compares $h_0$ and $H\left(H(\commitment_1, \beta_1)\parallel ...\parallel h_\gamma\parallel ...\parallel H(\commitment_\kappa, \beta_\kappa)\right)$ \item[7.] evaluates $\Compare(\commitment_0, \commitment_i, \beta_i)$ for all $i \neq \gamma$. \end{enumerate} \end{itemize} \pause + \scriptsize + If all steps succeed, $\commitment_\gamma$ is the new commitment. } + \end{columns} \end{frame} \begin{frame}{Achieving Unlinkability}%{Certainty trade-off} @@ -677,10 +734,15 @@ Searching for functions \uncover<2->{with the following signatures} \end{frame} \begin{frame}{Definition of Commit with ECDSA}%{Definition of Commit} - + \begin{columns} + \column{0.2\textwidth} + \includegraphics[width=1.1\textwidth]{images/commit.pdf} + \column{0.8\textwidth} \begin{description} + \small \item[To \blue{Commit} to age group $\age \in \{1,\dots,\Age\}$]~\\ \begin{enumerate}[<+->] + \small \item Guardian generates ECDSA-keypairs, one per age group: \[\langle(q_1, p_1),\dots,(q_\Age,p_\Age)\rangle\] \item Guardian then \textbf{drops} all private keys @@ -699,15 +761,23 @@ Searching for functions \uncover<2->{with the following signatures} \vfill \end{enumerate} \end{description} + \end{columns} \end{frame} \begin{frame}{Attest and Verify with ECDSA} + \begin{columns} + \column{0.2\textwidth} + \includegraphics[width=1.1\textwidth]{images/attest-verify.pdf} + \column{0.8\textwidth} + \small Child has \begin{itemize} + \small \item ordered public-keys $\Vcommitment = (q_1, \dots~\dots~\dots, q_\Age) $, \item (some) private-keys $\Vpruf = (p_1, \dots, p_\age, \Nil, \dots, \Nil)$. \end{itemize} \begin{description} + \small \item<2->[To \blue{Attest} a minimum age (group) $\blue{\minage} \leq \age$:]~\\ Sign a message with ECDSA using private key $p_\blue{\minage}$. The signature $\sigma_\blue{\minage}$ is the @@ -717,17 +787,21 @@ Searching for functions \uncover<2->{with the following signatures} \vfill \uncover<3->{ + \small Merchant gets \begin{itemize} + \small \item ordered public-keys $\Vcommitment = (q_1, \dots, q_\Age) $ \item Signature $\sigma_\blue{\minage}$ \end{itemize} \begin{description} + \small \item<4->[To \blue{Verify} a minimum age (group) \blue{$\minage$}:]~\\ Verify the ECDSA-Signature $\sigma_\blue{\minage}$ with public key $q_\blue{\minage}$. \end{description} } \vfill + \end{columns} \end{frame} \begin{frame}{Derive and Compare with ECDSA} @@ -951,57 +1025,65 @@ Searching for functions \uncover<2->{with the following signatures} \centering \includegraphics[height=0.9\textheight]{images/wallet-age.png} \end{frame} -\include{gnu} - -\begin{frame}{Interested in GNU Taler?} - We are looking for developers, testers, users! - - \begin{description} - \item[Intro:] \url{https://taler.net} - \item[Learn:] \url{https://docs.taler.net} - \item[Develop:] \url{https://git.taler.net}, \url{https://bugs.taler.net} - \end{description} -\end{frame} +% \include{gnu} +% +% \begin{frame}{Interested in GNU Taler?} +% We are looking for developers, testers, users! +% +% \begin{description} +% \item[Intro:] \url{https://taler.net} +% \item[Learn:] \url{https://docs.taler.net} +% \item[Develop:] \url{https://git.taler.net}, \url{https://bugs.taler.net} +% \end{description} +% \end{frame} \section{Discussion \& Conclusion} \begin{frame}{Discussion} + Technical Aspects and Challenges \begin{itemize}[<+->] \item Our solution can in principle be used with any token-based payment scheme \item[] However, GNU Taler best aligned with our design goals (security, privacy and efficiency). \item Subsidiarity requires bank accounts being owned by adults. - \item[] However, scheme can be adapted to cases of + \item[] However, scheme can be adapted \begin{itemize} - \item minors have bank accounts - \item peer-to-peer payments - \item[] Hint: Know-Your-Customer (KYC) and adapted - withdraw protocol. + \item Know-Your-Customer (KYC) provides age information + \item Parents can set age on a long-term wallet of a child + \item cut\&choose protocol \texttt{age-withdraw} implemented \end{itemize} - \item Our scheme offers an alternative to identity management systems (IMS) \end{itemize} \end{frame} -% \begin{frame}{Related Work} -% \begin{itemize} -% \item Current privacy-perserving systems all based on -% attribute-based credentials (Koning et al., -% Schanzenbach et al., Camenisch et al., Au et al.) -% -% \item Attribute-based approach lacks support: -% \begin{itemize} -% \item Complex for consumers and retailers -% \item Requires trusted third authority -% \end{itemize} -% \vfill -% \item Other approaches tie age-restriction to ability to pay ("debit cards for kids") -% \begin{itemize} -% \item Advantage: mandatory to payment process -% \item Not privacy friendly -% \end{itemize} -% \end{itemize} -% \end{frame} +\begin{frame}{Discussion} + Legal aspects and applicability + \begin{itemize}[<+->] + \item The scheme only makes sense when cheating can be discouraged, f.e. economically + \item There will be limits where the scheme is considered acceptable. + \item Our scheme offers an alternative to identity management systems (IMS), where applicable + \end{itemize} +\end{frame} + +\begin{frame}{Related Work} + \begin{itemize} + \item Current privacy-perserving systems all based on + attribute-based credentials (Koning et al., + Schanzenbach et al., Camenisch et al., Au et al.) + + \item Attribute-based approach lacks support: + \begin{itemize} + \item Complex for consumers and retailers + \item Requires trusted third authority + \end{itemize} + \vfill + \item Other approaches tie age-restriction to ability to pay ("debit cards for kids") + \begin{itemize} + \item Advantage: mandatory to payment process + \item Not privacy friendly + \end{itemize} + \end{itemize} +\end{frame} \begin{frame}{Conclusion} Age restriction is a technical, ethical and legal challenge. @@ -1015,7 +1097,7 @@ Searching for functions \uncover<2->{with the following signatures} \vfill \pause - Our scheme offers a solution that + Our scheme offers an option that \begin{itemize} \item aligns with subsidiarity \item preserves privacy @@ -1026,7 +1108,7 @@ Searching for functions \uncover<2->{with the following signatures} \begin{frame}{} - \large + % \large \begin{center} {\Huge \textbf{Thank you!}}\\ Questions? @@ -1038,9 +1120,11 @@ Searching for functions \uncover<2->{with the following signatures} \vfill {Interested in GNU Taler?} \begin{description} - \item[Intro:] \url{https://taler.net} + \item[Intro:] \url{https://taler.net}, \item[Learn:] \url{https://docs.taler.net} \item[Develop:] \url{https://git.taler.net}, \url{https://bugs.taler.net} + \item[Connect:] \url{https://ich.taler.net} + \item[NGI Taler:] \url{https://ngi.taler.net} \end{description} \end{center} \end{frame} diff --git a/eipsi2024/images/attest.jpg b/eipsi2024/images/attest.jpg new file mode 100644 index 0000000..82d874d Binary files /dev/null and b/eipsi2024/images/attest.jpg differ diff --git a/eipsi2024/images/attest.png b/eipsi2024/images/attest.png new file mode 100644 index 0000000..9c25e53 Binary files /dev/null and b/eipsi2024/images/attest.png differ diff --git a/eipsi2024/images/attest.svg b/eipsi2024/images/attest.svg new file mode 100644 index 0000000..f1404f9 --- /dev/null +++ b/eipsi2024/images/attest.svg @@ -0,0 +1,4 @@ + + + +

Contract

...

Age group: 3

Attestation:
19d8de
3
1: b5bb9d
2: 801fa0
3: 19d8de
4: 52f23c


\ No newline at end of file diff --git a/eipsi2024/images/commit.jpg b/eipsi2024/images/commit.jpg new file mode 100644 index 0000000..028b07c Binary files /dev/null and b/eipsi2024/images/commit.jpg differ diff --git a/eipsi2024/images/commit.png b/eipsi2024/images/commit.png new file mode 100644 index 0000000..a8a0582 Binary files /dev/null and b/eipsi2024/images/commit.png differ diff --git a/eipsi2024/images/commit.svg b/eipsi2024/images/commit.svg new file mode 100644 index 0000000..5281448 --- /dev/null +++ b/eipsi2024/images/commit.svg @@ -0,0 +1,4 @@ + + + +
1: b5bb9d
2: 801fa0
3: 19d8de
4: 52f23c
b5bb9d
1
1
801fa0
2
2
19d8de
3
3
52f23c
4
key ID's
age
groups


\ No newline at end of file diff --git a/eipsi2024/images/commit.vsdx b/eipsi2024/images/commit.vsdx new file mode 100644 index 0000000..4931cfb Binary files /dev/null and b/eipsi2024/images/commit.vsdx differ diff --git a/eipsi2024/images/derive-compare.png b/eipsi2024/images/derive-compare.png new file mode 100644 index 0000000..b96152e Binary files /dev/null and b/eipsi2024/images/derive-compare.png differ diff --git a/eipsi2024/images/ngi-taler.jpg b/eipsi2024/images/ngi-taler.jpg new file mode 100644 index 0000000..0b0c802 Binary files /dev/null and b/eipsi2024/images/ngi-taler.jpg differ diff --git a/eipsi2024/images/ngi-taler.png b/eipsi2024/images/ngi-taler.png new file mode 100644 index 0000000..a7a10d2 Binary files /dev/null and b/eipsi2024/images/ngi-taler.png differ