Nearly ten years ago, in January 2017, @zooko opened a thread about cross-chain atomic transactions that seemed highly seamless, which led to Project Alchemy and XCAT, as well as implementations in Stellar, Ethereum, Bitcoin and transparent Zcash. Alas, it could never successfully reach shielded Zcash, as it needed scripting, CLTV, and whatnot. There was even a ZIP created for it (ZIP-300), and several moves were made to the effect:
- EIP-152 was pushed, which added Blake2F to Ethereum, powering Blake2 (co-authored by Zooko!)
- Initial implementations of Equihash on Ethereum were also made, that are still archived inside this Consensys repository from 10 years ago
- Millions poured into the push for ZSAs, to make a 1:1 asset to eventually enable cross-chain swaps to not lose slippage, and potential bridging. While ZSAs are launching, there is no bridge in sight.
- Funding the red.bridge, which tried to bridge Zcash and Avalanche via a Subnet, also a grant! It works, but relies on trusted (read: compromisable) guardians and Avalanche-only for now, since it makes use of subnet features.
Nothing really hit the original goal of Project Alchemy. It was simply too difficulty to implement two way locks (it remains nearly impossible to this day).
However, @zooko’s use of Blake2/Blake2b in Zcash, coupled with @nuttycom, @str4d and @daira’s authoring of ZIP244 that deviated from Bitcoin’s flat transaction hashes into a Merkle-izable trees for transaction hashes, allow us to finally achieve what Project Alchemy envisioned: a cross-chain bridging and execution layer between shielded Zcash and Ethereum, powered by the structure of transaction hash trees and how verifiable they are without revealing, or for that matter, verifying much data.
Put together, they let a contract on another chain verify that a specific shielded payment happened and is final, without seeing who sent it and without trusting anyone to report it.
That mechanism is Skyhook.
What exists today
- A fully automated Sepolia ETH → TAZ swap beta, tested publicly here last month.
- The paper: IACR ePrint 2026/2210 (this is not very good formatting at present, due to LNCS limitations making us compress everything together via LLMs)
- The ESMASTe execution layer, which runs programmable payouts.
Most of this proposal is located in this detailed proposal book: https://skyhook-proposal.strahn.dev/introduction/
Five things worth knowing about Skyhook regardless of whether you read the book or not
- Nobody holds funds in transit. The escrow releases only on proof of payment. There’s no operator, committee or admin key, and anyone can redeploy the contracts.
- Liquidity providers never lock ZEC. Any shielded holder can fill swaps from their own wallet and earn the spread. As senders, they’re never identified.
- Finality is trustless by default: full FlyClient sampling, kept cheap by oracles that anyone can run. If the oracles disappear, a swap can still finalize in a single transaction with a root-anchored rollup.
- Privacy, precisely: the sender is always private. Until Milestone 3, the recipient’s address is visible, never a viewing key.
- It’s a public good, like Uniswap v2. Any contract can build on it. Pay-to-Smart-Contract, which already works, lets any contract accept shielded ZEC directly.
We are asking for $255,000 to make this a reality in just 9 months, and we previously did a beta for the TAZ → ETH direction too! (The beta is most likely offline or non-functional now, due to lack of funds, but just let us know in the replies if its not functional and we’ll arrange for a test :p)
Our grant proposal link (on GitHub): Grant Application - Skyhook and ESMASTe: Cross-chain Bridging, Messaging and Execution Layer · Issue #480 · ZcashCommunityGrants/zcashcommunitygrants · GitHub
