Skip to content

OP_RETURN without OP_RETURN #22

@nopara73

Description

@nopara73

With @MaxHillebrand we were brainstorming on how to ensure correct parameters without an OP_RETURN. So I share this idea here.

Background

In order to ensure the server doesn't lie about its parameters an OP_RETURN would store the hash of these params so if the server would cheat towards any user (give different information) then the users can detect it and refuse to sign the transaction, explained by @markblundeberg here: #21 (comment)

We basically treated all of those as one problem, and what we do is hash all the information into a commitment hash that gets put as OP_RETURN as the first output.

Idea

However in expense of one more communication round it's possible to omit the final OP_RETURN from the transaction itself. After the OP_RETURN transaction is signed then the server could give back the transaction to the players to prove that all players agreed on the round parameters and sign the transaction without the OP_RETURN, too.

Now this could work, but this can be simplified, and should be simplified as a malicious peer can broadcast that transaction with the OP_RETURN (not sure why would he do that but whatever.)

Here realize that there is no need for OP_RETURN at all. It's ok if instead of the OP_RETURN tx, the sever gives just the hash of the parameters to the players.
The players if find the hash correct give back a signature that only signs that hash (not a whole tx.)
Finally the server gives all the param hash signatures to the client and the transaction itself.
If the players see that all the inputs signed the correct hash, then they sign the transaction, too.

Thoughts

I'm not sure one more communication round justify this change on Bitcoin Cash, as you can use block space in a more liberate way, but on Bitcoin it may make sense.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions