George Kadianakis
86e15764ad
EIP4844: Update cryptography API ( #3038 )
...
This commit changes the public API of the KZG library to the following high-level API:
```
- verify_kzg_proof()
- compute_aggregate_kzg_proof()
- verify_aggregate_kzg_proof()
- blob_to_kzg_commitment()
```
compared to the previous much more low-level API:
```
- compute_powers()
- matrix_lincomb()
- lincomb()
- bytes_to_bls_field()
- evaluate_polynomial_in_evaluation_form()
- verify_kzg_proof()
- compute_kzg_proof()
```
This means that all the cryptographic logic (including Fiat-Shamir) is now isolated and hidden in the KZG library and the `validator.md` file ends up being significantly simplified, only calling high-level KZG functions.
Some additional things that this commit does:
- Moves all EIP4844 cryptography into polynomial-commitments.md
- Improves the Fiat-Shamir stack by removing the need for SSZ and by introducing simple domain separators
Co-authored-by: Kevaundray Wedderburn <kevtheappdev@gmail.com>
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
Co-authored-by: Dankrad Feist <mail@dankradfeist.de>
2022-11-03 17:01:32 +02:00
terence tsao
71775c6e87
EIP4844: Remove signed blobs
2022-10-27 08:10:32 -07:00
Hsiao-Wei Wang
af8c5bf532
Merge pull request #3046 from terencechain/couple-block-sidecar
...
EIP4844: couple beacon block and blob sidecar for p2p
2022-10-26 23:51:23 +08:00
terence tsao
e2d0a4fa9a
Fix ToC and test
2022-10-22 08:36:46 -07:00
terence tsao
9f4ae4c6ee
Update validator spec with `SignedBeaconBlockAndBlobsSidecar`
2022-10-21 17:33:55 -07:00
terence tsao
dfa5ac8008
@protolambda's feedback, `SignedBlobsSidecar` -> `BlobsSidecar`
2022-10-18 11:34:14 -07:00
terencechain
cab2e3ef9a
Describe sidecar and block are recieved together
...
Co-authored-by: protolambda <proto@protolambda.com>
2022-10-18 11:23:19 -07:00
terencechain
779d9be66a
Compare sidecar slot with block slot
...
Co-authored-by: protolambda <proto@protolambda.com>
2022-10-18 11:22:43 -07:00
terence tsao
b128148a17
Modify `MIN_EPOCHS_FOR_BLOBS_SIDECARS_REQUESTS` to 18 days
2022-10-17 16:24:19 -07:00
terence tsao
96b90200b7
Fix ToC
2022-10-17 16:08:59 -07:00
terence tsao
eb5a2c2741
Couple beacon block and blob sidecar for p2p
2022-10-17 15:16:38 -07:00
Hsiao-Wei Wang
3552e2f6e8
Merge pull request #3018 from ethereum/bump-dep
...
Bump dep packages version and fix lint issues
2022-10-07 00:21:51 +08:00
Ramana Kumar
807650e8a1
Fix some type annotations for blobs
...
blobs should not be Sequence[BLSFieldElement], it should be
Sequence[Sequence[BLSFieldElement]]. But we can be more specific and use
Sequence[Blob].
2022-10-01 15:25:47 +01:00
Danny Ryan
6b9e65fab6
Merge pull request #3019 from terencechain/fix-eip4844
...
EIP4844: various fixes
2022-09-30 10:51:42 -06:00
Danny Ryan
9dfb1897a4
Merge pull request #3004 from Inphi/inphi/eip4844-fee-mkt
...
EIP-4844: Update ExecutionPayloadHeader
2022-09-30 08:16:53 -06:00
terencechain
779e6e7b7e
Update specs/eip4844/p2p-interface.md
...
Co-authored-by: Lion - dapplion <35266934+dapplion@users.noreply.github.com>
2022-09-29 13:43:28 -07:00
terence tsao
06c91e4843
Try a different format for epoch
2022-09-29 07:55:50 -07:00
terence tsao
93cb17dc7f
Eip4844: various fixes
2022-09-29 07:36:39 -07:00
Hsiao-Wei Wang
44424c4080
Bump dep packages version and fix lint issues
2022-09-28 12:38:21 +08:00
Ramana Kumar
9ac605cc5e
Fix incorrect comment
...
bit-reversal permutation is not idempotent
2022-09-27 12:13:56 +01:00
George Kadianakis
d197ed1451
EIP4844: Introduce bytes_to_bls_field() helper
...
Improves separation between BLS cryptography and Ethereum SSZ logic.
Now the BLS library just implements bytes_to_bls_field(). Then hash_to_bls_field() does the Ethereum SSZ magic and
calls bytes_to_bls_field().
2022-09-26 19:01:01 +03:00
George Kadianakis
f4ba8b55ee
EIP4844: Implement reverse bit ordering in KZG commitments
...
Co-authored-by: Dankrad Feist <mail@dankradfeist.de>
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-09-26 16:39:16 +03:00
Alex Stokes
189d61e386
Merge pull request #3008 from terencechain/patch-137
...
eip4844: signed_blobs_header -> signed_blobs_sidecar
2022-09-22 15:13:14 +02:00
terencechain
1bb863b2a6
eip4844: signed_blobs_header -> signed_blobs_sidecar
2022-09-21 14:49:18 -07:00
inphi
ceee7bfbf1
EIP-4844: Fee market updates to execution
2022-09-21 09:14:46 -04:00
Dankrad Feist
b35155005b
Rename matrix_lincomb to vector_lincomb and lincomb to g1_lincomb
2022-09-19 20:16:19 +01:00
Dankrad Feist
b63ed22588
Fix signature of compute_aggregated_poly_and_commitment
2022-09-19 20:10:48 +01:00
Hsiao-Wei Wang
109250b963
Replace `hash_tree_root(x)` with `hash(ssz_serialize(x))`
2022-08-22 16:00:40 +08:00
terencechain
cc9a5fe61e
EIP4844: fix format
2022-08-17 06:48:05 -07:00
Hsiao-Wei Wang
0e82acfd61
Merge pull request #2945 from Inphi/eip4844-nit
...
Fix Polynomial container size
2022-07-22 19:48:02 +08:00
Michael de Hoog
b2c647f2b2
Remove triple m
2022-07-21 11:11:30 -05:00
inphi
9016b92691
Fix Polynomial container size
2022-07-21 01:58:22 -04:00
Hsiao-Wei Wang
ec980dae4c
Rework `blobs_sidecar` propagation guide
2022-07-16 01:13:31 +08:00
Hsiao-Wei Wang
400e1e54c1
Fix EIP4844 `create_genesis_state`, `EIP4844_FORK_VERSION`, and `config_fork_epoch_overrides`
...
`config_fork_epoch_overrides`: since Capella and EIP4844 are in parallel, need to check if the field exists
Update `compute_fork_version`
2022-07-16 01:13:25 +08:00
Hsiao-Wei Wang
808f9c7f7f
Use `validate_*` for the valdiation functions that return `None`
2022-07-16 00:54:01 +08:00
Hsiao-Wei Wang
4176781123
PR feedback from @djrtwo
2022-07-15 23:37:32 +08:00
Hsiao-Wei Wang
a205e9314d
Make block proposal direction more clear
2022-07-15 23:33:31 +08:00
George Kadianakis
5b9bf41de6
EIP-4844: Further improvements on the spec
...
- Move constants around
- Implement missing functions to make the spec executable
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-13 13:13:30 +03:00
George Kadianakis
221f3687bd
EIP-4844: Improve the cryptographic parts of the spec
...
- Move more code into polynomial-commitments.md
- Implement aggregated sidecar verification logic from PR #2915
- Rename `kzgs` to `kzg_commitments`
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-13 13:12:31 +03:00
Hsiao-Wei Wang
d4a2bdcea0
Merge pull request #2915 from asn-d6/consensus-4844-proofs-optimization
...
Optimizing EIP-4844 block validation (using KZG proofs)
2022-06-26 13:55:17 +02:00
Hsiao-Wei Wang
a3339c7b7f
PR suggestion from @Inphi
2022-06-25 00:13:20 +08:00
Hsiao-Wei Wang
94da861d9c
Fix ToC
2022-06-23 18:44:37 +08:00
Hsiao-Wei Wang
0ab280d396
minor suggestions
2022-06-23 18:40:09 +08:00
George Kadianakis
e7e520791d
Use Python's pow() in bls_modular_inverse().
2022-06-22 15:42:03 +03:00
George Kadianakis
534a9d1d95
Move EIP-4844 cryptography code to its own file
2022-06-22 15:42:03 +03:00
Hsiao-Wei Wang
8a70295a84
Fix ToC
2022-06-20 21:26:41 +08:00
George Kadianakis
4be0b9d6bc
Add needed math/crypto functions to validate KZG aggregated proofs
...
All code pretty much straight up copied from https://github.com/ethereum/EIPs/pull/5088
2022-06-14 16:37:08 +03:00
George Kadianakis
e4c75d67ce
Introduce high-level logic of new efficient block validation
2022-06-14 16:37:08 +03:00
inphi
dbac7b1582
EIP-4844: Remove shard field from BlobsSidecar
2022-06-13 16:32:18 -04:00
Murphy Law
a3128b8c57
EIP-4844: fix a typo ( #2898 )
2022-05-31 08:40:06 -06:00