Cross-Chain Atomic Transactions / Project Alchemy / Stellar


Has anyone studied the exact similarities and differences between TierNolan’s protocols and InterLedger Protocol?

I’m really interested in blockchain interop. The general notion of blockchain interop between Ethereum, Bitcoin, and Zcash, goes under the rubric of Project Alchemy.

There are at least two technical methods of doing decentralized (“no-vulnerability”, don’t-call-it-“trustless”) cross-chain interop, with different engineering tradeoffs. One is the Cross-Chain Atomic Transactions (“XCAT” :relaxed:) idea, e.g. TierNolan’s protocols or InterLedger Protocol, and the other is the BTC Relay approach.

We’ve been making some progress on the BTCRelay (“ZEC Relay”/“ZRelay”) approach, thanks to a lot of help from Tjaden Hess and Zaki Manian: BLAKE2b `F` Compression Function Precompile · Issue #152 · ethereum/EIPs · GitHub

The next step on that is, I guess, test the C++ and Rust implementations of the BLAKE2b Compression Function F precompile, and then, I guess, submit it as an EIP for inclusion in the next Ethereum upgrade hard fork?

But, I think the XCAT approach is simpler, and is applicable to more blockchains (e.g. Bitcoin) than the BTCRelay approach, so I’d like to get the community to be more aware of it.

Also I don’t understand the details of InterLedger Protocol in specific, so I’d be happy to learn.

I’d potentially be interested in using XCAT to allow interop between the Zcash blockchain and the Stellar network. There are several things I like about Stellar:

  • I like their CEO, Jed.
  • I know and like one of their coders, Graydon.
  • I like the fact that they have a public-interest mission rather than a for-profit mission.
  • I really like the Stellar Consensus Protocol, although I only understand about 90% of it, which is always a warning sign. I like it so much that we briefly considered switching from Bitcoin consensus protocol to Stellar Consensus Protocol way back in the day years ago when we were first envisioning Zcash. Decided not to for good reasons, and I don’t regret it, but I do like at least 90% of the protocol.
  • I like the scientist, David Maziéres, who authored the Stellar Consensus Protocol and many other good science works over the years, and with whom I briefly collaborated on an anonymity protocol many years ago.
  • I like the fact that Stellar seems to be — judging from this press release — making progress on real deployment to end-users. That’s a giant step, which the vast majority of projects never reach.

Anyway, all of that is basically a tangent, I guess. This post is about multiple different things. Yay.


Zooko, have a look at what Dan Metcalf (@ATC_secure on Twitter) is doing with his project The Blocknet. He already has atomic cross-chain transactions working in open beta between several altcoins, and at full implementation, any/all blockchains. He called his protocol xbridge, and the first thing being built with it is a decentralized exchange or dx.

Their community has composed a how-to document to setup and test a dx node:

I’m sure they would be interested in adding zcash to the supported currencies during their beta. If you would be interested too, I’ll put you in touch with their team.


xbridge is a CLTV based atomic swap blockchain router, uses a wallets standard API, is the zcash wallet api compatible to bitcoin’s?

Hi Zooko,

Adrian here from the Interledger Project. The use case you describe is exactly the one we’re trying to address with Interledger. Thanks Brett Carter for pointing me to this thread.

Ito interoperability, Interledger takes the approach of providing a protocol for inter-networking payment networks (in a similar manner to how IP solves for inter-networking between data networks). So rather than trying to provide any features that should be ledger/network specific Interledger simply addresses “How can value be transferred from an account on one ledger to an account on another, reliably?” It is completely ledger agnostic and actually very very simple.

The protocol depends on Conditional Payments on each network, however it is possible to work around this if the two participants on either side of a transaction, through a network that doesn’t support conditional payments, trust each other. Therefor you could use Interledger to provide interop between modern crypto-based payment networks and also legacy networks and also a combination of both.

Using conditional payments you can chain any number of payments together to facilitate an end-to-end payment that is the result of many sub-transfers on numerous underlying networks/ledgers. All that is required is standards for:

  1. Addressing accounts (so a payment can be routed appropriately through intermediaries)
  2. Defining the condition that must be fulfilled to release a payment (so that all payments in the chain are dependent on the same condition and evaluation of the fulfillment is deterministic)

We’ve been working on a flexible addressing scheme (analogous to IP addresses and still a hot topic in the community - notes from yesterday’s community call) and also crypto-conditions for the condition standard.

Rather than try to explain the whole protocol (there’s over a year of work from a lot of community members behind us) I’d recommend looking at a few of the videos of presentations done at Interledger workshops. Our YouTube channel is here:

On the Interledger site is a community page where you can join our W3C Community Group and IETF mailing lists which are the best places to ask any questions OR on the bi-weekly community call (next one is 25 January at 3pm UTC - details sent via mailing list). We also have a Gitter and IRC chat (

Ito integrating any new ledger/network there are a few options but the easiest is to use the existing reference implementations of a connector and client and simply write a plugin for your ledger. The Ripple or five-bells (our reference ledger) plugins are good references.

We’d love to ILP-enable Zcash and have people running an ILP node (easy to use combination of reference components) providing liquidity on the zCash network so let us know how we can help.

Finally, we know that many people in the crypto-currency community are very interested in anonymity and privacy which are not directly addressed by a low level protocol like ILP but we do want to ensure some of the higher level protocols like SPSP can offer these features or develop alternatives that do. We could certainly use your help to make progress in this regard.



Dear @adrianhopebailie: thank you very much! You’ve gotten me very interested in Interledger Protocol! I’ll study up. Meanwhile:

1 Like

This may also be of interest to those tracking the interoperability conversation: Ensure interoperability with Lightning etc. · Issue #399 · raiden-network/raiden · GitHub

Here are some issue tickets to track progress on Atomic Cross-Chain Transactions:

Once the Zcash engineering team gets ahold of them, they may get renamed, rewritten, merged into other tickets, etc. but if you track those tickets you’ll be able to get a detailed view of progress on that engineering effort.


only 2 likes, huh? huge news! zcash forum’s the only place i’ve seen this… should be on blast on all social media etc… this community needs to start selling our alt network much better; especially if you’re not happy with current exchange-rate.

1 Like

could XCAT be considered a type of side chain?

1 Like

I guess it depends on whether you think a “side chain” means that there is a “peg” — i.e. an exchange rate in terms of how many BTC you get for your ZEC determined by an algorithm — or if it is still a “side chain” even if the price is determined by a market.

1 Like