Note
This is Work-In-Progress.
We will propose here a plugable mechanism in the exchange to support deposits with associated policy. An exchange can enable support for such policies via configuration.
The inital set of policy extensions that an exchange might provide consists of
The policies shall be implemented as extensions to the exchange (see DD6: Extensions for GNU Taler).
TODO
TODO
TODO, explain:
/extensions/policy_...
)TODO: Description
The field policy_hash_codes
in table policy_fulfillments
is a binary
blob that consists of the concatenation of the sorted
policy_details.policy_hash_code
entries from all policies that are fulfilled by
this proof.
The fulfillment of a policy can be in one of the following five states:
accumulated_total
<
commitment
, but has otherwise been accepted. Funding can be
continued by calling /deposit
or /batch-deposit
with more coins
and the same policy details.The following invariants need to be fulfilled and be checked by the auditor:
policy_details.commitment
is equal or larger than the amount in
policy_details.accumulated_total
.policy_details.fee
and
policy_details.transferable
MUST be equal or less than the amount in
policy_details.accumulated_total
.policy_details.accumulated_total
MUST be equal to the total
sum of contributions of the individual coins of the deposits that reference
this policy.policy_fulfillments.policy_hash_codes
MUST
refer to an existing policy_details.hash_code
AND its .fulfillment_id
MUST point to the same policy_fulfillments.id
.policy_details.fulfillment_id
points to an entry in
policy_fulfillment
, the policy_details.policy_hash_code
MUST be
present in that entry’s .policy_hash_codes
.TODO
TODO
TODO
(This should be filled in with results from discussions on mailing lists / personal communication.)