depolymerization

wire gateway for Bitcoin/Ethereum
Log | Files | Refs | Submodules | README | LICENSE

commit fb88a483473e5b3207ff6eac78faca149b4c8103
parent 3429547dca06e9dcc8140581056158163e0ef633
Author: Antoine A <>
Date:   Wed,  2 Feb 2022 20:40:48 +0100

presentation: progress

Diffstat:
Mdocs/presentation.tex | 102++++++++++++++++++++++++++++++++++++++++++-------------------------------------
1 file changed, 54 insertions(+), 48 deletions(-)

diff --git a/docs/presentation.tex b/docs/presentation.tex @@ -1,6 +1,9 @@ \documentclass{beamer} \usepackage{tikz} +\usepackage{ragged2e} + +\apptocmd{\frame}{}{\justifying}{} \usetikzlibrary{positioning,fit} @@ -35,7 +38,7 @@ \begin{itemize} \item \textbf{Delay} block and confirmation delay \item \textbf{Cost} transaction fees - \item \textbf{Scalability} limited amount of transaction per seconds + \item \textbf{Scalability} limited amount of transaction per second \item \textbf{Ecological impact} computation redundancy \item \textbf{Privacy} \end{itemize} @@ -65,19 +68,21 @@ \node[above= of 1](A){Auditor}; - \draw[sym] (A) -- node [midway, right] {\tiny Audit} (1); + \draw[sym] (A) -- node [midway, right] {\tiny Verify} (1); \end{tikzpicture} \end{center} \end{frame} -\begin{frame}{Taler}{Coins} - - Blind signatures - - Currency agnostic - - Change signature every year, Forget previous transactions (Pruning) - - Compatibility ? +\begin{frame}{Taler}{Coins - WIP} + \begin{itemize} + \item Blind signatures + \item Currency agnostic + \item Change signature every year, Forget previous transactions (Pruning) + \item Compatibility ? + \end{itemize} \end{frame} -\begin{frame}{Taler}{Off the chain transaction} +\begin{frame}{Taler}{Off-chain transactions} \begin{center} \begin{tikzpicture}[ rect/.style={rectangle, draw=black, minimum width=28mm}, @@ -129,9 +134,9 @@ \begin{frame}{Depolymerization}{Metadata} \begin{itemize} - \item Metadata are stored alongside depolymerizer on-chain transactions - \item The whole transaction history can be retrieved from the blockchain - \item Easily auditable + \item Metadata are stored in depolymerizer on-chain transactions + \item The whole on-chain transaction history can be retrieved from the blockchain + \item \textbf{Easily auditable} \end{itemize} \end{frame} @@ -151,6 +156,8 @@ \draw[sym] (2) -- node [midway,above] {\tiny SQL} (3); \draw[sym] (3) -- node [midway,above] {\tiny SQL} (4); \draw[sym] (4) -- node [midway,left ] {\tiny RPC} (5); + + \end{tikzpicture} \end{center} Two processes sharing a common database for state and communication. @@ -158,9 +165,9 @@ every supported currency. \end{frame} -\section{btc\_wire} +\section{btc-wire} -\begin{frame}{btc\_wire}{Architecture} +\begin{frame}{btc-wire}{Architecture} \begin{center} \begin{tikzpicture}[ rect/.style={rectangle, draw=black, minimum height=6mm, minimum width=38mm}, @@ -182,7 +189,7 @@ % Worker loop \node[rect, below right= -2mm and 1cm of wa1](wo1) {Wait for notification}; - \node[rect, below=4mm of wo1](wo2) {Synchronize}; + \node[rect, below=4mm of wo1](wo2) {Synchronize chain}; \node[rect, below=4mm of wo2](wo3) {Send}; \node[rect, below=4mm of wo3](wo4) {Bounce}; \node[above=1mm of wo1]{Worker}; @@ -196,25 +203,25 @@ Three concurrent loops \end{frame} -\begin{frame}{btc\_wire}{Metadata} - \begin{block}{Deposit} +\begin{frame}{btc-wire}{Metadata} + \begin{block}{Withdraw} \begin{itemize} - \item Transaction from common wallet software - \item Only 32B - \item \textbf{Fake Segwit Addresses} + \item Transaction from code + \item Only 32B + URI + \item \textbf{OP\_RETURN} \end{itemize} \end{block} \begin{block}{Deposit} \begin{itemize} - \item Transaction from code - \item Only 32B + URI - \item \textbf{OP\_RETURN} + \item Transaction from common wallet software + \item Only 32B + \item \textbf{Fake Segwit Addresses} \end{itemize} \end{block} \end{frame} -\begin{frame}{btc\_wire}{Security features} +\begin{frame}{btc-wire}{Security features} \begin{itemize} \item Reorg resilient \item Adaptive confirmation @@ -222,7 +229,7 @@ \end{itemize} \end{frame} -\begin{frame}{btc\_wire}{Reorg resilient} +\begin{frame}{btc-wire}{Reorg resilient} \begin{center} \begin{tikzpicture}[ block/.style={rectangle,draw=black,fill=black!10,minimum size=7mm}, @@ -276,21 +283,21 @@ \node [right=17mm of 6]{\emph{active}}; \end{tikzpicture} \end{center} - \only<1>{A fork is when concurrent blockchain state coexists. Node will follow the - longest chain replacing recent blocks if necessary. This is a blockchain - reorganisation. In Taler deposit transaction are expected to be - consistent, if a deposit transaction disappear from the blockchain - btc\_wire is comprised.} - \only<2>{As small forks are common, we apply a confirmation delay to handle - the most common disturbances and attack.} - \only<3>{If a reorganisation bigger than the confirmation delay happen, - but no deposit transaction are removed btc\_wire is safe.} - \only<4>{If a confirmed deposit transaction has been removed, it is - possible for a powerful attacker to have created a conflicting transaction. btc\_wire - stop functioning until lost deposit transactions reappeared.} + \only<1>{A fork is when concurrent blockchain states coexist. Nodes will + follow the longest chain, replacing recent blocks if necessary. That is a + blockchain reorganization. Taler expects deposit transactions to be + consistent. If a deposit transaction disappears from the blockchain btc-wire + is comprised.} + \only<2>{As small forks are common, we apply a confirmation delay to + handle the most common disturbances and attacks.} + \only<3>{If a reorganization longer than the confirmation delay happens, + but it does not remove deposits, btc-wire is safe.} + \only<4>{If it removed a confirmed deposit a powerful attacker may have + created a conflicting transaction. btc-wire suspends operation until + lost deposits reappear.} \end{frame} -\begin{frame}{btc\_wire}{Adaptive confirmation} +\begin{frame}{btc-wire}{Adaptive confirmation} \begin{center} \begin{tikzpicture}[ block/.style={rectangle,draw=black,fill=black!10,minimum size=7mm}, @@ -306,7 +313,6 @@ \draw[->] (1) -- (2); % Current - \node[block,conf,right=5mm of 2](3){}; \node[block,right=5mm of 3](4){}; \node[block,right=5mm of 4](5){}; @@ -345,13 +351,12 @@ \end{tikzpicture} \end{center} If we experience a reorganisation once, its plausible for another one of the - same size to happen again. We update the confirmation time, learning from - previous disturbances. + same size to happen again. btc-wire learns from reorganizations by updating + its confirmation time. \end{frame} -\begin{frame}{btc\_wire}{Handle stuck transactions} - \only<1>{We want transactions to be confirmed in a bounded time period} +\begin{frame}{btc-wire}{Handle stuck transactions} \begin{center} \begin{tikzpicture}[ dot/.style={circle,fill,inner sep=1pt,} @@ -381,11 +386,12 @@ }; \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} - + \only<1>{We want confirmation of transactions within a limited time frame. + However, transaction fees are variable, and we can only predict them.} + \only<2>{When we send a transaction with a fee too small compared to other + transactions, it can take an unlimited amount of time for it to be mined.} + \only<3>{You can configure btc-wire to monitor pending transactions and + bump their fees if they take too much time to be mined.} \end{frame} @@ -414,7 +420,7 @@ \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 + \item [$+$] Currency agnostic (payment system) \end{itemize} \end{frame} \end{document} \ No newline at end of file