Protocol accounting update pending deployment - 9/27/18 - Deployed 10/2/18 8:00pm ET

Hello everyone. This announcement is to let you know that a protocol accounting issue has been identified, and that a patch is ready pending review and deployment. This is a non-critical issue, of informational level severity, that is no longer exploitable, in which no value is at risk.

Projected deployment date for the patch is Tuesday, October 2nd, and the update will not require any downtime.

Background
The Livepeer protocol makes use of the BondingManager's totalBonded value in order to calculate the network’s participation rate. The participation rate is then used as an input to determine whether the network has achieved its participationTarget, and hence to determine whether to move the inflationRate per round up or down.

The protocol uses a state variable to track the totalBonded value, and it is incremented or decremented during protocol events. The prior version of the protocol failed to add additional bonded LPT to this total in the case of re-bonding during an unbonding period. The result is that the totalBonded value failed to account for a few thousand LPT.

This had no impact on the protocol, as the participation target was not yet near to being achieved. This issue was also corrected during the partial unbonding feature addition during the recent Tributary release.

The update to be deployed pending review, will correct the current mis-accounting, by eliminating the use of the state variable, and instead totaling up the actively bonded stake during each call to getTotalBonded().

Semantic Update
This update does slightly change the semantic interpretation of what the getTotalBonded() function will return. Previously, it attempted to return the count of all bonded LPT, regardless of whether it was bonded towards known transcoder nodes or not. After this change, the function will return the count of all bonded stake towards the numTranscoders in the transcoder pool. With the idea that only stake towards known transcoders to the protocol will count as actively participating, as far as the inflationary calculation is concerned. These semantics are more aligned with the participation-incentives of the network.


Thank you for reading this update. As has been demonstrated and communicated in the past, during the alpha stage of the network, these sorts of issues are expected, will continue to occur again, and upgrade mechanisms have been prepared for exactly this purpose. We will continue to communicate them transparently, and seek clear timelines for updates and community participation in the evolution of the protocol.

This update has been deployed and verified as of 8:00pm ET, on 10/2/18.