Schnorr signatures don't have the ecdsa malleability vulnerability, also we protect against malleable signatures by tracking consumed VAAs using their body hash. The check was implemented because the author assumed that ecrecover in the EVM does not accept s < HALF_Q values for malleability protection. There were 2 misconceptions: 1. pubkey_x is passed in as r and not s, 2. the check is not enforced in the precompiled evm instruction. |
||
---|---|---|
.. | ||
cmd/guardiand | ||
k8s | ||
pkg | ||
third_party/chainlink | ||
DEVELOP.md | ||
Dockerfile | ||
README.md | ||
Tiltfile | ||
dev-install.sh | ||
go.mod | ||
go.sum |
README.md
The bridge
The bridge is a lightweight, distributed cross-chain notary. Read the the protocol spec first.
-
Leaderless. There is no synchrony/consensus or proposers - the bridge merely observes finalized transactions on one chain, signs them using its piece of the joint key, and pushes its signature to an off-chain peer-to-peer network. Once 2/3+ of the guardian set agree, the threshold signature is valid and this jointly signed proof (which we call a Verifiable Action Approval or VAA) can be posted to the other chain to release or mint funds that were locked/burned on the first.
-
Stateless. Nodes do not keep persistent state about transactions they observed.