1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
% 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}
|