diff --git a/rendered/zip-0227.html b/rendered/zip-0227.html index e839ed4a6..139369b2a 100644 --- a/rendered/zip-0227.html +++ b/rendered/zip-0227.html @@ -73,7 +73,7 @@
Batch verification MAY be used. Precomputation MAY be used if and only if it produces equivalent results; for example, for a given verification key \(pk\) and @@ -120,7 +120,7 @@ \(k\) bytes, and \(\mathbb{B}^{\mathbb{Y}^{[\mathbb{N}]}}\) - denotes the type of byte sequences of arbitrary length, as defined in the Zcash protocol specification 21.
+ denotes the type of byte sequences of arbitrary length, as defined in the Zcash protocol specification 22.The issuance authorizing key generation algorithm and the issuance validating key derivation algorithm are defined in the Issuance Key Derivation section, while the corresponding signing and validation algorithms are defined in the Issuance Authorization Signing and Validation section.
where the \(\textit{PubKey}\) - algorithm is defined in BIP 340 20. Note that the byte representation of + algorithm is defined in BIP 340 21. Note that the byte representation of \(\mathsf{ik}\) is in big-endian order as defined in BIP 340.
It is possible for the @@ -238,7 +238,7 @@ \(\mathsf{Sign}\) algorithm is defined in BIP 340 and \(a\) - denotes the auxiliary data used in BIP 340 20. Note that + denotes the auxiliary data used in BIP 340 21. Note that \(\mathsf{IssueAuthSig}.\!\mathsf{Sign}\) could return \(\bot\) @@ -262,7 +262,7 @@
where the \(\mathsf{Verify}\) - algorithm is defined in BIP 340 20.
+ algorithm is defined in BIP 340 21.The relations between the Asset Identifier, Asset Digest, and Asset Base are shown in the following diagram:
In addition to the parameters defined in the Fee calculation section of ZIP 317 20, the OrchardZSA protocol upgrade defines the following additional parameters:
+Parameter | +Value | +
---|---|
+ \(issuance\_fee\) + | ++ \(100 \cdot marginal\_fee\) + per issuance action (as defined below) | +
Wallets implementing this specification SHOULD use a conventional fee, viz. + \(zsa\_conventional\_fee\) + , that is calculated in zatoshis. Additional definitions that are used in the formula for the calculation are in the table below:
+Input | +Units | +Description | +
---|---|---|
+ \(nOrchardActions\) + | +number | +the number of OrchardZSA transfer actions (including ZEC actions) | +
+ \(nTotalOutputsZSAIssuance\) + | +number | +the total number of OrchardZSA issuance outputs (added across issuance actions) | +
+ \(nCreateActions\) + | +number | +the number of OrchardZSA issuance actions that issue a Custom Asset that is not present in the Global Issuance State | +
The other inputs to this formula are taken from transaction fields defined in the Zcash protocol specification 28 and the global state. They are defined in the Fee calculation section of ZIP 317 20. Note that + \(nOrchardActions\) + , that is used in the computation of + \(logical\_actions\) + , is redefined in the above table, and now combines the actions for native ZEC as well as OrchardZSA transfer actions for Custom Assets.
+The formula for the computation of the + \(zsa\_logical\_actions\) + (with the updated computation of + \(logical\_actions\) + as described above) is:
+The formula for the computation of the + \(zsa\_conventional\_fee\) + is:
+It is not a consensus requirement that fees follow this formula; however, wallets SHOULD create transactions that pay this fee, in order to reduce information leakage, unless overridden by the user.
+The OrchardZSA fee calculation accounts for the additions to the Global Issuance State that are required for the OrchardZSA protocol. Every newly created Custom Asset adds a new row to the Global Issuance State. Subsequent issuance, finalization, or burn of existing Custom Assets only changes the values in the corresponding row.
+This explains the need for a higher fee for the creation of entirely new Custom Assets, in order to disincentivize the creation of "junk" assets.
+We choose to maintain the native ZEC Asset as the primary token for the Zcash blockchain, similar to how ETH is needed for ERC20 transactions to the benefit of the Ethereum ecosystem.
+An alternative proposal for the OrchardZSA fee mechanism that was not adopted was to adopt a new type of fee, denominated in the custom Asset being issued or transferred. In the context of transparent transactions, such a fee allows miners to “tap into” the ZSA value of the transactions, rather than the ZEC value of transactions. However when transactions are shielded, any design that lifts value from the transaction would also leak information about it.
+Wallets need to communicate the names of the Assets in a non-confusing way to users, since the byte representation of the Asset Identifier would be hard to read for an end user. Possible solutions are provided in the Specification: Asset Identifier section.
@@ -757,7 +840,7 @@For bridging purposes, the secure method of off-boarding Assets is to burn an Asset with the burning mechanism in ZIP 226 10. Users should be aware of issuers that demand the Assets be sent to a specific address on the Zcash chain to be redeemed elsewhere, as this may not reflect the real reserve value of the specific Wrapped Asset.
+For bridging purposes, the secure method of off-boarding Assets is to burn an Asset with the burning mechanism in ZIP 226 10. Users should be aware of issuers that demand the Assets be sent to a specific address on the Zcash chain to be redeemed elsewhere, as this may not reflect the real reserve value of the specific Wrapped Asset.
The fee mechanism described in this ZIP will follow the mechanism described in ZIP 317, and is described in ZIP 230 17.
+The fee mechanism described in this ZIP will follow the mechanism described in ZIP 317, and is described in ZIP 230 17.
20 | +ZIP 317: Proportional Transfer Fee Mechanism, Fee calculation | +
---|
21 | BIP 340: Schnorr Signatures for secp256k1 |
---|
21 | +22 | Zcash Protocol Specification, Version 2024.5.1 [NU6]. Section 2: Notation |
---|
22 | +23 | Zcash Protocol Specification, Version 2024.5.1 [NU6]. Section 3.1: Payment Addresses and Keys |
---|
23 | +24 | Zcash Protocol Specification, Version 2024.5.1 [NU6]. Section 4.2.3: Orchard Key Components |
---|
24 | +25 | Zcash Protocol Specification, Version 2024.5.1 [NU6]. Section 4.10: SIGHASH Transaction Hashing |
---|
25 | +26 | Zcash Protocol Specification, Version 2024.5.1 [NU6]. Section 5.4.9.8: Group Hash into Pallas and Vesta |
---|
26 | +27 | Zcash Protocol Specification, Version 2024.5.1 [NU6]. Section 5.6.4.2: Orchard Raw Payment Addresses |
---|
27 | +28 | Zcash Protocol Specification, Version 2024.5.1 [NU6]. Section 7.1: Transaction Encoding and Consensus |
---|
In addition to the parameters defined in the Fee calculation section of ZIP 317 13, the OrchardZSA protocol upgrade defines the following additional parameters:
-Parameter | -Value | -
---|---|
- \(issuance\_fee\) - | -- \(100 \cdot marginal\_fee\) - per issuance action (as defined below) | -
Wallets implementing this specification SHOULD use a conventional fee, viz. - \(zsa\_conventional\_fee\) - , that is calculated in zatoshis. Additional definitions that are used in the formula for the calculation are in the table below:
-Input | -Units | -Description | -
---|---|---|
- \(nOrchardActions\) - | -number | -the number of OrchardZSA transfer actions (including ZEC actions) | -
- \(nTotalOutputsZSAIssuance\) - | -number | -the total number of OrchardZSA issuance outputs (added across issuance actions) | -
- \(nCreateActions\) - | -number | -the number of OrchardZSA issuance actions that issue a Custom Asset that is not present in the Global Issuance State | -
The other inputs to this formula are taken from transaction fields defined in the Zcash protocol specification 6 and the global state. They are defined in the Fee calculation section of ZIP 317 13. Note that - \(nOrchardActions\) - , that is used in the computation of - \(logical\_actions\) - , is redefined in the above table, and now combines the actions for native ZEC as well as OrchardZSA transfer actions for Custom Assets.
-The formula for the computation of the - \(zsa\_logical\_actions\) - (with the updated computation of - \(logical\_actions\) - as described above) is:
-The formula for the computation of the - \(zsa\_conventional\_fee\) - is:
-It is not a consensus requirement that fees follow this formula; however, wallets SHOULD create transactions that pay this fee, in order to reduce information leakage, unless overridden by the user.
-The OrchardZSA fee calculation accounts for the additions to the Global Issuance State that are required for the OrchardZSA protocol. Every newly created Custom Asset adds a new row to the Global Issuance State. Subsequent issuance, finalization, or burn of existing Custom Assets only changes the values in the corresponding row.
-This explains the need for a higher fee for the creation of entirely new Custom Assets, in order to disincentivize the creation of "junk" assets.
-We choose to maintain the native ZEC Asset as the primary token for the Zcash blockchain, similar to how ETH is needed for ERC20 transactions to the benefit of the Ethereum ecosystem.
-An alternative proposal for the OrchardZSA fee mechanism that was not adopted was to adopt a new type of fee, denominated in the custom Asset being issued or transferred. In the context of transparent transactions, such a fee allows miners to “tap into” the ZSA value of the transactions, rather than the ZEC value of transactions. However when transactions are shielded, any design that lifts value from the transaction would also leak information about it.
-TODO