donau

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

discussion.tex (14540B)


      1 \section{Discussion of features} \label{discussion}
      2 
      3 In this section we show how the presented design relates to the
      4 various requirements discussed in Section~\ref{sec:optionalfeatures}
      5 and what extensions could be made to address almost all of them.
      6 
      7 \subsection{Feature: Provide fiscal statement}
      8 
      9 Both the individual donation receipts and the annual donation statement
     10 provided by Donau satisfy the requirement of providing a fiscal statement.
     11 In general, the annual donation statement is more user-friendly and more
     12 privacy-friendly as it only contains the total amount and is more compact.
     13 
     14 \subsection{Feature: Proof of registration}\label{discussion:registration}
     15 
     16 In the Donau protocol, the donor is identified using a unique donor
     17 identifier. The format of the identifier is not fixed by the protocol,
     18 and could easily be replaced by the (hash over) donor registration
     19 data. While in this case the charity and Donau cannot check the validity of the
     20 donor's registration due to blinding, the tax authority would be
     21 assured that only donors who properly registered prior to their donation get a
     22 donation receipt that is valid for them. This enforces registration for tax
     23 deductable donations.
     24 
     25 If the purpose of the registration is to limit charities to only accept money
     26 from registered donors additional components need to be added. The
     27 cryptographic concept of attribute-based credentials~\cite{abc}
     28 can be used to build a suitable functionality.
     29 When a donor registers, they are provided a credential to prove that they are
     30 registered. When donating to a
     31 charity, the donor uses their credential to sign their donation. The charity checks
     32 that the signature is valid
     33 and is thus obtains proof that they are interacting with a registered donor as
     34 nobody else could make a valid signature. There are different approaches to
     35 attribute-based credentials and features differ between them. To keep the
     36 privacy guarantees of the Donau protocol and only add donor registration, the
     37 system should be unlinkable and anonymous.
     38 
     39 We acknowledge that this design does not provide a link between the
     40 donor identity $\DI$ used in the BKP and the donor registration as
     41 that is incompatible with the property of providing anonymity to the
     42 donor. A registered donor with a valid credential may choose to submit
     43 BKPs that include invalid $\DI$s or somebody else's $\DI$. However,
     44 the design gives a proof to the charity that the payment they receive
     45 comes from a registered donor. (See Section~\ref{sec:threats} for
     46 a discussion of threats.)
     47 
     48 Given that only few countries require donor registration and we
     49 consider this a requirement that hampers charities, we chose not to include
     50 this feature in our core design.
     51 
     52 
     53 
     54 \subsection{Feature: Configurable pledge}
     55 
     56 The Donau protocol is expected to be integrated with a payment process,
     57 such as the GNU Taler payment protocol. Here, the actual payment would
     58 sign over contract terms between the donor and the charity. The pledge
     59 can be easily integrated into these contract terms.
     60 
     61 \subsection{Feature: Cumulative donation counter from same donor to same
     62 cause}\label{discussion:limit}
     63 
     64 Limiting donations per donor is difficult when donations are supposed
     65 to be anonymous and adding this feature to the Donau protocol requires
     66 additional components.
     67 
     68 Donors could be issued some credentials, to be used in an attribute-based
     69 credential scheme which is anonymous but linkable. This could be set up
     70 to have one credential per charity and requiring a signature under a valid
     71 credential for each donation. This would mean that donations to the same
     72 charity by the same donor are linked, and the charity would be required to check
     73 the signature and to keep all donations and signatures, in order to decline further
     74 donation attempts by donors who have reached their limit.
     75 
     76 As a practical instantiation it is conceivable to combine the Donau
     77 protocol with an eID solution that provides some unlinkable
     78 pseudonym derived from the donor's main identity~\cite{hasini2016unlinkableeid}.
     79 The unlinkable pseudonym could be unique to the donor,
     80 charity and time period.
     81 By signing the donation process with such an unlinkable pseudonym
     82 it is possible to prevent smurfing donations~\cite{welling1989smurfs},
     83 alas at the expense
     84 of reducing anonymity to pseudonymity.
     85 
     86 As discussed above in Section~\ref{discussion:registration}, the signature on
     87 the donation does not guarantee that the $\DI$ hidden in the BKPs matches that
     88 of the signer.
     89 
     90 \subsection{Feature: Notarized affidavit}
     91 
     92 GNU Taler already supports privacy-preserving age-restrictions on
     93 payments~\cite{esorics2022age}, thus it would be trivial to prove that the donor is of
     94 legal age as part of the payment process (without disclosing any
     95 further information). In general, including other attestations may
     96 be possible, but is likely to be highly problematic from a privacy
     97 point of view. Not to mention that birthdates are commonly recorded
     98 and thus age can be easily attested by the payment service provider,
     99 other types of attestations would require building the corresponding
    100 certification infrastructure.
    101 
    102 
    103 \subsection{Feature: Unique ID for donor advised decisions}
    104 
    105 One way to enable donors to advise decisions without being linked to
    106 the specific dontation would be for the donation process to return
    107 blindly signed e-voting tokens (in addition to the donation receipt)
    108 to enable the donor to vote. This would be similar to the discount and
    109 subscription tokens already proposed for GNU Taler.
    110 
    111 Alternatively, if advise should be linked to a specific donation, one
    112 could build on an inherent feature of the GNU Taler protocol which is
    113 that the donor signs with private keys of digital coins to pay for a
    114 donation.  Creating additional signatures the same private coin keys
    115 could also be used to advise decisions while providing a clear link to
    116 a specific donation.
    117 
    118 Limiting decisions to one per donor instead of proportional to the
    119 amount donated is more complex, as it would require a solution
    120 similarly to enforcing cumulative limits per donor as discussed in
    121 Section~\ref{discussion:limit}.
    122 
    123 A shared practical challenge independent of the cryptographic solution
    124 is to find a good way to inform anonymous donors when their input is
    125 solicited. In theory, anonymous remailers~\cite{mixminion} could be
    126 used for this purpose.
    127 
    128 \subsection{Feature: Compound weighted donation}
    129 
    130 In general, the simplest way to do a compound weighted donation
    131 would be to break up the donation into multiple donations at
    132 the time when the donation is made. Given GNU Taler's ability
    133 to handle micropayments, doing multiple smaller payments is
    134 generally not an issue. Alternatively, the payment system could
    135 be enhanced with escrow functionalities that would allow the
    136 donation to be split up according to a given set of weights
    137 which is only provided after the donation was made.
    138 
    139 \subsection{Feature: Cost transparency}
    140 
    141 Fees in the GNU Taler system are given as part of the protocol
    142 and always shown to the payer, ensuring cost transparency. The
    143 design does not require the use of additional parties beyond
    144 the payment system, donor and charity.  If fundraising parties
    145 are involved as well, their cuts could be easily made transparent
    146 in the GNU Taler contract terms used in the payment process.
    147 
    148 \subsection{Feature: Staged donation}\label{discussion:staged}
    149 
    150 Staged donations would require the payment service to hold funds in
    151 escrow until certain conditions are met (or refund them).  GNU Taler
    152 can already do refunds (without infringing on the privacy of the
    153 donor~\cite{taler2019dold}), and {\em escrow of funds} is a feature
    154 planned for the future. Escrow means that the payment service provider
    155 is responsible for releasing the funds to the charity only when
    156 contractually specified conditions are met (likely attested by some
    157 trusted third party), and otherwise the funds are refunded to the
    158 donor.
    159 
    160 As with other donations, the donor would create blinded donation
    161 receipts upon payment, matching the amounts to the various stages.
    162 However, the blinded donation receipts would only be requested from
    163 the Donau once the funds are released to the charity from escrow.
    164 Instead of using an anonymous remailer, the nature of a staged
    165 donation allows the wallet software to be informed at what times it
    166 should periodically contact the charity server to request a status
    167 update on the project. Here, the wallet can easily identify itself as
    168 the donor using the private coin keys.  Depending on the project's
    169 progress the charity would then request blinded donation receipts
    170 from the Donau and return those to the wallet, or the wallet would
    171 receive a refund from the payment service provider.
    172 
    173 %
    174 %A problem, however, is that the donor is anonymous and thus cannot be reached
    175 %at the time that later goals are met.
    176 %
    177 %A solution is for the charity to further blind or encrypt the Donau signatures
    178 %and to publicly post the keys when the next stage of funding is reached and the
    179 %donation becomes effective. In the following we assume that the donation is
    180 %split up by funding stage and that the donor submitted an array of BKPs per
    181 %funding stage, so
    182 %$\vec{\mu_j} = (\bar{\mu}_{j1}, \bar{\mu}_{j2}, \ldots)$ is the array of BKPs for
    183 %funding stage $j$.
    184 %To make the multitude of keys manageable, the charity uses a random string
    185 %$t_j$ per funding stage and {\em encrypts} the Donau response
    186 %$(\beta_{j1}, \beta_{j2}, \ldots)$ for the stage $j$ payments
    187 %with $H(t_j, \vec{\mu_j})$. The encrypted Donau responses (one per stage) are
    188 %returned to the donor at the time of donation instead of the plaintext Donau
    189 %response.
    190 %
    191 %When work progresses to reach
    192 %stage $j$ and the donation payments are collected, the charity posts $t_j$
    193 %publicly. Every donor can then compute the key $H(t_j, \vec{\mu_j})$ and decrypt
    194 %their donation receipts for stage $j$. This requires the donor to store the BKPs along with
    195 %the encrypted donation receipts until stage $j$ is reached and $t_j$ is
    196 %released. It requires the charity to have a bulletin board for posting $t_j$
    197 %but charities soliciting staged donations typically post extensive progress
    198 %reports justifying them declaring success on the previous stage and this report
    199 %should then link to the key $t_j$.
    200 
    201 \subsection{Feature: Bandwidth donations}
    202 
    203 To support bandwidth donations, the donated amount may shrink based on
    204 independent donations to the same charity by other parties and some
    205 allocation rule.  This can also be achieved via the design discussed
    206 in Section~\ref{discussion:staged}. As before, during the period that
    207 the charity is soliciting funding, all donations would be held in
    208 escrow.
    209 
    210 Once the funding period ends, all pledges are publicly posted (say by
    211 the charity) allowing the wallets to (1) confirm that their pledge was
    212 properly included, (2) compute the total amount pledged, (3) compute
    213 their share based on some previously agreed allocation rule, and (4)
    214 to finally collect the resulting amount of donation receipts and
    215 refunds.
    216 
    217 A minor limitation here is that the donor should probably be required
    218 to create blinded donation receipts at the time of the donation to
    219 avoid enabling them to change the taxpayer ID at a later time. This
    220 means that the granularity of the final allocations is fixed when the
    221 donations are made, slightly limiting the flexibility of the
    222 allocation rule algorithm.
    223 
    224 \subsection{Feature: Code of conduct}
    225 
    226 A code of conduct could easily be integrated into the contract
    227 terms for of the payment process.
    228 
    229 \subsection{Feature: Restricted access mechanism}
    230 
    231 The envisioned discount token and subscription extensions of the
    232 GNU Taler protocol could be used to return to the donor a token that
    233 would grant them access to additional information.
    234 
    235 \subsection{Feature: Unlock thank you artwork}
    236 
    237 The GNU Taler protocol can already be used to buy digital goods,
    238 including newspaper articles, videos, images or audio resources. Thus,
    239 this can easily be done by using the payment process to authorize
    240 bypassing what in a commercial setting would be called a paywall.
    241 
    242 Sending physical gifts requires having an address of the donor and thus is not
    243 compatible with the anonymity feature. However, there is nothing in the design
    244 that stops the charity and donor from exchanging address information during the
    245 donation process.
    246 
    247 \subsection{Feature: Donation matching with a reference}\label{sec:matching}
    248 
    249 Donation matching is an agreement between the charity and a matching donor.
    250 The charity can show proof of the payments received; if these are done using
    251 GNU Taler then the charity can show the deposit confirmations issued
    252 by the GNU Taler exchange to the charity. This way, the
    253 charity can prove to the match funder that they received a
    254 certain amount of donations, and they can even include the
    255 contract terms to show that the donors intended to participate
    256 in the match funding project.
    257 
    258 Similarly, a match funder could escrow their donation at the payment
    259 service provider, only to be released to the charity once matching
    260 donations have been made. The deposit confirmation on the escrowed
    261 donation can then be used to convince potential donors that the match
    262 funding is real.
    263 
    264 Both donor and match funder can in principle share their final
    265 donation receipts publicly to advertise their good deed, but they then
    266 of course void their anonymity.
    267 
    268 \subsection{Feature: Anonymous donation matching by employer}
    269 
    270 Donation matching by employer could be achieved by combining approaches
    271 similar to what was discussed in Section~\ref{discussion:registration}
    272 and Section~\ref{sec:matching}.
    273 
    274 If the match funder is a company with a taxpayer ID known to their
    275 employees and the employer knows the donors' taxpayer IDs (as is
    276 common in an employment scenario) there is a simpler approach.  This
    277 approach exploits the loophole that donations in the Donau system do
    278 not prove that the donation is actually made by the taxpayer with the
    279 {\tt TAXID}.
    280 
    281 Thus, it is possible for the employee to simply donate the full amount
    282 (their contribution as well as the match funding) to the charities of
    283 their choice, but to include their own $\DI$ in half of the amount and
    284 one derived from the {\tt TAXID} of their employer in the other
    285 half. Then they show the donation receipts for both halves to the
    286 match funder. The match funder can verify validity of both receipts
    287 and that the proportion of their match is correct. They then pay back
    288 the amount that was donated on their behalf to the employee and use
    289 the donation receipt for their {\tt TAXID} when filing their tax
    290 statement.