SPB Git

spb/wp34_uqo

Public
2.4 KB · 32 lines latex
1% Illustrative diagram (not generated from data): cryptographic dependency map of Bitcoin.2\begin{tikzpicture}[3  font=\small, >=Latex,4  prim/.style={draw, rounded corners=2pt, fill=blue!8, text width=3.6cm, minimum height=0.9cm, align=center},5  math/.style={draw, rounded corners=2pt, fill=orange!12, text width=3.6cm, minimum height=0.9cm, align=center},6  app/.style={draw, rounded corners=2pt, fill=green!10, text width=3.6cm, minimum height=0.9cm, align=center},7  assm/.style={draw, dashed, rounded corners=2pt, fill=red!6, text width=3.6cm, minimum height=0.9cm, align=center},8  every edge/.style={draw, ->, thick}]9  \node[assm] (ecdlp) at (0,0) {ECDLP on \secp{}\\ $\Theta(\sqrt{n})$ generic};10  \node[assm] (pre) at (5.4,0) {SHA-256 preimage\\ $\approx 2^{256}$};11  \node[assm] (col) at (10.8,0) {SHA-256 collision\\ $\approx 2^{128}$};12  \node[math] (field) at (0,1.7) {$\F_p$, $p=2^{256}-2^{32}-977$};13  \node[math] (curve) at (0,3.1) {$E:\ y^2=x^3+7$, $\#E=n$ prime};14  \node[math] (md) at (8.1,1.7) {Merkle--Damg\aa rd + 64-step compression $f$};15  \node[prim, text width=3.2cm] (ecdsa) at (-2.5,5.0) {ECDSA\\ (RFC 6979 nonces)};16  \node[prim, text width=3.2cm] (schnorr) at (2.5,5.0) {BIP340 Schnorr\\ (x-only keys, tagged hashes)};17  \node[prim] (hash) at (8.1,3.3) {SHA-256, SHA-256d, RIPEMD-160(SHA-256)};18  \node[prim] (tagged) at (8.1,5.4) {Tagged hashes, Merkle trees, HMAC/PBKDF2 (BIP32/39)};19  \node[app] (addr) at (0,7.3) {Addresses (P2PKH, P2WPKH, P2TR)};20  \node[app] (tx) at (5.4,7.3) {Transaction authorization (scriptSig / witness)};21  \node[app] (pow) at (10.8,7.3) {Proof of work (block header SHA-256d)};22  \node[app, text width=7cm] (cons) at (5.4,8.8) {Consensus: block chain, UTXO set, difficulty};23  \path (ecdlp) edge (field) (field) edge (curve) (curve) edge (ecdsa) (curve) edge (schnorr);24  \path (pre) edge (md) (col) edge (md) (md) edge (hash) (hash) edge (tagged);25  \path (hash.west) edge (schnorr.east) (hash.west) edge[bend right=12] (ecdsa.south east);26  \path (ecdsa) edge (addr) (schnorr) edge (addr) (ecdsa) edge (tx) (schnorr) edge (tx) (tagged) edge (tx) (hash.east) edge[bend right=20] (pow.south) (tagged) edge (addr);27  \path (addr) edge (cons) (tx) edge (cons) (pow) edge (cons);28  \begin{scope}[on background layer]29    \node[fit=(ecdlp)(col), draw=red!50, dashed, rounded corners, inner sep=5pt, label={[red!60!black,font=\footnotesize]below:hardness assumptions studied in this paper (Axes A--C)}] {};30  \end{scope}31\end{tikzpicture}32
Files · main
Menu

Theme