gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-depolymerization] branch master updated: first editing pass


From: gnunet
Subject: [taler-depolymerization] branch master updated: first editing pass
Date: Thu, 02 Jun 2022 14:57:07 +0200

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository depolymerization.

The following commit(s) were added to refs/heads/master by this push:
     new 2ce72ba  first editing pass
2ce72ba is described below

commit 2ce72ba10ff57a41c3b65201ffeae3d377d69e17
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Thu Jun 2 14:57:04 2022 +0200

    first editing pass
---
 article-brains22/depolymerizer.tex | 364 +++++++++++++++++++++++++++++--------
 1 file changed, 287 insertions(+), 77 deletions(-)

diff --git a/article-brains22/depolymerizer.tex 
b/article-brains22/depolymerizer.tex
index af45806..bee907c 100644
--- a/article-brains22/depolymerizer.tex
+++ b/article-brains22/depolymerizer.tex
@@ -14,6 +14,7 @@
 % \usepackage{graphics}
 % \usepackage{parskip}
 \usepackage{tikz}
+\usepackage{url}
 % \usepackage{float}
 % \usepackage{authblk}
 % \usepackage{acro}
@@ -24,18 +25,18 @@
 \def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
     T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
 
-\title{Depolymerizer, tokenizing the blockchains}
+\title{Project Depolymerization: Tokenization of Blockchains}
 \author{\IEEEauthorblockN{1\textsuperscript{st} Antoine d'Aligny}
 \IEEEauthorblockA{student  \\
 \textit{EFREI Paris}\\
 Villejuif, France \\
 antoinedaligny@outlook.fr\\}
-\and 
+\and
 \IEEEauthorblockN{2\textsuperscript{nd} Emmanuel Benoist}
 \IEEEauthorblockA{\textit{School of Engineering and  Computer Science} \\
 \textit{Bern University of Applied Sciences}\\
 Biel, Switzerland\\}
-\and 
+\and
 \IEEEauthorblockN{3\textsuperscript{rd} Christian Grothoff}
 \IEEEauthorblockA{\textit{School of Engineering and  Computer Science} \\
 \textit{Bern University of Applied Sciences}\\
@@ -45,33 +46,94 @@ Biel, Switzerland}
 \maketitle
 
 \begin{abstract}
-GNU Taler is an electronic payment system implemented as free software. The 
goal of this project is to enable payment with blockchain-based cryptocurrency 
in GNU Taler. 
-
-By proving that blockchains can be used as a settlement layer for GNU Taler, 
we show that it is not only capable of handling bank money, but also widely 
used cryptocurrencies.
-
-For cryptocurrencies owners, this integration offers a new solution for 
instant and low-cost payments that can scale beyond blockchains limitations 
while preserving or enhancing privacy. 
-
-To achieve this goal, we need to understand how blockchain-based 
cryptocurrencies work, what their limitations are, and how to mitigate them so 
that they can serve as a settlement layer. 
-
+GNU Taler is an electronic payment system implemented as Free
+Software. The goal of this project is to enable payments with
+blockchain-based cryptocurrencies in GNU Taler.
+
+Blockchain-based cryptocurrencies come with their own special set of
+challenges, such as lack of finality and unpredictable delays and fees
+in transactions.  Our work analyzes the limitations that arise from
+using a blockchain as a settlement layer for GNU Taler and describes
+ways to mitigate their impact.  By proving that blockchains can be
+used as a settlement layer for GNU Taler, we show that it is not only
+capable of handling bank money, but also widely used cryptocurrencies.
+
+For cryptocurrencies owners, this integration offers a new solution
+for instant and low-cost payments that can scale beyond blockchains
+limitations while preserving or enhancing privacy.
 \end{abstract}
-\section{Introduction}
-
-Electronic payments are currently very widespread. We also have with 
currencies like Bitcoin \cite{nakamoto2008bitcoin}  and Ethereum \cite{} two 
very used currencies. However, it is not possible to use these two currencies 
in everyday life to buy bread, pay for a beer or a snack in a vending machine. 
A transaction in Bitcoin or Ethereum has to be entered in a block and then one 
has to wait for a certain number of blocks for this transaction to be 
considered valid. To have a serious vali [...]
-
-
-
-Block size and number of blocks are two factors limiting the amount of 
transactions per second. The number of transactions per second is currently 
very small (less than 10 for Bitcoin or 30 for Ethereum). This makes it 
impossible to use these two systems as a means of payment in the daily life of 
users, since millions of users will need to send transactions daily.
-
-We developed a way to integrate the GNU Taler electronic payment system to 
make payments for Distributed Ledger Technology (DLT) based currencies. The GNU 
Taler system is based on cryptographic tokens distributed by an exchange that 
can be used for instant payment. The users pay the merchants using their 
tokens, the merchants can then send the received tokens  back to a wallet on 
the blockchain.
 
-Our solution allows to use the GNU Taler system to make payments in Bitcoin 
and Ethereum. An exchange is created, to which the user transfers an amount in 
crypto-currency. In return, the user receives tokens corresponding to this 
amount and can dispose of them at will in any store that accepts these tokens. 
The transaction is then instantaneous. The merchant can then convert the 
obtained tokens into the original DLT.
-
-
-We present the GNU Taler payment system in section \ref{sec:taler}. Then in 
section \ref{sec:architecture} we present the depolymerizer system which allows 
to transform Bitcoin and Ethereum assets into GNU Taler tokens and vice versa. 
We also present in section \ref{sec:features} the different specificities of 
our system allowing to solve the inherent problems of blockchains.
+\section{Introduction}
 
-\section{GNU Taler}\label{sec:taler}
-The GNU Taler system has been designed as an electronic payment system for 
FIAT currencies (Fig.~\ref{fig:taler}). In a normal configuration, customers 
who want to use GNU Taler use a wallet. To get tokens into their wallet, the 
users make a bank transfer to an exchange. The exchange issues tokens %(based 
on a blind signature) 
-to the users who stores them in their wallet. 
+Today, popular cryptocurrencies like
+Bitcoin~\cite{nakamoto2008bitcoin} and Ethereum~\cite{ethereum} are
+not useful for electronic payments in everyday life (say to buy bread,
+pay for a beer or a snack in a vending machine).  There are three main
+reasons for this. First, the distributed character and the validation
+of blockchains do not allow fast transactions: a transaction in
+Bitcoin or Ethereum has to be entered in a block and then one has to
+wait for a certain number of blocks for this transaction to be
+considered valid. To have a serious validation, it may be necessary to
+wait for one hour~\cite{nakamoto2008bitcoin}.
+
+Second, the block size and number of blocks mined are two limiting the
+amount of transactions per second that distributed cryptocurrencies
+can perform.  The number of transactions per second is currently small
+(less than 10 for Bitcoin and less than 30 for
+Ethereum).~\cite{blockchaininfo} This makes it impossible to use these
+two systems as a means of payment in the daily life of users, since
+the systems simply cannot handle the transaction rates required by
+millions of users.  In practice, the transactions that are successful
+are those with the highest payment fees attached.  Which brings us to
+the third reason: the effective payment fees are too high for small
+purchases, as the fees may even exceed the value of the purchase,
+especially for small purchases like snacks from a vending machine.
+
+We developed a way to use the GNU Taler electronic payment system as a
+second-layer solution for Distributed Ledger Technology (DLT) based
+cryptocurrencies. The GNU Taler system is based on cryptographic
+tokens distributed by an exchange that can be used for instant
+payments. Users pay the merchants using digital tokens that were
+blindly signed by an issuing payment service provider, called an
+exchange.  Merchants receiving GNU Taler payments need to redeem the
+digital tokens at the exchange.  Merchants can either receive fresh
+tokens, or the exchange can aggregate many off-chain micropayments so
+that the merchant would receive one bulk transfer for many
+micropayments on the blockchain.
+
+Our solution allows to use the GNU Taler system to make payments in
+Bitcoin and Ethereum. An exchange is created, to which the user
+transfers an amount in crypto-currency. In return, the user receives
+(blindly signed) tokens corresponding to this amount and can spend
+them at will in any store that accepts these tokens. The transaction
+is then instantaneous: the exchange operator instantly confirms the
+validity of the tokens by checking its signature and ensuring that
+tokens are not double-spent.  The merchant can then immediately run
+the business logic, and freely determine when the payment is to be
+aggregated and converted into an on-chain transaction.
+
+A key issue with any layer-two solution is that the merchants must
+have some confidence that the operator can be trusted. GNU Taler
+includes an auditor component which can be used to provide real-time
+audits of an exchange operator.  By setting up one or more auditors
+that have both access to the exchange's database and see the on-chain
+transactions, this trust issue can be mitigated.
+
+We give some background on the GNU Taler payment system in
+Section~\ref{sec:taler}. Then in Section~\ref{sec:architecture} we
+present the Depolymerization system, which allows to transform Bitcoin
+and Ethereum assets into GNU Taler tokens and vice versa. We also
+present in Section~\ref{sec:features} the different specificities of
+our system allowing to solve the inherent problems of blockchains.
+
+\section{Background: GNU Taler}\label{sec:taler}
+
+The GNU Taler system has been designed as an electronic payment system
+for FIAT currencies (Figure~\ref{fig:taler}).~\cite{dold2019}
+Customers who want to use GNU Taler use a Taler wallet. To get tokens
+into their wallet, customers make a wire transfer to an exchange. In
+response, the exchange issues tokens to the users who store them in
+their wallet.
 
 \begin{figure}[hb]
     \begin{center}
@@ -80,54 +142,111 @@ to the users who stores them in their wallet.
     \caption{GNU Taler overview}\label{fig:taler}
 \end{figure}
 
-The GNU Taler system is based on four entities. The consumer who wants to buy 
goods from a merchant. The exchange that signs the user's tokens and collects 
the merchant's tokens. And the whole system is supervised by an auditor who 
checks that all transactions are regular.
-
-
-When a users need tokens, they make a money transfer to the exchange. Then 
they generate tokens and have them signed by the exchange. The signature is 
blind, so the exchange does not know the ID of the tokens it has signed 
\cite{chaum2021issue}. 
-
-The user transfers the tokens to the seller. The seller then presents them to 
the exchange. The exchange can verify the signature but cannot know by which 
consumer it was created (because of the blind signature). If the tokens are 
valid, the merchant's account is credited with the amount of the received 
tokens.
-
-The GNU-Taler tokens use asymmetric cryptography. The client creating a token 
generates a private key, public key pair. The public key is sent blind to the 
exchange, which signs it blind. During a payment, the customer transfers the 
real public key, the signature of the exchange and signs with his private key 
the transfer. The merchant sends this information to the exchange so that his 
account is credited.
-
-
-\section{Architecture}\label{sec:architecture}
-The depolymerizer project consists of providing an exchange for Bitcoin and 
Ethereum. We have developed a system that allows owners of digital currencies 
to deposit this currency in an exchange, to get tokens in exchange, and then to 
pay with these tokens. The transactions between customers and merchants are 
done in the GNU Taler system and not in the blockchain. 
Figure~\ref{fig:offchain} shows how the depolymerizer allows funds to be 
transferred to GNU Taler and then transactions to be  [...]
+The GNU Taler system is based on four types of entities. The consumers
+who want to buy goods from merchants. An exchange that signs the
+tokens into existence, and receives deposited tokens from
+merchants. Finally, the exchange is supervised by one or more auditors
+who checks that all transactions are regular and that the exchange has
+adequate funds in escrow to meet its obligations from tokens in
+ciruclation.
+
+When a users need tokens, they make a money transfer to the
+exchange. Then they generate tokens and have them signed by the
+exchange. The signature is blind, so the exchange does not know the
+public key of the tokens it has signed~\cite{chaum2021issue}.
+
+The user spends the tokens at a merchant by signing a digital contract
+with the private keys of one or more tokens. The merchant must then
+presents the tokens to the exchange, which verifies the signature and
+checks against double-spending. Here, the exchange cannot determine
+which consumer is spending the token (due to the blind signature). If
+the tokens are valid, the merchant is credited with the amount of the
+received tokens.
+
+
+\section{Depolymerization Architecture}\label{sec:architecture}
+
+The Depolymerization project consists of a a banking interface that
+connects an exchange to Bitcoin or Ethereum as the underlying
+settlement layer.  The system allows owners of digital currencies to
+deposit this currency in an exchange, get tokens in exchange, and then
+to pay with these tokens. The (micro) transactions between customers
+and merchants are then done within the GNU Taler system and not on the
+blockchain. Figure~\ref{fig:offchain} shows how depolymerization
+allows funds to be transferred to GNU Taler and then transactions to
+be made off-chain.
 
 \begin{figure}[hb]
     \begin{center}
         \input{figures/settlement_layer.tex}
     \end{center}
-    \caption{Blockchain settlement layer with 
Depolymerizer}\label{fig:offchain}
+    \caption{Blockchain settlement layer with 
depolymerization.}\label{fig:offchain}
 \end{figure}
 
-The system consists of several components. The Figure \ref{fig:architecture} 
shows the interactions between the Taler exchange, the Wire Gateway, the DLT 
Adapter and the DLT Full Node. Since the last two components are DLT-specific, 
there is an Adapter and a Full Node for Bitcoin and an Adapter and a Full Node 
for Ethereum. 
-
-At the center of this architecture is a database that collects the incoming 
and outgoing transactions in the system (those made on the blockchain). These 
transactions are called credits and debits in our accounts. When a credit is 
found, tokens must be distributed to a customer. When a merchant deposits 
tokens, we must debit our account to transfer the money back to the merchant's 
DLT account.
-
-
-
-
-
+The Depolymerization system consists of several components.
+Figure~\ref{fig:architecture} shows the interactions between the Taler
+exchange, the Depolymerization {\em Wire Gateway}, the
+Depolymerization {\em DLT Adapter}, and the DLT Full Node.  Here, the
+Taler exchange represents the previously existing Taler payment
+system, specifically the \texttt{taler-exchange-wirewatch} and
+\texttt{taler-exchange-transfer} components that are traditionally
+interacting with the banking system. The Depolymerization Wire Gateway
+is simply a REST API that presents the Taler exchange with a view of
+the blockchain that (largely) matches the expected semantics of a
+traditional settlement layer.  At the center of this architecture is a
+relational database (PostgreSQL) which collects the incoming (credit)
+and outgoing (debit) transactions of the system.  The DLT Full Node is
+the existing Bitcoin or Etherum ``full'' client
+({\texttt{bitcoind}\footnote{\url{https://bitcoincore.org/}} or
+  {\texttt{geth}\footnote{\url{https://geth.ethereum.org/}}).  The
+    Depolymerization DLT Adapter is responsible to for DLT-specific
+    adaptations.
 
 \begin{figure}[hb]
     \begin{center}
         \input{figures/depolymerizer_arch.tex}
     \end{center}
-    \caption{Depolymerizer architecture}\label{fig:architecture}
+    \caption{Depolymerization architecture.}\label{fig:architecture}
 \end{figure}
 
-When a user wants to withdraw tokens, he has to credit our account on the DLT. 
As all users' money is transferred to the same address, the user must add 
information allowing to assign this money to this client. The client sends a 
transaction that contains both the money and his public key. This public key 
will be used to validate the new tokens. While meta-information is easy to add 
in Ethereum, for Bitcoin we use a multi-output transaction system. The main 
output is our account, the oth [...]
-
-When the clients want to create the tokens corresponding to the transfer they 
made, they sign the new tokens with the private key corresponding to the public 
key indicated during the transfer.
-
-The Taler exchange retrieves the new token request. It checks that the public 
key used during the money transfer matches the signature used for the request. 
Then it signs the new coins blind and sends them back to the user. The user 
removes the blind factor from his coins and can use them.
-
-The Taler exchange will also be responsible for collecting the coins that the 
merchants receive. The money is then transferred to the address given by the 
merchant in the DLT.
-
-
-\section{Special features} \label{sec:features}
-The biggest risk for our system is to believe an amount transferred, to 
validate the creation of coins and to see later that the original money 
transfer is not valid. Since the tokens can not be revocated (because they were 
signed blind), the exchange will lose money.
-
+When a users want to withdraw tokens, they have to credit the
+exchange's account on the respective DLT. As all users' money is
+transferred to the same address of the exchange, each user must add
+information allowing the exchange to associate the incoming funds with
+the originating user's wallet. To do this, the customer sends a
+transaction that contains both the money and a public key of the
+user's wallet in transaction {\em meta-data}. This public key will be
+used to validate requests for issuing fresh tokens. While meta-data is
+easy to add in Ethereum, for Bitcoin we use a multi-output
+transaction.  Here, the main output is our account while the other
+outputs (whose transaction values are negligible) correspond to an
+ephemeral public key that identifies the user's wallet.
+
+When customers want to withdraw tokens corresponding to the transfer
+they made, they sign the requests for new tokens with the private key
+corresponding to the public key indicated during the transfer.  The
+Taler exchange retrieves the withdrawal request, checks that the
+public key used during the money transfer matches the signature used
+for the request, and finally blindly signs the new tokens and sends
+the signature back to the wallet.
+
+The Taler exchange is also responsible for redeeming tokens that were
+spent at merchants. If and when a merchant decides to be credited
+on-chain, the exchange will instruct the Depolymerization Wire Gateway
+to transfer the funds from its DLT escrow account to the DLT address
+indicated by the merchant.
+
+
+\section{Blockchain-specific Problems and Mitigations} \label{sec:features}
+
+In this section we describe how the Depolymerization system addresses
+Blockchain-specific problems.
+
+\subsection{Forks}
+
+A big risk for an exchange operator is to believe that an incoming
+on-chain transaction was final, allow the wallet to withdraw tokens,
+and to then later have see the original on-chain transfer reversed.
 
 \begin{figure}[ht]
     \begin{center}
@@ -136,26 +255,120 @@ The biggest risk for our system is to believe an amount 
transferred, to validate
     \caption{Blockchain fork}\label{fig:fork}
 \end{figure}
 
-This can happen with DLT systems in the case of a fork. If a transaction is 
included in a block (for instance D1 in Fig. \ref{fig:fork}). We could believe 
that it is valid. But if a fork happens that does not contain D1, our 
transaction may not appear in the new blocks. Moreover we can also have in one 
of the new blocks D2 a transaction using the money at the origin of our 
transaction and thus making our transaction invalid.
-
-To solve this problem, we wait a certain number of blocks before validating a 
transaction. This number depends on the DLT and also depends on the history of 
forks. Waiting is not a problem, because for privacy reasons, we should not 
withdraw the coins at the time of use to avoid correlations between withdrawals 
and expenses that could attack the privacy of the system.
+This can happen with DLT systems in the case of a fork. If a
+transaction is included in a block (for instance D1 in
+Figure~\ref{fig:fork}), the exchange might believe that it is durable
+and final. But if a fork happens that does not contain D1, the
+transaction may not appear in the new blocks of the ultimately
+authoritative longest chain. Moreover we can also have in one of the
+new blocks (for instnace D2 in Figure~\ref{fig:fork}) a conflicting
+transaction that uses the money at the origin of our transaction for a
+different transfer. This would preventing the original transaction
+from ever being committed on the longest chain.
+
+Since the blindely signed tokens cannot easily be identified (because
+they were signed {\em blind}), the exchange could lose money.  The
+canonical solution to the problem is to wait a certain number of
+blocks before validating a transaction. In Depolymerization, the
+number is set depending on the DLT and the history of forks observed
+by the system.  The resulting delay only impacts the initial issuing
+of coins, and not the off-chain transactions.
+
+If the Depolymerizer detects that an fork has reverted an incoming
+transactions, it suspends operations until the reverted transactions
+appear in the fork {\em or} until the operator manually intervenes
+to resolve the situation.
+
+One such possible intervention enabled by GNU Taler is for the
+exchange to revoke the affected denomination keys, and to request all
+wallets to reveal the blinding factors of tokens in circulation that
+correspond to those denominations. This would allow the exchange to
+re-issue the tokens that were from on-chain transfers that were not
+reversed. However, in theory it might be too late, as the token might
+also have already been spent.  Still, this remains a possible
+mitigation for a Deploymerizer operator in case the canonical solution
+was inadequate.
+
+\subsection{Fees are Bids}
+
+Due to the limited rate for on-chain transactions, it is possible that
+cryptocurrency transactions can get stuck for a long time. Especially
+if the transaction fee was set too low, it is even possible that transactions
+never make it out of the pending transaction pool onto the main chain and
+are abandoned by the DLT settlement layer.
+
+This is problematic when merchants expect to be credited in a timely
+manner.  Depolymerizer keeps track of pending transactions and
+identifies those that are taking an excessive amount of time to
+mine. For such stuck transactions, it eventually replaces the
+transaction~\cite{bip125} with one where the fee was increased to bump
+its mining priority. Since the process of replacing transactions is
+expensive, acceptable delays and transaction fees are configurable.
+
+\subsection{Tiny Amounts}
+
+The GNU Taler amount format is based on RFC 8905~\cite{rfc8905}. It
+allows up to $2^{53}$ unit and 8 decimal digits. This format is
+perfectly suited for Bitcoin where the maximal amount is 21 million
+bitcoins and the smallest unit being the Satoshi, one Satoshi being
+worth $10^8$ Bitcoin. However, the smallest unit of Ether is the Wei,
+with one Ether being worth $10^{18}$ Wei. The amount of Ether in
+circulation continues to grow without a cap, with over 119,000,000
+Ether in circulation at the time of writing those lines. Therefore, it
+is not possible to represent all Ethereum amounts with the current
+format.
+
+A standard Ethereum transaction requires 21'000 units of
+gas~\footnote{\url{https://ethereum.org/en/developers/docs/gas/\#post-london}}.
 The
+average gas price is currently around 30 GWei. Therefore, a standard
+transaction costs about $63 \cdot 10^{18}$ Wei in transaction
+fees. Since the transaction fee is so high, even if we truncate
+amounts to $10^{-8}$ Ether ($10^{10}$ Wei), we can still represent any
+amount that can be prectically wired. Thus, in Depolymerizer, all
+Ether amounts must be multiples of $10^{10} Wei$.
+
+% \subsection{Meta data} % ???
 
 \section{Advantages}
 
-
-The depolymerizer system allows to turn Bitcoin or Ethereum funds temporarily 
into tokens. The tokens are very quickly exchangeable and can be used for daily 
payments. 
-
-While the number of transactions on blockchains is limited by the size of the 
blocks, their frequency and thus the size of the blockchain, the GNU Taler 
payment system has no intrinsic limit. Marco Boss \cite{} has successfully 
configured a GNU Taler exchange to process 50,000 tokens per second. Since each 
transaction uses a limited number of tokens (less than the binary logarithm of 
the amount spent) an exchange can therefore process at least 10,000 
transactions per second.
-This is comparable to the Visa network, which claims to be able to process 
65,000 messages per second (a transaction is also several messages). 
\cite{visafactsheet}.
-
-% 
https://www.visa.co.uk/dam/VCOM/download/corporate/media/visanet-technology/aboutvisafactsheet.pdf
-
-Blockchain-based systems are also dependent on their distributed aspect. Since 
there is no central instance to validate a transaction, the system waits for 
the transaction to be inserted into a block and then for that block to be 
confirmed by adding more blocks. This makes instantaneous transactions 
impossible with the Bitcoin and Ethereum systems. So you can never use these 
two systems directly to pay for coffee or bread, and a Bitcoin or Ethereum 
snake machine cannot work. Thanks to De [...]
+The Depolymerization system allows users to turn Bitcoin or Ethereum
+funds temporarily into tokens. The tokens are quickly exchangeable and
+can be used for daily expenses.
+
+While the number of transactions on blockchains is limited by the size
+of the blocks, their frequency and thus the size of the blockchain,
+the GNU Taler payment system has no intrinsic limit. Marco
+Boss~\cite{boss2022} has successfully configured a GNU Taler exchange
+to process over 23,000 token transactions per second. Since each
+transaction uses a limited number of tokens (on average, half of the
+binary logarithm of the number of currency units spent) an exchange
+can therefore be expected to process at least 2,300 transactions per
+second for typical amounts.  This is comparable to the Visa network,
+which is said to perform about 1'700 transaction per second
+globally.~\cite{tps-payment-systems}
+
+% FIXME: privacy?
+
+
+% FIXME: reword? Move into conclusion?
+Blockchain-based systems are also dependent on their distributed
+aspect. Since there is no central instance to validate a transaction,
+the system waits for the transaction to be inserted into a block and
+then for that block to be confirmed by adding more blocks. This makes
+instantaneous transactions impossible with the Bitcoin and Ethereum
+systems. So you can never use these two systems directly to pay for
+coffee or bread, and a Bitcoin or Ethereum snack machine cannot
+work. Thanks to Depolymerization, one can use GNU Taler to pay for
+services in real time. The customer can pay and the merchant can
+deliver the goods without noticable delay.
 
 
 \section{Conclusion}\label{sec:conclusion}
 
+% FIXME: link to actual deployment?
 
+% \section*{Acknowledgements}
+% Any?
 
 \bibliographystyle{IEEEtran}
 \bibliography{biblio}
@@ -227,7 +440,7 @@ Blockchain-based systems are also dependent on their 
distributed aspect. Since t
                 \bitbox{4}{ID} & \bitbox{16}{Half}
             \end{rightwordgroup}
         \end{bytefield}
-        
+
     \end{center}
     \begin{center}
         \begin{bytefield}[rightcurly=., rightcurlyspace=0pt]{32}
@@ -242,6 +455,3 @@ Blockchain-based systems are also dependent on their 
distributed aspect. Since t
     \end{center}
     \caption{Outgoing metadata format}
 \end{figure}
-
-
-

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]