diff --git a/zip-0221.html b/zip-0221.html index af33d22f..8cb4ac34 100644 --- a/zip-0221.html +++ b/zip-0221.html @@ -18,7 +18,7 @@ Category: Consensus Created: 2019-03-30 License: MIT

Terminology

-

The key words "MUST", "SHOULD", and "MAY" in this document are to be interpreted as described in RFC 2119. 1

+

The key words "MUST", "MUST NOT", "SHOULD", and "MAY" in this document are to be interpreted as described in RFC 2119. 1

The terms "consensus branch", "epoch", and "network upgrade" in this document are to be interpreted as described in ZIP 200. 8

Light client
@@ -510,7 +510,7 @@ License: MIT

Block header semantics and consensus rules

The hashFinalSaplingRoot block header field (which was named hashReserved prior to the Sapling network upgrade) is renamed to hashLightClientRoot, to reflect its usage by light clients.

-

Prior to activation of the Heartwood network upgrade, this existing consensus rule on block headers (adjusted for the renamed field) is enforced: 4

+

Prior to activation of the network upgrade that deploys this ZIP, this existing consensus rule on block headers (adjusted for the renamed field) is enforced: 4

[Sapling onward] hashLightClientRoot MUST be \(\mathsf{LEBS2OSP}_{256}(\mathsf{rt})\) @@ -518,12 +518,8 @@ License: MIT \(\mathsf{rt}\) is the root of the Sapling note commitment tree for the final Sapling tree state of this block.

-

Once the Heartwood network upgrade activates, hashLightClientRoot MUST be set to the value of hashChainHistoryRoot as specified above.

-

The above specification is not well-defined for the genesis block, since then - \(n = 0\) - and there is no block - \(B_{n-1}\) - . For the Zcash Mainnet and Testnet chains, this is not an issue because the Heartwood network upgrade is not active at genesis. In the case of this specification being adopted for a chain that starts with Heartwood active at genesis, the hashLightClientRoot field of the genesis block for that chain MUST be set to all zero bytes.

+

In the block that activates this ZIP, hashLightClientRoot MUST be set to all zero bytes. This MUST NOT be interpreted as a root hash.

+

In subsequent blocks, hashLightClientRoot MUST be set to the value of hashChainHistoryRoot as specified above.

The block header byte format and version are not altered by this ZIP.

@@ -547,7 +543,7 @@ License: MIT

Non-FlyClient Commitments

Additional metadata commitments were chosen primarily to improve light client security guarantees. We specified commitments where we could see an obvious security benefit, but there may be other useful metadata that we missed. We're interested in feedback and suggestions from the implementers of the current light client.

-

We considered adding a commitment to the nullifier vector at each block. We would appreciate comments from light client teams on the utility of this commitment, as well as the proper serialization and commitment format for the nullifier vector.

+

We considered adding a commitment to the nullifier vector at each block. We would appreciate comments from light client teams on the utility of this commitment, as well as the proper serialization and commitment format for the nullifier vector, for possible inclusion in a future upgrade.

Security and Privacy Considerations

@@ -592,7 +593,7 @@ License: MIT

In addition, 2 only analyses these security properties in chain models with slowly adjusting difficulty, such as Bitcoin. That paper leaves their analysis in chains with rapidly adjusting difficulty –such as Zcash or Ethereum– as an open problem, and states that the FlyClient protocol provides only heuristic security guarantees in that case. However, as mentioned in FlyClient Requirements and Recommendations, additional commitments allowing light clients to reason about application of the difficulty adjustment algorithm were added in discussion with an author of the FlyClient paper. The use of these fields has not been analysed in the academic security literature. It would be possible to update them in a future network upgrade if further security analysis were to find any deficiencies.

Deployment

-

This proposal will be deployed with the Heartwood network upgrade. 9

+

On the Zcash Mainnet and Testnet, this proposal will be deployed with the Heartwood network upgrade. 9

Additional Reading