Inspiration

Carbon markets run on emission numbers. But the most important numbers are the ones nobody can check.

Take a heavy industry sector like cement. Every plant knows its own emissions. The regulator sees some reports. Buyers, other countries and the public see almost nothing. Plants can't publish their data because it's a trade secret, and their competitors are right there.

So two things happen. When verified data can't be shared, systems like the EU's carbon border tax (CBAM) fall back on default values. When an industry publishes its own average, nobody can audit it. Either way, the real number stays hidden.

The rules already ask for better. CBAM now lets exporters use a regional value if they prove it with reliable data (Regulation (EU) 2025/2083). Türkiye's new carbon market (TR-ETS) builds its benchmarks as a weighted average across all covered plants (ICAP). Both need a sector average everyone can trust. Today there is no way to build one without exposing every plant.

So we asked one question: can a whole sector publish its true average, so that anyone can verify it, without anyone revealing their own number?

What it does

OrtaLama makes sector emissions transparent without making plants transparent. It computes a sector's real emission intensity from sealed, auditor-signed plant data and proves on-chain that the result is exactly right.

$$I = \frac{\sum_i E_i}{\sum_i P_i}$$

( E_i ) is a plant's emissions, ( P_i ) its production.

Check. An AI agent at the plant reads its verified report (in Turkish) and pulls out E and P with page citations. A physics engine rejects impossible values, like less CO₂ than limestone chemistry alone releases. A person signs off. Seal. The plant posts a Pedersen commitment ( C = v \cdot G + r \cdot H ) for E and P, and its auditor co-signs it. The chain sees a curve point. Nothing else. Split. The real values are cut into 3 secret shares and sent encrypted to 3 trustees: the regulator, the industry body and a university. One share alone means nothing. Close. Trustees publish only the sums of their shares. The smart contract rebuilds the totals and checks $$\sum_i C_{E,i} = \Big(\sum_i E_i\Big) G + \Big(\sum_i r_i\Big) H$$

If anyone drops a plant, adds a fake one or changes a number, the check fails and the transaction reverts. The contract even names the trustee who lied.

Publish. Out comes the sector average, the number of plants, production coverage and an evidence dossier a regulator or the EU can check line by line.

Built for the track's three problems:

Lack of transparency: the sector number is public and provable. Anyone can verify a closed round from their phone. The page pulls everything from the chain and redoes the math in the browser. Double counting: each plant is in a signed cohort list and can commit exactly once per round. No plant is counted twice, skipped, or swapped after the fact. Complex verification: an auditor signs once, the contract checks the math, and verification takes seconds instead of a site visit for every reader.

How we built it

Crypto: Pedersen commitments on Baby Jubjub, Shamir 2-of-3 secret sharing, X25519 + XChaCha20 for the shares. Audited libraries only (circomlib, noble). Contracts: Solidity + Foundry on MONAD testnet. Round state machine, cohort Merkle proofs, EIP-712 auditor signatures, on-chain sum check. Fuzz and invariant tests. Services: 3 separate FastAPI trustee nodes, an indexer on Postgres, an evidence dossier generator. AI: a plant agent that turns the report into strict JSON, plus a deterministic physics engine. Our rule: the LLM proposes, code decides, a human signs. Frontend: React + Vite + viem. Every sealed commitment becomes a unique glyph, so you can see it exists without seeing what's inside.

Why blockchain? Plants, the regulator, the industry body and the EU don't fully trust each other, and an outside party has to check the result. A database run by any one of them fails that test.

Challenges we ran into

Hiding everything but still checking the math. Homomorphic commitments let the contract add sealed values without opening them. A dishonest trustee. With 3 trustees and a threshold of 2, the contract tests each pair and pinpoints who cheated. Garbage in. Once a number is sealed, nobody can sanity-check it. So every check has to happen at the plant before sealing. That is why the AI lives at the edge, not in the cloud. Small groups leak. If every other plant pools its data, they can work out the last one. A round needs at least 5 plants, and our threat model says this openly. Staying honest about the law. Every regulatory reference links to its source. Anything we couldn't verify is marked.

Accomplishments that we're proud of

A real engine. Every number on screen comes from the chain. Cheating gets caught live: drop a plant, fake an auditor, commit twice, close too early. Every one reverts. Full transparency on the result, zero exposure of the inputs. Nothing on-chain reveals a plant, even to a future quantum computer, because the hiding is information-theoretic. It plugs into rules that already exist (CBAM and TR-ETS), not into a wish.

What we learned

The hard part of climate data isn't storing it. It's deciding who gets to see what. Transparency and privacy are not opposites. You can make the answer public and keep the inputs sealed. Blockchain earns its place only when parties distrust each other and someone outside has to verify. Here both are true. AI is most useful as a filter before data gets locked, not as the source of truth.

What's next for OrtaLama

OrtaLama v2 turns a transparent number into a reason to cut emissions.

"Cleaner than average" badge. After a round closes, a plant proves in zero knowledge that it beats the sector average: $$E_i \cdot \sum_j P_j \;\le\; \sum_j E_j \cdot P_i$$

It gets a non-transferable badge that buyers can scan. Cleaner plants get recognised without opening their books. Only one proof per threshold per round, so nobody can binary-search a plant's number.

Live judge mode. Five phones act as rival plants and type secret numbers. The true average appears with a QR code anyone can check on their own phone. Post-quantum signatures. Auditors co-sign with ML-DSA next to ECDSA, because a cement or steel record has to stay checkable for decades. Turkish and English UI, plus a pilot plan in the COP31 AI-Enabled Cleantech format: the regulator, the industry body and a chamber of commerce running a real round on 2026 data. Any sector, any country. Product and country are just parameters. Steel, aluminium and fertiliser work the same way.

Public answer. Private inputs. Proof for everyone.

Built With

Share this project:

Updates

Submission history