technicaldesign.tex (23893B)
1 \newcommand{{\pub}}{{\sf pub}} 2 \newcommand{{\priv}}{{\sf priv}} 3 \newcommand{{\DI}}{{\sf DI}} 4 \newcommand{{\UDI}}{{\sf UDI}} 5 \newcommand{{\sign}}{{\sf sign}} 6 \newcommand{{\verify}}{{\sf verify}} 7 \newcommand{{\blind}}{{\sf blind}} 8 \newcommand{{\unblind}}{{\sf unblind}} 9 10 \section{Protocol Description}\label{technical} 11 12 The previous section identified several requirements and desired features 13 that a donation system must or should satisfy. 14 The technically most challenging part is to permit donors 15 to stay anonymous towards the charity they are donating to and to keep private 16 from the tax authorities which charities they donated to. 17 The protocol presented in this section addresses this 18 challenge and all of the design goals from 19 Section~\ref{sec:designgoals}. In 20 Section~\ref{discussion} we discuss how 21 the various optional capabilities could be achieved on 22 top of this core protocol design. 23 24 %Some of these are 25 %contradictory and any deployment needs to prioritize compliance with local 26 %laws and regulations. 27 % CG: not sure they are actually contradictory, modulo if 28 % you are strict on pseudonymity vs. anonymity; but even 29 % here you're only linkable across donations to the same 30 % charity, which is probably OK. 31 32 This section provides a technical overview of our Donau protocol, starting with 33 some cryptographic background followed by the setup and usage. 34 The Donau service is typically run by the tax authority but can be an independent entity. 35 36 % The first section introduces some notation and definitions used later on in the protocol description. 37 % Concepts from cryptography are also explained when necessary. 38 % 39 \subsection{Background \& Terminology}\label{notation_and_definitions} 40 Digital cash makes use of \textbf{blind signatures}~\cite{Chaum89} to issue tokens. Our 41 design uses the same mechanism to unlink the donation process from the issued 42 donation receipts. This section introduces the definition and 43 security properties of blind signatures. 44 45 % \paragraph{Cryptographic Hash Function} 46 % A cryptographic hash function $H$ is a function that takes as input an arbitrarily 47 % long bit string 48 % and returns a fixed-length output string, which satisfies some security 49 % requirements. In formulas 50 % $$H: \{0,1\}^* \rightarrow \{0,1\}^n, m \mapsto h = H(m).$$ 51 % The function $H$ should provide preimage resistance, that means that 52 % it should be infeasible to find an input that hashes to a given output. It 53 % should also provide second-preimage resistance, that means that it should be 54 % infeasible to find a second input that maps to the same output as a given input. 55 % Even more restricting, it should provide collision resistance, meaning that it 56 % should be infeasible to find two inputs that hash to the same output (without 57 % any other restriction). 58 59 % Sometimes a hash function gets used in a scenario where the natural input 60 % values come from a small, easily guessable set, like passwords or PINs. 61 % In this scenario an attacker could break preimage resistance by just iterating 62 % through all possible inputs to find the matching one and, worse, could even 63 % store all resulting hash values in a big table for instant preimage lookups for 64 % all users. One partial fix is to {\bf salt} the hash, i.e., to add a random 65 % suffix or prefix to the input before hashing it. Applications then need to 66 % store the salt as well. If the salt can be kept private this stops the simple 67 % preimage attacks, otherwise it at least requires the attacker to try all inputs 68 % {\em per targeted hash}. We write a {\bf salted hash} as $h = H(m, s)$, where 69 % $s$ is the salt value. 70 71 % \paragraph{Digital Signatures} 72 73 % A digital signature is a cryptographic scheme for authenticating a message or document, analogous to a handwritten signature. 74 % A signer creates a public/private keypair. 75 % The private signing key is used to generate a signature on a message. 76 % The public key is distributed, and can be used by anybody to verify the authenticity of the signature. 77 % A signature scheme is secure if, among other things, the private key cannot be computed from the public key and if 78 % nobody can generate a signature that verifies for some message under a 79 % public key if they do not have access to the matching private key. 80 81 Informally, a blind signature is a digital signature where the signer does 82 not know the message that they are signing. The party requesting the 83 signature hides the true message with a secret value called a {\bf blinding 84 factor}, which can later be used to derive a valid signature on the 85 original, unblinded message. 86 87 Like standard digital signature schemes, blind signature schemes should 88 achieve \textbf{unforgeability} --- the property that users without the 89 secret signing key should be unable to generate new, valid 90 signatures. Unlike standard digital signatures, blind signatures must also 91 achieve \textbf{blindness} --- the property that curious signers should 92 never be able to link previously issued blind signatures with their 93 unblinded counterparts. 94 95 \textrm{Slightly more formally, we define blind signatures as a quadruple of algorithms:} 96 \begin{itemize} 97 \item $KeyGen(1^\lambda)$: Generates a verification/signing key pair $(K^{\pub}, K^{\priv})$. 98 \item $Blind(m, b, K^{\pub})$: Takes a message $m$, blinding factor $b$, and verification key $K^{\pub}$ of the signer and computes the blinded message $\overline{m}$. 99 \item $BlindSign(K^{\priv}, \overline{m})$: Takes secret signing key $K^{\priv}$ and blinded message $\overline{m}$ and computes the blind signature $\overline{\sigma}$. 100 \item $Unblind(\overline{\sigma}, b, K^{\pub})$: Takes blind signature $\overline{\sigma}$, blinding factor $b$ and verification key $K^{\pub}$ of the signer, and returns the unblinded signature $\sigma$ on message $m$ (or $\bot$). 101 \end{itemize} 102 103 It should be impossible for the signer to infer information about the message 104 they sign and it should be impossible for them to trace their signature later, 105 see Hoepman's recent paper~\cite{2023/hoepman} highlighting that these are two 106 separate requirements. 107 108 The most well-known blind signature scheme, going back to Chaum's original 109 work~\cite{Chaum89}, is based on RSA. A signature on message $m$ under RSA key 110 public key $(n,e)$ is $s\equiv m^d \bmod n$, where $(n,d)$ is the corresponding 111 private key. Instead of asking for a signature on $m$ one can request a 112 signature on the blinded value $m'\equiv m\cdot r^e \bmod n$ for some randomly 113 chosen $r$, receive the blind signature $s'$, and obtain the signature on $m$ 114 by unblinding $s'$ by computing $s'/r \bmod n$. 115 116 In addition to blind signatures, Donau uses the 117 Ed25519~\cite{DBLP:journals/jce/BernsteinDLSY12} signature scheme 118 for signing ($\sign$) and verifying ($\verify$). 119 120 \subsection{Key generation and initial setup}\label{key_generation_and_initial_setup} 121 122 Before incognito donations to charities can be executed, all participants in 123 the donation system (i.e., the Donau service, charities, and donors) must perform some 124 initial setup steps. 125 126 \subsubsection{Donau service key generation}\label{donau_key_generation} 127 \begin{enumerate} 128 \item The Donau service generates an Ed25519 keypair 129 $(D^{\pub}$, $D^{\priv})$, called the {\bf Donau Key}, for digital signatures. 130 \item The Donau service also generates a set of \textbf{Donation Unit} keypairs 131 $(K_x^{\pub}, K_x^{\priv})$ for blind signatures, corresponding to different 132 currency denominations $x$ that a donation can be composed of. 133 \end{enumerate} 134 The Donau service publishes all public keys over an authenticated channel. 135 It uses fresh Donation Unit keys for each tax period. 136 137 \subsubsection{Charity key generation and registration}\label{charity_key_generation} 138 \begin{enumerate} 139 \item Each charity generates its own Ed25519 {\bf Charity Key} $( C^{\pub}, 140 C^{\priv} )$. 141 \item The charity also fetches the Donation Unit public keys from the 142 Donau service. 143 \item The charity transmits its public key $C^{\pub}$ to the party controlling the Donau service 144 using an authenticated channel. 145 \item The party in charge of Donau service administration 146 validates that the charity is authentic and a legally recognized 147 charitable organization. After successful verification, the charity public key 148 $C^{\pub}$ is registered in the Donau database. 149 \end{enumerate} 150 151 \subsubsection{Donor Identifier generation} 152 153 Each donor generates a personal \textbf{Donor Identifier} $\DI$ by 154 computing a salted hash of their taxpayer ID 155 \begin{align*} 156 \DI = H(\texttt{TAXID}, S) 157 \end{align*} 158 where $H$ is a cryptographic hash function and 159 $S$ is a random salt with sufficient entropy to 160 prevent guessing attacks, and {\tt TAXID} is their taxpayer ID. 161 The donor stores the salt $S$ along with their $\DI$. 162 163 A donor uses their Donor Identifier every time they 164 make a donation and again when requesting a donation receipt from the Donau service. 165 166 They need to use the salt to link the Donation Identifier to their tax 167 ID and claim the tax benefits for their donation. The use of the salt 168 ensures that the $\DI$ cannot be linked to the donor by anybody 169 without $S$, even if they know {\tt TAXID}. 170 171 172 \subsection{Donating to a charity}\label{donating_to_a_charity} 173 % \subsection{Donor donates to charity and transmits \textbf{Unique Donor identifiers} (future donation receipts)} 174 When a donor wishes to donate to a charity, they first retrieve the Donau service's Donation Unit 175 public keys $K_x^{\pub}$ for the current tax period. 176 The donor then represents their donation as a sum of the Donation Units offered by the Donau service. 177 178 \emph{Example: Assuming the Donau service publishes the Donation units $\{1,2,4,8\}$, a donation of $7$ would be split into 1 unit each of the values $4$, $2$ and $1$.} 179 180 For each necessary Donation Unit the donor generates a \textbf{Unique Donor 181 Identifier (UDI)} by appending a random nonce $N_i$ to the value $\DI$. 182 If multiple instances of the same Donation Unit are needed to represent 183 the target sum, the donor creates a different nonce $N_i$ for each instance $i$ 184 of that Donation Unit. 185 The donor must remember all UDIs. 186 187 \emph{In our example, there are $3$ Unique Donor Identifiers needed to represent the donated value of $7$. We can write them as:} 188 \begin{align*} 189 u_1 &= ( \DI, N_1) \\ 190 u_2 &= ( \DI, N_2) \\ 191 u_3 &= ( \DI, N_3) 192 \end{align*} 193 {\em where $\DI$ is the Donor Identifier from above, and the $N_i$s are nonces.} 194 195 Next the donor blinds the Unique Donor Identifiers using a unique blinding factor for each one. 196 This hides the information in the UDIs from third parties, including the Donau 197 service and charity, and protects against linkability. The result is a set of {\bf Blinded Unique Donor Identifiers (BUDIs)}. 198 199 {\em In our example, the Blinded Unique Donor Identifiers would be} 200 \begin{align*} 201 \overline u_1 &= \blind (u_1, b_1, K_1^{\pub}) \\ 202 \overline u_2 &= \blind (u_2, b_2, K_2^{\pub}) \\ 203 \overline u_3 &= \blind (u_3, b_3, K_4^{\pub}) 204 \end{align*} 205 {\em with random blinding factors $b_1$, $b_2$, and $b_3$}. 206 207 So far, the \textbf{Blinded Unique Donor Identifiers} do not carry information about their monetary values. 208 The \emph{intended effective value is indicated} by grouping each Unique Donor Identifier with 209 the hash of its respective Donation Unit public key $K^{\pub}_x$. 210 We call this pair a \textbf{Blinded Unique Donor Identifier Key Pair} (\textbf{BKP}). 211 It is only the \emph{intended effective} value because their value is zero until they are signed by the Donau service. 212 Note that they must be signed with the matching Donation Unit key as the 213 blinding and unblinding operations rely strongly on the public key. 214 215 216 {\em The BKPs for our example are:} 217 \begin{align*} 218 \overline \mu_1 &= ( \overline u_1, h({K^{\pub}_1}) ) \\ 219 \overline \mu_2 &= ( \overline u_2, h({K^{\pub}_2}) ) \\ 220 \overline \mu_3 &= ( \overline u_3, h({K^{\pub}_4}) ) 221 \end{align*} 222 223 224 These individual BKPs are then put in an array $\vec{\mu}$ of BKPs. 225 226 {\em Here } 227 \begin{align*} 228 \vec{\mu} &= ( \overline \mu_1, 229 \overline \mu_2,\overline \mu_3 230 ) 231 \end{align*} 232 233 The donor sends this array to the charity along with the corresponding 234 payment. 235 236 \subsection{Charity receives donation}\label{charity_receives_donation} 237 Upon receiving the array $\vec{\mu}$ of BKPs and the corresponding payment from the donor, 238 the charity verifies that the total amount claimed in the BKPs 239 (based on the Donation Unit public key hashes $h(K_x^{\pub})$) is less than or 240 equal to the amount they received in the payment. 241 The charity then signs the array of BKPs with its Ed25519 Charity Key. 242 That is, it computes 243 \begin{align*} 244 \sigma_c = \sign(\vec{\mu}, C^{\priv}) 245 \end{align*} 246 The charity sends the array $\vec{\mu}$ of BKPs and their signature $\sigma_c$ to the Donau service to generate a receipt. 247 248 \subsection{Donau service generates donation receipt}\label{donau_creates_donation_receipt} 249 When the Donau service receives a signed set of BKPs from a charity, it verifies the charity's signature. 250 It then checks that no legal restrictions are being violated. 251 If none are, the Donau service increments its record of the charity's total receipts by the 252 total amount of the donation, i.e., the sum of the denominations used in the 253 BKPs. 254 The Donau service then blindly signs all BUDIs using the Donation Unit private keys 255 $K_x^{\priv}$ 256 that correspond to the public keys hashed in the BKPs. 257 258 {\em In our example, the Donau service blindly signs the three BUDIs submitted by the charity} 259 \begin{align*} 260 \overline{\beta_1} = \blind\_\sign(\overline u_1, K_1^{\priv}) \\ 261 \overline{\beta_2} = \blind\_\sign(\overline u_2, K_2^{\priv}) \\ 262 \overline{\beta_3} = \blind\_\sign(\overline u_3, K_4^{\priv}) 263 \end{align*} 264 265 These signatures constitute a blinded donation receipt from the Donau service, and the Donau service sends these back to the charity, 266 which in turn forwards them to the donor. 267 268 \subsection{Donor receives donation receipt}\label{donor_receives_donation_receipt} 269 Upon receiving the blinded donation receipt from the Donau service via the charity, 270 the donor verifies the blind signatures over the BUDIs. 271 If they verify, the donor then unblinds them to obtain signatures over the original UDIs. 272 These UDIs, their unblinded signatures, and their respective hashed Donation Unit public keys 273 constitute a collection of donation receipts. 274 These donation receipts are stored on the donor's device. 275 276 {\em In our example: the donor unblinds the Donau service signatures $\overline{\beta_1}, \overline{\beta_2}, \overline{\beta_3}$, obtaining:} 277 \begin{align*} 278 \beta_1 &= \unblind(\overline{\beta_1}, b_1, K_1^{\pub}) \\ 279 \beta_2 &= \unblind(\overline{\beta_2}, b_2, K_2^{\pub}) \\ 280 \beta_3 &= \unblind(\overline{\beta_3}, b_3, K_4^{\pub}) 281 \end{align*} 282 {\em The donor then creates the final Donation Receipts:} 283 \begin{align*} 284 r_1 &= ( \UDI_1, \beta_1, h(K_1^{\pub}) ) \\ 285 r_2 &= ( \UDI_2, \beta_2, h(K_2^{\pub}) ) \\ 286 r_3 &= ( \UDI_3, \beta_3, h(K_4^{\pub}) ) 287 \end{align*} 288 289 \subsection{Donor requests an annual donation statement from Donau service}\label{donor_requests_a_donation_statement_from_the_donau} 290 In order for the donor to claim a tax deduction, 291 the donor needs to obtain a final donation statement which can be sent to the tax authority. 292 The donor sends their saved donation receipts $\{r_1, \ldots, r_k\}$, accumulated throughout the tax period, to the Donau service. 293 This can in principle be done multiple times during the tax period; 294 however, the receipts must not be submitted at a time strongly correlated with the donation to achieve 295 \emph{unlinkability} between the \emph{issuance} of the receipts (which happens at the time of donation) 296 and their \emph{submission} for the Donation Statement. 297 298 Remember that each $\UDI$ is the concatenation of the donor identifier $\DI$ and 299 a random nonce, i.e., they all start with the same $\DI$. 300 301 Once the Donau service receives the donor's donation receipts, it checks that for each receipt: 302 \begin{itemize} 303 \item the public key $K_x^{\pub}$ is known. 304 \item the signature $\beta$ is correct using the corresponding public key 305 $K_x^{\pub}$. 306 \item the Donor Identifier $\DI$ is the same in all receipts. 307 % (With multiple wallets each wallet must simply obtain a separate Donation Statement) 308 \item the nonces are unique and were not submitted before by the same donor, 309 identified as $\DI$. 310 \end{itemize} 311 312 Importantly, the Donau service does not see signatures of the charities the donor 313 donated to, so it does not know where the donor spent money. 314 They also only see a collection of common denominations, so they are unable to correlate total donation amounts per charity. 315 Finally, the receipts are unblinded, so they are unlinkable to any signature the Donau service has seen before. 316 317 The Donau service then generates a signature over the total \texttt{amount} of all receipts, the current tax period (\texttt{year}) and the Donor Identifier. 318 This results in a final signature called the \textbf{Donation Statement}, which the Donau service returns to the donor: 319 \begin{align*} 320 \sigma_s = \sign(( \DI, \textsf{amount}_{\sf Total}, \textsf{year}) ), 321 D^{\priv}) 322 \end{align*} 323 324 \subsection{Donor sends final statement to a validator}\label{donor_sends_final_statement_to_a_validator} 325 Finally, to claim their deduction, the donor includes their donation statement 326 in their tax declaration. The implementation detailed in the next section 327 chooses to represent this information as a QR-Code 328 \begin{align*} 329 \texttt{QR} = (\texttt{TAXID}, S, \textsf{year}, \textsf{amount}_{\sf 330 Total}, \sigma_s). 331 \end{align*} 332 Other representations and integration into software for filing tax returns are 333 possible. It is relevant that {\tt TAXID} and salt $S$ are included to 334 recompute the donation identifier $\DI$ while linking the donation receipt to 335 the tax ID. 336 337 The validator at the tax office verifies the \textbf{Donation Statement Signature} $\sigma_s$. 338 \begin{align*} 339 \verify((H({\tt TAXID},S), \textsf{amount}_{\sf Total}, \textsf{year}) ),\sigma_s, 340 D^{\pub}) 341 \end{align*} 342 343 344 % Putting unused defs from the thesis here in case they're needed for some reason later. don't want to recopy 345 346 % \item \textbf{Donation Unit Key generation} 347 % \begin{displaymath} 348 % ( K_x^{\pub}, K_x^{\priv} ) := Keygen^B(\omega) 349 % \end{displaymath} 350 % where $\omega$ is a source of entropy. The resulting key pair represents 351 % a \textbf{Donation Unit}. The result is a public key $K_x^{\pub}$ and 352 % private key $K_x^{\priv}$. The equivalent used in Taler system is a \texttt{Denomination}. 353 % 354 % \item \textbf{Donau Key generation} 355 % \begin{displaymath} 356 % ( D^{\pub}, D^{\priv} ) := Keygen^D(\omega) 357 % \end{displaymath} 358 % where $D^{\pub}$ and $D^{\priv}$ are the respective public and private Donau keys. 359 % 360 % \item \textbf{Charity Key generation} 361 % \begin{displaymath} 362 % ( C^{\pub}, C^{\priv} ) := Keygen^C(\omega) 363 % \end{displaymath} 364 % where $C^{\pub}$ and $C^{\priv}$ are the respective public and private Charity keys. 365 % 366 % \item \textbf{Donation Unit (DU)} 367 % \begin{displaymath} 368 % ( K_x^{\pub}, K_x^{\priv} ) 369 % \end{displaymath} 370 % A Donation Unit consists of a public and private key where $x$ is the associated value (e.g. 2 EUR). 371 % 372 % \item \textbf{Donor Identifier (DI)} 373 % \begin{displaymath} 374 % i := H(\texttt{TAXID}, S) 375 % \end{displaymath} 376 % where $S$ is a random salt with sufficient entropy to prevent guessing attacks to invert the hash function. 377 % 378 % \item \textbf{Unique Donor Identifier (UDI)} 379 % \begin{displaymath} 380 % u := ( i, N ) 381 % \end{displaymath} 382 % where $N$ is a high-entropy nonce to make the resulting hash \textbf{unique} per donation. 383 % 384 % \item \textbf{Blinded Unique Donor Identifier (BUDI)} 385 % \begin{displaymath} 386 % \overline{u} := \blind( u, b, K_x^{\pub} ) 387 % \end{displaymath} 388 % A \textbf{BUDI} is the result of blinding a Unique Donor Identifier $u$ 389 % where $b$ is the blinding factor and $K_x^{\pub}$ the associated Key. The blinding is done to protect the privacy of the donor. 390 % 391 % \item \textbf{Blinded Unique Donor Identifier Key Pair (BKP)} 392 % \begin{displaymath} 393 % p := ( \overline{u}, H(K_x^{\pub}) ) 394 % \end{displaymath} 395 % A \textbf{Blinded Unique Donor Identifier Key Pair} is the result of 396 % adding the corresponding hash of the \textbf{Donation Unit} public key to 397 % the \textbf{Blinded Unique Donor Identifier} $\overline{u}$ where 398 % $H(K_x^{\pub})$ is the hash of the \textbf{Donation Unit} public key. 399 400 % \item \textbf{Digital Signatures} 401 % A digital signature 402 % \begin{itemize} 403 % \item \textbf{Normal signing (e.g. EdDSA):} 404 % \begin{align} 405 % \fbox{$s := sign(m,k^{\priv})$} 406 % \end{align} 407 % where $m$ is a message and $k^{\priv}$ is the private key used to sign 408 % the message, for example the Donau private key $D^{\priv}$ or the 409 % Charity private key $C^{\priv}$.\\ 410 411 % Applications: 412 % \begin{itemize} 413 % \item Signatures over a \textbf{Blinded Unique Donor Identifier Key Pair}: 414 % \begin{align} 415 % \fbox{$\vec{\mu}_s := sign(\vec{p},C^{\priv})$} 416 % \end{align} 417 % where $H(K_x^{\pub})$ indicates which \textbf{Donation Unit} key should be used by the Donau to sign the resulting \textbf{Donation Receipt}. Thus, this hash carries the information about the exact value, the final Donation Receipt should carry. 418 % 419 % A charity signs a collection of \textbf{Blinded Unique Donor Identifier Key Pairs} before transferring them to the Donau to issue the \textbf{Donation Receipts} 420 % 421 % \item Generation of the \textbf{Donation Statement} 422 % \end{itemize} 423 % 424 % \item \textbf{Blind signing(e.g. RSA/CS):} 425 % \begin{align} 426 % \fbox{$\overline{\beta} := \blind\_sign(\overline{u},K_x^{\priv})$} 427 % \end{align} 428 % where $\overline{u}$ is a blinded value and $K_x^{\priv}$ is the private key used to blind sign the message.\\ 429 % 430 % Application: 431 % \begin{itemize} 432 % \item The Donau blind signs \textbf{Blinded Unique Donor Identifiers} received from the Charity with the private key matching the public key in the received \textbf{Blinded Unique Donor Identifier Key Pair} 433 % \end{itemize} 434 % \end{itemize} 435 % 436 % \item \textbf{Verify Functions} 437 % 438 % To verify the signatures $m$ corresponds to the message and $s$ to the signature: 439 % 440 % \begin{itemize} 441 % \item \textbf{normal verify} 442 % \begin{displaymath} 443 % verify(m,s, P^{\pub}) 444 % \end{displaymath} 445 % where $P^{\pub}$ can be the Donau public key $D^{\pub}$ or Charity public 446 % key $C^{\pub}$. 447 % 448 % \item \textbf{blind verify} 449 % \begin{displaymath} 450 % verify\_blind(m,s,K_x^{\pub}) 451 % \end{displaymath} 452 % verify a signature that was made blind and made with a Donation Unit 453 % private key $K_x^{\priv}$. 454 % \end{itemize} 455 % 456 % \item \textbf{Donation Receipt} 457 % \begin{displaymath} 458 % r := ( u, \beta, H(K_x^{\pub}) ) 459 % \end{displaymath} 460 % where $\beta$ is the unblinded signature sent to the Donau to get the \textbf{Donation Statement}. 461 % 462 % \item \textbf{Donation Statement Signature} 463 % \begin{displaymath} 464 % \sigma := sign(( i, \Sigma{\vec{r}}, \texttt{Year}), D^{\priv}) 465 % \end{displaymath} 466 % The \textbf{Donation Statement Signature} is the signature over the sum (amount donated) of all the \textbf{Donation Receipts} $\Sigma{\vec{r}}$, that a donor has received from donating throughout the year where $i$ is the \textbf{Donor Identifier}. The \textbf{Donation Statement} itself includes all sign values and the signature itself. 467 % 468 % These \textbf{Donation Statement Signatures} attest the amount donated in a particular year by a specific donor.