EIPs/assets/eip-6493/security
Etan Kissling 52d6d45385
Add EIP-6493: SSZ Transaction Signature Scheme (#6493)
* Update EIP-4844: `hash_tree_root` based transaction hashes

This PR builds on top of prior work from:
- @lightclient at https://github.com/ethereum/EIPs/pull/6385

The signature malleability issue in the original PR is addressed by
reusing the consensus `compute_signing_root` mechanism to link each
hash with the transaction's underlying `chain_id` and `tx_type`.

Note that this makes the transaction hashes different from the plain
`hash_tree_root` values. This means that if the `transactions_root` MPT
is replaced with SSZ (EIP-6404), that the `transaction_hash` would need
to be tracked separately, same as for legacy RLP-based transactions.
This is mainly a cosmetic issue, not a practical one. In an SSZ tx tree,
we could simply include both the HTR as well as the perpetual tx hash.

Cryptographic analysis may be necessary to determine the amount by which
the hash collision probability is increased, if we use different hashing
algorithms for transactions. On the other hand, using different algo for
SSZ transactions reduces the impact of a custom network defining 0x05 as
a RLP transaction that might serialize same as the blob SSZ transaction.

* Fix `signed_tx_hash`

* Use static chain ID for purpose of domain computation

* Extract SSZ signature scheme to EIP for reuse

* Add URL

* Split 4844 changes to separate PR

* Fix

* rm redundant test

* Apply most of @g11tech's review

Co-authored-by: g11tech <develop@g11tech.io>

---------

Co-authored-by: Gavin John <gavinnjohn@gmail.com>
Co-authored-by: g11tech <develop@g11tech.io>
2023-02-26 00:51:43 +00:00
..
collision.py Add EIP-6493: SSZ Transaction Signature Scheme (#6493) 2023-02-26 00:51:43 +00:00