diff --git a/tips/TIP-0045/tip-0045.md b/tips/TIP-0045/tip-0045.md index 7ba973b0b..2d9f2607f 100644 --- a/tips/TIP-0045/tip-0045.md +++ b/tips/TIP-0045/tip-0045.md @@ -215,7 +215,14 @@ A **merkle proof** is computed as follows: ### Root Computation -The **merkle root** is the result of `Hash Subtree(Leaves)`. +The **merkle root** can be computed from two different inputs: + +- From an array of `Leaves` by calling `Hash Subtree(Leaves)`. +- From a merkle proof by calling `Hash Component` the top-level component of the proof, where `Hash Component` is + defined as: + - If the component is a `Leaf Hash`, return its field `Hash`. + - If the component is a `Value Hash`, return its field `Hash`. + - If the component is a `Node` return `Hash Node(Hash Component(Left), Hash Component(Right))`. # Detailed design