[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[donau] 10/10: adding code listings & commitment for aritfact
From: |
gnunet |
Subject: |
[donau] 10/10: adding code listings & commitment for aritfact |
Date: |
Thu, 23 Jan 2025 00:25:10 +0100 |
This is an automated email from the git hooks/post-receive script.
tanja-lange pushed a commit to branch master
in repository donau.
commit 351b82403edd44c89f86999a420f76695401700f
Author: Tanja Lange <tanja@hyperelliptic.org>
AuthorDate: Thu Jan 23 00:24:32 2025 +0100
adding code listings & commitment for aritfact
---
doc/usenix-security-2025/paper/app-impl.tex | 186 ++++++++++++++++++++++++++++
doc/usenix-security-2025/paper/ethic.tex | 15 +--
doc/usenix-security-2025/paper/threats.tex | 2 +-
3 files changed, 195 insertions(+), 8 deletions(-)
diff --git a/doc/usenix-security-2025/paper/app-impl.tex
b/doc/usenix-security-2025/paper/app-impl.tex
new file mode 100644
index 0000000..28a8d45
--- /dev/null
+++ b/doc/usenix-security-2025/paper/app-impl.tex
@@ -0,0 +1,186 @@
+\section{Additional Details -- Implementation}\label{app-impl}
+
+This appendix describes the remaining implementation details such as APIs.
+
+\subsection{REST API}
+
+The detailed REST API specification of the Donau back-end is publicly
+available and will be submitted as artifact.
+The following are
+the main API endpoints:
+
+\subsubsection{\texttt{/keys}}
+The \texttt{GET /keys} request returns all valid donation unit public keys
+offered by the Donau, as well as the Donau's current EdDSA public signing key.
+The following is an example response of a \texttt{curl 127.0.0.1:8080/keys}
+command. Some parts of the following example responses are truncated (denoted
by
+the three dots '\texttt{...}') to make them more readable.
+
+\begin{verbatim}
+{
+ "version": "0:0:0",
+ "base_url": "http://localhost:8080/",
+ "currency": "EUR",
+ "signkeys": [
+ {
+ "stamp_start": {
+ "t_s": 1717069556
+ },
+ "stamp_expire": {
+ "t_s": 1718279156
+ },
+ "key": "CFV2PY8164E231XZSQK30K8R6CBQ..."
+ },
+ {
+ ...
+ }
+ ],
+ "donation_units": [
+ {
+ "donation_unit_pub": {
+ "cipher": "RSA",
+ "rsa_public_key": "020000YC7XK99S..."
+ },
+ "year": 2024,
+ "lost": false,
+ "value": "EUR:5"
+ },
+ {
+ "donation_unit_pub": {
+ "cipher": "CS",
+ "cs_public_key": "7SKRQGBSEPBG24..."
+ },
+ "year": 2024,
+ "lost": false,
+ "value": "EUR:1"
+ },
+ {
+ ...
+ }
+ ]
+}
+\end{verbatim}
+
+\subsubsection{\texttt{/charities}}
+
+The following is an example response of a \texttt{curl
127.0.0.1:8080/charities} command.
+There is only one charity named \texttt{example} registered with a donation
limit of 10 euros.
+
+\begin{verbatim}
+{
+ "charities": [
+ {
+ "charity_pub": "ABETNXT9ZF606FRF3WD5...",
+ "url": "example.com",
+ "name": "example",
+ "max_per_year": "EUR:10",
+ "receipts_to_date": "EUR:0",
+ "current_year": 2024
+ }
+ ]
+}
+\end{verbatim}
+
+To insert a charity a \texttt{POST} request can be sent using
+\texttt{curl -d @charity.json -X POST http://127.0.0.1:8080/charities}.
+
+The following is an example of a
+\texttt{charity.json} entry
+
+\begin{verbatim}
+{
+ "charity_pub": "ABETNXT9ZF606FRF3WD5...",
+ "charity_name": "mycharity",
+ "charity_url": "mycharity.example.com",
+ "max_per_year": "EUR:1000",
+ "receipts_to_date": "EUR:0",
+ "current_year": 2024
+}
+\end{verbatim}
+
+The response consists of the charity ID generated by the database.
+\begin{verbatim}
+{
+ "charity-id": 1
+}
+\end{verbatim}
+
+
+\subsubsection{\texttt{/batch-issue}}
+
+The following is an example response of a \\
+\texttt{curl -d @issue.json -X POST http://127.0.0.1:8080/batch-issue/1}
+request showing a \texttt{issue.json} entry.
+The number at the end of the URL is the charity ID.
+
+
+
+\begin{verbatim}
+{
+ "budikeypairs": [
+ {
+ "h_donaton_unit_pub": "130C2KDHTAFDQFB8XED...",
+ "blinded_udi": {
+ "cipher": "RSA",
+ "rsa_blinded_identifier": "AXPTEE24W28S9XN..."
+ }
+ }
+ ],
+ "charity_sig": "JEJ0QMDXD416XKSK1SG0DETJEH...",
+ "year": 2024
+}
+\end{verbatim}
+
+\begin{verbatim}
+{
+ "blind_signatures": [
+ {
+ "blinded_signature": {
+ "cipher": "RSA",
+ "blinded_rsa_signature": "16XHNWSCDRVKHF..."
+ }
+ }
+ ],
+ "issued_amount: "EUR:15"
+}
+\end{verbatim}
+
+\subsubsection{\texttt{/batch-submit}}
+
+\begin{verbatim}
+{
+ "h_donor_tax_id": "N2NYR2SFNGZSS388R2SB0VK...",
+ "donation_year": 2024,
+ "donation_receipts": [
+ {
+ "h_donaton_unit_pub": "130C2KDHTAFDQFB8X...",
+ "nonce": "JEQC39G",
+ "donation_unit_sig":
+ {
+ "cipher": "RSA",
+ "rsa_signature": "GQBXPNE4JT5W53T3CVP6E..."
+ }
+ }
+ ]
+}
+\end{verbatim}
+
+\subsubsection{\texttt{/donation-statement}}
+To obtain the donation statement, the donor submits a GET request for a
specified year and taxpayer ID.
+
+The following is an example response of a \\
+\texttt{curl http://127.0.0.1:8080/donation-statement/$\backslash$} \\
+\hspace*{0.5cm} \ \texttt{2024/N2NYR2SFNGZSS388R2SB...} \\
+request.
+
+The last parameter of the URL is the \DI.
+
+\begin{verbatim}
+{
+ "total": "EUR:15",
+ "donation_statement": "C1JVDP25AR001W5AHMAZ...",
+ "donau_pub": "63f62b7901311c2187bfcde6304d1..."
+}
+\end{verbatim}
+
+
diff --git a/doc/usenix-security-2025/paper/ethic.tex
b/doc/usenix-security-2025/paper/ethic.tex
index 7423e49..187c0f0 100644
--- a/doc/usenix-security-2025/paper/ethic.tex
+++ b/doc/usenix-security-2025/paper/ethic.tex
@@ -1,4 +1,4 @@
-\section*{Ethics considerations and compliance with the open science policy}
+\section{Ethics considerations}
Ethical considerations are at the root of this project.
At their essence, donations are ethical acts that empower third parties to act
in a manner compatible with the value system of the donor.
@@ -7,23 +7,24 @@ explicitly linking them to the causes and institutions they
support.
This has a self-censoring or chilling effect, due to fear of potential future
repercussions in complex and volatile political climates:
information may linger inside of the bureaucratic system and later cause
unforeseeable harm.
Support for certain organizations and their linked causes
-can lead not only to stigmatisation but also to phyical harassement, or far
worse.
+can lead not only to stigmatization but also to physical harassment, or far
worse.
Such concerns about real-world consequences of revealing one's support for
various causes creates stress for donors,
and the current approach to provide tax benefits for donations encroaches on
the privacy of those who do not wish to reveal who they support.
\input{threats}
-\subsection*{Administrative burden}
+\subsection{Administrative burden}
The current mechanism also has discriminatory aspects.
-It places a higher bureaucratic cost on spreading an equivalent cumulative
amount across smaller philanthropic causes -- denying intersectional interests
donors may have, and disadvantaging smaller, early stage and more lean public
causes. %XXX: "earlier stage"/"leaner"?
+It places a higher bureaucratic cost on spreading an equivalent cumulative
amount across smaller philanthropic causes -- denying inter-sectional interests
donors may have, and disadvantaging smaller, early stage and more lean public
causes. %XXX: "earlier stage"/"leaner"?
The latter notably includes ``niche'' causes linked to (combinations of)
cultural, sexual, ethnic, religious and social minorities.
Smaller causes often do not have the capacity to offer support for achieving
fiscal compensation to their donors, reprieving their (latent) donor
constituencies of the amplifying effects of such compensation and making them
less attractive (and thus relatively less likely) to be supported. %XXX: This
sentence does not make sense to me. "Reprieve" is not used correctly (I think),
and it's too lacking in detail to understand whether it's referring to e.g.,
membership benefits, or something [...]
-The aim of this project is to simplify donating for all and offer
non-discrimatory access to tax benefits and greater protection of privacy,
leading to greater tax justice and a philanthropic climate.
+The aim of this project is to simplify donating for all and offer
non-discriminatory access to tax benefits and greater protection of privacy,
leading to greater tax justice and a philanthropic climate.
We want to reverse the situation where people prefer not to claim the tax
benefit to which they are entitled in order to protect themselves.
-\subsection*{Access to software}
-The associated software does not place any ethical dillema's upon the users.
+\section{Open science}
+\subsection{Access to software}
+The associated software does not place any ethical dilemmas upon the users.
It is delivered as free/libre open source software, available under GNU
Affero General Public license v3 or later in
\ifanonymous
diff --git a/doc/usenix-security-2025/paper/threats.tex
b/doc/usenix-security-2025/paper/threats.tex
index 8fe9853..b5a1eef 100644
--- a/doc/usenix-security-2025/paper/threats.tex
+++ b/doc/usenix-security-2025/paper/threats.tex
@@ -1,4 +1,4 @@
-\subsection*{Money laundring}\label{sec:threats}
+\subsection{Money laundering}\label{sec:threats}
\ifodd0
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [donau] branch master updated (aa84bf3 -> 351b824), gnunet, 2025/01/22
- [donau] 02/10: typo fix, gnunet, 2025/01/22
- [donau] 01/10: start of additional references, gnunet, 2025/01/22
- [donau] 03/10: this is too chatty for the definition environment and it was the only definiion, put citations with the thing they are being cited for, gnunet, 2025/01/22
- [donau] 06/10: spell checking and general read through, gnunet, 2025/01/22
- [donau] 05/10: changed to donau service and agreed on removing tax authority when not needed, gnunet, 2025/01/22
- [donau] 07/10: tricky with anonymous link and sounds misleadingly alarming, gnunet, 2025/01/22
- [donau] 08/10: linking in appendix, removing URLs that could violate anoymity, gnunet, 2025/01/22
- [donau] 04/10: adding example for blind signatures, wording, gnunet, 2025/01/22
- [donau] 09/10: the threat section was covering only ethical aspects, so moved into ethics part to save some space, gnunet, 2025/01/22
- [donau] 10/10: adding code listings & commitment for aritfact,
gnunet <=