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.