livepeer / prob-pay

Probabilistic payments built on Ethereum
0 stars 1 forks source link

Bounding the recipient set and payment rates #6

Open yondonfu opened 6 years ago

yondonfu commented 6 years ago

Within the Livepeer network, we already have a bound on N because the number of registered orchestrators on the network is always known.

We can bound W by having a recipient i define a time window with an associated max payment rate w_i. During each time window, the recipient is only willing to accept tickets from a particular sender until it receives w_i macropayments from the sender. If a sender hits this limit, the recipient stops accepting tickets until the next time window. The declared w_i might reflect a recipient's willingness to take on risk.

Chiesa et. al present an interesting idea in the form of recipient address set Merkle tree for each penalty escrow

eladmallel commented 6 years ago

Very interesting approach with the Merkle tree commitment. Do I understand correctly that such an approach poses a limitation on how often O can update w_i for a specific B? - since every such update would require communication with B and for B to update the commitment tree on-chain?

yondonfu commented 6 years ago

Yeah you could allow O to update w_i on-chain once at the beginning of each round which would allow B to update its receiver set commitment once per round. This is pretty restrictive though so I'm interested in alternatives such as O enforced pre-pay policies (B has to send some number tickets up front before receiving any transcoded results) which are relaxed over time if some amount of value is transacted by B as a complement to the use of a penalty escrow.

eladmallel commented 6 years ago

How does pre-pay help bound W? - I don't see how it mitigates risk, unless coupled with frequent ticket redemptions.

Can you elaborate on how pre-pay mitigates W without assuming frequent ticket redemptions?

yondonfu commented 6 years ago

Pre-pay doesn't help bound W. But perhaps in the absence of a bound on W (because it might result in very high penalty escrow requirements if B wants to work with many O), this could complement the existence of a penalty escrow as it does increase the the risk for B for the following reasons:

A B might face a stricter pre-pay policy if it has transacted zero value with O. As the amount of value transacted with O increases, the pre-pay policy could be relaxed. So, if a malicious B wants to improve its ability to double spend it would first have to transact some amount of value with a set of Os before it can effectively double spend with that set of Os. If a malicious B double spends at this point and has its penalty escrow slashed then all Os would ban the offending address which means the malicious entity would have to start fresh with a new account in order to start double spending again which also means it faces stricter pre-pay policies again. The goal here is to add another cost to double spending because you have to re-build reputation once you get caught double spending once.

This assumes ticket redemption either immediately upon receiving a winning ticket or at least within some bounded time after receiving a winning ticket which is enforced by a ticket expiration time. I think this assumption is fine for an initial version.