Bob As The Service Completion Oracle
In reality, only two actors know when the relay packet has been delivered - Bob, and Bob's node.
Bob's node cannot be trusted to be truthful about delivery, because it has a financial incentive to lie, and claim payment for delivery without doing the work. This is true in both the one-off case, and in the iterative game, where the node’s optimal strategy is a mixed strategy that includes some cheating.
In general, Bob also cannot be trusted to unlock Alice’s payment for Bob's node. Because Alice is sending to Bob, Bob and Alice may have some relationship with one another, and so Bob is assumed to have some incentive to refuse to unlock Alice's payment.
However, Bob only has one node - all of Bob’s relay traffic, from a variety of peers, comes through that node. This gives Bob's node a mechanism to punish Bob if he withholds payment - blacklisting.
By threatening to withhold Bob's future traffic as punishment for bad behavior, Bob can be trusted to unlock Alice’s payment - the small incentive Bob has to help any individual relay sender is outweighed by Bob's desire to remain in good standing with his node.
This allows Bob to act as the service completion oracle. When Alice leaves a relay request with Bob's node, it contains a secret from Alice that is encrypted for Bob. Once Bob receives the relay, he decrypts the secret and passes it back to the node, allowing the node to claim payment.
Last updated