% using the PGF/TikZ package with pdflatex \documentclass{standalone} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} %~ \usepackage[english]{babel} \usepackage[none]{hyphenat}% prevent hyphenation \usepackage{lmodern} \renewcommand*\familydefault{\sfdefault} \usepackage{tikz} \usetikzlibrary{shapes,arrows.meta} \tikzset{>=latex} \begin{document} % \sffamily{} \tikzstyle{block_center} = [rectangle, draw=black, thick, fill=white, text width=12em, text centered, minimum height=5em] \tikzstyle{block_rounded} = [rectangle, draw=black, thick, fill=white, text width=8em, text centered, minimum height=5em, rounded corners] \begin{tikzpicture}[auto] % outlining the flowchart on a grid \matrix[column sep=3ex,row sep=3ex]{ \node [block_center] (0alice1) {Alice creates a PSBT with only her inputs with UTXOs filled in.\\Sends it to Bob.}; & \node [block_center] (1bob1) {Bob adds his inputs and fills in his UTXOs.}; & \node [block_center] (2carol1) {Carol adds her inputs, fills in her UTXOs, adds signatures, and finalizes her inputs.}; \\ \node [block_rounded] (5alice2) {Alice extracts the network serialized transaction and broadcasts it.}; & \node [block_center] (4alice1) {Alice signs the transaction, adds her signatures, and finalizes her inputs.}; & \node [block_center] (3bob2) {Bob signs the transaction, adds his signatures, and finalizes his inputs.}; \\ };% end matrix % connecting nodes with paths \draw [ultra thick, draw=black, -{Stealth[length=8pt]}] (0alice1) edge (1bob1) (1bob1) edge (2carol1) (2carol1) edge (3bob2) (3bob2) edge (4alice1) (4alice1) edge (5alice2); \draw [thin, white, -{Stealth[color=black, fill=white, length=8pt]}] (0alice1) edge (1bob1) (1bob1) edge (2carol1) (2carol1) edge (3bob2) (3bob2) edge (4alice1) (4alice1) edge (5alice2); \end{tikzpicture} \end{document}