Skip to content

Commit

Permalink
spec: output invariants
Browse files Browse the repository at this point in the history
  • Loading branch information
redshiftzero authored and cronokirby committed Mar 6, 2024
1 parent 86d4e3d commit e69a2ef
Showing 1 changed file with 16 additions and 3 deletions.
19 changes: 16 additions & 3 deletions docs/protocol/src/protocol/invariants.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

# System-Level
# System-Level

#### Invariants

Expand All @@ -13,9 +13,22 @@

## Action-Level

### Community Pool Output
### Output

#### Global Violations
#### Local Invariants

1. The created output note is spendable by the recipient if its nullifier has not been revealed.
1.1 The output note is bound to the recipient.
1.2 The output note can be spent only by the recipient.

#### Local Justification

1.1 The note commitment binds the note to the typed value and the address of the recipient.
1.2 Each note has a unique note commitment if the note blinding factor is unique for duplicate (recipient, typed value) pairs. Duplicate note commitments are allowed on chain since they commit to the same (recipient, typed value) pair.

#### Global Justification

1.1 This action contributes the value of the output note, which is summed as part of the transaction value balance. Value is not created due to system level invariant 1, which ensures that transactions contribute a 0 value balance.

### Spend

Expand Down

0 comments on commit e69a2ef

Please sign in to comment.