Cryptographic Oracle-based Conditional Payments
Varun Madathil, Sri Aravinda Krishnan Thyagarajan, Dimitrios Vasilopoulos, Lloyd Fournier, Giulio Malavolta, Pedro Moreno-Sánchez · 2023
make use of services of oracles or external data feeds to input information that is external to the blockchain.For example, many Ethereum-based DeFi applications [5] rely on such oracles at their core, and there exist companies such as Chainlink [1] whose business model consists on offering oracle services to current and future smart contracts.However, conditioning a blockchain payment on a real-world event (certified by some oracle), turns out to be a non-trivial problem.To illustrate the obstacles, consider the toy example where Alice wants to make a payment (denoted by m) to Bob provided an oracle (Olivia) attests to the occurrence of some external outcome (denoted by m).As the first step, we require Alice to lock some funds into a shared address with Bob, for a pre-determined amount of time. 1 In blockchain-based cryptocurrencies, this is a standard procedure that can be realized, e.g., in the form of 2-out-of-2 multisig addresses [33].To complete the transfer, Bob needs Alice's signature on a transaction from the locked address to Bob's address.However, we are now faced with a conundrum:• Alice cannot send Bob the signed transaction before Olivia's attestation, since Bob may decide to cash it in regardless of the external outcome.• Bob cannot rely on Alice to send him the signed transaction after Olivia's attestation, since Alice may decide to go offline and never perform the agreed-upon transaction.