summaryrefslogtreecommitdiff
path: root/design-documents/024-age-restriction.rst
diff options
context:
space:
mode:
Diffstat (limited to 'design-documents/024-age-restriction.rst')
-rw-r--r--design-documents/024-age-restriction.rst29
1 files changed, 14 insertions, 15 deletions
diff --git a/design-documents/024-age-restriction.rst b/design-documents/024-age-restriction.rst
index 0b3aa76f..6b1004fc 100644
--- a/design-documents/024-age-restriction.rst
+++ b/design-documents/024-age-restriction.rst
@@ -1,5 +1,5 @@
-DD 024: Anonymous Age Restriction Extension for GNU Taler
-#########################################################
+DD24: Anonymous Age Restriction Extension for GNU Taler
+#######################################################
Summary
=======
@@ -18,7 +18,7 @@ sensitive private information is disclosed.
We want to offer a better mechanism for age-restriction with GNU Taler that
* ensures anonymity and unlinkability of purchases
-* can be set to particular age groups by parents/wardens at withdrawal
+* can be set to particular age groups by parents/wardens at withdrawal
* is bound to particular coins/tokens
* can be verified by the merchant at purchase time
* persists even after refresh
@@ -264,15 +264,15 @@ The schema for the exchange is changed as follows:
BEGIN;
-- Check patch versioning is in place.
SELECT _v.register_patch('exchange-TBD', NULL, NULL);
-
+
-- Support for age restriction is marked per denomination.
ALTER TABLE denominations
ADD COLUMN age_restricted BOOLEAN NOT NULL DEFAULT (false);
COMMENT ON COLUMN denominations.age_restriced
IS 'true if this denomination can be used for age restriction';
- -- During the melting phase of the refresh, the wallet has to present the
- -- hash value of the age commitment (only for denominations with support
+ -- During the melting phase of the refresh, the wallet has to present the
+ -- hash value of the age commitment (only for denominations with support
-- for age restriction).
ALTER TABLE refresh_commitments
ADD COLUMN age_commitment_h BYTEA CHECK (LENGTH(age_commitment_h)=64);
@@ -306,7 +306,7 @@ restriction). Therefore, in the ``/coins/$COIN_PUB/melt`` POST request, the
// SHA256 hash of the age commitment of the coin, IFF the denomination
// has age restriction support. MUST be omitted otherwise.
age_commitment_hash?: AgeCommitmentHash;
-
+
...
}
@@ -317,7 +317,7 @@ restriction). Therefore, in the ``/coins/$COIN_PUB/melt`` POST request, the
The responses to the POST request remain the same.
For normal denominations *without* support for age restriction, the calculation
-for the signature check is as before (borrowing notation from
+for the signature check is as before (borrowing notation from
`Florian's thesis <https://taler.net/papers/thesis-dold-phd-2019.pdf>`_):
.. math::
@@ -348,7 +348,7 @@ the amount of age groups defined in the field ``.age_groups`` of the
``ExtensionAgeRestriction``.
.. ts:def:: RevealRequest
-
+
interface RevealRequest {
...
@@ -360,7 +360,7 @@ the amount of age groups defined in the field ``.age_groups`` of the
// ``ExtensionAgeRestriction``.
old_age_commitment?: Edx25519PublicKey[];
-
+
...
}
@@ -379,7 +379,7 @@ exchange derives κ-1 age commitments from the ``old_age_commitment`` by calling
as the seed, and then calculates the corresponding κ-1 hash values :math:`h_i`
of those age commitments.
-It then calculates the κ-1 blinded hashes
+It then calculates the κ-1 blinded hashes
:math:`m_i = r^{e_i}\text{FDH}_N(C^{(i)}_p, h_i)` (using the notation from Florian's
thesis) of the disclosed coins and together with the :math:`m_\gamma` of the
undisclosed coin, calculates the hash
@@ -443,7 +443,7 @@ this value will not be smaller than, say, 8, and not larger than, say, 21.
interface ContractTerms {
...
-
+
// If the order requires a minimum age greater than 0, this field is set
// to the integer value of that age. In reality this value will not be
// smaller than, say, 8, and not larger than, say, 21.
@@ -518,11 +518,11 @@ The merchant can now verify
against the public key ``age_commitment[k]`` of the corresponding age group,
say, ``k``. (The minimum age must fall into the age group at index ``k`` as
defined by the exchange).
-
+
**Note**: This applies only to coins for denominations that have support for
age restriction. Denominations *without* support for age restriction *always*
satisfy any minimum age requirement.
-
+
Changes in the Wallet
@@ -676,4 +676,3 @@ The scheme is as follows:
(R, s) := signature
return [s] * G == R + [SHA-512(R ∥ P ∥ message)] * P
}
-