\documentclass[tikz,border=6pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,positioning,calc,fit}
\definecolor{ink}{HTML}{111827}
\definecolor{blue}{HTML}{2563EB}
\definecolor{violet}{HTML}{7C3AED}
\definecolor{green}{HTML}{059669}
\definecolor{red}{HTML}{DC2626}
\definecolor{paper}{HTML}{FFFDF7}
\begin{document}
\begin{tikzpicture}[>=Latex, font=\small, text=ink]
  \fill[paper] (-0.6,-2.2) rectangle (10.4,3.3);
  \node[anchor=west, font=\bfseries] at (0,2.95) {Happy path};
  \node[draw=blue!55, fill=blue!8, rounded corners=3pt, minimum width=1.55cm, minimum height=0.65cm] (h1) at (0.8,2.25) {highQC};
  \node[draw=blue!55, fill=blue!8, rounded corners=3pt, minimum width=1.75cm, minimum height=0.65cm] (h2) at (3.0,2.25) {propuesta};
  \node[draw=blue!55, fill=blue!8, rounded corners=3pt, minimum width=1.55cm, minimum height=0.65cm] (h3) at (5.25,2.25) {2-chain};
  \node[draw=blue!55, fill=blue!8, rounded corners=3pt, minimum width=1.55cm, minimum height=0.65cm] (h4) at (7.5,2.25) {commit};
  \draw[->, blue!70] (h1.east) -- (h2.west);
  \draw[->, blue!70] (h2.east) -- (h3.west);
  \draw[->, blue!70] (h3.east) -- (h4.west);

  \node[anchor=west, font=\bfseries] at (0,1.05) {Unhappy path};
  \foreach \i/\qc/\x/\good in {1/$QC_3$/0/blue,2/$QC_3$/1.75/blue,3/$QC_4$/3.5/green,4/$QC_4$/5.25/red} {
    \node[draw=\good!55, fill=\good!8, rounded corners=3pt, align=center, minimum width=1.25cm] (r\i) at (\x+0.65,0.25) {$R_{\i}$\\\qc};
  }
  \node[draw=violet!40, dashed, rounded corners=3pt, fit=(r1)(r2)(r3)(r4), inner sep=6pt] (qset) {};
  \node[draw=violet!65, fill=violet!8, rounded corners=3pt, minimum width=2.65cm, align=center] (agg) at (8.4,0.25) {$\operatorname{AggQC}$\\ \scriptsize firmas sobre $\operatorname{highQC}_i$};
  \draw[->, violet!75] (qset.east) -- node[above, font=\scriptsize] {$2f+1$} (agg.west);
  \node[draw=green!65, fill=green!10, rounded corners=3pt, align=center, minimum width=3.1cm] (safe) at (8.4,-1.35) {propuesta segura\\ \scriptsize extiende $maxView(QC_i)$};
  \draw[->, green!75] (agg.south) -- node[right, font=\scriptsize] {$\operatorname{highQC}^{\star}$} (safe.north);
  \node[font=\footnotesize, align=center] at (4.8,-2.0) {AggQC no elige por intuicion: prueba que un quorum reporto la vista alta};
\end{tikzpicture}
\end{document}
