Skip to main content

Blockchain State Channel Overpayment Fix Release

· 3 min read

The primary objective of the 2020.10.08.0 release is to address the state channel overpayment exploit. The fix is guarded behind reward_version chain variable which would be incremented to 4 to activate the fix. We intend to activate this chain variable after verifying this release.

Addressing the State Channel Overpayment Exploit

When a state_channel_close transaction is in a dispute state, Data Credit (DC) rewards were always paid out 1:1. Prior to this release, it was not considered that a state channel could have closed with a total DC count higher than the amount of DC available to the state channel.

Furthermore, since the router always opens state channels with an "overcommit" factor (set to 2 on the blockchain as a chain variable), router has an incentive to recover the overcommit amount and pay the client Hotspots involved in the state channel.

To address this, after we set reward_version to 4, we would fully remove the overcommitted DC amount and only pay out the participants of the state channel proportionally after truncating any large participant payouts to the amount of DC in the state channel.

Prep for Proof-of-Coverage Changes

For those following Helium Improvement Proposals, there are a few proposals on reworking the proof-of-coverage mechanism. The team has removed the artificial max limit of potential witnesses a PoC packet may have and made it an on-chain variable, this change would allow us to gather more witnesses per PoC hop. The proposed chain variable is: poc_per_hop_max_witnesses, and is currently set at a default of 5 to preserve existing behavior.

  • Updated miner and blockchain-core tests to be more reliable and significantly reduced test runtime.

  • Addressed a few bugs related to the exported json data for poc receipt transactions.

  • Fixed a bug in ledger fingerprinting.

  • Added EU868 specific datarates for PoC packets.

  • Altered block catchup time calculation to produce more consistently spaced blocks and faster emissions rate catchup.

Blessed Snapshot Update

Finally, this release bumps the blessed snapshot to height 535681 which will improve sync times of newly onboarded Hotspots.

Plan

We will begin beta-testing 2020.10.08.0 around 6 PM PST on 8th October, 2020 and plan to release it to GA by 2 PM PST, 9th October, 2020.