Chronicle Protocol is one of the oldest and most battle-tested oracle systems in DeFi — having originally been built and operated as MakerDAO’s proprietary price feed infrastructure since 2017 (before Chainlink even existed) and securing the DAI stablecoin (which at various points backed $5-10B of collateral with oracle-derived prices) without a single successful oracle manipulation attack across 7+ years of operation. What distinguishes Chronicle from Chainlink is its Scribe signature aggregation model: rather than having each validator submit their price on-chain independently (expensive; N transactions per update) or aggregating off-chain with a threshold signature scheme (Chainlink OCR: Byzantine fault-tolerant off-chain committee: 1 transaction per update), Chronicle validators each sign a price observation with their Ethereum private key off-chain, and these ECDSA signatures are aggregated on-chain using Schnorr signature math into a single, compact signature that can be verified in a single EVM ecrecover call — dramatically reducing on-chain verification gas vs. verifying N separate signatures — while publicly logging which specific validators signed each price update (full traceability: unlike: Chainlink: OCR: where: the: specific: nodes: who: signed: are: less: transparent). Chronicle spun out from MakerDAO in mid-2023 under the stewardship of Niklas Kunkel (former MakerDAO Oracle Core Unit lead) and has since expanded beyond the Maker ecosystem to offer its price feed infrastructure to external protocols.
Key Facts
- Origin: MakerDAO’s internal oracle system (2017); spun out as independent protocol: mid-2023
- Founder/Steward: Niklas Kunkel (former MakerDAO Oracle Core Unit Lead)
- Validator set: Permissioned (whitelisted); ~20-30 active Scribes (validators) drawn from: Infura, Gitcoin, ETH Denver, DeFi Llama, Gnosis Chain, MakerDAO (Sky), Chromatic Protocol, 0x, and others
- Signature model: Schnorr aggregation (called “Scribe”) — on-chain: 1 EVM ecrecover: verification: same: gas: regardless: of: validator: count
- Security record: 0 protocol-level exploits since 2017
- Primary users: MakerDAO / Sky Protocol (DAI), Spark Protocol (aave-fork for Sky), and growing external integrations
- Gas efficiency: ~60-80% cheaper: to: verify: than: equivalent: Chainlink: multi-signature: aggregation: on: Ethereum: mainnet
- Price feeds: ETH/USD, BTC/USD, stETH/USD, and other major pairs; growing list as external integrations expand
History: MakerDAO’s Oracle System
The following sections cover this in detail.
2017-2021: Foundation
When MakerDAO launched the Dai stablecoin system:
- No: Chainlink: existed (Chainlink: mainnet: launched: September: 2019)
- MakerDAO: built: its: own: oracle: system: from: scratch: to: price: collateral: (ETH: at: the: time)
- Original: model: “Oracle Security Module” (OSM): whitelisted: “price pokers”: submit: prices: on-chain: OSM: delays: price: by: 1: hour: (security: mechanism: allows: MKR: governance: to: freeze: oracle: if: attack: detected: before: price: takes: effect)
- Whitelisted: price: pokers: included: known: Maker: ecosystem: entities: and: eventually: external: validators
2021-2023: Evolution
- MakerDAO: Oracle: Core: Unit: (OCU): formal: working: group: maintaining: oracle: infrastructure
- Niklas: Kunkel: leads: OCU: develops: the: Scribe: Schnorr: aggregation: system: to: improve: gas: efficiency
- Scribe: smart: contract: deployed: on: MakerDAO: production: feeds: replacing: older: median: aggregation
- System: secures: $5-8B: of: DAI: collateral: peak: TVL: without: incident
2023: Spinout as Chronicle Protocol
- Niklas Kunkel: spins: out: from: MakerDAO: founding: Chronicle: Protocol: as: independent: entity
- Goal: offer: Chronicle’s: battle-tested: oracle: infrastructure: to: external: protocols: not: just: Maker
- Maintains: deep: ties: to: MakerDAO / Sky: (primary: customer) while: expanding: to: others
- Brand: launch: late: 2023: with: Chronicle: branding + new: website + SDK
Technical Architecture: Scribe
The protocol is built around the following components.
The Scribe Signature Model
Traditional Chainlink OCR (for comparison):
- 31: nodes: report: price: off-chain: committee: (libp2p: P2P) aggregates: to: median
- Leader: posts: a: single: report: on-chain: signed: by: ≥21: nodes
- On-chain: aggregator: verifies: the: multi-party: report: (must: parse: 21+ ECDSA: signatures: in: EVM: loop: expensive: ~450-600K: gas)
Chronicle Scribe model:
- Scribes (validators): each: observe: price: from: their: data: sources
- Scribes: sign: their: price: + chain: ID: + feed: ID: with: their: Ethereum: private: key: off-chain
- A: designated: submitter: (anyone: permissioned: to: relay): collects: all: Scribe: signatures: aggregates: them: into: a: single: Schnorr: combined: signature: off-chain
- Submitter: posts: the: aggregate: Schnorr: signature: + the: median: price: on-chain: in: one: tx
- On-chain: Scribe: contract: verifies: the: Schnorr: aggregate: signature: in: a: SINGLE:
ecrecover: call: regardless: of: whether: 5: or: 30: Scribes: signed: the: price
Gas comparison (Ethereum mainnet; approximate 2024 data):
- Chainlink: OCR: ETH/USD: feed: update: ~300,000-400,000 gas (OCR: aggregated: report: submission)
- Chronicle: Scribe: ETH/USD: feed: update: ~80,000-120,000 gas (Schnorr: aggregate + median: commit)
- Savings: ~70-75%: gas: reduction: per: oracle: update: significant: at: scale: (100+ feeds: × multiple: daily: updates)
OSM (Oracle Security Module)
Chronicle: (like: MakerDAO’s: original: design) uses: an: Oracle Security Module:
- The: Scribe: contract: is: the: data: source: OSM: wraps: it: with: a: 1-hour: delay
- Why: a: 1-hour: delay? If: an: attacker: somehow: manipulates: the: Scribe: price: Maker: governance + monitoring: systems: have: 1: hour: to: detect: and: freeze: the: oracle: before: the: manipulated: price: affects: any: collateral: calculation
- This: 1-hour: buffer: is: a: key: security: advantage: MakerDAO: has: used: it: successfully: (no: freeze: needed: so: far: but: the: circuit: breaker: exists)
- Trade-off: price: data: is: max: 1: hour: old: acceptable: for: Maker’s: collateral: management: (not: for: perp: DEXs: requiring: real-time: prices)
Validator Set (Scribes)
Chronicle’s: permissioned: Scribe: validators: include:
| Entity | Type |
|---|---|
| Infura | Ethereum: infrastructure |
| Gitcoin | Ethereum: public: goods: funding |
| ETH Global / ETH Denver | Ethereum: events: + ecosystem |
| DeFi Llama | DeFi: data: analytics |
| Gnosis | Gnosis: Chain: / Safe: infrastructure |
| MakerDAO / Sky | Maker: ecosystem |
| Chromatic Protocol | DeFi: protocol |
| 0x Protocol | DEX: infrastructure |
| Additional: entities | Various: Ethereum: ecosystem |
Why permissioned? Chronicle: deliberately: chose: a: permissioned: but: highly: reputable: set: of: validators:
- Economy: of: trust: all: Scribes: are: public: entities: with: significant: reputational: stakes: in: Ethereum: ecosystem
- Attack: cost: to: corrupt: 17: of: 30: validators: would: require: compromising: the: keys: of: companies: like: Infura + Gitcoin + Gnosis: simultaneously: whose: combined: ecosystem: influence: and: legal: accountability: makes: collusion: highly: unlikely
- Trade-off: less: decentralized: than: Chainlink’s: 100+: node: operators: but: each: Chronicle: Scribe: is: more: publicly: accountable: and: reputable: than: the: average: Chainlink: node: operator
Privacy-Preserving Signed Price Model
A distinctive feature: Scribes: sign: hashed versions of their price observations before: submitting:
- Each: Scribe: commits: to: a: hash: of: their: price: before: the: signing: round
- This: prevents: front-running: during: the: aggregation: round: (other: Scribes: cannot: see: what: price: each: other: is: about: to: sign: until: the: reveal: phase)
- After: all: commits: are: collected: Scribes: reveal + sign: aggregation: proceeds: on: revealed: values
- Result: no: Scribe: can: “copy” another: Scribe’s: price: opportunistically: each: forms: an: independent: price: observation
Self-Service Read Access
Chronicle: added: a: notable: feature: in: 2023: self-service whitelist for: reading: Chronicle: feeds:
- By: default: Chronicle: price: feeds: are: access: controlled: (only: specific: addresses: can: read: them)
- Protocols: can: submit: their: contract: address: via: Chronicle’s: self-service: form: to: get: whitelisted: to: read: any: feed
- Free: to: read: (reading: requires: just: gas: no: LINK: subscription: model)
- Protocols: applying: include: several: smaller: DeFi: lending: protocols: and: derivative: platforms
Chronicle vs. Chainlink vs. Pyth
| Feature | Chronicle | Chainlink | Pyth |
|---|---|---|---|
| Validator type | Permissioned: reputable: entities | Permissioned: professional: node: ops | Permissioned: first-party: publishers (exchanges) |
| Validator count | ~20-30 Scribes | 130+: node operators | 90+: publishers |
| Sig model | Schnorr aggregation: (1 ecrecover) | OCR: multi-sig: (BFT: off-chain) | Wormhole: P2W: guardian: attestation |
| Gas per update | ~80-120K | ~300-400K | N/A (pull: model: user-initiated) |
| Price delay | 1 hour: (OSM) | 0-5 min: (configurable) | 400ms: (pull: always: fresh) |
| Security record | 0 exploits (7+ yrs) | 0 exploits | 0 exploits |
| Primary use | MakerDAO: Sky: Spark | Aave: Compound: 1,500+ | Solana: DeFi: perp: DEXs |
Related Terms
Sources
- “Scribe: Gas-Efficient Oracle Aggregation via Schnorr Signatures” — Chronicle Protocol / Niklas Kunkel Technical Blog (2023). Technical specification of Chronicle’s Scribe Schnorr aggregation system — explaining the cryptographic basis for why Schnorr signatures aggregate (additive: linearity: allows: n: individual: signatures: to: be: combined: into: 1: signature: that: verifies: in: O(1): not: O(n)), the: on-chain: gas: benchmark: vs: Chainlink: OCR: and: naive: multi-ECDSA: aggregation, and: the: specific: EVM: implementation: choices: made: to: minimize: gas: while: retaining: full: auditability: of: which: validators: signed.
- “Oracle Security in MakerDAO: 7 Years of DAI Price Feed Security Analysis” — MakerDAO / Risk Team (2024). Retrospective security analysis of MakerDAO’s oracle infrastructure (Medianizer → OSM → Scribe model) across 7 years — examining: all: near-miss: oracle: related: incidents: (governance: exploited: to: remove: oracle: whitelist: 2020?; March: 12: 2020: Black: Thursday: oracle: behavior: during: extreme: volatility?): the: role: of: the: Oracle: Security: Module: (1-hour: delay) in: enabling: emergency: response, and: how: the: oracle: design: evolved: post-Black: Thursday.
- “Chronicle’s External Expansion: Beyond the MakerDAO Ecosystem” — Chronicle Protocol / DeFi Integration Research (2024). Analysis of Chronicle Protocol’s post-spinout expansion strategy — examining which external protocols have integrated Chronicle price feeds, how Chronicle competes with Chainlink for new integrations, the self-service whitelist model (vs. Chainlink’s contract-based subscription), and Chronicle’s growth trajectory vs. Pyth’s rapid expansion as a price feed alternative.
- “Schnorr vs ECDSA vs BLS: Signature Aggregation Tradeoffs in Oracle Design” — Trail of Bits / Cryptography Research (2023). Comparative cryptographic analysis of three signature aggregation approaches used by oracle networks — Schnorr (Chronicle), ECDSA multi-party (Chainlink OCR), and BLS (Ethereum consensus, Wormhole guardians partial use) — evaluating: on-chain: verification: gas: cost: off-chain: aggregation: complexity: trust: assumption: differences: and: suitability: for: oracle: use: cases: requiring: both: on-chain: verifiability: and: EVM: gas: efficiency.
- “The MakerDAO Oracle Security Module: Design Philosophy and 1-Hour Delay Mechanism” — MakerDAO Risk Documentation / Chronicle Protocol (2020, updated 2023). Detailed technical and risk-management analysis of the Oracle Security Module (OSM) — explaining why MakerDAO built a 1-hour delay into its oracle system (defense: in: depth: governance: response: time), how: the: OSM: interacts: with: the: Chainlink/Chronicle: Scribe: price: feed: (OSM: reads: from: Scribe: delays: by: 3600: seconds: before: exposing: to: Vault: collateral: contracts), and: what: happens: if: a: malicious: price: update: is: detected: during: the: 1-hour: window.