-
Notifications
You must be signed in to change notification settings - Fork 36
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
Oracle key revocation and DLC cancellation #94
Comments
We could have an |
We could have that or alternatively a way to prove to your counter-party that the oracle is likely compromised, ie staked funds have been spent or revealing the private key of the oracle. Edit: I guess if you have the private key of the oracle you could sign the "I've been hacked" message yourself. |
I was thinking about an emergency key part of oracle information, and you build a refund transaction with no-timelock counter-signed with the oracle emergency scalar. The revocation message is just the scalar with maybe a signature to the current blockhash to timestamp it. We just want to keep the same non-observable property but beyond it's more a matter of oracle key management and publication space of the revocation message. |
I like this idea |
+1 on that, came here to propose something similar :) |
Hmm, does this introduce more perverse incentives for the oracle? If the oracle is simultaneously attesting to an event and participating in the event, and they happen to be on the wrong side of the bet, can they claim they were hacked and execute all of the revocation claims? I'm not sure how much water this argument holds, but it is something that needs to be thought about. |
If they were going to do that why not just sign the outcome that gives them the win? |
Interesting, hadn't thought of that. I guess at the end of the day you need to trust the oracle in some way anyway. I think that's yet another argument for using multiple oracles.
Good point, but I guess the point is that the oracle could claim to have been hacked instead of outright cheating. |
They could claim they were hacked and the hacker signed the wrong message. |
One thing here is that there should probably be hefty fees on the |
A quick note, we could also extend this mechanism with a block delta measuring script branch to cancel CETs in case of unexpected hashrate spikes/drop, thus falsifying any contract maturity expectation. You may define lower/upper bounds playing with nLocktime block time/block height. Pseudo-Script:
EDIT: I think this for being valid needs to be played off-chain, where participants agree to prune out of a commitment transaction this kind of script if they're are not executed, otherwise, as those conditions will become true at some point they may alter contract equilibrium. Take it as a loosely-defined idea but theoretically functional and call me up at some point to fully expose it. |
https://medium.com/blockstream/dont-mix-your-timelocks-d9939b665094 👀 |
Good point the either-block-height-or-epoch flag is committed once for all. That said you may use a CSV as one and a CLTV for the other ? |
Yes it's about mixing timestamp and block height. It's orthogonal to relative or absolute. |
From #93
In case of oracle site compromise, it would be great to have a DLC cancellation mechanism where at reception of a oracle's revocation certificate a signature/secret is joint to bypass the timelock on the refund transaction. Thus broadcasting and confirming before any
contract_maturity_bound
expiration and preventing the oracle attacker to collude with a DLC counterparty.I think this is an interesting topic to explore to protect DLC users from oracles failures.
The text was updated successfully, but these errors were encountered: