\def\hs{\hspace{0.4 cm}} \documentclass[aspectratio=169,usenames,dvipsnames]{beamer} \usetheme{lined} \usecolortheme{beaver} \setbeamertemplate{footline}[default] %\beamertemplatenavigationsymbolsempty \title{\Huge Miniscript\\ \large Safe and Standard Wallets} \author{ } \date{ \includegraphics[scale=0.15]{blockstream-1.png} } \usepackage{colortbl} \usepackage{multirow} \usepackage{tikz} \usepackage{graphicx} \tikzset{ every node/.style = { shape=rectangle, rounded corners, draw, top color = white, label distance=-0.5ex, }, comb/.style = { bottom color = blue!20 }, term/.style = { bottom color = red!50 }, B/.style = { label = {below:\tiny B} }, K/.style = { label = {below:\tiny K} }, V/.style = { label = {below:\tiny V} }, W/.style = { label = {below:\tiny W} }, } \newcommand{\outpoint}[3]{ \framebox{ \texttt{\hash{#1}#2\color{black!60}:#3} } } \newcommand{\txout}[3]{ \framebox{\parbox{10em}{ #1 BTC\\ \texttt{\hash{#2}#3} }} } \newcommand{\hash}[9]{\texttt{\color{black!60}#1\color{black!55}#2\color{black!50}#3\color{black!45}#4\color{black!35}#5\color{black!25}#6\color{black!15}#7\color{black!10}#8\color{black!5}#9}} \newcommand{\witstack}[4]{ \framebox{\parbox{10em}{ \texttt{\hash{#1}#2} }} \framebox{\parbox[t][8em]{10em}{\texttt{ ~\\ \alert{#3}\\ #4 }}} } \setlength{\fboxsep}{1ex} \begin{document} \frame{ \maketitle } \frame { \frametitle{-} \begin{itemize} \item 1Lsbc1NQ6jgLovgwzDmkobV8HocTVghimp\\~\\ \item 3FdNzkJmdX7bWDYKvAZnv1VKQ4PvPobCib\\~\\ \item bc1q2s2kgmf244jmx3exkst94lssum520grsjewxkk \end{itemize} } \frame { \frametitle{-} \texttt{\small pk$_1$ CHECKSIG\\ ~~ NOTIF SIZE 32 EQUALVERIFY SHA256 \hash{e3729fc2}0045e8b5 EQUALVERIFY ENDIF\\ ~~ pk$_2$ CHECKSIG NOTIF pk$_3$ CHECKSIGVERIFY ENDIF\\ ~~ IF pk$_4$ CHECKSIG ELSE 1000 CSV ENDIF } } \frame { \frametitle{-} \begin{center} \begin{tikzpicture}[ level 1/.style = {sibling distance=20em}, level 2/.style = {sibling distance=10em}, level 3/.style = {sibling distance=5em}, ] \node[comb,B] {AND\textsubscript{v}} child { node[comb,V] {OR\textsubscript{c}} child { node[term,B] {c:pk$_1$} } child { node[term,V] {jv:sha256(\texttt{e3729fc20045e}...)} } } child { node[comb,B] {AND\textsubscript{v}} child { node[comb,V] {OR\textsubscript{c}} child { node[term,B] {c:pk$_2$} } child { node[term,V] {vc:pk$_3$} } } child { node[comb,B] {OR\textsubscript{i}} child { node[term,B] {c:pk$_4$} } child { node[term,B] {older(1000)} } } }; \end{tikzpicture} \end{center} } \frame { \frametitle{-} \begin{center} \begin{minipage}[c]{0.4\textwidth} \textbf{Key Management\\~\\} \begin{itemize} \item What is the script?\\~\\ \item Is it secure?\\~\\ \item What keys do I need?\\~\\ \item What will it cost? \end{itemize} \end{minipage} \begin{minipage}[c]{0.4\textwidth} \textbf{Interoperability\\~\\} \begin{itemize} \item Can I use a new device?\\~\\ \item Does my policy fit into the big picture?\\~\\ \item Can I securely multisign/coinjoin with heterogeneous setups? \end{itemize} \end{minipage} \end{center} } \frame { \frametitle{Thank You} \begin{center} Andrew Poelstra\\ \texttt{miniscript@wpsoftware.net}\\~\\~\\ \texttt{\Large https://bitcoin.sipa.be/miniscript}~\\~\\ \texttt{\Large https://github.com/apoelstra/rust-miniscript} \end{center} } \end{document}