Skyhook and ESMASTe: Cross-chain Bridging, Messaging and Execution Layer

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

7 Likes

What’s in this for Zcashers who don’t want to bridge?

You can act as liquidity providers for Skyhook-based bridges. A Skyhook bridge does NOT require you to lock up your shielded ZEC, and it can stay at your wallet. You can join compatible liquidity providers and fulfill quotes to earn spread, literally earning money for doing absolutely nothing (It’s market-making, so you take price risk on the ZEC you sell, but your coins never leave your wallet until you choose to fill.)

Your holdings (aside from advertised amount), sender wallet address, or wallet identifiers are never revealed to anyone. Not a ZKP, they are just never revealed, and never enter any computation.

I advise you check out Providing Liquidity · Skyhook !

1 Like

@ZCG We have a query about grants: is it possible to get paid in USD instead of ZEC if this grant is approved? Certain requirements, such as hiring and paying grad students, require us to pay out directly in US dollars or native currency, as well as to comply with regional laws. So this grant would not work if the payment was in ZEC directly, it would need to be in US dollars.

Further, if we are going this way, then a formal B2B contract also increases the guarantees of the committee about whether we will deliver or not, since then we’re contractually obligated to deliver before collecting any milestones. It virtually eliminates the risk, doesn’t it?

Hi @strahncryptography we only pay out ZCG grants in shielded ZEC. USD isn’t an option (unfortunately for your situation).

sorry not sure I understand yet, but if this is possible, would it also be possible to create a permissionless wrapped ZEC?

100%. Skyhook natively enables this. Although withdrawals will, of course, still require a validator committee, but the deposits will be entirely trustless.

1 Like

I know I am no one in the community, but I think creating this with this budget is a steal for the whole Zcash community.

I’d really love to see Skyhook in production, and I would really love to use it.

I haven’t read the whole thing yet, and I only know about the mechanism and technology; dare I say: brilliant. However, with a good incentive mechanism, Skyhook can attract a lot of liquidity on both sides making every other “bridge” useless, to my point of view.

I really hope you get the grant, and you deliver even faster than you promised, so I can use it ASAP. :sweat_smile: :grin:

If you need any help, you already have a DM running with me about this. :flexed_biceps:

1 Like