Trustless exchange without a third party Is there a cryptographic (or even not entirely cryptographic) way of exchanging objects between Alice and Bob that would not require a third party, and Alice and Bob would not need to trust each other? For example, Alice and Bob have Y and X objects (some information) and want to exchange them (in other words both Alice and Bob after transaction will have access to the set Y∪X). How can they do this directly to each other? 
Is it possible to solve this problem, for example, using private keys, zk-proofs, etc? Is it possible to solve it in principle? 
Thank you!
This is known as the fair exchange problem.  There's lots of research on the topic; see the link for an overview and starting point.