diff options
author | Antoine A <> | 2022-01-27 17:55:26 +0100 |
---|---|---|
committer | Antoine A <> | 2022-01-27 17:55:26 +0100 |
commit | 4a83288341cca887481a09b77b8ac30264856846 (patch) | |
tree | 2e2401653eeb2e6d4ec53d4b3fd85e605b1c0115 /docs | |
parent | 906264dbbae37428d96d07d993c1466bc908df8d (diff) | |
download | depolymerization-4a83288341cca887481a09b77b8ac30264856846.tar.gz depolymerization-4a83288341cca887481a09b77b8ac30264856846.tar.bz2 depolymerization-4a83288341cca887481a09b77b8ac30264856846.zip |
Presentation draft 2
Diffstat (limited to 'docs')
-rw-r--r-- | docs/fee.png | bin | 0 -> 25200 bytes | |||
-rw-r--r-- | docs/presentation.tex | 200 | ||||
-rw-r--r-- | docs/taler.png | bin | 0 -> 24424 bytes |
3 files changed, 151 insertions, 49 deletions
diff --git a/docs/fee.png b/docs/fee.png Binary files differnew file mode 100644 index 0000000..283c286 --- /dev/null +++ b/docs/fee.png 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 Binary files differnew file mode 100644 index 0000000..503ae20 --- /dev/null +++ b/docs/taler.png |