Let $\t{Bulla}$ be defined as in the section Bulla Commitments.
Let $ℙₚ, 𝔽ₚ, \mathcal{X}, \mathcal{Y}, \t{𝔹⁶⁴2𝔽ₚ}$ be defined as in the section Pallas and Vesta.
Let $\t{Coin}$ be defined as in the section Coin.
The vesting configuration contains the main parameters that define the vesting operation:
Define the vesting configuration $VC$ params: $$ \begin{aligned} \t{Params}\t{VC}.\t{VAPK} &∈ ℙₚ \ \t{Params}\t{VC}.\t{VPK} &∈ ℙₚ \ \t{Params}\t{VC}.\t{SPK} &∈ ℙₚ \ \t{Params}\t{VC}.τ &∈ 𝔽ₚ \ \t{Params}\t{VC}.T &∈ ℕ₆₄ \ \t{Params}\t{VC}.C &∈ ℕ₆₄ \ \t{Params}\t{VC}.S &∈ ℕ₆₄ \ \t{Params}\t{VC}.E &∈ ℕ₆₄ \ \t{Params}_\t{VC}.V &∈ ℕ₆₄ \end{aligned} $$
TODO: add model definition path
$$ \t{Bulla}\t{VC} : \t{Params}\t{VC} × 𝔽ₚ → 𝔽ₚ $$ $$ \begin{aligned} \t{Bulla}\t{VC}(p, b\t{VC}) = \t{Bulla}( \ \mathcal{X}(p.\t{VAPK}), \mathcal{Y}(p.\t{VAPK}), \ \mathcal{X}(p.\t{VPK}), \mathcal{Y}(p.\t{VPK}), \ \mathcal{X}(p.\t{SPK}), \mathcal{Y}(p.\t{SPK}), \ p.τ, \ ℕ₆₄2𝔽ₚ(p.T), \ ℕ₆₄2𝔽ₚ(p.C), \ ℕ₆₄2𝔽ₚ(p.S), \ ℕ₆₄2𝔽ₚ(p.E), \ ℕ₆₄2𝔽ₚ(p.V), \ b_\t{VC} \ ) \end{aligned} $$
Note: Since a vesting configuration bulla is derived using a random blinding factor, it's safe to use the same parameters to generate different vesting configurations.
Time limits on vesting configurations are expressed in 1 day windows. Since proofs cannot guarantee which block they get into, we therefore must modulo the block height a certain number which we use in the proofs.
TODO: add definition path
which can be used like this:
TODO: add usage example path