Datachain - ELC For Bridge - BSC

QuantstampRepository at commit 78d1349

Quantstamp reviewed Datachain (Datachain - ELC For Bridge - BSC) on 6 Dec 2024: 6 findings, 0 critical; 5 marked fixed, 1 acknowledged.

No open critical findings
Open the reportOpen Datachain’s security record

Report hosted on certificate.quantstamp.com.

Trustblock does not review code.

Findings6

Statuses are the security firm’s own, from its report.

SeverityOpenAcknowledgedFixed
Critical000
High000
Medium001
Low014
LowChecking Whether Untrusted Epoch Contains Trusted Epoch's Validators Can Cause ELC to HaltAcknowledged

In `verify_header_size()`, when there are headers that come at or after the checkpoint of an untrusted epoch, the function will attempt to validate the untrusted epoch by calling `UntrustedEpoch::try_borrow()`. This will check whether the untrusted epoch contains at least `x/3 + 1` validators from the trusted epoch, where `x` is the size of the trusted validator set. If the untrusted epoch does not contain this threshold number of trusted validators, an error will be returned. However, this does not account for cases that may appear where 1. A new validator set appears that does not contain `x/3 + 1` validators from the trusted epoch (this is possible because the procedure for selecting validators (on mainnet) involves [selecting the top stakers](https://docs.bnbchain.org/bnb-smart-chain/validator/overview/), which may change over time); 2. The only blocks after the new epoch's first block that contain BLS signatures are those that come after the new epoch's checkpoint. In such a case, the ELC may halt due to the aforementioned error.

Contracts in scope

No deployed address is recorded for this audit.

The report names a repository or files. Open the report to see its scope.

Repository and files the report names (44)

  • https://github.com/datachainlab/parlia-elc/light-client/src/errors.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/proto/src/prost/google.protobuf.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/light-client/build.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/proto-compiler/src/main.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/proto-compiler/src/cmd/clone.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/proto/definitions/ibc/lightclients/parlia/v1/parlia.proto at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/.gitignore at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/proto/src/prost/ibc.lightclients.parlia.v1.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/light-client/src/fixture/localnet.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/light-client/src/fixture/mod.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/light-client/src/header/eth_header.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/light-client/src/header/mod.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/light-client/src/message.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/proto/src/google.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/proto/Cargo.toml at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/light-client/src/misc.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/proto/src/IBC_GO_COMMIT at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/proto/src/prost/ibc.core.client.v1.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/proto/src/prost/cosmos.upgrade.v1beta1.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/proto-compiler/src/cmd.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/Cargo.lock at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/light-client/src/client.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/proto-compiler/src/cmd/compile.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/proto-compiler/Cargo.lock at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/light-client/src/misbehaviour.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/rust-toolchain at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/SPEC.md at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/proto-compiler/Cargo.toml at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/light-client/src/header/validator_set.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/light-client/src/commitment.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/light-client/src/client_state.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/proto-compiler/README.md at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/light-client/src/header/vote_attestation.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/light-client/src/lib.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/Cargo.toml at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/light-client/src/header/constant.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/light-client/src/header/epoch.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/light-client/Cargo.toml at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/LICENSE at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/light-client/src/consensus_state.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/.github/workflows/ci.yaml at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/proto/src/lib.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/README.md at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620
  • https://github.com/datachainlab/parlia-elc/light-client/src/header/eth_headers.rs at commit 78d134938e24b05b5faaee71c30e7eae2ca6c620

Part of Datachain’s security record

Datachain
Audits7 audits by 1 firmLast audit Jul 2025, by Quantstamp.
Critical findingsNo open critical findingsAcross 7 reports.
Open Datachain’s security record

Security firm

Quantstamp

236 projects reviewed · 332 reports · latest Oct 2026

See Quantstamp’s audits

Something wrong on this page? A missing report, a wrong date, a finding that was fixed since. Tell us and we check it against its source.

Tell us