donau

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

commit 482d0e664c0e190811245dfbf96428ab9470372c
parent ad0f8d4f42c4665b006c2ae20a99a2e10047b370
Author: Casaburi Johannes <johannes.casaburi@students.bfh.ch>
Date:   Wed, 12 Jun 2024 21:30:00 +0200

fix typos

Diffstat:
Mdoc/thesis/abstract.tex | 2+-
Mdoc/thesis/bibliography.bib | 8++++++++
Mdoc/thesis/chapters/acknowledgements/acknowledgements.tex | 2+-
Mdoc/thesis/chapters/background/blindsign.tex | 14+++++++-------
Mdoc/thesis/chapters/background/hash.tex | 2+-
Mdoc/thesis/chapters/background/interview.tex | 2+-
Mdoc/thesis/chapters/implementation/android.tex | 2+-
Mdoc/thesis/chapters/implementation/donau.tex | 12++++++------
Mdoc/thesis/chapters/introduction/goals.tex | 4++--
Mdoc/thesis/chapters/introduction/motivation.tex | 4++--
Mdoc/thesis/chapters/introduction/scope.tex | 4++--
Mdoc/thesis/chapters/results/conclusion.tex | 4++--
Mdoc/thesis/chapters/results/future.tex | 10+++++-----
Mdoc/thesis/chapters/results/results.tex | 8++++----
Mdoc/thesis/thesis.pdf | 0
15 files changed, 43 insertions(+), 35 deletions(-)

diff --git a/doc/thesis/abstract.tex b/doc/thesis/abstract.tex @@ -7,7 +7,7 @@ system could in principle work with other payment systems. Providing evidence of charitable donations for tax deductions often requires sensitive personal information, raising privacy concerns. -Donors may wish to anonymize receipts while still beeing able to make +Donors may wish to anonymize receipts while still being able to make legitimate donations to recognized charities. Deductions for unrecognized charities or failure to deduct valid foreign donations also occur. A system allowing anonymous yet verifiable donation diff --git a/doc/thesis/bibliography.bib b/doc/thesis/bibliography.bib @@ -68,3 +68,11 @@ year={2012}, howpublished = {\url{https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:12012E/TXT}}, } + +@misc{taler-sub, + author={{Christian Blättler}}, + title={Privacy-preserving Subscriptions and Discounts}, + year={2024}, + howpublished = {\url{https://stage.taler.net/papers/subscription-discounts-thesis.pdf}}, +} + diff --git a/doc/thesis/chapters/acknowledgements/acknowledgements.tex b/doc/thesis/chapters/acknowledgements/acknowledgements.tex @@ -2,5 +2,5 @@ First and foremost, we would like to thank Christian Grothoff and Emmanuel Benoi A special thank to Michiel Leenaars from the NLnet foundation who had the initial idea for the project. We would also like to thank our expert Daniel Voisard for his feedback during the project. Further we would like to thank Christian Blättler for his contributions to GNUnet, on which our project relies on. -A big thank to the tax authority Zürich who agreed to an interview, which has provided us with valuable insight in how donations are verified and important aspects that a system like the Donau should fulfil. +A big thank to the tax authority Zürich who agreed to an interview, which has provided us with valuable insight in how donations are verified and important aspects that a system like the Donau should fulfill. We would like to mention that we have used DeepL for word translations and \url{https://app.diagrams.net/} for some of the figures in this thesis. diff --git a/doc/thesis/chapters/background/blindsign.tex b/doc/thesis/chapters/background/blindsign.tex @@ -3,9 +3,9 @@ One important cryptographic scheme used by the Donau is the blind signature scheme. It is an extension of digital signatures which provides, besides authenticity and non-repudiation, privacy by allowing a user to obtain a signature for a message, without revealing the contents of the message to the -signer. All cryptographic elements used by the Donau where privided by the GNU +signer. All cryptographic elements used by the Donau where provided by the GNU Taler libraries. Blind signatures are slightly slower than the normal -signatutes, this does not result in a performance issue as this project on GNU +signatures, this does not result in a performance issue as this project on GNU Taler shows: \url{https://taler.net/en/news/2022-06.html}. This section only provides an overview of blinded signatures. Detailed @@ -18,7 +18,7 @@ able to unblind the signature and therefore to receive a valid signature for the unblinded message. The Donau system uses blinded signatures to bind the identity to a donation receipt while hiding the identity of the donor. As a result of the property of blindness, the blind signer (in this case the Donau) -is not able to link the cleartext message with the made blind signature +is not able to link the clear-text message with the made blind signature or the blind signature with the unblind signature \cite[p.12]{cryptoeprint:2019/877}. There are multiple blind signature schemes. The Donau distinguishes @@ -28,7 +28,7 @@ the following two equivalent blind signature schemes: Concrete the RSA-FDH blind signatures are used. Before blinding, to eliminate certain attacks, a Full-Domain Hash (FDH) is applied on the message. Full-Domain means the hash has the same size as the RSA modulus. The blind -signature scheme is similar to the normal RSA signatur scheme. In addition to +signature scheme is similar to the normal RSA signature scheme. In addition to the normal scheme, the message is blinded with a private and random value. Practically the length of the modulus and therefore for the key size, signature size and the security level is variable. The scheme only has one round trip.\cite{nigelcrypto:2016} @@ -39,13 +39,13 @@ blinder needs two random values from the signer party. One random value from the signer and two random private values are required to blind the message once. This process is repeated and the two blinded messages are sent to the signer, who randomly selects a blinded message for blinding. Two blinded -messages are needed to prevent an certain type of attack. In comparision to the +messages are needed to prevent an certain type of attack. In comparison to the RSA scheme, the Clause Schnorr Scheme needs an additional round trip to get the -inital nonces from the signer. However, the individual crypto operations are so +initial nonces from the signer. However, the individual crypto operations are so much faster than the operations from the RSA scheme that the additional round trip is no longer significant.\cite{DemHeuz2022} -Because clause schnorr signatures are based on elliptic curves, smaller keys +Because Clause Schnorr signatures are based on elliptic curves, smaller keys can be used. GNU Taler supports one fixed 256 bit key size, which provides an security level of 128 bits. The exact processes of this signature scheme do not need to be understood in order to understand this thesis. diff --git a/doc/thesis/chapters/background/hash.tex b/doc/thesis/chapters/background/hash.tex @@ -19,7 +19,7 @@ assumption is the Avalanche Criterion. The property defines that a small change in the hash input message leads to a substantial change in the output hash. This criteria makes it hard to guess the input even if a part of the input is known.\cite{hash2012} To protect the donor, their identity is represented as a -salted hash of the tax identifiaction number. The salt is a small high entropy +salted hash of the tax identification number. The salt is a small high entropy value, to make it more difficult to guess the hashed value. The Donau uses the SHA-512 hash function. SHA-512 is part of the SHA-2 family diff --git a/doc/thesis/chapters/background/interview.tex b/doc/thesis/chapters/background/interview.tex @@ -5,7 +5,7 @@ In order to find out how the tax authorities nowadays verify donations for donation deduction an interview with the tax authority Zürich was held. The interview transcript can be found in the appendix section \ref{transcript}. Currently the tax authority Zürich verifies donations by hand. The -verification process is intentionaly kept simple as donation fraud does not +verification process is intentionally kept simple as donation fraud does not seem to be a big problem. Other ways to conduct fraud, are more likely and profitable with less legal risk attached. There is no known data that contains how much money the state has lost with donation fraud. diff --git a/doc/thesis/chapters/implementation/android.tex b/doc/thesis/chapters/implementation/android.tex @@ -8,7 +8,7 @@ the link is activated. The arguments defined in chapter \ref{donor_sends_final_statement_to_a_validator} are separated with slashes. To ensure that as many characters as possible can be stored in the QR code, the QR code should be alphanumeric encoded\footnote{alphanumeric encoded QR codes have -a capaticity of up to 4296 characters and support only a few special +a capacity of up to 4296 characters and support only a few special characters}. This means that each argument is stringified. To ensure that no special characters are used for binary data, the hash and the signature are encoded in ASCII using CrockfordBase32.\cite{qrcodedensowavewebsite} diff --git a/doc/thesis/chapters/implementation/donau.tex b/doc/thesis/chapters/implementation/donau.tex @@ -5,7 +5,7 @@ The Donau has a similar architecture and uses crypographic blinded signatures in a similar way as the exchange does. \subsection{REST API} \label{rest_api} -The detailed REST API specificatoin of the Donau backend is publicy available +The detailed REST API specification of the Donau backend is publicly available under the following URL: \url{https://docs.taler.net/core/api-donau.html}. The following are the main API endpoints: @@ -18,7 +18,7 @@ statement signature for the donor (see section \ref{donor_requests_a_donation_statement_from_the_donau}). The following is an example response of a \lstinline{curl 127.0.0.1:8080/keys} -command. Some parts of the following example respones are truncated (denoted by +command. Some parts of the following example responses are truncated (denoted by the three dots '\texttt{...}') to make them more readable. \begin{lstlisting} @@ -78,7 +78,7 @@ amount for the charity of the current year. \begin{figure}[ht] \includegraphics[width=1\textwidth]{donau_flow_register_charity} -\caption{The tax authority registeres a new charity in the Donau}\label{fig:donau_flow_register_charity} +\caption{The tax authority registers a new charity in the Donau}\label{fig:donau_flow_register_charity} \end{figure} The following is an example response of a @@ -286,7 +286,7 @@ Contains all Donau EdDSA signing keys. \item \texttt{donau\_pub:} Donau EdDSA public key. \item \texttt{valid\_from:} Year the signing key becomes valid. \item \texttt{expire\_sign:} Year the signing key becomes invalid. - \item \texttt{expire\_legal:} Year the signing key legaly expires. + \item \texttt{expire\_legal:} Year the signing key legally expires. \end{itemize} \subsubsection{receipts\_issued} @@ -308,14 +308,14 @@ case the private key is replaced. \item \texttt{h\_tax\_number:} The hash of the tax number and salt. \item \texttt{nonce:} The nonce used in the \texttt{Unique Donor Identifier} \item \texttt{donation\_unit\_pub:} Reference to public key used to sign. - \item \texttt{donation\_unit\_sig:} The unblided signature the Donau made. + \item \texttt{donation\_unit\_sig:} The unblinded signature the Donau made. \item \texttt{donation\_year:} The year the donation was made. \end{itemize} \subsubsection{history} History of the yearly donations for each charity. This data provides a record of donations each year. It could also provide valuable information that could -be used in statistics to analize general donations over the year. +be used in statistics to analyze general donations over the year. \begin{itemize} \item \texttt{charity\_id:} Unique ID generated by the database. \item \texttt{final\_amount:} The final amount that was donated to the charity diff --git a/doc/thesis/chapters/introduction/goals.tex b/doc/thesis/chapters/introduction/goals.tex @@ -16,7 +16,7 @@ to deduct all donations of the year from taxes. Because the receipts are centralized in one place, in the donor's wallet, the donor does not have to worry about storing or loosing the receipts. In addition, by submitting the donation receipts to the Donau the donation -receipts will be stored by the Donau. This should be a significant impovement +receipts will be stored by the Donau. This should be a significant improvement in user convenience for both the donor and tax authority. The Donau should prevent donation fraud with fake, expired or third-party @@ -29,7 +29,7 @@ The goals described above boil down to the following: \begin{itemize} \item Protect the donors privacy and still be able to deduct the amount from the taxes. - \item Make donations verfiable by simply scanning a QR-Code. + \item Make donations verifiable by simply scanning a QR-Code. \item Improve the user convenience for both the donor and tax authorities. \item Prevent donation fraud with fake, expired or third-party donations. \end{itemize} diff --git a/doc/thesis/chapters/introduction/motivation.tex b/doc/thesis/chapters/introduction/motivation.tex @@ -9,7 +9,7 @@ donated to a recognized charity. %privacy There are many reasons why such information can be sensitive and should be hidden from third parties. Both personally and politically this information -could be harmful to individuals if not handeled responsably. To remain +could be harmful to individuals if not handled responsibly. To remain anonymous donors would have to keep their donation receipts, which would not allow them to deduct the donation from taxes. It is best to reduce and anonymize this information as much as possible, while still having all the @@ -24,7 +24,7 @@ the time the tax declaration is submitted. %standardisation For every donation the donor wants the donation to be tax deductible. The -adressed charity has to be recognized by the local tax authority. However, it +addressed charity has to be recognized by the local tax authority. However, it can happen that donations to unrecognized charities are mistakenly deducted or that donations to recognized charities abroad are not deducted. This misconduct has found attention by Michiel Leenaars from the NLnet Foundation\footnote{see diff --git a/doc/thesis/chapters/introduction/scope.tex b/doc/thesis/chapters/introduction/scope.tex @@ -17,8 +17,8 @@ system like the Donau should fulfill. Out of scope was the charity implementation which would have been integrated into the Taler merchant and the donor client implementation which would have been integrated into the Taler wallet. Unlike the charity integration, the -donor part of the taler wallet is payment system dependent. -In other words, since the taler wallet can only make donations with the taler +donor part of the Taler wallet is payment system dependent. +In other words, since the Taler wallet can only make donations with the Taler payment system, it could only receive donation receipts for this. The administrator interface was also not realized, which would have provided a user-friendly interface to manage the charities. diff --git a/doc/thesis/chapters/results/conclusion.tex b/doc/thesis/chapters/results/conclusion.tex @@ -5,7 +5,7 @@ state and its citizens. Transparency allows for public scrutiny, which can help identify inefficiencies, loopholes, or instances of corruption within the tax system, ultimately leading to necessary reforms and improvements. -Unfortunately, it occured to us that some tax departments still rely on +Unfortunately, it occurred to us that some tax departments still rely on outdated, paper-based systems or legacy software, hindering their ability to operate efficiently and transparently. The lack of digitization not only slows down processes but also increases the risk of errors, data inconsistencies, and @@ -27,5 +27,5 @@ reduced. Of course, bureaucracy and federalism can hinder the introduction of such a system. Especially when it comes to the recognition of charities. But the Donau -could provide a first step into a more standardized system that handels +could provide a first step into a more standardized system that handles donations in a secure and privacy preserving way. diff --git a/doc/thesis/chapters/results/future.tex b/doc/thesis/chapters/results/future.tex @@ -17,18 +17,18 @@ Each registered charity needs to communicate with the donors and the Donau. The Taler merchant backend needs to be modified to incorporate the charity backend logic. To do this it is necessary to add a charity information table to the merchant database. This table should contain information like the charity -public key, domain, base URL, currency and instance. The instance beeing a +public key, domain, base URL, currency and instance. The instance being a number as there could be different instances running. The merchant backend needs to be extended to incorporate the charity logic. Meaning the signing of BKP's sent to the charity and also the communication with the donor. The charity should return a list of Donaus where the charity is registered, so that -the donor can choose the appropriate Donau for tax deduction. -%thesis christian blättler +the donor can choose the appropriate Donau for tax deduction. A system similar +to the one described in the thesis of Christian Blättler is to be implemented \cite{taler-sub}. \subsection{Donau SPA}\label{donau_spa} -For the administrator a single page application is needed to comftably manage +For the administrator a single page application is needed to comfortably manage the charities. This would include functionality to add, remove and modify -charities. This setup could include a reverse proxy, which authenicates the +charities. This setup could include a reverse proxy, which authenticates the Donau admin. Once the identity has been confirmed the proxy can access the Donau endpoint to manage a charity. The proxy would hold a bearer token, in order to authenticate itself. diff --git a/doc/thesis/chapters/results/results.tex b/doc/thesis/chapters/results/results.tex @@ -2,7 +2,7 @@ Currently the Donau REST API is fully implemented. The Donau can manage any number of charities using the \texttt{/charities} endpoint. All the keys used for signing and blind signing are managed by the Donau -thogether with the Secmod helpers. +together with the Secmod helpers. Overall the Donau is able to issue donation receipts and provide the necessary donation statement to the donor, all while keeping the data anonymized and @@ -12,7 +12,7 @@ With the binding of the tax number to the donation receipts and the signature of the tax authority with year-dependent keys, the receipts are absolutely bound to a donor and to a year and cannot be falsified or imitated without falsifying the signature. Therefore donation fraud can be prevented. By -summarizing the receipts into one single QR-Code, the user convienience for the +summarizing the receipts into one single QR-Code, the user convenience for the tax authority and for the donor could be improved. Important components that are needed to operate the Donau are not yet @@ -20,8 +20,8 @@ implemented. This includes the charity side and donor client side. Although test where written to ensure that the Donau endpoints operate as expected, there are still some bugs and most likely also unknown bugs, not yet found. -The tax authority emphasises user convenience and simplicity in a system like -the Donau. The tax authority also mentioned the challanges that arise when +The tax authority emphasizes user convenience and simplicity in a system like +the Donau. The tax authority also mentioned the challenges that arise when operating such a system in the federalism. Each party often has different requirements that a system like the Donau should fulfill. Although the Donau is in its early stages and the prototype has not yet been diff --git a/doc/thesis/thesis.pdf b/doc/thesis/thesis.pdf Binary files differ.