Skip to content

Commit beaedfe

Browse files
committed
Clarified ledger block validation with unticked state
1 parent cafd874 commit beaedfe

File tree

1 file changed

+2
-4
lines changed

1 file changed

+2
-4
lines changed

docs/ImpactAnalysis.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -447,14 +447,12 @@ Note that this already anticipates that the new, third level `notValidateTx` wil
447447

448448
In Praos, all transactions to be verified and applied to the ledger state are included directly in the block body. In Leios, ranking blocks (RB) may not include transactions directly, but instead certificate and reference to an endorsement block (EB) that further references the actual transactions. This gives rise to the following requirements:
449449

450-
- **REQ-LedgerResolvedBlockValidation**: When validating a block body, the ledger must be provided with the endorsed transactions to be applied to the ledger state.
450+
- **REQ-LedgerResolvedBlockValidation**: When validating a ranking block body, the ledger must be provided with all endorsed transactions resolved.
451+
- **REQ-LedgerUntickedEBValidation**: When validating a ranking block body, the ledger must validate endorsed transactions against the ledger state before updating it with the new ranking block.
451452
- **REQ-LedgerTxValidationUnchanged**: The actual transaction validation logic should remain unchanged, i.e., the ledger must validate each transaction as it does today.
452453

453454
The endorsement block itself does not contain any additional information besides a list of transaction identifiers (hashes of the full transaction bytes). Hence, the list of transactions is sufficient to reconstruct the EB body and verify the certificate contained in the RB. The actual transactions to be applied to the ledger state must be provided by the caller of the ledger interface, typically the storage layer.
454455

455-
> [!NOTE]
456-
> In fact, the ledger might need to be provided with the previous block's slot: endorsed transactions need to be valid in the endorsing block's slot. Depending on the details of the consenus/ledger interface used for validating new blocks, this either means that the previous block's slot is provided or the block validation happens in two steps: (1) validate endorsed txs using announcing block's slot, (2) validate the certifying block (which may not contain further transactions).
457-
458456
## Certificate verification
459457

460458
In order to verify certificates contained in ranking blocks, the ledger must be aware of the voting committee and able to access their public keys. As defined in by **REQ-RegisterBLSKeys**, SPOs must be able to register their BLS keys to become part of the voting committee. The ledger will need to be able to keep track of the registered keys and use them to do certificate verification. Besides verifiying certificates, individual votes must also be verifiable by other components (e.g. to avoid diffusing invalid votes). This gives rise to:

0 commit comments

Comments
 (0)