v1.7.0-rc.0: Multichain
Pre-release
Pre-release
v1.7.0 Multi Chain
The multichain release enables AVSs to launch their services and make verified Operator outputs available on any EVM chain, meeting their customers where they are. AVSs can specify custom operator weights to be transported to any destination chain. The release has 3 components:
- Core Contracts
- AVS Contracts
- Offchain Infrastructure
The below release notes cover Core Contracts. For more information on the end to end protocol, see our docs and ELIP-008.
Release Manager
Highlights
This multichain release only introduces new standards and contracts. As a result, there are no breaking changes or deprecations.
🚀 New Features – Highlight major new functionality
Source-Chain Contracts
KeyRegistrar
: Manages cryptographic keys for operators across different operator sets. It supports both ECDSA and BN254 key types and ensures global uniqueness of keys across all operator setsCrossChainRegistry
: Enables AVSs to register to have their operator stakes transported to supported destination chainsReleaseManager
: Provides a standardized way for AVSs to publish software artifacts (binaries, docker images, etc.) that operators in their operator sets should upgrade to by specified deadlines
Destination Chain Contracts
CertificateVerifier
: Proves the offchain execution of a task, via a Certificate, by the operators of an operatorSet. Two types of key material are supported: ECDSA and BN254OperatorTableUpdater
: Updates operator tables in theCertificateVerifier
to have tasks validated against up-to-date operator stake weights
🔧 Improvements – Enhancements to existing features.
- The multichain protocol has protocol-ized several AVS-deployed contracts, enabling an simpler AVS developer experience. These include:
KeyRegistrar
: Manages BLS and ECDSA signing keys. AVSs no longer have to deploy aBLSAPKRegistry
CertificateVerifier
: Handles signature verification for BLS and ECDSA keys. AVSs no longer have to deploy aBLSSignatureChecker
- Offchain Multichain Transport: AVSs no longer have to maintain avs-sync to keep operator stakes fresh
Changelog
- fix: multichain deploy scripts PR #1510
- test: multichain integration tests PR #1528
- fix: multichain clarity updates PR #1527
- refactor: table calc interface PR #1525
- docs: update README for v1.5.0 & v1.6.0 PR #1526
- docs: update ecdsa vc func
- docs: fix ordering of cv funcs
- chore: use bps_denominator in ecdsa cv
- chore: domain separator no chain id doc
- chore: use uint256 for index
- chore: is spent
- fix: cert verifier typo
- fix: by hash docs consistency
- refactor: cleaner reverts for
ECDSACertificateVerifier
PR #1521 - docs: clear up certificate verification PR #1515
- docs: add final audit reports
- feat: key data reverse lookup PR #1520
- fix: remove unused constants and add gap PR #1519
- refactor: remove unnecessary signature validation and change param name PR #1509
- docs: update CHANGELOG PR #1514
- docs(redistribution-changes): cleanup PR #1513
- test(redistribution-changes): passing PR #1511
- fix: strategy manager gap PR #1508
- refactor: remove redistribution delay PR #1485
- docs(audit): note upgrade rescue flow PR #1467
- fix(audit): assert redistribution recipient != burn address PR #1466
- fix(audit): more reentrancy checks PR #1450
- fix(audit): out-of-gas issue PR #1459
- chore: add final moocow audit
- docs: changelog PR #1504
- feat: multichain deploy scripts PR #1487
- feat: operator table updater pauser PR #1501
- feat: add
publishMetadataURI
PR #1492 - refactor:
globalRootConfirmerSet
->generator
PR #1500 - fix: circular dependency for initial global root update PR #1499
- chore: remove stale bindings PR #1498
- fix: zero length PR #1490
- docs: multichain docs PR #1488
- refactor: remove table calculators PR #1493
- refactor:
KeyRegistry
unit testing PR #1482 - feat: disable root PR #1481
- refactor:
ECDSATableCalculator
testing PR #1479 - refactor: operators can deregister keys if not slashable PR #1480
- refactor:
ECDSACertificateVerifier
testing PR #1478 - refactor:
Bn254CertificateVerifierUnitTests
PR #1476 - feat: ecdsa table calculator PR #1473
- feat: ecdsacv views PR #1475
- refactor:
BN254OperatorTableCalculator
PR #1463 - feat: add
referenceBlockNumber
PR #1472 - feat: release manager PR #1469
- feat: ecdsa cert verifier PR #1470
- feat: add view function for
getGlobalConfirmerSetReferenceTimestamp
PR #1471 - chore: add helper view function PR #1465
- chore: add sig digest functions to interface PR #1464
- refactor:
CrossChainRegistry
PR #1457 - fix: global table update message hash PR #1460
- refactor: sig verification into library PR #1455
- fix:
OperatorTableUpdater
encoding PR #1456 - chore: add latest
referenceTimestamp
to OTC interface PR #1454 - chore: bindings PR #1452
- feat: add operator table updater to CCR PR #1451
- chore: multichain deploy scripts PR #1449
- feat: cross chain registry PR #1439
- chore: update BN254CertificateVerifier PR #1447
- feat: bn254 operator table contracts PR #1429
- feat: KeyRegistrar PR #1421
- feat: operator table updater PR #1436
- feat: bn254 certificate verifier PR #1431
- chore: bindings + interface update PR #1438
- chore: update multichain interfaces PR #1433
- feat: multi chain interfaces PR #1423
New Contributors
- @antojoseph made their first contribution in #1523
Full Changelog: v1.6.0...v1.7.0-rc.0