Proposals

Let \(e = (o, Q)\) be an entry and \(y\) be the output of a \(Sign\) procedure.

The pair \((e, y)\) is a proposal or a proposal payload.

Moreover, let

  • \(L\) be a ledger where \(|L| \geq \delta_b\),

  • \(v = (I, p, h, x)\) be some proposal-value.

We say that this proposal is a valid proposal matching \(v\) with respect to \(L\) (or simply that this proposal matches \(v\) if \(L\) is unambiguous) if the following conditions are true:

  • \(ValidEntry(L, e) = 1\),

  • \(h = Digest(e)\),

  • \(x = Hash(Encoding(e))\),

  • The seed \(Q\) and seed proof are valid as specified in the following section,

  • Let \((pk, B, r_{fv}, r_{lv}) = Record(L, r - \delta_b, I)\),

    • If \(p = 0\), then \(Verify(y, Q_0, Q_0, pk, 0, 0, 0, 0, 0) \neq 0\),
  • Let \((pk, B, r_{fv}, r_{lv}) = Record(L, r - \delta_b, I)\). Then \(r_{fv} \leq r \leq r_{lv}\).

If \(e\) matches \(v\), we write \(e = Proposal(v)\).