|
| 1 | +# v1.8.1 MultiChain Hourglass Combined |
| 2 | + |
| 3 | +## Release Manager |
| 4 | + |
| 5 | +@ypatil12 @eigenmikem @0xrajath |
| 6 | + |
| 7 | +# Multichain |
| 8 | + |
| 9 | +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: |
| 10 | + |
| 11 | +1. Core Contracts |
| 12 | +2. AVS Contracts |
| 13 | +3. Offchain Infrastructure |
| 14 | + |
| 15 | +The below release notes cover Core Contracts. For more information on the end to end protocol, see our [docs](../docs/multichain/README.md) and [ELIP-008](https://github.com/eigenfoundation/ELIPs/blob/main/ELIPs/ELIP-008.md). |
| 16 | + |
| 17 | +## Highlights |
| 18 | + |
| 19 | +This multichain release only introduces new standards and contracts. As a result, there are no breaking changes or deprecations. |
| 20 | + |
| 21 | +🚀 New Features – Highlight major new functionality |
| 22 | + |
| 23 | +Source-Chain Contracts |
| 24 | +- `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 sets |
| 25 | +- `CrossChainRegistry`: Enables AVSs to register to have their operator stakes transported to supported destination chains |
| 26 | +- `ReleaseManager`: 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 |
| 27 | + |
| 28 | +Destination Chain Contracts |
| 29 | +- `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 BN254 |
| 30 | +- `OperatorTableUpdater`: Updates operator tables in the `CertificateVerifier` to have tasks validated against up-to-date operator stake weights |
| 31 | + |
| 32 | +🔧 Improvements – Enhancements to existing features. |
| 33 | + |
| 34 | +- The multichain protocol has protocol-ized several AVS-deployed contracts, enabling an simpler AVS developer experience. These include: |
| 35 | + - `KeyRegistrar`: Manages BLS and ECDSA signing keys. AVSs no longer have to deploy a `BLSAPKRegistry` |
| 36 | + - `CertificateVerifier`: Handles signature verification for BLS and ECDSA keys. AVSs no longer have to deploy a `BLSSignatureChecker` |
| 37 | + - Offchain Multichain Transport: AVSs no longer have to maintain [avs-sync](https://github.com/Layr-Labs/avs-sync) to keep operator stakes fresh |
| 38 | + |
| 39 | +# Hourglass |
| 40 | + |
| 41 | +The Hourglass release consists of a framework that supports the creation of task-based AVSs. The task-based AVSs are enabled through a `TaskMailbox` core contract deployed to all chains that support a `CertificateVerifier`. Additionally AVSs deploy their `TaskAVSRegistrar`. The release has 3 components: |
| 42 | + |
| 43 | +1. Core Contracts |
| 44 | +2. AVS Contracts |
| 45 | +3. Offchain Infrastructure |
| 46 | + |
| 47 | +The below release notes cover Core Contracts. For more information on the end to end protocol, see our [hourglass docs](https://github.com/Layr-Labs/hourglass-monorepo/blob/master/README.md), [core contract docs](../docs/avs/task/TaskMailbox.md), and [ELIP-010](https://github.com/eigenfoundation/ELIPs/blob/main/ELIPs/ELIP-010.md). |
| 48 | + |
| 49 | +## Highlights |
| 50 | + |
| 51 | +This hourglass release only introduces new contracts. As a result, there are no breaking changes or deprecations. |
| 52 | + |
| 53 | +🚀 New Features |
| 54 | + |
| 55 | +Destination Chain Contracts |
| 56 | +- `TaskMailbox`: A core infrastructure contract that enables task-based AVS execution models. It provides a standardized way for AVSs to create tasks, have operators execute them, and submit verified results on-chain. The contract acts as a mailbox system where task creators post tasks with fees, and operators compete to execute and submit results with proper consensus verification. |
| 57 | + |
| 58 | +# Changelog |
| 59 | + |
| 60 | +## What's Changed |
| 61 | +* feat: multichain by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1494 |
| 62 | +* chore: add final moocow audit by @wadealexc in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1505 |
| 63 | +* fix: strategy manager gap by @0xClandestine in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1508 |
| 64 | +* test(redistribution-changes): passing by @0xClandestine in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1511 |
| 65 | +* docs(redistribution-changes): cleanup by @0xClandestine in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1513 |
| 66 | +* docs: update CHANGELOG by @0xClandestine in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1514 |
| 67 | +* release(redistribution): post audit changes by @0xClandestine in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1461 |
| 68 | +* refactor: remove unnecessary signature validation and change param name by @eigenmikem in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1509 |
| 69 | +* fix: remove unused constants and add gap by @8sunyuan in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1519 |
| 70 | +* feat: key data reverse lookup by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1520 |
| 71 | +* docs: add final audit reports by @antojoseph in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1523 |
| 72 | +* docs: clear up certificate verification by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1515 |
| 73 | +* refactor: cleaner reverts for `ECDSACertificateVerifier` by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1521 |
| 74 | +* fix: internal audit fixes by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1524 |
| 75 | +* docs: update README for v1.5.0 & v1.6.0 by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1526 |
| 76 | +* refactor: table calc interface by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1525 |
| 77 | +* fix: multichain clarity updates by @nadir-akhtar in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1527 |
| 78 | +* test: multichain integration tests by @eigenmikem in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1528 |
| 79 | +* fix: multichain deploy scripts by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1510 |
| 80 | +* chore: update `v1.7.0` changelog by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1529 |
| 81 | +* fix: typo by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1530 |
| 82 | +* feat: invalid staleness period prevention by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1536 |
| 83 | +* feat: cleaner generator updates by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1537 |
| 84 | +* chore: symmetric `BN254` and `ECDSA` checks by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1540 |
| 85 | +* feat: add calculateCertificateDigestBytes to ECDSA cert verifier (#1532) by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1542 |
| 86 | +* refactor: remove transport interface by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1512 |
| 87 | +* chore: clean up natspec round 1 by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1541 |
| 88 | +* fix: storage gap in `CrossChainRegistry` by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1544 |
| 89 | +* test: more integration test scenarios and checks file by @eigenmikem in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1548 |
| 90 | +* fix: prevent `globalTableRoot` certificate replay upon newly instantiated CertificateVerifiers/OperatorTables by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1547 |
| 91 | +* fix: Multichain (Pt 2) fixes by @nadir-akhtar in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1549 |
| 92 | +* chore: update `foundry.toml` to include `forge lint` config by @0xClandestine in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1539 |
| 93 | +* chore: `KeyRegistrar` clarifications by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1551 |
| 94 | +* chore: `CertificateVerifier` clarifications by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1552 |
| 95 | +* chore: `CrossChainRegistry` clarifications by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1553 |
| 96 | +* docs: update hoodi strat addresses by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1556 |
| 97 | +* fix: hardening workflows test by @anupsv in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1554 |
| 98 | +* docs: update for `v1.6.0` and `v1.5.0` by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1558 |
| 99 | +* chore: update bindings by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1565 |
| 100 | +* docs: multichain by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1567 |
| 101 | +* fix: Release Manager internal review fixes by @nadir-akhtar in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1571 |
| 102 | +* feat: hourglass by @0xrajath in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1576 |
| 103 | +* fix: multichain pt1 audit fixes by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1572 |
| 104 | +* feat: update generator script by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1581 |
| 105 | +* fix: remove unused imports by @0xClandestine in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1585 |
| 106 | +* fix: sp multichain audit fixes by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1598 |
| 107 | +* chore: clearer error message by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1602 |
| 108 | +* fix: multichain pt2 audit fixes by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1592 |
| 109 | +* fix(audit): merkle library audit fixes by @nadir-akhtar in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1606 |
| 110 | +* fix: hourglass part 1 and 2 audit fixes by @0xrajath in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1609 |
| 111 | +* fix: include timestamp with BN254CertificateVerifier certificate generation by @nadir-akhtar in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1610 |
| 112 | +* fix: enforce ordering of nonsigners in bn254CV by @eigenmikem in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1615 |
| 113 | +* feat: final testnet upgrade scripts by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1594 |
| 114 | +* feat: electra timing fix by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1620 |
| 115 | +* docs: update readme by @eigenmikem in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1623 |
| 116 | +* fix: task replay directed at same operator set by @0xrajath in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1629 |
| 117 | +* feat: combine v1.7.0 and v1.8.0 upgrade scripts by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1628 |
| 118 | +* chore: zeus script for task replay fix by @0xrajath in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1632 |
| 119 | +* chore: update bindings by @0xrajath in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1634 |
| 120 | +* fix: create generator script; initialization ordering by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-contracts/pull/1630 |
0 commit comments