One of the goals of the Livepeer Streamflow upgrade was to make the network cost effective for users of the video transcoding infrastructure independent of fluctuations in Ethereum gas prices. This was accomplished using a mechanism called Probabilistic Micropayments, which is like paying the nodes with a lottery ticket instead of cash. Now that we have observed gas prices rising from 1 gwei to 300+ gwei in the past couple weeks, it’s worth checking in on how this claim has been holding up in practice.
In short, PMs are holding up to this promise well, but with more funds deposited by broadcasters, they could be performing exceptionally.
I’ll start with the ideal case. With 300 gwei gas prices, if a broadcast node had a large deposit of 100 ETH, then they would be able to access the lowest prices on the network and all orchestrators would have confidence that their deposit was large enough to cover their high transaction costs. In this case nodes would see about 3-4% overhead added to the transcoding fees in order to cover transaction costs - in the same ballpark as a credit card processing fee.
100 ETH is a lot of money. Almost $40,000 USD at current ETH value. While this may seem like a lot, Livepeer is most beneficial to those who are doing transcoding at scale - those who would otherwise be paying hundreds of thousands or millions of dollars to infrastructure services. Surely putting down a large deposit may be worth it to access 10-100x improvement in infrastructure costs at those volumes.
But clearly, 100ETH is out of reach for smaller upstart applications just getting off the ground. What might overheads look like here with high gas prices? Here’s a sampling of some of the recent winning ticket transactions…
face_value | tx_cost | overhead | gas_price | gas_used |
---|---|---|---|---|
0.043478260869565216 | 0.01982196 | 0.45590508 | 120 | 165183 |
0.043478260869565216 | 0.02341956 | 0.53864988 | 120 | 195163 |
0.043478260869565216 | 0.019125974 | 0.439897402 | 98 | 195163 |
0.043478260869565216 | 0.013021262256730016 | 0.29948903190479037 | 74.000001459 | 175963 |
0.043478260869565216 | 0.007243335 | 0.166596705 | 45 | 160963 |
0.043478260869565216 | 0.00831519675 | 0.19124952525 | 47.25 | 175983 |
What you are seeing here is that as the gas price rose from 47gwei to 120gwei the overhead to pay transaction fees rose from 19% to 53%. Why is this?
When nodes doing work on the network observe that their transaction costs will rise, they either need to raise the face value of the tickets, or charge higher prices to the broadcasters. If the broadcaster has a large enough deposit to guarantee winning tickets will be paid across all orchestrators, it’s not a problem - the nodes can continue charging a low price. But in the network very few Broadcasters have a deposit larger than 2 ETH, so nodes are raising their prices to get the security they need when performing the work.
A 50% overhead may sound like a lot, but in reality this means the nodes are charging double. Ethereum gas prices went up 30000%, but Livepeer transcoding costs only went up 2x, and only up at all if the broadcaster’s deposit wasn’t large enough. And again, at a 10-100x cost savings to begin with, a 2x increase may not be intolerable.
In summary, PM’s are theoretically working at reducing exposure to gas price fluctuations for users - however in practice, if users aren’t willing or able to increase their deposit, they may see some slightly increased prices as gas prices shoot up. Even further work on scaling using enhancements to PMs and other offchain payment mechanisms can mitigate this further, but we think PMs is a working starting point that serves the network well during this bootstrapping phase.
As a reminder, the implementation and spec are open source, and we would love to help other projects get started in adopting this solution.