mirror of
https://github.com/seigler/dash-docs
synced 2025-07-27 09:46:12 +00:00
_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.
75 lines
2.5 KiB
Text
75 lines
2.5 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, style = "" ];
|
|
graph [ fontname="Sans" ];
|
|
nodesep=0.15;
|
|
splines = false;
|
|
ranksep = 0.7;
|
|
|
|
subgraph cluster_parent {
|
|
parent_private_key [ label = "Private", style = "" ];
|
|
parent_chain_code [ label = "Chain", style = "filled" ];
|
|
parent_public_key [ label = "Public", style = "filled" ];
|
|
|
|
label = "Parent\n "
|
|
}
|
|
|
|
subgraph cluster_child {
|
|
child_private_key [ label = "Private" ];
|
|
child_chain_code [ label = "Chain" ];
|
|
child_public_key [ label = "Public" ];
|
|
|
|
label = "Child\n "
|
|
}
|
|
|
|
subgraph cluster_grandchild {
|
|
grandchild_private_key [ label = "Private", style = "filled" ];
|
|
grandchild_chain_code [ label = "Chain" ];
|
|
grandchild_public_key [ label = "Public" ];
|
|
|
|
label = "Grandchild\n "
|
|
}
|
|
|
|
subgraph cluster_greatgrandchild {
|
|
greatgrandchild_private_key [ label = "Private" ];
|
|
greatgrandchild_chain_code [ label = "Chain" ];
|
|
greatgrandchild_public_key [ label = "Public" ];
|
|
|
|
label = "Great-\nGrandchild"
|
|
}
|
|
|
|
|
|
parent_public_key -> child_public_key;
|
|
parent_public_key -> child_chain_code;
|
|
parent_chain_code -> child_chain_code [ label = "Normal Child\nKey Derivation", weight = 100 ];
|
|
parent_chain_code -> child_public_key;
|
|
parent_chain_code -> child_private_key [ style = "invis" ];
|
|
parent_private_key -> child_private_key [ dir = "back", style = "", label = "Parent Key\nDerivation" ];
|
|
|
|
parent_chain_code -> parent_private_key [ constraint = false ];
|
|
|
|
child_private_key -> grandchild_private_key [ dir = "back", style = "" ];
|
|
child_public_key -> grandchild_chain_code;
|
|
child_public_key -> grandchild_public_key;
|
|
child_chain_code -> grandchild_private_key [ style = "invis" ];
|
|
child_chain_code -> grandchild_public_key;
|
|
child_chain_code -> grandchild_chain_code [ weight = 100 ];
|
|
|
|
child_chain_code -> child_private_key [ constraint = false ]
|
|
|
|
grandchild_private_key -> greatgrandchild_private_key;
|
|
grandchild_public_key -> greatgrandchild_chain_code;
|
|
grandchild_public_key -> greatgrandchild_public_key;
|
|
grandchild_chain_code -> greatgrandchild_private_key;
|
|
grandchild_chain_code -> greatgrandchild_public_key;
|
|
grandchild_chain_code -> greatgrandchild_chain_code [ weight = 100 ];
|
|
|
|
grandchild_chain_code -> grandchild_private_key [ constraint = false, style = "invis" ]
|
|
greatgrandchild_chain_code -> greatgrandchild_private_key [ constraint = false, style = "invis" ]
|
|
|
|
label = "Cross-Generational Key Compromise"
|
|
}
|