aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorAntoine A <>2022-01-27 17:55:26 +0100
committerAntoine A <>2022-01-27 17:55:26 +0100
commit4a83288341cca887481a09b77b8ac30264856846 (patch)
tree2e2401653eeb2e6d4ec53d4b3fd85e605b1c0115 /docs
parent906264dbbae37428d96d07d993c1466bc908df8d (diff)
downloaddepolymerization-4a83288341cca887481a09b77b8ac30264856846.tar.gz
depolymerization-4a83288341cca887481a09b77b8ac30264856846.tar.bz2
depolymerization-4a83288341cca887481a09b77b8ac30264856846.zip
Presentation draft 2
Diffstat (limited to 'docs')
-rw-r--r--docs/fee.pngbin0 -> 25200 bytes
-rw-r--r--docs/presentation.tex200
-rw-r--r--docs/taler.pngbin0 -> 24424 bytes
3 files changed, 151 insertions, 49 deletions
diff --git a/docs/fee.png b/docs/fee.png
new file mode 100644
index 0000000..283c286
--- /dev/null
+++ b/docs/fee.png
Binary files differ
diff --git a/docs/presentation.tex b/docs/presentation.tex
index 083d228..18d05c4 100644
--- a/docs/presentation.tex
+++ b/docs/presentation.tex
@@ -1,15 +1,15 @@
\documentclass{beamer}
-
-\usetheme{default}
\usepackage{tikz}
-\usetikzlibrary{positioning}
-\title{Depolymerization WIP}
-\subtitle{TODO}
-\author{TODO}
-\institute{TODO}
+\usetikzlibrary{positioning,fit}
+
+\title{Depolymerization}
+\subtitle{Linking Taler with blockchain based cryptocurrencies}
+\author{Antoine d'Aligny}
+\institute{Bern University of Applied Sciences}
\date{\today}
+\titlegraphic{\includegraphics[width=2.5cm]{taler.png}}
\begin{document}
@@ -21,77 +21,102 @@
\tableofcontents
\end{frame}
-\begin{frame}{Introduction}{Blockchain}
- \begin{block}{Common blockchain limitation}
- \begin{itemize}
- \item \textbf{Slow} limited amount of transaction per seconds
- \item \textbf{Delayed} block and confirmation delay
- \item \textbf{Expensive} transaction fees
- \item \textbf{Privacy} pseudonym and noise
- \item \textbf{Compatibility} multiple blockchain and transactions format
- \end{itemize}
- \end{block}
+\section{Introduction}
+\begin{frame}{Introduction}
\begin{block}{Biggest cryptocurrencies}
\begin{itemize}
\item \textbf{BTC} Bitcoin
\item \textbf{ETH} Ethereum
\end{itemize}
\end{block}
-\end{frame}
-\begin{frame}{Introduction}{Related work}
- \begin{block}{Centralization - Coinbase's off-chain sending}
- \begin{itemize}
- \item [$+$] Fast and cheap: off chain transaction
- \item [$-$] Trust in Coinbase: privacy, security \& transparency
- \end{itemize}
- \end{block}
- \begin{block}{Layering - Lightning Network}
+ \begin{block}{Common blockchain limitation}
\begin{itemize}
- \item [$+$] Fast and cheap: off chain transaction
- \item [$-$] Incompatible with Bitcoin: require setting up a Bidirectional Payment Channels
- \item [$-$] Fraud attempts are mitigated via a complex penalty system
+ \item \textbf{Delayed} block and confirmation delay
+ \item \textbf{Expensive} transaction fees
+ \item \textbf{Scalability} limited amount of transaction per seconds
+ \item \textbf{Ecological cost} computation redundancy
+ \item \textbf{Privacy}
\end{itemize}
\end{block}
\end{frame}
-\begin{frame}{Introduction}{Taler}
- \begin{itemize}
- \item [$-$] Trust exchange operator or auditors
- \item [$+$] Fast and cheap, no blockchain
- \item [$+$] Privacy when it can, transparency when it must (avoid tax evasion and money laundering)
- \item [$+$] Currency agnostic
- \end{itemize}
+\section{Taler}
+
+\begin{frame}{Taler}{Architecture}
+ \begin{center}
+ \begin{tikzpicture}[
+ rect/.style={circle, draw=black},
+ sym/.style={->, shorten >= 2pt, shorten <= 2pt}
+ ]
+ \node[rect](1) {Exchange};
+ \node[rect, below left=1.5cm and 0.7cm of 1](2) {Customer};
+ \node[rect, below right=1.5cm and 0.7cm of 1](3) {Merchant};
+
+ \draw[sym] (1) -- node [midway, left] {\tiny Withdraw coins} (2);
+ \draw[sym] (2) -- node [midway, below] {\tiny Spend coins} (3);
+ \draw[sym] (3) -- node [midway, right] {\tiny Deposit coins} (1);
+
+ \node[left=2cm of 1](E1){};
+ \node[right=2cm of 1](E2){};
+ \draw[sym] (E1) -- node [midway, above] {\tiny Deposit money} (1);
+ \draw[sym] (1) -- node [midway, above] {\tiny Withdraw money} (E2);
+
+
+ \node[above= of 1](A){Auditor};
+ \draw[sym] (A) -- node [midway, right] {\tiny Audit} (1);
+ \end{tikzpicture}
+ \end{center}
\end{frame}
-\begin{frame}{Architecture}{Taler bridge to blockchain}
+\begin{frame}{Taler}{Coins}
+ - Blind signatures
+ - Currency agnostic
+ - Change signature every year, Forget previous transactions (Pruning)
+ - Compatibility ?
+\end{frame}
+
+\begin{frame}{Taler}{Off the chain transaction}
\begin{center}
\begin{tikzpicture}[
rect/.style={rectangle, draw=black},
sym/.style={<->, shorten >= 2pt, shorten <= 2pt}
]
- \node[rect](1) {Taler};
- \node[rect, right= of 1](2) {Depolymerization};
- \node[rect, right= of 2](3) {Blockchain};
+ \node(Tt){Taler};
+ \node[rect, below=0cm of Tt](Tc){Exchange};
+ \node[rect, fit={(Tt) (Tc)}](T){};
+
+ \node[rect, below= of Tc](D) {Depolymerization};
- \draw[sym] (1) -- (2);
- \draw[sym] (2) -- (3);
+ \node[rect, below= of D](Bc){Node};
+ \node[below=0cmof Bc](Bt){Blockchain};
+ \node[rect, fit={(Bt) (Bc)}](B){};
+
+ \draw[sym] (T) -- (D);
+ \draw[sym] (D) -- (B);
\end{tikzpicture}
\end{center}
\end{frame}
-\begin{frame}{Architecture}{depolymerization}
+\section{Depolymerization}
+
+\begin{frame}{Depolymerization}{Metadata}
+ - Metadata
+ - Auditabilité
+\end{frame}
+
+\begin{frame}{Depolymerization}{Architecture}
\begin{center}
\begin{tikzpicture}[
rect/.style={rectangle, draw=black},
sym/.style={<->, shorten >= 2pt, shorten <= 2pt}
]
- \node[rect](1) {Taler};
+ \node[rect](1) {Taler Exchange};
\node[rect, below= of 1](2) {wire\_gateway};
\node[rect, right= of 2](3) {PostgreSQL};
- \node[rect, right= of 3](4) {btc\_wire};
- \node[rect, above= of 4](5) {bitcoind};
+ \node[rect, right= of 3](4) {\#\#\#\_wire};
+ \node[rect, above= of 4](5) {Full Node};
\draw[sym] (1) -- node [midway, right] {\tiny HTTP} (2);
\draw[sym] (2) -- node [midway, above] {\tiny SQL} (3);
@@ -101,6 +126,8 @@
\end{center}
\end{frame}
+\section{btc\_wire}
+
\begin{frame}{btc\_wire}{Architecture}
Three loops
Watcher: Notify other loops when a new block has been mined
@@ -108,12 +135,87 @@
Worker: Sync chain -> Send -> Bounce
\end{frame}
-\begin{frame}{btc\_wire}{Features}
+\begin{frame}{btc\_wire}{Security features}
\begin{itemize}
- \item Handle stuck transactions
- \item Fork resilient
+ \item Reorg resilient
+ \item Handle stuck transaction
\item Adaptive confirmation
\end{itemize}
\end{frame}
+\begin{frame}{btc\_wire}{Reorg resilient}
+\end{frame}
+
+\begin{frame}{btc\_wire}{Handle stuck transactions}
+ \only<1>{We want transactions to be confirmed in a bounded time period}
+ \begin{center}
+ \begin{tikzpicture}[
+ dot/.style={circle,fill,inner sep=1pt,}
+ ]
+
+ % TODO caption with source (Ychart)
+
+ \node (I) {\includegraphics[width=\textwidth]{fee.png}};
+ \only<2->{
+ \node [below left=-2.5mm and -1.5cm of I] (Tx) {\small Tx};
+ \node [dot, above=8.4mm of Tx](D) {};
+ \draw [dotted] (Tx) -- (D);
+ };
+ \only<2>{
+ \node [left=-4.5cm of Tx] (C) {\small conf};
+ \node [dot, above=8.4mm of C](D1) {};
+ \draw [dotted] (C) -- (D1);
+ };
+ \only<3>{
+ \node [left=-17mm of Tx] (Tx1) {\small Tx'};
+ \node [dot, above=15.5mm of Tx1](D1) {};
+ \draw [dotted] (Tx1) -- (D1);
+
+ \node [left=-14.3mm of Tx1] (C) {\small conf};
+ \node [dot, above=15.5mm of C](D2) {};
+ \draw [dotted] (C) -- (D2);
+ };
+
+ \end{tikzpicture}
+ \end{center}
+ \only<1>{However, transaction fees are variable and can only be predicted}
+ \only<2>{When a transaction is sent with a fee too small compared to other transaction,
+ it can take an unlimited amount of time for this transaction to be mined}
+ \only<3>{We monitor pending transaction and bump their fee if they take too muck time to be mined}
+
+\end{frame}
+
+
+\begin{frame}{btc\_wire}{Adaptive confirmation}
+\end{frame}
+
+
+
+\begin{frame}{Related work}
+ \begin{block}{Centralization - Coinbase off-chain sending}
+ \begin{itemize}
+ \item [$+$] Fast and cheap: off chain transaction
+ \item [$-$] Trust in Coinbase: privacy, security \& transparency
+ \end{itemize}
+ \end{block}
+ \begin{block}{Layering - Lightning Network}
+ \begin{itemize}
+ \item [$+$] Fast and cheap: off chain transaction
+ \item [$-$] Incompatible with Bitcoin: require setting up a Bidirectional Payment Channel
+ \item [$-$] Fraud attempts are mitigated via a complex penalty system
+ \end{itemize}
+ \end{block}
+\end{frame}
+
+\begin{frame}{Conclusion}
+ \begin{itemize}
+ \item [$-$] Trust exchange operator or auditors
+ \item [$+$] Fast and cheap, no blockchain
+ \item [$+$] Realtime, ms latency
+ \item [$+$] Scalability, close to 100k txs per second
+ \item [$+$] Ecological
+ \item [$+$] Privacy when it can, transparency when it must (avoid tax evasion and money laundering)
+ \item [$+$] Currency agnostic
+ \end{itemize}
+\end{frame}
\end{document} \ No newline at end of file
diff --git a/docs/taler.png b/docs/taler.png
new file mode 100644
index 0000000..503ae20
--- /dev/null
+++ b/docs/taler.png
Binary files differ