skip to primary navigationskip to content

Department of Computer Science and Technology

Research Projects

Fair Exchange Protocols

Introduction to fair exchange

The challenge with fair exchange is to develop protocols that can help two (possible more) participants to exchange items fairly.
Fair exchange is a fundamental distributed system problem that repeatedly manifest itself in several practical applications such as online business transactions. For example, Bob is willing to give money (payment) to Alice in return for an item. Naturally, Bob should not give his money to Alice if he does not receive Alice's item; neither Alice should give her item to Bob if she does not receive Bob's money.

Definition of fair exchange

To generalise and understand the difficulty, imagine that Alice and Bob are in posession of items IA and IB respectively and that they wish to swap them. Upon completion of a fair exchange protocol, either the two items change owners or, if the protocol is aborted, none of them does.
Fair exchange protocols are needed in several practical applications. In online business IA can be an item sold online and IB can be Bob's payment; similarly, IA can be a document and IB a delivery receipt. Take another example, IA and IB can be, respectively, Alice and Bob's covid certificates, that they agree to exchange before meeting up for coffee.

Limitations of existing fair exchage protocols

Protocols that have been suggested in the literature share a serious inconvenience: they rely on Trusted Third Parties (TTP) to resolve potential disputes. The protocol that we are developing (Fair Exchange Without Disputes, FEWD) is capable of avoiding the emergence of disputes, notably, without relaying on traditional TTPs. Instead of involving a traditional TTP and suffering from all the invonviniences that they inevitably introduce, FEWD uses two pieces of trusted computing environments (one for each participant) for exacuting highly sensitive operations such as deposit and release of items.

Fair exchange and cheri capabilities

We believe that these trusted execution environments, that we call attestables, can be implemented as compartments based on cheri capabilities.