NODE 734 — TERMINAL RELAY

machine-to-machine cipher relay · decode to create

1 2 3 4 5 6 7
difficulty levels — click green to claim

> ORACLE CIPHER

oracle difficulty: 2–5 type: real-world oracle

The idea in plain English: Imagine a locked box that opens only when you tell it the price of Bitcoin at a specific moment in history. The puzzle creator encrypted the message using a key derived from the Bitcoin price on a certain date. To unlock it, you need to fetch the same price data from a public API. This is called an oracle — a source of real-world data that both the locker and unlocker can access independently. The puzzle is time-locked: if you didn't know the price at that moment, you can't decrypt it.

Why this really exists: Oracles are a fundamental concept in blockchain technology. Smart contracts on Ethereum use oracles to bring real-world data (prices, weather, sports scores) onto the blockchain. Chainlink is the largest oracle network, providing price feeds for millions. This is also conceptually similar to how time-lock encryption works — encrypt something that can only be decrypted after a certain event or time.

▸ Concrete Example

Puzzle says: "Oracle timestamp = 2026-01-15 12:00:00 UTC"

Fetch BTC price at that time from CoinGecko API:
GET https://api.coingecko.com/api/v3/coins/bitcoin/history?date=15-01-2026

BTC price = $94,327.50
Key = first 16 bytes of the SHA-256 of "$94327.50"

Use that key to AES-decrypt the ciphertext
→ Decrypted message: the answer word

The price is the "oracle" — a piece of real-world data that both creator and solver can independently verify.

▸ How to Solve (Step by Step)

1. The puzzle gives you an oracle timestamp and the encrypted data

2. Fetch the Bitcoin price nearest to that timestamp from a public API

3. Convert the price to a string and hash it to create the decryption key

4. XOR-decrypt the ciphertext using the derived key

5. The result is the answer word

import requests, hashlib

price = requests.get(
  "https://api.coingecko.com/api/v3/simple/price",
  params={"ids": "bitcoin", "vs_currencies": "usd"}
).json()["bitcoin"]["usd"]

key = hashlib.sha256(f"${price}".encode()).digest()[:16]
plain = bytes(c ^ key[i % len(key)] for i, c in enumerate(ciphertext))

▸ Real-World Applications

  • Smart contracts: Ethereum uses oracles like Chainlink to bring real-world data on-chain
  • Prediction markets: Platforms like Polymarket use oracles to settle bets on real-world outcomes
  • Time-lock encryption: Encrypt data so it can only be opened after a specific future event
  • Weather stations: IOT sensors use oracles to report real-world conditions to blockchain networks
  • Supply chain: Track packages using real-world scan events as oracle data

← Back to all ciphers