Section 3 cahnges
This commit is contained in:
parent
69cb4882fa
commit
9a0fb5c7e2
@ -384,21 +384,21 @@ reduce the computational burden on the exchange.
|
|||||||
|
|
||||||
\section{Design}
|
\section{Design}
|
||||||
|
|
||||||
The payment system we propose is built on the blind signature
|
We have built a payment system based on the blind signature primitive
|
||||||
primitive proposed by Chaum, but extended with additional
|
discovered by Chaum, but extended with additional constructions to
|
||||||
constructions to provide unlinkability, online fraud detection and
|
provide unlinkabile chain, online fraud detection and taxability.
|
||||||
taxability.
|
|
||||||
|
|
||||||
As with Chaum, the Taler system comprises three principal types of
|
As with Chaum, the Taler system comprises three principal types of
|
||||||
actors (Figure~\ref{fig:cmm}): The \emph{customer} is interested in
|
actors (Figure~\ref{fig:cmm}): The \emph{customer} is interested in
|
||||||
receiving goods or services from the \emph{merchant} in exchange for
|
receiving goods or services from the \emph{merchant} in exchange for
|
||||||
payment. When making a transaction, both the customer and the
|
payment. When making a transaction, both the customer and the
|
||||||
merchant must agree on the same \emph{exchange}, which serves as an
|
merchant use the same \emph{exchange}, known as the mint in Chaum's
|
||||||
intermediary for the financial transaction between the two. The exchange
|
work, which serves as an intermediary for the financial transaction
|
||||||
is responsible for allowing the customer to obtain the anonymous
|
between the two. The exchange is responsible for allowing the customer
|
||||||
digital currency and for enabling the merchant to convert the
|
to obtain the anonymous digital currency and for enabling the merchant
|
||||||
digital coins back to some traditional currency. The \emph{auditor}
|
to convert the digital coins back to some traditional currency.
|
||||||
assures customers and merchants that the exchange operates correctly.
|
In addition, we describe an \emph{auditor} who assures customers and
|
||||||
|
merchants that the exchange operates correctly.
|
||||||
|
|
||||||
\subsection{Security model}
|
\subsection{Security model}
|
||||||
|
|
||||||
@ -414,77 +414,78 @@ communication channel to both the exchange and the merchant, such as Tor.
|
|||||||
|
|
||||||
The exchange is trusted to hold funds of its customers and to forward them
|
The exchange is trusted to hold funds of its customers and to forward them
|
||||||
when receiving the respective deposit instructions from the merchants.
|
when receiving the respective deposit instructions from the merchants.
|
||||||
Customer and merchant can have some assurances about the exchange's
|
Customer and merchant can have assurances about the exchange's liquidity
|
||||||
liquidity and operation, as the exchange has proven reserves, is subject
|
and operation though published audits by government or third parties.
|
||||||
to the law, and can have its business regularly audited
|
If sufficently regular, audits of the exchange's accounts should reveal any
|
||||||
by a government or third party.
|
possible fraud before the exchange is allowed to destroy the corresponding
|
||||||
Regular audits of the exchange's accounts should reveal any possible fraud
|
accumulated cryptographic proofs and book its fees as profits.
|
||||||
before the exchange is allowed to destroy the corresponding accumulated
|
|
||||||
cryptographic proofs and book its fees as profits.
|
|
||||||
%
|
|
||||||
The merchant is trusted to deliver the service or goods to the
|
The merchant is trusted to deliver the service or goods to the
|
||||||
customer upon receiving payment. The customer can seek legal relief
|
customer upon receiving payment. The customer can seek legal relief
|
||||||
to achieve this, as he must get cryptographic proofs of the contract
|
to achieve this, as he must get cryptographic proofs of the contract
|
||||||
and that he paid his obligations.
|
and that he paid his obligations.
|
||||||
|
|
||||||
|
Neither the merchant nor the customer have any ability to {\em effectively}
|
||||||
|
defraud the exchange or the state collecting taxes. Here, ``effectively''
|
||||||
|
means that the expected return for fraud is negative.
|
||||||
%
|
%
|
||||||
Neither the merchant nor the customer may have any ability to {\em
|
|
||||||
effectively} defraud the exchange or the state collecting taxes. Here,
|
|
||||||
``effectively'' means that the expected return for fraud is negative.
|
|
||||||
In particular, Taler employs a full domain hash (FDH) with RSA signatures
|
|
||||||
so that ``one-more forgery'' is hard assuming the RSA known-target
|
|
||||||
inversion problem is hard.\cite[Theorem12]{RSA-HDF-KTIvCTI}
|
|
||||||
% \cite[Theorem 6.2]{OneMoreInversion}
|
|
||||||
Note that customers do not need to be trusted in any way, and that in
|
Note that customers do not need to be trusted in any way, and that in
|
||||||
particular it is never necessary for anyone to try to recover funds
|
particular it is never necessary for anyone to try to recover funds
|
||||||
from customers using legal means.
|
from customers using legal means.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\subsection{Taxability and Entities}
|
\subsection{Taxability and Entities}
|
||||||
|
|
||||||
As electronic coins are trivially copied between machines, we should
|
Taler is supposed to ensure that the state can tax appropriate
|
||||||
clarify what kinds of operations can even be expected to be taxed.
|
{\em transactions}. We must therefore clarify what constitutes a
|
||||||
After all, without intrusive measures to take away control of the
|
transactions that can be expected to be taxed.
|
||||||
computing platform from its users, copying an electronic wallet from
|
|
||||||
one computer to another can hardly be prevented by a payment system.
|
We necessarily assume both that coins can freely be copied between
|
||||||
Furthermore, it would also hardly be appropriate to tax the moving of
|
machines, and that coin deletion cannot be verified.
|
||||||
funds between two computers owned by the same entity. We thus
|
Avoiding these assumptions would require extreme measures, like custom
|
||||||
|
hardware supplied by the exchange, and tends to be incompatable with
|
||||||
|
our annonymity. Furthermore, it would inappropriate to tax the moving
|
||||||
|
of funds between two computers owned by the same entity. We thus
|
||||||
need to clarify which kinds of transfers we expect to tax.
|
need to clarify which kinds of transfers we expect to tax.
|
||||||
|
|
||||||
Taler is supposed to ensure that the state can tax {\em transactions}.
|
We view ownership of a coin's private key as a ``capability'' to spend
|
||||||
A {\em transaction} is a transfer where it is assured that one entity
|
the funds. A transaction occurs when a merchant entity gains control
|
||||||
gains control over funds while at the same time another entity looses
|
over the funds while at the same time a customer entity looses control
|
||||||
control over those funds. We further restrict transactions to apply
|
over the funds in a manor verifiable to the merchant. In other words,
|
||||||
only to the transfer of funds between {\em mutually distrustful}
|
we restrict transactions to those transfer of funds where the recipient
|
||||||
entities. Two entities are assumed to be mutually distrustful if they
|
merchant is distrustful of the spending customer, and requires
|
||||||
are unwilling to share control over coins. If a private key is shared
|
verification that they lost the capability to spend the funds.
|
||||||
between two entities, then both entities have equal access to the
|
|
||||||
credentials represented by the private key. In a payment system this
|
Conversely, if a coin's private key is shared between two entities,
|
||||||
means that either entity could spent the associated funds. Assuming
|
then both entities have equal access to the credentials represented by
|
||||||
the payment system has effective double-spending detection, this means
|
the private key. In a payment system, this means that either entity
|
||||||
that either entity has to constantly fear that the funds might no
|
could spent the associated funds.
|
||||||
longer be available to it. It follows that sharing coins by copying
|
Assuming the payment system has effective double-spending detection,
|
||||||
a private key implies mutual trust between the two parties, in which
|
this means that either entity has to constantly fear that the funds
|
||||||
case Taler will treat them as the same entity.
|
might no longer be available to it.
|
||||||
|
It follows that sharing coins by copying a private key implies mutual
|
||||||
|
trust between the two parties, in which case Taler will treat them
|
||||||
|
as the same entity.
|
||||||
|
|
||||||
In Taler, making funds available by copying a private key and thus
|
In Taler, making funds available by copying a private key and thus
|
||||||
sharing control is {\bf not} considered a {\em transaction} and
|
sharing control is {\bf not} considered a {\em transaction} and
|
||||||
thus {\bf not} recorded for taxation.
|
thus {\bf not} recorded for taxation.
|
||||||
|
Taler does however ensure taxability only when a merchant entity
|
||||||
Taler ensures taxability only when some entity acquires exclusive
|
acquires exclusive control over the value represented by a digital
|
||||||
control over the value of digital coins, which requires an interaction
|
coins, which requires an interaction with the exchange.
|
||||||
with the exchange. For such transactions, the state can obtain information
|
In these taxable transactions,
|
||||||
from the exchange, or a bank, that identifies the entity that received the
|
For such transactions, the state can obtain information from the
|
||||||
|
exchange, or a bank, that identifies the entity that received the
|
||||||
digital coins as well as the exact value of those coins.
|
digital coins as well as the exact value of those coins.
|
||||||
Taler also allows the exchange, and hence the state, to learn the value of
|
Taler also allows the exchange, and hence the state, to learn the value
|
||||||
digital coins withdrawn by a customer---but not how, where, or when
|
of digital coins withdrawn by a customer---but not how, where, or when
|
||||||
they were spent.
|
they were spent.
|
||||||
|
|
||||||
\subsection{Anonymity}
|
\subsection{Anonymity}
|
||||||
|
|
||||||
An anonymous communication channel such as Tor~\cite{tor-design} is
|
An anonymous communication channel such as Tor~\cite{tor-design} is
|
||||||
used for all communication between the customer and the merchant.
|
used for all communication between the customer and the merchant,
|
||||||
|
as well as for refreshing tainted coins with the exchange and for
|
||||||
|
retrieving the exchange's denomination key.
|
||||||
Ideally, the customer's anonymity is limited only by this channel;
|
Ideally, the customer's anonymity is limited only by this channel;
|
||||||
however, the payment system does additionally reveal that the customer
|
however, the payment system does additionally reveal that the customer
|
||||||
is one of the patrons of the exchange.
|
is one of the patrons of the exchange.
|
||||||
@ -495,15 +496,15 @@ possibly even when dealing with physical goods \cite{apod}.
|
|||||||
We consider information leakage specific to the business logic to be
|
We consider information leakage specific to the business logic to be
|
||||||
outside of the scope of the design of Taler.
|
outside of the scope of the design of Taler.
|
||||||
|
|
||||||
Ideally, customer should use an anonymous communication channel with
|
Aside from refreshing and obtaining denomination key, the customer
|
||||||
the exchange to avoid leaking IP address information; however, the exchange
|
should ideally use an anonymous communication channel with the exchange
|
||||||
would typically learn the customer's identity from the wire transfer
|
to obscure their IP address for location privacy, but naturally
|
||||||
that funds the customer's withdraw anonymous digital coins.
|
the exchange would typically learn the customer's identity from the wire
|
||||||
In fact, this is desirable as there might be rules and regulations
|
transfer that funds the customer's withdrawal of anonymous digital coins.
|
||||||
designed to limit the amount of anonymous digital cash that an
|
We believe this is desirable as there might be laws, or bank policies,
|
||||||
individual customer can withdraw in a given time period, similar to
|
that limit the amount of anonymous digital cash that an individual
|
||||||
how states today sometimes impose limits on cash
|
customer can withdraw in a given time period, similar to how states today
|
||||||
withdrawals~\cite{france2015cash,greece2015cash}.
|
sometimes impose limits on cash withdrawals~\cite{france2015cash,greece2015cash}.
|
||||||
Taler is only anonymous with respect to {\em payments}, as the exchange
|
Taler is only anonymous with respect to {\em payments}, as the exchange
|
||||||
will be unable to link the known identity of the customer that withdrew
|
will be unable to link the known identity of the customer that withdrew
|
||||||
anonymous digital currency to the {\em purchase} performed later at the
|
anonymous digital currency to the {\em purchase} performed later at the
|
||||||
@ -550,6 +551,7 @@ records that the exchange must retain and search to detect double-spending
|
|||||||
attempts. Furthermore, the exchange is expected to use each coin signing
|
attempts. Furthermore, the exchange is expected to use each coin signing
|
||||||
key only for a limited number of coins.
|
key only for a limited number of coins.
|
||||||
% for example by limiting its use to sign coins to a week or a month.
|
% for example by limiting its use to sign coins to a week or a month.
|
||||||
|
|
||||||
In this way, if a private coin signing key were to be compromised,
|
In this way, if a private coin signing key were to be compromised,
|
||||||
the exchange would detect this once more coins were redeemed than the total
|
the exchange would detect this once more coins were redeemed than the total
|
||||||
that was signed into existence using that coin signing key.
|
that was signed into existence using that coin signing key.
|
||||||
@ -558,11 +560,19 @@ unspent coins that were signed with the compromised private key,
|
|||||||
while refusing further anonymous transactions involving those coins.
|
while refusing further anonymous transactions involving those coins.
|
||||||
As a result, the financial damage of losing a private signing key can be
|
As a result, the financial damage of losing a private signing key can be
|
||||||
limited to at most twice the amount originally signed with that key.
|
limited to at most twice the amount originally signed with that key.
|
||||||
To ensure that the exchange does not enable deanonymization of users by
|
|
||||||
signing each coin with a fresh coin signing key, the exchange must publicly
|
As a technical matter, Taler employs a full domain hash (FDH) with
|
||||||
announce the coin signing keys in advance. Those announcements are
|
RSA signatures so that ``one-more forgery'' is provably hard assuming the
|
||||||
expected to be signed with an off-line long-term private {\em master
|
RSA known-target inversion problem is hard \cite[Theorem 12]{RSA-HDF-KTIvCTI}.
|
||||||
signing key} of the exchange and the auditor.
|
% \cite[Theorem 6.2]{OneMoreInversion}
|
||||||
|
|
||||||
|
We must also ensure that the exchange cannot deanonymize users by
|
||||||
|
signing each coin with a fresh denomination key. For this, we require
|
||||||
|
that exchanges publicly announce their denomination keys in advance.
|
||||||
|
These announcements are expected to be signed with an off-line
|
||||||
|
long-term private {\em master signing key} of the exchange and the
|
||||||
|
auditor. We additionally presume that customers should obtain these
|
||||||
|
announcements using Tor.
|
||||||
|
|
||||||
Before a customer can withdraw a coin from the exchange,
|
Before a customer can withdraw a coin from the exchange,
|
||||||
he has to pay the exchange the value of the coin, as well as processing fees.
|
he has to pay the exchange the value of the coin, as well as processing fees.
|
||||||
@ -592,6 +602,7 @@ during the exchange process. Knowledge of the private key of the coin
|
|||||||
enables the owner to spent the coin. If the private key is shared
|
enables the owner to spent the coin. If the private key is shared
|
||||||
with others, they also become owners of the coin.
|
with others, they also become owners of the coin.
|
||||||
|
|
||||||
|
|
||||||
\subsection{Coin spending}
|
\subsection{Coin spending}
|
||||||
|
|
||||||
To spend a coin, the coin's owner needs to sign a {\em deposit
|
To spend a coin, the coin's owner needs to sign a {\em deposit
|
||||||
|
Loading…
Reference in New Issue
Block a user