dash-docs/img/dev/en-hd-private-parent-to-private-child.dot
David A. Harding e21d527523
Fix Formula For Normal HD Key Derivation; Mention Ancestor Key Risk
_includes/guide_wallets.md:

* Fix formula given for normal child key derivation to state that public
  keys must also be provided to the HMAC hash function. This required
  updating both text and images.

* Add one-paragraph warning about ancestor key compromise when the
  ancestor extended public key is compromised along with a descended
  private key.  Update img/dev/en-hd-private-parent-to-private-child.*
  to help illustrate this warning.

en/developer-reference.md:

* Remove %include% of previously-removed file which caused new versions
  of Jekyll to die.
2014-05-17 14:34:28 -04:00

65 lines
1.8 KiB
Text

digraph extended {
size=6.25;
rankdir=LR;
penwidth=1.75;
node [ fontname="Sans", penwidth = 1.75, shape = "box" ];
edge [ fontname="Sans", penwidth = 1.75 ];
graph [ fontname="Sans" ];
nodesep=0.05;
//splines = ortho;
ranksep = 1.0;
subgraph cluster_hard {
style = "invis";
subgraph cluster_h_parent_extended_key {
h_parent_private_key [ label = "Parent Private Key" ];
h_parent_chain_code [ label = "Parent Chain Code" ];
}
subgraph cluster_child_extended_key_else {
child_private_key_hard [ label = "Child Private Key" ];
child_chain_code_hard [ label = "Child Chain Code" ];
}
hmac_hard [ style = "diagonals", label = "One-Way\nHash" ];
i_hard [ label = "Index ≥0x80000000" ];
h_parent_chain_code -> hmac_hard;
h_parent_private_key -> hmac_hard;
i_hard -> hmac_hard;
hmac_hard -> child_private_key_hard;
hmac_hard -> child_chain_code_hard;
h_parent_private_key -> child_private_key_hard;
}
subgraph cluster_norm {
style = "invis"
subgraph cluster_n_parent_extended_key {
n_parent_private_key [ label = "Parent Private Key" ];
n_parent_chain_code [ label = "Parent Chain Code" ];
n_parent_public_key [ label = "Parent Public Key" ];
}
subgraph cluster_child_extended_key_norm {
child_private_key_norm [ label = "Child Private Key" ];
child_chain_code_norm [ label = "Child Chain Code" ];
}
hmac_norm [ style = "diagonals", label = "One-Way\nHash" ];
i_norm [ label = "Index <0x80000000" ];
n_parent_chain_code -> hmac_norm;
n_parent_public_key -> hmac_norm;
i_norm -> hmac_norm;
hmac_norm -> child_private_key_norm;
hmac_norm -> child_chain_code_norm;
n_parent_private_key -> child_private_key_norm [weight = 5];
}
label = "Normal (Top) And Hardened (Bottom) Child Private Key Derivation";
}