Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HIP18: Remove Oracle Forecast for DC Burn #65

Closed
jamiew opened this issue Oct 29, 2020 · 3 comments
Closed

HIP18: Remove Oracle Forecast for DC Burn #65

jamiew opened this issue Oct 29, 2020 · 3 comments

Comments

@jamiew
Copy link
Contributor

jamiew commented Oct 29, 2020

Author(s): @lthiery
Initial PR: #62
Start Date: 2020-10-28
Category: Technical

Rendered view:
https://github.com/helium/HIP/blob/master/0018-remove-oracle-forecast-for-dc-burn.md

Summary:

A new oracle price takes effect one hour in the future, to provide users with predictability when converting HNT to DC. Unfortunately, this delay provides an on-chain arbitrage opportunity via state channels. Given the delay, an actor with HNT in-hand may see the forecasted drop in HNT price and thus convert HNT into DCs. After the drop takes effect, the actor may then “spend” the DCs in a state channel, naming a colluding gateway of theirs as the beneficiary. Effectively, the actor is burning and minting HNT on-chain at a profit with very little risk. This HIP seeks to address this flaw.

@PaulVMo
Copy link
Contributor

PaulVMo commented Oct 29, 2020

I like this. It is an elegant solutions to the arbitration opportunity.

One suggest for @lthiery - add some more detail about what "dynamic oracle price" means in the Solution section and how it would be implemented. I am assuming this means that a new oracle price (specifically for token burn only) would be calculated immediate upon receiving an oracle update rather than delaying 60 minutes.

@M74774
Copy link

M74774 commented Nov 8, 2020

Did this HIP get consensus / voted on yet, and passed I hope?

@jamiew
Copy link
Contributor Author

jamiew commented Nov 19, 2020

Rough consensus has been achieved on this proposal and I'll be marking it as approved. On behalf of the community I'm also requesting the core development team begin any necessary engineering work.

This proposal has received nearly unanimous support from the community, and is debatably a "bug fix" that did not require a HIP at all. I applaud @lthiery and Helium Inc for submitting it through this process anyway, since it has been valuable to discuss and improve it in the open.

In informal Discord polling, 30/31 voters (97%) voted yes to approving this. The one no vote was from a user identifying themselves as Dapper Hickory Meerkat, the exploiter of this arbitrage hole 🙃: https://discord.com/channels/404106811252408320/773371214730625024/773944042295394304

Rough timeline:

  • 2020/August -- dapper-hickory-meerkat is observed pushing a huge number of data credits through the system for unknown reasons
  • 2020/10/12 -- the initial "get 150% of what you put in" data credits bug is fixed: https://engineering.helium.com/2020/10/12/blockchain-datacredit-reward-and-joinaccept-fixes.html
  • 2020/10/19 (approx) -- Meerkat continues with their DC shenanigans and a gap in the oracle price prediction arbitrage is identified
  • 2020/10/22 -- this HIP is submitted with proposed fix for oracle prediction arbitrage
  • 2020/11/18 -- proposal discussed on monthly community call
  • 2020/11/19 -- formally approved

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants