Corrections on section 4
This commit is contained in:
parent
99865ad6d4
commit
47b4193317
@ -203,7 +203,7 @@ We give a concise example of how these properties interact:
|
|||||||
A customer may want to pay \EUR{49,99} using a \EUR{100,00} coin.
|
A customer may want to pay \EUR{49,99} using a \EUR{100,00} coin.
|
||||||
the system must thus support giving change in the form of spendable coins,
|
the system must thus support giving change in the form of spendable coins,
|
||||||
say a \EUR{0,01} coin and a \EUR{50,00} coin.
|
say a \EUR{0,01} coin and a \EUR{50,00} coin.
|
||||||
A merchant cannot simply give the customer their coins in another transaction,
|
A merchant cannot simply give the customer their coins in another transaction;
|
||||||
however, as this reverses the role of merchant and customer, and
|
however, as this reverses the role of merchant and customer, and
|
||||||
our taxability requirement would deanonymize the customer. The customer
|
our taxability requirement would deanonymize the customer. The customer
|
||||||
also cannot withdraw exact change from his account from the mint, as this
|
also cannot withdraw exact change from his account from the mint, as this
|
||||||
@ -642,20 +642,19 @@ construct a transaction.
|
|||||||
|
|
||||||
% In this section, we describe the protocols for Taler in detail.
|
% In this section, we describe the protocols for Taler in detail.
|
||||||
|
|
||||||
For the sake of brevity, we assume that a recipient of a signed
|
We shall assume for the sake of brevity that a recipient of a signed
|
||||||
message always first checks that the signature is valid, even though
|
message always first checks that the signature is valid, aborting the
|
||||||
this is not explicitly stated below. Also, whenever a signed message
|
operation if not. Additionally, we assume that the receiver of a
|
||||||
is transmitted, it is assumed that the receiver is told the public key
|
signed message is either told the public key, or knows it from the
|
||||||
(or knows it from the context) and that the signature contains
|
context, and that the signature contains additional identification as
|
||||||
additional identification as to the purpose of the signature, making
|
to the purpose of the signature, making it impossible to use a signature
|
||||||
it impossible to use a signature in a different context.
|
in a different context.
|
||||||
|
|
||||||
When the mint signs messages (not coins), an {\em online message
|
The mint has an {\em online message signing key} used for signing
|
||||||
signing key} of the mint is used. The mint's long-term offline key
|
messages, as opposed to coins. The mint's long-term offline key is used
|
||||||
is used to certify both the coin signing keys as well as the online
|
to certify both the coin signing keys and the online message signing key
|
||||||
message signing key of the mint. The mint's long-term offline key is
|
of the mint. The mint's long-term offline key is assumed to be known to
|
||||||
assumed to be well-known to both customers and merchants, for example
|
both customers and merchants and is certified by the auditors.
|
||||||
because it is certified by the auditors.
|
|
||||||
|
|
||||||
As we are dealing with financial transactions, we explicitly describe
|
As we are dealing with financial transactions, we explicitly describe
|
||||||
whenever entities need to safely commit data to persistent storage.
|
whenever entities need to safely commit data to persistent storage.
|
||||||
@ -667,10 +666,9 @@ date; information committed to disk can be discarded after the
|
|||||||
expiration date of the respective public key. Customers can also
|
expiration date of the respective public key. Customers can also
|
||||||
discard information once the respective coins have been fully spent,
|
discard information once the respective coins have been fully spent,
|
||||||
and merchants may discard information once payments from the mint have
|
and merchants may discard information once payments from the mint have
|
||||||
been received (assuming records are also no longer needed for tax
|
been received, assuming the records are also no longer needed for tax
|
||||||
authorities). The mint's bank transfers dealing in traditional
|
purposes. The mint's bank transfers dealing in traditional currency
|
||||||
currency are expected to be recorded for tax authorities to ensure
|
are expected to be recorded for tax authorities to ensure taxability.
|
||||||
taxability.
|
|
||||||
|
|
||||||
\subsection{Withdrawal}
|
\subsection{Withdrawal}
|
||||||
|
|
||||||
@ -687,7 +685,7 @@ the mint:
|
|||||||
\item coin key $C := (c_s,C_p)$ with private key $c_s$ and public key $C_p := c_s G$,
|
\item coin key $C := (c_s,C_p)$ with private key $c_s$ and public key $C_p := c_s G$,
|
||||||
\item blinding factor $b$, and commits $\langle W, C, b \rangle$ to disk.
|
\item blinding factor $b$, and commits $\langle W, C, b \rangle$ to disk.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\item The customer transfers an amount of money corresponding to (at least) $K_p$ to the mint, with $W_p$ in the subject line of the transaction.
|
\item The customer transfers an amount of money corresponding to at least $K_p$ to the mint, with $W_p$ in the subject line of the transaction.
|
||||||
\item The mint receives the transaction and credits the $W_p$ reserve with the respective amount in its database.
|
\item The mint receives the transaction and credits the $W_p$ reserve with the respective amount in its database.
|
||||||
\item The customer sends $S_W(B_b(C_p))$ to the mint to request withdrawal of $C$; here, $B_b$ denotes Chaum-style blinding with blinding factor $b$.
|
\item The customer sends $S_W(B_b(C_p))$ to the mint to request withdrawal of $C$; here, $B_b$ denotes Chaum-style blinding with blinding factor $b$.
|
||||||
\item The mint checks if the same withdrawal request was issued before; in this case, it sends $S_{K}(B_b(C_p))$ to the customer.\footnote{Here $S_K$
|
\item The mint checks if the same withdrawal request was issued before; in this case, it sends $S_{K}(B_b(C_p))$ to the customer.\footnote{Here $S_K$
|
||||||
@ -700,10 +698,10 @@ the mint:
|
|||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
and then sends $S_{K}(B_b(C_p))$ to the customer.
|
and then sends $S_{K}(B_b(C_p))$ to the customer.
|
||||||
If the guards for the transaction fail, the mint sends a descriptive error back to the customer,
|
If the guards for the transaction fail, the mint sends a descriptive error back to the customer,
|
||||||
with proof that it operated correctly (i.e. by showing the transaction history for the reserve).
|
with proof that it operated correctly.
|
||||||
\item The customer computes (and verifies) the unblinded signature $S_K(C_p) = U_b(S_K(B_b(C_p)))$.
|
Assuming the signature was valid, this would involve showing the transaction history for the reserve.
|
||||||
The customer writes $\langle S_K(C_p), c_s \rangle$ to disk (effectively adding the coin to the
|
\item The customer computes and verifies the unblinded signature $S_K(C_p) = U_b(S_K(B_b(C_p)))$.
|
||||||
local wallet) for future use.
|
The customer saves the coin $\langle S_K(C_p), c_s \rangle$ to local wallet on disk.
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
We note that the authorization to create and access a reserve using a
|
We note that the authorization to create and access a reserve using a
|
||||||
withdrawal key $W$ is just one way to establish that the customer is
|
withdrawal key $W$ is just one way to establish that the customer is
|
||||||
@ -719,36 +717,33 @@ merchant trusts the specific mint that minted the coin. Merchants are
|
|||||||
identified by their key $M := (m_s, M_p)$ where the public key $M_p$
|
identified by their key $M := (m_s, M_p)$ where the public key $M_p$
|
||||||
must be known to the customer a priori.
|
must be known to the customer a priori.
|
||||||
|
|
||||||
The following steps describe the protocol between customer, merchant and mint
|
We now describe the protocol between the customer, merchant, and mint
|
||||||
for a transaction involving a coin $C := (c_s, C_p)$, which was previously signed
|
for a transaction in which the customer spends a coin $C := (c_s, C_p)$
|
||||||
by a mint's denomination key $K$, i.e. the customer possesses
|
with signature $\widetilde{C} := S_K(C_p)$
|
||||||
$\widetilde{C} := S_K(C_p)$:
|
where $K$ is the mint's demonination key.
|
||||||
|
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item\label{contract} Let $\vec{D} := D_1, \ldots, D_n$ be the list of
|
\item\label{contract}
|
||||||
mints accepted by the merchant where each $D_j$ is a mint's public
|
Let $\vec{D} := D_1, \ldots, D_n$ be the list of mints accepted by
|
||||||
key. The merchant creates a digitally signed contract $\mathcal{A}
|
the merchant where each $D_j$ is a mint's public key.
|
||||||
:= S_M(m, f, a, H(p, r), \vec{D})$ where $m$ is an identifier for this
|
The merchant creates a digitally signed contract
|
||||||
transaction, $a$ is data relevant to the contract indicating which services
|
$\mathcal{A} := S_M(m, f, a, H(p, r), \vec{D})$
|
||||||
or goods the merchant will deliver to the customer, $f$ is the price of the offer,
|
where $m$ is an identifier for this transaction, $a$ is data relevant
|
||||||
and $p$ is the merchant's payment information (e.g. his IBAN number) and $r$ is
|
to the contract indicating which services or goods the merchant will
|
||||||
a random nonce. The merchant commits $\langle \mathcal{A}
|
deliver to the customer, $f$ is the price of the offer, and
|
||||||
\rangle$ to disk and sends $\mathcal{A}$ to the customer.
|
$p$ is the merchant's payment information (e.g. his IBAN number), and
|
||||||
\item\label{deposit} The customer must possess or acquire a coin minted by a mint that is
|
$r$ is a random nonce. The merchant commits $\langle \mathcal{A} \rangle$
|
||||||
accepted by the merchant, i.e. $K$ should be publicly signed by some $D_j
|
to disk and sends $\mathcal{A}$ to the customer.
|
||||||
\in \{D_1, D_2, \ldots, D_n\}$, and has a value $\geq f$. (The customer
|
\item\label{deposit}
|
||||||
can of course also use multiple coins where the total value adds up to
|
The customer should already possess a coin minted by a mint that is
|
||||||
the cost of the transaction and run the following steps for each of
|
accepted by the merchant, meaning $K$ should be publicly signed by
|
||||||
the coins. However, for simplicity of the exposition here we will
|
some $D_j \in \{D_1, D_2, \ldots, D_n\}$, and has a value $\geq f$.
|
||||||
assume that one coin is sufficient.)
|
\item The customer generates a \emph{deposit-permission} $\mathcal{D} :=
|
||||||
%
|
|
||||||
The customer then generates a \emph{deposit-permission} $\mathcal{D} :=
|
|
||||||
S_c(\widetilde{C}, m, f, H(a), H(p,r), M_p)$
|
S_c(\widetilde{C}, m, f, H(a), H(p,r), M_p)$
|
||||||
and sends $\langle \mathcal{D}, D_j\rangle$ to the merchant,
|
and sends $\langle \mathcal{D}, D_j\rangle$ to the merchant,
|
||||||
where $D_j$ is the mint which signed $K$.
|
where $D_j$ is the mint which signed $K$.
|
||||||
\item The merchant gives $(\mathcal{D}, p, r)$ to the mint, revealing $p$
|
\item The merchant gives $(\mathcal{D}, p, r)$ to the mint, revealing $p$
|
||||||
only to the mint.
|
only to the mint.
|
||||||
|
|
||||||
\item The mint validates $\mathcal{D}$ and checks for double spending.
|
\item The mint validates $\mathcal{D}$ and checks for double spending.
|
||||||
If the coin has been involved in previous transactions and the new
|
If the coin has been involved in previous transactions and the new
|
||||||
one would exceed its remaining value, it sends an error
|
one would exceed its remaining value, it sends an error
|
||||||
@ -756,15 +751,21 @@ $\widetilde{C} := S_K(C_p)$:
|
|||||||
%
|
%
|
||||||
If double spending is not found, the mint commits $\langle \mathcal{D} \rangle$ to disk
|
If double spending is not found, the mint commits $\langle \mathcal{D} \rangle$ to disk
|
||||||
and notifies the merchant that the deposit operation was successful.
|
and notifies the merchant that the deposit operation was successful.
|
||||||
|
|
||||||
\item The merchant commits and forwards the notification from the mint to the
|
\item The merchant commits and forwards the notification from the mint to the
|
||||||
customer, confirming the success (or failure) of the operation.
|
customer, confirming the success or failure of the operation.
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
|
|
||||||
|
We have simplified the exposition by assuming that one coin suffices, but
|
||||||
|
in practice a customer can use multiple coins from the same mint where
|
||||||
|
the total value adds up to $f$ by running the following steps for
|
||||||
|
each of the coins. There is a risk of metadata leakage if a customer
|
||||||
|
acquires a coin in responce to the merchant, or if a customer uses
|
||||||
|
coings issued by multiple mints together.
|
||||||
|
|
||||||
If a transaction is aborted after Step~\ref{deposit},
|
If a transaction is aborted after Step~\ref{deposit},
|
||||||
subsequent transactions with the same coin could be linked to the coin,
|
subsequent transactions with the same coin could be linked to the coin,
|
||||||
but not directly to the coin's owner. The same applies to partially
|
but not directly to the coin's owner. The same applies to partially
|
||||||
spent coins (where $f$ is smaller than the actual value of the coin).
|
spent coins where $f$ is smaller than the actual value of the coin.
|
||||||
To unlink subsequent transactions from a coin, the customer has to
|
To unlink subsequent transactions from a coin, the customer has to
|
||||||
execute the coin refreshing protocol with the mint.
|
execute the coin refreshing protocol with the mint.
|
||||||
|
|
||||||
@ -803,34 +804,40 @@ execute the coin refreshing protocol with the mint.
|
|||||||
|
|
||||||
\subsection{Refreshing} \label{sec:refreshing}
|
\subsection{Refreshing} \label{sec:refreshing}
|
||||||
|
|
||||||
The following refreshing protocol is executed in order to melt a dirty
|
We now describe the refresh protocol whereby a dirty coin $C'$ of
|
||||||
coin $C'$ of denomination $K$ to obtain a fresh coin $\widetilde{C}$
|
denomination $K$ is melted to obtain a fresh coin $\widetilde{C}$
|
||||||
with the same denomination. In practice, Taler uses a natural
|
with the same denomination. In practice, Taler uses a natural
|
||||||
extension where multiple fresh coins are generated a the same time to
|
extension where multiple fresh coins are generated a the same time to
|
||||||
enable giving precise change matching any amount. In the
|
enable giving precise change matching any amount.
|
||||||
protocol, $\kappa \ge 3$ is a security parameter and $G$ is the
|
In the protocol, $\kappa \ge 3$ is a security parameter and $G$ is the
|
||||||
generator of the elliptic curve.
|
generator of the elliptic curve.
|
||||||
|
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item For each $i = 1,\ldots,\kappa$, the customer randomly generates
|
\item For each $i = 1,\ldots,\kappa$, the customer randomly generates
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item transfer key $T^{(i)} := \left(t^{(i)}_s,T^{(i)}_p\right)$ where $T^{(i)}_p := t^{(i)}_s G$,
|
\item transfer key $T^{(i)} := \left(t^{(i)}_s,T^{(i)}_p\right)$
|
||||||
\item coin key pair \\ $C^{(i)} := \left(c_s^{(i)}, C_p^{(i)}\right)$ where $C^{(i)}_p := c^{(i)}_s G$,
|
where $T^{(i)}_p := t^{(i)}_s G$,
|
||||||
|
\item coin key pair $C^{(i)} := \left(c_s^{(i)}, C_p^{(i)}\right)$
|
||||||
|
where $C^{(i)}_p := c^{(i)}_s G$, and
|
||||||
\item blinding factors $b^{(i)}$.
|
\item blinding factors $b^{(i)}$.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
The customer then computes $E^{(i)} := E_{K_i}\left(c_s^{(i)}, b^{(i)}\right)$ where $K_i := H(c'_s T_p^{(i)})$. (The encryption key $K_i$ is
|
The customer then computes
|
||||||
computed by multiplying the private key $c'_s$ of the original coin with the point on the curve
|
$E^{(i)} := E_{K_i}\left(c_s^{(i)}, b^{(i)}\right)$
|
||||||
that represents the public key $T^{(i)}_p$ of the transfer key $T^{(i)}$. This is basically DH between coin and transfer key.),
|
where $K_i := H(c'_s T_p^{(i)})$, and
|
||||||
and commits $\langle C', \vec{T}, \vec{C}, \vec{b} \rangle$ to disk.
|
commits $\langle C', \vec{T}, \vec{C}, \vec{b} \rangle$ to disk.
|
||||||
|
|
||||||
|
Our computation of $K_i$ is a effectively a Diffie-Hellman operation
|
||||||
|
between the private key $c'_s$ of the original coin with
|
||||||
|
the public transfer key $T_p^{(i)}_p$.
|
||||||
\item The customer computes $B^{(i)} := B_{b^{(i)}}(C^{(i)}_p)$ for $i \in \{1,\ldots,\kappa\}$ and sends a commitment
|
\item The customer computes $B^{(i)} := B_{b^{(i)}}(C^{(i)}_p)$ for $i \in \{1,\ldots,\kappa\}$ and sends a commitment
|
||||||
$S_{C'}(\vec{E}, \vec{B}, \vec{T_p}))$ to the mint.
|
$S_{C'}(\vec{E}, \vec{B}, \vec{T_p}))$ to the mint.
|
||||||
\item The mint generates a random\footnote{Auditing processes need to assure $\gamma$ is unpredictable until this time to
|
\item The mint generates a random $\gamma$ with $1 \le \gamma \le \kappa$ and
|
||||||
prevent the mint from assisting tax evasion.} $\gamma$ with $1 \le \gamma \le \kappa$ and
|
|
||||||
marks $C'_p$ as spent by committing
|
marks $C'_p$ as spent by committing
|
||||||
$\langle C', \gamma, S_{C'}(\vec{E}, \vec{B}, \vec{T}) \rangle$ to disk.
|
$\langle C', \gamma, S_{C'}(\vec{E}, \vec{B}, \vec{T}) \rangle$ to disk.
|
||||||
\item The mint sends $S_K(C'_p, \gamma)$ to the customer.\footnote{Instead of $K$, it is also
|
Auditing processes should assure that $\gamma$ is unpredictable until
|
||||||
possible to use any equivalent mint signing key known to the customer here, as $K$ merely
|
this time to prevent the mint from assisting tax evasion.
|
||||||
serves as proof to the customer that the mint selected this particular $\gamma$.}
|
\item The mint sends $S_{K'}(C'_p, \gamma)$ to the customer where
|
||||||
|
$K'$ is the mint's message signing key.
|
||||||
\item The customer commits $\langle C', S_K(C'_p, \gamma) \rangle$ to disk.
|
\item The customer commits $\langle C', S_K(C'_p, \gamma) \rangle$ to disk.
|
||||||
\item The customer computes $\mathfrak{R} := \left(t_s^{(i)}\right)_{i \ne \gamma}$
|
\item The customer computes $\mathfrak{R} := \left(t_s^{(i)}\right)_{i \ne \gamma}$
|
||||||
and sends $S_{C'}(\mathfrak{R})$ to the mint.
|
and sends $S_{C'}(\mathfrak{R})$ to the mint.
|
||||||
@ -920,31 +927,30 @@ client should record the interaction and enable the user to file a
|
|||||||
bug report.
|
bug report.
|
||||||
|
|
||||||
The second case is a faulty mint service provider. Such faults will
|
The second case is a faulty mint service provider. Such faults will
|
||||||
be detected because of protocol violations (for example, by providing
|
be detected because of protocol violations, such as providing
|
||||||
a faulty proof or no proof). In this case, the client is expected to
|
a faulty proof or no proof. In this case, the client is expected to
|
||||||
notify the auditor, providing a transcript of the interaction. The
|
notify the auditor, providing a transcript of the interaction. The
|
||||||
auditor can then (anonymously) replay the transaction, and either
|
auditor can then anonymously replay the transaction, and either
|
||||||
provide the (now) correct response to the client or take appropriate
|
provide the now correct response to the client or take appropriate
|
||||||
legal action against the faulty provider.
|
legal action against the faulty provider.
|
||||||
|
|
||||||
The third case are transient failures, such as network failures or
|
The third case are transient failures, such as network failures or
|
||||||
temporary hardware failures at the mint service provider. Here, the
|
temporary hardware failures at the mint service provider. Here, the
|
||||||
client may receive an explicit protocol indication (such as an HTTP
|
client may receive an explicit protocol indication, such as an HTTP
|
||||||
response code 500 ``internal server error'') or simply no response.
|
response code 500 ``internal server error'' or simply no response.
|
||||||
The appropriate behavior for the client is to automatically retry
|
The appropriate behavior for the client is to automatically retry
|
||||||
(after 1s, twice more at randomized times within 1 minute). If those
|
after 1s, and twice more at randomized times within 1 minute.
|
||||||
three attempts fail, the user should be informed about the delay. The
|
If those three attempts fail, the user should be informed about the
|
||||||
client should then retry another three times within the next 24h, and
|
delay. The client should then retry another three times within the
|
||||||
after that time the auditor be informed about the outage.
|
next 24h, and after that time the auditor be informed about the outage.
|
||||||
|
|
||||||
Using this process, short term failures should be effectively obscured
|
Using this process, short term failures should be effectively obscured
|
||||||
from the user, while malicious behavior is reported to the auditor who
|
from the user, while malicious behavior is reported to the auditor who
|
||||||
can then presumably rectify the situation, for example by shutting
|
can then presumably rectify the situation, such as by shutting down
|
||||||
down the operator (while providing an opportunity for customers to
|
the operator and helping customers to regain refunds for coins in
|
||||||
receive refunds for the coins in circulation). To ensure that such
|
their wallets. To ensure that such refunds are possible, the operator
|
||||||
refunds are possible, the operator is expected to always provide
|
is expected to always provide adequate securities for the amount of
|
||||||
adequate securities for the amount of coins in circulation as part of
|
coins in circulation as part of the certification process.
|
||||||
the certification process.
|
|
||||||
|
|
||||||
\subsection{Refunds}
|
\subsection{Refunds}
|
||||||
|
|
||||||
@ -955,29 +961,29 @@ details, and having the customer keep the private key of the spent
|
|||||||
coins on file.
|
coins on file.
|
||||||
|
|
||||||
Given this, the merchant can simply sign a {\em refund confirmation}
|
Given this, the merchant can simply sign a {\em refund confirmation}
|
||||||
and share it with the mint (and the customer). Assuming the mint has
|
and share it with the mint and the customer. Assuming the mint has
|
||||||
a way to recover the funds from the merchant (or simply not performed
|
a way to recover the funds from the merchant, or has not yet performed
|
||||||
the wire transfer yet), the mint can simply add the value of the
|
the wire transfer, the mint can simply add the value of the refunded
|
||||||
refunded transaction back to the original coin, re-enabling those
|
transaction back to the original coin, re-enabling those funds to be
|
||||||
funds to be spent again by the original customer.
|
spent again by the original customer.
|
||||||
|
|
||||||
The (anonymous) customer -- but nobody else -- can then use the
|
This anonymous customer can then use the refresh protocol to melt the
|
||||||
refresh protocol to melt the refunded coin and create a fresh coin
|
refunded coin and create a fresh coin that is unlinkable to the
|
||||||
that is unlinkable to the refunded transaction.
|
refunded transaction.
|
||||||
|
|
||||||
|
|
||||||
\section{Discussion}
|
\section{Discussion}
|
||||||
|
|
||||||
Taler's security is largely equivalent to that of Chaum's original
|
Taler's security is largely equivalent to that of Chaum's original
|
||||||
design without online checks (and without the cut-and-choose
|
design without online checks or the cut-and-choose revelation of
|
||||||
revelation of double-spending customers for offline spending). We
|
double-spending customers for offline spending.
|
||||||
specifically note that the digital equivalent of the ``Columbian Black
|
We specifically note that the digital equivalent of the ``Columbian
|
||||||
Market Exchange''~\cite{fatf1997} is a theoretical problem for both
|
Black Market Exchange''~\cite{fatf1997} is a theoretical problem for
|
||||||
Chaum and Taler, as individuals with a strong mutual trust foundation
|
both Chaum and Taler, as individuals with a strong mutual trust
|
||||||
can simply copy electronic coins and thereby establish a limited form
|
foundation can simply copy electronic coins and thereby establish a
|
||||||
of black transfers. However, unlike the situation with physical
|
limited form of black transfers. However, unlike the situation with
|
||||||
checks with blank recipients in the Columbian black market, the
|
physical checks with blank recipients in the Columbian black market,
|
||||||
transitivity is limited as each participant can deposit the electronic
|
the transitivity is limited as each participant can deposit the electronic
|
||||||
coins and thereby cheat any other participant, while in the Columbian
|
coins and thereby cheat any other participant, while in the Columbian
|
||||||
black market each participant only needs to trust the issuer of the
|
black market each participant only needs to trust the issuer of the
|
||||||
check and not also all previous owners of the physical check.
|
check and not also all previous owners of the physical check.
|
||||||
|
Loading…
Reference in New Issue
Block a user