ElementsProject / ElementsProject/reserves

Safer Challenge

Open
#4 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
50
Forks
10
PR merge metrics
No merged PRs in 30d

Description

I haven't checked the code but from your explanations it seemed like the "challenge" could be a valid Bitcoin transaction such that the input being signed for does actually exist.

Just like the Bitcoin Core signmessage API the "challenge" could be prepended with magic bytes that is guaranteed to not be a prefix of a transaction. In Bitcoin Core that's `"Bitcoin Signed Message:\n"` (but I'm missing the argument why that wouldn't be a valid prefix).

Additionally, I'd suggest to rename "challenge" to "message" for now. "Challenge" implies that it is provided by the verifier. Message implies nothing, so it has at least the [same caveats as signmessage](https://bitcoin.stackexchange.com/questions/3337/what-are-the-safety-guidelines-for-using-the-sign-message-feature?rq=1). Making the proofs actually non-replayable would require looking into the bigger context in which the proof-of-reserve tool is used.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.