go-ethereum/crypto
Csaba Kiraly 35a016346f
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Keeper Build (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
crypto/kzg4844: add RecoverCells with systematic fast path (#35529)
Add RecoverCells, which returns all CellsPerBlob cells per blob from a
sufficient subset.

RecoverBlobs only exposes recovered blobs; serving or persisting the
extension cells of a sparse-blobpool transaction needs the full 128-cell
set. Add RecoverCells, which returns all CellsPerBlob cells per blob
from a sufficient subset.

When the full data domain (cell indices 0..DataPerBlob-1) is present
(the common case for pooled transactions) the blobs are a free
concatenation of the data cells and every cell follows from a systematic
extension via ComputeCells (~2-6ms/blob), skipping the KZG erasure
solve. Otherwise it falls back to the erasure recovery path
(~15-20ms/blob), which now surfaces the library's full extended cell set
instead of discarding it down to blobs as RecoverBlobs does. Both paths
return byte-identical cells in canonical order.

Cells only; cell proofs are never recomputed (callers retain the proofs
shipped with the transaction). Tested on both the gokzg and ckzg
backends, fast and slow paths, against the original cells.

Note: the same fast-path optimization could also be pushed down to gokzg
and ckzg. There are both arguments for (the primitive becomes faster in
some cases, same for the rest of cases) and against (it is not the role
of the crypto lib to be intelligent here), so I went with the wrapper
for now.
2026-08-19 15:19:32 +02:00
..
blake2b crypto: using testing.B.Loop (#32645) 2025-09-19 17:12:41 -06:00
bn256 crypto/bn256: fix comment in MulXi (#34659) 2026-04-13 13:57:11 +02:00
ecies crypto/ecies: correctly return ErrInvalidMessage (#35037) 2026-05-27 16:30:03 +02:00
keccak crypto/keccak: vendor in golang.org/x/crypto/sha3 (#33323) 2026-02-03 14:55:27 -07:00
kzg4844 crypto/kzg4844: add RecoverCells with systematic fast path (#35529) 2026-08-19 15:19:32 +02:00
secp256k1 crypto/secp256k1: fix coordinate check 2026-02-17 17:09:18 +01:00
secp256r1 core/vm: implement EIP-7951 - precompile for secp256r1 (#31991) 2025-07-07 20:59:45 +02:00
signify crypto/signify: fix fuzz test compilation (#33402) 2025-12-13 12:09:07 +08:00
crypto.go cmd/keeper: use the ziren keccak precompile (#32816) 2025-10-20 11:52:02 +02:00
crypto_test.go crypto: fix unit test (#34811) 2026-04-24 10:02:34 +08:00
keccak.go crypto/keccak: vendor in golang.org/x/crypto/sha3 (#33323) 2026-02-03 14:55:27 -07:00
keccak_ziren.go crypto: implement ziren keccak state (#32996) 2025-10-23 14:02:13 +02:00
signature_cgo.go crypto: use pure Go signature implementation in tinygo (#31878) 2025-05-23 11:14:40 +02:00
signature_nocgo.go crypto: add hash length check in nocgo VerifySignature (#33839) 2026-05-10 11:49:17 +02:00
signature_test.go crypto: using testing.B.Loop (#32645) 2025-09-19 17:12:41 -06:00