I represent a compact proof that a particular element is contained within the commitment tree.
@type t() :: %CommitmentTree.Proof{path: integer(), proof: tuple()}
@spec from_noun(Noun.t()) :: :error | {:ok, t()}
@spec new(integer(), tuple()) :: t()
@spec verify( CommitmentTree.Spec.t(), t(), binary(), binary() ) :: boolean()
@spec verifyx( CommitmentTree.Spec.t(), integer(), integer(), tuple(), binary() ) :: {binary(), boolean()}